]> granicus.if.org Git - postgresql/log
postgresql
18 years agoData transferred binary is now put into the variables verbatim.
Michael Meskes [Tue, 17 Jan 2006 19:49:23 +0000 (19:49 +0000)]
Data transferred binary is now put into the variables verbatim.
Also added a test case for a binary cursor.

18 years agoImprove comments about btree's use of ScanKey data structures: there
Tom Lane [Tue, 17 Jan 2006 00:09:01 +0000 (00:09 +0000)]
Improve comments about btree's use of ScanKey data structures: there
are two basically different kinds of scankeys, and we ought to try harder
to indicate which is used in each place in the code.  I've chosen the names
"search scankey" and "insertion scankey", though you could make about
as good an argument for "operator scankey" and "comparison function
scankey".

18 years agoImprove constraint_name wording.
Bruce Momjian [Mon, 16 Jan 2006 20:48:49 +0000 (20:48 +0000)]
Improve constraint_name wording.

18 years agoAdd markup for new constraint_name mention.
Bruce Momjian [Mon, 16 Jan 2006 19:53:12 +0000 (19:53 +0000)]
Add markup for new constraint_name mention.

18 years agoAdd documentaiotn mention that constraint names can be sentences that
Bruce Momjian [Mon, 16 Jan 2006 19:50:03 +0000 (19:50 +0000)]
Add documentaiotn mention that constraint names can be sentences that
can convey information to clients on constraint violation.

18 years agoChange the parameter_types column of the pg_prepared_statements to be
Neil Conway [Mon, 16 Jan 2006 18:15:31 +0000 (18:15 +0000)]
Change the parameter_types column of the pg_prepared_statements to be
an array of regtype, rather than an array of OIDs. This is likely to
be more useful to user, and the type OID can easily be obtained by
casting a regtype value to OID. Per suggestion from Tom.

Update the documentation and regression tests, and bump the catversion.

18 years agoWhen using GCC on AMD64 and PPC, ECPGget_variable() takes a va_list *, not
Neil Conway [Sun, 15 Jan 2006 22:46:53 +0000 (22:46 +0000)]
When using GCC on AMD64 and PPC, ECPGget_variable() takes a va_list *, not
a va_list. Christof Petig's previous patch made this change, but neglected
to update ecpglib/descriptor.c, resulting in a compiler warning (and a
likely runtime crash) on AMD64 and PPC.

18 years agoAdd regression tests to verify that domain constraints on parameters
Neil Conway [Sun, 15 Jan 2006 22:34:49 +0000 (22:34 +0000)]
Add regression tests to verify that domain constraints on parameters
to prepared statements with unknown type are correctly enforced, per
recent bug report.

18 years agoAllow the types of parameters to PREPARE to be inferred. If a parameter's
Neil Conway [Sun, 15 Jan 2006 22:18:47 +0000 (22:18 +0000)]
Allow the types of parameters to PREPARE to be inferred. If a parameter's
data type is unspecified or is declared to be "unknown", the type will
be inferred from the context in which the parameter is used. This was
already possible for protocol-level prepared statements.

18 years agoSome minor code cleanup, falling out from the removal of rtree. SK_NEGATE
Tom Lane [Sat, 14 Jan 2006 22:03:35 +0000 (22:03 +0000)]
Some minor code cleanup, falling out from the removal of rtree.  SK_NEGATE
isn't being used anywhere anymore, and there seems no point in a generic
index_keytest() routine when two out of three remaining access methods
aren't using it.  Also, add a comment documenting a convention for
letting access methods define private flag bits in ScanKey sk_flags.
There are no such flags at the moment but I'm thinking about changing
btree's handling of "required keys" to use flag bits in the keys
rather than a count of required key positions.  Also, if some AM did
still want SK_NEGATE then it would be reasonable to treat it as a private
flag bit.

18 years agoFix pg_ctl crash on "unregister" when a data directory is not specified.
Peter Eisentraut [Sat, 14 Jan 2006 15:41:28 +0000 (15:41 +0000)]
Fix pg_ctl crash on "unregister" when a data directory is not specified.
by Magnus Hagander

18 years agoAdd selectivity-calculation code for RowCompareExpr nodes. Simplistic,
Tom Lane [Sat, 14 Jan 2006 00:14:12 +0000 (00:14 +0000)]
Add selectivity-calculation code for RowCompareExpr nodes.  Simplistic,
but a lot better than nothing at all ...

18 years agoRemove logic in XactLockTableWait() that attempted to mark a crashed
Tom Lane [Fri, 13 Jan 2006 21:32:12 +0000 (21:32 +0000)]
Remove logic in XactLockTableWait() that attempted to mark a crashed
transaction as aborted.  Since we only call XactLockTableWait on XIDs
that we believe to be currently running, the odds of this code ever
actually firing are minimal.  It's certainly unnecessary, since a
transaction that's not either running or committed will be presumed
aborted anyway.  What's more, it's not hard to imagine scenarios where
this could result in corrupting pg_clog: for instance, if a bogus XID
somehow got passed to XactLockTableWait.  I think the code probably
dates from the ancient era when we didn't have TransactionIdIsInProgress;
back then it may have been necessary, but now I think it's a waste of
cycles and potentially dangerous.  Per discussion with Qingqing Zhou
and Karsten Hilbert.

18 years agoDocument that CREATE OPERATOR CLASS amounts to granting public execute
Tom Lane [Fri, 13 Jan 2006 18:10:25 +0000 (18:10 +0000)]
Document that CREATE OPERATOR CLASS amounts to granting public execute
permissions on the functions and operators contained in the opclass.
Since we already require superuser privilege to create an operator class,
there's no expansion-of-privilege hazard here, but if someone were to get
the idea of building an opclass containing functions that need security
restrictions, we'd better warn them off.  Also, change the permission
checks from have-execute-privilege to have-ownership, and then comment
them all out since they're dead code anyway under the superuser restriction.

18 years agoRequire the issuer of CREATE TYPE to own the functions mentioned in the
Tom Lane [Fri, 13 Jan 2006 18:06:45 +0000 (18:06 +0000)]
Require the issuer of CREATE TYPE to own the functions mentioned in the
type definition.  Because use of a type's I/O conversion functions isn't
access-checked, CREATE TYPE amounts to granting public execute permissions
on the functions, and so allowing it to anybody means that someone could
theoretically gain access to a function he's not supposed to be able to
execute.  The parameter-type restrictions already enforced by CREATE TYPE
make it fairly unlikely that this oversight is meaningful in practice,
but still it seems like a good idea to plug the hole going forward.
Also, document the implicit grant just in case anybody gets the idea of
building I/O functions that might need security restrictions.

18 years agoWe neglected to apply domain constraints on UNKNOWN parameters to
Neil Conway [Thu, 12 Jan 2006 22:28:35 +0000 (22:28 +0000)]
We neglected to apply domain constraints on UNKNOWN parameters to
prepared statements, per report from David Wheeler.

18 years agoClear up remaining compile warning for plperl on Windows.
Andrew Dunstan [Thu, 12 Jan 2006 22:15:56 +0000 (22:15 +0000)]
Clear up remaining compile warning for plperl on Windows.

18 years agombutils was previously doing some allocations, including invoking
Neil Conway [Thu, 12 Jan 2006 22:04:02 +0000 (22:04 +0000)]
mbutils was previously doing some allocations, including invoking
fmgr_info(), in the TopMemoryContext. I couldn't see that the code
actually leaked, but in general I think it's fragile to assume that
pfree'ing an FmgrInfo along with its fn_extra field is enough to
reclaim all the resources allocated by fmgr_info().  I changed the
code to do its allocations in a new child context of
TopMemoryContext, MbProcContext. When we want to release the
allocations we can just reset the context, which is cleaner.

18 years agoRepair "Halloween problem" in EvalPlanQual: a tuple that's been inserted by
Tom Lane [Thu, 12 Jan 2006 21:48:53 +0000 (21:48 +0000)]
Repair "Halloween problem" in EvalPlanQual: a tuple that's been inserted by
our own command (or more generally, xmin = our xact and cmin >= current
command ID) should not be seen as good.  Else we may try to update rows
we already updated.  This error was inserted last August while fixing the
even bigger problem that the old coding wouldn't see *any* tuples inserted
by our own transaction as good.  Per report from Euler Taveira de Oliveira.

18 years agoUse a more bulletproof test for whether finite() and isinf() are present.
Tom Lane [Thu, 12 Jan 2006 19:23:22 +0000 (19:23 +0000)]
Use a more bulletproof test for whether finite() and isinf() are present.
It seems that recent gcc versions can optimize away calls to these functions
even when the functions do not exist on the platform, resulting in a bogus
positive result.  Avoid this by using a non-constant argument and ensuring
that the function result is not simply discarded.  Per report from
François Laupretre.

18 years agoRemove extraneous backslash from 'fixseq.sql' example --- mea culpa
Tom Lane [Thu, 12 Jan 2006 18:09:24 +0000 (18:09 +0000)]
Remove extraneous backslash from 'fixseq.sql' example --- mea culpa
certainly.  Per report from George Woodring.

18 years agoUpdate comment about outer joins in description of geqo_threshold.
Tom Lane [Wed, 11 Jan 2006 23:14:29 +0000 (23:14 +0000)]
Update comment about outer joins in description of geqo_threshold.

18 years agoDocumentation tweak: add spaces around the brackets in the description
Neil Conway [Wed, 11 Jan 2006 22:16:39 +0000 (22:16 +0000)]
Documentation tweak: add spaces around the brackets in the description
of the CREATE CONVERSION syntax, for consistency with the other SQL
reference pages.

18 years agoBrace cleanup.
Bruce Momjian [Wed, 11 Jan 2006 21:24:30 +0000 (21:24 +0000)]
Brace cleanup.

18 years agoDone:
Bruce Momjian [Wed, 11 Jan 2006 20:28:21 +0000 (20:28 +0000)]
Done:

> * -Add sleep() function, remove from regress.c

18 years agoCreate a standard function pg_sleep() to sleep for a specified amount of time.
Tom Lane [Wed, 11 Jan 2006 20:12:43 +0000 (20:12 +0000)]
Create a standard function pg_sleep() to sleep for a specified amount of time.
Replace the former ad-hoc implementation used in the regression tests.
Joachim Wieland

18 years agoCosmetic code cleanup: fix a bunch of places that used "return (expr);"
Neil Conway [Wed, 11 Jan 2006 08:43:13 +0000 (08:43 +0000)]
Cosmetic code cleanup: fix a bunch of places that used "return (expr);"
rather than "return expr;" -- the latter style is used in most of the
tree. I kept the parentheses when they were necessary or useful because
the return expression was complex.

18 years agoRemove a confusing pair of parentheses.
Neil Conway [Wed, 11 Jan 2006 06:59:22 +0000 (06:59 +0000)]
Remove a confusing pair of parentheses.

18 years agoImprove error messages for missing-FROM-entry cases, as per recent discussion.
Tom Lane [Tue, 10 Jan 2006 21:59:59 +0000 (21:59 +0000)]
Improve error messages for missing-FROM-entry cases, as per recent discussion.

18 years agoMinor code clarity improvement: AFAICS, estate.eval_econtext must be
Neil Conway [Tue, 10 Jan 2006 18:50:43 +0000 (18:50 +0000)]
Minor code clarity improvement: AFAICS, estate.eval_econtext must be
non-NULL during the guts of plpgsql_exec_trigger() and
plpgsql_exec_function(). Therefore, we can remove the NULL check,
per discussion on -patches.

18 years agoImprove patternsel() by applying the operator itself to each value
Tom Lane [Tue, 10 Jan 2006 17:35:52 +0000 (17:35 +0000)]
Improve patternsel() by applying the operator itself to each value
listed in the column's most-common-values statistics entry.  This gives
us an exact selectivity result for the portion of the column population
represented by the MCV list, which can be a big leg up in accuracy if
that's a large fraction of the population.  The heuristics involving
pattern contents and prefix are applied only to the part of the population
not included in the MCV list.

18 years agoremove unneeded defines for uid_t and gid_t, which conflict with perl's typedefs.
Andrew Dunstan [Tue, 10 Jan 2006 01:01:03 +0000 (01:01 +0000)]
remove unneeded defines for uid_t and gid_t, which conflict with perl's typedefs.

18 years agoIn PLy_function_build_args(), the code loops repeatedly, constructing
Neil Conway [Tue, 10 Jan 2006 00:33:12 +0000 (00:33 +0000)]
In PLy_function_build_args(), the code loops repeatedly, constructing
one argument at a time and then inserting the argument into a Python
list via PyList_SetItem(). This "steals" the reference to the argument:
that is, the reference to the new list member is now held by the Python
list itself. This works fine, except if an elog occurs. This causes the
function's PG_CATCH() block to be invoked, which decrements the
reference counts on both the current argument and the list of arguments.
If the elog happens to occur during the second or subsequent iteration
of the loop, the reference count on the current argument will be
decremented twice.

The fix is simple: set the local pointer to the current argument to NULL
immediately after adding it to the argument list. This ensures that the
Py_XDECREF() in the PG_CATCH() block doesn't double-decrement.

18 years agoDone:
Bruce Momjian [Mon, 9 Jan 2006 22:43:23 +0000 (22:43 +0000)]
Done:

< * %Allow pooled connections to list all prepared statements
> * -%Allow pooled connections to list all prepared statements

18 years agoFix pg_dump to add the required OPERATOR() decoration to schema-qualified
Tom Lane [Mon, 9 Jan 2006 21:16:17 +0000 (21:16 +0000)]
Fix pg_dump to add the required OPERATOR() decoration to schema-qualified
operator names.  This is needed when dumping operator definitions that have
COMMUTATOR (or similar) links to operators in other schemas.
Apparently Daniel Whitter is the first person ever to try this :-(

18 years agoChange allow_system_table_mods to PGC_POSTMASTER, restoring previous
Peter Eisentraut [Mon, 9 Jan 2006 10:05:31 +0000 (10:05 +0000)]
Change allow_system_table_mods to PGC_POSTMASTER, restoring previous
behavior.

18 years agoMinor code cleanup for PL/Python: fixup some strangely formatted comments,
Neil Conway [Mon, 9 Jan 2006 02:47:09 +0000 (02:47 +0000)]
Minor code cleanup for PL/Python: fixup some strangely formatted comments,
and change two elogs into ereports because they could actually occur
in practice.

18 years agoRationalise perl header inclusions via a common include file, which also
Andrew Dunstan [Sun, 8 Jan 2006 22:27:52 +0000 (22:27 +0000)]
Rationalise perl header inclusions via a common include file, which also
declares routines in plperl.c and spi_internal.c used in other files.

Along the way, also stop perl from hijacking stdio and other stuff on Windows.

18 years agoFix the assert_enabled issue properly. This eliminates the former ABI
Tom Lane [Sun, 8 Jan 2006 21:24:37 +0000 (21:24 +0000)]
Fix the assert_enabled issue properly.  This eliminates the former ABI
difference between USE_ASSERT_CHECKING and not: the assert_enabled
variable is always there.

18 years agoRecent patch broke guc.c for non-USE_ASSERT_CHECKING case. Per
Tom Lane [Sun, 8 Jan 2006 20:13:33 +0000 (20:13 +0000)]
Recent patch broke guc.c for non-USE_ASSERT_CHECKING case.  Per
Stefan Kaltenbrunner.

18 years agoAvoid leaking memory while reading toasted entries from pg_rewrite,
Tom Lane [Sun, 8 Jan 2006 20:04:41 +0000 (20:04 +0000)]
Avoid leaking memory while reading toasted entries from pg_rewrite,
and nail a couple more system indexes into cache.  This doesn't make
any difference in normal system operation, but when forcing constant
cache resets it's difficult to get through the rules regression test
without these changes.

18 years agoAdd a new system view, pg_prepared_statements, that can be used to
Neil Conway [Sun, 8 Jan 2006 07:00:27 +0000 (07:00 +0000)]
Add a new system view, pg_prepared_statements, that can be used to
access information about the prepared statements that are available
in the current session. Original patch from Joachim Wieland, various
improvements by Neil Conway.

The "statement" column of the view contains the literal query string
sent by the client, without any rewriting or pretty printing. This
means that prepared statements created via SQL will be prefixed with
"PREPARE ... AS ", whereas those prepared via the FE/BE protocol will
not. That is unfortunate, but discussion on -patches did not yield an
efficient way to improve this, and there is some merit in returning
exactly what the client sent to the backend.

Catalog version bumped, regression tests updated.

18 years agoAdd RelationOpenSmgr() calls to ensure rd_smgr is valid when we try to
Tom Lane [Sat, 7 Jan 2006 22:45:41 +0000 (22:45 +0000)]
Add RelationOpenSmgr() calls to ensure rd_smgr is valid when we try to
use it.  While it normally has been opened earlier during btree index
build, testing shows that it's possible for the link to be closed again
if an sinval reset occurs while the index is being built.

18 years agoAdd comment explaining why RelationOpenSmgr() call is not needed.
Tom Lane [Sat, 7 Jan 2006 22:30:43 +0000 (22:30 +0000)]
Add comment explaining why RelationOpenSmgr() call is not needed.

18 years agoDuring CatCacheRemoveCList, we must now remove any members that are
Tom Lane [Sat, 7 Jan 2006 21:16:10 +0000 (21:16 +0000)]
During CatCacheRemoveCList, we must now remove any members that are
dead and have become unreferenced.  Before 8.1, such members were left
for AtEOXact_CatCache() to clean up, but now AtEOXact_CatCache isn't
supposed to have anything to do.  In an assert-enabled build this bug
leads to an assertion failure at transaction end, but in a non-assert
build the dead member is effectively just a small memory leak.
Per report from Jeremy Drake.

18 years agoFix failure to apply domain constraints to a NULL constant that's added to
Tom Lane [Fri, 6 Jan 2006 20:11:12 +0000 (20:11 +0000)]
Fix failure to apply domain constraints to a NULL constant that's added to
an INSERT target list during rule rewriting.  Per report from John Supplee.

18 years agoUse RELKIND_COMPOSITE_TYPE rather than hardcoded 'c'.
Bruce Momjian [Fri, 6 Jan 2006 19:08:33 +0000 (19:08 +0000)]
Use RELKIND_COMPOSITE_TYPE rather than hardcoded 'c'.

18 years agoRelease-note updates and copy editing.
Tom Lane [Fri, 6 Jan 2006 02:59:57 +0000 (02:59 +0000)]
Release-note updates and copy editing.

18 years agoFix Windows-only postmaster code to reject a connection request and continue,
Tom Lane [Fri, 6 Jan 2006 02:58:25 +0000 (02:58 +0000)]
Fix Windows-only postmaster code to reject a connection request and continue,
rather than elog(FATAL), when there is no more room in ShmemBackendArray.
This is a security issue since too many connection requests arriving close
together could cause the postmaster to shut down, resulting in denial of
service.  Reported by Yoshiyuki Asaba, fixed by Magnus Hagander.

18 years agoFix broken markup.
Tom Lane [Fri, 6 Jan 2006 01:35:09 +0000 (01:35 +0000)]
Fix broken markup.

18 years agoConvert Assert checking for empty page into a regular test and elog.
Tom Lane [Fri, 6 Jan 2006 00:15:50 +0000 (00:15 +0000)]
Convert Assert checking for empty page into a regular test and elog.
The consequences of overwriting a non-empty page are bad enough that
we should not omit this test in production builds.

18 years agoFix ReadBuffer() to correctly handle the case where it's trying to extend
Tom Lane [Fri, 6 Jan 2006 00:04:20 +0000 (00:04 +0000)]
Fix ReadBuffer() to correctly handle the case where it's trying to extend
the relation but it finds a pre-existing valid buffer.  The buffer does not
correspond to any page known to the kernel, so we *must* do smgrextend to
ensure that the space becomes allocated.  The 7.x branches all do this
correctly, but the corner case got lost somewhere during 8.0 bufmgr rewrites.
(My fault no doubt :-( ... I think I assumed that such a buffer must be
not-BM_VALID, which is not so.)

18 years agoAdd:
Bruce Momjian [Thu, 5 Jan 2006 17:47:53 +0000 (17:47 +0000)]
Add:

>
>  * Allow SERIAL sequences to inherit permissions from the base table?

18 years agoAdd logging control TODO.detail.
Bruce Momjian [Thu, 5 Jan 2006 17:28:45 +0000 (17:28 +0000)]
Add logging control TODO.detail.

18 years agoUpdate:
Bruce Momjian [Thu, 5 Jan 2006 16:39:54 +0000 (16:39 +0000)]
Update:
<   stable logging probably can not have indexes.  [wallog]
>   stable logging probably can not have indexes.  [walcontrol]

18 years agoUpdate wording:
Bruce Momjian [Thu, 5 Jan 2006 16:35:19 +0000 (16:35 +0000)]
Update wording:

<   STABLE | DEFAULT ].  [wallog]
>   STABLE | DEFAULT ].  Tables using non-default logging should not use
>   referential integrity with default-logging tables, and tables using
>   stable logging probably can not have indexes.  [wallog]

18 years agoUpdate wording:
Bruce Momjian [Thu, 5 Jan 2006 16:26:49 +0000 (16:26 +0000)]
Update wording:

<   the table. Another option is to avoid transaction logging entirely
<   and truncate or drop the table on crash recovery.  These should be
<   implemented using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP |
<   TRUNCATE | STABLE | DEFAULT ].  [wallog]
>   the table.  This would affect COPY, and perhaps INSERT/UPDATE too.
>   Another option is to avoid transaction logging entirely and truncate
>   or drop the table on crash recovery.  These should be implemented
>   using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP | TRUNCATE |
>   STABLE | DEFAULT ].  [wallog]

18 years agoAdd:
Bruce Momjian [Thu, 5 Jan 2006 16:23:48 +0000 (16:23 +0000)]
Add:

>
> * Allow control over which tables are WAL-logged
>
>   Allow tables to bypass WAL writes and just fsync() dirty pages on
>   commit.  To do this, only a single writer can modify the table, and
>   writes must happen only on new pages.  Readers can continue accessing
>   the table. Another option is to avoid transaction logging entirely
>   and truncate or drop the table on crash recovery.  These should be
>   implemented using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP |
>   TRUNCATE | STABLE | DEFAULT ].  [wallog]

18 years agoUpdate x86 Solaris documenation ideas.
Bruce Momjian [Thu, 5 Jan 2006 15:56:54 +0000 (15:56 +0000)]
Update x86 Solaris documenation ideas.

18 years agoAdd compile flags sample.
Bruce Momjian [Thu, 5 Jan 2006 15:31:23 +0000 (15:31 +0000)]
Add compile flags sample.

18 years agoNew pgcrypto item wording.
Bruce Momjian [Thu, 5 Jan 2006 15:19:05 +0000 (15:19 +0000)]
New pgcrypto item wording.

18 years agoUpdate item:
Bruce Momjian [Thu, 5 Jan 2006 15:13:32 +0000 (15:13 +0000)]
Update item:

< * %Remove behavior of postmaster -o after making postmaster/postgres
<   flags unique
> * %Remove behavior of postmaster -o

18 years agoWording improvements.
Bruce Momjian [Thu, 5 Jan 2006 15:12:36 +0000 (15:12 +0000)]
Wording improvements.

18 years agoImprove markup.
Bruce Momjian [Thu, 5 Jan 2006 14:53:47 +0000 (14:53 +0000)]
Improve markup.

18 years agoMake all command-line options of postmaster and postgres the same. See
Peter Eisentraut [Thu, 5 Jan 2006 10:07:46 +0000 (10:07 +0000)]
Make all command-line options of postmaster and postgres the same.  See
http://archives.postgresql.org/pgsql-hackers/2006-01/msg00151.php for the
complete plan.

18 years agoUpdate release notes for 8.1.X, 8.0.X, 7.4.X, and 7.3.X.
Bruce Momjian [Thu, 5 Jan 2006 05:15:50 +0000 (05:15 +0000)]
Update release notes for 8.1.X, 8.0.X, 7.4.X, and 7.3.X.

18 years agoUpdate version number.
Bruce Momjian [Thu, 5 Jan 2006 03:55:13 +0000 (03:55 +0000)]
Update version number.

18 years agoDone:
Bruce Momjian [Thu, 5 Jan 2006 03:02:03 +0000 (03:02 +0000)]
Done:

> * -Remove BeOS and QNX-specific code

18 years agoRemove BEOS port.
Bruce Momjian [Thu, 5 Jan 2006 03:01:38 +0000 (03:01 +0000)]
Remove BEOS port.

18 years agoRemove QNX file.
Bruce Momjian [Thu, 5 Jan 2006 02:43:38 +0000 (02:43 +0000)]
Remove QNX file.

18 years agoRemove QNX port.
Bruce Momjian [Thu, 5 Jan 2006 01:56:30 +0000 (01:56 +0000)]
Remove QNX port.

18 years agoRearrange backend startup sequence so that ShmemIndexLock can become
Tom Lane [Wed, 4 Jan 2006 21:06:32 +0000 (21:06 +0000)]
Rearrange backend startup sequence so that ShmemIndexLock can become
an LWLock instead of a spinlock.  This hardly matters on Unix machines
but should improve startup performance on Windows (or any port using
EXEC_BACKEND).  Per previous discussion.

18 years agoFix another case in which autovacuum would fail while analyzing
Tom Lane [Wed, 4 Jan 2006 19:16:24 +0000 (19:16 +0000)]
Fix another case in which autovacuum would fail while analyzing
expressional indexes.  Per report from Brian Hirt.

18 years agoThere is a signedness bug in Openwall gen_salt code that pgcrypto uses.
Tom Lane [Tue, 3 Jan 2006 23:46:24 +0000 (23:46 +0000)]
There is a signedness bug in Openwall gen_salt code that pgcrypto uses.
This makes the salt space for md5 and xdes algorithms a lot smaller than
it should be.

Marko Kreen

18 years agoWhen the remote query result has a different number of columns
Joe Conway [Tue, 3 Jan 2006 23:45:52 +0000 (23:45 +0000)]
When the remote query result has a different number of columns
than the local query specifies (e.g. in the FROM clause),
throw an ERROR (instead of crashing). Fix for bug #2129 reported
by Akio Iwaasa.

18 years agoFix incorrect treatment of RL_PROMPT_START_IGNORE/RL_PROMPT_END_IGNORE,
Tom Lane [Tue, 3 Jan 2006 23:32:30 +0000 (23:32 +0000)]
Fix incorrect treatment of RL_PROMPT_START_IGNORE/RL_PROMPT_END_IGNORE,
per http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=343616 via Martin Pitt.

18 years agoAdd checks to verify that a plpgsql function returning a rowtype is actually
Tom Lane [Tue, 3 Jan 2006 22:48:10 +0000 (22:48 +0000)]
Add checks to verify that a plpgsql function returning a rowtype is actually
returning the rowtype it's supposed to return.  Per reports from David Niblett
and Michael Fuhr.

18 years agoAssume select() might modify struct timeout, so remove previous
Bruce Momjian [Tue, 3 Jan 2006 19:54:08 +0000 (19:54 +0000)]
Assume select() might modify struct timeout, so remove previous
optimization.

18 years agoUse setitimer() for stats file write, rather than do a gettimeofday()
Bruce Momjian [Tue, 3 Jan 2006 16:42:17 +0000 (16:42 +0000)]
Use setitimer() for stats file write, rather than do a gettimeofday()
call for every stats packet read to adjust select() timeout.  Other
stylistic improvements.

18 years agoDon't assume that LC_MESSAGES is always available on WIN32. Per Magnus.
Tom Lane [Mon, 2 Jan 2006 20:25:45 +0000 (20:25 +0000)]
Don't assume that LC_MESSAGES is always available on WIN32.  Per Magnus.

18 years agoReset flex state in a way that works for both flex 2.5.4 and 2.5.31.
Tom Lane [Mon, 2 Jan 2006 19:55:25 +0000 (19:55 +0000)]
Reset flex state in a way that works for both flex 2.5.4 and 2.5.31.

18 years agoRemove the nexus between trial_buffs and trial_conns, and don't test shared buffers...
Andrew Dunstan [Mon, 2 Jan 2006 16:45:12 +0000 (16:45 +0000)]
Remove the nexus between trial_buffs and trial_conns, and don't test shared buffers lower than or equal to a value we already know is good, but use that value instead. This will make it easier to adjust the trial values and/or formulae in future if necessary.

18 years agoRemove unnecessary assignment, per Tom.
Bruce Momjian [Mon, 2 Jan 2006 03:30:41 +0000 (03:30 +0000)]
Remove unnecessary assignment, per Tom.

18 years agoChange if (!(x || y)) construct with if (!x && !y), for clarity.
Bruce Momjian [Mon, 2 Jan 2006 00:58:00 +0000 (00:58 +0000)]
Change if (!(x || y)) construct with if (!x && !y), for clarity.

18 years agoRewrite ProcessConfigFile() to avoid misbehavior at EOF, as per report
Tom Lane [Sun, 1 Jan 2006 19:52:40 +0000 (19:52 +0000)]
Rewrite ProcessConfigFile() to avoid misbehavior at EOF, as per report
from Andrus Moor.  The former state-machine-style coding wasn't actually
doing much except obscuring the control flow, and it didn't extend
readily to fix this case, so I just took it out.  Also, add a
YY_FLUSH_BUFFER call to ensure the lexer is reset correctly if the
previous scan failed partway through the file.

18 years agoRemove DOS line endings ("\r\n") from several .po files. DOS line endings
Neil Conway [Sun, 1 Jan 2006 10:13:56 +0000 (10:13 +0000)]
Remove DOS line endings ("\r\n") from several .po files. DOS line endings
are inconsistent with the rest of the .po files, and apparently cause
problems for Sun's cc. Per report on IRC from "bitvector2".

18 years agoTrim an obsolete comment: it is no longer relevant that "SELECT" was
Neil Conway [Sun, 1 Jan 2006 01:41:42 +0000 (01:41 +0000)]
Trim an obsolete comment: it is no longer relevant that "SELECT" was
formerly "RETRIEVE", and so forth.

18 years agoClean up initdb's code for selecting max_connections and shared_buffers
Tom Lane [Sat, 31 Dec 2005 23:50:59 +0000 (23:50 +0000)]
Clean up initdb's code for selecting max_connections and shared_buffers
a little bit, and set the minimum buffers-per-connection ratio to 10 not
5.  I folded the two test routines into one to counteract the illusion
that the tests can be twiddled independently, and added some documentation
pointing out the necessary connection between the sets of values tested.
Fixes strange choices of parameters that I noticed CVS tip making on
Darwin with Apple's undersized default SHMMAX.

18 years agoRename variable to cmd_str.
Bruce Momjian [Sat, 31 Dec 2005 19:39:11 +0000 (19:39 +0000)]
Rename variable to cmd_str.

18 years agoRename variable 'what' to 'stat_msg'.
Bruce Momjian [Sat, 31 Dec 2005 17:46:19 +0000 (17:46 +0000)]
Rename variable 'what' to 'stat_msg'.

18 years agoPrefix client-side prepare with '[protocol]' rather than '[client]'.
Bruce Momjian [Sat, 31 Dec 2005 16:50:44 +0000 (16:50 +0000)]
Prefix client-side prepare with '[protocol]' rather than '[client]'.

18 years agoRename send_rfq to send_ready_for_query.
Bruce Momjian [Fri, 30 Dec 2005 23:49:48 +0000 (23:49 +0000)]
Rename send_rfq to send_ready_for_query.

18 years agoMmark client-side prepare/bind/execute statements with "[client]" so
Bruce Momjian [Fri, 30 Dec 2005 22:55:20 +0000 (22:55 +0000)]
Mmark client-side prepare/bind/execute statements with "[client]" so
they can be easily distinguished from SQL commands.

18 years agoAdd support for Solaris x86_64 using Sun's compiler.
Bruce Momjian [Fri, 30 Dec 2005 21:43:41 +0000 (21:43 +0000)]
Add support for Solaris x86_64 using Sun's compiler.

Pierre Girard

18 years agoRepair EXPLAIN failure when trying to display a plan condition that involves
Tom Lane [Fri, 30 Dec 2005 18:34:22 +0000 (18:34 +0000)]
Repair EXPLAIN failure when trying to display a plan condition that involves
selection of a field from the result of a function returning RECORD.
I believe this case is new in 8.1; it's due to the addition of OUT parameters.
Per example from Michael Fuhr.

18 years agoAdd:
Bruce Momjian [Fri, 30 Dec 2005 03:24:58 +0000 (03:24 +0000)]
Add:

> * Make CLUSTER preserve recently-dead tuples per MVCC requirements

18 years agoDisallow setting ssl = on if SSL is not compiled in.
Peter Eisentraut [Fri, 30 Dec 2005 00:13:50 +0000 (00:13 +0000)]
Disallow setting ssl = on if SSL is not compiled in.

18 years agoIndex: src/pl/plpython/plpython.c
Neil Conway [Thu, 29 Dec 2005 21:47:32 +0000 (21:47 +0000)]
Index: src/pl/plpython/plpython.c
===================================================================
RCS file: /Users/neilc/postgres/cvs_root/pgsql/src/pl/plpython/plpython.c,v
retrieving revision 1.67
diff -c -r1.67 plpython.c
*** src/pl/plpython/plpython.c 26 Dec 2005 04:28:48 -0000 1.67
--- src/pl/plpython/plpython.c 29 Dec 2005 16:54:57 -0000
***************
*** 2,8 ****
   * plpython.c - python as a procedural language for PostgreSQL
   *
   * This software is copyright by Andrew Bosma
!  * but is really shameless cribbed from pltcl.c by Jan Weick, and
   * plperl.c by Mark Hollomon.
   *
   * The author hereby grants permission to use, copy, modify,
--- 2,8 ----
   * plpython.c - python as a procedural language for PostgreSQL
   *
   * This software is copyright by Andrew Bosma
!  * but is really shamelessly cribbed from pltcl.c by Jan Wieck, and
   * plperl.c by Mark Hollomon.
   *
   * The author hereby grants permission to use, copy, modify,
***************
*** 1996,2002 ****
   int i,
   rv;
   PLyPlanObject *plan;
-  char    *nulls;
   MemoryContext oldcontext;

   if (list != NULL)
--- 1996,2001 ----
***************
*** 2018,2024 ****
   if (nargs != plan->nargs)
   {
   char    *sv;
-
   PyObject   *so = PyObject_Str(list);

   if (!so)
--- 2017,2022 ----
***************
*** 2036,2048 ****
   oldcontext = CurrentMemoryContext;
   PG_TRY();
   {
!  nulls = palloc(nargs * sizeof(char));

   for (i = 0; i < nargs; i++)
   {
   PyObject   *elem,
      *so;
-  char    *sv;

   elem = PySequence_GetItem(list, i);
   if (elem != Py_None)
--- 2034,2045 ----
   oldcontext = CurrentMemoryContext;
   PG_TRY();
   {
!  char    *nulls = palloc(nargs * sizeof(char));

   for (i = 0; i < nargs; i++)
   {
   PyObject   *elem,
      *so;

   elem = PySequence_GetItem(list, i);
   if (elem != Py_None)
***************
*** 2051,2070 ****
   if (!so)
   PLy_elog(ERROR, "function \"%s\" could not execute plan",
    PLy_procedure_name(PLy_curr_procedure));
!  sv = PyString_AsString(so);

!  /*
!   * FIXME -- if this elogs, we have Python reference leak
!   */
!  plan->values[i] =
!  FunctionCall3(&(plan->args[i].out.d.typfunc),
!    CStringGetDatum(sv),
!  ObjectIdGetDatum(plan->args[i].out.d.typioparam),
!    Int32GetDatum(-1));

!  Py_DECREF(so);
!  Py_DECREF(elem);

   nulls[i] = ' ';
   }
   else
--- 2048,2073 ----
   if (!so)
   PLy_elog(ERROR, "function \"%s\" could not execute plan",
    PLy_procedure_name(PLy_curr_procedure));
!  Py_DECREF(elem);

!  PG_TRY();
!  {
!  char *sv = PyString_AsString(so);

!  plan->values[i] =
!  FunctionCall3(&(plan->args[i].out.d.typfunc),
!    CStringGetDatum(sv),
!  ObjectIdGetDatum(plan->args[i].out.d.typioparam),
!    Int32GetDatum(-1));
!  }
!  PG_CATCH();
!  {
!  Py_DECREF(so);
!  PG_RE_THROW();
!  }
!  PG_END_TRY();

+  Py_DECREF(so);
   nulls[i] = ' ';
   }
   else

18 years agoGet rid of the SpinLockAcquire/SpinLockAcquire_NoHoldoff distinction
Tom Lane [Thu, 29 Dec 2005 18:08:05 +0000 (18:08 +0000)]
Get rid of the SpinLockAcquire/SpinLockAcquire_NoHoldoff distinction
in favor of having just one set of macros that don't do HOLD/RESUME_INTERRUPTS
(hence, these correspond to the old SpinLockAcquire_NoHoldoff case).
Given our coding rules for spinlock use, there is no reason to allow
CHECK_FOR_INTERRUPTS to be done while holding a spinlock, and also there
is no situation where ImmediateInterruptOK will be true while holding a
spinlock.  Therefore doing HOLD/RESUME_INTERRUPTS while taking/releasing a
spinlock is just a waste of cycles.  Qingqing Zhou and Tom Lane.

18 years agoUpdate:
Bruce Momjian [Thu, 29 Dec 2005 16:45:11 +0000 (16:45 +0000)]
Update:

< * Add missing rtree optimizer selectivity
> * Improve selectivity functions for geometric operators