]> granicus.if.org Git - postgresql/log
postgresql
18 years agoChange \; to ; in RULE, \; unnecessary.
Bruce Momjian [Mon, 22 May 2006 14:08:06 +0000 (14:08 +0000)]
Change \; to ; in RULE, \; unnecessary.

18 years agoAdd strerror to pg_dump error messages where missing.
Peter Eisentraut [Mon, 22 May 2006 11:21:54 +0000 (11:21 +0000)]
Add strerror to pg_dump error messages where missing.

18 years agoUpdate release notes for upcoming releases.
Tom Lane [Sun, 21 May 2006 21:49:22 +0000 (21:49 +0000)]
Update release notes for upcoming releases.

18 years agoRemove mention of pg_upgrade in release checklist.
Bruce Momjian [Sun, 21 May 2006 20:29:16 +0000 (20:29 +0000)]
Remove mention of pg_upgrade in release checklist.

18 years agoFix errors in fortuna PRNG reseeding logic that could cause a predictable
Tom Lane [Sun, 21 May 2006 20:22:16 +0000 (20:22 +0000)]
Fix errors in fortuna PRNG reseeding logic that could cause a predictable
session key to be selected by pgp_sym_encrypt() in some cases.  This only
affects non-OpenSSL-using builds.  Marko Kreen

18 years agoModify libpq's string-escaping routines to be aware of encoding considerations
Tom Lane [Sun, 21 May 2006 20:19:23 +0000 (20:19 +0000)]
Modify libpq's string-escaping routines to be aware of encoding considerations
and standard_conforming_strings.  The encoding changes are needed for proper
escaping in multibyte encodings, as per the SQL-injection vulnerabilities
noted in CVE-2006-2313 and CVE-2006-2314.  Concurrent fixes are being applied
to the server to ensure that it rejects queries that may have been corrupted
by attempted SQL injection, but this merely guarantees that unpatched clients
will fail rather than allow injection.  An actual fix requires changing the
client-side code.  While at it we have also fixed these routines to understand
about standard_conforming_strings, so that the upcoming changeover to SQL-spec
string syntax can be somewhat transparent to client code.

Since the existing API of PQescapeString and PQescapeBytea provides no way to
inform them which settings are in use, these functions are now deprecated in
favor of new functions PQescapeStringConn and PQescapeByteaConn.  The new
functions take the PGconn to which the string will be sent as an additional
parameter, and look inside the connection structure to determine what to do.
So as to provide some functionality for clients using the old functions,
libpq stores the latest encoding and standard_conforming_strings values
received from the backend in static variables, and the old functions consult
these variables.  This will work reliably in clients using only one Postgres
connection at a time, or even multiple connections if they all use the same
encoding and string syntax settings; which should cover many practical
scenarios.

Clients that use homebrew escaping methods, such as PHP's addslashes()
function or even hardwired regexp substitution, will require extra effort
to fix :-(.  It is strongly recommended that such code be replaced by use of
PQescapeStringConn/PQescapeByteaConn if at all feasible.

18 years agoAdd a new GUC parameter backslash_quote, which determines whether the SQL
Tom Lane [Sun, 21 May 2006 20:10:42 +0000 (20:10 +0000)]
Add a new GUC parameter backslash_quote, which determines whether the SQL
parser will allow "\'" to be used to represent a literal quote mark.  The
"\'" representation has been deprecated for some time in favor of the
SQL-standard representation "''" (two single quote marks), but it has been
used often enough that just disallowing it immediately won't do.  Hence
backslash_quote allows the settings "on", "off", and "safe_encoding",
the last meaning to allow "\'" only if client_encoding is a valid server
encoding.  That is now the default, and the reason is that in encodings
such as SJIS that allow 0x5c (ASCII backslash) to be the last byte of a
multibyte character, accepting "\'" allows SQL-injection attacks as per
CVE-2006-2314 (further details will be published after release).  The
"on" setting is available for backward compatibility, but it must not be
used with clients that are exposed to untrusted input.

Thanks to Akio Ishida and Yasuo Ohgaki for identifying this security issue.

18 years agoChange the backend to reject strings containing invalidly-encoded multibyte
Tom Lane [Sun, 21 May 2006 20:05:21 +0000 (20:05 +0000)]
Change the backend to reject strings containing invalidly-encoded multibyte
characters in all cases.  Formerly we mostly just threw warnings for invalid
input, and failed to detect it at all if no encoding conversion was required.
The tighter check is needed to defend against SQL-injection attacks as per
CVE-2006-2313 (further details will be published after release).  Embedded
zero (null) bytes will be rejected as well.  The checks are applied during
input to the backend (receipt from client or COPY IN), so it no longer seems
necessary to check in textin() and related routines; any string arriving at
those functions will already have been validated.  Conversion failure
reporting (for characters with no equivalent in the destination encoding)
has been cleaned up and made consistent while at it.

Also, fix a few longstanding errors in little-used encoding conversion
routines: win1251_to_iso, win866_to_iso, euc_tw_to_big5, euc_tw_to_mic,
mic_to_euc_tw were all broken to varying extents.

Patches by Tatsuo Ishii and Tom Lane.  Thanks to Akio Ishida and Yasuo Ohgaki
for identifying the security issues.

18 years agoAdd last-vacuum/analyze-time columns to the stats collector, both manual and
Alvaro Herrera [Fri, 19 May 2006 19:08:27 +0000 (19:08 +0000)]
Add last-vacuum/analyze-time columns to the stats collector, both manual and
issued by autovacuum.  Add accessor functions to them, and use those in the
pg_stat_*_tables system views.

Catalog version bumped due to changes in the pgstat views and the pgstat file.

Patch from Larry Rosenman, minor improvements by me.

18 years agoCall MarkBufferDirty() before XLogInsert() during completion of insert
Teodor Sigaev [Fri, 19 May 2006 17:15:41 +0000 (17:15 +0000)]
Call MarkBufferDirty() before XLogInsert() during completion of insert

18 years agoSimplify gistSplit() and some refactoring related code.
Teodor Sigaev [Fri, 19 May 2006 16:15:17 +0000 (16:15 +0000)]
Simplify gistSplit() and some refactoring related code.

18 years agoHave autovacuum report its activities to the stat collector.
Alvaro Herrera [Fri, 19 May 2006 15:15:37 +0000 (15:15 +0000)]
Have autovacuum report its activities to the stat collector.

18 years agoFix typo in comment.
Alvaro Herrera [Fri, 19 May 2006 14:26:58 +0000 (14:26 +0000)]
Fix typo in comment.

18 years agoFix Solaris/ASM test for x86.
Bruce Momjian [Fri, 19 May 2006 13:10:11 +0000 (13:10 +0000)]
Fix Solaris/ASM test for x86.

18 years agoRework completion of incomplete inserts. Now it writes
Teodor Sigaev [Fri, 19 May 2006 11:10:25 +0000 (11:10 +0000)]
Rework completion of incomplete inserts. Now it writes
WAL log during inserts.

18 years agoBack out \' change for tsearch2, broke regression tests.
Bruce Momjian [Fri, 19 May 2006 04:39:47 +0000 (04:39 +0000)]
Back out \' change for tsearch2, broke regression tests.

18 years agoMention packager bumps configure.in/configure.
Bruce Momjian [Fri, 19 May 2006 03:57:09 +0000 (03:57 +0000)]
Mention packager bumps configure.in/configure.

18 years agoStamp 8.1.4, except configure/configure.in.
Bruce Momjian [Fri, 19 May 2006 03:55:40 +0000 (03:55 +0000)]
Stamp 8.1.4, except configure/configure.in.

18 years agoUpdate for version 8.1.4.
Bruce Momjian [Fri, 19 May 2006 03:52:41 +0000 (03:52 +0000)]
Update for version 8.1.4.

18 years agoUpdate release notes for 8.1.4.
Bruce Momjian [Fri, 19 May 2006 03:49:05 +0000 (03:49 +0000)]
Update release notes for 8.1.4.

18 years agoUse SQL standard '' rather than \' in /contrib. Backpatch to 8.1.X.
Bruce Momjian [Fri, 19 May 2006 02:38:47 +0000 (02:38 +0000)]
Use SQL standard '' rather than \' in /contrib.  Backpatch to 8.1.X.

18 years agoUse unsigned into for slock_t for pre-sparcv8plus.
Bruce Momjian [Thu, 18 May 2006 21:18:40 +0000 (21:18 +0000)]
Use unsigned into for slock_t for pre-sparcv8plus.

18 years agoFix choose_bitmap_and() so that partial index predicates are considered when
Tom Lane [Thu, 18 May 2006 19:56:46 +0000 (19:56 +0000)]
Fix choose_bitmap_and() so that partial index predicates are considered when
deciding whether a potential additional indexscan is redundant or not.  As now
coded, any use of a partial index that was already used in a previous AND arm
will be rejected as redundant.  This might be overly restrictive, but not
considering the point at all is definitely bad, as per example in bug #2441
from Arjen van der Meijden.  In particular, a clauseless scan of a partial
index was *never* considered redundant by the previous coding, and that's
surely wrong.  Being more flexible would also require some consideration
of how not to double-count the index predicate's selectivity.

18 years agoWhen a bitmap indexscan is using a partial index, it is necessary to include
Tom Lane [Thu, 18 May 2006 18:57:31 +0000 (18:57 +0000)]
When a bitmap indexscan is using a partial index, it is necessary to include
the partial index predicate in the scan's "recheck condition".  Otherwise,
if the scan becomes lossy for lack of bitmap memory, we would fail to enforce
that returned rows satisfy the predicate.  Noted while studying bug #2441
from Arjen van der Meijden.

18 years agoAllow sparcv8plus to use "cas".
Bruce Momjian [Thu, 18 May 2006 18:51:50 +0000 (18:51 +0000)]
Allow sparcv8plus to use "cas".

Theo Schlossnagle

18 years agoCode alignment fix.
Bruce Momjian [Thu, 18 May 2006 18:19:47 +0000 (18:19 +0000)]
Code alignment fix.

18 years agoFix thinko in recent changes to handle ScalarArrayOpExpr as an indexable
Tom Lane [Thu, 18 May 2006 17:12:10 +0000 (17:12 +0000)]
Fix thinko in recent changes to handle ScalarArrayOpExpr as an indexable
condition: when there are multiple possible index paths involving
ScalarArrayOpExprs, they are logically to be ANDed together not ORed.
This thinko was a direct consequence of trying to put the processing
inside generate_bitmap_or_paths(), which I now see was a bit too cute.
So pull it out and make the callers do it separately (there are only two
that need it anyway).  Partially responds to bug #2441 from Arjen van der Meijden.
There are some additional infelicities exposed by his example, but they
are also in 8.1.x, while this mistake is not.

18 years agoRemove canonicalize_path() call for .pgpass socket directory comparison;
Bruce Momjian [Thu, 18 May 2006 16:26:44 +0000 (16:26 +0000)]
Remove canonicalize_path() call for .pgpass socket directory comparison;
not worth adding path.c to libpq.

18 years agoMention that gcc/sparc generates sparcv7 binaries.
Bruce Momjian [Thu, 18 May 2006 16:02:30 +0000 (16:02 +0000)]
Mention that gcc/sparc generates sparcv7 binaries.

18 years agoChange <type>string</> to <parameter>string</>.
Bruce Momjian [Thu, 18 May 2006 03:18:24 +0000 (03:18 +0000)]
Change <type>string</> to <parameter>string</>.

18 years agoAdd:
Bruce Momjian [Thu, 18 May 2006 02:32:15 +0000 (02:32 +0000)]
Add:

>
> * Add a GUC to control whether BEGIN inside a transcation should abort
>   the transaction.

18 years agoAdd more sparcv8plus comments.
Bruce Momjian [Thu, 18 May 2006 01:06:28 +0000 (01:06 +0000)]
Add more sparcv8plus comments.

18 years agoMake function param_name/type documentation more consistent.
Bruce Momjian [Thu, 18 May 2006 00:50:08 +0000 (00:50 +0000)]
Make function param_name/type documentation more consistent.

18 years agoAdd mention of -xarch=v8plus for "cas" usage on Solaris/sparc.
Bruce Momjian [Thu, 18 May 2006 00:44:29 +0000 (00:44 +0000)]
Add mention of -xarch=v8plus for "cas" usage on Solaris/sparc.

18 years agoAdd simplified sparc8 ASM for solaris_sparc.s, from Alan Stange.
Bruce Momjian [Thu, 18 May 2006 00:05:01 +0000 (00:05 +0000)]
Add simplified sparc8 ASM for solaris_sparc.s, from Alan Stange.

18 years agoAdd comments that Solaris Sun compiler only supports sparc9 ASM,
Bruce Momjian [Wed, 17 May 2006 23:57:03 +0000 (23:57 +0000)]
Add comments that Solaris Sun compiler only supports sparc9 ASM,

18 years agoChange spaces to tabs, for consistency. (Caused by email cut/paste.)
Bruce Momjian [Wed, 17 May 2006 22:06:19 +0000 (22:06 +0000)]
Change spaces to tabs, for consistency.  (Caused by email cut/paste.)

18 years agoAllow the .pgpass hostname to match the default socket directory, as
Bruce Momjian [Wed, 17 May 2006 21:50:54 +0000 (21:50 +0000)]
Allow the .pgpass hostname to match the default socket directory, as
well as a blank pghost.

18 years agoChange catalog version due to WAL protocol changes in GiST
Teodor Sigaev [Wed, 17 May 2006 16:37:06 +0000 (16:37 +0000)]
Change catalog version due to WAL protocol changes in GiST

18 years agoReduce size of critial section during vacuum full, critical
Teodor Sigaev [Wed, 17 May 2006 16:34:59 +0000 (16:34 +0000)]
Reduce size of critial section during vacuum full, critical
sections now isn't nested. All user-defined functions now is
called outside critsections. Small improvements in WAL
protocol.

TODO: improve XLOG replay

18 years agoRename macro parameter, for clarity.
Bruce Momjian [Wed, 17 May 2006 01:44:24 +0000 (01:44 +0000)]
Rename macro parameter, for clarity.

18 years agoUpdate pg_dump vesion wording.
Bruce Momjian [Sat, 13 May 2006 17:10:35 +0000 (17:10 +0000)]
Update pg_dump vesion wording.

18 years agoMention version portability of pg_dump.
Bruce Momjian [Sat, 13 May 2006 16:19:54 +0000 (16:19 +0000)]
Mention version portability of pg_dump.

18 years agoFix the sense of the test on DH_check()'s return value. This was preventing
Tom Lane [Fri, 12 May 2006 22:44:36 +0000 (22:44 +0000)]
Fix the sense of the test on DH_check()'s return value.  This was preventing
custom-generated DH parameters from actually being used by the server.
Found by Michael Fuhr.

18 years agoUpon closer inspection, the sparc code in s_lock.c is dead code, and
Tom Lane [Fri, 12 May 2006 16:50:52 +0000 (16:50 +0000)]
Upon closer inspection, the sparc code in s_lock.c is dead code, and
always has been, because it's not got any .globl declaration!  We've
been relying on the solaris_sparc.s code instead.  Rip it out.
(Not back-patched, since this is just cosmetic cleanup.)

18 years agoFix typo in comment.
Bruce Momjian [Thu, 11 May 2006 23:27:35 +0000 (23:27 +0000)]
Fix typo in comment.

18 years agoRemove unnecessary .seg/.section directives, per Alan Stange.
Tom Lane [Thu, 11 May 2006 21:58:22 +0000 (21:58 +0000)]
Remove unnecessary .seg/.section directives, per Alan Stange.

18 years agoUse SQL standard '' rather than \' for tutorial/sample code.
Bruce Momjian [Thu, 11 May 2006 19:21:14 +0000 (19:21 +0000)]
Use SQL standard '' rather than \' for tutorial/sample code.

Backpatch to 8.1.X.

18 years agoCode review for standard_conforming_strings patch. Fix it so it does not
Tom Lane [Thu, 11 May 2006 19:15:36 +0000 (19:15 +0000)]
Code review for standard_conforming_strings patch.  Fix it so it does not
throw warnings for 100%-SQL-standard constructs, clean up some minor
infelicities, try to un-break ecpg to the best of my ability.  (It's not clear
how ecpg is going to find out the setting of standard_conforming_strings,
though.)  I think pg_dump still needs work, too.

18 years agoClean up code associated with updating pg_class statistics columns
Tom Lane [Wed, 10 May 2006 23:18:39 +0000 (23:18 +0000)]
Clean up code associated with updating pg_class statistics columns
(relpages/reltuples).  To do this, create formal support in heapam.c for
"overwrite" tuple updates (including xlog replay capability) and use that
instead of the ad-hoc overwrites we'd been using in VACUUM and CREATE INDEX.
Take the responsibility for updating stats during CREATE INDEX out of the
individual index AMs, and do it where it belongs, in catalog/index.c.  Aside
from being more modular, this avoids having to update the same tuple twice in
some paths through CREATE INDEX.  It's probably not measurably faster, but
for sure it's a lot cleaner than before.

18 years agoSome optimizations by Volkan YAZICI <yazicivo@ttnet.net.tr>
Teodor Sigaev [Wed, 10 May 2006 11:39:12 +0000 (11:39 +0000)]
Some optimizations by Volkan YAZICI <yazicivo@ttnet.net.tr>

18 years agoReduce size of critical section and remove call of user-defined functions in
Teodor Sigaev [Wed, 10 May 2006 09:19:54 +0000 (09:19 +0000)]
Reduce size of critical section and remove call of user-defined functions in
insertion and deletion, modify gistSplit() to do not use buffers.

 TODO: gistvacuumcleanup and XLOG

18 years agoRevert documentation mention of array dimension checking, in next paragraph.
Bruce Momjian [Tue, 9 May 2006 23:12:54 +0000 (23:12 +0000)]
Revert documentation mention of array dimension checking, in next paragraph.

18 years agoMention array dimmensions are not enforced either.
Bruce Momjian [Tue, 9 May 2006 16:31:23 +0000 (16:31 +0000)]
Mention array dimmensions are not enforced either.

18 years agoBuild server libpgport with all non-FRONTEND object files. This is to
Bruce Momjian [Mon, 8 May 2006 02:18:50 +0000 (02:18 +0000)]
Build server libpgport with all non-FRONTEND object files.  This is to
fix a Win32 bug where pipe.c included a file that used FRONTEND, but it
wasn't on the server-build list.

18 years agoRewrite btree vacuuming to fold the former bulkdelete and cleanup operations
Tom Lane [Mon, 8 May 2006 00:00:17 +0000 (00:00 +0000)]
Rewrite btree vacuuming to fold the former bulkdelete and cleanup operations
into a single mostly-physical-order scan of the index.  This requires some
ticklish interlocking considerations, but should create no material
performance impact on normal index operations (at least given the
already-committed changes to make scans work a page at a time).  VACUUM
itself should get significantly faster in any index that's degenerated to a
very nonlinear page order.  Also, we save one pass over the index entirely,
except in the case where there were no deletions to do and so only one pass
happened anyway.

Original patch by Heikki Linnakangas, rework by Tom Lane.

18 years agoRewrite btree index scans to work a page at a time in all cases (both
Tom Lane [Sun, 7 May 2006 01:21:30 +0000 (01:21 +0000)]
Rewrite btree index scans to work a page at a time in all cases (both
btgettuple and btgetmulti).  This eliminates the problem of "re-finding" the
exact stopping point, since the stopping point is effectively always a page
boundary, and index items are never moved across pre-existing page boundaries.
A small penalty is that the keys_are_unique optimization is effectively
disabled (and, therefore, is removed in this patch), causing us to apply
_bt_checkkeys() to at least one more tuple than necessary when looking up a
unique key.  However, the advantages for non-unique cases seem great enough to
accept this tradeoff.  Aside from simplifying and (sometimes) speeding up the
indexscan code, this will allow us to reimplement btbulkdelete as a largely
sequential scan instead of index-order traversal, thereby significantly
reducing the cost of VACUUM.  Those changes will come in a separate patch.

Original patch by Heikki Linnakangas, rework by Tom Lane.

18 years agoUse $(LIBS:-lpgport=) rather than $(patsubst -lpgport,, $(LIBS)), for consistency.
Bruce Momjian [Sun, 7 May 2006 01:05:11 +0000 (01:05 +0000)]
Use $(LIBS:-lpgport=) rather than $(patsubst -lpgport,, $(LIBS)), for consistency.

18 years agoAdd description:
Bruce Momjian [Sat, 6 May 2006 23:35:32 +0000 (23:35 +0000)]
Add description:

* %Disallow changing DEFAULT expression of a SERIAL column?

>
>   This should be done only if the existing SERIAL problems cannot be
>   fixed.
>

18 years agoRecommend more clearly custom pg_dump format over tar, buy showing
Bruce Momjian [Sat, 6 May 2006 23:25:37 +0000 (23:25 +0000)]
Recommend more clearly custom pg_dump format over tar, buy showing
custom format examples first.

18 years agoDocument SSL CRL usage by libpq.
Bruce Momjian [Sat, 6 May 2006 16:25:11 +0000 (16:25 +0000)]
Document SSL CRL usage by libpq.

18 years agoFurther minor simplification of relcache startup: don't need a static
Tom Lane [Sat, 6 May 2006 15:51:07 +0000 (15:51 +0000)]
Further minor simplification of relcache startup: don't need a static
needNewCacheFile flag anymore, it can just be local in RelationCacheInitializePhase2.

18 years agoAdd SSL CRL support to libpq. Recently added to the backend.
Bruce Momjian [Sat, 6 May 2006 02:24:39 +0000 (02:24 +0000)]
Add SSL CRL support to libpq.  Recently added to the backend.

18 years agoIssue a log message if a CRL file exists and the SSL library does not
Bruce Momjian [Sat, 6 May 2006 01:31:38 +0000 (01:31 +0000)]
Issue a log message if a CRL file exists and the SSL library does not
support CRL certificates.

18 years agoSeems some NetBSD 3.0 x86 systems still need float8-small-is-zero, so
Bruce Momjian [Fri, 5 May 2006 18:10:35 +0000 (18:10 +0000)]
Seems some NetBSD 3.0 x86 systems still need float8-small-is-zero, so
patch reverted.

18 years agoOn Solaris ASM, / '/' is the comment for x86, while '!' is the comment
Bruce Momjian [Fri, 5 May 2006 16:23:20 +0000 (16:23 +0000)]
On Solaris ASM, / '/' is the comment for x86, while '!' is the comment
for Sparc

Robert Lor

18 years agoUse regression results float8-small-is-zero only for NetBSD < 3.0.
Bruce Momjian [Fri, 5 May 2006 16:16:49 +0000 (16:16 +0000)]
Use regression results float8-small-is-zero only for NetBSD < 3.0.

Backpatch to 8.1.X.

Simon Burge

18 years agoChange Solaris comments from / to !.
Bruce Momjian [Fri, 5 May 2006 12:22:42 +0000 (12:22 +0000)]
Change Solaris comments from / to !.

Robert Lor

18 years agoUpdate standards URL.
Bruce Momjian [Fri, 5 May 2006 09:51:53 +0000 (09:51 +0000)]
Update standards URL.

Robert Treat

18 years agoAdd/ cleanup:
Bruce Momjian [Fri, 5 May 2006 09:35:58 +0000 (09:35 +0000)]
Add/ cleanup:

< * %Disallow changing default expression of a SERIAL column?
> * %Disallow changing DEFAULT expression of a SERIAL column?
472a473,476
> * Add DEFAULT .. AS OWNER so permission checks are done as the table
>   owner
>
>   This would be useful for SERIAL nextval() calls and CHECK constraints.

18 years agoDon't try to compile SSL CRL support if local SSL installation hasn't
Tom Lane [Thu, 4 May 2006 22:18:38 +0000 (22:18 +0000)]
Don't try to compile SSL CRL support if local SSL installation hasn't
got it.  Per buildfarm failure on 'canary'.

18 years agoCode review for contrib/pg_freespacemap. Add a storedpages column to
Tom Lane [Thu, 4 May 2006 20:39:34 +0000 (20:39 +0000)]
Code review for contrib/pg_freespacemap.  Add a storedpages column to
pg_freespacemap_relations --- while one could theoretically get that
number by counting rows in pg_freespacemap_pages, it's surely the hard
way to do it.  Avoid expensive and inconvenient conversion to and from
text format.  Minor code and docs cleanup.

18 years agoSimplify relcache startup sequence. With the new design of InitPostgres
Tom Lane [Thu, 4 May 2006 18:51:36 +0000 (18:51 +0000)]
Simplify relcache startup sequence.  With the new design of InitPostgres
it's not necessary to have three separate calls anymore.  This patch also
fixes things so we don't try to read pg_internal.init until after we've
obtained lock on the target database; which was fairly harmless, but it's
certainly cleaner this way.

18 years agoRethink the locking mechanisms used for CREATE/DROP/RENAME DATABASE.
Tom Lane [Thu, 4 May 2006 16:07:29 +0000 (16:07 +0000)]
Rethink the locking mechanisms used for CREATE/DROP/RENAME DATABASE.
The former approach used ExclusiveLock on pg_database, which being a
cluster-wide lock meant only one of these operations could proceed at
a time; worse, it also blocked all incoming connections in ReverifyMyDatabase.
Now that we have LockSharedObject(), we can use locks of different types
applied to databases considered as objects.  This allows much more
flexible management of the interlocking: two CREATE DATABASEs need not
block each other, and need not block connections except to the template
database being used.  Similarly DROP DATABASE doesn't block unrelated
operations.  The locking used in flatfiles.c is also much narrower in
scope than before.  Per recent proposal.

18 years agoCreate a syscache for pg_database-indexed-by-oid, and make use of it
Tom Lane [Wed, 3 May 2006 22:45:26 +0000 (22:45 +0000)]
Create a syscache for pg_database-indexed-by-oid, and make use of it
in various places that were previously doing ad hoc pg_database searches.
This may speed up database-related privilege checks a little bit, but
the main motivation is to eliminate the performance reason for having
ReverifyMyDatabase do such a lot of stuff (viz, avoiding repeat scans
of pg_database during backend startup).  The locking reason for having
that routine is about to go away, and it'd be good to have the option
to break it up.

18 years agoMake GIN opclass worked with intarray extensions
Teodor Sigaev [Wed, 3 May 2006 16:31:07 +0000 (16:31 +0000)]
Make GIN opclass worked with intarray extensions

18 years agoFix typo noticed by Alvaro Herrera
Teodor Sigaev [Wed, 3 May 2006 06:56:47 +0000 (06:56 +0000)]
Fix typo noticed by Alvaro Herrera

18 years agoFix calculation of plan node extParams to account for the possibility that one
Tom Lane [Wed, 3 May 2006 00:24:56 +0000 (00:24 +0000)]
Fix calculation of plan node extParams to account for the possibility that one
initPlan sets a parameter for another.  This could not (I think) happen before
8.1, but it's possible now because the initPlans generated by MIN/MAX
optimization might themselves use initPlans.  We attach those initPlans as
siblings of the MIN/MAX ones, not children, to avoid duplicate computation
when multiple MIN/MAX aggregates are present; so this leads to the case of an
initPlan needing the result of a sibling initPlan, which is not possible with
ordinary query nesting.  Hadn't been noticed because in most contexts having
too much stuff listed in extParam is fairly harmless.  Fixes "plan should not
reference subplan's variable" bug reported by Catalin Pitis.

18 years agoClean up API for ambulkdelete/amvacuumcleanup as per today's discussion.
Tom Lane [Tue, 2 May 2006 22:25:10 +0000 (22:25 +0000)]
Clean up API for ambulkdelete/amvacuumcleanup as per today's discussion.
This formulation requires every AM to provide amvacuumcleanup, unlike before,
but it's surely a whole lot cleaner.  Also, add an 'amstorage' column to
pg_am so that we can get rid of hardwired knowledge in DefineOpClass().

18 years agoFix broken markup.
Tom Lane [Tue, 2 May 2006 18:07:51 +0000 (18:07 +0000)]
Fix broken markup.

18 years agoSuppress some gcc warnings.
Tom Lane [Tue, 2 May 2006 15:48:11 +0000 (15:48 +0000)]
Suppress some gcc warnings.

18 years agoFix grammar of new error message.
Tom Lane [Tue, 2 May 2006 15:45:37 +0000 (15:45 +0000)]
Fix grammar of new error message.

18 years agoAdd GIN opclases for another types
Teodor Sigaev [Tue, 2 May 2006 15:23:16 +0000 (15:23 +0000)]
Add GIN opclases for another types

18 years agoGIN: Generalized Inverted iNdex.
Teodor Sigaev [Tue, 2 May 2006 11:28:56 +0000 (11:28 +0000)]
GIN: Generalized Inverted iNdex.
text[], int4[], Tsearch2 support for GIN.

18 years agoAvoid assuming that statistics for a parent relation reflect the properties of
Tom Lane [Tue, 2 May 2006 04:34:18 +0000 (04:34 +0000)]
Avoid assuming that statistics for a parent relation reflect the properties of
the union of its child relations as well.  This might have been a good idea
when it was originally coded, but it's a fatally bad idea when inheritance is
being used for partitioning.  It's better to have no stats at all than
completely misleading stats.  Per report from Mark Liberman.

The bug arguably exists all the way back, but I've only patched HEAD and 8.1
because we weren't particularly trying to support partitioning before 8.1.

Eventually we ought to look at deriving union statistics instead of just
punting, but for now the drop kick looks good.

18 years agoProvide a namespace.c function for lookup of an operator with exact
Tom Lane [Mon, 1 May 2006 23:22:43 +0000 (23:22 +0000)]
Provide a namespace.c function for lookup of an operator with exact
input datatypes given, and use this before trying OpernameGetCandidates.
This is faster than the old method when there's an exact match, and it
does not seem materially slower when there's not.  And it definitely
makes some of the callers cleaner, because they didn't really want to
know about a list of candidates anyway.  Per discussion with Atsushi Ogawa.

18 years agoCode review for GRANT CONNECT patch. Spell the privilege as CONNECT not
Tom Lane [Sun, 30 Apr 2006 21:15:33 +0000 (21:15 +0000)]
Code review for GRANT CONNECT patch.  Spell the privilege as CONNECT not
CONNECTION, fix a number of places that were missed (eg pg_dump support),
avoid executing an extra search of pg_database during startup.

18 years agoImprove the representation of FOR UPDATE/FOR SHARE so that we can
Tom Lane [Sun, 30 Apr 2006 18:30:40 +0000 (18:30 +0000)]
Improve the representation of FOR UPDATE/FOR SHARE so that we can
support both FOR UPDATE and FOR SHARE in one command, as well as both
NOWAIT and normal WAIT behavior.  The more general code is actually
simpler and cleaner.

18 years agoDone:
Bruce Momjian [Sun, 30 Apr 2006 02:10:41 +0000 (02:10 +0000)]
Done:
>  o -Allow per-database permissions to be set via GRANT

18 years agoAdd GRANT CONNECTION ON DATABASE, to be used in addition to pg_hba.conf.
Bruce Momjian [Sun, 30 Apr 2006 02:09:07 +0000 (02:09 +0000)]
Add GRANT CONNECTION ON DATABASE, to be used in addition to pg_hba.conf.

Gevik Babakhani

18 years agoAdd question mark:
Bruce Momjian [Sun, 30 Apr 2006 01:45:26 +0000 (01:45 +0000)]
Add question mark:

> * %Disallow changing default expression of a SERIAL column?

18 years agoRevert patch pending more discussion:
Bruce Momjian [Sun, 30 Apr 2006 01:08:07 +0000 (01:08 +0000)]
Revert patch pending more discussion:

Disallow changing DEFAULT expression of a SERIAL column.

18 years agoRemove sema.c, superseded by win32_sema.c.
Tom Lane [Sat, 29 Apr 2006 20:52:56 +0000 (20:52 +0000)]
Remove sema.c, superseded by win32_sema.c.

18 years agoRearrange some configure.in comments for better readability.
Tom Lane [Sat, 29 Apr 2006 20:47:31 +0000 (20:47 +0000)]
Rearrange some configure.in comments for better readability.
Commit configure and pg_config.h.in, missed in last configure.in
update.

18 years agoWe only need to add thread.c on non-WIN32 platforms, since get_home_path
Tom Lane [Sat, 29 Apr 2006 20:13:07 +0000 (20:13 +0000)]
We only need to add thread.c on non-WIN32 platforms, since get_home_path
doesn't use pqGetpwuid on WIN32.  Rather than try to figure out why it
won't build on WIN32, just remove it.

18 years agoDone:
Bruce Momjian [Sat, 29 Apr 2006 16:44:31 +0000 (16:44 +0000)]
Done:

> * -Disallow changing default expression of a SERIAL column

18 years agoDisallow changing DEFAULT expression of a SERIAL column.
Bruce Momjian [Sat, 29 Apr 2006 16:43:54 +0000 (16:43 +0000)]
Disallow changing DEFAULT expression of a SERIAL column.

Dhanaraj M

18 years agoAdd Win32 semaphore implementation, rather than mimicking SysV
Bruce Momjian [Sat, 29 Apr 2006 16:34:41 +0000 (16:34 +0000)]
Add Win32 semaphore implementation, rather than mimicking SysV
semaphores.

Qingqing Zhou

18 years agoSolaris tas() uses 'int' now.
Bruce Momjian [Sat, 29 Apr 2006 11:55:19 +0000 (11:55 +0000)]
Solaris tas() uses 'int' now.

Theo Schlossnagle

18 years agoIntel compiler has a bug/misoptimization in checking for division by NAN
Bruce Momjian [Sat, 29 Apr 2006 00:51:41 +0000 (00:51 +0000)]
Intel compiler has a bug/misoptimization in checking for division by NAN
(NaN == 0), -mp1 fixes it, so add it to the CFLAGS.  Autoconf run.

Jeremy Drake