aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Handle Warn_restart_ready properly in SIGTERM safety patch.Bruce Momjian2004-04-16
|
* Modify COPY for() loop to use attnum as a variable name, not 'i'.Bruce Momjian2004-04-15
|
* Improve syntax error messages for invalid-argument cases in RETURN andTom Lane2004-04-15
| | | | RETURN NEXT.
* Translation updatesPeter Eisentraut2004-04-15
|
* Translation updatesPeter Eisentraut2004-04-15
|
* Here's an attempt at new socket and signal code for win32.Bruce Momjian2004-04-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Change psql \copy stdin/stdout to read from command input/output.Bruce Momjian2004-04-12
| | | | | | Add pstdin/pstdout to read from psql's stdin/stdout. BACKWARD INCOMPATIBLE CHANGE
* Exit backend from SIGTERM or FATAL by simulating client EOF, rather thanBruce Momjian2004-04-11
| | | | calling proc_exit() directly. This should make SIGTERM more reliable.
* Please find a small patch to fix the brain damage "century" andBruce Momjian2004-04-10
| | | | | | | | | | | | | | | | | | | | | | | | "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
* Translation updatesDennis Bjorklund2004-04-09
|
* Translation updatesDennis Bjorklund2004-04-09
|
* Magnus says new Win32 timezone library will not need special horology:Bruce Momjian2004-04-08
| | | | | | so remove regression result map line: horology/win32=horology-no-DST-before-1970
* Push superuser check farther down in the if() statements to fix startupBruce Momjian2004-04-07
| | | | crash with debug in log_statement patch.
* Still another place to make the world safe for zero-column tables.Tom Lane2004-04-07
| | | | Per example from Jiang Wei.
* Update Darwin thread compile flags, and OS version info.Bruce Momjian2004-04-07
|
* Update darwin OS version.Bruce Momjian2004-04-07
|
* Extend set-operation planning to keep track of the sort ordering inducedTom Lane2004-04-07
| | | | | | 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.
* build_subquery_pathkeys() was examining wrong copy of subquery target list,Tom Lane2004-04-07
| | | | | causing it to fail to recognize the output ordering of subqueries that contain set operations (UNION/INTERSECT/EXPECT). Per example from Karel Zak.
* Update Darwin as thread-safe.Bruce Momjian2004-04-07
|
* > >>1. change the type of "log_statement" option from boolean to string,Bruce Momjian2004-04-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | > >>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.
* Support FULL JOIN with no join clauses, such as X FULL JOIN Y ON TRUE.Tom Lane2004-04-06
| | | | | | | 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.
* ALTER SEQUENCE RESTART did the wrong thing if sequence last_value wasTom Lane2004-04-06
| | | | | equal to the desired restart value (must clear is_called, did not). Per bug report #1127 from Piotr Konieczny.
* Add thread program mention of errno thread-safety.Bruce Momjian2004-04-06
|
* The attached applied patch throws an error if the delimiter appears inBruce Momjian2004-04-06
| | | | | | | | | | | | | | | | | | 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
* Add CLUSTER tag to psql \d display.Bruce Momjian2004-04-06
|
* Add comment that sched_yield might be a portability problem.Bruce Momjian2004-04-05
|
* Change getpid() while loop to use sched_yield(), greatly speeds up test.Bruce Momjian2004-04-05
| | | | | 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.
* New translationPeter Eisentraut2004-04-05
|
* Translation updatesPeter Eisentraut2004-04-05
|
* Have threads wait for parent to test thread-specific pointers beforeBruce Momjian2004-04-05
| | | | exiting.
* Corrects issues recently posted by Dann Corbit, allowing libpq/psql toBruce Momjian2004-04-05
| | | | | | be built under VC++. Moves a pgstat win32 #def to port.h Claudio Natoli
* This is a cleanup patch for access/transam/xact.c. It only removes someBruce Momjian2004-04-05
| | | | | | | #ifdef NOT_USED code, and adds a new TBLOCK state which signals the fact that StartTransaction() has been executed. Alvaro Herrera
* Allow LIKE/ILIKE to appear in more places in a query.Bruce Momjian2004-04-05
| | | | Fabien COELHO
* Remove 'syslog' GUC variable, and add more logical 'log_destination'Bruce Momjian2004-04-05
| | | | | | variable to control logoutput location on Unix and Win32. Magnus Hagander
* Improve handling of GUC USERLIMIT variables by reorganizing code. Also,Bruce Momjian2004-04-05
| | | | | handle new postgresql.conf values with SIGHUP better by better enforcing USERLIMIT settings on existing non-super-user backends.
* Add volatile to thread-specific thread variables.Bruce Momjian2004-04-05
|
* Update thread test to only test for 'localhost' and local machine name.Bruce Momjian2004-04-05
|
* Update thread test to do getpid() in while loop, also use weather.comBruce Momjian2004-04-04
| | | | rather than slashdot.org for testing.
* check_sql_fn_retval has always thought that we supported doingTom Lane2004-04-02
| | | | | | 'SELECT foo()' in a SQL function returning a rowtype, to simply pass back the results of another function returning the same rowtype. However, that hasn't actually worked in many years. Now it works again.
* Fix poor choice of error message in corner cases.Tom Lane2004-04-02
|
* Clean up some code that had gotten a bit ugly through repeated revisions.Tom Lane2004-04-02
|
* Get rid of crocky use of RangeVar nodes in parser to represent partiallyTom Lane2004-04-02
| | | | transformed whole-row variables. Cleaner to use regular whole-row Vars.
* Translation updatesDennis Bjorklund2004-04-02
|
* Translation updatesDennis Bjorklund2004-04-02
|
* Fix some portability issues with new float input code (didn't work onTom Lane2004-04-01
| | | | HPUX 11 ...)
* Add missing casts to unsigned char in recently-added isspace() calls.Tom Lane2004-04-01
|
* Adjust expected regression outputs for plan changes caused by recentTom Lane2004-04-01
| | | | | 'fuzzy cost comparison' patch. Mea culpa for not having noticed this when I committed the patch.
* Replace TupleTableSlot convention for whole-row variables and functionTom Lane2004-04-01
| | | | | | | | results with tuples as ordinary varlena Datums. This commit does not in itself do much for us, except eliminate the horrid memory leak associated with evaluation of whole-row variables. However, it lays the groundwork for allowing composite types as table columns, and perhaps some other useful features as well. Per my proposal of a few days ago.
* Improve comments on USERLIMIT GUC processing.Bruce Momjian2004-04-01
|
* Fix to_char for 1 BC. Previously it returned 1 AD.Bruce Momjian2004-03-30
| | | | | | | Fix to_char(year) for BC dates. Previously it returned one less than the current year. Add documentation mentioning that there is no 0 AD.