git.postgresql.org Git - postgresql.git/log
Prevent doubling of escapes when not in quote mode for CSV.
The attached patch for contrib/pg_autovacuum/README.pg_autovacuum fixes
one apparent error and makes a minor stylistic change that makes it more
consistent and makes clear something that confused me :-)
Andrew Dunstan
Remove debug code that acidentally got into CVS from previous commit.
Fix for BEGIN with ISOLATION/READONLY clauses.
Fix for code originally added for 7.5.
* 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
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.
Done:
> o -Allow dump/load of CSV format
Fix typo:
< * -Allow psql \du to show groups, and add \dg for groups
> * -Allow psql \du to show users, and add \dg for groups
Tom Lane [2004年4月18日 18:12:58 +0000 (18:12 +0000)]
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日.
Handle Warn_restart_ready properly in SIGTERM safety patch.
Modify COPY for() loop to use attnum as a variable name, not 'i'.
Tom Lane [2004年4月15日 13:01:45 +0000 (13:01 +0000)]
Improve syntax error messages for invalid-argument cases in RETURN and
RETURN NEXT.
Translation updates
Translation updates
Clarify meaning of second DateStyle value.
Update name:
< * Alvaro Herrera <alvherre@dcc.uchile.cl>
> * Alvaro is Alvaro Herrera <alvherre@dcc.uchile.cl>
Update owners of items:
< * Add the concept of dataspaces/tablespaces [tablespaces]
> * Add the concept of dataspaces/tablespaces [tablespaces] (Gavin)
167c167
< * Allow savepoints / nested transactions [transactions] (Bruce)
> * Allow savepoints / nested transactions [transactions] (Alvaro)
240c240
< o Allow Java server-side programming [java]
> o Allow Java server-side programming [java] (Dave)
496a497
> * Alvaro Herrera <alvherre@dcc.uchile.cl>
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
Change psql \copy stdin/stdout to read from command input/output.
Add pstdin/pstdout to read from psql's stdin/stdout.
BACKWARD INCOMPATIBLE CHANGE
> > This update fixes a few small typos in names,
> > pronouns and formatting in the Russian FAQ.
Serguei Mokhov
Exit backend from SIGTERM or FATAL by simulating client EOF, rather than
calling proc_exit() directly. This should make SIGTERM more reliable.
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
Remove libpgeasy and odbc doc reference in filelist.sgml --- removed to
gborg.
Translation updates
Translation updates
Magnus says new Win32 timezone library will not need special horology:
so remove regression result map line:
horology/win32=horology-no-DST-before-1970
Add SQL 2003 standards.
Remove bad URL.
Update:
< * Allow LOCALE on a per-column basis, default to ASCII
> * Allow locale to be set at database creation
> * Allow locale on a per-column basis, default to ASCII
> * Optimize locale to have minimal performance impact when not used (Peter E)
105d106
< * Optimize locale to have minimal performance impact when not used (Peter E)
111d111
< * Allow locale to be set at database creation
Push superuser check farther down in the if() statements to fix startup
crash with debug in log_statement patch.
Tom Lane [Wed, 7 Apr 2004 18:46:12 +0000 (18:46 +0000)]
Still another place to make the world safe for zero-column tables.
Per example from Jiang Wei.
Add:
> * Allow locale to be set at database creation
Update Darwin thread compile flags, and OS version info.
Update darwin OS version.
Tom Lane [Wed, 7 Apr 2004 18:17:25 +0000 (18:17 +0000)]
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.
Tom Lane [Wed, 7 Apr 2004 17:42:28 +0000 (17:42 +0000)]
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.
Done:
> * -Allow logging of only data definition(DDL), or DDL and modification statements
Add:
> * Add a session mode to warn about non-standard SQL usage
Update FAQ_DEV.
Update Darwin as thread-safe.
> >>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.
Tom Lane [Tue, 6 Apr 2004 18:46:03 +0000 (18:46 +0000)]
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.
Tom Lane [Tue, 6 Apr 2004 16:39:30 +0000 (16:39 +0000)]
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.
Add thread program mention of errno thread-safety.
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
Add CLUSTER tag to psql \d display.
Add comment that sched_yield might be a portability problem.
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.
New translation
Translation updates
Have threads wait for parent to test thread-specific pointers before
exiting.
Corrects issues recently posted by Dann Corbit, allowing libpq/psql to
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 some
#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.
Fabien COELHO
Remove 'syslog' GUC variable, and add more logical 'log_destination'
variable to control logoutput location on Unix and Win32.
Magnus Hagander
Improve handling of GUC USERLIMIT variables by reorganizing code. Also,
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.
Update thread test to only test for 'localhost' and local machine name.
Update thread test to do getpid() in while loop, also use weather.com
rather than slashdot.org for testing.
Tom Lane [Fri, 2 Apr 2004 23:14:08 +0000 (23:14 +0000)]
check_sql_fn_retval has always thought that we supported doing
'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 [Fri, 2 Apr 2004 21:30:44 +0000 (21:30 +0000)]
Fix poor choice of error message in corner cases.
Tom Lane [Fri, 2 Apr 2004 21:05:32 +0000 (21:05 +0000)]
Clean up some code that had gotten a bit ugly through repeated revisions.
Tom Lane [Fri, 2 Apr 2004 19:07:02 +0000 (19:07 +0000)]
Get rid of crocky use of RangeVar nodes in parser to represent partially
transformed whole-row variables. Cleaner to use regular whole-row Vars.
Translation updates
Translation updates
Tom Lane [Fri, 2 Apr 2004 00:41:18 +0000 (00:41 +0000)]
Fix some more compatibility issues (ctype.h macros must never be passed
signed chars...)
Tom Lane [Thu, 1 Apr 2004 23:52:18 +0000 (23:52 +0000)]
Fix some portability issues with new float input code (didn't work on
HPUX 11 ...)
Tom Lane [Thu, 1 Apr 2004 23:44:38 +0000 (23:44 +0000)]
Fix some portability issues (reliance on gcc-isms).
Tom Lane [Thu, 1 Apr 2004 23:35:35 +0000 (23:35 +0000)]
Fix portability issues with functions that don't match their declaration.
Tom Lane [Thu, 1 Apr 2004 22:51:31 +0000 (22:51 +0000)]
Add missing casts to unsigned char in recently-added isspace() calls.
Tom Lane [Thu, 1 Apr 2004 21:59:45 +0000 (21:59 +0000)]
Adjust expected regression outputs for plan changes caused by recent
'fuzzy cost comparison' patch. Mea culpa for not having noticed this
when I committed the patch.
Tom Lane [Thu, 1 Apr 2004 21:28:47 +0000 (21:28 +0000)]
Replace TupleTableSlot convention for whole-row variables and function
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.
Add description of log_statement_stats's function (total statement stats
rather than per-stage stats).
Back out tutorial changes:
---------------------------------------------------------------------------
1. In keeping with the recent discussion that there should be more
said about views, stored procedures, and triggers, in the tutorial, I
have added a bit of verbiage to that end.
2. Some formatting changes to the datetime discussion, as well as
addition of a citation of a relevant book on calendars.
Christopher Browne
Add psql backslash command discussion.
Add:
* Move psql backslash database information into the backend, use
nmumonic commands? [psql]
Remove:
* Prevent unneeded quoting in psql \d output using fmtId()
Fix markup errors from recent patch.
1. In keeping with the recent discussion that there should be more
said about views, stored procedures, and triggers, in the tutorial, I
have added a bit of verbiage to that end.
2. Some formatting changes to the datetime discussion, as well as
addition of a citation of a relevant book on calendars.
Christopher Browne
Add:
> * Add GUC variable to allow output of interval values in ISO8601 format
Add mention of how to use \df to find functions using/returning specific
data types.
Fix to_char for 1 BC. Previously it returned 1 AD.
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.
Cleanup vectors of GISTENTRY and eliminate problem with 64-bit strict-aligned
boxes. Change interface to user-defined GiST support methods union and
picksplit. Now instead of bytea struct it used special GistEntryVector
structure.
Tom Lane [2004年3月29日 19:58:04 +0000 (19:58 +0000)]
Use fuzzy comparison of path costs in add_path(), so that paths with the
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 ...
Fixed possible segfault in type.c (by Juergen Cappel)
Update FAQ from Robert Treat
Tom Lane [2004年3月28日 06:09:08 +0000 (06:09 +0000)]
Some further editorializing on README.CVS.
Clean up thread test program.
Add test for thread-safe errno to thread test program.
Add comment about psql \s (history display):
/* This scrolls off the screen when using /dev/tty */
Clean up function call arg appearance.
Change small 'if/else' test to use Max().
Tom Lane [2004年3月27日 03:08:42 +0000 (03:08 +0000)]
Fix brain-dead placement of global variable declaration.
Tom Lane [2004年3月27日 00:24:28 +0000 (00:24 +0000)]
Now that we are allowing index opclasses to contain operators that are
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.
Add -D_REENTRANT for Solaris threading.
More cross-reference work, other minor SGML fixes and improvements.
Update gcc solaris flags.
Fix for SSL compile.
Tom Lane [2004年3月25日 18:57:57 +0000 (18:57 +0000)]
Convert some GUC variable references to links.
1 Minimize memory allocation for void (but not null) value.
2 Add silly ordering for ts_vector to aim grouping, union, except etc. Don't use BTree opclass (tsvector_ops).
This is the main PostgreSQL git repository.
RSS
Atom