]> granicus.if.org Git - postgresql/log
postgresql
18 years agoAvoid useless loop overhead in AtEOXact routines when the backend is
Tom Lane [Mon, 8 Aug 2005 19:44:22 +0000 (19:44 +0000)]
Avoid useless loop overhead in AtEOXact routines when the backend is
compiled with USE_ASSERT_CHECKING but is running with assert_enabled false.

18 years agoModify AtEOXact_CatCache and AtEOXact_RelationCache to assume that the
Tom Lane [Mon, 8 Aug 2005 19:17:23 +0000 (19:17 +0000)]
Modify AtEOXact_CatCache and AtEOXact_RelationCache to assume that the
ResourceOwner mechanism already released all reference counts for the
cache entries; therefore, we do not need to scan the catcache or relcache
at transaction end, unless we want to do it as a debugging crosscheck.
Do the crosscheck only in Assert mode.  This is the same logic we had
previously installed in AtEOXact_Buffers to avoid overhead with large
numbers of shared buffers.  I thought it'd be a good idea to do it here
too, in view of Kari Lavikka's recent report showing a real-world case
where AtEOXact_CatCache is taking a significant fraction of runtime.

18 years agoCygwin no longer needs to hack SHLIB_LINK, now that Rocco Altier
Tom Lane [Mon, 8 Aug 2005 03:35:13 +0000 (03:35 +0000)]
Cygwin no longer needs to hack SHLIB_LINK, now that Rocco Altier
fixed the contrib library inclusions properly.

18 years agoCause ShutdownPostgres to do a normal transaction abort during backend
Tom Lane [Mon, 8 Aug 2005 03:12:16 +0000 (03:12 +0000)]
Cause ShutdownPostgres to do a normal transaction abort during backend
exit, instead of trying to take shortcuts.  Introduce some additional
shutdown callback routines to eliminate kluges like having ProcKill
be responsible for shutting down the buffer manager.  Ensure that the
order of operations during shutdown is predictable and what you would
expect given the module layering.

18 years agoSet shlib naming convention on Cygwin to 'cygFOO.dll', which appears
Tom Lane [Sun, 7 Aug 2005 19:02:08 +0000 (19:02 +0000)]
Set shlib naming convention on Cygwin to 'cygFOO.dll', which appears
to be the platform standard.  This should fix recursive-rule breakage
due to recent Makefile changes.  Per discussion.

18 years agoFix count_usable_fds() to stop trying to open files once it reaches
Tom Lane [Sun, 7 Aug 2005 18:47:19 +0000 (18:47 +0000)]
Fix count_usable_fds() to stop trying to open files once it reaches
max_files_per_process.  Going further than that is just a waste of
cycles, and it seems that current Cygwin does not cope gracefully
with deliberately running the system out of FDs.  Per Andrew Dunstan.

18 years agoCOPY performance improvements. Avoid calling CopyGetData for each input
Tom Lane [Sat, 6 Aug 2005 20:41:58 +0000 (20:41 +0000)]
COPY performance improvements.  Avoid calling CopyGetData for each input
character, tighten the inner loops of CopyReadLine and CopyReadAttribute,
arrange to parse out all the attributes of a line in just one call instead
of one CopyReadAttribute call per attribute, be smarter about which client
encodings require slow pg_encoding_mblen() loops.  Also, clean up the
mishmash of static variables and overly-long parameter lists in favor of
passing around a single CopyState struct containing all the state data.
Original patch by Alon Goldshuv, reworked by Tom Lane.

18 years agoActually, this macro had worse problems than a bogus name ...
Tom Lane [Fri, 5 Aug 2005 15:01:48 +0000 (15:01 +0000)]
Actually, this macro had worse problems than a bogus name ...

18 years agoFix misspelled macro name. Doesn't appear to be used anywhere yet,
Tom Lane [Fri, 5 Aug 2005 14:36:43 +0000 (14:36 +0000)]
Fix misspelled macro name.  Doesn't appear to be used anywhere yet,
so no one noticed.

18 years agoALTER TABLE OWNER must change the ownership of the table's rowtype too.
Tom Lane [Thu, 4 Aug 2005 01:09:29 +0000 (01:09 +0000)]
ALTER TABLE OWNER must change the ownership of the table's rowtype too.
This was not especially critical before, but it is now that we track
ownership dependencies --- the dependency for the rowtype *must* shift
to the new owner.  Spotted by Bernd Helmle.
Also fix a problem introduced by recent change to allow non-superusers
to do ALTER OWNER in some cases: if the table had a toast table, ALTER
OWNER failed *even for superusers*, because the test being applied would
conclude that the new would-be owner had no create rights on pg_toast.
A side-effect of the fix is to disallow changing the ownership of indexes
or toast tables separately from their parent table, which seems a good
idea on the whole.

18 years agoDone:
Bruce Momjian [Wed, 3 Aug 2005 01:46:25 +0000 (01:46 +0000)]
Done:

< * Prevent inherited tables from expanding temporary subtables of other
> * -Prevent inherited tables from expanding temporary subtables of other

18 years agoTweak BgBufferSync() so that a persistent write error on a dirty buffer
Tom Lane [Tue, 2 Aug 2005 20:52:08 +0000 (20:52 +0000)]
Tweak BgBufferSync() so that a persistent write error on a dirty buffer
doesn't block the bgwriter from making progress writing out other buffers.
This was a hard problem in the context of the ARC/2Q design, but it's
trivial in the context of clock sweep ... just advance the sweep counter
before we try to write not after.

18 years agoPrevent planner from including temp tables of other backends when expanding
Tom Lane [Tue, 2 Aug 2005 20:27:45 +0000 (20:27 +0000)]
Prevent planner from including temp tables of other backends when expanding
an inheritance tree.  Per recent discussions.

18 years agoClean up CREATE DATABASE processing to make it more robust and get rid
Tom Lane [Tue, 2 Aug 2005 19:02:32 +0000 (19:02 +0000)]
Clean up CREATE DATABASE processing to make it more robust and get rid
of special case for Windows port.  Put a PG_TRY around most of createdb()
to ensure that we remove copied subdirectories on failure, even if the
failure happens while creating the pg_database row.  (I think this explains
Oliver Siegmar's recent report.)  Having done that, there's no need for
the fragile assumption that copydir() mustn't ereport(ERROR), so simplify
its API.  Eliminate the old code that used system("cp ...") to copy
subdirectories, in favor of using copydir() on all platforms.  This not
only should allow much better error reporting, but allows us to fsync
the created files before trusting that the copy has succeeded.

18 years agoCode and docs review for pg_column_size() patch.
Tom Lane [Tue, 2 Aug 2005 16:11:57 +0000 (16:11 +0000)]
Code and docs review for pg_column_size() patch.

18 years agoUse ReadDir() not readdir() so as to have some modicum of error checking.
Tom Lane [Tue, 2 Aug 2005 15:17:24 +0000 (15:17 +0000)]
Use ReadDir() not readdir() so as to have some modicum of error checking.

18 years agoAdd ERROR_NO_MORE_FILES workaround to check_data_dir(). This may or
Tom Lane [Tue, 2 Aug 2005 15:16:27 +0000 (15:16 +0000)]
Add ERROR_NO_MORE_FILES workaround to check_data_dir().  This may or
may not be obsolete, but since every other readdir loop in our code
has it, I think this should too.

18 years agormtree() reported the wrong pathname if final rmdir failed.
Tom Lane [Tue, 2 Aug 2005 15:14:47 +0000 (15:14 +0000)]
rmtree() reported the wrong pathname if final rmdir failed.

18 years agoUn-Windows-ify newlines.
Tom Lane [Tue, 2 Aug 2005 14:07:27 +0000 (14:07 +0000)]
Un-Windows-ify newlines.

18 years agoAdd NOWAIT option to SELECT FOR UPDATE/SHARE.
Tom Lane [Mon, 1 Aug 2005 20:31:16 +0000 (20:31 +0000)]
Add NOWAIT option to SELECT FOR UPDATE/SHARE.
Original patch by Hans-Juergen Schoenig, revisions by Karel Zak
and Tom Lane.

18 years agonor -> or.
Bruce Momjian [Mon, 1 Aug 2005 19:38:03 +0000 (19:38 +0000)]
nor -> or.

18 years agoDocumentation for ALTER object SET SCHEMA commands. Also some minor
Tom Lane [Mon, 1 Aug 2005 16:11:14 +0000 (16:11 +0000)]
Documentation for ALTER object SET SCHEMA commands.  Also some minor
editorialization.

18 years agoDone:
Bruce Momjian [Mon, 1 Aug 2005 14:13:30 +0000 (14:13 +0000)]
Done:

> * -Allow limits on per-db/role connections

18 years agoDone:
Bruce Momjian [Mon, 1 Aug 2005 14:05:03 +0000 (14:05 +0000)]
Done:

<  o Allow objects to be moved to different schemas
>  o -Allow objects to be moved to different schemas

Fix word wrap:

<  * Allow GRANT/REVOKE permissions to be applied to all schema objects with one
<    command
>  o Allow GRANT/REVOKE permissions to be applied to all schema objects
>    with one command

18 years agoAdd ALTER object SET SCHEMA capability for a limited but useful set of
Tom Lane [Mon, 1 Aug 2005 04:03:59 +0000 (04:03 +0000)]
Add ALTER object SET SCHEMA capability for a limited but useful set of
object kinds (tables, functions, types).  Documentation is not here yet.
Original code by Bernd Helmle, extensive rework by Bruce Momjian and
Tom Lane.

18 years agoAdd description:
Bruce Momjian [Mon, 1 Aug 2005 00:52:27 +0000 (00:52 +0000)]
Add description:

<    This would require a new global table that is dumped to flat file for
<    use by the postmaster.  We do a similar thing for pg_shadow currently.
>    This would add a function to load the SQL table from
>           pg_hba.conf, and one to writes its contents to the flat file.
>    The table should have a line number that is a float so rows
>    can be inserted between existing rows, e.g. row 2.5 goes
>    between row 2 and row 3.

18 years agoAdd per-user and per-database connection limit options.
Tom Lane [Sun, 31 Jul 2005 17:19:22 +0000 (17:19 +0000)]
Add per-user and per-database connection limit options.
This patch also includes preliminary update of pg_dumpall for roles.
Petr Jelinek, with review by Bruce Momjian and Tom Lane.

18 years agoSuggest syntax:
Bruce Momjian [Sun, 31 Jul 2005 13:54:52 +0000 (13:54 +0000)]
Suggest syntax:

<  o Allow postgresql.conf file values to be changed via an SQL API
>  o Allow postgresql.conf file values to be changed via an SQL
>    API, perhaps using SET GLOBAL

18 years agoAdd item to sentence:
Bruce Momjian [Sun, 31 Jul 2005 03:28:52 +0000 (03:28 +0000)]
Add item to sentence:

<  * Allow server logs to be remotely read using SQL commands
151a151
> * Allow server logs to be remotely read and removed using SQL commands

18 years agoSpacing improvement.
Bruce Momjian [Sun, 31 Jul 2005 03:08:35 +0000 (03:08 +0000)]
Spacing improvement.

18 years agoFix broken markup and spelling, put paragraph in a somewhat less random
Tom Lane [Sat, 30 Jul 2005 22:53:15 +0000 (22:53 +0000)]
Fix broken markup and spelling, put paragraph in a somewhat less random
place.

18 years agoUse the standard spelling of the protocol argument to get/setsockopt.
Tom Lane [Sat, 30 Jul 2005 20:28:20 +0000 (20:28 +0000)]
Use the standard spelling of the protocol argument to get/setsockopt.

18 years agoFix justify_days() for integer datestamp, clean up code.
Bruce Momjian [Sat, 30 Jul 2005 18:20:44 +0000 (18:20 +0000)]
Fix justify_days() for integer datestamp, clean up code.

18 years agoMore vacuum markup fixes. Alvaro
Bruce Momjian [Sat, 30 Jul 2005 17:15:35 +0000 (17:15 +0000)]
More vacuum markup fixes.  Alvaro

18 years agoFix VACUUM sgml markup.
Bruce Momjian [Sat, 30 Jul 2005 17:03:56 +0000 (17:03 +0000)]
Fix VACUUM sgml markup.

18 years agoPatch to mention cost-based delay in vacuum reference
Bruce Momjian [Sat, 30 Jul 2005 15:45:49 +0000 (15:45 +0000)]
Patch to mention cost-based delay in vacuum reference

Alvaro Herrera

18 years agoAdd GUC variables to control keep-alive times for idle, interval, and
Bruce Momjian [Sat, 30 Jul 2005 15:17:26 +0000 (15:17 +0000)]
Add GUC variables to control keep-alive times for idle, interval, and
count.

Oliver Jowett

18 years agoPlease find attached diffs for documentation and simple regression
Bruce Momjian [Sat, 30 Jul 2005 14:52:04 +0000 (14:52 +0000)]
Please find attached diffs for documentation and simple regression
tests for the new interval->day changes. I added tests for
justify_hours() and justify_days() to interval.sql, as they take
interval input and produce interval output. If there's a more
appropriate place for them, please let me know.

Michael Glaesemann

18 years agoFix compile for no O_SYNC, but introduced with O_DIRECT.
Bruce Momjian [Sat, 30 Jul 2005 14:15:44 +0000 (14:15 +0000)]
Fix compile for no O_SYNC, but introduced with O_DIRECT.

18 years agoAdd constraint exclusion items:
Bruce Momjian [Sat, 30 Jul 2005 04:05:17 +0000 (04:05 +0000)]
Add constraint exclusion items:
<
> * Allow EXPLAIN to identify tables that were skipped because of
>   enable_constraint_exclusion
> * Allow EXPLAIN output to be more easily processed by scripts
760a763
> * Allow enable_constraint_exclusion to work for UPDATE and DELETE queries

18 years agoAdd:
Bruce Momjian [Sat, 30 Jul 2005 03:59:23 +0000 (03:59 +0000)]
Add:

<
> * Allow enable_constraint_exclusion to work for UNIONs like it does for
>   inheritance

18 years agoAdd:
Bruce Momjian [Sat, 30 Jul 2005 03:49:17 +0000 (03:49 +0000)]
Add:

> * Prevent inherited tables from expanding temporary subtables of other
>   sessions

18 years agoUpdate AIX FAQ.
Bruce Momjian [Sat, 30 Jul 2005 03:39:27 +0000 (03:39 +0000)]
Update AIX FAQ.

Chris Browne

18 years agoAdd:
Bruce Momjian [Sat, 30 Jul 2005 03:21:41 +0000 (03:21 +0000)]
Add:

> * Add system view to show free space map contents
884c885
<  o Move into the backend code
>  o -Move into the backend code

18 years agoAdd:
Bruce Momjian [Sat, 30 Jul 2005 03:18:38 +0000 (03:18 +0000)]
Add:

> * Allow SELECT ... FOR UPDATE on inherited tables

18 years agoClarify:
Bruce Momjian [Sat, 30 Jul 2005 03:16:08 +0000 (03:16 +0000)]
Clarify:

< * Add TRUNCATE permission
> * Add a separate TRUNCATE permission

18 years agoAdd:
Bruce Momjian [Sat, 30 Jul 2005 03:15:22 +0000 (03:15 +0000)]
Add:

> * Add TRUNCATE permission
>
>   Currently only the owner can TRUNCATE a table because triggers are not
>   called, and the table is locked in exclusive mode.
>

18 years agoSUNOS4_CC -> SUNOS_CC.
Bruce Momjian [Sat, 30 Jul 2005 03:07:42 +0000 (03:07 +0000)]
SUNOS4_CC -> SUNOS_CC.

18 years agoAdd:
Bruce Momjian [Sat, 30 Jul 2005 02:52:30 +0000 (02:52 +0000)]
Add:

> * Add PQescapeIdentifier() to libpq

18 years agoFix an oversight I introduced on 2003-12-28: find_nots/push_nots should
Tom Lane [Fri, 29 Jul 2005 21:40:02 +0000 (21:40 +0000)]
Fix an oversight I introduced on 2003-12-28: find_nots/push_nots should
continue to recurse after eliminating a NOT-below-a-NOT, since the
contained subexpression will now be part of the top-level AND/OR structure
and so deserves to be simplified.  The real-world impact of this is
probably minimal, since it'd require at least three levels of NOT to make
a difference, but it's still a bug.
Also remove some redundant tests for NULL subexpressions.

18 years agoRemove contrib version of pg_autovacuum --- superseded by integrated
Tom Lane [Fri, 29 Jul 2005 19:38:22 +0000 (19:38 +0000)]
Remove contrib version of pg_autovacuum --- superseded by integrated
version.

18 years agoClean up a number of autovacuum loose ends. Make the stats collector
Tom Lane [Fri, 29 Jul 2005 19:30:09 +0000 (19:30 +0000)]
Clean up a number of autovacuum loose ends.  Make the stats collector
track shared relations in a separate hashtable, so that operations done
from different databases are counted correctly.  Add proper support for
anti-XID-wraparound vacuuming, even in databases that are never connected
to and so have no stats entries.  Miscellaneous other bug fixes.
Alvaro Herrera, some additional fixes by Tom Lane.

18 years agoIt appears we need -DSUNOS4_CC for both solaris and sunos4 templates.
Tom Lane [Fri, 29 Jul 2005 17:00:29 +0000 (17:00 +0000)]
It appears we need -DSUNOS4_CC for both solaris and sunos4 templates.
Per report from Andrew Clark.

18 years agoAdd detail:
Bruce Momjian [Fri, 29 Jul 2005 16:05:28 +0000 (16:05 +0000)]
Add detail:
>
>     If CRC check fails during recovery, remember the page in case
>     a later CRC for that page properly matches.
>

18 years agoMove reindexdb from /contrib to /bin.
Bruce Momjian [Fri, 29 Jul 2005 15:13:11 +0000 (15:13 +0000)]
Move reindexdb from /contrib to /bin.

Euler Taveira de Oliveira

18 years agoUpdate catversion for dbsize changes.
Bruce Momjian [Fri, 29 Jul 2005 15:04:22 +0000 (15:04 +0000)]
Update catversion for dbsize changes.

18 years agoRemove dbsize mention.
Bruce Momjian [Fri, 29 Jul 2005 15:03:51 +0000 (15:03 +0000)]
Remove dbsize mention.

18 years agoMove dbsize functions into the backend. New functions:
Bruce Momjian [Fri, 29 Jul 2005 14:47:04 +0000 (14:47 +0000)]
Move dbsize functions into the backend.  New functions:

pg_tablespace_size
pg_database_size
pg_relation_size
pg_complete_relation_size
pg_size_pretty

Remove /contrib/dbsize.

Dave Page

18 years agoAdd mp3 entry to FAQ.
Bruce Momjian [Fri, 29 Jul 2005 14:05:12 +0000 (14:05 +0000)]
Add mp3 entry to FAQ.

18 years agoI've had this small patch in my local tree for a while. It documents
Bruce Momjian [Fri, 29 Jul 2005 13:00:03 +0000 (13:00 +0000)]
I've had this small patch in my local tree for a while.  It documents
new commands which may make an SPI call fail.

Alvaro Herrera

18 years agoFix typo.
Bruce Momjian [Fri, 29 Jul 2005 12:59:15 +0000 (12:59 +0000)]
Fix typo.

uniware

18 years agoUpdate O_DIRECT comment.
Bruce Momjian [Fri, 29 Jul 2005 03:25:53 +0000 (03:25 +0000)]
Update O_DIRECT comment.

18 years agoDone:
Bruce Momjian [Fri, 29 Jul 2005 03:23:00 +0000 (03:23 +0000)]
Done:

< * Consider use of open/fcntl(O_DIRECT) to minimize OS caching,
<   especially for WAL writes
> * -Consider use of open/fcntl(O_DIRECT) to minimize OS caching,
>   for WAL writes

18 years agoUse O_DIRECT if available when using O_SYNC for wal_sync_method.
Bruce Momjian [Fri, 29 Jul 2005 03:22:33 +0000 (03:22 +0000)]
Use O_DIRECT if available when using O_SYNC for wal_sync_method.

Also, write multiple WAL buffers out in one write() operation.

ITAGAKI Takahiro

---------------------------------------------------------------------------

> If we disable writeback-cache and use open_sync, the per-page writing
> behavior in WAL module will show up as bad result. O_DIRECT is similar
> to O_DSYNC (at least on linux), so that the benefit of it will disappear
> behind the slow disk revolution.
>
> In the current source, WAL is written as:
>     for (i = 0; i < N; i++) { write(&buffers[i], BLCKSZ); }
> Is this intentional? Can we rewrite it as follows?
>    write(&buffers[0], N * BLCKSZ);
>
> In order to achieve it, I wrote a 'gather-write' patch (xlog.gw.diff).
> Aside from this, I'll also send the fixed direct io patch (xlog.dio.diff).
> These two patches are independent, so they can be applied either or both.
>
>
> I tested them on my machine and the results as follows. It shows that
> direct-io and gather-write is the best choice when writeback-cache is off.
> Are these two patches worth trying if they are used together?
>
>
>             | writeback | fsync= | fdata | open_ | fsync_ | open_
> patch       | cache     |  false |  sync |  sync | direct | direct
> ------------+-----------+--------+-------+-------+--------+---------
> direct io   | off       |  124.2 | 105.7 |  48.3 |   48.3 |  48.2
> direct io   | on        |  129.1 | 112.3 | 114.1 |  142.9 | 144.5
> gather-write| off       |  124.3 | 108.7 | 105.4 |  (N/A) | (N/A)
> both        | off       |  131.5 | 115.5 | 114.4 |  145.4 | 145.2
>
> - 20runs * pgbench -s 100 -c 50 -t 200
>    - with tuning (wal_buffers=64, commit_delay=500, checkpoint_segments=8)
> - using 2 ATA disks:
>    - hda(reiserfs) includes system and wal.
>    - hdc(jfs) includes database files. writeback-cache is always on.
>
> ---
> ITAGAKI Takahiro

18 years agoThank you for applying patch --- regexp_replace.
Bruce Momjian [Fri, 29 Jul 2005 03:17:55 +0000 (03:17 +0000)]
Thank you for applying patch --- regexp_replace.

An attached patch is a small additional improvement.

This patch use appendStringInfoText instead of appendStringInfoString.
There is an overhead of PG_TEXT_GET_STR when appendStringInfoString is
executed by text type. This can be reduced by appendStringInfoText.

Atsushi Ogawa

18 years agoMake use of new list primitives list_append_unique and list_concat_unique
Tom Lane [Thu, 28 Jul 2005 22:27:02 +0000 (22:27 +0000)]
Make use of new list primitives list_append_unique and list_concat_unique
where applicable.

18 years agoAdd tab completion syntax for PREPARE 2-phase commit syntax.
Bruce Momjian [Thu, 28 Jul 2005 22:14:30 +0000 (22:14 +0000)]
Add tab completion syntax for PREPARE 2-phase commit syntax.

There's no tab-completion for "PREPARE TRANSACTION 'xxx'" since that
would be ambigous with "PREPARE xxx AS xx".

Heikki Linnakangas

18 years agoFix a bunch of bad interactions between partial indexes and the new
Tom Lane [Thu, 28 Jul 2005 20:26:22 +0000 (20:26 +0000)]
Fix a bunch of bad interactions between partial indexes and the new
planning logic for bitmap indexscans.  Partial indexes create corner
cases in which a scan might be done with no explicit index qual conditions,
and the code wasn't handling those cases nicely.  Also be a little
tenser about eliminating redundant clauses in the generated plan.
Per report from Dmitry Karasik.

18 years agoCode cleanup.
Bruce Momjian [Thu, 28 Jul 2005 15:30:55 +0000 (15:30 +0000)]
Code cleanup.

18 years agoRefactor exec_cast_value() and exec_simple_cast_value(): since they do
Neil Conway [Thu, 28 Jul 2005 07:51:13 +0000 (07:51 +0000)]
Refactor exec_cast_value() and exec_simple_cast_value(): since they do
not ever write through the `isnull' parameter, it does not need to be
an out parameter. Therefore it can be declared a "bool" rather than a
"bool *".

18 years agoMark a static array "const" to move a few bytes from the "data" segment
Neil Conway [Thu, 28 Jul 2005 07:38:33 +0000 (07:38 +0000)]
Mark a static array "const" to move a few bytes from the "data" segment
to the "text" segment. It would be possible to mark the elements of the
array "const" as well, but this would require multiple API changes and
does not seem to be worth the notational inconvenience.

18 years agoRemove no-longer-needed hack to add pgsleep.c to regress.so.
Tom Lane [Thu, 28 Jul 2005 04:32:32 +0000 (04:32 +0000)]
Remove no-longer-needed hack to add pgsleep.c to regress.so.

18 years agoPut libpgport into OBJS instead of LIBS, so that it gets included
Tom Lane [Thu, 28 Jul 2005 04:31:30 +0000 (04:31 +0000)]
Put libpgport into OBJS instead of LIBS, so that it gets included
into .def and .exp files automatically on Windows, AIX, and the like.
An additional benefit is that changes in libpgport files correctly
propagate to force rebuild of the backend executable.  This is my
reworking of Rocco Altier's idea, and if it breaks anything it's
definitely my fault.

18 years agoFix a whole bunch of #includes that were either wrong or redundant.
Tom Lane [Thu, 28 Jul 2005 04:03:14 +0000 (04:03 +0000)]
Fix a whole bunch of #includes that were either wrong or redundant.
The first rule of portability for us is 'thou shalt have no other gods
before c.h', and a whole lot of these files were either not including
c.h at all, or including random system headers beforehand, either of
which sins can mess up largefile support nicely.  Once you have
included c.h, there is no need to re-include what it includes, either.

18 years agoRemove some long-dead support for libpgtcl with Tk.
Tom Lane [Thu, 28 Jul 2005 03:15:52 +0000 (03:15 +0000)]
Remove some long-dead support for libpgtcl with Tk.

18 years agoFix breakage introduced in plpgsql CONTINUE patch.
Tom Lane [Thu, 28 Jul 2005 00:26:30 +0000 (00:26 +0000)]
Fix breakage introduced in plpgsql CONTINUE patch.
Per Kevin McArthur.

18 years agoAdd some missing SGML markup.
Neil Conway [Wed, 27 Jul 2005 13:42:01 +0000 (13:42 +0000)]
Add some missing SGML markup.

18 years agoFix a few macro definitions to ensure that unary minus is enclosed in
Neil Conway [Wed, 27 Jul 2005 12:44:10 +0000 (12:44 +0000)]
Fix a few macro definitions to ensure that unary minus is enclosed in
parentheses. This avoids possible operator precedence problems, and
is consistent with most of the macro definitions in the tree.

18 years agoRemove MMCacheLock -- it is no longer used. Per ITAGAKI Takahiro.
Neil Conway [Wed, 27 Jul 2005 08:05:36 +0000 (08:05 +0000)]
Remove MMCacheLock -- it is no longer used. Per ITAGAKI Takahiro.

18 years agoAvoid crashing pg_dump if we can't connect to the database server, and
Neil Conway [Wed, 27 Jul 2005 05:14:12 +0000 (05:14 +0000)]
Avoid crashing pg_dump if we can't connect to the database server, and
no database has been explicitly specified. Per gripe from Omar Kilani.

18 years agoBasic documentation for ROLEs. The user-manag chapter still needs to
Tom Lane [Tue, 26 Jul 2005 23:24:02 +0000 (23:24 +0000)]
Basic documentation for ROLEs.  The user-manag chapter still needs to
be rewritten, but at least the reference pages are reasonably sane.

18 years agoMinor correction: cause ALTER ROLE role ROLE rolenames to behave
Tom Lane [Tue, 26 Jul 2005 22:37:50 +0000 (22:37 +0000)]
Minor correction: cause ALTER ROLE role ROLE rolenames to behave
sensibly, even though we don't document it.

18 years agoAdd a role property 'rolinherit' which, when false, denotes that the role
Tom Lane [Tue, 26 Jul 2005 16:38:29 +0000 (16:38 +0000)]
Add a role property 'rolinherit' which, when false, denotes that the role
doesn't automatically inherit the privileges of roles it is a member of;
for such a role, membership in another role can be exploited only by doing
explicit SET ROLE.  The default inherit setting is TRUE, so by default
the behavior doesn't change, but creating a user with NOINHERIT gives closer
adherence to our current reading of SQL99.  Documentation still lacking,
and I think the information schema needs another look.

19 years agoAdd pg_has_role() family of privilege inquiry functions modeled after the
Tom Lane [Tue, 26 Jul 2005 00:04:19 +0000 (00:04 +0000)]
Add pg_has_role() family of privilege inquiry functions modeled after the
existing ones for object privileges.  Update the information_schema for
roles --- pg_has_role() makes this a whole lot easier, removing the need
for most of the explicit joins with pg_user.  The views should be a tad
faster now, too.  Stephen Frost and Tom Lane.

19 years agoAdd SET ROLE. This is a partial commit of Stephen Frost's recent patch;
Tom Lane [Mon, 25 Jul 2005 22:12:34 +0000 (22:12 +0000)]
Add SET ROLE.  This is a partial commit of Stephen Frost's recent patch;
I'm still working on the has_role function and information_schema changes.

19 years agoAdd username for psql password prompt, if the username was specified.
Bruce Momjian [Mon, 25 Jul 2005 17:17:41 +0000 (17:17 +0000)]
Add username for psql password prompt, if the username was specified.

Adrian Maier

19 years agoAdd:
Bruce Momjian [Mon, 25 Jul 2005 15:27:06 +0000 (15:27 +0000)]
Add:

>  o Allow postgresql.conf file values to be changed via an SQL API
>  o Allow the server to be stopped/restarted via an SQL API

19 years agoAwhile back we replaced all uses of strcasecmp and strncasecmp with
Tom Lane [Mon, 25 Jul 2005 04:52:32 +0000 (04:52 +0000)]
Awhile back we replaced all uses of strcasecmp and strncasecmp with
pg_strcasecmp and pg_strncasecmp ... but I see some of the former have
crept back in.
Eternal vigilance is the price of locale independence, apparently.

19 years agoChange build of regress.so to use Makefile.shlib instead of depending
Tom Lane [Mon, 25 Jul 2005 00:58:27 +0000 (00:58 +0000)]
Change build of regress.so to use Makefile.shlib instead of depending
on the not-very-good .so pattern rules in the port-specific Makefiles.
(This leaves only pgxs' MODULES case needing those rules.)  Also,
compile pgsleep.c locally and add it to regress.so to avoid failure
on AIX.

19 years agoPartial fixes for contrib build on AIX: include -lm where needed.
Tom Lane [Sun, 24 Jul 2005 23:30:10 +0000 (23:30 +0000)]
Partial fixes for contrib build on AIX: include -lm where needed.
Per Rocco Altier.

19 years agoRegenerate badly-obsolete README file.
Tom Lane [Sun, 24 Jul 2005 17:18:52 +0000 (17:18 +0000)]
Regenerate badly-obsolete README file.

19 years agoWith the interval/day patch, the horology regression test no longer
Tom Lane [Sun, 24 Jul 2005 17:07:18 +0000 (17:07 +0000)]
With the interval/day patch, the horology regression test no longer
fails near DST transition days, so remove the advice about that testing
problem.  Also improve the description of variant-comparison-file
selection.

19 years agoAdd variant expected file to cope with different spelling of a Python
Tom Lane [Sun, 24 Jul 2005 14:53:42 +0000 (14:53 +0000)]
Add variant expected file to cope with different spelling of a Python
error message in Python 2.3 and before.  Per Michael Fuhr and buildfarm
results.

19 years agoFix rounding problem in interval_div by using rint(), and improve
Bruce Momjian [Sun, 24 Jul 2005 04:37:07 +0000 (04:37 +0000)]
Fix rounding problem in interval_div by using rint(), and improve
interval_mul function.

19 years agoFix logic error in tbm_intersect: the intersection of a normal page and
Tom Lane [Sun, 24 Jul 2005 02:25:26 +0000 (02:25 +0000)]
Fix logic error in tbm_intersect: the intersection of a normal page and
a lossy page has to be lossy, because we don't know exactly which tuples
on the page should remain part of the bitmap.  Per Jie Zhang.

19 years agoFix some failures to initialize table entries induced by recent autovacuum
Tom Lane [Sun, 24 Jul 2005 00:33:28 +0000 (00:33 +0000)]
Fix some failures to initialize table entries induced by recent autovacuum
integration.  Not clear this explains recent stats problems, but it's
definitely wrong.

19 years agoSimple constraint exclusion. For now, only child tables of inheritance
Tom Lane [Sat, 23 Jul 2005 21:05:48 +0000 (21:05 +0000)]
Simple constraint exclusion.  For now, only child tables of inheritance
scans are candidates for exclusion; this should be fixed eventually.
Simon Riggs, with some help from Tom Lane.

19 years agoRemove unintended code addition.
Bruce Momjian [Sat, 23 Jul 2005 15:31:16 +0000 (15:31 +0000)]
Remove unintended code addition.

19 years agoMacro alignment cleanup.
Bruce Momjian [Sat, 23 Jul 2005 15:29:47 +0000 (15:29 +0000)]
Macro alignment cleanup.

19 years agoImprove computations of interval_div to prevent rounding problem on AIX.
Bruce Momjian [Sat, 23 Jul 2005 14:53:21 +0000 (14:53 +0000)]
Improve computations of interval_div to prevent rounding problem on AIX.