Commit Graph

21499 Commits

Author SHA1 Message Date
Tom Lane
25c00833cb Add defenses against nulls-in-arrays to contrib/ltree. Possibly it'd
be useful to actually do something with nulls, rather than reject them,
but I'll just close the hole for now.
2005-11-19 02:08:45 +00:00
Tom Lane
1e9a1a70ad Change array_push and array_cat so that they retain the lower bound of
the array (for array_push) or higher-dimensional array (for array_cat)
rather than decrementing it as before.  This avoids generating lower
bounds other than one for any array operation within the SQL spec.  Per
recent discussion.
Interestingly, this seems to have been the original behavior, because
while updating the docs I noticed that a large fraction of relevant
examples were *wrong* for the old behavior and are now right.  Is it
worth correcting this in the back-branch docs?
2005-11-19 01:50:08 +00:00
Tom Lane
8685c47223 Fix performance issue in exprTypmod(): for a COALESCE expression, it
recursed twice on its first argument, leading to exponential time spent
on a deep nest of COALESCEs ... such as a deeply nested FULL JOIN would
produce.  Per report from Matt Carter.
2005-11-18 23:08:00 +00:00
Andrew Dunstan
b410475672 translate undef to NULL for result arrayref, now that we allow NULLs in arrays. Update plperl regression test accordingly. 2005-11-18 17:00:28 +00:00
Alvaro Herrera
33e9f2c3d4 Add tab completion for RESET SESSION AUTHORIZATION. 2005-11-18 16:31:11 +00:00
Neil Conway
7871b7defc Update obsolete comment describing ExecDelete(), per Simon Riggs. 2005-11-18 12:26:20 +00:00
Tom Lane
1d0d8d3c38 Mop-up for nulls-in-arrays patch: fix some places that access array
contents directly.
2005-11-18 02:38:24 +00:00
Bruce Momjian
3201b7f3d0 Update Japanese FAQ.
J.Kuwamura
2005-11-18 00:40:46 +00:00
Andrew Dunstan
b7a9e3ceb4 make psql honor explicit database parameter in -l mode, in case "postgres" database is missing - per complaint from Philip Yarra. 2005-11-17 23:42:26 +00:00
Tom Lane
cecb607559 Make SQL arrays support null elements. This commit fixes the core array
functionality, but I still need to make another pass looking at places
that incidentally use arrays (such as ACL manipulation) to make sure they
are null-safe.  Contrib needs work too.
I have not changed the behaviors that are still under discussion about
array comparison and what to do with lower bounds.
2005-11-17 22:14:56 +00:00
Tom Lane
c859308aba DropRelFileNodeBuffers failed to fix the state of the lookup hash table
that was added to localbuf.c in 8.1; therefore, applying it to a temp table
left corrupt lookup state in memory.  The only case where this had a
significant chance of causing problems was an ON COMMIT DELETE ROWS temp
table; the other possible paths left bogus state that was unlikely to
be used again.  Per report from Csaba Nagy.
2005-11-17 17:42:02 +00:00
Bruce Momjian
84bb3876bc Update, add mention of user locking table before MERGE:
<   so duplicate checking can be easily performed.
>   so duplicate checking can be easily performed.  It is possible to
>   do it without a unique index if we require the user to LOCK the table
>   before the MERGE.
2005-11-16 18:45:09 +00:00
Tom Lane
ccdcd19672 make_restrictinfo() failed to attach the specified required_relids to
its result when the clause was an OR clause.  Brain fade exposed by
example from Sebastian BÎck.
2005-11-16 17:08:03 +00:00
Bruce Momjian
01798a06b9 Add batch mode, make new libpq section:
< * Add a libpq function to support Parse/DescribeStatement capability
< * Add PQescapeIdentifier() to libpq
< * Prevent PQfnumber() from lowercasing unquoted the column name
<
<   PQfnumber() should never have been doing lowercasing, but historically
<   it has so we need a way to prevent it
<
648a642,661
>
>
> libpq
>
> 	o Add a function to support Parse/DescribeStatement capability
> 	o Add PQescapeIdentifier()
> 	o Prevent PQfnumber() from lowercasing unquoted the column name
>
> 	  PQfnumber() should never have been doing lowercasing, but
> 	  historically it has so we need a way to prevent it
>
> 	o Allow query results to be automatically batched to the client
>
> 	  Currently, all query results are transfered to the libpq
> 	  client before libpq makes the results available to the
> 	  application.  This feature would allow the application to make
> 	  use of the first result rows while the rest are transfered, or
> 	  held on the server waiting for them to be requested by libpq.
> 	  One complexity is that a query like SELECT 1/col could error
> 	  out mid-way through the result set.
2005-11-16 16:33:44 +00:00
Tatsuo Ishii
2feb930af6 Fix comment on -v option 2005-11-16 13:13:08 +00:00
Bruce Momjian
04ce3cb02d Properly document return value of strpos(). 2005-11-16 03:56:16 +00:00
Bruce Momjian
558c4367e7 Update error message and documentation for fsync test. 2005-11-16 03:32:04 +00:00
Bruce Momjian
46117e4f2a Have test_fsync honor -f filename argument. 2005-11-16 01:31:07 +00:00
Bruce Momjian
698ee9c3e7 Update MERGE:
>
>   To implement this cleanly requires that the table have a unique index
>   so duplicate checking can be easily performed.
>
2005-11-15 23:08:24 +00:00
Bruce Momjian
788f7c63a1 Add reminder that we should link to the documentation section for new
features.
2005-11-15 22:16:03 +00:00
Bruce Momjian
62fb1d6028 Prevent certain symbols that are used for both typedefs and variable
names from being added to pgindent's typedef list.  The existance of
them caused weird formatting in the date/type files, and in keywords.c.

Backpatch to 8.1.X.
2005-11-15 14:45:10 +00:00
Bruce Momjian
02c43ffbec Fix recent problems with BSD indent, including indenting past 80
columns, shifting comment to the right when more than 150 'else if'
clauses were used, and update typedefs for 8.1.X.

NetBSD patched updated, with documentation.
2005-11-15 00:43:01 +00:00
Tom Lane
1bdf124b94 Restore the former RestrictInfo field valid_everywhere (but invert the flag
sense and rename to "outerjoin_delayed" to more clearly reflect what it
means).  I had decided that it was redundant in 8.1, but the folly of this
is exposed by a bug report from Sebastian Böck.  The place where it's
needed is to prevent orindxpath.c from cherry-picking arms of an outer-join
OR clause to form a relation restriction that isn't actually legal to push
down to the relation scan level.  There may be some legal cases that this
forbids optimizing, but we'd need much closer analysis to determine it.
2005-11-14 23:54:23 +00:00
Alvaro Herrera
e93fb885eb Translation typo fix 2005-11-14 22:08:14 +00:00
Bruce Momjian
c5686b2904 Re-run pgindent to fix breakage when exceeding 150 'else if' clauses.
Cosmetic fix only.
2005-11-14 17:48:43 +00:00
Tom Lane
76ce39e386 Prevent ExecInsert() and ExecUpdate() from scribbling on the result tuple
slot of the topmost plan node when a trigger returns a modified tuple.
These appear to be the only places where a plan node's caller did not
treat the result slot as read-only, which is an assumption that nodeUnique
makes as of 8.1.  Fixes trigger-vs-DISTINCT bug reported by Frank van Vugt.
2005-11-14 17:42:55 +00:00
Teodor Sigaev
08ee64ebf5 Remove usage of ArrayType->flags field, use pgsql's macros BITS_PER_BYTE instead
of self-defined macros, add limit of Array  to gist__int_ops. BTW, intarray now
doesn't support NULLs in arrays.
2005-11-14 16:11:37 +00:00
Teodor Sigaev
bad1a5c217 Use postgres-wide macros BITS_PER_BYTE instead self-definenig macros, also use it for calculating bit length of TPQTGist 2005-11-14 14:44:06 +00:00
Teodor Sigaev
34b934f658 fix returning value 2005-11-14 09:59:13 +00:00
Tom Lane
b31eeadcab Force the second argument of SUBSTRING(foo FOR bar) to be int4, to avoid
surprising results when it's some other numeric type.  This doesn't solve
the generic problem of surprising implicit casts to text, but it's a
low-impact way of making sure this particular case behaves sanely.
Per gripe from Harald Fuchs and subsequent discussion.
2005-11-13 19:11:28 +00:00
Bruce Momjian
19cb457146 Revert pgindent length back to 79 because we are going to fix the BSD
indent bug.
2005-11-13 02:38:49 +00:00
Andrew Dunstan
f9db22e88e add missing quote mark to ident_file sample line - per Hiroshi Saito 2005-11-10 14:01:55 +00:00
Tom Lane
da4e00bf37 When in transaction-aborted state, reject Bind message for portals containing
anything but transaction-exiting commands (ROLLBACK etc).  We already rejected
Parse and Execute in such cases, so there seems little point in allowing Bind.
This prevents at least an Assert failure, and probably worse things, since
there's a lot of infrastructure that doesn't work when not in a live
transaction.  We can also simplify the Bind logic a bit by rejecting messages
with a nonzero number of parameters, instead of the former kluge to silently
substitute NULL for each parameter.  Per bug #2033 from Joel Stevenson.
2005-11-10 00:31:34 +00:00
Tom Lane
0dd92d56b5 Fix misspelling of 'listen_addresses', per Devrim. 2005-11-09 17:44:10 +00:00
Teodor Sigaev
134bed8089 Fix rwrite(ARRAY) on 64-bit boxes:
Instead of getting elements of array manually call deconstruct_array
2005-11-09 09:26:04 +00:00
Teodor Sigaev
0645663e6c New features for tsearch2:
1 Comparison operation for tsquery
2 Btree index on tsquery
3 numnode(tsquery) - returns 'length' of tsquery
4 tsquery @ tsquery, tsquery ~ tsquery - contains, contained for tsquery.
  Note: They don't gurantee exact result, only MAY BE, so it
  useful only for speed up rewrite functions
5 GiST index support for @,~
6 rewrite():
        select rewrite(orig, what, to);
        select rewrite(ARRAY[orig, what, to]) from tsquery_table;
        select rewrite(orig, 'select what, to from tsquery_table;');
7 significantly improve cover algorithm
2005-11-08 17:08:46 +00:00
Bruce Momjian
6521ea008e Lower pgident length to 77, document BSD indent bug. 2005-11-07 23:50:20 +00:00
Bruce Momjian
aaf8cb0c72 Change maximum pgindent length from 79 to 78, per Tom. 2005-11-07 22:52:41 +00:00
Tom Lane
2a8d3d83ef R-tree is dead ... long live GiST. 2005-11-07 17:36:47 +00:00
Alvaro Herrera
645adf5de8 Translation updates forward-port to HEAD. 2005-11-07 02:40:38 +00:00
Tom Lane
6236991143 Add simple sanity checks on newly-read pages to GiST, too. 2005-11-06 22:39:21 +00:00
Tom Lane
766dc45d9f Add defenses to btree and hash index AMs to do simple sanity checks
on every index page they read; in particular to catch the case of an
all-zero page, which PageHeaderIsValid allows to pass.  It turns out
hash already had this idea, but it was just Assert()ing things rather
than doing a straight error check, and the Asserts were partially
redundant with PageHeaderIsValid anyway.  Per recent failure example
from Jim Nasby.  (gist still needs the same treatment.)
2005-11-06 19:29:01 +00:00
Tom Lane
18691d8ee3 Clean up representation of SLRU page state. This is the cleaner fix
for the SLRU race condition that I posted a few days ago, but we decided
not to use in 8.1 and older branches.
2005-11-05 21:19:47 +00:00
Tom Lane
667ba8ccb1 Brand HEAD branch as 8.2devel. 2005-11-05 16:42:02 +00:00
PostgreSQL Daemon
2a80c3c4dc Tag everything for 8.1.0 ... Finally, a relesae on scheduale!! 2005-11-05 04:01:57 +00:00
Tom Lane
48052de722 Repair an error introduced by log_line_prefix patch: it is not acceptable
to assume that the string pointer passed to set_ps_display is good forever.
There's no need to anyway since ps_status.c itself saves the string, and
we already had an API (get_ps_display) to return it.
I believe this explains Jim Nasby's report of intermittent crashes in
elog.c when %i format code is in use in log_line_prefix.
While at it, repair a previously unnoticed problem: on some platforms such as
Darwin, the string returned by get_ps_display was blank-padded to the maximum
length, meaning that lock.c's attempt to append " waiting" to it never worked.
2005-11-05 03:04:53 +00:00
Bruce Momjian
95af2633c3 Add mention to update FAQ item on most recent release to RELEASE_CHANGES. 2005-11-05 01:38:44 +00:00
Bruce Momjian
75a429463a Update FAQ for most recent release as 8.1. 2005-11-05 01:35:18 +00:00
Tom Lane
9ba4c42401 Yet another supported-platforms update. 2005-11-05 00:04:04 +00:00
Tom Lane
fd68553860 Editorial review for partitioning/constraint exclusion documentation. 2005-11-04 23:53:18 +00:00