OSDN Git Service

pg-rex/syncrep.git
18 years agoRemove comment on errno=0 lines, but add mention to port/strtol.c function.
Bruce Momjian [Fri, 2 Dec 2005 02:49:11 +0000 (02:49 +0000)]
Remove comment on errno=0 lines, but add mention to port/strtol.c function.

18 years agoRearrange code in ExecInitBitmapHeapScan so that we don't initialize the
Tom Lane [Fri, 2 Dec 2005 01:29:55 +0000 (01:29 +0000)]
Rearrange code in ExecInitBitmapHeapScan so that we don't initialize the
child plan nodes until we have acquired lock on the relation to scan.
The relative order of initialization of plan nodes isn't real important in
other cases, but it's critical here because one is supposed to lock a
relation before its indexes, not vice versa.  The original coding was at
least vulnerable to deadlock against DROP INDEX, and perhaps worse things.

18 years agoAdd all heap page rows visible bitmap idea:
Bruce Momjian [Thu, 1 Dec 2005 22:30:43 +0000 (22:30 +0000)]
Add all heap page rows visible bitmap idea:

<   the heap.  One way to allow this is to set a bit to index tuples
>   the heap.  One way to allow this is to set a bit on index tuples
<   be cleared when a heap tuple is expired.
<
>   be cleared when a heap tuple is expired.  Another idea is to maintain
>   a bitmap of heap pages where all rows are visible to all backends,
>   and allow index lookups to reference that bitmap to avoid heap
>   lookups, perhaps the same bitmap we might add someday to determine
>   which heap pages need vacuuming.

18 years agoAdd MERGE TODO.detail:
Bruce Momjian [Thu, 1 Dec 2005 22:12:35 +0000 (22:12 +0000)]
Add MERGE TODO.detail:

>   [merge]
378a380
>   [merge]

18 years agoAdd merge TODO.detail item.
Bruce Momjian [Thu, 1 Dec 2005 22:12:06 +0000 (22:12 +0000)]
Add merge TODO.detail item.

18 years agoSplit out MERGE and REPLACE/UPSERT items.
Bruce Momjian [Thu, 1 Dec 2005 22:07:59 +0000 (22:07 +0000)]
Split out MERGE and REPLACE/UPSERT items.

< * Add MERGE command that does UPDATE/DELETE, or on failure, INSERT (rules,
<   triggers?)
> * Add SQL-standard MERGE command, typically used to merge two tables
>
>   This is similar to UPDATE, then for unmatched rows, INSERT.
>   Whether concurrent access allows modifications which could cause
>   row loss is implementation independent.
>
> * Add REPLACE or UPSERT command that does UPDATE, or on failure, INSERT

18 years agoAdd comment to pg_atoi.
Bruce Momjian [Thu, 1 Dec 2005 21:16:13 +0000 (21:16 +0000)]
Add comment to pg_atoi.

18 years agoComment "errno = 0" in a more generic way.
Bruce Momjian [Thu, 1 Dec 2005 21:11:58 +0000 (21:11 +0000)]
Comment "errno = 0" in a more generic way.

18 years agoRetry in FileRead and FileWrite if Windows returns ERROR_NO_SYSTEM_RESOURCES.
Tom Lane [Thu, 1 Dec 2005 20:24:18 +0000 (20:24 +0000)]
Retry in FileRead and FileWrite if Windows returns ERROR_NO_SYSTEM_RESOURCES.
Also add a retry for Unixen returning EINTR, which hasn't been reported
as an issue but at least theoretically could be.  Patch by Qingqing Zhou,
some minor adjustments by me.

18 years agoAdd comments about why errno is set to zero.
Bruce Momjian [Thu, 1 Dec 2005 20:06:37 +0000 (20:06 +0000)]
Add comments about why errno is set to zero.

18 years agoCheck for overflow in strtol() while parsing datetime inputs.
Tom Lane [Thu, 1 Dec 2005 17:56:34 +0000 (17:56 +0000)]
Check for overflow in strtol() while parsing datetime inputs.
Michael Fuhr.

18 years agoFix typo in PL/PgSQL documentation, per Chris KL.
Neil Conway [Thu, 1 Dec 2005 10:36:57 +0000 (10:36 +0000)]
Fix typo in PL/PgSQL documentation, per Chris KL.

18 years agoRefactor some bits in aclchk.c in order to reduce code duplication.
Alvaro Herrera [Thu, 1 Dec 2005 02:03:01 +0000 (02:03 +0000)]
Refactor some bits in aclchk.c in order to reduce code duplication.

18 years agoRearrange code in pg_atoi() to avoid assuming that isspace() cannot
Tom Lane [Wed, 30 Nov 2005 23:10:08 +0000 (23:10 +0000)]
Rearrange code in pg_atoi() to avoid assuming that isspace() cannot
change errno.  No reported bugs here, but why take a chance?

18 years agoTweak choose_bitmap_and() heuristics in the light of example provided in bug
Tom Lane [Wed, 30 Nov 2005 17:10:19 +0000 (17:10 +0000)]
Tweak choose_bitmap_and() heuristics in the light of example provided in bug
#2075: consider an index redundant if any of its index conditions were already
used, rather than if all of them were.  Also, make the selectivity comparison
a bit fuzzy, so that very small differences in estimated selectivities don't
skew the results.

18 years ago- Made several variables "const char *" instead of "char *" as proposed by Qingqing...
Michael Meskes [Wed, 30 Nov 2005 12:49:49 +0000 (12:49 +0000)]
- Made several variables "const char *" instead of "char *" as proposed by Qingqing Zhou <zhouqq@cs.toronto.edu>.
- Replaced all strdup() calls by ECPGstrdup().
- Set ecpg library version to 5.2.
- Set ecpg version to 4.2.1.

18 years agoUpdate for 8.2:
Bruce Momjian [Tue, 29 Nov 2005 02:02:40 +0000 (02:02 +0000)]
Update for 8.2:

< #A hyphen, "-", marks changes that will appear in the upcoming 8.1 release.#
> #A hyphen, "-", marks changes that will appear in the upcoming 8.2 release.#

18 years agoItem removed, looping always required:
Bruce Momjian [Tue, 29 Nov 2005 02:01:52 +0000 (02:01 +0000)]
Item removed, looping always required:

< * Remove Win32 rename/unlink looping if unnecessary

18 years agoDocument PGXS' REGRESS feature.
Alvaro Herrera [Tue, 29 Nov 2005 01:46:54 +0000 (01:46 +0000)]
Document PGXS' REGRESS feature.

18 years agoFix EXPLAIN and EXECUTE commands to pass portal parameters through to
Tom Lane [Tue, 29 Nov 2005 01:25:50 +0000 (01:25 +0000)]
Fix EXPLAIN and EXECUTE commands to pass portal parameters through to
the executor.  This allows, for example, JDBC clients to use '?' bound
parameters in these commands.  Per gripe from Virag Saksena.

18 years agoTweak hash join code to use an additional heuristic for deciding whether
Tom Lane [Mon, 28 Nov 2005 23:46:03 +0000 (23:46 +0000)]
Tweak hash join code to use an additional heuristic for deciding whether
it's worth probing the outer relation for emptiness before building the
hash table.  To wit, if we're rescanning a join previously performed,
remember whether we found it nonempty the previous time, and don't bother
with the probe if it was nonempty.  This buys back the performance lost
in examples like Mario Weilguni's.

18 years agoImprove documentation for COALESCE and NULLIF. Add references for NVL
Bruce Momjian [Mon, 28 Nov 2005 23:18:48 +0000 (23:18 +0000)]
Improve documentation for COALESCE and NULLIF.  Add references for NVL
and IFNULL.

Backpatch to 8.1.X.

18 years agoCome to think of it, the backend doesn't use -lz either.
Tom Lane [Mon, 28 Nov 2005 22:43:30 +0000 (22:43 +0000)]
Come to think of it, the backend doesn't use -lz either.

18 years agoAdd:
Bruce Momjian [Mon, 28 Nov 2005 22:21:58 +0000 (22:21 +0000)]
Add:

> * Allow COMMENT ON to accept an expression rather than just a string

18 years agoDon't link readline and supporting libraries into the backend.
Tom Lane [Mon, 28 Nov 2005 22:06:39 +0000 (22:06 +0000)]
Don't link readline and supporting libraries into the backend.
After a proposal by Martijn van Oosterhout (not exactly his patch though).

18 years agoInstall a more future-proof fix for the snapshot-unset bug just found.
Alvaro Herrera [Mon, 28 Nov 2005 17:23:11 +0000 (17:23 +0000)]
Install a more future-proof fix for the snapshot-unset bug just found.
Per suggestion from Tom Lane.

18 years agoRecent changes to allow hash join to exit early given empty input from
Tom Lane [Mon, 28 Nov 2005 17:14:23 +0000 (17:14 +0000)]
Recent changes to allow hash join to exit early given empty input from
one child or the other had a problem: they did not leave the node in a
state that ExecReScanHashJoin would understand.  In particular it would
tend to fail to reset the child plans when needed.  Per report from
Mario Weilguni.

18 years agoSet a snapshot before running analyze on a single table, to avoid a
Alvaro Herrera [Mon, 28 Nov 2005 13:35:09 +0000 (13:35 +0000)]
Set a snapshot before running analyze on a single table, to avoid a
crash when analyzing tables with expressional indexes.

Per report from Frank van Vugt.

18 years agoInstall pg_regress where PGXS' "make installcheck" can find it.
Alvaro Herrera [Mon, 28 Nov 2005 12:03:56 +0000 (12:03 +0000)]
Install pg_regress where PGXS' "make installcheck" can find it.

18 years agoChange the parser to translate "foo [NOT] IN (expression-list)" to
Tom Lane [Mon, 28 Nov 2005 04:35:32 +0000 (04:35 +0000)]
Change the parser to translate "foo [NOT] IN (expression-list)" to
ScalarArrayOpExpr when possible, that is, whenever there is an array type
for the values of the expression list.  This completes the project I've
been working on to improve the speed of index searches with long IN lists,
as per discussion back in mid-October.

I did not force initdb, but until you do one you will see failures in the
"rules" regression test, because some of the standard system views use IN
and their compiled formats have changed.

18 years agoTeach predtest.c how to reason about ScalarArrayOpExpr clauses as though
Tom Lane [Sun, 27 Nov 2005 22:15:42 +0000 (22:15 +0000)]
Teach predtest.c how to reason about ScalarArrayOpExpr clauses as though
they were broken-out AND or OR lists.  The least grotty way to do this
seemed to be to set up a general mechanism for handling nodes as though
they were ANDs or ORs.  There's no other immediate use for it, but perhaps
we might want to use the mechanism someday for things like BETWEEN
SYMMETRIC.

18 years agoAdd missing semicolon. Recent versions of bison seem to choke on this,
Tom Lane [Sun, 27 Nov 2005 01:22:23 +0000 (01:22 +0000)]
Add missing semicolon.  Recent versions of bison seem to choke on this,
per buildfarm report from platypus, even though older versions let it pass.

18 years agoTeach tid-scan code to make use of "ctid = ANY (array)" clauses, so that
Tom Lane [Sat, 26 Nov 2005 22:14:57 +0000 (22:14 +0000)]
Teach tid-scan code to make use of "ctid = ANY (array)" clauses, so that
"ctid IN (list)" will still work after we convert IN to ScalarArrayOpExpr.
Make some minor efficiency improvements while at it, such as ensuring that
multiple TIDs are fetched in physical heap order.  And fix EXPLAIN so that
it shows what's really going on for a TID scan.

18 years agoTeach push_nots() how to negate a ScalarArrayOpExpr. In passing, save
Tom Lane [Sat, 26 Nov 2005 18:07:40 +0000 (18:07 +0000)]
Teach push_nots() how to negate a ScalarArrayOpExpr.  In passing, save
a palloc or two in the OpExpr case.

18 years agoSome marginal additional hacking to shave a few more cycles off
Tom Lane [Sat, 26 Nov 2005 05:03:06 +0000 (05:03 +0000)]
Some marginal additional hacking to shave a few more cycles off
heapgettup.

18 years agoChange seqscan logic so that we check visibility of all tuples on a page
Tom Lane [Sat, 26 Nov 2005 03:03:07 +0000 (03:03 +0000)]
Change seqscan logic so that we check visibility of all tuples on a page
when we first read the page, rather than checking them one at a time.
This allows us to take and release the buffer content lock just once
per page, instead of once per tuple.  Since it's a shared lock the
contention penalty for holding the lock longer shouldn't be too bad.
We can safely do this only when using an MVCC snapshot; else the
assumption that visibility won't change over time is uncool.  Therefore
there are now two code paths depending on the snapshot type.  I also
made the same change in nodeBitmapHeapscan.c, where it can be done always
because we only support MVCC snapshots for bitmap scans anyway.
Also make some incidental cleanups in the APIs of these functions.
Per a suggestion from Qingqing Zhou.

18 years agoTeach planner and executor to handle ScalarArrayOpExpr as an indexable
Tom Lane [Fri, 25 Nov 2005 19:47:50 +0000 (19:47 +0000)]
Teach planner and executor to handle ScalarArrayOpExpr as an indexable
qualification when the underlying operator is indexable and useOr is true.
That is, indexkey op ANY (ARRAY[...]) is effectively translated into an
OR combination of one indexscan for each array element.  This only works
for bitmap index scans, of course, since regular indexscans no longer
support OR'ing of scans.  There are still some loose ends to clean up
before changing 'x IN (list)' to translate as a ScalarArrayOpExpr;
for instance predtest.c ought to be taught about it.  But this gets the
basic functionality in place.

18 years agoImprove ExecStoreTuple to be smarter about replacing the contents of
Tom Lane [Fri, 25 Nov 2005 04:24:48 +0000 (04:24 +0000)]
Improve ExecStoreTuple to be smarter about replacing the contents of
a TupleTableSlot: instead of calling ExecClearTuple, inline the needed
operations, so that we can avoid redundant steps.  In particular, when
the old and new tuples are both on the same disk page, avoid releasing
and re-acquiring the buffer pin --- this saves work in both the bufmgr
and ResourceOwner modules.  To make this improvement actually useful,
partially revert a change I made on 2004-04-21 that caused SeqNext
et al to call ExecClearTuple before ExecStoreTuple.  The motivation
for that, to avoid grabbing the BufMgrLock separately for releasing
the old buffer and grabbing the new one, no longer applies.  My
profiling says that this saves about 5% of the CPU time for an
all-in-memory seqscan.

18 years agoAdd space.
Bruce Momjian [Thu, 24 Nov 2005 04:40:27 +0000 (04:40 +0000)]
Add space.

18 years agoAdd item:
Bruce Momjian [Thu, 24 Nov 2005 04:28:40 +0000 (04:28 +0000)]
Add item:

<
>  o Add -f to pg_dumpall

18 years agoGet rid of ExecAssignResultTypeFromOuterPlan() and make all plan node types
Tom Lane [Wed, 23 Nov 2005 20:27:58 +0000 (20:27 +0000)]
Get rid of ExecAssignResultTypeFromOuterPlan() and make all plan node types
generate their output tuple descriptors from their target lists (ie, using
ExecAssignResultTypeFromTL()).  We long ago fixed things so that all node
types have minimally valid tlists, so there's no longer any good reason to
have two different ways of doing it.  This change is needed to fix bug
reported by Hayden James: the fix of 2005-11-03 to emit the correct column
names after optimizing away a SubqueryScan node didn't work if the new
top-level plan node used ExecAssignResultTypeFromOuterPlan to generate its
tupdesc, since the next plan node down won't have the correct column labels.

18 years agoFix problems with rewriter failing to set Query.hasSubLinks when inserting
Tom Lane [Wed, 23 Nov 2005 17:21:04 +0000 (17:21 +0000)]
Fix problems with rewriter failing to set Query.hasSubLinks when inserting
a SubLink expression into a rule query.  Pre-8.1 we essentially did this
unconditionally; 8.1 tries to do it only when needed, but was missing a
couple of cases.  Per report from Kyle Bateman.  Add some regression test
cases covering this area.

18 years agoHaving blank lines in -f scripts was causing silent failures.
Tatsuo Ishii [Wed, 23 Nov 2005 12:19:12 +0000 (12:19 +0000)]
Having blank lines in -f scripts was causing silent failures.
per David Fetter

18 years agoFix pgindent of libpq-fe.h by hacking pgindent script.
Bruce Momjian [Wed, 23 Nov 2005 04:23:30 +0000 (04:23 +0000)]
Fix pgindent of libpq-fe.h by hacking pgindent script.

Remove pgbench comment that was causing problems.

18 years agoDone:
Bruce Momjian [Tue, 22 Nov 2005 23:22:38 +0000 (23:22 +0000)]
Done:
>  o -Allow NULLs in arrays

18 years agoAdd:
Bruce Momjian [Tue, 22 Nov 2005 23:06:56 +0000 (23:06 +0000)]
Add:

>
> * Add estimated_count(*) to return an estimate of COUNT(*)
>
>   This would use the planner ANALYZE statistatics to return an estimated
>   count.

18 years agoFix up comment munged by pg_indent. (Not pg_indent's fault; should have
Tom Lane [Tue, 22 Nov 2005 22:30:33 +0000 (22:30 +0000)]
Fix up comment munged by pg_indent.  (Not pg_indent's fault; should have
protected comment with dashes the first time round.)

18 years agoRe-run pgindent, fixing a problem where comment lines after a blank
Bruce Momjian [Tue, 22 Nov 2005 18:17:34 +0000 (18:17 +0000)]
Re-run pgindent, fixing a problem where comment lines after a blank
comment line where output as too long, and update typedefs for /lib
directory.  Also fix case where identifiers were used as variable names
in the backend, but as typedefs in ecpg (favor the backend for
indenting).

Backpatch to 8.1.X.

18 years agoUpdate most recent version number.
Bruce Momjian [Tue, 22 Nov 2005 16:27:00 +0000 (16:27 +0000)]
Update most recent version number.

18 years agoUpdate wording and cleanup for new items.
Bruce Momjian [Tue, 22 Nov 2005 15:31:23 +0000 (15:31 +0000)]
Update wording and cleanup for new items.

18 years ago DROP DATABASE IF EXISTS variant
Andrew Dunstan [Tue, 22 Nov 2005 15:24:18 +0000 (15:24 +0000)]
 DROP DATABASE IF EXISTS variant

18 years agoMarkup TODO as a URL.
Bruce Momjian [Tue, 22 Nov 2005 15:21:54 +0000 (15:21 +0000)]
Markup TODO as a URL.

18 years agoFix markup italics problem.
Bruce Momjian [Tue, 22 Nov 2005 15:17:57 +0000 (15:17 +0000)]
Fix markup italics problem.

18 years agoUpdate item tags.
Bruce Momjian [Tue, 22 Nov 2005 15:17:06 +0000 (15:17 +0000)]
Update item tags.

18 years agoChange to using "id=" HTML tags instead of "name=" tags.
Bruce Momjian [Tue, 22 Nov 2005 15:13:02 +0000 (15:13 +0000)]
Change to using "id=" HTML tags instead of "name=" tags.

18 years agoUpdate FAQ to explain process of submitting bug and feature requests.
Bruce Momjian [Tue, 22 Nov 2005 15:04:25 +0000 (15:04 +0000)]
Update FAQ to explain process of submitting bug and feature requests.

18 years agoFixes motivated by snake and spoonbill pgbuildfarm members
Teodor Sigaev [Tue, 22 Nov 2005 09:01:35 +0000 (09:01 +0000)]
Fixes motivated by snake and spoonbill pgbuildfarm members

18 years agoReorder "who controls PostgreSQL" to near the top.
Bruce Momjian [Mon, 21 Nov 2005 21:01:16 +0000 (21:01 +0000)]
Reorder "who controls PostgreSQL" to near the top.

18 years agoReorder version FAQ item to be right after "how do I get the software".
Bruce Momjian [Mon, 21 Nov 2005 20:54:26 +0000 (20:54 +0000)]
Reorder version FAQ item to be right after "how do I get the software".

18 years agoClarify copyright wording.
Bruce Momjian [Mon, 21 Nov 2005 20:51:39 +0000 (20:51 +0000)]
Clarify copyright wording.

18 years agoReorder bug items.
Bruce Momjian [Mon, 21 Nov 2005 20:44:11 +0000 (20:44 +0000)]
Reorder bug items.

18 years agoremove forgotten // comments
Teodor Sigaev [Mon, 21 Nov 2005 18:00:52 +0000 (18:00 +0000)]
remove forgotten // comments

18 years agoImplement DROP OWNED and REASSIGN OWNED. These new commands facilitate the
Alvaro Herrera [Mon, 21 Nov 2005 12:49:33 +0000 (12:49 +0000)]
Implement DROP OWNED and REASSIGN OWNED.  These new commands facilitate the
process of dropping roles by dropping objects owned by them and privileges
granted to them, or giving the owned objects to someone else, through the
use of the data stored in the new pg_shdepend catalog.

Some refactoring of the GRANT/REVOKE code was needed, as well as ALTER OWNER
code.  Further cleanup of code duplication in the GRANT code seems necessary.

Implemented by me after an idea from Tom Lane, who also provided various kind
of implementation advice.

Regression tests pass.  Some tests for the new functionality are also added,
as well as rudimentary documentation.

18 years agoText parser rewritten:
Teodor Sigaev [Mon, 21 Nov 2005 12:27:57 +0000 (12:27 +0000)]
Text parser rewritten:
        - supports multibyte encodings
        - more strict rules for lexemes
        - flex isn't used
Add:
        - tsquery plainto_tsquery(text)
          Function makes tsquery from plain text.
        - &&, ||, !! operation for tsquery for combining
          tsquery from it's parts:  'foo & bar' || 'asd' => 'foo & bar | asd'

18 years agoClean up after DROP IF EXISTS patch.
Tom Lane [Sun, 20 Nov 2005 23:24:12 +0000 (23:24 +0000)]
Clean up after DROP IF EXISTS patch.

18 years agoRemove the t_datamcxt field of HeapTupleData. This was introduced for
Tom Lane [Sun, 20 Nov 2005 19:49:08 +0000 (19:49 +0000)]
Remove the t_datamcxt field of HeapTupleData.  This was introduced for
the convenience of tuptoaster.c and is no longer needed, so may as well
get rid of some small amount of overhead.

18 years agoModify tuptoaster's API so that it does not try to modify the passed
Tom Lane [Sun, 20 Nov 2005 18:38:20 +0000 (18:38 +0000)]
Modify tuptoaster's API so that it does not try to modify the passed
tuple in-place, but instead passes back an all-new tuple structure if
any changes are needed.  This is a much cleaner and more robust solution
for the bug discovered by Alexey Beschiokov; accordingly, revert the
quick hack I installed yesterday.
With this change, HeapTupleData.t_datamcxt is no longer needed; will
remove it in a separate commit in HEAD only.

18 years agoStopgap solution for problem reported by Alexey Beschiokov: after
Tom Lane [Sat, 19 Nov 2005 20:57:44 +0000 (20:57 +0000)]
Stopgap solution for problem reported by Alexey Beschiokov: after
doing heap_insert or heap_update, wipe out any extracted fields in
the TupleTableSlot containing the tuple, because they might not be valid
anymore if tuptoaster.c changed the tuple.  Safe because slot must be
in the materialized state, but mighty ugly --- find a better answer!

18 years agoChange array comparison rules to consider dimensionality information,
Tom Lane [Sat, 19 Nov 2005 19:44:55 +0000 (19:44 +0000)]
Change array comparison rules to consider dimensionality information,
not only the array contents, before claiming two arrays are equal.
Per recent discussion.

18 years agoDROP objecttype IF EXISTS for the following objects:
Andrew Dunstan [Sat, 19 Nov 2005 17:39:45 +0000 (17:39 +0000)]
DROP objecttype IF EXISTS for the following objects:
  table view index sequence schema type domain conversion

18 years agoDefend against nulls-in-arrays in contrib/intarray. I may have put in
Tom Lane [Sat, 19 Nov 2005 03:00:09 +0000 (03:00 +0000)]
Defend against nulls-in-arrays in contrib/intarray.  I may have put in
more tests than strictly necessary, but did not feel like tracing call
paths in detail ...

18 years agoAdd defenses against nulls-in-arrays to contrib/ltree. Possibly it'd
Tom Lane [Sat, 19 Nov 2005 02:08:45 +0000 (02:08 +0000)]
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.

18 years agoChange array_push and array_cat so that they retain the lower bound of
Tom Lane [Sat, 19 Nov 2005 01:50:08 +0000 (01:50 +0000)]
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?

18 years agoFix performance issue in exprTypmod(): for a COALESCE expression, it
Tom Lane [Fri, 18 Nov 2005 23:08:00 +0000 (23:08 +0000)]
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.

18 years agotranslate undef to NULL for result arrayref, now that we allow NULLs in arrays. Updat...
Andrew Dunstan [Fri, 18 Nov 2005 17:00:28 +0000 (17:00 +0000)]
translate undef to NULL for result arrayref, now that we allow NULLs in arrays. Update plperl regression test accordingly.

18 years agoAdd tab completion for RESET SESSION AUTHORIZATION.
Alvaro Herrera [Fri, 18 Nov 2005 16:31:11 +0000 (16:31 +0000)]
Add tab completion for RESET SESSION AUTHORIZATION.

18 years agoUpdate obsolete comment describing ExecDelete(), per Simon Riggs.
Neil Conway [Fri, 18 Nov 2005 12:26:20 +0000 (12:26 +0000)]
Update obsolete comment describing ExecDelete(), per Simon Riggs.

18 years agoMop-up for nulls-in-arrays patch: fix some places that access array
Tom Lane [Fri, 18 Nov 2005 02:38:24 +0000 (02:38 +0000)]
Mop-up for nulls-in-arrays patch: fix some places that access array
contents directly.

18 years agoUpdate Japanese FAQ.
Bruce Momjian [Fri, 18 Nov 2005 00:40:46 +0000 (00:40 +0000)]
Update Japanese FAQ.

J.Kuwamura

18 years agomake psql honor explicit database parameter in -l mode, in case "postgres" database...
Andrew Dunstan [Thu, 17 Nov 2005 23:42:26 +0000 (23:42 +0000)]
make psql honor explicit database parameter in -l mode, in case "postgres" database is missing - per complaint from Philip Yarra.

18 years agoMake SQL arrays support null elements. This commit fixes the core array
Tom Lane [Thu, 17 Nov 2005 22:14:56 +0000 (22:14 +0000)]
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.

18 years agoDropRelFileNodeBuffers failed to fix the state of the lookup hash table
Tom Lane [Thu, 17 Nov 2005 17:42:02 +0000 (17:42 +0000)]
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.

18 years agoUpdate, add mention of user locking table before MERGE:
Bruce Momjian [Wed, 16 Nov 2005 18:45:09 +0000 (18:45 +0000)]
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.

18 years agomake_restrictinfo() failed to attach the specified required_relids to
Tom Lane [Wed, 16 Nov 2005 17:08:03 +0000 (17:08 +0000)]
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.

18 years agoAdd batch mode, make new libpq section:
Bruce Momjian [Wed, 16 Nov 2005 16:33:44 +0000 (16:33 +0000)]
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.

18 years agoFix comment on -v option
Tatsuo Ishii [Wed, 16 Nov 2005 13:13:08 +0000 (13:13 +0000)]
Fix comment on -v option

18 years agoProperly document return value of strpos().
Bruce Momjian [Wed, 16 Nov 2005 03:56:16 +0000 (03:56 +0000)]
Properly document return value of strpos().

18 years agoUpdate error message and documentation for fsync test.
Bruce Momjian [Wed, 16 Nov 2005 03:32:04 +0000 (03:32 +0000)]
Update error message and documentation for fsync test.

18 years agoHave test_fsync honor -f filename argument.
Bruce Momjian [Wed, 16 Nov 2005 01:31:07 +0000 (01:31 +0000)]
Have test_fsync honor -f filename argument.

18 years agoUpdate MERGE:
Bruce Momjian [Tue, 15 Nov 2005 23:08:24 +0000 (23:08 +0000)]
Update MERGE:

>
>   To implement this cleanly requires that the table have a unique index
>   so duplicate checking can be easily performed.
>

18 years agoAdd reminder that we should link to the documentation section for new
Bruce Momjian [Tue, 15 Nov 2005 22:16:03 +0000 (22:16 +0000)]
Add reminder that we should link to the documentation section for new
features.

18 years agoPrevent certain symbols that are used for both typedefs and variable
Bruce Momjian [Tue, 15 Nov 2005 14:45:10 +0000 (14:45 +0000)]
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.

18 years agoFix recent problems with BSD indent, including indenting past 80
Bruce Momjian [Tue, 15 Nov 2005 00:43:01 +0000 (00:43 +0000)]
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.

18 years agoRestore the former RestrictInfo field valid_everywhere (but invert the flag
Tom Lane [Mon, 14 Nov 2005 23:54:23 +0000 (23:54 +0000)]
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.

18 years agoTranslation typo fix
Alvaro Herrera [Mon, 14 Nov 2005 22:08:14 +0000 (22:08 +0000)]
Translation typo fix

18 years agoRe-run pgindent to fix breakage when exceeding 150 'else if' clauses.
Bruce Momjian [Mon, 14 Nov 2005 17:48:43 +0000 (17:48 +0000)]
Re-run pgindent to fix breakage when exceeding 150 'else if' clauses.

Cosmetic fix only.

18 years agoPrevent ExecInsert() and ExecUpdate() from scribbling on the result tuple
Tom Lane [Mon, 14 Nov 2005 17:42:55 +0000 (17:42 +0000)]
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.

18 years agoRemove usage of ArrayType->flags field, use pgsql's macros BITS_PER_BYTE instead
Teodor Sigaev [Mon, 14 Nov 2005 16:11:37 +0000 (16:11 +0000)]
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.

18 years agoUse postgres-wide macros BITS_PER_BYTE instead self-definenig macros, also use it...
Teodor Sigaev [Mon, 14 Nov 2005 14:44:06 +0000 (14:44 +0000)]
Use postgres-wide macros BITS_PER_BYTE instead self-definenig macros, also use it for calculating bit length of TPQTGist

18 years agofix returning value
Teodor Sigaev [Mon, 14 Nov 2005 09:59:13 +0000 (09:59 +0000)]
fix returning value