]> granicus.if.org Git - postgresql/log
postgresql
15 years agoSupport window functions a la SQL:2008.
Tom Lane [Sun, 28 Dec 2008 18:54:01 +0000 (18:54 +0000)]
Support window functions a la SQL:2008.

Hitoshi Harada, with some kibitzing from Heikki and Tom.

15 years agoMake a couple of small changes to the tuplestore API, for the benefit of the
Tom Lane [Sat, 27 Dec 2008 17:39:00 +0000 (17:39 +0000)]
Make a couple of small changes to the tuplestore API, for the benefit of the
upcoming window-functions patch.  First, tuplestore_trim is now an
exported function that must be explicitly invoked by callers at
appropriate times, rather than something that tuplestore tries to do
behind the scenes.  Second, a read pointer that is marked as allowing
backward scan no longer prevents truncation.  This means that a read pointer
marked as having BACKWARD but not REWIND capability can only safely read
backwards as far as the oldest other read pointer.  (The expected use pattern
for this involves having another read pointer that serves as the truncation
fencepost.)

15 years agoRemove unused include file, per ITAGAKI Takahiro. AFAICT this has been
Tom Lane [Fri, 26 Dec 2008 17:51:04 +0000 (17:51 +0000)]
Remove unused include file, per ITAGAKI Takahiro.  AFAICT this has been
dead code since Postgres95.

15 years agoChange the name of dtrace wal tracepoints:
Bruce Momjian [Wed, 24 Dec 2008 20:41:29 +0000 (20:41 +0000)]
Change the name of dtrace wal tracepoints:

TRACE_POSTGRESQL_WAL_BUFFER_WRITE_DIRTY

Robert Lor

15 years agoTeach MSVC build system about building foreign data wrappers.
Magnus Hagander [Sat, 20 Dec 2008 22:04:02 +0000 (22:04 +0000)]
Teach MSVC build system about building foreign data wrappers.

Should fix recent buildfarm breakage.

15 years agoAdd missing semicolon, per buildfarm results. Martin Pihlak
Tom Lane [Sat, 20 Dec 2008 16:02:55 +0000 (16:02 +0000)]
Add missing semicolon, per buildfarm results.  Martin Pihlak

15 years agoFix various confusions of pointers and OIDs, unsafe assumptions about nulls,
Tom Lane [Sat, 20 Dec 2008 15:51:28 +0000 (15:51 +0000)]
Fix various confusions of pointers and OIDs, unsafe assumptions about nulls,
etc.  I think this will fix the current buildfarm issues ...

15 years agoDon't use OidIsValid to check the return value of transformGenericOptions,
Heikki Linnakangas [Sat, 20 Dec 2008 09:40:56 +0000 (09:40 +0000)]
Don't use OidIsValid to check the return value of transformGenericOptions,
because transformGenericOptions returns an array, not an Oid. I'm not
sure if this fixes the crashes seen in buildfarm, but it should be fixed
anyway.

15 years agoAdd a new column proiswindow to pg_proc. It doesn't actually do anything
Tom Lane [Fri, 19 Dec 2008 18:25:20 +0000 (18:25 +0000)]
Add a new column proiswindow to pg_proc.  It doesn't actually do anything
useful yet, but I'm tired of re-merging this aspect of the window functions
patch.

15 years agoSQL/MED catalog manipulation facilities
Peter Eisentraut [Fri, 19 Dec 2008 16:25:19 +0000 (16:25 +0000)]
SQL/MED catalog manipulation facilities

This doesn't do any remote or external things yet, but it gives modules
like plproxy and dblink a standardized and future-proof system for
managing their connection information.

Martin Pihlak and Peter Eisentraut

15 years agoHave psql's \d+ print reloptions. Extracted from Euler Taveira de Oliveira's
Alvaro Herrera [Fri, 19 Dec 2008 14:39:58 +0000 (14:39 +0000)]
Have psql's \d+ print reloptions.  Extracted from Euler Taveira de Oliveira's
reloptions patch for autovacuum and revised by me.

Note that there doesn't seem to be a way to display an index's reloptions.

15 years agoWhen we added the ability to have zero-element ARRAY[] constructs by adding an
Tom Lane [Fri, 19 Dec 2008 05:04:35 +0000 (05:04 +0000)]
When we added the ability to have zero-element ARRAY[] constructs by adding an
explicit cast to show the intended array type, we forgot to teach ruleutils.c
to print out such constructs properly.  Found by noting bogus output from
recent changes in polymorphism regression test.

15 years agoAdd a couple of cross-references to the docs about enum types, per a
Tom Lane [Fri, 19 Dec 2008 01:34:19 +0000 (01:34 +0000)]
Add a couple of cross-references to the docs about enum types, per a
recent gripe that the info is hard to find.

15 years agoAdd "not" to wal journaling text.
Bruce Momjian [Thu, 18 Dec 2008 22:34:21 +0000 (22:34 +0000)]
Add "not" to wal journaling text.

15 years agoClarify documentation that journaling is not required for WAL or data files.
Bruce Momjian [Thu, 18 Dec 2008 22:21:16 +0000 (22:21 +0000)]
Clarify documentation that journaling is not required for WAL or data files.

15 years agoFix oversight in my recent patch to allow ExecMakeFunctionResult to handle
Tom Lane [Thu, 18 Dec 2008 19:38:22 +0000 (19:38 +0000)]
Fix oversight in my recent patch to allow ExecMakeFunctionResult to handle
materialize-mode set results.  Since it now uses the ReturnSetInfo node
to hold internal state, we need to be sure to set up the node even when
the immediately called function doesn't return set (but does have a set-valued
argument).  Per report from Anupama Aherrao.

15 years agoCode review for function default parameters patch. Fix numerous problems as
Tom Lane [Thu, 18 Dec 2008 18:20:35 +0000 (18:20 +0000)]
Code review for function default parameters patch.  Fix numerous problems as
per recent discussions.  In passing this also fixes a couple of bugs in
the previous variadic-parameters patch.

15 years agoUpdate documentation table describing how shared memory is used by
Bruce Momjian [Thu, 18 Dec 2008 17:03:09 +0000 (17:03 +0000)]
Update documentation table describing how shared memory is used by
various facilities.

15 years agoAdd note that TRUNCATE uses an access exclusive lock. This apparently
Peter Eisentraut [Thu, 18 Dec 2008 10:45:00 +0000 (10:45 +0000)]
Add note that TRUNCATE uses an access exclusive lock.  This apparently
surprised/confused some users.

15 years agoApplied patch by ITAGAKI Takahiro <itagaki.takahiro@oss.ntt.co.jp> to
Michael Meskes [Wed, 17 Dec 2008 16:52:07 +0000 (16:52 +0000)]
Applied patch by ITAGAKI Takahiro <itagaki.takahiro@oss.ntt.co.jp> to
fix segfault on non-glibc systems.

15 years agoDon't reset pg_class.reltuples and relpages in VACUUM, if any pages were
Heikki Linnakangas [Wed, 17 Dec 2008 09:15:03 +0000 (09:15 +0000)]
Don't reset pg_class.reltuples and relpages in VACUUM, if any pages were
skipped. We could update relpages anyway, but it seems better to only
update it together with reltuples, because we use the reltuples/relpages
ratio in the planner. Also don't update n_live_tuples in pgstat.

ANALYZE in VACUUM ANALYZE now needs to update pg_class, if the
VACUUM-phase didn't do so. Added some boolean-passing to let analyze_rel
know if it should update pg_class or not.

I also moved the relcache invalidation (to update rd_targblock) from
vac_update_relstats to where RelationTruncate is called, because
vac_update_relstats is not called for partial vacuums anymore. It's more
obvious to send the invalidation close to the truncation that requires it.

Per report by Ned T. Crigler.

15 years agoThe attached patch contains a couple of fixes in the existing probes and
Bruce Momjian [Wed, 17 Dec 2008 01:39:04 +0000 (01:39 +0000)]
The attached patch contains a couple of fixes in the existing probes and
includes a few new ones.

- Fixed compilation errors on OS X for probes that use typedefs
- Fixed a number of probes to pass ForkNumber per the relation forks
patch
- The new probes are those that were taken out from the previous
submitted patch and required simple fixes. Will submit the other probes
that may require more discussion in a separate patch.

Robert Lor

15 years agoAdd note to the shared memory sizing table about needing to use page count in
Alvaro Herrera [Tue, 16 Dec 2008 19:30:43 +0000 (19:30 +0000)]
Add note to the shared memory sizing table about needing to use page count in
shared_buffers and wal_buffers, not size in bytes.  Per discussion.

15 years agoMake heap_update() set newtup->t_tableOid correctly, for consistency with
Tom Lane [Tue, 16 Dec 2008 16:26:08 +0000 (16:26 +0000)]
Make heap_update() set newtup->t_tableOid correctly, for consistency with
the other major heapam.c functions.  The only known consequence of this
omission is that UPDATE RETURNING failed to return the correct value for
"tableoid", as per report from KaiGai Kohei.

Back-patch to 8.2.  Arguably it's wrong all the way back; but without
evidence of visible breakage before RETURNING was added, I'll desist from
patching the older branches.

15 years agoAttempt to fix MSVC breakage from Major Version patch.
Andrew Dunstan [Tue, 16 Dec 2008 15:42:21 +0000 (15:42 +0000)]
Attempt to fix MSVC breakage from Major Version patch.

15 years agoFix wording of section comparing triggers and rules; old wording as
Bruce Momjian [Tue, 16 Dec 2008 03:12:08 +0000 (03:12 +0000)]
Fix wording of section comparing triggers and rules;  old wording as
confusing.

15 years agoDepartment of second thoughts: further experimentation with CREATE OR REPLACE
Tom Lane [Tue, 16 Dec 2008 00:56:12 +0000 (00:56 +0000)]
Department of second thoughts: further experimentation with CREATE OR REPLACE
VIEW suggests that it'd be worth spelling the error messages out in a little
more detail.  This seems to help with localizing the problem.

15 years agoImprove comment about why sleep is used by pg_standby to handle 'copy'
Bruce Momjian [Mon, 15 Dec 2008 22:13:02 +0000 (22:13 +0000)]
Improve comment about why sleep is used by pg_standby to handle 'copy'
file size problem.

15 years agoAdd documentation that pg_standby sleeps on Win32 because of 'copy' behavior.
Bruce Momjian [Mon, 15 Dec 2008 22:08:35 +0000 (22:08 +0000)]
Add documentation that pg_standby sleeps on Win32 because of 'copy' behavior.

15 years agoAdd comment about GNUWin32's cp not having the file system problem.
Bruce Momjian [Mon, 15 Dec 2008 21:39:25 +0000 (21:39 +0000)]
Add comment about GNUWin32's cp not having the file system problem.

15 years agoCode review for CREATE OR REPLACE VIEW patch. Do things in a saner order to
Tom Lane [Mon, 15 Dec 2008 21:35:31 +0000 (21:35 +0000)]
Code review for CREATE OR REPLACE VIEW patch.  Do things in a saner order to
result in hopefully-less-confusing error messages when the new definition
isn't compatible with the old; minor other cleanup.

15 years agoAdd missing 'break' in Win32 switch statement, reported by Martin Zaun
Bruce Momjian [Mon, 15 Dec 2008 21:11:54 +0000 (21:11 +0000)]
Add missing 'break' in Win32 switch statement, reported by Martin Zaun

15 years agoFix cast-away-const problem as well as bogus calculation of required buffer size.
Tom Lane [Mon, 15 Dec 2008 19:07:48 +0000 (19:07 +0000)]
Fix cast-away-const problem as well as bogus calculation of required buffer size.

15 years agoArrange for the pg_foo_is_visible and has_foo_privilege families of functions
Tom Lane [Mon, 15 Dec 2008 18:09:41 +0000 (18:09 +0000)]
Arrange for the pg_foo_is_visible and has_foo_privilege families of functions
to return NULL, instead of erroring out, if the target object is specified by
OID and we can't find that OID in the catalogs.  Since these functions operate
internally on SnapshotNow rules, there is a race condition when using them
in user queries: the query's MVCC snapshot might "see" a catalog row that's
already committed dead, leading to a failure when the inquiry function is
applied.  Returning NULL should generally provide more convenient behavior.
This issue has been complained of before, and in particular we are now seeing
it in the regression tests due to another recent patch.

15 years agoDo not try to change a const variable.
Michael Meskes [Mon, 15 Dec 2008 15:34:07 +0000 (15:34 +0000)]
Do not try to change a const variable.

15 years agoReduce the scaling factor for attstattarget to number-of-lexemes from 100
Tom Lane [Mon, 15 Dec 2008 15:06:31 +0000 (15:06 +0000)]
Reduce the scaling factor for attstattarget to number-of-lexemes from 100
to 10, to compensate for the recent change in default statistics target.
The original number was pulled out of the air anyway :-(, but it was picked
in the context of the old default, so holding the default size of the
MCELEM array constant seems the best thing.  Per discussion.

15 years agoRemove our dependencies on MB_CUR_MAX in favor of believing that
Tom Lane [Mon, 15 Dec 2008 14:55:50 +0000 (14:55 +0000)]
Remove our dependencies on MB_CUR_MAX in favor of believing that
pg_database_encoding_max_length() predicts the maximum character length
returned by wchar2char().  Per Hiroshi Inoue, MB_CUR_MAX isn't usable on
Windows because we allow encoding = UTF8 when the locale says differently;
and getting rid of it seems a good idea on general principles because it
narrows our dependence on libc's locale API just a little bit more.

Also install a check for overflow of the buffer size computation.

15 years agoSupport specifying filename for SSL certificate, key, root certificate store
Magnus Hagander [Mon, 15 Dec 2008 10:28:22 +0000 (10:28 +0000)]
Support specifying filename for SSL certificate, key, root certificate store
and certificate revokation list by using connection parameters or environment
variables.

Original patch by Mark Woodward, heavily reworked by Alvaro Herrera and
Magnus Hagander.

15 years agoRestore enforce_generic_type_consistency's pre-8.3 behavior of allowing an
Tom Lane [Sun, 14 Dec 2008 19:45:52 +0000 (19:45 +0000)]
Restore enforce_generic_type_consistency's pre-8.3 behavior of allowing an
actual argument type of ANYARRAY to match an argument declared ANYARRAY,
so long as ANYELEMENT etc aren't used.  I had overlooked the fact that this
is a possible case while fixing bug #3852; but it is possible because
pg_statistic contains columns declared ANYARRAY.  Per gripe from Corey Horton.

15 years agoReplace both send and receive BIO routines in the SSL code with our own,
Magnus Hagander [Sun, 14 Dec 2008 19:39:37 +0000 (19:39 +0000)]
Replace both send and receive BIO routines in the SSL code with our own,
calling recv() and send(). This makes the calls go through the socket
emulation code on Win32, making them for example properly interruptible.

15 years agoIncrease the default value of default_statistics_target from 10 to 100,
Tom Lane [Sat, 13 Dec 2008 19:13:44 +0000 (19:13 +0000)]
Increase the default value of default_statistics_target from 10 to 100,
and its maximum value from 1000 to 10000.  ALTER TABLE SET STATISTICS
similarly now allows a value up to 10000.  Per discussion.

15 years agoRemove pg_plan_queries()'s now-useless needSnapshot parameter. It's useless
Tom Lane [Sat, 13 Dec 2008 02:29:22 +0000 (02:29 +0000)]
Remove pg_plan_queries()'s now-useless needSnapshot parameter.  It's useless
in 8.3, too, but I'm not back-patching this change since it would break any
extension modules that might be calling that function.

15 years agoFix failure to ensure that a snapshot is available to datatype input functions
Tom Lane [Sat, 13 Dec 2008 02:00:20 +0000 (02:00 +0000)]
Fix failure to ensure that a snapshot is available to datatype input functions
when they are invoked by the parser.  We had been setting up a snapshot at
plan time but really it needs to be done earlier, before parse analysis.
Per report from Dmitry Koterov.

Also fix two related problems discovered while poking at this one:
exec_bind_message called datatype input functions without establishing a
snapshot, and SET CONSTRAINTS IMMEDIATE could call trigger functions without
establishing a snapshot.

Backpatch to 8.2.  The underlying problem goes much further back, but it is
masked in 8.1 and before because we didn't attempt to invoke domain check
constraints within datatype input.  It would only be exposed if a C-language
datatype input function used the snapshot; which evidently none do, or we'd
have heard complaints sooner.  Since this code has changed a lot over time,
a back-patch is hardly risk-free, and so I'm disinclined to patch further
than absolutely necessary.

15 years agoReduce some rel.h inclusions, and add pg_list.h to pg_proc_fn.h.
Alvaro Herrera [Fri, 12 Dec 2008 22:56:00 +0000 (22:56 +0000)]
Reduce some rel.h inclusions, and add pg_list.h to pg_proc_fn.h.

15 years agoUsing clause has to accept signed numeric constants too.
Michael Meskes [Fri, 12 Dec 2008 12:14:43 +0000 (12:14 +0000)]
Using clause has to accept signed numeric constants too.

15 years agoTo reduce confusion over whether VACUUM FULL is needed for anti-wraparound
Tom Lane [Thu, 11 Dec 2008 18:16:18 +0000 (18:16 +0000)]
To reduce confusion over whether VACUUM FULL is needed for anti-wraparound
vacuuming (it's not), say "database-wide VACUUM" instead of "full-database
VACUUM" in the relevant hint messages.  Also, document the permissions needed
to do this.  Per today's discussion.

15 years agoThe macros NULL_DEV and DEVNULL were both used to work around
Peter Eisentraut [Thu, 11 Dec 2008 10:25:17 +0000 (10:25 +0000)]
The macros NULL_DEV and DEVNULL were both used to work around
platform-specific spellings of /dev/null.  But one should be enough, so
settle on DEVNULL.

15 years agoMove carefully obscured SunOS 4 specific #include out of c.h into port
Peter Eisentraut [Thu, 11 Dec 2008 09:17:07 +0000 (09:17 +0000)]
Move carefully obscured SunOS 4 specific #include out of c.h into port
header file.  SunOS 4 is probably broken anyway, but this item stuck out as
completely weird.

15 years agoAppend major version number and for libraries soname major version number
Peter Eisentraut [Thu, 11 Dec 2008 07:34:09 +0000 (07:34 +0000)]
Append major version number and for libraries soname major version number
to the gettext domain name, to simplify parallel installations.

Also, rename set_text_domain() to pg_bindtextdomain(), because that is what
it does.

15 years agoTweak the tree descent loop in fsm_search_avail to not look at the
Tom Lane [Wed, 10 Dec 2008 17:11:18 +0000 (17:11 +0000)]
Tweak the tree descent loop in fsm_search_avail to not look at the
right child if it doesn't need to.  This saves some miniscule number
of cycles, but the ulterior motive is to avoid an optimization bug
known to exist in SCO's C compiler (and perhaps others?)

15 years agoUpdate journaling performance docs based on comments by Michael Renner.
Bruce Momjian [Wed, 10 Dec 2008 11:05:49 +0000 (11:05 +0000)]
Update journaling performance docs based on comments by Michael Renner.

15 years agoAdd a specific example of parenthesizing when extracting a field of a
Tom Lane [Tue, 9 Dec 2008 20:52:03 +0000 (20:52 +0000)]
Add a specific example of parenthesizing when extracting a field of a
composite column.  Might help cut down on future questions...

15 years agoRevert SIGUSR1 multiplexing patch, per Tom's objection.
Heikki Linnakangas [Tue, 9 Dec 2008 15:59:39 +0000 (15:59 +0000)]
Revert SIGUSR1 multiplexing patch, per Tom's objection.

15 years agoProvide support for multiplexing SIGUSR1 signal. The upcoming synchronous
Heikki Linnakangas [Tue, 9 Dec 2008 14:28:20 +0000 (14:28 +0000)]
Provide support for multiplexing SIGUSR1 signal. The upcoming synchronous
replication patch needs a signal, but we've already used SIGUSR1 and
SIGUSR2 in normal backends. This patch allows reusing SIGUSR1 for that,
and for other purposes too if the need arises.

15 years agoClearify how processes are started by autovacuum, and what the effect
Magnus Hagander [Mon, 8 Dec 2008 20:30:58 +0000 (20:30 +0000)]
Clearify how processes are started by autovacuum, and what the effect
of autovacuum_max_workers parameter is.

Per discussion with Alvaro.

15 years agoTeach pgstat_vacuum_stat to not bother scanning pg_proc in the common case
Tom Lane [Mon, 8 Dec 2008 15:44:54 +0000 (15:44 +0000)]
Teach pgstat_vacuum_stat to not bother scanning pg_proc in the common case
where no function stats entries exist.  Partial response to Pavel's
observation that small VACUUM operations are noticeably slower in CVS HEAD
than 8.3.

15 years agoAdd note that autovacuum can use up several times maintenance_work_mem,
Magnus Hagander [Mon, 8 Dec 2008 15:11:39 +0000 (15:11 +0000)]
Add note that autovacuum can use up several times maintenance_work_mem,
with warning against setting it too high.

15 years agoDon't try to optimize EXISTS subqueries with empty FROM-lists: we need to
Tom Lane [Mon, 8 Dec 2008 00:16:09 +0000 (00:16 +0000)]
Don't try to optimize EXISTS subqueries with empty FROM-lists: we need to
form a join and that case doesn't have anything to join to.  (We could
probably make it work if we didn't pull up the subquery, but it seems to
me that the case isn't worth extra code.)  Per report from Greg Stark.

15 years agoDesultorily enclose programlisting tags in CDATA, to get rid of some obnoxious
Alvaro Herrera [Sun, 7 Dec 2008 23:46:39 +0000 (23:46 +0000)]
Desultorily enclose programlisting tags in CDATA, to get rid of some obnoxious
SGML-escaping.

15 years agoSet up ar, dlltool, dllwrap, and windres for cross-compiling if necessary.
Peter Eisentraut [Sun, 7 Dec 2008 08:36:22 +0000 (08:36 +0000)]
Set up ar, dlltool, dllwrap, and windres for cross-compiling if necessary.
Plus some makefile cleanup.

part of a patch from Richard Evans

15 years agoAllow CREATE OR REPLACE VIEW to add columns to the _end_ of the view.
Bruce Momjian [Sat, 6 Dec 2008 23:22:46 +0000 (23:22 +0000)]
Allow CREATE OR REPLACE VIEW to add columns to the _end_ of the view.

Robert Haas

15 years agoDocument that non-data journaling is a recommended mount option.
Bruce Momjian [Sat, 6 Dec 2008 21:34:27 +0000 (21:34 +0000)]
Document that non-data journaling is a recommended mount option.

15 years agoMAPSIZE macro needs to use MAXALIGN(SizeOfPageHeaderData) instead of
Heikki Linnakangas [Sat, 6 Dec 2008 17:31:37 +0000 (17:31 +0000)]
MAPSIZE macro needs to use MAXALIGN(SizeOfPageHeaderData) instead of
SizeOfPageHeaderData, like PageGetContents does. Per report by Pavan
Deolasee.

15 years agoBetter descriptions in pg_get_keywords(), consistent with the documentation
Peter Eisentraut [Fri, 5 Dec 2008 13:41:20 +0000 (13:41 +0000)]
Better descriptions in pg_get_keywords(), consistent with the documentation
appendix on key words.  catdesc was originally intended as computer-readable,
but since we ended up adding catcode, we can have more elaborate descriptions.

15 years agoDefault values for function arguments
Peter Eisentraut [Thu, 4 Dec 2008 17:51:28 +0000 (17:51 +0000)]
Default values for function arguments

Pavel Stehule, with some tweaks by Peter Eisentraut

15 years agoFix a couple of snapshot management bugs in the new ResourceOwner world:
Alvaro Herrera [Thu, 4 Dec 2008 14:51:02 +0000 (14:51 +0000)]
Fix a couple of snapshot management bugs in the new ResourceOwner world:
non-writable large objects need to have their snapshots registered on the
transaction resowner, not the current portal's, because it must persist until
the large object is closed (which the portal does not).  Also, ensure that the
serializable snapshot is recorded by the transaction resource owner too, even
when a subtransaction has changed the current resource owner before
serializable is taken.

Per bug reports from Pavan Deolasee.

15 years agoComment said we don't free the lockarray, and why. The proper fix is to
Magnus Hagander [Thu, 4 Dec 2008 14:07:42 +0000 (14:07 +0000)]
Comment said we don't free the lockarray, and why. The proper fix is to
make the code do what the comment says...

15 years agoUtilize the visibility map in autovacuum, too. There was an oversight in
Heikki Linnakangas [Thu, 4 Dec 2008 11:42:24 +0000 (11:42 +0000)]
Utilize the visibility map in autovacuum, too. There was an oversight in
the visibility map patch that because autovacuum always sets
VacuumStmt->freeze_min_age, visibility map was never used for autovacuum,
only for manually launched vacuums. This patch introduces a new scan_all
field to VacuumStmt, indicating explicitly whether the visibility map
should be used, or the whole relation should be scanned, to advance
relfrozenxid. Anti-wraparound vacuums still need to scan all pages.

15 years agoInitialize GISTScanOpaque->qual_ok even if there is no conditions.
Teodor Sigaev [Thu, 4 Dec 2008 11:08:46 +0000 (11:08 +0000)]
Initialize GISTScanOpaque->qual_ok even if there is no conditions.

15 years agoCall genhtml with --prefix option so local build paths don't appear in the
Peter Eisentraut [Thu, 4 Dec 2008 07:02:56 +0000 (07:02 +0000)]
Call genhtml with --prefix option so local build paths don't appear in the
coverage output.

15 years agoFix typo in recent SSL unload patch.
Bruce Momjian [Thu, 4 Dec 2008 02:52:31 +0000 (02:52 +0000)]
Fix typo in recent SSL unload patch.

Kris Jurka

15 years agoProperly unregister OpenSSL callbacks when libpq is done with
Magnus Hagander [Wed, 3 Dec 2008 20:04:26 +0000 (20:04 +0000)]
Properly unregister OpenSSL callbacks when libpq is done with
it's connection. This is required for applications that unload
the libpq library (such as PHP) in which case we'd otherwise
have pointers to these functions when they no longer exist.

This needs a bit more testing before we can consider a backpatch,
so not doing that yet.

In passing, remove unused functions in backend/libpq.

Bruce Momjian and Magnus Hagander, per report and analysis
by Russell Smith.

15 years agoForgot to bump catalog version in the visibility map patch.
Heikki Linnakangas [Wed, 3 Dec 2008 13:28:53 +0000 (13:28 +0000)]
Forgot to bump catalog version in the visibility map patch.

15 years agoIntroduce visibility map. The visibility map is a bitmap with one bit per
Heikki Linnakangas [Wed, 3 Dec 2008 13:05:22 +0000 (13:05 +0000)]
Introduce visibility map. The visibility map is a bitmap with one bit per
heap page, where a set bit indicates that all tuples on the page are
visible to all transactions, and the page therefore doesn't need
vacuuming. It is stored in a new relation fork.

Lazy vacuum uses the visibility map to skip pages that don't need
vacuuming. Vacuum is also responsible for setting the bits in the map.
In the future, this can hopefully be used to implement index-only-scans,
but we can't currently guarantee that the visibility map is always 100%
up-to-date.

In addition to the visibility map, there's a new PD_ALL_VISIBLE flag on
each heap page, also indicating that all tuples on the page are visible to
all transactions. It's important that this flag is kept up-to-date. It
is also used to skip visibility tests in sequential scans, which gives a
small performance gain on seqscans.

15 years agoUpdate key words table to 8.4 and SQL:2008.
Peter Eisentraut [Wed, 3 Dec 2008 12:39:57 +0000 (12:39 +0000)]
Update key words table to 8.4 and SQL:2008.

15 years agoSmall comment fixes.
Heikki Linnakangas [Wed, 3 Dec 2008 12:22:53 +0000 (12:22 +0000)]
Small comment fixes.

15 years agoIf pg_stop_backup() is called just after switching to a new xlog file,
Heikki Linnakangas [Wed, 3 Dec 2008 08:20:11 +0000 (08:20 +0000)]
If pg_stop_backup() is called just after switching to a new xlog file,
wait for the previous instead of the new file to be archived.

Based on patch by Simon Riggs.

15 years agoDocumentation for wildcard certificates patch
Magnus Hagander [Tue, 2 Dec 2008 12:42:11 +0000 (12:42 +0000)]
Documentation for wildcard certificates patch

15 years agoUse PG_GETARG_TEXT_PP instead of PG_GETARG_TEXT_P in the new
Heikki Linnakangas [Tue, 2 Dec 2008 11:30:53 +0000 (11:30 +0000)]
Use PG_GETARG_TEXT_PP instead of PG_GETARG_TEXT_P in the new
gin_cmp_tslexeme and gin_cmp_prefix functions. Should shave off a few
cycles from GIN operations.

15 years agoChange wildcard cerfificate mapping to be much simler - we now only match
Magnus Hagander [Tue, 2 Dec 2008 10:39:31 +0000 (10:39 +0000)]
Change wildcard cerfificate mapping to be much simler - we now only match
the * character at the beginning of a pattern, and it does not match
subdomains.

Since this means we no longer need fnmatch, remove the imported implementation
from port, along with the autoconf check for it.

15 years agoMinor code embellishments.
Alvaro Herrera [Tue, 2 Dec 2008 02:00:32 +0000 (02:00 +0000)]
Minor code embellishments.

15 years agoFix an oversight in the code that makes transitive-equality deductions from
Tom Lane [Mon, 1 Dec 2008 21:06:13 +0000 (21:06 +0000)]
Fix an oversight in the code that makes transitive-equality deductions from
outer join clauses.  Given, say,
... from a left join b on a.a1 = b.b1 where a.a1 = 42;
we'll deduce a clause b.b1 = 42 and then mark the original join clause
redundant (we can't remove it completely for reasons I don't feel like
squeezing into this log entry).  However the original implementation of
that wasn't bulletproof, because clause_selectivity() wouldn't honor
this_selec if given nonzero varRelid --- which in practice meant that
it worked as desired *except* when considering index scan quals.  Which
resulted in bogus underestimation of the size of the indexscan result for
an inner indexscan in an outer join, and consequently a possibly bad
choice of indexscan vs. bitmap scan.  Fix by introducing an explicit test
into clause_selectivity().  Also, to make sure we don't trigger that test
in corner cases, change the convention to be that this_selec > 1, not
this_selec = 1, means it's been marked redundant.  Per trouble report from
Scara Maccai.

Back-patch to 8.2, where the problem was introduced.

15 years agoModify the new to_timestamp implementation so that end-of-format-string
Heikki Linnakangas [Mon, 1 Dec 2008 17:11:18 +0000 (17:11 +0000)]
Modify the new to_timestamp implementation so that end-of-format-string
is treated like a non-digit separator. This fixes the inconsistency in
examples like:

to_timestamp('2008-01-2', 'YYYY-MM-DD') -- didn't work

and

to_timestamp('2008-1-02', 'YYYY-MM-DD') -- did work

15 years agoEnsure that the contents of a holdable cursor don't depend on out-of-line
Tom Lane [Mon, 1 Dec 2008 17:06:21 +0000 (17:06 +0000)]
Ensure that the contents of a holdable cursor don't depend on out-of-line
toasted values, since those could get dropped once the cursor's transaction
is over.  Per bug #4553 from Andrew Gierth.

Back-patch as far as 8.1.  The bug actually exists back to 7.4 when holdable
cursors were introduced, but this patch won't work before 8.1 without
significant adjustments.  Given the lack of field complaints, it doesn't seem
worth the work (and risk of introducing new bugs) to try to make a patch for
the older branches.

15 years agoRemove the last traces of --temp-port.
Tom Lane [Mon, 1 Dec 2008 13:39:45 +0000 (13:39 +0000)]
Remove the last traces of --temp-port.

15 years agoRemoved port testing.
Michael Meskes [Mon, 1 Dec 2008 11:37:37 +0000 (11:37 +0000)]
Removed port testing.

15 years agoAdd braces to clarify syntax synopsis
Peter Eisentraut [Mon, 1 Dec 2008 09:38:08 +0000 (09:38 +0000)]
Add braces to clarify syntax synopsis

15 years agoSmall correction
Peter Eisentraut [Mon, 1 Dec 2008 09:20:37 +0000 (09:20 +0000)]
Small correction

15 years agotypo
Peter Eisentraut [Mon, 1 Dec 2008 08:24:19 +0000 (08:24 +0000)]
typo

15 years agoRefactor crosstab() to build and return a tuplestore instead of using
Tom Lane [Mon, 1 Dec 2008 01:30:18 +0000 (01:30 +0000)]
Refactor crosstab() to build and return a tuplestore instead of using
value-per-call mode.  This should be more efficient in normal usage,
but the real problem with the prior coding was that it returned with
a SPI call still active.  That could cause problems if execution was
interleaved with anything else that might use SPI.

15 years agoFix dblink and tablefunc to not return with the wrong CurrentMemoryContext.
Tom Lane [Sun, 30 Nov 2008 23:23:52 +0000 (23:23 +0000)]
Fix dblink and tablefunc to not return with the wrong CurrentMemoryContext.
Per buildfarm results.

15 years agoClean up the API for DestReceiver objects by eliminating the assumption
Tom Lane [Sun, 30 Nov 2008 20:51:25 +0000 (20:51 +0000)]
Clean up the API for DestReceiver objects by eliminating the assumption
that a Portal is a useful and sufficient additional argument for
CreateDestReceiver --- it just isn't, in most cases.  Instead formalize
the approach of passing any needed parameters to the receiver separately.

One unexpected benefit of this change is that we can declare typedef Portal
in a less surprising location.

This patch is just code rearrangement and doesn't change any functionality.
I'll tackle the HOLD-cursor-vs-toast problem in a follow-on patch.

15 years agoAdd a "LIKE = typename" clause to CREATE TYPE for base types. This allows
Tom Lane [Sun, 30 Nov 2008 19:01:29 +0000 (19:01 +0000)]
Add a "LIKE = typename" clause to CREATE TYPE for base types.  This allows
the basic representational details (typlen, typalign, typbyval, typstorage)
to be copied from an existing type rather than listed explicitly in the
CREATE TYPE command.  The immediate reason for this is to provide a simple
solution for add-on modules that want to define types represented as int8,
float4, or float8: as of 8.4 the appropriate PASSEDBYVALUE setting is
platform-specific and so it's hard for a SQL script to know what to do.

This patch fixes the contrib/isn breakage reported by Rushabh Lathia.

15 years agoRemove inappropriate memory context switch in shutdown_MultiFuncCall().
Tom Lane [Sun, 30 Nov 2008 18:49:36 +0000 (18:49 +0000)]
Remove inappropriate memory context switch in shutdown_MultiFuncCall().
This was a thinko introduced in a patch from last February; it results
in memory leakage if an SRF is shut down before the actual end of query,
because subsequent code will be running in a longer-lived context than
it's expecting to be.

15 years agoFix recently-added array_agg tests to ensure they produce stable results
Tom Lane [Sat, 29 Nov 2008 00:39:46 +0000 (00:39 +0000)]
Fix recently-added array_agg tests to ensure they produce stable results
regardless of plan changes.  Per intermittent buildfarm failures on
"pigeon" and others.

15 years agoMake sure we give an appropriate user-facing error when attempting
Tom Lane [Sat, 29 Nov 2008 00:13:21 +0000 (00:13 +0000)]
Make sure we give an appropriate user-facing error when attempting
to drop a table that is referenced by an open cursor.  Fix unstable
ecpg regression test result that was produced by this oversight.

15 years agoPartial fix for fallout from temp-port changes. ecpg still needs more work,
Tom Lane [Fri, 28 Nov 2008 23:47:51 +0000 (23:47 +0000)]
Partial fix for fallout from temp-port changes.  ecpg still needs more work,
but I think this is enough to turn the buildfarm green again.

15 years agoFix an oversight in uninstall_isn.sql: must drop operator families explicitly.
Tom Lane [Fri, 28 Nov 2008 21:19:13 +0000 (21:19 +0000)]
Fix an oversight in uninstall_isn.sql: must drop operator families explicitly.

15 years agoMy recent fix for semijoin planning didn't actually work for a semijoin with a
Tom Lane [Fri, 28 Nov 2008 19:29:07 +0000 (19:29 +0000)]
My recent fix for semijoin planning didn't actually work for a semijoin with a
RHS that can't be unique-ified --- join_is_legal has to check that before
deciding to build a join, else we'll have an unimplementable joinrel.
Per report from Greg Stark.

15 years agoCosmetic cleanups in contrib/isn (doesn't fix the passbyval problem)
Tom Lane [Fri, 28 Nov 2008 18:04:00 +0000 (18:04 +0000)]
Cosmetic cleanups in contrib/isn (doesn't fix the passbyval problem)