Tom Lane [Wed, 19 Nov 2008 01:10:24 +0000 (01:10 +0000)]
Some infrastructure changes for the upcoming auto-explain contrib module:
* Refactor explain.c slightly to export a convenient-to-use subroutine
for printing EXPLAIN results.
* Provide hooks for plugins to get control at ExecutorStart and ExecutorEnd
as well as ExecutorRun.
* Add some minimal support for tracking the total runtime of ExecutorRun.
This code won't actually do anything unless a plugin prods it to.
* Change the API of the DefineCustomXXXVariable functions to allow nonzero
"flags" to be specified for a custom GUC variable. While at it, also make
the "bootstrap" default value for custom GUCs be explicitly specified as a
parameter to these functions. This is to eliminate confusion over where the
default comes from, as has been expressed in the past by some users of the
custom-variable facility.
* Refactor GUC code a bit to ensure that a custom variable gets initialized to
something valid (like its default value) even if the placeholder value was
invalid.
Magnus Hagander [Tue, 18 Nov 2008 21:17:26 +0000 (21:17 +0000)]
Add required include to build with cygwin.
Andrew Chernow
Peter Eisentraut [Tue, 18 Nov 2008 13:10:20 +0000 (13:10 +0000)]
Ident authentication over Unix-domain sockets on Solaris, using
getpeerucred() function.
Author: Garick Hamlin <ghamlin@isc.upenn.edu>
Bruce Momjian [Mon, 17 Nov 2008 18:55:14 +0000 (18:55 +0000)]
Document that Bucardo is an example of mulit-master replication with
conflict resolution.
Teodor Sigaev [Mon, 17 Nov 2008 12:17:09 +0000 (12:17 +0000)]
Replace plain-memory ordered array by binary tree in ts_stat() function.
Performance is increased from 50% up to 10^3 times depending on data.
Tom Lane [Sun, 16 Nov 2008 17:34:28 +0000 (17:34 +0000)]
Modify UPDATE/DELETE WHERE CURRENT OF to use the FOR UPDATE infrastructure to
locate the target row, if the cursor was declared with FOR UPDATE or FOR
SHARE. This approach is more flexible and reliable than digging through the
plan tree; for instance it can cope with join cursors. But we still provide
the old code for use with non-FOR-UPDATE cursors. Per gripe from Robert Haas.
Tom Lane [Sat, 15 Nov 2008 22:20:55 +0000 (22:20 +0000)]
Add missing dependencies to preproc.y build rule
Andrew Dunstan [Sat, 15 Nov 2008 22:18:05 +0000 (22:18 +0000)]
Add missing semicolon, per grip from Alex Hunsaker.
Peter Eisentraut [Sat, 15 Nov 2008 20:52:35 +0000 (20:52 +0000)]
Fix crash of xmlconcat(NULL)
also backpatched to 8.3
Tom Lane [Sat, 15 Nov 2008 19:43:47 +0000 (19:43 +0000)]
Make SELECT FOR UPDATE/SHARE work on inheritance trees, by having the plan
return the tableoid as well as the ctid for any FOR UPDATE targets that
have child tables. All child tables are listed in the ExecRowMark list,
but the executor just skips the ones that didn't produce the current row.
Curiously, this longstanding restriction doesn't seem to have been documented
anywhere; so no doc changes.
Tom Lane [Fri, 14 Nov 2008 22:58:51 +0000 (22:58 +0000)]
Document a gotcha that happens on Windows when using libpq's new event
procedure support: it's possible to get confused because exported procedures
have two different addresses. Per Andrew Chernow.
Magnus Hagander [Fri, 14 Nov 2008 22:12:37 +0000 (22:12 +0000)]
Exclude contrib/intagg from the list of MSVC project files to be generated,
since it's now just a SQL module and no C code.
Tom Lane [Fri, 14 Nov 2008 21:45:07 +0000 (21:45 +0000)]
One more hack to see if we can get the cygwin machines building again.
This continues the saga of trying to get PGDLLIMPORT to work in pg_crc.h
in both backend and frontend environments.
Tom Lane [Fri, 14 Nov 2008 20:21:07 +0000 (20:21 +0000)]
Second try at fixing DLLIMPORT problem for pg_crc.h on Cygwin.
Tom Lane [Fri, 14 Nov 2008 19:58:45 +0000 (19:58 +0000)]
Reduce contrib/intagg to a thin wrapper around the new core functions
array_agg() and unnest(). We could drop it entirely in the future,
but let's keep it for a release or two as a compatibility assist.
Tom Lane [Fri, 14 Nov 2008 19:47:50 +0000 (19:47 +0000)]
In CREATE AGGREGATE, allow the transition datatype to be "internal", but only
if the user is superuser. This makes available to extension modules the same
sort of trick being practiced by array_agg(). The reason for the superuser
restriction is that you could crash the system by connecting up an
incompatible pair of internal-using functions as an aggregate. It shouldn't
interfere with any legitimate use, since you'd have to be superuser to create
the internal-using transition and final functions anyway.
Tom Lane [Fri, 14 Nov 2008 17:43:14 +0000 (17:43 +0000)]
ecpg's preproc.y is now generated as needed, so remove from CVS.
Tom Lane [Fri, 14 Nov 2008 17:40:56 +0000 (17:40 +0000)]
Make CREATE CONVERSION verify that a putative encoding conversion function
returns VOID. This is the last of the easy fixes I recommended in
11870.
1218838360@sss.pgh.pa.us --- the others got done awhile ago but
I forgot about this one.
Tom Lane [Fri, 14 Nov 2008 17:18:20 +0000 (17:18 +0000)]
Improve comment about when to clean generated files.
Michael Meskes [Fri, 14 Nov 2008 17:11:40 +0000 (17:11 +0000)]
Enable script to generate preproc.y in build process.
Michael Meskes [Fri, 14 Nov 2008 16:25:34 +0000 (16:25 +0000)]
Fixed test for output_filename == stdout.
Heikki Linnakangas [Fri, 14 Nov 2008 11:09:50 +0000 (11:09 +0000)]
Fix oversight in previous error-reporting patch; mustn't pfree path string
before passing it to elog.
Peter Eisentraut [Fri, 14 Nov 2008 10:43:59 +0000 (10:43 +0000)]
Since doc/src/sgml already builds the HTML docs twice to resolve index
entries, we don't have to do two builds here as well.
Peter Eisentraut [Fri, 14 Nov 2008 10:22:48 +0000 (10:22 +0000)]
Set SQL man pages to be section 7 by default, and only transform them to
another section if required by the platform (instead of the old way of
building them in section "l" and always transforming them to the
platform-specific section).
This speeds up the installation on common platforms, and it avoids some
funny business with the man page tools and build process.
Michael Meskes [Fri, 14 Nov 2008 10:03:33 +0000 (10:03 +0000)]
Added files containing changes between gram.y and preproc.y.
Michael Meskes [Fri, 14 Nov 2008 10:01:04 +0000 (10:01 +0000)]
Adding script that generates preproc.y from gram.y to CVS.
Tom Lane [Fri, 14 Nov 2008 02:09:52 +0000 (02:09 +0000)]
Actually, instead of whining about how type internal might not safely store
a pointer, why don't we just fix that. Every known use of "internal" really
means a pointer anyway.