]> granicus.if.org Git - postgresql/log
postgresql
19 years agoDone:
Bruce Momjian [Mon, 27 Jun 2005 02:17:20 +0000 (02:17 +0000)]
Done:
> * -Remove kerberos4 from source tree

19 years agoRemove support for Kerberos V4. It seems no one is using this, it has
Neil Conway [Mon, 27 Jun 2005 02:04:26 +0000 (02:04 +0000)]
Remove support for Kerberos V4. It seems no one is using this, it has
some security issues, and upstream has declared it "dead". Patch from
Magnus Hagander, minor editorialization from Neil Conway.

19 years agoDone:
Bruce Momjian [Mon, 27 Jun 2005 01:53:52 +0000 (01:53 +0000)]
Done:
>  o -Allow PL/pgSQL EXECUTE query_var INTO record_var;

19 years agoRemove the << >> &< and &> operators for contrib/cube, which were
Tom Lane [Mon, 27 Jun 2005 01:19:43 +0000 (01:19 +0000)]
Remove the << >> &< and &> operators for contrib/cube, which were
wrong, but nobody noticed because they were also useless.

19 years agoAdjust contrib/seg &< and &> operators so that r-tree indexing logic
Tom Lane [Mon, 27 Jun 2005 00:48:07 +0000 (00:48 +0000)]
Adjust contrib/seg &< and &> operators so that r-tree indexing logic
works properly for 1-D comparisons.  Fix some other errors such as
bogus commutator specifications.

19 years agoTweak dynahash.c to not allocate so many entries at once when dealing
Tom Lane [Sun, 26 Jun 2005 23:32:34 +0000 (23:32 +0000)]
Tweak dynahash.c to not allocate so many entries at once when dealing
with a table that has a small predicted size.  Avoids wasting several
hundred K on the timezone hash table, which is likely to have only one
or a few entries, but the entries use up 10Kb apiece ...

19 years agoAdd Oracle-compatible GREATEST and LEAST functions. Pavel Stehule
Tom Lane [Sun, 26 Jun 2005 22:05:42 +0000 (22:05 +0000)]
Add Oracle-compatible GREATEST and LEAST functions.  Pavel Stehule

19 years agoCode review for escape-strings patch. Sync psql and plpgsql lexers
Tom Lane [Sun, 26 Jun 2005 19:16:07 +0000 (19:16 +0000)]
Code review for escape-strings patch.  Sync psql and plpgsql lexers
with main, avoid using a SQL-defined SQLSTATE for what is most definitely
not a SQL-compatible error condition, fix documentation omissions,
adhere to message style guidelines, don't use two GUC_REPORT variables
when one is sufficient.  Nothing done about pg_dump issues.

19 years agoFix overlooked regression output file.
Tom Lane [Sun, 26 Jun 2005 17:20:04 +0000 (17:20 +0000)]
Fix overlooked regression output file.

19 years agoAdd E'' syntax so eventually normal strings can treat backslashes
Bruce Momjian [Sun, 26 Jun 2005 03:04:37 +0000 (03:04 +0000)]
Add E'' syntax so eventually normal strings can treat backslashes
literally.

Add GUC variables:

        "escape_string_warning" - warn about backslashes in non-E strings
        "escape_string_syntax" - supports E'' syntax?
        "standard_compliant_strings" - treats backslashes literally in ''

Update code to use E'' when escapes are used.

19 years agoFix a couple of items that should be declared Oid not int. Purely
Tom Lane [Sat, 25 Jun 2005 23:58:58 +0000 (23:58 +0000)]
Fix a couple of items that should be declared Oid not int.  Purely
cosmetic at the moment, but someday Oid might be 64 bits ...

19 years agoRemove forced CHECKPOINT in regression tests --- redundant now that
Tom Lane [Sat, 25 Jun 2005 23:04:06 +0000 (23:04 +0000)]
Remove forced CHECKPOINT in regression tests --- redundant now that
CREATE DATABASE does one internally.

19 years agoForce a checkpoint before committing a CREATE DATABASE command. This
Tom Lane [Sat, 25 Jun 2005 22:47:29 +0000 (22:47 +0000)]
Force a checkpoint before committing a CREATE DATABASE command.  This
should fix the recent reports of "index is not a btree" failures,
as well as preventing a more obscure race condition involving changes
to a template database just after copying it with CREATE DATABASE.

19 years agoFix ancient memory leak in index_create(): RelationInitIndexAccessInfo
Tom Lane [Sat, 25 Jun 2005 16:53:49 +0000 (16:53 +0000)]
Fix ancient memory leak in index_create(): RelationInitIndexAccessInfo
was being called twice in normal operation, leading to a leak of one set
of relcache subsidiary info.  Per report from Jeff Gold.

19 years agoAdd:
Bruce Momjian [Sat, 25 Jun 2005 15:24:11 +0000 (15:24 +0000)]
Add:

>  o Pass arrays natively instead of as text between plperl and postgres
>  o Add support for polymorphic arguments and return types to plperl

19 years agoUpdate:
Bruce Momjian [Sat, 25 Jun 2005 12:37:43 +0000 (12:37 +0000)]
Update:

< * Allow per-user, per-group quotas per-tablespace
> * Allow per-tablespace quotas

19 years agoUpdate:
Bruce Momjian [Sat, 25 Jun 2005 02:42:00 +0000 (02:42 +0000)]
Update:

< * Allow per-user and per-tablespaces quotas
> * Allow per-user, per-group quotas per-tablespace

19 years agoAdd:
Bruce Momjian [Sat, 25 Jun 2005 02:40:43 +0000 (02:40 +0000)]
Add:

> * Allow per-user and per-tablespaces quotas

19 years agoAdd item:
Bruce Momjian [Sat, 25 Jun 2005 01:32:02 +0000 (01:32 +0000)]
Add item:

> * Add NUMERIC division operator that doesn't round?
>
>   Currently NUMERIC _rounds_ the result to the specified precision.
>   This means division can return a result that multiplied by the
>   divisor is greater than the dividend, e.g. this returns a value > 10:
>
>     SELECT (10::numeric(2,0) / 6::numeric(2,0))::numeric(2,0) * 6;
>
>   The positive modulus result returned by NUMERICs might be considered
>   inaccurate, in one sense.
>

19 years agoAdd desciption for terminate:
Bruce Momjian [Fri, 24 Jun 2005 21:28:30 +0000 (21:28 +0000)]
Add desciption for terminate:

>
>   Currently SIGTERM of a backend can lead to lock table corruption.
>

19 years agoExtend r-tree operator classes to handle Y-direction tests equivalent
Tom Lane [Fri, 24 Jun 2005 20:53:34 +0000 (20:53 +0000)]
Extend r-tree operator classes to handle Y-direction tests equivalent
to the existing X-direction tests.  An rtree class now includes 4 actual
2-D tests, 4 1-D X-direction tests, and 4 1-D Y-direction tests.
This involved adding four new Y-direction test operators for each of
box and polygon; I followed the PostGIS project's lead as to the names
of these operators.
NON BACKWARDS COMPATIBLE CHANGE: the poly_overleft (&<) and poly_overright
(&>) operators now have semantics comparable to box_overleft and box_overright.
This is necessary to make r-tree indexes work correctly on polygons.
Also, I changed circle_left and circle_right to agree with box_left and
box_right --- formerly they allowed the boundaries to touch.  This isn't
actually essential given the lack of any r-tree opclass for circles, but
it seems best to sync all the definitions while we are at it.

19 years agounbreak unicode/utf8 test
Tatsuo Ishii [Fri, 24 Jun 2005 15:12:00 +0000 (15:12 +0000)]
unbreak unicode/utf8 test

19 years agoRemove overspecification of precision of CURRENT_TIMESTAMP, LOCALTIMESTAMP,
Tom Lane [Fri, 24 Jun 2005 14:28:06 +0000 (14:28 +0000)]
Remove overspecification of precision of CURRENT_TIMESTAMP, LOCALTIMESTAMP,
CURRENT_TIME, and LOCALTIME: now they just produce "timestamptz" not
"timestamptz(6)", etc.  This makes the behavior more consistent with our
choice to not assign a specific default precision to column datatypes.
It should also save a few cycles at runtime due to not having to invoke
the round-to-given-precision functions.
I also took the opportunity to translate CURRENT_TIMESTAMP into "now()"
instead of an invocation of the timestamptz input converter --- this should
save a few cycles too.

19 years agoAllow direct conversion between EUC_JP and SJIS to improve
Tatsuo Ishii [Fri, 24 Jun 2005 13:56:39 +0000 (13:56 +0000)]
Allow direct conversion between EUC_JP and SJIS to improve
performance. patches submitted by Atsushi Ogawa.

19 years agoRemove TODO.detail rtree now that item is fixed.
Bruce Momjian [Fri, 24 Jun 2005 04:42:58 +0000 (04:42 +0000)]
Remove TODO.detail rtree now that item is fixed.

19 years agoDone:
Bruce Momjian [Fri, 24 Jun 2005 04:41:16 +0000 (04:41 +0000)]
Done:

> * -Fix incorrect rtree results due to wrong assumptions about "over"
>   operator semantics

19 years agoCompleted:
Bruce Momjian [Fri, 24 Jun 2005 02:30:43 +0000 (02:30 +0000)]
Completed:

< * Allow REINDEX to rebuild all database indexes, remove /contrib/reindex
> * -Allow REINDEX to rebuild all database indexes

19 years agoAdd:
Bruce Momjian [Fri, 24 Jun 2005 02:07:19 +0000 (02:07 +0000)]
Add:

> * Add program to test if fsync has a delay compared to non-fsync

19 years agoCode cleanup: remove 3 duplicate static function declarations.
Neil Conway [Fri, 24 Jun 2005 01:10:11 +0000 (01:10 +0000)]
Code cleanup: remove 3 duplicate static function declarations.

19 years agoThis trivial patch removes an unused variable. From Alvaro Herrera.
Neil Conway [Fri, 24 Jun 2005 01:06:26 +0000 (01:06 +0000)]
This trivial patch removes an unused variable. From Alvaro Herrera.

19 years agoFix rtree and contrib/rtree_gist search behavior for the 1-D box and
Tom Lane [Fri, 24 Jun 2005 00:18:52 +0000 (00:18 +0000)]
Fix rtree and contrib/rtree_gist search behavior for the 1-D box and
polygon operators (<<, &<, >>, &>).  Per ideas originally put forward
by andrew@supernews and later rediscovered by moi.  This patch just
fixes the existing opclasses, and does not add any new behavior as I
proposed earlier; that can be sorted out later.  In principle this
could be back-patched, since it changes only search behavior and not
system catalog entries nor rtree index contents.  I'm not currently
planning to do that, though, since I think it could use more testing.

19 years agoUpdate text of terminate:
Bruce Momjian [Thu, 23 Jun 2005 21:28:10 +0000 (21:28 +0000)]
Update text of terminate:

< * Allow administrators to safely terminate individual sessions
<
<   Right now, SIGTERM will terminate a session, but it is treated as
<   though the postmaster has paniced and shared memory might not be
<   cleaned up properly.  A new signal is needed for safe termination
<   because backends must first do a query cancel, then exit once they
<   have run the query cancel cleanup routine.
<
> * Allow administrators to safely terminate individual sessions either
>   via an SQL function or SIGTERM

19 years agoMove findoidjoins out of contrib and into src/tools, which is a more
Tom Lane [Thu, 23 Jun 2005 02:33:28 +0000 (02:33 +0000)]
Move findoidjoins out of contrib and into src/tools, which is a more
logical place for it since it is of no use to users.  Per recent
discussions on cleaning up contrib.

19 years agoCleanup the contrib/lo module: there is no need anymore to implement
Tom Lane [Thu, 23 Jun 2005 00:06:37 +0000 (00:06 +0000)]
Cleanup the contrib/lo module: there is no need anymore to implement
a physically separate type.  Defining 'lo' as a domain over OID works
just fine and is more efficient.  Improve documentation and fix up the
test script.  (Would like to turn test script into a proper regression
test, but right now its output is not constant because of numeric OIDs;
plus it makes Unix-specific assumptions about files it can import.)

19 years agoRemove contrib modules that have been agreed to be obsolete.
Tom Lane [Wed, 22 Jun 2005 22:56:29 +0000 (22:56 +0000)]
Remove contrib modules that have been agreed to be obsolete.
(There are more that will be removed once they've been copied to
pgfoundry.org.)

19 years agoMake REINDEX DATABASE do what one would expect, namely reindex all indexes
Tom Lane [Wed, 22 Jun 2005 21:14:31 +0000 (21:14 +0000)]
Make REINDEX DATABASE do what one would expect, namely reindex all indexes
in the database.  The old behavior (reindex system catalogs only) is now
available as REINDEX SYSTEM.  I did not add the complementary REINDEX USER
case since there did not seem to be consensus for this, but it would be
trivial to add later.  Per recent discussions.

19 years agoFix the mechanism for reporting the original table OID and column number
Tom Lane [Wed, 22 Jun 2005 17:45:46 +0000 (17:45 +0000)]
Fix the mechanism for reporting the original table OID and column number
of columns of a query result so that it can "see through" cursors and
prepared statements.  Per gripe a couple months back from John DeSoi.

19 years agoAdd a validator function for plperl. Andrew Dunstan
Tom Lane [Wed, 22 Jun 2005 16:45:51 +0000 (16:45 +0000)]
Add a validator function for plperl.  Andrew Dunstan

19 years agoAdd a hack requested by the JDBC driver writers: when a function's
Tom Lane [Wed, 22 Jun 2005 15:19:43 +0000 (15:19 +0000)]
Add a hack requested by the JDBC driver writers: when a function's
argument list contains parameter symbols ($n) declared as type VOID,
discard these arguments.  This allows the driver to avoid renumbering
mixed IN and OUT argument placeholders (the JDBC syntax involves writing
? for both IN and OUT parameters, but on the server side we don't think
that OUT parameters are arguments).  This doesn't break any currently-
useful cases since VOID is not used as an input argument type.

19 years agoFix bug in CONTINUE statement for PL/pgSQL: when we continue a loop,
Neil Conway [Wed, 22 Jun 2005 07:28:47 +0000 (07:28 +0000)]
Fix bug in CONTINUE statement for PL/pgSQL: when we continue a loop,
we need to be careful to reset rc to PLPGSQL_RC_OK, depending on how
the loop's logic is structured. If we continue a loop but it then
exits without executing the loop's body again, we want to return
PLPGSQL_RC_OK to our caller.  Enhance the regression tests to catch
this problem. Per report from Michael Fuhr.

19 years agoCorrect some code in pg_restore when reading the header of a tar archive:
Neil Conway [Wed, 22 Jun 2005 02:00:47 +0000 (02:00 +0000)]
Correct some code in pg_restore when reading the header of a tar archive:

(1) The code doesn't initialize `sum', so the initial "does the checksum
    match?" test is wrong.

(2) The loop that is intended to check for a "null block" just checks
    the first byte of the tar block 512 times, rather than each of the
    512 bytes one time (!), which I'm guessing was the intent.

It was only through sheer luck that this worked in the first place.

Per Coverity static analysis performed by EnterpriseDB.

19 years agoMore trivial dead code removal: in int_to_roman(), checking for "num == -1"
Neil Conway [Wed, 22 Jun 2005 01:43:05 +0000 (01:43 +0000)]
More trivial dead code removal: in int_to_roman(), checking for "num == -1"
is redundant after a check has already been made for "num < 0". The "set"
variable can also be removed, as it is now no longer used. Per checking
with Karel, this is the right fix.

Per Coverity static analysis performed by EnterpriseDB.

19 years agoAdd a CONTINUE statement to PL/PgSQL, which can be used to begin the
Neil Conway [Wed, 22 Jun 2005 01:35:03 +0000 (01:35 +0000)]
Add a CONTINUE statement to PL/PgSQL, which can be used to begin the
next iteration of a loop. Update documentation and add regression tests.
Patch from Pavel Stehule, reviewed by Neil Conway.

19 years agopg_dump can now dump large objects even in plain-text output mode, by
Tom Lane [Tue, 21 Jun 2005 20:45:44 +0000 (20:45 +0000)]
pg_dump can now dump large objects even in plain-text output mode, by
using the recently added lo_create() function.  The restore logic in
pg_restore is greatly simplified as well, since there's no need anymore
to try to adjust database references to match a new set of blob OIDs.

19 years agoFix pg_dumpall to do the right thing with "postgres" database, per
Tom Lane [Tue, 21 Jun 2005 15:22:18 +0000 (15:22 +0000)]
Fix pg_dumpall to do the right thing with "postgres" database, per
Dave Page.  Also, cause it to emit rather than ignore any ACL and
datconfig options that may be set for these two databases.

19 years agoCause initdb to create a third standard database "postgres", which
Tom Lane [Tue, 21 Jun 2005 04:02:34 +0000 (04:02 +0000)]
Cause initdb to create a third standard database "postgres", which
unlike template0 and template1 does not have any special status in
terms of backend functionality.  However, all external utilities such
as createuser and createdb now connect to "postgres" instead of
template1, and the documentation is changed to encourage people to use
"postgres" instead of template1 as a play area.  This should fix some
longstanding gotchas involving unexpected propagation of database
objects by createdb (when you used template1 without understanding
the implications), as well as ameliorating the problem that CREATE
DATABASE is unhappy if anyone else is connected to template1.
Patch by Dave Page, minor editing by Tom Lane.  All per recent
pghackers discussions.

19 years agoFix a potential backend crash during authentication when parsing a
Neil Conway [Tue, 21 Jun 2005 01:20:09 +0000 (01:20 +0000)]
Fix a potential backend crash during authentication when parsing a
malformed ident map file.  This was introduced by the linked list
rewrite in 8.0 -- mea maxima culpa.

Per Coverity static analysis performed by EnterpriseDB.

19 years agoTrivial dead code removal: in CreateSchemaCommand(), 'owner_name' is
Neil Conway [Tue, 21 Jun 2005 00:58:15 +0000 (00:58 +0000)]
Trivial dead code removal: in CreateSchemaCommand(), 'owner_name' is
only used in one branch of an if statement, so we can move its
declaration to that block. This also avoids an unnecessary syscache
lookup.

Per Coverity static analysis performed by EnterpriseDB.

19 years agoTrivial dead code removal: in _complete_from_query(), 'text' cannot be
Neil Conway [Tue, 21 Jun 2005 00:48:33 +0000 (00:48 +0000)]
Trivial dead code removal: in _complete_from_query(), 'text' cannot be
NULL (e.g. due to the preceding strlen()). Therefore we needn't recheck
this before initializing 'e_text'.

Per Coverity static analysis performed by EnterpriseDB.

19 years agoTrivial dead code removal: in makeObjectName(), name1 must be non-NULL
Neil Conway [Tue, 21 Jun 2005 00:35:05 +0000 (00:35 +0000)]
Trivial dead code removal: in makeObjectName(), name1 must be non-NULL
(due to the preceding strlen(), for example), so we needn't recheck this
before invoking pg_mbcliplen().

Per Coverity static analysis performed by EnterpriseDB.

19 years agoexec_eval_datum leaks memory when dealing with ROW or REC values.
Tom Lane [Mon, 20 Jun 2005 22:51:29 +0000 (22:51 +0000)]
exec_eval_datum leaks memory when dealing with ROW or REC values.
It never leaked memory before PG 8.0, so none of the callers are
expecting this.  Cleanest fix seems to be to make it allocate the needed
memory in estate->eval_econtext, where it will be cleaned up by
the next exec_eval_cleanup.  Per report from Bill Rugolsky.

19 years agoRemove read_file/write_file tests. These were originally intended to
Tom Lane [Mon, 20 Jun 2005 21:14:01 +0000 (21:14 +0000)]
Remove read_file/write_file tests.  These were originally intended to
*fail*, to test that plpython didn't allow untrusted operations.
When we changed plpython to plpythonu because python didn't actually have
a secure sandbox mode, someone (probably me :-() misinterpreted the tests
as checking whether Python's file I/O works.  Which is a stupid thing for
us to be testing.  Remove it so we don't clutter the filesystem with
random temporary files.

19 years agoplpgsql's exec_assign_value() freed the old value of a variable before
Tom Lane [Mon, 20 Jun 2005 20:44:44 +0000 (20:44 +0000)]
plpgsql's exec_assign_value() freed the old value of a variable before
copying/converting the new value, which meant that it failed badly on
"var := var" if var is of pass-by-reference type.  Fix this and a similar
hazard in exec_move_row(); not sure that the latter can manifest before
8.0, but patch it all the way back anyway.  Per report from Dave Chapeskie.

19 years agoAvoid WAL-logging individual tuple insertions during CREATE TABLE AS
Tom Lane [Mon, 20 Jun 2005 18:37:02 +0000 (18:37 +0000)]
Avoid WAL-logging individual tuple insertions during CREATE TABLE AS
(a/k/a SELECT INTO).  Instead, flush and fsync the whole relation before
committing.  We do still need the WAL log when PITR is active, however.
Simon Riggs and Tom Lane.

19 years agofix founded hole in recovery after crash, add vacuum_delay_point()
Teodor Sigaev [Mon, 20 Jun 2005 15:22:38 +0000 (15:22 +0000)]
fix founded hole in recovery after crash, add vacuum_delay_point()

19 years agoRemove statement that GiST indexes aren't WAL-logged.
Tom Lane [Mon, 20 Jun 2005 14:53:32 +0000 (14:53 +0000)]
Remove statement that GiST indexes aren't WAL-logged.

19 years agoUpdate text that stated GiST indexes aren't WAL-logged.
Tom Lane [Mon, 20 Jun 2005 13:52:17 +0000 (13:52 +0000)]
Update text that stated GiST indexes aren't WAL-logged.

19 years ago1. full functional WAL for GiST
Teodor Sigaev [Mon, 20 Jun 2005 10:29:37 +0000 (10:29 +0000)]
1. full functional WAL for GiST
2. improve vacuum for gist
   - use FSM
   - full vacuum:
      - reforms parent tuple if it's needed
        ( tuples was deleted on child page or parent tuple remains invalid
          after crash recovery )
      - truncate index file if possible
3. fixes bugs and mistakes

19 years agoCosmetic improvements to the timezone code: remove the use of the
Neil Conway [Mon, 20 Jun 2005 08:00:51 +0000 (08:00 +0000)]
Cosmetic improvements to the timezone code: remove the use of the
'register' qualifier, make some function declarations more consistent,
and so on.

19 years agoChange shell syntax that seems not to work right on FreeBSD 6-CURRENT
Tom Lane [Mon, 20 Jun 2005 02:26:50 +0000 (02:26 +0000)]
Change shell syntax that seems not to work right on FreeBSD 6-CURRENT
buildfarm machines.

19 years agoAdd lock file contents printout to "can't happen" case to help
Tom Lane [Mon, 20 Jun 2005 02:17:30 +0000 (02:17 +0000)]
Add lock file contents printout to "can't happen" case to help
investigate buildfarm failures.

19 years agoTrivial code clarity improvement to UpdateStats(); no functional change.
Neil Conway [Mon, 20 Jun 2005 02:07:47 +0000 (02:07 +0000)]
Trivial code clarity improvement to UpdateStats(); no functional change.

19 years agoFix bogus assumption that sizeof() produces an int-sized result.
Tom Lane [Mon, 20 Jun 2005 00:32:22 +0000 (00:32 +0000)]
Fix bogus assumption that sizeof() produces an int-sized result.

19 years agoMinor documentation update for RAISE expression patch.
Neil Conway [Sun, 19 Jun 2005 23:39:05 +0000 (23:39 +0000)]
Minor documentation update for RAISE expression patch.

19 years agoAvoid unnecessary palloc overhead in _bt_first(). The temporary
Tom Lane [Sun, 19 Jun 2005 22:41:00 +0000 (22:41 +0000)]
Avoid unnecessary palloc overhead in _bt_first().  The temporary
scankeys arrays that it needs can never have more than INDEX_MAX_KEYS
entries, so it's reasonable to just allocate them as fixed-size local
arrays, and save the cost of palloc/pfree.  Not a huge savings, but
a cycle saved is a cycle earned ...

19 years agoNeed #include <time.h> on some platforms.
Tom Lane [Sun, 19 Jun 2005 22:34:56 +0000 (22:34 +0000)]
Need #include <time.h> on some platforms.

19 years agoSimplify uses of readdir() by creating a function ReadDir() that
Tom Lane [Sun, 19 Jun 2005 21:34:03 +0000 (21:34 +0000)]
Simplify uses of readdir() by creating a function ReadDir() that
includes error checking and an appropriate ereport(ERROR) message.
This gets rid of rather tedious and error-prone manipulation of errno,
as well as a Windows-specific bug workaround, at more than a dozen
call sites.  After an idea in a recent patch by Heikki Linnakangas.

19 years agoArrange to fsync two-phase-commit state files only during checkpoints;
Tom Lane [Sun, 19 Jun 2005 20:00:39 +0000 (20:00 +0000)]
Arrange to fsync two-phase-commit state files only during checkpoints;
given reasonably short lifespans for prepared transactions, this should
mean that only a small minority of state files ever need to be fsynced
at all.  Per discussion with Heikki Linnakangas.

19 years agoAdd comment about \# in bcc makefiles.
Bruce Momjian [Sun, 19 Jun 2005 13:14:20 +0000 (13:14 +0000)]
Add comment about \# in bcc makefiles.

19 years agoCleanup for Win32 compile.
Bruce Momjian [Sun, 19 Jun 2005 13:10:56 +0000 (13:10 +0000)]
Cleanup for Win32 compile.

Andreas Pflug

19 years agoFix typo in comment.
Bruce Momjian [Sun, 19 Jun 2005 01:06:12 +0000 (01:06 +0000)]
Fix typo in comment.

Michael Fuhr

19 years agoWhen using C-string lookup keys in a dynahash.c hash table, use strncpy()
Tom Lane [Sat, 18 Jun 2005 20:51:30 +0000 (20:51 +0000)]
When using C-string lookup keys in a dynahash.c hash table, use strncpy()
not memcpy() to copy the offered key into the hash table during HASH_ENTER.
This avoids possible core dump if the passed key is located very near the
end of memory.  Per report from Stefan Kaltenbrunner.

19 years agoAdd a time-of-preparation column to the pg_prepared_xacts view, per an
Tom Lane [Sat, 18 Jun 2005 19:33:42 +0000 (19:33 +0000)]
Add a time-of-preparation column to the pg_prepared_xacts view, per an
old suggestion by Oliver Jowett.  Also, add a transaction column to the
pg_locks view to show the xid of each transaction holding or awaiting
locks; this allows prepared transactions to be properly associated with
the locks they own.  There was already a column named 'transaction',
and I chose to rename it to 'transactionid' --- since this column is
new in the current devel cycle there should be no backwards compatibility
issue to worry about.

19 years agoDept. of second thoughts: regular COMMIT deletes deletable files before
Tom Lane [Sat, 18 Jun 2005 05:21:09 +0000 (05:21 +0000)]
Dept. of second thoughts: regular COMMIT deletes deletable files before
releasing locks, so COMMIT PREPARED should too.

19 years agoRemove 2phase commit TODO.detail.
Bruce Momjian [Sat, 18 Jun 2005 01:51:03 +0000 (01:51 +0000)]
Remove 2phase commit TODO.detail.

19 years agoRemove TODO.detail.
Bruce Momjian [Sat, 18 Jun 2005 01:45:58 +0000 (01:45 +0000)]
Remove TODO.detail.
< * -Add two-phase commit [2phase]
> * -Add two-phase commit

19 years agoDone:
Bruce Momjian [Sat, 18 Jun 2005 01:45:03 +0000 (01:45 +0000)]
Done:

< * Add two-phase commit [2phase]
> * -Add two-phase commit [2phase]

19 years agoTwo-phase commit. Original patch by Heikki Linnakangas, with additional
Tom Lane [Fri, 17 Jun 2005 22:32:51 +0000 (22:32 +0000)]
Two-phase commit.  Original patch by Heikki Linnakangas, with additional
hacking by Alvaro Herrera and Tom Lane.

19 years agoRe-order item.
Bruce Momjian [Fri, 17 Jun 2005 19:20:27 +0000 (19:20 +0000)]
Re-order item.

> * Auto-fill the free space map by scanning the buffer cache or by
>   checking pages written by the background writer
< * Auto-fill the free space map by scanning the buffer cache or by
<   checking pages written by the background writer

19 years agoMove item:
Bruce Momjian [Fri, 17 Jun 2005 13:47:24 +0000 (13:47 +0000)]
Move item:

* Auto-fill the free space map by scanning the buffer cache or by
  checking pages written by the background writer

19 years agoUpdate NetBSD 'options' description.
Bruce Momjian [Fri, 17 Jun 2005 13:12:01 +0000 (13:12 +0000)]
Update NetBSD 'options' description.

Kris Jurka

19 years agoImprove wording of read-only GUC variables; shows -> reports.
Bruce Momjian [Fri, 17 Jun 2005 03:25:51 +0000 (03:25 +0000)]
Improve wording of read-only GUC variables;  shows -> reports.

19 years agoAdd:
Bruce Momjian [Fri, 17 Jun 2005 02:20:43 +0000 (02:20 +0000)]
Add:

>
> * Create a bitmap of pages that need vacuuming
>
>   Instead of sequentially scanning the entire table, have the background
>   writer or some other process record pages that have expired rows, then
>   VACUUM can look at just those pages rather than the entire table.  In
>   the event of a system crash, the bitmap would probably be invalidated.

19 years agoUpdate GUC description for kerberos usernames.
Bruce Momjian [Thu, 16 Jun 2005 20:47:20 +0000 (20:47 +0000)]
Update GUC description for kerberos usernames.

19 years agoAdd fsync() define for Win32 to cover cases other than wal_sync_method
Bruce Momjian [Thu, 16 Jun 2005 17:53:54 +0000 (17:53 +0000)]
Add fsync() define for Win32 to cover cases other than wal_sync_method
where we need fsync().

19 years agoAdd \x hex support to ecpg strings. This just passes them to the backend.
Bruce Momjian [Thu, 16 Jun 2005 01:43:48 +0000 (01:43 +0000)]
Add \x hex support to ecpg strings.  This just passes them to the backend.

19 years agoMove SYMMETRIC/ASYMMETRIC to reserved words to avoid shift/reduce conflicts.
Bruce Momjian [Wed, 15 Jun 2005 19:44:05 +0000 (19:44 +0000)]
Move SYMMETRIC/ASYMMETRIC to reserved words to avoid shift/reduce conflicts.

19 years agoImprove comment wording.
Bruce Momjian [Wed, 15 Jun 2005 16:28:06 +0000 (16:28 +0000)]
Improve comment wording.

19 years agoImprove hash method for bitmapsets: some examination of actual outputs
Tom Lane [Wed, 15 Jun 2005 16:24:07 +0000 (16:24 +0000)]
Improve hash method for bitmapsets: some examination of actual outputs
shows that adding a circular shift between words greatly improves the
distribution of hash outputs.

19 years agoFix display of database name during autovacuum.
Bruce Momjian [Wed, 15 Jun 2005 13:55:23 +0000 (13:55 +0000)]
Fix display of database name during autovacuum.

 Cosimo Streppone

19 years agoUpdate catalog version for recent function additions.
Bruce Momjian [Wed, 15 Jun 2005 12:56:35 +0000 (12:56 +0000)]
Update catalog version for recent function additions.

19 years agoChange the implementation of hash join to attempt to avoid unnecessary
Neil Conway [Wed, 15 Jun 2005 07:27:44 +0000 (07:27 +0000)]
Change the implementation of hash join to attempt to avoid unnecessary
work if either of the join relations are empty. The logic is:

(1) if the inner relation's startup cost is less than the outer
    relation's startup cost and this is not an outer join, read
    a single tuple from the inner relation via ExecHash()
      - if NULL, we're done

(2) read a single tuple from the outer relation
      - if NULL, we're done

(3) build the hash table on the inner relation
      - if hash table is empty and this is not an outer join,
        we're done

(4) otherwise, do hash join as usual

The implementation uses the new MultiExecProcNode API, per a
suggestion from Tom: invoking ExecHash() now produces the first
tuple from the Hash node's child node, whereas MultiExecHash()
builds the hash table.

I had to put in a bit of a kludge to get the row count returned
for EXPLAIN ANALYZE to be correct: since ExecHash() is invoked to
return a tuple, and then MultiExecHash() is invoked, we would
return one too many tuples to EXPLAIN ANALYZE. I hacked around
this by just manually detecting this situation and subtracting 1
from the EXPLAIN ANALYZE row count.

19 years agoMinor SGML markup cleanup.
Neil Conway [Wed, 15 Jun 2005 06:29:25 +0000 (06:29 +0000)]
Minor SGML markup cleanup.

19 years agoRemove old *.backup files when we do pg_stop_backup(). This
Bruce Momjian [Wed, 15 Jun 2005 01:36:08 +0000 (01:36 +0000)]
Remove old *.backup files when we do pg_stop_backup().  This
prevents a large number of *.backup files from existing in pg_xlog/

19 years agoMention we now support BETWEEN SYMMETRIC.
Bruce Momjian [Wed, 15 Jun 2005 01:28:43 +0000 (01:28 +0000)]
Mention we now support BETWEEN SYMMETRIC.

Christopher Kings-Lynne

19 years ago> Here's a patch I added against plperl, originally against beta5, now
Bruce Momjian [Wed, 15 Jun 2005 00:35:16 +0000 (00:35 +0000)]
> Here's a patch I added against plperl, originally against beta5, now
> against rc1. It simply checks with GetDatabaseEncoding() if the current
> database is in UTF-8, and if so, sets the UTF-8 flag on the arguments
> that are passed to perl. This means that it isn't necessary to
> utf8::upgrade() every string, as perl has no way of knowing offhand
> that a string is UTF-8 -- but postgres does, because the database
> encoding is specified, so it makes sense to turn the flag on. You
> should also be able to properly manipulate UTF-8 strings now from
> plperl as opposed to plperlu, because otherwise you'd have to use
> encoding 'utf8' which was not allowed. It could also eliminate some
> unexpected bugs if you assume that perl knows the string is unicode.
It
> is enabled only for perl 5.6 and higher, so earlier versions will not
> be affected.
>
> I have been assured by crab that the patch is quite harmless and will
> not break anything. It would be great to see it in 8 final! :-)

David Kamholz

19 years agoThis patch makes it possible to use the full set of timezones when doing
Bruce Momjian [Wed, 15 Jun 2005 00:34:11 +0000 (00:34 +0000)]
This patch makes it possible to use the full set of timezones when doing
"AT TIME ZONE", and not just the shorlist previously available. For
example:

SELECT CURRENT_TIMESTAMP AT TIME ZONE 'Europe/London';

works fine now. It will also obey whatever DST rules were in effect at
just that date, which the previous implementation did not.

It also supports the AT TIME ZONE on the timetz datatype. The whole
handling of DST is a bit bogus there, so I chose to make it use whatever
DST rules are in effect at the time of executig the query. not sure if
anybody is actuallyi *using* timetz though, it seems pretty
unpredictable just because of this...

Magnus Hagander

19 years agoSupport 3 and 4-byte unicode characters.
Bruce Momjian [Wed, 15 Jun 2005 00:15:08 +0000 (00:15 +0000)]
Support 3 and 4-byte unicode characters.

John Hansen

19 years ago>> Do you agree that using a hashtable for it in general is a good idea
Bruce Momjian [Wed, 15 Jun 2005 00:09:26 +0000 (00:09 +0000)]
>> Do you agree that using a hashtable for it in general is a good idea
>> assuming this sideeffect is removed, though?
>
>I have no problem with the hashtable, only with preloading it with
>everything.  What I'd like to see is that the table inherited at fork()
>contains just the data for the default timezone.  (At least in the
>normal case where that setting hasn't been changed since postmaster
>start.)

Here's a patch doing this. Changes score_timezone not to use pg_tzset(),
and thus not loading all the zones in the cache. The actual timezone
being picked will be set using set_global_timezone() which in turn calls
pg_tzset() and loads it in the cache.

Magnus Hagander

19 years agoNow \d show tablespace of indices per discussion.
Bruce Momjian [Tue, 14 Jun 2005 23:59:31 +0000 (23:59 +0000)]
Now \d show tablespace of indices per discussion.

test=# \d e
       Table "public.e"
 Column |  Type   | Modifiers
--------+---------+-----------
 i      | integer | not null
 j      | integer | not null
 k      | integer |
Indexes:
    "e_pkey" PRIMARY KEY, btree (i, j), tablespace "haha"
    "ei" btree (i)
    "ej" btree (j), tablespace "haha"
    "ek" btree (k)
Tablespace: "haha"

Qingqing Zhou