]> granicus.if.org Git - postgresql/log
postgresql
18 years agoRecent patch broke guc.c for non-USE_ASSERT_CHECKING case. Per
Tom Lane [Sun, 8 Jan 2006 20:13:33 +0000 (20:13 +0000)]
Recent patch broke guc.c for non-USE_ASSERT_CHECKING case.  Per
Stefan Kaltenbrunner.

18 years agoAvoid leaking memory while reading toasted entries from pg_rewrite,
Tom Lane [Sun, 8 Jan 2006 20:04:41 +0000 (20:04 +0000)]
Avoid leaking memory while reading toasted entries from pg_rewrite,
and nail a couple more system indexes into cache.  This doesn't make
any difference in normal system operation, but when forcing constant
cache resets it's difficult to get through the rules regression test
without these changes.

18 years agoAdd a new system view, pg_prepared_statements, that can be used to
Neil Conway [Sun, 8 Jan 2006 07:00:27 +0000 (07:00 +0000)]
Add a new system view, pg_prepared_statements, that can be used to
access information about the prepared statements that are available
in the current session. Original patch from Joachim Wieland, various
improvements by Neil Conway.

The "statement" column of the view contains the literal query string
sent by the client, without any rewriting or pretty printing. This
means that prepared statements created via SQL will be prefixed with
"PREPARE ... AS ", whereas those prepared via the FE/BE protocol will
not. That is unfortunate, but discussion on -patches did not yield an
efficient way to improve this, and there is some merit in returning
exactly what the client sent to the backend.

Catalog version bumped, regression tests updated.

18 years agoAdd RelationOpenSmgr() calls to ensure rd_smgr is valid when we try to
Tom Lane [Sat, 7 Jan 2006 22:45:41 +0000 (22:45 +0000)]
Add RelationOpenSmgr() calls to ensure rd_smgr is valid when we try to
use it.  While it normally has been opened earlier during btree index
build, testing shows that it's possible for the link to be closed again
if an sinval reset occurs while the index is being built.

18 years agoAdd comment explaining why RelationOpenSmgr() call is not needed.
Tom Lane [Sat, 7 Jan 2006 22:30:43 +0000 (22:30 +0000)]
Add comment explaining why RelationOpenSmgr() call is not needed.

18 years agoDuring CatCacheRemoveCList, we must now remove any members that are
Tom Lane [Sat, 7 Jan 2006 21:16:10 +0000 (21:16 +0000)]
During CatCacheRemoveCList, we must now remove any members that are
dead and have become unreferenced.  Before 8.1, such members were left
for AtEOXact_CatCache() to clean up, but now AtEOXact_CatCache isn't
supposed to have anything to do.  In an assert-enabled build this bug
leads to an assertion failure at transaction end, but in a non-assert
build the dead member is effectively just a small memory leak.
Per report from Jeremy Drake.

18 years agoFix failure to apply domain constraints to a NULL constant that's added to
Tom Lane [Fri, 6 Jan 2006 20:11:12 +0000 (20:11 +0000)]
Fix failure to apply domain constraints to a NULL constant that's added to
an INSERT target list during rule rewriting.  Per report from John Supplee.

18 years agoUse RELKIND_COMPOSITE_TYPE rather than hardcoded 'c'.
Bruce Momjian [Fri, 6 Jan 2006 19:08:33 +0000 (19:08 +0000)]
Use RELKIND_COMPOSITE_TYPE rather than hardcoded 'c'.

18 years agoRelease-note updates and copy editing.
Tom Lane [Fri, 6 Jan 2006 02:59:57 +0000 (02:59 +0000)]
Release-note updates and copy editing.

18 years agoFix Windows-only postmaster code to reject a connection request and continue,
Tom Lane [Fri, 6 Jan 2006 02:58:25 +0000 (02:58 +0000)]
Fix Windows-only postmaster code to reject a connection request and continue,
rather than elog(FATAL), when there is no more room in ShmemBackendArray.
This is a security issue since too many connection requests arriving close
together could cause the postmaster to shut down, resulting in denial of
service.  Reported by Yoshiyuki Asaba, fixed by Magnus Hagander.

18 years agoFix broken markup.
Tom Lane [Fri, 6 Jan 2006 01:35:09 +0000 (01:35 +0000)]
Fix broken markup.

18 years agoConvert Assert checking for empty page into a regular test and elog.
Tom Lane [Fri, 6 Jan 2006 00:15:50 +0000 (00:15 +0000)]
Convert Assert checking for empty page into a regular test and elog.
The consequences of overwriting a non-empty page are bad enough that
we should not omit this test in production builds.

18 years agoFix ReadBuffer() to correctly handle the case where it's trying to extend
Tom Lane [Fri, 6 Jan 2006 00:04:20 +0000 (00:04 +0000)]
Fix ReadBuffer() to correctly handle the case where it's trying to extend
the relation but it finds a pre-existing valid buffer.  The buffer does not
correspond to any page known to the kernel, so we *must* do smgrextend to
ensure that the space becomes allocated.  The 7.x branches all do this
correctly, but the corner case got lost somewhere during 8.0 bufmgr rewrites.
(My fault no doubt :-( ... I think I assumed that such a buffer must be
not-BM_VALID, which is not so.)

18 years agoAdd:
Bruce Momjian [Thu, 5 Jan 2006 17:47:53 +0000 (17:47 +0000)]
Add:

>
>  * Allow SERIAL sequences to inherit permissions from the base table?

18 years agoAdd logging control TODO.detail.
Bruce Momjian [Thu, 5 Jan 2006 17:28:45 +0000 (17:28 +0000)]
Add logging control TODO.detail.

18 years agoUpdate:
Bruce Momjian [Thu, 5 Jan 2006 16:39:54 +0000 (16:39 +0000)]
Update:
<   stable logging probably can not have indexes.  [wallog]
>   stable logging probably can not have indexes.  [walcontrol]

18 years agoUpdate wording:
Bruce Momjian [Thu, 5 Jan 2006 16:35:19 +0000 (16:35 +0000)]
Update wording:

<   STABLE | DEFAULT ].  [wallog]
>   STABLE | DEFAULT ].  Tables using non-default logging should not use
>   referential integrity with default-logging tables, and tables using
>   stable logging probably can not have indexes.  [wallog]

18 years agoUpdate wording:
Bruce Momjian [Thu, 5 Jan 2006 16:26:49 +0000 (16:26 +0000)]
Update wording:

<   the table. Another option is to avoid transaction logging entirely
<   and truncate or drop the table on crash recovery.  These should be
<   implemented using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP |
<   TRUNCATE | STABLE | DEFAULT ].  [wallog]
>   the table.  This would affect COPY, and perhaps INSERT/UPDATE too.
>   Another option is to avoid transaction logging entirely and truncate
>   or drop the table on crash recovery.  These should be implemented
>   using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP | TRUNCATE |
>   STABLE | DEFAULT ].  [wallog]

18 years agoAdd:
Bruce Momjian [Thu, 5 Jan 2006 16:23:48 +0000 (16:23 +0000)]
Add:

>
> * Allow control over which tables are WAL-logged
>
>   Allow tables to bypass WAL writes and just fsync() dirty pages on
>   commit.  To do this, only a single writer can modify the table, and
>   writes must happen only on new pages.  Readers can continue accessing
>   the table. Another option is to avoid transaction logging entirely
>   and truncate or drop the table on crash recovery.  These should be
>   implemented using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP |
>   TRUNCATE | STABLE | DEFAULT ].  [wallog]

18 years agoUpdate x86 Solaris documenation ideas.
Bruce Momjian [Thu, 5 Jan 2006 15:56:54 +0000 (15:56 +0000)]
Update x86 Solaris documenation ideas.

18 years agoAdd compile flags sample.
Bruce Momjian [Thu, 5 Jan 2006 15:31:23 +0000 (15:31 +0000)]
Add compile flags sample.

18 years agoNew pgcrypto item wording.
Bruce Momjian [Thu, 5 Jan 2006 15:19:05 +0000 (15:19 +0000)]
New pgcrypto item wording.

18 years agoUpdate item:
Bruce Momjian [Thu, 5 Jan 2006 15:13:32 +0000 (15:13 +0000)]
Update item:

< * %Remove behavior of postmaster -o after making postmaster/postgres
<   flags unique
> * %Remove behavior of postmaster -o

18 years agoWording improvements.
Bruce Momjian [Thu, 5 Jan 2006 15:12:36 +0000 (15:12 +0000)]
Wording improvements.

18 years agoImprove markup.
Bruce Momjian [Thu, 5 Jan 2006 14:53:47 +0000 (14:53 +0000)]
Improve markup.

18 years agoMake all command-line options of postmaster and postgres the same. See
Peter Eisentraut [Thu, 5 Jan 2006 10:07:46 +0000 (10:07 +0000)]
Make all command-line options of postmaster and postgres the same.  See
http://archives.postgresql.org/pgsql-hackers/2006-01/msg00151.php for the
complete plan.

18 years agoUpdate release notes for 8.1.X, 8.0.X, 7.4.X, and 7.3.X.
Bruce Momjian [Thu, 5 Jan 2006 05:15:50 +0000 (05:15 +0000)]
Update release notes for 8.1.X, 8.0.X, 7.4.X, and 7.3.X.

18 years agoUpdate version number.
Bruce Momjian [Thu, 5 Jan 2006 03:55:13 +0000 (03:55 +0000)]
Update version number.

18 years agoDone:
Bruce Momjian [Thu, 5 Jan 2006 03:02:03 +0000 (03:02 +0000)]
Done:

> * -Remove BeOS and QNX-specific code

18 years agoRemove BEOS port.
Bruce Momjian [Thu, 5 Jan 2006 03:01:38 +0000 (03:01 +0000)]
Remove BEOS port.

18 years agoRemove QNX file.
Bruce Momjian [Thu, 5 Jan 2006 02:43:38 +0000 (02:43 +0000)]
Remove QNX file.

18 years agoRemove QNX port.
Bruce Momjian [Thu, 5 Jan 2006 01:56:30 +0000 (01:56 +0000)]
Remove QNX port.

18 years agoRearrange backend startup sequence so that ShmemIndexLock can become
Tom Lane [Wed, 4 Jan 2006 21:06:32 +0000 (21:06 +0000)]
Rearrange backend startup sequence so that ShmemIndexLock can become
an LWLock instead of a spinlock.  This hardly matters on Unix machines
but should improve startup performance on Windows (or any port using
EXEC_BACKEND).  Per previous discussion.

18 years agoFix another case in which autovacuum would fail while analyzing
Tom Lane [Wed, 4 Jan 2006 19:16:24 +0000 (19:16 +0000)]
Fix another case in which autovacuum would fail while analyzing
expressional indexes.  Per report from Brian Hirt.

18 years agoThere is a signedness bug in Openwall gen_salt code that pgcrypto uses.
Tom Lane [Tue, 3 Jan 2006 23:46:24 +0000 (23:46 +0000)]
There is a signedness bug in Openwall gen_salt code that pgcrypto uses.
This makes the salt space for md5 and xdes algorithms a lot smaller than
it should be.

Marko Kreen

18 years agoWhen the remote query result has a different number of columns
Joe Conway [Tue, 3 Jan 2006 23:45:52 +0000 (23:45 +0000)]
When the remote query result has a different number of columns
than the local query specifies (e.g. in the FROM clause),
throw an ERROR (instead of crashing). Fix for bug #2129 reported
by Akio Iwaasa.

18 years agoFix incorrect treatment of RL_PROMPT_START_IGNORE/RL_PROMPT_END_IGNORE,
Tom Lane [Tue, 3 Jan 2006 23:32:30 +0000 (23:32 +0000)]
Fix incorrect treatment of RL_PROMPT_START_IGNORE/RL_PROMPT_END_IGNORE,
per http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=343616 via Martin Pitt.

18 years agoAdd checks to verify that a plpgsql function returning a rowtype is actually
Tom Lane [Tue, 3 Jan 2006 22:48:10 +0000 (22:48 +0000)]
Add checks to verify that a plpgsql function returning a rowtype is actually
returning the rowtype it's supposed to return.  Per reports from David Niblett
and Michael Fuhr.

18 years agoAssume select() might modify struct timeout, so remove previous
Bruce Momjian [Tue, 3 Jan 2006 19:54:08 +0000 (19:54 +0000)]
Assume select() might modify struct timeout, so remove previous
optimization.

18 years agoUse setitimer() for stats file write, rather than do a gettimeofday()
Bruce Momjian [Tue, 3 Jan 2006 16:42:17 +0000 (16:42 +0000)]
Use setitimer() for stats file write, rather than do a gettimeofday()
call for every stats packet read to adjust select() timeout.  Other
stylistic improvements.

18 years agoDon't assume that LC_MESSAGES is always available on WIN32. Per Magnus.
Tom Lane [Mon, 2 Jan 2006 20:25:45 +0000 (20:25 +0000)]
Don't assume that LC_MESSAGES is always available on WIN32.  Per Magnus.

18 years agoReset flex state in a way that works for both flex 2.5.4 and 2.5.31.
Tom Lane [Mon, 2 Jan 2006 19:55:25 +0000 (19:55 +0000)]
Reset flex state in a way that works for both flex 2.5.4 and 2.5.31.

18 years agoRemove the nexus between trial_buffs and trial_conns, and don't test shared buffers...
Andrew Dunstan [Mon, 2 Jan 2006 16:45:12 +0000 (16:45 +0000)]
Remove the nexus between trial_buffs and trial_conns, and don't test shared buffers lower than or equal to a value we already know is good, but use that value instead. This will make it easier to adjust the trial values and/or formulae in future if necessary.

18 years agoRemove unnecessary assignment, per Tom.
Bruce Momjian [Mon, 2 Jan 2006 03:30:41 +0000 (03:30 +0000)]
Remove unnecessary assignment, per Tom.

18 years agoChange if (!(x || y)) construct with if (!x && !y), for clarity.
Bruce Momjian [Mon, 2 Jan 2006 00:58:00 +0000 (00:58 +0000)]
Change if (!(x || y)) construct with if (!x && !y), for clarity.

18 years agoRewrite ProcessConfigFile() to avoid misbehavior at EOF, as per report
Tom Lane [Sun, 1 Jan 2006 19:52:40 +0000 (19:52 +0000)]
Rewrite ProcessConfigFile() to avoid misbehavior at EOF, as per report
from Andrus Moor.  The former state-machine-style coding wasn't actually
doing much except obscuring the control flow, and it didn't extend
readily to fix this case, so I just took it out.  Also, add a
YY_FLUSH_BUFFER call to ensure the lexer is reset correctly if the
previous scan failed partway through the file.

18 years agoRemove DOS line endings ("\r\n") from several .po files. DOS line endings
Neil Conway [Sun, 1 Jan 2006 10:13:56 +0000 (10:13 +0000)]
Remove DOS line endings ("\r\n") from several .po files. DOS line endings
are inconsistent with the rest of the .po files, and apparently cause
problems for Sun's cc. Per report on IRC from "bitvector2".

18 years agoTrim an obsolete comment: it is no longer relevant that "SELECT" was
Neil Conway [Sun, 1 Jan 2006 01:41:42 +0000 (01:41 +0000)]
Trim an obsolete comment: it is no longer relevant that "SELECT" was
formerly "RETRIEVE", and so forth.

18 years agoClean up initdb's code for selecting max_connections and shared_buffers
Tom Lane [Sat, 31 Dec 2005 23:50:59 +0000 (23:50 +0000)]
Clean up initdb's code for selecting max_connections and shared_buffers
a little bit, and set the minimum buffers-per-connection ratio to 10 not
5.  I folded the two test routines into one to counteract the illusion
that the tests can be twiddled independently, and added some documentation
pointing out the necessary connection between the sets of values tested.
Fixes strange choices of parameters that I noticed CVS tip making on
Darwin with Apple's undersized default SHMMAX.

18 years agoRename variable to cmd_str.
Bruce Momjian [Sat, 31 Dec 2005 19:39:11 +0000 (19:39 +0000)]
Rename variable to cmd_str.

18 years agoRename variable 'what' to 'stat_msg'.
Bruce Momjian [Sat, 31 Dec 2005 17:46:19 +0000 (17:46 +0000)]
Rename variable 'what' to 'stat_msg'.

18 years agoPrefix client-side prepare with '[protocol]' rather than '[client]'.
Bruce Momjian [Sat, 31 Dec 2005 16:50:44 +0000 (16:50 +0000)]
Prefix client-side prepare with '[protocol]' rather than '[client]'.

18 years agoRename send_rfq to send_ready_for_query.
Bruce Momjian [Fri, 30 Dec 2005 23:49:48 +0000 (23:49 +0000)]
Rename send_rfq to send_ready_for_query.

18 years agoMmark client-side prepare/bind/execute statements with "[client]" so
Bruce Momjian [Fri, 30 Dec 2005 22:55:20 +0000 (22:55 +0000)]
Mmark client-side prepare/bind/execute statements with "[client]" so
they can be easily distinguished from SQL commands.

18 years agoAdd support for Solaris x86_64 using Sun's compiler.
Bruce Momjian [Fri, 30 Dec 2005 21:43:41 +0000 (21:43 +0000)]
Add support for Solaris x86_64 using Sun's compiler.

Pierre Girard

18 years agoRepair EXPLAIN failure when trying to display a plan condition that involves
Tom Lane [Fri, 30 Dec 2005 18:34:22 +0000 (18:34 +0000)]
Repair EXPLAIN failure when trying to display a plan condition that involves
selection of a field from the result of a function returning RECORD.
I believe this case is new in 8.1; it's due to the addition of OUT parameters.
Per example from Michael Fuhr.

18 years agoAdd:
Bruce Momjian [Fri, 30 Dec 2005 03:24:58 +0000 (03:24 +0000)]
Add:

> * Make CLUSTER preserve recently-dead tuples per MVCC requirements

18 years agoDisallow setting ssl = on if SSL is not compiled in.
Peter Eisentraut [Fri, 30 Dec 2005 00:13:50 +0000 (00:13 +0000)]
Disallow setting ssl = on if SSL is not compiled in.

18 years agoIndex: src/pl/plpython/plpython.c
Neil Conway [Thu, 29 Dec 2005 21:47:32 +0000 (21:47 +0000)]
Index: src/pl/plpython/plpython.c
===================================================================
RCS file: /Users/neilc/postgres/cvs_root/pgsql/src/pl/plpython/plpython.c,v
retrieving revision 1.67
diff -c -r1.67 plpython.c
*** src/pl/plpython/plpython.c 26 Dec 2005 04:28:48 -0000 1.67
--- src/pl/plpython/plpython.c 29 Dec 2005 16:54:57 -0000
***************
*** 2,8 ****
   * plpython.c - python as a procedural language for PostgreSQL
   *
   * This software is copyright by Andrew Bosma
!  * but is really shameless cribbed from pltcl.c by Jan Weick, and
   * plperl.c by Mark Hollomon.
   *
   * The author hereby grants permission to use, copy, modify,
--- 2,8 ----
   * plpython.c - python as a procedural language for PostgreSQL
   *
   * This software is copyright by Andrew Bosma
!  * but is really shamelessly cribbed from pltcl.c by Jan Wieck, and
   * plperl.c by Mark Hollomon.
   *
   * The author hereby grants permission to use, copy, modify,
***************
*** 1996,2002 ****
   int i,
   rv;
   PLyPlanObject *plan;
-  char    *nulls;
   MemoryContext oldcontext;

   if (list != NULL)
--- 1996,2001 ----
***************
*** 2018,2024 ****
   if (nargs != plan->nargs)
   {
   char    *sv;
-
   PyObject   *so = PyObject_Str(list);

   if (!so)
--- 2017,2022 ----
***************
*** 2036,2048 ****
   oldcontext = CurrentMemoryContext;
   PG_TRY();
   {
!  nulls = palloc(nargs * sizeof(char));

   for (i = 0; i < nargs; i++)
   {
   PyObject   *elem,
      *so;
-  char    *sv;

   elem = PySequence_GetItem(list, i);
   if (elem != Py_None)
--- 2034,2045 ----
   oldcontext = CurrentMemoryContext;
   PG_TRY();
   {
!  char    *nulls = palloc(nargs * sizeof(char));

   for (i = 0; i < nargs; i++)
   {
   PyObject   *elem,
      *so;

   elem = PySequence_GetItem(list, i);
   if (elem != Py_None)
***************
*** 2051,2070 ****
   if (!so)
   PLy_elog(ERROR, "function \"%s\" could not execute plan",
    PLy_procedure_name(PLy_curr_procedure));
!  sv = PyString_AsString(so);

!  /*
!   * FIXME -- if this elogs, we have Python reference leak
!   */
!  plan->values[i] =
!  FunctionCall3(&(plan->args[i].out.d.typfunc),
!    CStringGetDatum(sv),
!  ObjectIdGetDatum(plan->args[i].out.d.typioparam),
!    Int32GetDatum(-1));

!  Py_DECREF(so);
!  Py_DECREF(elem);

   nulls[i] = ' ';
   }
   else
--- 2048,2073 ----
   if (!so)
   PLy_elog(ERROR, "function \"%s\" could not execute plan",
    PLy_procedure_name(PLy_curr_procedure));
!  Py_DECREF(elem);

!  PG_TRY();
!  {
!  char *sv = PyString_AsString(so);

!  plan->values[i] =
!  FunctionCall3(&(plan->args[i].out.d.typfunc),
!    CStringGetDatum(sv),
!  ObjectIdGetDatum(plan->args[i].out.d.typioparam),
!    Int32GetDatum(-1));
!  }
!  PG_CATCH();
!  {
!  Py_DECREF(so);
!  PG_RE_THROW();
!  }
!  PG_END_TRY();

+  Py_DECREF(so);
   nulls[i] = ' ';
   }
   else

18 years agoGet rid of the SpinLockAcquire/SpinLockAcquire_NoHoldoff distinction
Tom Lane [Thu, 29 Dec 2005 18:08:05 +0000 (18:08 +0000)]
Get rid of the SpinLockAcquire/SpinLockAcquire_NoHoldoff distinction
in favor of having just one set of macros that don't do HOLD/RESUME_INTERRUPTS
(hence, these correspond to the old SpinLockAcquire_NoHoldoff case).
Given our coding rules for spinlock use, there is no reason to allow
CHECK_FOR_INTERRUPTS to be done while holding a spinlock, and also there
is no situation where ImmediateInterruptOK will be true while holding a
spinlock.  Therefore doing HOLD/RESUME_INTERRUPTS while taking/releasing a
spinlock is just a waste of cycles.  Qingqing Zhou and Tom Lane.

18 years agoUpdate:
Bruce Momjian [Thu, 29 Dec 2005 16:45:11 +0000 (16:45 +0000)]
Update:

< * Add missing rtree optimizer selectivity
> * Improve selectivity functions for geometric operators

18 years agoMove declaration of check_function_bodies to where the perl headers
Andrew Dunstan [Thu, 29 Dec 2005 14:28:31 +0000 (14:28 +0000)]
Move declaration of check_function_bodies to where the perl headers
haven't had a chance to mangle the definition of DLLIMPORT (thanks again, perl guys).

18 years agoRevert some careless search-and-replace: "ADD" in comment text should
Neil Conway [Thu, 29 Dec 2005 04:53:18 +0000 (04:53 +0000)]
Revert some careless search-and-replace: "ADD" in comment text should
not be replaced with "ADD_P".

18 years agoRemove a space that incorrectly precedes a comma in the PL/pgSQL
Bruce Momjian [Thu, 29 Dec 2005 04:02:32 +0000 (04:02 +0000)]
Remove a space that incorrectly precedes a comma in the PL/pgSQL
documentation.

Michael Fuhr

18 years agoArrange to set the LC_XXX environment variables to match our locale
Tom Lane [Wed, 28 Dec 2005 23:22:51 +0000 (23:22 +0000)]
Arrange to set the LC_XXX environment variables to match our locale
setup.  This protects against undesired changes in locale behavior
if someone carelessly does setlocale(LC_ALL, "") (and we know who
you are, perl guys).

18 years agoUpdate regression tests for new referential integrity error message
Bruce Momjian [Wed, 28 Dec 2005 23:17:09 +0000 (23:17 +0000)]
Update regression tests for new referential integrity error message
wording ("table" added).

18 years agoFix plperl validator to honor check_function_bodies: when that is OFF,
Tom Lane [Wed, 28 Dec 2005 18:34:16 +0000 (18:34 +0000)]
Fix plperl validator to honor check_function_bodies: when that is OFF,
we want it to check the argument/result data types and no more.  In
particular, libperl shouldn't get initialized in this case.

18 years agoMove plpgsql's fetchArgInfo() into funcapi.c, and rename to
Tom Lane [Wed, 28 Dec 2005 18:11:25 +0000 (18:11 +0000)]
Move plpgsql's fetchArgInfo() into funcapi.c, and rename to
get_func_arg_info() for consistency with other names there.
This code will probably be useful to other PLs when they start to
support OUT parameters, so better to have it in the main backend.
Also, fix plpgsql validator to detect bogus OUT parameters even when
check_function_bodies is off.

18 years agoMention "table" in "violates foreign key constraint" message that was
Bruce Momjian [Wed, 28 Dec 2005 16:47:21 +0000 (16:47 +0000)]
Mention "table" in "violates foreign key constraint" message that was
lacking it.  Perhaps it was suppressed because of line length
considerations, but "table" should appear.

18 years agoRemove silly use of DLLIMPORT.
Tom Lane [Wed, 28 Dec 2005 16:38:38 +0000 (16:38 +0000)]
Remove silly use of DLLIMPORT.

18 years agoAdd COPY CSV test that tests CSV output of \.
Bruce Momjian [Wed, 28 Dec 2005 15:07:02 +0000 (15:07 +0000)]
Add COPY CSV test that tests CSV output of \.

18 years agoUpdate COPY CSV \. wording for externally created files.
Bruce Momjian [Wed, 28 Dec 2005 14:38:32 +0000 (14:38 +0000)]
Update COPY CSV \. wording for externally created files.

18 years agoUpdate:
Bruce Momjian [Wed, 28 Dec 2005 03:59:39 +0000 (03:59 +0000)]
Update:

< * Add missing optimizer selectivities for date, r-tree, etc
> * Add missing rtree optimizer selectivity

18 years agoAdd regression tests for CSV and \., and add automatic quoting of a
Bruce Momjian [Wed, 28 Dec 2005 03:25:32 +0000 (03:25 +0000)]
Add regression tests for CSV and \., and add automatic quoting of a
single column dump that has a \. value, so the load works properly.  I
also added documentation describing this issue.

18 years agoDone:
Bruce Momjian [Wed, 28 Dec 2005 02:12:25 +0000 (02:12 +0000)]
Done:

< * %Make row-wise comparisons work per SQL spec
> * -Make row-wise comparisons work per SQL spec

18 years agoImplement SQL-compliant treatment of row comparisons for < <= > >= cases
Tom Lane [Wed, 28 Dec 2005 01:30:02 +0000 (01:30 +0000)]
Implement SQL-compliant treatment of row comparisons for < <= > >= cases
(previously we only did = and <> correctly).  Also, allow row comparisons
with any operators that are in btree opclasses, not only those with these
specific names.  This gets rid of a whole lot of indefensible assumptions
about the behavior of particular operators based on their names ... though
it's still true that IN and NOT IN expand to "= ANY".  The patch adds a
RowCompareExpr expression node type, and makes some changes in the
representation of ANY/ALL/ROWCOMPARE SubLinks so that they can share code
with RowCompareExpr.

I have not yet done anything about making RowCompareExpr an indexable
operator, but will look at that soon.

initdb forced due to changes in stored rules.

18 years agoIncrease amount of shared buffers initdb tries to allocate to 4000,
Andrew Dunstan [Tue, 27 Dec 2005 23:54:01 +0000 (23:54 +0000)]
Increase amount of shared buffers initdb tries to allocate to 4000,
and add logic to try max_fsm_pages up to 200000, plus accompanying minor
docs changes.

18 years agoOur code had:
Bruce Momjian [Tue, 27 Dec 2005 18:10:48 +0000 (18:10 +0000)]
Our code had:

                if (c == '\\' && cstate->line_buf.len == 0)

The problem with that is the because of the input and _output_
buffering, cstate->line_buf.len could be zero even if we are not on the
first character of a line.  In fact, for a typical line, it is zero for
all characters on the line.  The proper solution is to introduce a
boolean, first_char_in_line, that we set as we enter the loop and clear
once we process a character.

I have restructured the line-reading code in copy.c by:

        o  merging the CSV/non-CSV functions into a single function
        o  used macros to centralize and clarify the buffering code
        o  updated comments
        o  renamed client_encoding_only to encoding_embeds_ascii
        o  added a high-bit test to the encoding_embeds_ascii test for
           performance
        o  in CSV mode, allow a backslash followed by a non-period to
           continue being processed as a data value

There should be no performance impact from this patch because it is
functionally equivalent.  If you apply the patch you will see copy.c is
much clearer in this area now and might suggest additional
optimizations.

I have also attached a 8.1-only patch to fix the CSV \. handling bug
with no code restructuring.

18 years agoProtect ADD and HEADER symbols from conflicting with MIPS includes.
Bruce Momjian [Tue, 27 Dec 2005 04:00:08 +0000 (04:00 +0000)]
Protect ADD and HEADER symbols from conflicting with MIPS includes.

18 years agoMore uses of IS_HIGHBIT_SET() macro.
Bruce Momjian [Mon, 26 Dec 2005 19:30:45 +0000 (19:30 +0000)]
More uses of IS_HIGHBIT_SET() macro.

18 years agoRename pg_make_encrypted_password to PQencryptPassword.
Peter Eisentraut [Mon, 26 Dec 2005 14:58:06 +0000 (14:58 +0000)]
Rename pg_make_encrypted_password to PQencryptPassword.

18 years agoAdd:
Bruce Momjian [Mon, 26 Dec 2005 05:14:52 +0000 (05:14 +0000)]
Add:

* %Make row-wise comparisons work per SQL spec

  Right now, '(a, b) < (1, 2)' is processed as 'a < 1 and b < 2', but
  the SQL standard requires it to be processed as a column-by-column
  comparison, so the proper comparison is '(a < 1) OR (a = 1 AND b < 2)'.

18 years agoVarious cosmetic code cleanup for PL/Python:
Neil Conway [Mon, 26 Dec 2005 04:28:48 +0000 (04:28 +0000)]
Various cosmetic code cleanup for PL/Python:

- use "bool" rather than "int" for boolean variables

- use "PLy_malloc" rather than "malloc" in two places

- define "PLy_strdup", and use it rather than malloc() + strcpy() in
  two places (which should have been memcpy(), anyway).

- remove a bunch of redundant parentheses from expressions that do not
  need the parentheses for code clarity

18 years agoI have added these macros to c.h:
Bruce Momjian [Sun, 25 Dec 2005 02:14:19 +0000 (02:14 +0000)]
I  have added these macros to c.h:

        #define HIGHBIT                 (0x80)
        #define IS_HIGHBIT_SET(ch)      ((unsigned char)(ch) & HIGHBIT)

and removed CSIGNBIT and mapped it uses to HIGHBIT.  I have also added
uses for IS_HIGHBIT_SET where appropriate.  This change is
purely for code clarity.

18 years agoMinor doc tweak: "NOT NULL" is redundant with "SERIAL" in example.
Neil Conway [Sun, 25 Dec 2005 01:41:15 +0000 (01:41 +0000)]
Minor doc tweak: "NOT NULL" is redundant with "SERIAL" in example.

18 years agoSpell fix. Andrew.
Bruce Momjian [Sat, 24 Dec 2005 19:29:38 +0000 (19:29 +0000)]
Spell fix.  Andrew.

18 years agoUpdate why unified diff is _sometimes_ better.
Bruce Momjian [Sat, 24 Dec 2005 18:37:17 +0000 (18:37 +0000)]
Update why unified diff is _sometimes_ better.

18 years agoPrevious commit message should have been:
Bruce Momjian [Sat, 24 Dec 2005 18:23:02 +0000 (18:23 +0000)]
Previous commit message should have been:

Add comment marker for PG_ENCODING_BE_LAST.

18 years agoAdd
Bruce Momjian [Sat, 24 Dec 2005 18:21:34 +0000 (18:21 +0000)]
Add

18 years agoAlignment cleanup.
Bruce Momjian [Sat, 24 Dec 2005 18:11:30 +0000 (18:11 +0000)]
Alignment cleanup.

18 years agoFormatting cleanups.
Bruce Momjian [Sat, 24 Dec 2005 17:19:40 +0000 (17:19 +0000)]
Formatting cleanups.

18 years agoFormatting cleanup.
Bruce Momjian [Sat, 24 Dec 2005 16:49:48 +0000 (16:49 +0000)]
Formatting cleanup.

18 years agoFix long standing Asian multibyte charsets bug.
Tatsuo Ishii [Sat, 24 Dec 2005 09:35:36 +0000 (09:35 +0000)]
Fix long standing Asian multibyte charsets bug.
See:

Subject: [HACKERS] bugs with certain Asian multibyte charsets
From: Tatsuo Ishii <ishii@sraoss.co.jp>
To: pgsql-hackers@postgresql.org
Date: Sat, 24 Dec 2005 18:25:33 +0900 (JST)

for more details/

18 years agoWups, fat-fingered the calculation the first time. Update comment in
Tom Lane [Fri, 23 Dec 2005 23:28:35 +0000 (23:28 +0000)]
Wups, fat-fingered the calculation the first time.  Update comment in
postgresql.conf.sample too.

18 years agoUpdate info about shared memory space calculation to match CVS tip's behavior.
Tom Lane [Fri, 23 Dec 2005 23:02:26 +0000 (23:02 +0000)]
Update info about shared memory space calculation to match CVS tip's behavior.

18 years agoFix make_relative_path() to support cases where target_path and bin_path
Tom Lane [Fri, 23 Dec 2005 22:34:22 +0000 (22:34 +0000)]
Fix make_relative_path() to support cases where target_path and bin_path
differ by more than the last directory component.  Instead of insisting
that they match up to the last component, accept whatever common prefix
they have, and try to replace the non-matching part of bin_path with
the non-matching part of target_path in the actual executable's path.
In one way this is tighter than the old code, because it insists on
a match to the part of bin_path we want to substitute for, rather than
blindly stripping one directory component from the executable's path.
Per gripe from Martin Pitt and subsequent discussion.

18 years agoAllow CREATE/ALTER ROLE PASSWORD NULL to allow restoring the default state
Peter Eisentraut [Fri, 23 Dec 2005 16:46:39 +0000 (16:46 +0000)]
Allow CREATE/ALTER ROLE PASSWORD NULL to allow restoring the default state
of having no password.

18 years agoFix for rearranging encoding id ISO-8859-5 to ISO-8859-8.
Tatsuo Ishii [Fri, 23 Dec 2005 02:11:02 +0000 (02:11 +0000)]
Fix for rearranging encoding id ISO-8859-5 to ISO-8859-8.
Also make the code more robust by searching for target encoding
in the internal charset map.

Problem reported by Sagi Bashari on 2005/12/21.
See "[BUGS] BUG #2120: Crash when doing UTF8<->ISO_8859_8 encoding conversion"
on pgsql-bugs list for more details.

18 years agoAdd an officially exported libpq function to encrypt passwords, and
Tom Lane [Fri, 23 Dec 2005 01:16:38 +0000 (01:16 +0000)]
Add an officially exported libpq function to encrypt passwords, and
modify the previous \password patch to use it instead of depending
on a not-officially-exported function.  Per discussion.

18 years agoAdd quotes around search_path "$user" so that SHOW output can be used in
Bruce Momjian [Fri, 23 Dec 2005 00:38:04 +0000 (00:38 +0000)]
Add quotes around search_path "$user" so that SHOW output can be used in
SET.