Commit Graph

26696 Commits

Author SHA1 Message Date
Bruce Momjian c4fd93b3f3 Re-enable pg_terminate_backend() using SIGTERM. SIGTERM testing still
needed.
2008-04-17 20:56:41 +00:00
Tom Lane c5e4e91a96 Add some code to EXPLAIN to show the targetlist (ie, output columns)
of each plan node.  For the moment this is debug support only and is
not enabled unless EXPLAIN_PRINT_TLISTS is defined at build time.
Later I'll see about the idea of letting EXPLAIN VERBOSE do it.
2008-04-17 18:30:18 +00:00
Tom Lane d1cbd26ded Repair two places where SIGTERM exit could leave shared memory state
corrupted.  (Neither is very important if SIGTERM is used to shut down the
whole database cluster together, but there's a problem if someone tries to
SIGTERM individual backends.)  To do this, introduce new infrastructure
macros PG_ENSURE_ERROR_CLEANUP/PG_END_ENSURE_ERROR_CLEANUP that take care
of transiently pushing an on_shmem_exit cleanup hook.  Also use this method
for createdb cleanup --- that wasn't a shared-memory-corruption problem,
but SIGTERM abort of createdb could leave orphaned files lying around.

Backpatch as far as 8.2.  The shmem corruption cases don't exist in 8.1,
and the createdb usage doesn't seem important enough to risk backpatching
further.
2008-04-16 23:59:40 +00:00
Andrew Dunstan 74be86847c Fix MinGW warnings re formats and unused variables. per ITAGAKI Takahiro 2008-04-16 22:16:00 +00:00
Bruce Momjian d18f5c3eb0 Ignore blank lines in typedef file. 2008-04-16 21:03:08 +00:00
Bruce Momjian 35390aab16 Update most recent release to 8.3.1. 2008-04-16 20:57:18 +00:00
Tom Lane 0f45d1eb08 Fix LOAD_CRIT_INDEX() macro to take out AccessShareLock on the system index
it is trying to build a relcache entry for.  This is an oversight in my 8.2
patch that tried to ensure we always took a lock on a relation before trying
to build its relcache entry.  The implication is that if someone committed a
reindex of a critical system index at about the same time that some other
backend were starting up without a valid pg_internal.init file, the second one
might PANIC due to not seeing any valid version of the index's pg_class row.
Improbable case, but definitely not impossible.
2008-04-16 18:23:04 +00:00
Bruce Momjian a9b3e4fa6f Fix comment typo.
Bryce Nesbitt
2008-04-16 18:18:00 +00:00
Bruce Momjian c0f839fc60 Update TODO wording. 2008-04-16 17:50:01 +00:00
Bruce Momjian 54495e387f Add to TODO:
> * Implement the non-threaded Avahi service discovery protocol
>   http://archives.postgresql.org/pgsql-hackers/2008-02/msg00939.php
>   http://archives.postgresql.org/pgsql-patches/2008-02/msg00097.php
>   http://archives.postgresql.org/pgsql-hackers/2008-03/msg01211.php
>   http://archives.postgresql.org/pgsql-patches/2008-04/msg00001.php
2008-04-16 17:25:56 +00:00
Andrew Dunstan e8d11ade56 Avoid using unnecessary pgwin32_safestat in libpq. 2008-04-16 14:19:56 +00:00
Bruce Momjian 17cdf848b8 Re-add terminate TODO item. 2008-04-15 21:39:19 +00:00
Bruce Momjian 76365960d2 Revert addition of pg_terminate_backend() because of race conditions. 2008-04-15 20:28:47 +00:00
Andrew Dunstan 2b8a795738 Add multi-line flag to regex that needs it. Backpatch to 8.2. Fix from Andreas Zeugswetter 2008-04-15 16:22:36 +00:00
Bruce Momjian 1e40da49ae Add TODO item:
< * Allow NOTIFY in rules involving conditionals
>
> 	o Allow NOTIFY in rules involving conditionals
> 	o Improve LISTEN concurrency
>
> 	  http://archives.postgresql.org/pgsql-hackers/2008-02/msg01106.php
2008-04-15 15:08:59 +00:00
Bruce Momjian 6d2b258ad0 Move LISTEN/NOTIFY items to separate TODO section. 2008-04-15 15:07:09 +00:00
Bruce Momjian c28c9d69ef Add to TODO:
> * Allow XML to accept more liberal DOCTYPE specifications
>
>   http://archives.postgresql.org/pgsql-general/2008-02/msg00347.php
2008-04-15 14:24:32 +00:00
Bruce Momjian 56913735d0 Done:
> * -Allow administrators to safely terminate individual sessions either
2008-04-15 13:55:42 +00:00
Bruce Momjian 18b286f3e3 Add pg_terminate_backend() to allow terminating only a single session. 2008-04-15 13:55:12 +00:00
Andrew Dunstan fcf053d782 Make integer_datetimes the default for MSVC even if not mentioned in config.pl. 2008-04-15 12:16:51 +00:00
Tom Lane 9b5c8d45f6 Push index operator lossiness determination down to GIST/GIN opclass
"consistent" functions, and remove pg_amop.opreqcheck, as per recent
discussion.  The main immediate benefit of this is that we no longer need
8.3's ugly hack of requiring @@@ rather than @@ to test weight-using tsquery
searches on GIN indexes.  In future it should be possible to optimize some
other queries better than is done now, by detecting at runtime whether the
index match is exact or not.

Tom Lane, after an idea of Heikki's, and with some help from Teodor.
2008-04-14 17:05:34 +00:00
Alvaro Herrera 10be77c173 Fix indentation in new REFERENCED BY psql output, per Brendan Jurd. 2008-04-14 15:04:20 +00:00
Bruce Momjian 9afab58eed Add URL for:
* Consider automatic caching of statements at various levels:

> 	http://archives.postgresql.org/pgsql-hackers/2008-04/msg00823.php
2008-04-14 13:33:53 +00:00
Tom Lane 226837e57e Since createplan.c no longer cares whether index operators are lossy, it has
no particular need to do get_op_opfamily_properties() while building an
indexscan plan.  Postpone that lookup until executor start.  This simplifies
createplan.c a lot more than it complicates nodeIndexscan.c, and makes things
more uniform since we already had to do it that way for RowCompare
expressions.  Should be a bit faster too, at least for plans that aren't
re-used many times, since we avoid palloc'ing and perhaps copying the
intermediate list data structure.
2008-04-13 20:51:21 +00:00
Tom Lane 24558da14a Phase 2 of project to make index operator lossiness be determined at runtime
instead of plan time.  Extend the amgettuple API so that the index AM returns
a boolean indicating whether the indexquals need to be rechecked, and make
that rechecking happen in nodeIndexscan.c (currently the only place where
it's expected to be needed; other callers of index_getnext are just erroring
out for now).  For the moment, GIN and GIST have stub logic that just always
sets the recheck flag to TRUE --- I'm hoping to get Teodor to handle pushing
that control down to the opclass consistent() functions.  The planner no
longer pays any attention to amopreqcheck, and that catalog column will go
away in due course.
2008-04-13 19:18:14 +00:00
Tom Lane c22ed3d523 Turn the -i/--ignore-version options of pg_dump and pg_dumpall into no-ops:
the server version check is now always enforced.  Relax the version check to
allow a server that is of pg_dump's own major version but a later minor
version; this is the only case that -i was at all safe to use in.

pg_restore already enforced only a very weak version check, so this is
really just a documentation change for it.

Per discussion.
2008-04-13 03:49:22 +00:00
Tom Lane ba1c463096 Clean up a few places where Datums were being treated as pointers without
going through DatumGetPointer or some other "official" conversion macro.
Not actually a bug, since Datum the same size as pointer is the only
supported case at the moment, but good cleanup for the future.

Gavin Sherry
2008-04-12 23:21:04 +00:00
Tom Lane ec498cdcbb Create new routines systable_beginscan_ordered, systable_getnext_ordered,
systable_endscan_ordered that have API similar to systable_beginscan etc
(in particular, the passed-in scankeys have heap not index attnums),
but guarantee ordered output, unlike the existing functions.  For the moment
these are just very thin wrappers around index_beginscan/index_getnext/etc.
Someday they might need to get smarter; but for now this is just a code
refactoring exercise to reduce the number of direct callers of index_getnext,
in preparation for changing that function's API.

In passing, remove index_getnext_indexitem, which has been dead code for
quite some time, and will have even less use than that in the presence
of run-time-lossy indexes.
2008-04-12 23:14:21 +00:00
Tom Lane 00832809a0 A quick try at un-breaking the Cygwin build. Whether it needs the
pgwin32_safestat remains to be determined, but in any case the current
code is not tolerable.
2008-04-11 23:53:00 +00:00
Tom Lane 65c3d05e18 Add some debug support code to try to catch future mistakes in the area of
input functions that include garbage bytes in their results.  Provide a
compile-time option RANDOMIZE_ALLOCATED_MEMORY to make palloc fill returned
blocks with variable contents.  This option also makes the parser perform
conversions of literal constants twice and compare the results, emitting a
WARNING if they don't match.  (This is the code I used to catch the input
function bugs fixed in the previous commit.)  For the moment, I've set it
to be activated automatically by --enable-cassert.
2008-04-11 22:54:23 +00:00
Tom Lane c846f7ca8a Fix several datatype input functions that were allowing unused bytes in their
results to contain uninitialized, unpredictable values.  While this was okay
as far as the datatypes themselves were concerned, it's a problem for the
parser because occurrences of the "same" literal might not be recognized as
equal by datumIsEqual (and hence not by equal()).  It seems sufficient to fix
this in the input functions since the only critical use of equal() is in the
parser's comparisons of ORDER BY and DISTINCT expressions.
Per a trouble report from Marc Cousin.

Patch all the way back.  Interestingly, array_in did not have the bug before
8.2, which may explain why the issue went unnoticed for so long.
2008-04-11 22:52:05 +00:00
Bruce Momjian 00b1827ae1 Update wording:
< * Allow functions to control the transaction state
> * Allow calling of a procedure outside a SELECT that can control the
>   transaction state
2008-04-11 19:50:40 +00:00
Bruce Momjian accbddc9bd Changed TODO wording:
< * Support procedures, which return no value
> * Allow functions to control the transaction state
2008-04-11 19:36:07 +00:00
Bruce Momjian 942550575f Add TODO:
> * Support procedures, which return no value
>
>   http://archives.postgresql.org/pgsql-hackers/2007-10/msg01375.php
2008-04-11 19:16:47 +00:00
Bruce Momjian a464dc07fe Update URLs for dead space map. 2008-04-11 19:14:57 +00:00
Bruce Momjian 3fa352da28 Fix main README typo.
Brendan Jurd
2008-04-11 16:09:33 +00:00
Tom Lane 4e82a95476 Replace "amgetmulti" AM functions with "amgetbitmap", in which the whole
indexscan always occurs in one call, and the results are returned in a
TIDBitmap instead of a limited-size array of TIDs.  This should improve
speed a little by reducing AM entry/exit overhead, and it is necessary
infrastructure if we are ever to support bitmap indexes.

In an only slightly related change, add support for TIDBitmaps to preserve
(somewhat lossily) the knowledge that particular TIDs reported by an index
need to have their quals rechecked when the heap is visited.  This facility
is not really used yet; we'll need to extend the forced-recheck feature to
plain indexscans before it's useful, and that hasn't been coded yet.
The intent is to use it to clean up 8.3's horrid @@@ kluge for text search
with weighted queries.  There might be other uses in future, but that one
alone is sufficient reason.

Heikki Linnakangas, with some adjustments by me.
2008-04-10 22:25:26 +00:00
Bruce Momjian f260edb144 Add TODO URLs moved from open items queue:
>   http://archives.postgresql.org/pgsql-hackers/2007-03/msg00265.php
>   http://archives.postgresql.org/pgsql-hackers/2007-03/msg01214.php
>   http://archives.postgresql.org/pgsql-patches/2007-05/msg00013.php
>   http://archives.postgresql.org/pgsql-hackers/2007-07/msg00741.php
>   http://archives.postgresql.org/pgsql-hackers/2007-08/msg00014.php
>   http://archives.postgresql.org/pgsql-hackers/2007-08/msg00487.php
> * Allow index scans to return matching index keys
>
>   http://archives.postgresql.org/pgsql-hackers/2007-03/msg01079.php
>
>   http://archives.postgresql.org/pgsql-patches/2007-10/msg00166.php
>   http://archives.postgresql.org/pgsql-patches/2008-01/msg00049.php
2008-04-10 18:58:15 +00:00
Magnus Hagander 47a19a495d Create wrapper pgwin32_safestat() and redefine stat() to it
on win32, because the stat() function in the runtime cannot
be trusted to always update the st_size field.

Per report and research by Sergey Zubkovsky.
2008-04-10 16:58:51 +00:00
Magnus Hagander a57a1e61a1 Make parameters in implementation have same const:ness as the ones in
the prototype. Silences msvc build warning.
2008-04-10 15:20:52 +00:00
Alvaro Herrera e863951a59 Remove mention of DBD::PgSPI, which is unmaintained and generally unnecessary. 2008-04-10 15:16:46 +00:00
Alvaro Herrera 66782364a1 Mention pg_backend_pid() in the system information section in addition
to the monitoring section.

Jim Nasby
2008-04-10 13:34:33 +00:00
Michael Meskes 02b2bc7907 PGTYPEStimestamp_sub should use the values and not the pointers to substract. 2008-04-10 10:43:35 +00:00
Bruce Momjian d44523638a Document that continuous archiving backup can be used for cases where
you can't get a simultaneous snapshot.
2008-04-09 02:52:04 +00:00
Bruce Momjian 2662e03b64 Update text FAQ. 2008-04-09 01:04:08 +00:00
Bruce Momjian 91509e6a87 Small wording improvements for source code READMEs. 2008-04-09 01:00:46 +00:00
Bruce Momjian 4d048b7b8b Revert README cleanups. 2008-04-09 00:59:24 +00:00
Bruce Momjian 8cb3ad9f52 Revert sentence removal from nickname in FAQ. 2008-04-09 00:55:30 +00:00
Bruce Momjian 20c5542c8b Remove mention of the Berkeley origins of the alias "Postgres" ---
seems unnecessary to mention in the FAQ, per discussion on IRC.
2008-04-09 00:44:07 +00:00
Tom Lane 635aaab278 Fix tsvector_update_trigger() to be domain-friendly: it needs to allow all
the columns it works with to be domains over the expected type, not just
exactly the expected type.  In passing, fix ts_stat() the same way.
Per report from Markus Wollny.
2008-04-08 18:20:29 +00:00