Commit Graph

21807 Commits

Author SHA1 Message Date
Tom Lane db0558c113 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.
2006-01-12 19:23:22 +00:00
Tom Lane 9484e14c5c Remove extraneous backslash from 'fixseq.sql' example --- mea culpa
certainly.  Per report from George Woodring.
2006-01-12 18:09:24 +00:00
Tom Lane 445144b8c2 Update comment about outer joins in description of geqo_threshold. 2006-01-11 23:14:29 +00:00
Neil Conway 416689c866 Documentation tweak: add spaces around the brackets in the description
of the CREATE CONVERSION syntax, for consistency with the other SQL
reference pages.
2006-01-11 22:16:39 +00:00
Bruce Momjian 2583663623 Brace cleanup. 2006-01-11 21:24:30 +00:00
Bruce Momjian 9545d66a97 Done:
> * -Add sleep() function, remove from regress.c
2006-01-11 20:28:21 +00:00
Tom Lane 782eefc580 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
2006-01-11 20:12:43 +00:00
Neil Conway fb627b76cc 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.
2006-01-11 08:43:13 +00:00
Neil Conway 762bcbdba2 Remove a confusing pair of parentheses. 2006-01-11 06:59:22 +00:00
Tom Lane 399437acec Improve error messages for missing-FROM-entry cases, as per recent discussion. 2006-01-10 21:59:59 +00:00
Neil Conway 8ea91ba18e 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.
2006-01-10 18:50:43 +00:00
Tom Lane ce8fd39e15 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.
2006-01-10 17:35:52 +00:00
Andrew Dunstan ad24b8e6ee remove unneeded defines for uid_t and gid_t, which conflict with perl's typedefs. 2006-01-10 01:01:03 +00:00
Neil Conway c08c8529e7 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.
2006-01-10 00:33:12 +00:00
Bruce Momjian 42ff6a04d8 Done:
< * %Allow pooled connections to list all prepared statements
> * -%Allow pooled connections to list all prepared statements
2006-01-09 22:43:23 +00:00
Tom Lane e4a6bd224c 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 :-(
2006-01-09 21:16:17 +00:00
Peter Eisentraut 894829a32c Change allow_system_table_mods to PGC_POSTMASTER, restoring previous
behavior.
2006-01-09 10:05:31 +00:00
Neil Conway 6c8d838079 Minor code cleanup for PL/Python: fixup some strangely formatted comments,
and change two elogs into ereports because they could actually occur
in practice.
2006-01-09 02:47:09 +00:00
Andrew Dunstan 9bb76d0b3f 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.
2006-01-08 22:27:52 +00:00
Tom Lane 2645cb54cb 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.
2006-01-08 21:24:37 +00:00
Tom Lane cbf39930d6 Recent patch broke guc.c for non-USE_ASSERT_CHECKING case. Per
Stefan Kaltenbrunner.
2006-01-08 20:13:33 +00:00
Tom Lane edfbd0744a 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.
2006-01-08 20:04:41 +00:00
Neil Conway 44b928e876 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.
2006-01-08 07:00:27 +00:00
Tom Lane afa8f1971a 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.
2006-01-07 22:45:41 +00:00
Tom Lane e58a944700 Add comment explaining why RelationOpenSmgr() call is not needed. 2006-01-07 22:30:43 +00:00
Tom Lane 7eb5428199 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.
2006-01-07 21:16:10 +00:00
Tom Lane 0a8510e0f8 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.
2006-01-06 20:11:12 +00:00
Bruce Momjian 38e75d9275 Use RELKIND_COMPOSITE_TYPE rather than hardcoded 'c'. 2006-01-06 19:08:33 +00:00
Tom Lane 615d99feb4 Release-note updates and copy editing. 2006-01-06 02:59:57 +00:00
Tom Lane a7812eb4be 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.
2006-01-06 02:58:25 +00:00
Tom Lane bf7faa7c8f Fix broken markup. 2006-01-06 01:35:09 +00:00
Tom Lane 2d0475e480 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.
2006-01-06 00:15:50 +00:00
Tom Lane 304160c3e2 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.)
2006-01-06 00:04:20 +00:00
Bruce Momjian 6d41b144e9 Add:
>
> 	* Allow SERIAL sequences to inherit permissions from the base table?
2006-01-05 17:47:53 +00:00
Bruce Momjian 9a47ad1d20 Add logging control TODO.detail. 2006-01-05 17:28:45 +00:00
Bruce Momjian db6cb1a9a9 Update:
<   stable logging probably can not have indexes.  [wallog]
>   stable logging probably can not have indexes.  [walcontrol]
2006-01-05 16:39:54 +00:00
Bruce Momjian ac9e14d064 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]
2006-01-05 16:35:19 +00:00
Bruce Momjian e7893db5cf 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]
2006-01-05 16:26:49 +00:00
Bruce Momjian 1b736817d0 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]
2006-01-05 16:23:48 +00:00
Bruce Momjian 33cd2706ad Update x86 Solaris documenation ideas. 2006-01-05 15:56:54 +00:00
Bruce Momjian 449c8af127 Add compile flags sample. 2006-01-05 15:31:23 +00:00
Bruce Momjian 04236bb296 New pgcrypto item wording. 2006-01-05 15:19:05 +00:00
Bruce Momjian 3002492fc7 Update item:
< * %Remove behavior of postmaster -o after making postmaster/postgres
<   flags unique
> * %Remove behavior of postmaster -o
2006-01-05 15:13:32 +00:00
Bruce Momjian 8b2b1d87f8 Wording improvements. 2006-01-05 15:12:36 +00:00
Bruce Momjian 1c59af06db Improve markup. 2006-01-05 14:53:47 +00:00
Peter Eisentraut 86c23a6eb2 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.
2006-01-05 10:07:46 +00:00
Bruce Momjian 4e1712ea54 Update release notes for 8.1.X, 8.0.X, 7.4.X, and 7.3.X. 2006-01-05 05:15:50 +00:00
Bruce Momjian 0dc43870ae Update version number. 2006-01-05 03:55:13 +00:00
Bruce Momjian 9be5beb918 Done:
> * -Remove BeOS and QNX-specific code
2006-01-05 03:02:03 +00:00
Bruce Momjian 44f9021223 Remove BEOS port. 2006-01-05 03:01:38 +00:00