Commit Graph

12748 Commits

Author SHA1 Message Date
Bruce Momjian
3363b847ec Set std error to no buffering on Win32. 2004-05-02 04:25:45 +00:00
Bruce Momjian
deb78dd833 More win32 adjustment for timezone directory. 2004-05-02 03:12:12 +00:00
Bruce Momjian
f4c69c8205 Fix timezone data path for Unix and win32. 2004-05-01 22:07:03 +00:00
Bruce Momjian
d7ee665089 Align prototype in C code. 2004-05-01 19:25:08 +00:00
Bruce Momjian
ddfc4d1681 Remove debug output line. 2004-05-01 01:38:53 +00:00
Bruce Momjian
0a2b9f9cde Rename function to be less win32 specific. 2004-05-01 01:34:47 +00:00
Bruce Momjian
e572246565 Suppress use of timezone library by ecpg. 2004-04-30 20:47:33 +00:00
Bruce Momjian
85b7e8351f Fix zic compiler to use pg version.
Move timezone database to share/timezone.
2004-04-30 20:23:28 +00:00
Bruce Momjian
04d426ba70 Allow build of timezone database on unix. 2004-04-30 20:01:39 +00:00
Bruce Momjian
1360fe4096 More timezone build adjustments. 2004-04-30 17:52:07 +00:00
Bruce Momjian
46050a3b75 Timezone code checks for HAVE_SYMLINK of zero, so use in pgtz.h:
#ifndef HAVE_SYMLINK
#define HAVE_SYMLINK 0
#endif
2004-04-30 16:58:48 +00:00
Bruce Momjian
82700281d0 More cleanups for USE_PGTZ. 2004-04-30 16:08:01 +00:00
Bruce Momjian
b99a3a7541 Rename to USE_PGTZ to match code. 2004-04-30 15:01:25 +00:00
Bruce Momjian
a640845c88 Allow timezone to compile under Unix by blocking 'timezone' conflict with
system headers.

Allow system to find timezone database by pasing pkglibdir into the
binary via a define.
2004-04-30 14:24:14 +00:00
Bruce Momjian
e9a028f81f Convert DOS newlines to Unix newlines. 2004-04-30 04:44:06 +00:00
Bruce Momjian
7146eb0bc3 Integrate timezone library to be called only from Win32.
Timezone code backend integration done by Magnus Hagander.
2004-04-30 04:31:52 +00:00
Bruce Momjian
7d6f37b8c0 Enable use of our own timezone library for Win32. 2004-04-30 04:18:28 +00:00
Bruce Momjian
4a73eb5ab1 Minor adjustments to enable public-domain timezone library to be called
from our code.
2004-04-30 04:14:06 +00:00
Bruce Momjian
d248a67af1 Timezone library changes to map into our backend code. 2004-04-30 04:11:58 +00:00
Bruce Momjian
6a2b75c2c8 Add Olson's public domain timezone library to src/timezone. 2004-04-30 04:09:23 +00:00
Michael Meskes
d51d870f9e Synced parser and keyword list. 2004-04-29 14:08:10 +00:00
Bruce Momjian
e27338f26c Do thread testing from configure in a much cleaner fashion. 2004-04-27 19:51:12 +00:00
Bruce Momjian
ca8a8baa76 Add comments. 2004-04-27 18:40:50 +00:00
Bruce Momjian
f687c7e87f Use mktemp for temporary file names, per suggestion from Peter. 2004-04-27 18:36:31 +00:00
Bruce Momjian
b498b795a0 Move postgres.h to the top of the C file. 2004-04-27 17:22:41 +00:00
Bruce Momjian
095ed37f13 Fix subdir for thread test program. 2004-04-26 18:32:33 +00:00
Bruce Momjian
efc34e29a2 Add $(X) for cross-compiling. Seems the mingw compiler running on
FreeBSD doesn't add .EXE to links.

Michiel Ephraim
2004-04-26 17:40:48 +00:00
Bruce Momjian
725524bd3b Please find attached a small patch against current cvs head, so that
'information_schema' is considered a system schema by various
pg_stat*_*_{tables,sequences} views.

Fabien COELHO
2004-04-26 15:24:42 +00:00
Bruce Momjian
0a17fd726c Please find a attached a small patch that adds accessor functions
for "aclitem" so that it is not an opaque datatype.

I needed these functions to browse aclitems from user land. I can load
them when necessary, but it seems to me that these accessors for a
backend type belong to the backend, so I submit them.

Fabien Coelho
2004-04-26 15:06:49 +00:00
Dennis Bjorklund
9d8b414722 Translation updates 2004-04-26 06:33:10 +00:00
Bruce Momjian
30a06fe2c4 Unconditionally define:
-D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS

for all ports.  It can't hurt if they are not supported, but it makes
our job easier for porting.

Should fix Darwin compile and other platforms without mucking with the
thread detection code.
2004-04-26 04:04:42 +00:00
Bruce Momjian
f5b6ce7cb9 Clean tools/thread on make clean/distclean. 2004-04-26 00:48:38 +00:00
Bruce Momjian
144d828e7f More thread error improvments. 2004-04-26 00:38:25 +00:00
Bruce Momjian
2f5223600a More thread error message improvments. 2004-04-26 00:36:18 +00:00
Neil Conway
0370951347 Tiny assorted fixes: correct a typo in a comment in vacuumlazy.c, remove
some unused #include directives from bufmgr.c, and clarify comments in
bufmgr.h and buf.h
2004-04-25 23:50:58 +00:00
Bruce Momjian
6a27640230 Fix typo on thread lib name. 2004-04-25 21:03:27 +00:00
Bruce Momjian
45fbab2933 Make thread flags CFLAGS, not CPPFLAGS. 2004-04-25 20:57:32 +00:00
Bruce Momjian
ae5bc8a601 No need to use our standard libs for the thread test --- they might not
be compiled yet.
2004-04-25 20:47:56 +00:00
Neil Conway
1812d3b233 Remove the last traces of Joe Hellerstein's "xfunc" optimization. Patch
from Alvaro Herrera. Also, removed lispsort.c, since it is no longer
used.
2004-04-25 18:23:57 +00:00
Tom Lane
2ce964b958 Ensure getaddrinfo_all returns null result on failure. 2004-04-24 20:10:34 +00:00
Bruce Momjian
f6646efa4c Hook thread_test program run at the end of configure run.
Add test for cross-compiles that they have to run the thread_test
program on the target machine.
2004-04-23 23:58:12 +00:00
Bruce Momjian
95178c8d24 Report error if thread-test is run without having threading enabled in
configure.
2004-04-23 22:21:49 +00:00
Bruce Momjian
66b42d3028 Improve thread test program. Test only functions that need testing. 2004-04-23 20:35:50 +00:00
Neil Conway
fc7fd50182 Add ceiling() as an alias for ceil(), and power() as an alias for pow().
Regression tests and documentation have both been updated.

SQL2003 requires that both ceiling() and ceil() be present, so I have
documented both spellings. SQL2003 doesn't mention pow() as far as I
can see, so I decided to replace pow() with power() in the documentation:
there is little reason to encourage the continued usage of a function
that isn't compliant with the standard, given a standard-compliant
alternative.

RELEASE NOTES: should state that pow() is considered deprecated
(although I don't see the need to ever remove it.)
2004-04-23 20:32:20 +00:00
Bruce Momjian
7a66015e98 Add new auto-detection of thread flags.
Allow additional thread flags to be added via port templates.

Change thread flag names to PTHREAD_CFLAGS and PTHREAD_LIBS to match new
configure script.
2004-04-23 18:15:55 +00:00
Michael Meskes
77528c9bd7 Fixed memory misusage in variable handling. 2004-04-23 06:17:14 +00:00
Bruce Momjian
1b4e82559c Simplify thread test program. 2004-04-22 23:58:03 +00:00
Neil Conway
0fa2afa93a Make psql's \d+ command indicate whether the table in question
contains OIDs. Also, minor documentation improvements to the
psql reference page.
2004-04-22 17:38:16 +00:00
Bruce Momjian
b3bc93a4b7 Rename global psql startup file to psqlrc.sample. 2004-04-22 14:34:38 +00:00
Bruce Momjian
65b020bd61 Fix filename mention in psqlrc.sample file. 2004-04-22 14:33:49 +00:00
Neil Conway
139abc2896 Make LocalRefCount and PrivateRefCount arrays of int32, rather than long.
This saves a small amount of per-backend memory for LP64 machines.
2004-04-22 07:21:55 +00:00
Bruce Momjian
b00d50d365 Per discussion earlier today, here is a fix that lets ereport() on win32
report socket errors.

Magnus Hagander
2004-04-22 03:51:24 +00:00
Bruce Momjian
914042fe5f This patch makes the EXECUTE command's completion tag return the
completion tag of the actual statement executed.  This allows the
correct update count to be returned for UPDATE/INSERT/DELETE
statements.

Kris Jurka
2004-04-22 02:58:21 +00:00
Bruce Momjian
ec7c4c1b66 Please find attached a small patch so that "pg_restore" ignores some sql
errors. This is the second submission, which integrates Tom comments about
localisation and exit code. I also added some comments about one sql
command which is not ignored.

Fabien COELHO
2004-04-22 02:39:10 +00:00
Bruce Momjian
be6bbcef56 Add global psql config file, psql.rc.sample. 2004-04-22 01:53:37 +00:00
Bruce Momjian
f9a2d0b2fb More thread test program improvements. 2004-04-21 20:58:56 +00:00
Bruce Momjian
53b5455387 Improve thread test program to show if non-*_r functions are even called. 2004-04-21 20:51:54 +00:00
Tom Lane
37fa3b6c89 Tweak indexscan and seqscan code to arrange that steps from one page to
the next are handled by ReleaseAndReadBuffer rather than separate
ReleaseBuffer and ReadBuffer calls.  This cuts the number of acquisitions
of the BufMgrLock by a factor of 2 (possibly more, if an indexscan happens
to pull successive rows from the same heap page).  Unfortunately this
doesn't seem enough to get us out of the recently discussed context-switch
storm problem, but it's surely worth doing anyway.
2004-04-21 18:24:26 +00:00
Tom Lane
95a03e9cdf Another round of code cleanup on bufmgr. Use BM_VALID flag to keep track
of whether we have successfully read data into a buffer; this makes the
error behavior a bit more transparent (IMHO anyway), and also makes it
work correctly for local buffers which don't use Start/TerminateBufferIO.
Collapse three separate functions for writing a shared buffer into one.
This overlaps a bit with cleanups that Neil proposed awhile back, but
seems not to have committed yet.
2004-04-21 18:06:30 +00:00
Bruce Momjian
49d3d9cf40 Change COPY CSV keyword to be:
FORCE QUOTE to force quotes
	FORCE NOT NULL to quote null input values
2004-04-21 00:34:18 +00:00
Bruce Momjian
9b04ddc185 Add NetBSD thread compile flags. 2004-04-20 14:36:49 +00:00
Bruce Momjian
6949fc0269 Remove pg_encoding. Not needed anymore since we have an initdb in C. 2004-04-20 00:40:06 +00:00
PostgreSQL Daemon
41fa9e9bae Remove all of the libpgtcl and pgtclsh files, including all references to
them within the various makefiles

with_tcl is still required for the src/pl/tcl language
2004-04-20 00:33:53 +00:00
Tom Lane
011c3e62e7 Code review for ARC patch. Eliminate static variables, improve handling
of VACUUM cases so that VACUUM requests don't affect the ARC state at all,
avoid corner case where BufferSync would uselessly rewrite a buffer that
no longer contains the page that was to be flushed.  Make some minor
other cleanups in and around the bufmgr as well, such as moving PinBuffer
and UnpinBuffer into bufmgr.c where they really belong.
2004-04-19 23:27:17 +00:00
Bruce Momjian
52e4f27af9 Prevent doubling of escapes when not in quote mode for CSV. 2004-04-19 21:58:02 +00:00
Bruce Momjian
e60da4bcf6 Remove debug code that acidentally got into CVS from previous commit. 2004-04-19 21:22:14 +00:00
Bruce Momjian
09f317539a Fix for BEGIN with ISOLATION/READONLY clauses.
Fix for code originally added for 7.5.
2004-04-19 21:21:34 +00:00
Bruce Momjian
31338352bd * Most changes are to fix warnings issued when compiling win32
* removed a few redundant defines
* get_user_name safe under win32
* rationalized pipe read EOF for win32 (UPDATED PATCH USED)
* changed all backend instances of sleep() to pg_usleep

    - except for the SLEEP_ON_ASSERT in assert.c, as it would exceed a
32-bit long [Note to patcher: If a SLEEP_ON_ASSERT of 2000 seconds is
acceptable, please replace with pg_usleep(2000000000L)]

I added a comment to that part of the code:

    /*
     *  It would be nice to use pg_usleep() here, but only does 2000 sec
     *  or 33 minutes, which seems too short.
     */
    sleep(1000000);

Claudio Natoli
2004-04-19 17:42:59 +00:00
Bruce Momjian
862b20b382 Complete TODO item:
o -Allow dump/load of CSV format

This adds new keywords to COPY and \copy:

        CSV - enable CSV mode (comma separated variable)
        QUOTE - specify quote character
        ESCAPE - specify escape character
        FORCE - force quoting of specified column
	LITERAL - suppress null comparison for columns

Doc changes included.  Regression updates coming from Andrew.
2004-04-19 17:22:31 +00:00
Tom Lane
b5e52b080c Tweak findTargetlistEntry so that bare names occurring in GROUP BY clauses
are sought first as local FROM columns, then as local SELECT-list aliases,
and finally as outer FROM columns; the former behavior made outer FROM
columns take precedence over aliases.  This does not change spec
conformance because SQL99 allows only the first case anyway, and it seems
more useful and self-consistent.  Per gripe from Dennis Bjorklund 2004-04-05.
2004-04-18 18:12:58 +00:00
Bruce Momjian
3e2aef58a2 Handle Warn_restart_ready properly in SIGTERM safety patch. 2004-04-16 12:59:05 +00:00
Bruce Momjian
3a14336746 Modify COPY for() loop to use attnum as a variable name, not 'i'. 2004-04-15 22:36:03 +00:00
Tom Lane
6c72f44c62 Improve syntax error messages for invalid-argument cases in RETURN and
RETURN NEXT.
2004-04-15 13:01:45 +00:00
Peter Eisentraut
0117ed7d4c Translation updates 2004-04-15 08:15:09 +00:00
Peter Eisentraut
a45f9e4e52 Translation updates 2004-04-15 08:04:05 +00:00
Bruce Momjian
a4c40f140d Here's an attempt at new socket and signal code for win32.
It works on the principle of turning sockets into non-blocking, and then
emulate blocking behaviour on top of that, while allowing signals to
run. Signals are now implemented using an event instead of APCs, thus
getting rid of the issue of APCs not being compatible with "old style"
sockets functions.

It also moves the win32 specific code away from pqsignal.h/c into
port/win32, and also removes the "thread style workaround" of the APC
issue previously in place.

In order to make things work, a few things are also changed in pgstat.c:

1) There is now a separate pipe to the collector and the bufferer. This
is required because the pipe will otherwise only be signalled in one of
the processes when the postmaster goes down. The MS winsock code for
select() must have some kind of workaround for this behaviour, but I
have found no stable way of doing that. You really are not supposed to
use the same socket from more than one process (unless you use
WSADuplicateSocket(), in which case the docs specifically say that only
one will be flagged).

2) The check for "postmaster death" is moved into a separate select()
call after the main loop. The previous behaviour select():ed on the
postmaster pipe, while later explicitly saying "we do NOT check for
postmaster exit inside the loop".
The issue was that the code relies on the same select() call seeing both
the postmaster pipe *and* the pgstat pipe go away. This does not always
happen, and it appears that useing WSAEventSelect() makes it even more
common that it does not.
Since it's only called when the process exits, I don't think using a
separate select() call will have any significant impact on how the stats
collector works.

Magnus Hagander
2004-04-12 16:19:18 +00:00
Bruce Momjian
abdabeb995 Change psql \copy stdin/stdout to read from command input/output.
Add pstdin/pstdout to read from psql's stdin/stdout.

BACKWARD INCOMPATIBLE CHANGE
2004-04-12 15:58:52 +00:00
Bruce Momjian
3c4ab3f51d Exit backend from SIGTERM or FATAL by simulating client EOF, rather than
calling proc_exit() directly.  This should make SIGTERM more reliable.
2004-04-11 00:54:45 +00:00
Bruce Momjian
1934055cbe Please find a small patch to fix the brain damage "century" and
"millennium" date part implementation in postgresql, both in the code
and the documentation, so that it conforms to the official definition.
If you do not agree with the official definition, please send your
complaint to "pope@vatican.org". I'm not responsible for them;-)

With the previous version, the centuries and millenniums had a wrong
number and started the wrong year. Moreover century number 0, which does
not exist in reality, lasted 200 years. Also, millennium number 0 lasted
2000 years.

If you want postgresql to have it's own definition of "century" and
"millennium" that does not conform to the one of the society, just give
them another name. I would suggest "pgCENTURY" and "pgMILLENNIUM";-)

IMO, if someone may use the options, it means that postgresql is used for
historical data, so it make sense to have an historical definition. Also,
I just want to divide the year by 100 or 1000, I can do that quite easily.

BACKWARD INCOMPATIBLE CHANGE

Fabien Coelho - coelho@cri.ensmp.fr
2004-04-10 18:02:59 +00:00
Dennis Bjorklund
4bd3f0744d Translation updates 2004-04-09 06:49:35 +00:00
Dennis Bjorklund
0469e9e086 Translation updates 2004-04-09 05:54:01 +00:00
Bruce Momjian
60282569f4 Magnus says new Win32 timezone library will not need special horology:
so remove regression result map line:

	horology/win32=horology-no-DST-before-1970
2004-04-08 23:00:55 +00:00
Bruce Momjian
1f12abbc7d Push superuser check farther down in the if() statements to fix startup
crash with debug in log_statement patch.
2004-04-07 18:52:26 +00:00
Tom Lane
0bb21d391c Still another place to make the world safe for zero-column tables.
Per example from Jiang Wei.
2004-04-07 18:46:12 +00:00
Bruce Momjian
e675a23688 Update Darwin thread compile flags, and OS version info. 2004-04-07 18:31:59 +00:00
Bruce Momjian
9b3bc35f82 Update darwin OS version. 2004-04-07 18:30:59 +00:00
Tom Lane
989067bd22 Extend set-operation planning to keep track of the sort ordering induced
by the set operation, so that redundant sorts at higher levels can be
avoided.  This was foreseen a good while back, but not done.  Per request
from Karel Zak.
2004-04-07 18:17:25 +00:00
Tom Lane
5d1af6aee3 build_subquery_pathkeys() was examining wrong copy of subquery target list,
causing it to fail to recognize the output ordering of subqueries that
contain set operations (UNION/INTERSECT/EXPECT).  Per example from Karel Zak.
2004-04-07 17:42:28 +00:00
Bruce Momjian
b48325310b Update Darwin as thread-safe. 2004-04-07 14:21:39 +00:00
Bruce Momjian
6a25c6e1d1 > >>1. change the type of "log_statement" option from boolean to string,
> >>with allowed values of "all, mod, ddl, none" with default "none".

OK, here is a patch that implements #1.  Here is sample output:

        test=> set client_min_messages = 'log';
        SET
        test=> set log_statement = 'mod';
        SET
        test=> select 1;
         ?column?
        ----------
                1
        (1 row)

        test=> update test set x=1;
        LOG:  statement: update test set x=1;
        ERROR:  relation "test" does not exist
        test=> update test set x=1;
        LOG:  statement: update test set x=1;
        ERROR:  relation "test" does not exist
        test=> copy test from '/tmp/x';
        LOG:  statement: copy test from '/tmp/x';
        ERROR:  relation "test" does not exist
        test=> copy test to  '/tmp/x';
        ERROR:  relation "test" does not exist
        test=> prepare xx as select 1;
        PREPARE
        test=> prepare xx as update x set y=1;
        LOG:  statement: prepare xx as update x set y=1;
        ERROR:  relation "x" does not exist
        test=> explain analyze select 1;;
                                             QUERY PLAN
        ------------------------------------------------------------------------------------
         Result  (cost=0.00..0.01 rows=1 width=0) (actual time=0.006..0.007 rows=1 loops=1)
         Total runtime: 0.046 ms
        (2 rows)

        test=> explain analyze update test set x=1;
        LOG:  statement: explain analyze update test set x=1;
        ERROR:  relation "test" does not exist
        test=> explain update test set x=1;
        ERROR:  relation "test" does not exist

It checks PREPARE and EXECUTE ANALYZE too.  The log_statement values are
'none', 'mod', 'ddl', and 'all'.  For 'all', it prints before the query
is parsed, and for ddl/mod, it does it right after parsing using the
node tag (or command tag for CREATE/ALTER/DROP), so any non-parse errors
will print after the log line.
2004-04-07 05:05:50 +00:00
Tom Lane
e5170860ee Support FULL JOIN with no join clauses, such as X FULL JOIN Y ON TRUE.
That particular corner case is not exactly compelling, but given 7.4's
ability to discard redundant join clauses, it is possible for the situation
to arise from queries that are not so obviously silly.  Per bug report
of 6-Apr-04.
2004-04-06 18:46:03 +00:00
Tom Lane
2098ec6e37 ALTER SEQUENCE RESTART did the wrong thing if sequence last_value was
equal to the desired restart value (must clear is_called, did not).
Per bug report #1127 from Piotr Konieczny.
2004-04-06 16:39:30 +00:00
Bruce Momjian
055b0d27f6 Add thread program mention of errno thread-safety. 2004-04-06 13:55:17 +00:00
Bruce Momjian
4a72dbc1ae The attached applied patch throws an error if the delimiter appears in
the COPY NULL string:

        test=> copy pg_language to '/tmp/x' with delimiter '|';
        COPY
        test=> copy pg_language to '/tmp/x' with delimiter '|' null '|x';
        ERROR:  COPY delimiter must not appear in the NULL specification
        test=> copy pg_language from '/tmp/x' with delimiter '|' null '|x';
        ERROR:  COPY delimiter must not appear in the NULL specification

It also throws an error if it conflicts with the default NULL string:

        test=> copy pg_language to '/tmp/x' with delimiter '\\';
        ERROR:  COPY delimiter must not appear in the NULL specification
        test=> copy pg_language to '/tmp/x' with delimiter '\\' NULL 'x';
        COPY
2004-04-06 13:21:33 +00:00
Bruce Momjian
5e9f4d26bc Add CLUSTER tag to psql \d display. 2004-04-06 04:05:17 +00:00
Bruce Momjian
d8fe99d98c Add comment that sched_yield might be a portability problem. 2004-04-05 14:13:45 +00:00
Bruce Momjian
a86c329f99 Change getpid() while loop to use sched_yield(), greatly speeds up test.
sched_yield is a requirement for the test but not for our PostgreSQL
code, so if it causes a portability problem, we will remove it.
2004-04-05 14:12:32 +00:00
Peter Eisentraut
49c8d08bc8 New translation 2004-04-05 09:34:11 +00:00
Peter Eisentraut
fc43abaccf Translation updates 2004-04-05 09:13:43 +00:00
Bruce Momjian
a1d63d9232 Have threads wait for parent to test thread-specific pointers before
exiting.
2004-04-05 05:43:06 +00:00