]> granicus.if.org Git - postgresql/log
postgresql
15 years agoCLUSTER VERBOSE and corresponding clusterdb --verbose option
Peter Eisentraut [Mon, 24 Nov 2008 08:46:04 +0000 (08:46 +0000)]
CLUSTER VERBOSE and corresponding clusterdb --verbose option

Jim Cox and Peter Eisentraut

15 years agoTeach RequestCheckpoint() to wait and retry a few times if it can't signal
Tom Lane [Sun, 23 Nov 2008 01:40:19 +0000 (01:40 +0000)]
Teach RequestCheckpoint() to wait and retry a few times if it can't signal
the bgwriter immediately.  This covers the case where the bgwriter is still
starting up, as seen in a recent buildfarm failure.  In future it might also
assist with clean recovery after a bgwriter termination and restart ---
right now the postmaster treats early bgwriter exit as a system crash,
but that might not always be so.

15 years agoSwitch the planner over to treating qualifications of a JOIN_SEMI join as
Tom Lane [Sat, 22 Nov 2008 22:47:06 +0000 (22:47 +0000)]
Switch the planner over to treating qualifications of a JOIN_SEMI join as
though it is an inner rather than outer join type.  This essentially means
that we don't bother to separate "pushed down" qual conditions from actual
join quals at a semijoin plan node; which is okay because the restrictions of
SQL syntax make it impossible to have a pushed-down qual that references the
inner side of a semijoin.  This allows noticeably better optimization of
IN/EXISTS cases than we had before, since the equivalence-class machinery can
now use those quals.  Also fix a couple of other mistakes that had essentially
disabled the ability to unique-ify the inner relation and then join it to just
a subset of the left-hand relations.  An example case using the regression
database is

select * from tenk1 a, tenk1 b
where (a.unique1,b.unique2) in (select unique1,unique2 from tenk1 c);

which is planned reasonably well by 8.3 and earlier but had been forcing a
cartesian join of a/b in CVS HEAD.

15 years agoMinor copy-editing.
Tom Lane [Fri, 21 Nov 2008 20:21:59 +0000 (20:21 +0000)]
Minor copy-editing.

15 years agoFix a few more format argument warnings.
Magnus Hagander [Fri, 21 Nov 2008 20:14:27 +0000 (20:14 +0000)]
Fix a few more format argument warnings.

15 years agoDocument which GUC settings are enums and not strings, along with a short
Magnus Hagander [Fri, 21 Nov 2008 19:42:12 +0000 (19:42 +0000)]
Document which GUC settings are enums and not strings, along with a short
paragraph about what that means.

15 years agoDocs update for enumvals patch.
Magnus Hagander [Fri, 21 Nov 2008 19:31:58 +0000 (19:31 +0000)]
Docs update for enumvals patch.

15 years agoMake the enumvals column of pg_settings be text[] instead of just
Magnus Hagander [Fri, 21 Nov 2008 18:49:24 +0000 (18:49 +0000)]
Make the enumvals column of pg_settings be text[] instead of just
a comma separated string.

15 years agoInclude the platform "FAQs" into the installation instructions.
Peter Eisentraut [Fri, 21 Nov 2008 16:46:19 +0000 (16:46 +0000)]
Include the platform "FAQs" into the installation instructions.
I weeded out some really old information along the way.
FAQ_AIX needs separate consideration and will be dealt with later.

15 years agoUse relation_expr for TABLE command, requested by Tom.
Peter Eisentraut [Fri, 21 Nov 2008 11:47:55 +0000 (11:47 +0000)]
Use relation_expr for TABLE command, requested by Tom.

15 years agoNote that the example aggregate array_accum is comparable to the now
Tom Lane [Thu, 20 Nov 2008 21:10:44 +0000 (21:10 +0000)]
Note that the example aggregate array_accum is comparable to the now
built-in array_agg.  Per suggestion from Robert Haas.

15 years agoIssue a proper error message when MD5 is attempted when
Bruce Momjian [Thu, 20 Nov 2008 20:45:30 +0000 (20:45 +0000)]
Issue a proper error message when MD5 is attempted when
db_user_namespace is enabled.

Also document this limitation.

15 years agoFix breakage of bitmap scan plan creation for special index operators such
Tom Lane [Thu, 20 Nov 2008 19:52:54 +0000 (19:52 +0000)]
Fix breakage of bitmap scan plan creation for special index operators such
as LIKE.  I oversimplified this code when removing support for plan-time
determination of index operator lossiness back in April --- I had thought
create_bitmap_subplan could stop returning two separate lists of qual
conditions, but it still must so that we can treat special operators
correctly in create_bitmap_scan_plan.  Per report from Rushabh Lathia.

15 years agoDon't pass strings directly to errdetail() and errhint() - use
Magnus Hagander [Thu, 20 Nov 2008 15:36:22 +0000 (15:36 +0000)]
Don't pass strings directly to errdetail() and errhint() - use
%s to unescape them. Fixes a potential security issue (in as yet
unreleased code)

15 years agoSilence compiler warning about ignored return value. Our comment already
Magnus Hagander [Thu, 20 Nov 2008 15:03:39 +0000 (15:03 +0000)]
Silence compiler warning about ignored return value. Our comment already
clearly stated that we are aware that we're ignoring it.

15 years agoTABLE command
Peter Eisentraut [Thu, 20 Nov 2008 14:04:46 +0000 (14:04 +0000)]
TABLE command

15 years agoAdd support for using SSL client certificates to authenticate to the
Magnus Hagander [Thu, 20 Nov 2008 11:48:26 +0000 (11:48 +0000)]
Add support for using SSL client certificates to authenticate to the
database (only for SSL connections, obviously).

15 years agoControl client certificate requesting with the pg_hba option "clientcert"
Magnus Hagander [Thu, 20 Nov 2008 09:29:36 +0000 (09:29 +0000)]
Control client certificate requesting with the pg_hba option "clientcert"
instead of just relying on the root certificate file to be present.

15 years agoAdd WITH as a refname to the SELECT reference page.
Peter Eisentraut [Wed, 19 Nov 2008 12:21:57 +0000 (12:21 +0000)]
Add WITH as a refname to the SELECT reference page.

Now "\help WITH" works and there will be a separate WITH(7) man page.

15 years agoRethink the way FSM truncation works. Instead of WAL-logging FSM
Heikki Linnakangas [Wed, 19 Nov 2008 10:34:52 +0000 (10:34 +0000)]
Rethink the way FSM truncation works. Instead of WAL-logging FSM
truncations in FSM code, call FreeSpaceMapTruncateRel from smgr_redo. To
make that cleaner from modularity point of view, move the WAL-logging one
level up to RelationTruncate, and move RelationTruncate and all the
related WAL-logging to new src/backend/catalog/storage.c file. Introduce
new RelationCreateStorage and RelationDropStorage functions that are used
instead of calling smgrcreate/smgrscheduleunlink directly. Move the
pending rel deletion stuff from smgrcreate/smgrscheduleunlink to the new
functions. This leaves smgr.c as a thin wrapper around md.c; all the
transactional stuff is now in storage.c.

This will make it easier to add new forks with similar truncation logic,
like the visibility map.

15 years agoFix compiler warning "res may be used uninitialized in this function".
Teodor Sigaev [Wed, 19 Nov 2008 10:23:21 +0000 (10:23 +0000)]
Fix compiler warning "res may be used uninitialized in this function".
Actually, it can't but some compilers are not smart enough.
Per Peter Eisentraut gripe.

15 years agoChange this script to Perl 5 style. Add support for multiple refnames.
Peter Eisentraut [Wed, 19 Nov 2008 09:51:55 +0000 (09:51 +0000)]
Change this script to Perl 5 style.  Add support for multiple refnames.
Sort the output by command name.  This previously only worked by source
file name, which doesn't always match the command name exactly.  And it
certainly won't work for multiple refnames.

15 years agoAdd "Most Common Implementation" row to high availablity table so the
Bruce Momjian [Wed, 19 Nov 2008 04:46:37 +0000 (04:46 +0000)]
Add "Most Common Implementation" row to high availablity table so the
table is less abstract.  Most common implementations were already
mentioned in the text.

15 years agoAdd auto-explain contrib module for automatic logging of the plans of
Tom Lane [Wed, 19 Nov 2008 02:59:28 +0000 (02:59 +0000)]
Add auto-explain contrib module for automatic logging of the plans of
slow-running queries.

Takahiro Itagaki

15 years agoFix define_custom_variable so that SUSET custom variables behave
Tom Lane [Wed, 19 Nov 2008 02:07:07 +0000 (02:07 +0000)]
Fix define_custom_variable so that SUSET custom variables behave
somewhat reasonably.  It's not perfect, but it beats the kluge
proposed in the auto-explain patch ...

15 years agoSome infrastructure changes for the upcoming auto-explain contrib module:
Tom Lane [Wed, 19 Nov 2008 01:10:24 +0000 (01:10 +0000)]
Some infrastructure changes for the upcoming auto-explain contrib module:

* Refactor explain.c slightly to export a convenient-to-use subroutine
for printing EXPLAIN results.

* Provide hooks for plugins to get control at ExecutorStart and ExecutorEnd
as well as ExecutorRun.

* Add some minimal support for tracking the total runtime of ExecutorRun.
This code won't actually do anything unless a plugin prods it to.

* Change the API of the DefineCustomXXXVariable functions to allow nonzero
"flags" to be specified for a custom GUC variable.  While at it, also make
the "bootstrap" default value for custom GUCs be explicitly specified as a
parameter to these functions.  This is to eliminate confusion over where the
default comes from, as has been expressed in the past by some users of the
custom-variable facility.

* Refactor GUC code a bit to ensure that a custom variable gets initialized to
something valid (like its default value) even if the placeholder value was
invalid.

15 years agoAdd required include to build with cygwin.
Magnus Hagander [Tue, 18 Nov 2008 21:17:26 +0000 (21:17 +0000)]
Add required include to build with cygwin.

Andrew Chernow

15 years agoIdent authentication over Unix-domain sockets on Solaris, using
Peter Eisentraut [Tue, 18 Nov 2008 13:10:20 +0000 (13:10 +0000)]
Ident authentication over Unix-domain sockets on Solaris, using
getpeerucred() function.

Author: Garick Hamlin <ghamlin@isc.upenn.edu>

15 years agoDocument that Bucardo is an example of mulit-master replication with
Bruce Momjian [Mon, 17 Nov 2008 18:55:14 +0000 (18:55 +0000)]
Document that Bucardo is an example of mulit-master replication with
conflict resolution.

15 years agoReplace plain-memory ordered array by binary tree in ts_stat() function.
Teodor Sigaev [Mon, 17 Nov 2008 12:17:09 +0000 (12:17 +0000)]
Replace plain-memory ordered array by binary tree in ts_stat() function.
Performance is increased from 50% up to 10^3 times depending on data.

15 years agoModify UPDATE/DELETE WHERE CURRENT OF to use the FOR UPDATE infrastructure to
Tom Lane [Sun, 16 Nov 2008 17:34:28 +0000 (17:34 +0000)]
Modify UPDATE/DELETE WHERE CURRENT OF to use the FOR UPDATE infrastructure to
locate the target row, if the cursor was declared with FOR UPDATE or FOR
SHARE.  This approach is more flexible and reliable than digging through the
plan tree; for instance it can cope with join cursors.  But we still provide
the old code for use with non-FOR-UPDATE cursors.  Per gripe from Robert Haas.

15 years agoAdd missing dependencies to preproc.y build rule
Tom Lane [Sat, 15 Nov 2008 22:20:55 +0000 (22:20 +0000)]
Add missing dependencies to preproc.y build rule

15 years agoAdd missing semicolon, per grip from Alex Hunsaker.
Andrew Dunstan [Sat, 15 Nov 2008 22:18:05 +0000 (22:18 +0000)]
Add missing semicolon, per grip from Alex Hunsaker.

15 years agoFix crash of xmlconcat(NULL)
Peter Eisentraut [Sat, 15 Nov 2008 20:52:35 +0000 (20:52 +0000)]
Fix crash of xmlconcat(NULL)

also backpatched to 8.3

15 years agoMake SELECT FOR UPDATE/SHARE work on inheritance trees, by having the plan
Tom Lane [Sat, 15 Nov 2008 19:43:47 +0000 (19:43 +0000)]
Make SELECT FOR UPDATE/SHARE work on inheritance trees, by having the plan
return the tableoid as well as the ctid for any FOR UPDATE targets that
have child tables.  All child tables are listed in the ExecRowMark list,
but the executor just skips the ones that didn't produce the current row.

Curiously, this longstanding restriction doesn't seem to have been documented
anywhere; so no doc changes.

15 years agoDocument a gotcha that happens on Windows when using libpq's new event
Tom Lane [Fri, 14 Nov 2008 22:58:51 +0000 (22:58 +0000)]
Document a gotcha that happens on Windows when using libpq's new event
procedure support: it's possible to get confused because exported procedures
have two different addresses.  Per Andrew Chernow.

15 years agoExclude contrib/intagg from the list of MSVC project files to be generated,
Magnus Hagander [Fri, 14 Nov 2008 22:12:37 +0000 (22:12 +0000)]
Exclude contrib/intagg from the list of MSVC project files to be generated,
since it's now just a SQL module and no C code.

15 years agoOne more hack to see if we can get the cygwin machines building again.
Tom Lane [Fri, 14 Nov 2008 21:45:07 +0000 (21:45 +0000)]
One more hack to see if we can get the cygwin machines building again.
This continues the saga of trying to get PGDLLIMPORT to work in pg_crc.h
in both backend and frontend environments.

15 years agoSecond try at fixing DLLIMPORT problem for pg_crc.h on Cygwin.
Tom Lane [Fri, 14 Nov 2008 20:21:07 +0000 (20:21 +0000)]
Second try at fixing DLLIMPORT problem for pg_crc.h on Cygwin.

15 years agoReduce contrib/intagg to a thin wrapper around the new core functions
Tom Lane [Fri, 14 Nov 2008 19:58:45 +0000 (19:58 +0000)]
Reduce contrib/intagg to a thin wrapper around the new core functions
array_agg() and unnest().  We could drop it entirely in the future,
but let's keep it for a release or two as a compatibility assist.

15 years agoIn CREATE AGGREGATE, allow the transition datatype to be "internal", but only
Tom Lane [Fri, 14 Nov 2008 19:47:50 +0000 (19:47 +0000)]
In CREATE AGGREGATE, allow the transition datatype to be "internal", but only
if the user is superuser.  This makes available to extension modules the same
sort of trick being practiced by array_agg().  The reason for the superuser
restriction is that you could crash the system by connecting up an
incompatible pair of internal-using functions as an aggregate.  It shouldn't
interfere with any legitimate use, since you'd have to be superuser to create
the internal-using transition and final functions anyway.

15 years agoecpg's preproc.y is now generated as needed, so remove from CVS.
Tom Lane [Fri, 14 Nov 2008 17:43:14 +0000 (17:43 +0000)]
ecpg's preproc.y is now generated as needed, so remove from CVS.

15 years agoMake CREATE CONVERSION verify that a putative encoding conversion function
Tom Lane [Fri, 14 Nov 2008 17:40:56 +0000 (17:40 +0000)]
Make CREATE CONVERSION verify that a putative encoding conversion function
returns VOID.  This is the last of the easy fixes I recommended in
11870.1218838360@sss.pgh.pa.us --- the others got done awhile ago but
I forgot about this one.

15 years agoImprove comment about when to clean generated files.
Tom Lane [Fri, 14 Nov 2008 17:18:20 +0000 (17:18 +0000)]
Improve comment about when to clean generated files.

15 years agoEnable script to generate preproc.y in build process.
Michael Meskes [Fri, 14 Nov 2008 17:11:40 +0000 (17:11 +0000)]
Enable script to generate preproc.y in build process.

15 years agoFixed test for output_filename == stdout.
Michael Meskes [Fri, 14 Nov 2008 16:25:34 +0000 (16:25 +0000)]
Fixed test for output_filename == stdout.

15 years agoFix oversight in previous error-reporting patch; mustn't pfree path string
Heikki Linnakangas [Fri, 14 Nov 2008 11:09:50 +0000 (11:09 +0000)]
Fix oversight in previous error-reporting patch; mustn't pfree path string
before passing it to elog.

15 years agoSince doc/src/sgml already builds the HTML docs twice to resolve index
Peter Eisentraut [Fri, 14 Nov 2008 10:43:59 +0000 (10:43 +0000)]
Since doc/src/sgml already builds the HTML docs twice to resolve index
entries, we don't have to do two builds here as well.

15 years agoSet SQL man pages to be section 7 by default, and only transform them to
Peter Eisentraut [Fri, 14 Nov 2008 10:22:48 +0000 (10:22 +0000)]
Set SQL man pages to be section 7 by default, and only transform them to
another section if required by the platform (instead of the old way of
building them in section "l" and always transforming them to the
platform-specific section).

This speeds up the installation on common platforms, and it avoids some
funny business with the man page tools and build process.

15 years agoAdded files containing changes between gram.y and preproc.y.
Michael Meskes [Fri, 14 Nov 2008 10:03:33 +0000 (10:03 +0000)]
Added files containing changes between gram.y and preproc.y.

15 years agoAdding script that generates preproc.y from gram.y to CVS.
Michael Meskes [Fri, 14 Nov 2008 10:01:04 +0000 (10:01 +0000)]
Adding script that generates preproc.y from gram.y to CVS.

15 years agoActually, instead of whining about how type internal might not safely store
Tom Lane [Fri, 14 Nov 2008 02:09:52 +0000 (02:09 +0000)]
Actually, instead of whining about how type internal might not safely store
a pointer, why don't we just fix that.  Every known use of "internal" really
means a pointer anyway.

15 years agoReplace the usage of heap_addheader to create pg_attribute tuples with regular
Alvaro Herrera [Fri, 14 Nov 2008 01:57:42 +0000 (01:57 +0000)]
Replace the usage of heap_addheader to create pg_attribute tuples with regular
heap_form_tuple.  Since this removes the last remaining caller of
heap_addheader, remove it.

Extracted from the column privileges patch from Stephen Frost, with further
code cleanups by me.

15 years agoImplement the basic form of UNNEST, ie unnest(anyarray) returns setof
Tom Lane [Fri, 14 Nov 2008 00:51:47 +0000 (00:51 +0000)]
Implement the basic form of UNNEST, ie unnest(anyarray) returns setof
anyelement.  This lacks the WITH ORDINALITY option, as well as the multiple
input arrays option added in the most recent SQL specs.  But it's still a
pretty useful subset of the spec's functionality, and it is enough to
allow obsoleting contrib/intagg.

15 years agoMinor code clarity improvements in array_agg functions, and add a comment
Tom Lane [Fri, 14 Nov 2008 00:12:08 +0000 (00:12 +0000)]
Minor code clarity improvements in array_agg functions, and add a comment
about how this is playing fast and loose with the type system.

15 years agoMarginal editorial improvements for array_agg patch documentation.
Tom Lane [Thu, 13 Nov 2008 23:01:09 +0000 (23:01 +0000)]
Marginal editorial improvements for array_agg patch documentation.

15 years agoSuppress leap-second-aware timezones in the output of pg_tzenumerate_next,
Tom Lane [Thu, 13 Nov 2008 20:49:38 +0000 (20:49 +0000)]
Suppress leap-second-aware timezones in the output of pg_tzenumerate_next,
and thereby in the pg_timezone_names view.  Although we allow such zones
to be used in certain limited contexts like AT TIME ZONE, we don't allow
them in SET TIME ZONE, and bug #4528 shows that they're more likely to
confuse users than do anything useful.  So hide 'em.  (Note that we don't
even generate these zones when installing our own timezone database.
But they are likely to be present when using a system-provided database.)

15 years agoPrevent synchronous scan during GIN index build, because GIN is optimized
Tom Lane [Thu, 13 Nov 2008 17:42:10 +0000 (17:42 +0000)]
Prevent synchronous scan during GIN index build, because GIN is optimized
for inserting tuples in increasing TID order.  It's not clear whether this
fully explains Ivan Sergio Borgonovo's complaint, but simple testing
confirms that a scan that doesn't start at block 0 can slow GIN build by
a factor of three or four.

Backpatch to 8.3.  Sync scan didn't exist before that.

15 years agoarray_agg aggregate function, as per SQL:2008, but without ORDER BY clause
Peter Eisentraut [Thu, 13 Nov 2008 15:59:51 +0000 (15:59 +0000)]
array_agg aggregate function, as per SQL:2008, but without ORDER BY clause

Rearrange the documentation a bit now that array_agg and xmlagg have similar
semantics and issues.

best of Robert Haas, Jeff Davis, Peter Eisentraut

15 years agoPGDLLIMPORT-ize the global variables referenced in pg_crc.h.
Tom Lane [Thu, 13 Nov 2008 14:42:28 +0000 (14:42 +0000)]
PGDLLIMPORT-ize the global variables referenced in pg_crc.h.
I think this will fix current mingw buildfarm failures for pg_trgm.

15 years agoUpdated parser file to the one generated by the latest version of parse.[awk|pl]...
Michael Meskes [Thu, 13 Nov 2008 11:54:39 +0000 (11:54 +0000)]
Updated parser file to the one generated by the latest version of parse.[awk|pl] from the latest version of gram.y
Some small corrections to test suite.

15 years agoRemoved two non-terminals:
Michael Meskes [Thu, 13 Nov 2008 11:10:06 +0000 (11:10 +0000)]
Removed two non-terminals:
- FloatOnly: only used by NumericOnly, instead put the FloatOnly production into NumericOnly
- IntegerOnly: only used by NumericOnly and one ALTER TABLE rule, replacement SignedIconst is already used in several other places

15 years agoFix libpq certificate validation for SSL connections.
Magnus Hagander [Thu, 13 Nov 2008 09:45:25 +0000 (09:45 +0000)]
Fix libpq certificate validation for SSL connections.

Add config parameter "sslverify" to control the verification. Default
is to do full verification.

Clean up some old SSL code that never really worked.

15 years agoArrange to cache the results of looking up a btree predicate proof comparison
Tom Lane [Thu, 13 Nov 2008 00:20:45 +0000 (00:20 +0000)]
Arrange to cache the results of looking up a btree predicate proof comparison
operator.  The result depends only on the two input operators and the proof
direction (imply or refute), so it's easy to cache.  This provides a very
large savings in cases such as Sergey Konoplev's long NOT-IN-list example,
where predtest spends all its time repeatedly figuring out that the same pair
of operators cannot be used to prove anything.  (But of course the O(N^2)
behavior still catches up with you eventually.)  I'm not convinced it buys
a whole lot when constraint_exclusion isn't turned on, but it's not a lot
of added code so we might as well cache all the time.

15 years agoIn predtest.c, install a limit on the number of branches we will process in
Tom Lane [Wed, 12 Nov 2008 23:08:37 +0000 (23:08 +0000)]
In predtest.c, install a limit on the number of branches we will process in
AND, OR, or equivalent clauses: if there are too many (more than 100) just
exit without proving anything.  This ensures that we don't spend O(N^2) time
trying (and most likely failing) to prove anything about very long IN lists
and similar cases.

Also, install a couple of CHECK_FOR_INTERRUPTS calls to ensure that a long
proof attempt can be interrupted.

Per gripe from Sergey Konoplev.

Back-patch the whole patch to 8.2 and just the CHECK_FOR_INTERRUPTS addition
to 8.1.  (The rest of the patch doesn't apply cleanly, and since 8.1 doesn't
show the complained-of behavior anyway, it doesn't seem necessary to work
hard on it.)

15 years agoUpdate URL to Ross Williams' CRC paper.
Alvaro Herrera [Wed, 12 Nov 2008 21:53:46 +0000 (21:53 +0000)]
Update URL to Ross Williams' CRC paper.

Per note from Devrim Gunduz

15 years agoSupport for man page links, if a man page has more than one refname.
Peter Eisentraut [Wed, 12 Nov 2008 16:01:51 +0000 (16:01 +0000)]
Support for man page links, if a man page has more than one refname.

We don't actually use this anywhere, but it might come in handy for dealing
with SELECT/WITH/TABLE.

It works with both the old and the new man page target (for some value of
"works").

15 years agoRemove unnecessary whitespace in refname elements. This confuses the
Peter Eisentraut [Wed, 12 Nov 2008 15:53:34 +0000 (15:53 +0000)]
Remove unnecessary whitespace in refname elements.  This confuses the
man page tools.

15 years agoAdd refentrytitle elements to refentry pages. Their absence confused the
Peter Eisentraut [Wed, 12 Nov 2008 15:52:44 +0000 (15:52 +0000)]
Add refentrytitle elements to refentry pages.  Their absence confused the
man page tools somewhat.

15 years agoDo not use ICONST/SCONST in rules other than Iconst/Sconst.
Michael Meskes [Wed, 12 Nov 2008 15:50:20 +0000 (15:50 +0000)]
Do not use ICONST/SCONST in rules other than Iconst/Sconst.

15 years agoSupport of multibyte encoding for pg_trgm
Teodor Sigaev [Wed, 12 Nov 2008 13:43:54 +0000 (13:43 +0000)]
Support of multibyte encoding for pg_trgm

15 years agoIf we're going to use a SQL function for this, at least make it schema-proof.
Tom Lane [Wed, 12 Nov 2008 13:38:04 +0000 (13:38 +0000)]
If we're going to use a SQL function for this, at least make it schema-proof.

15 years agoarray_length() function, and for SQL compatibility also cardinality()
Peter Eisentraut [Wed, 12 Nov 2008 13:09:28 +0000 (13:09 +0000)]
array_length() function, and for SQL compatibility also cardinality()
function as a special case.

This version still has the suspicious behavior of returning null for an
empty array (rather than zero), but this may need a wholesale revision of
empty array behavior, currently under discussion.

Jim Nasby, Robert Haas, Peter Eisentraut

15 years agoFix off-by-one error in autovacuum shmem struct sizing. This could lead to
Heikki Linnakangas [Wed, 12 Nov 2008 10:10:32 +0000 (10:10 +0000)]
Fix off-by-one error in autovacuum shmem struct sizing. This could lead to
autovacuum worker sending SIGUSR1 signal to wrong process, per Zou Yong's
report.

Backpatch to 8.3.

15 years agoClean up the ancient decision to show only two fractional-seconds digits
Tom Lane [Wed, 12 Nov 2008 01:36:20 +0000 (01:36 +0000)]
Clean up the ancient decision to show only two fractional-seconds digits
in "postgres_verbose" intervalstyle, and the equally arbitrary decision to
show at least two fractional-seconds digits in most other datetime display
styles.  This results in some minor changes in the expected regression test
outputs.

Also, coalesce a lot of repetitive code in datetime.c into subroutines,
for clarity and ease of maintenance.  In particular this roughly halves
the number of #ifdef HAVE_INT64_TIMESTAMP segments.

Ron Mayer, with some additional kibitzing from Tom Lane

15 years agoDetect and error out on inability to get proper linkage information required for...
Andrew Dunstan [Wed, 12 Nov 2008 00:00:05 +0000 (00:00 +0000)]
Detect and error out on inability to get proper linkage information required for plperl, usually due to absence of perl ExtUtils::Embed module. Backpatch as far as 8.1.

15 years agoMention the tup_fetched column in pg_stat_database.
Magnus Hagander [Tue, 11 Nov 2008 20:06:21 +0000 (20:06 +0000)]
Mention the tup_fetched column in pg_stat_database.

Greg Sabino Mullane

15 years agoEnsure that the phrels sets of PlaceHolderVars appearing in an AppendRelInfo's
Tom Lane [Tue, 11 Nov 2008 19:05:21 +0000 (19:05 +0000)]
Ensure that the phrels sets of PlaceHolderVars appearing in an AppendRelInfo's
translated_vars list get updated when pulling up an appendrel member.  It's
not clear that this really matters at present, since relatively little gets
done with the outputs of an appendrel child relation; but it probably will
come back to bite us sometime if we leave them with the wrong values.

15 years agoGet rid of adjust_appendrel_attr_needed(), which has been broken ever since
Tom Lane [Tue, 11 Nov 2008 18:13:32 +0000 (18:13 +0000)]
Get rid of adjust_appendrel_attr_needed(), which has been broken ever since
we extended the appendrel mechanism to support UNION ALL optimization.  The
reason nobody noticed was that we are not actually using attr_needed data for
appendrel children; hence it seems more reasonable to rip it out than fix it.
Back-patch to 8.2 because an Assert failure is possible in corner cases.
Per examination of an example from Jim Nasby.

In HEAD, also get rid of AppendRelInfo.col_mappings, which is quite inadequate
to represent UNION ALL situations; depend entirely on translated_vars instead.

15 years agoMake psql report "SSL connection (unknown cipher)" when libpq has set
Magnus Hagander [Tue, 11 Nov 2008 15:01:53 +0000 (15:01 +0000)]
Make psql report "SSL connection (unknown cipher)" when libpq has set
up a SSL connection, but psql is compiled without support for it.

Not a really realistic use-case, but the patch also cuts down on
the number of places with #ifdef's...

15 years agoFix sloppy omission of now-required #include's.
Tom Lane [Tue, 11 Nov 2008 14:17:02 +0000 (14:17 +0000)]
Fix sloppy omission of now-required #include's.

15 years agoChange error messages to print the physical path, like
Heikki Linnakangas [Tue, 11 Nov 2008 13:19:16 +0000 (13:19 +0000)]
Change error messages to print the physical path, like
"base/11517/3767_fsm", instead of symbolic names like "1663/11517/3767/1",
per Alvaro's suggestion. I didn't change the messages in the higher-level
index, heap and FSM routines, though, where the fork is implicit.

15 years agoReplaced manually synced preproc.y by the one created by the new script.
Michael Meskes [Tue, 11 Nov 2008 11:41:24 +0000 (11:41 +0000)]
Replaced manually synced preproc.y by the one created by the new script.
Adapted regression test files accordingly.

15 years agoAdd an explicit caution about how to use pg_do_encoding_conversion with
Tom Lane [Tue, 11 Nov 2008 03:01:20 +0000 (03:01 +0000)]
Add an explicit caution about how to use pg_do_encoding_conversion with
non-null-terminated input.  Per discussion with ITAGAKI Takahiro.

15 years agoAdd support for input and output of interval values formatted per ISO 8601;
Tom Lane [Tue, 11 Nov 2008 02:42:33 +0000 (02:42 +0000)]
Add support for input and output of interval values formatted per ISO 8601;
specifically, we can input either the "format with designators" or the
"alternative format", and we can output the former when IntervalStyle is set
to iso_8601.

Ron Mayer

15 years agoFix a case of string building.
Alvaro Herrera [Mon, 10 Nov 2008 21:49:16 +0000 (21:49 +0000)]
Fix a case of string building.

15 years agoFix bugs in sqlchar_to_unicode and unicode_to_sqlchar: both were measuring
Tom Lane [Mon, 10 Nov 2008 18:02:20 +0000 (18:02 +0000)]
Fix bugs in sqlchar_to_unicode and unicode_to_sqlchar: both were measuring
the length of a UTF8 character with pg_mblen (wrong if DB encoding isn't
UTF8), and the latter was blithely assuming that a static buffer would somehow
revert to all zeroes for each use.

15 years agoFix 'Q' format char parsing in the new to_timestamp() code. Used to crash.
Heikki Linnakangas [Mon, 10 Nov 2008 17:36:53 +0000 (17:36 +0000)]
Fix 'Q' format char parsing in the new to_timestamp() code. Used to crash.

15 years agoAdd a --locale switch to createdb, to ease the creation of databases with
Alvaro Herrera [Mon, 10 Nov 2008 16:25:41 +0000 (16:25 +0000)]
Add a --locale switch to createdb, to ease the creation of databases with
different locales.  This is just syntactical sweetener over --lc-collate and
--lc-ctype.  Per discussion.

While at it, properly document --lc-ctype and --lc-collate in SGML docs,
which apparently were forgotten (or purposefully ommited?) when they were
created.

15 years agopg_do_encoding_conversion cannot return NULL (at least not unless the input
Tom Lane [Mon, 10 Nov 2008 15:18:40 +0000 (15:18 +0000)]
pg_do_encoding_conversion cannot return NULL (at least not unless the input
is NULL), so remove some useless tests for the case.

15 years agoFix old bug in contrib/sslinfo: X509_NAME_to_text freed the BIO_s_mem buffer
Tom Lane [Mon, 10 Nov 2008 14:57:38 +0000 (14:57 +0000)]
Fix old bug in contrib/sslinfo: X509_NAME_to_text freed the BIO_s_mem buffer
it was using too soon.  In a situation where pg_do_encoding_conversion is
a no-op, this led to garbage data returned.

In HEAD, also modify the code that's ensuring null termination to make it
a tad more obvious what's happening.

15 years agoMake relhasrules and relhastriggers work like relhasindex, namely we let
Tom Lane [Mon, 10 Nov 2008 00:49:37 +0000 (00:49 +0000)]
Make relhasrules and relhastriggers work like relhasindex, namely we let
VACUUM reset them to false rather than trying to clean 'em up during DROP.

15 years agoReplace pg_class.reltriggers with relhastriggers, which is just a boolean hint
Tom Lane [Sun, 9 Nov 2008 21:24:33 +0000 (21:24 +0000)]
Replace pg_class.reltriggers with relhastriggers, which is just a boolean hint
("there might be triggers") rather than an exact count.  This is necessary
catalog infrastructure for the upcoming patch to reduce the strength of
locking needed for trigger addition/removal.  Split out and committed
separately for ease of reviewing/testing.

In passing, also get rid of the unused pg_class columns relukeys, relfkeys,
and relrefs, which haven't been maintained in many years and now have no
chance of ever being maintained (because of wishing to avoid locking).

Simon Riggs

15 years agoAdd a startup check that pg_xlog and pg_xlog/archive_status exist.
Tom Lane [Sun, 9 Nov 2008 17:51:15 +0000 (17:51 +0000)]
Add a startup check that pg_xlog and pg_xlog/archive_status exist.
If the latter doesn't exist, automatically recreate it.  (We don't do
this for pg_xlog, though, per discussion.)

Jonah Harris

15 years agoAdd some documentation about handling of fractions in interval input.
Tom Lane [Sun, 9 Nov 2008 17:09:48 +0000 (17:09 +0000)]
Add some documentation about handling of fractions in interval input.
(It's always worked like this, but we never documented it before.)

15 years agoAdd a new GUC variable called "IntervalStyle" that decouples interval output
Tom Lane [Sun, 9 Nov 2008 00:28:35 +0000 (00:28 +0000)]
Add a new GUC variable called "IntervalStyle" that decouples interval output
from DateStyle, and create a new interval style that produces output matching
the SQL standard (at least for interval values that fall within the standard's
restrictions).  IntervalStyle is also used to resolve the conflict between the
standard and traditional Postgres rules for interpreting negative interval
input.

Ron Mayer

15 years agoFix recently added code for SQL years-months interval syntax so that
Tom Lane [Sat, 8 Nov 2008 20:51:49 +0000 (20:51 +0000)]
Fix recently added code for SQL years-months interval syntax so that
it behaves correctly for a leading minus sign, zero year value, and
nonzero month value.  Per discussion with Ron Mayer.

15 years agoAdd some more citext test cases, per David Wheeler. Also remove the
Tom Lane [Fri, 7 Nov 2008 23:17:30 +0000 (23:17 +0000)]
Add some more citext test cases, per David Wheeler.  Also remove the
citext-to-and-from-xml tests, since those caused variation between
installations with or without libxml without really proving much.  Instead
repurpose citext_1.out as the expected results in glibc en_US (and probably
other) locales.

15 years agoImprove documentation of pg_typeof, per gripe from David Wheeler.
Tom Lane [Fri, 7 Nov 2008 22:54:41 +0000 (22:54 +0000)]
Improve documentation of pg_typeof, per gripe from David Wheeler.

15 years agoImplement ALTER DATABASE SET TABLESPACE to move a whole database (or at least
Tom Lane [Fri, 7 Nov 2008 18:25:07 +0000 (18:25 +0000)]
Implement ALTER DATABASE SET TABLESPACE to move a whole database (or at least
as much of it as lives in its default tablespace) to a new tablespace.

Guillaume Lelarge, with some help from Bernd Helmle and Tom Lane