- 13 4月, 2004 1 次提交
-
-
由 Bruce Momjian 提交于
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
-
- 11 4月, 2004 2 次提交
-
-
由 Bruce Momjian 提交于
calling proc_exit() directly. This should make SIGTERM more reliable.
-
由 Bruce Momjian 提交于
"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
-
- 09 4月, 2004 1 次提交
-
-
由 Dennis Bjorklund 提交于
-
- 08 4月, 2004 4 次提交
-
-
由 Bruce Momjian 提交于
crash with debug in log_statement patch.
-
由 Tom Lane 提交于
Per example from Jiang Wei.
-
由 Tom Lane 提交于
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.
-
由 Tom Lane 提交于
causing it to fail to recognize the output ordering of subqueries that contain set operations (UNION/INTERSECT/EXPECT). Per example from Karel Zak.
-
- 07 4月, 2004 3 次提交
-
-
由 Bruce Momjian 提交于
> >>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.
-
由 Tom Lane 提交于
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.
-
由 Tom Lane 提交于
equal to the desired restart value (must clear is_called, did not). Per bug report #1127 from Piotr Konieczny.
-
- 06 4月, 2004 1 次提交
-
-
由 Bruce Momjian 提交于
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
-
- 05 4月, 2004 5 次提交
-
-
由 Bruce Momjian 提交于
be built under VC++. Moves a pgstat win32 #def to port.h Claudio Natoli
-
由 Bruce Momjian 提交于
#ifdef NOT_USED code, and adds a new TBLOCK state which signals the fact that StartTransaction() has been executed. Alvaro Herrera
-
由 Bruce Momjian 提交于
Fabien COELHO
-
由 Bruce Momjian 提交于
variable to control logoutput location on Unix and Win32. Magnus Hagander
-
由 Bruce Momjian 提交于
handle new postgresql.conf values with SIGHUP better by better enforcing USERLIMIT settings on existing non-super-user backends.
-
- 03 4月, 2004 4 次提交
-
-
由 Tom Lane 提交于
'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.
-
由 Tom Lane 提交于
-
由 Tom Lane 提交于
-
由 Tom Lane 提交于
transformed whole-row variables. Cleaner to use regular whole-row Vars.
-
- 02 4月, 2004 3 次提交
-
-
由 Tom Lane 提交于
HPUX 11 ...)
-
由 Tom Lane 提交于
-
由 Tom Lane 提交于
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.
-
- 01 4月, 2004 1 次提交
-
-
由 Bruce Momjian 提交于
-
- 30 3月, 2004 3 次提交
-
-
由 Bruce Momjian 提交于
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.
-
由 Teodor Sigaev 提交于
boxes. Change interface to user-defined GiST support methods union and picksplit. Now instead of bytea struct it used special GistEntryVector structure.
-
由 Tom Lane 提交于
same path keys and nearly equivalent costs will be considered redundant. The exact nature of the fuzziness may get adjusted later based on current discussions, but no one has shot a hole in the basic idea yet ...
-
- 28 3月, 2004 2 次提交
-
-
由 Bruce Momjian 提交于
-
由 Bruce Momjian 提交于
-
- 27 3月, 2004 1 次提交
-
-
由 Tom Lane 提交于
only stable and not immutable, pred_test_simple_clause has to guard against making invalid deductions. Add a test for immutability of the selected test_op.
-
- 25 3月, 2004 1 次提交
-
-
由 Tom Lane 提交于
is measured in kilobytes and checked against actual physical execution stack depth, as per my proposal of 30-Dec. This gives us a fairly bulletproof defense against crashing due to runaway recursive functions.
-
- 24 3月, 2004 7 次提交
-
-
由 Tom Lane 提交于
-
由 Bruce Momjian 提交于
(errmsg("no socket configured for listening")));
-
由 Bruce Momjian 提交于
with socket calls in signal handlers (APC) on Win32. See details in mail to pgsql-hackers-win32 a couple of minutes ago. Magnus Hagander
-
由 Bruce Momjian 提交于
I have removed the docs mentioning that SSL and Kerberos are not thread-safe. Manfred Spraul
-
由 Neil Conway 提交于
parameter description: postgresql.conf is not the place for documentating the functionality of a GUC var.
-
由 Bruce Momjian 提交于
in s_lock.c were not updated, and still refers to select. Made my grep hit the wrong files, so I figured a simple patch was in order.. (other refs in the same comment block was changed..) Magnus Hagander
-
由 Tom Lane 提交于
remove separate implementation of ALTER TABLE SET WITHOUT OIDS in favor of doing a regular DROP. Also, cause CREATE TABLE to account completely correctly for the inheritance status of the OID column. This fixes problems with dropping OID columns that have dependencies, as noted by Christopher Kings-Lynne, as well as making sure that you can't drop an OID column that was inherited from a parent.
-
- 23 3月, 2004 1 次提交
-
-
由 Tom Lane 提交于
listen_addresses parameter, as per recent discussion. The default behavior is now to listen on localhost, which eliminates the need for the -i postmaster switch in many scenarios. Andrew Dunstan
-