Commit Graph

14391 Commits

Author SHA1 Message Date
Bruce Momjian
494f30c953 Prevent locale-aware handling of upper, lower, and initcap when the
locale is C.

Backpatch to 8.0.X because some operating systems were throwing errors
for such operations, rather than ignoring the locale when it was C.
2005-03-16 00:02:49 +00:00
Neil Conway
963ffe4cc4 Wrap the implementation of fork_process() inside #ifndef WIN32 -- this
should hopefully unbreak the Win32 build. Apologies for breaking it in
the first place.
2005-03-16 00:02:39 +00:00
Bruce Momjian
2c4dea126a Issue free space notices to both the user and the server log file. 2005-03-14 20:15:09 +00:00
Tom Lane
28bcc344b5 Make pg_dump emit a useful error message, instead of just dumping core,
if it finds a pg_rewrite entry for which there is no pg_class entry.
Per report from Andrew Slobodyanyk.
2005-03-14 18:57:33 +00:00
Bruce Momjian
e7fb9f18bf Add support for Win1252 encoding.
Roland Volkmann
2005-03-14 18:31:25 +00:00
Bruce Momjian
2b0bb797ec Bump minor version numbers for 8.1 compared to 8.0. 2005-03-14 17:27:50 +00:00
Tom Lane
a9b05bdc83 Avoid O(N^2) overhead in repeated nocachegetattr calls when columns of
a tuple are being accessed via ExecEvalVar and the attcacheoff shortcut
isn't usable (due to nulls and/or varlena columns).  To do this, cache
Datums extracted from a tuple in the associated TupleTableSlot.
Also some code cleanup in and around the TupleTable handling.
Atsushi Ogawa with some kibitzing by Tom Lane.
2005-03-14 04:41:13 +00:00
Neil Conway
c069655441 Allow ALTER FUNCTION to change a function's strictness, volatility, and
whether or not it is a security definer. Changing a function's strictness
is required by SQL2003, and the other capabilities make sense. Also, allow
an optional RESTRICT noise word to be specified, for SQL conformance.

Some trivial regression tests added and the documentation has been
updated.
2005-03-14 00:19:37 +00:00
Bruce Momjian
41e2a80f57 Update comments for new encoding names. 2005-03-14 00:19:13 +00:00
Tom Lane
bb4c88c29a Add missing identification comment, remove entirely inappropriate include
of postgres.h.
2005-03-13 23:32:26 +00:00
Tom Lane
db5ea2c5cb Add some missing #includes. 2005-03-13 23:27:38 +00:00
Tom Lane
dffbbb3e55 Forgot that I had intended to replace division by masking in hash calculation. 2005-03-13 19:59:40 +00:00
Neil Conway
ff02d0a052 Make default_with_oids default to false -- user-created tables will now
no longer include OIDs, unless WITH OIDS is specified or the
default_with_oids configuration parameter is enabled. Update the docs
accordingly.
2005-03-13 09:36:31 +00:00
Neil Conway
9423383748 Update obsolete comment. 2005-03-13 05:19:26 +00:00
Bruce Momjian
ee1bd33dd0 Document aliases for our supported encodings.
Add a few encodings that were not documented.
2005-03-13 01:26:30 +00:00
Tom Lane
78a572bf0c When cloning template0 (or other fully-frozen databases), set the new
database's datallowconn and datfrozenxid to the current transaction ID
instead of copying the source database's values.  This is OK because we
assume the source DB contains no normal transaction IDs whatsoever.
This keeps VACUUM from immediately starting to complain about unvacuumed
databases in the situation where we are more than 2 billion transactions
out from the XID stamp of template0.  Per discussion with Milen Radev
(although his complaint turned out to be due to something else, but the
problem is real anyway).
2005-03-12 21:33:55 +00:00
Tom Lane
c7bbe99452 Fix ALTER DATABASE RENAME to allow the operation if user is a superuser
who for some reason isn't marked usecreatedb.  Per report from Alexander
Pravking.  Also fix sloppy coding in have_createdb_privilege().
2005-03-12 21:11:50 +00:00
Tom Lane
fa5e44017a Adjust the API for aggregate function calls so that a C-coded function
can tell whether it is being used as an aggregate or not.  This allows
such a function to avoid re-pallocing a pass-by-reference transition
value; normally it would be unsafe for a function to scribble on an input,
but in the aggregate case it's safe to reuse the old transition value.
Make int8inc() do this.  This gets a useful improvement in the speed of
COUNT(*), at least on narrow tables (it seems to be swamped by I/O when
the table rows are wide).  Per a discussion in early December with
Neil Conway.  I also fixed int_aggregate.c to check this, thereby
turning it into something approaching a supportable technique instead
of being a crude hack.
2005-03-12 20:25:06 +00:00
Bruce Momjian
5fdd9418ee Handle carriage returns and line feeds in COPY CSV mode.
Andrew Dunstan
2005-03-12 05:41:34 +00:00
Bruce Momjian
45905425a0 Add warning about the need to increase "max_fsm_relations" and
"max_fsm_relations" for vacuums.  Also improve VACUUM VERBOSE final
message text.

Ron Mayer
2005-03-12 05:21:52 +00:00
Bruce Momjian
c82f76e1ac Fix snprintf() to properly handle precision specification for %f. 2005-03-12 04:00:56 +00:00
Tom Lane
a214e9c996 Fix problem with infinite recursion between write_syslogger_file and
elog if the former has trouble writing its file.  Code review for
Magnus' patch to redirect stderr to syslog on Windows (Bruce's version
seems right, but did some minor prettification).

Backpatch both changes to 8.0 branch.
2005-03-12 01:54:44 +00:00
Bruce Momjian
caad817d1c Add fprintf() custom version to libpgport.
Document use of macros for pg_printf functions.

Bump major versions of all interfaces to handle movement of get_progname
from libpq to libpgport in 8.0, and probably other libpgport changes in 8.1.
2005-03-11 19:13:43 +00:00
Bruce Momjian
3bc6bdf322 Define snprintf() to call pg_snprintf() so our own snprintf-like
implementation doesn't export out via libpq and get used by a user
application.
2005-03-11 17:20:35 +00:00
Bruce Momjian
6521cd9ae1 Add 'static' to initdb.c file-global variables. 2005-03-11 15:36:27 +00:00
Bruce Momjian
c5159bc0c0 Mark file-global function and variables as static. 2005-03-11 15:25:31 +00:00
Neil Conway
c129c16492 Slight refactoring and optimization of some code in WaitOnLock(). 2005-03-11 03:52:06 +00:00
Tom Lane
595ed2a855 Make the behavior of HAVING without GROUP BY conform to the SQL spec.
Formerly, if such a clause contained no aggregate functions we mistakenly
treated it as equivalent to WHERE.  Per spec it must cause the query to
be treated as a grouped query of a single group, the same as appearance
of aggregate functions would do.  Also, the HAVING filter must execute
after aggregate function computation even if it itself contains no
aggregate functions.
2005-03-10 23:21:26 +00:00
Bruce Momjian
609e32b929 Add spinlock support for Itanium processor with Intel compiler.
Vikram Kalsi
2005-03-10 21:41:01 +00:00
Neil Conway
164adc4d39 Refactor fork()-related code. We need to do various housekeeping tasks
before we can invoke fork() -- flush stdio buffers, save and restore the
profiling timer on Linux with LINUX_PROFILE, and handle BeOS stuff. This
patch moves that code into a single function, fork_process(), instead of
duplicating it at the various callsites of fork().

This patch doesn't address the EXEC_BACKEND case; there is room for
further cleanup there.
2005-03-10 07:14:03 +00:00
Neil Conway
4cd2fd66f8 Unbreak out-of-tree builds, by fixing a typo. 2005-03-07 23:18:06 +00:00
Neil Conway
30c1aa06bc Replace an instance of $Id$ and an instance of $Header$ with $PostgreSQL$ 2005-03-07 22:59:43 +00:00
Bruce Momjian
61b640e35c Properly implement "Response files" for bcc. Add URL's to describe the
feature for Win32 and bcc.
2005-03-07 21:10:58 +00:00
Tom Lane
a52b4fb131 Adjust creation/destruction of TupleDesc data structure to reduce the
number of palloc calls.  This has a salutory impact on plpgsql operations
with record variables (which create and destroy tupdescs constantly)
and probably helps a bit in some other cases too.
2005-03-07 04:42:17 +00:00
Bruce Momjian
e3d7de6b99 Rename canonical encodings, per Peter:
UNICODE => UTF8
	ALT => WIN866
	WIN => WIN1251
	TCVN => WIN1258

The old codes continue to work.
2005-03-07 04:30:55 +00:00
Neil Conway
c6ad5c2eb4 Here's a tiny fix for a harmless typo in catalog.c:
Too much space is allocated for tablespace file path, I guess the
directory name used to be "pg_tablespaces" instead of "pg_tblspc" at
some point.

Heikki Linnakangas
2005-03-07 04:15:34 +00:00
Tom Lane
849074f9ae Revise hash join code so that we can increase the number of batches
on-the-fly, and thereby avoid blowing out memory when the planner has
underestimated the hash table size.  Hash join will now obey the
work_mem limit with some faithfulness.  Per my recent proposal
(hash aggregate part isn't done yet though).
2005-03-06 22:15:05 +00:00
Tom Lane
5d5087363d Replace the BufMgrLock with separate locks on the lookup hashtable and
the freelist, plus per-buffer spinlocks that protect access to individual
shared buffer headers.  This requires abandoning a global freelist (since
the freelist is a global contention point), which shoots down ARC and 2Q
as well as plain LRU management.  Adopt a clock sweep algorithm instead.
Preliminary results show substantial improvement in multi-backend situations.
2005-03-04 20:21:07 +00:00
Bruce Momjian
5592a6cf46 Move snprintf int64 compatibility letters into a NOT_USED block. 2005-03-02 23:56:53 +00:00
Bruce Momjian
f8aca046bb Fix for %I64d snprintf. 2005-03-02 15:32:39 +00:00
Bruce Momjian
022ece2cf1 snprintf() %I64d code fix. 2005-03-02 15:07:09 +00:00
Bruce Momjian
bb7a3a740c Use our own snprintf() only if NLS is enabled, and support %qd and %I64d. 2005-03-02 14:48:22 +00:00
Bruce Momjian
70d4a9343f Prevent large allocation in snprintf to hold positional parameters.
Allocated size based on format string.
2005-03-02 05:22:22 +00:00
Tom Lane
3104a92866 Another go at making pred_test() handle all reasonable combinations
of AND and OR clauses.  The key point here is that an OR on the
predicate side has to be treated gingerly: we may be able to prove
that the OR is implied even when no one of its components is implied.
For example (x OR y) implies (x OR y OR z) even though no one of x,
y, or z can be individually proven.  This code handles both the
example shown recently by Sergey Koshcheyev and the one shown last
October by Dawid Kuroczko.
2005-03-02 04:10:53 +00:00
Bruce Momjian
47ea7148e3 Fix snprintf on Win32:
*  If vsnprintf() is not before snprintf() in this file, snprintf()
 *  will call the system vsnprintf() on MinGW.
2005-03-02 03:21:52 +00:00
Bruce Momjian
9989e90490 Make port snprintf.c finally thread-safe. 2005-03-02 00:02:13 +00:00
Tom Lane
a2ad04f4b0 Release proclock immediately in RemoveFromWaitQueue() if it represents
no held locks.  This maintains the invariant that proclocks are present
only for procs that are holding or awaiting a lock; when this is not
true, LockRelease will fail.  Per report from Stephen Clouse.
2005-03-01 21:14:59 +00:00
Tom Lane
ccba1d0c9c Allow Trace_lock_oidmin to be set to zero; this is a reasonable
representation of not wanting tracing to be limited by object OID.
2005-03-01 20:23:34 +00:00
Bruce Momjian
03b8efa540 Make snprintf() use already-defined int64/uint64 typedefs rather than
defining its own.
2005-03-01 05:47:28 +00:00
Tom Lane
95871703e3 Adjust OR indexscan logic to not generate redundant condition-free OR
indexscans involving partial indexes.  These would always be dominated
by a simple indexscan on such an index, so there's no point in considering
them.  Fixes overoptimism in a patch I applied last October.
2005-03-01 01:40:05 +00:00
Bruce Momjian
295dd338c3 And while we are on it, I would like to submit minor
changes to make snprintf() vsnprintf() and printf()
functions in src/port/snprintf.c thread-safe.

Nicolai Tufar
2005-03-01 00:38:11 +00:00
Tom Lane
4e89bae704 Revert the logic for expanding AND/OR conditions in pred_test() to what
it was in 7.4, and add some comments explaining why it has to be this way.
I broke it for OR'd index predicates in a fit of code cleanup last summer.
Per example from Sergey Koshcheyev.
2005-03-01 00:24:52 +00:00
Bruce Momjian
949ab3c9b3 snprintf.c has no sys/ioctl.h. Trivial patch below:
Magnus Hagander
2005-02-28 14:16:16 +00:00
Neil Conway
484f0464ff Implement max() and min() aggregates for array types. Patch from Koju
Iijima, reviewed by Neil Conway. Catalog version number bumped,
regression tests updated.
2005-02-28 03:45:24 +00:00
Bruce Momjian
517872c566 Because the change to gettext. Needs a bunch of new includes. Patch
follows:

Magnus Hagander
2005-02-27 22:57:17 +00:00
Bruce Momjian
c5a7a6a3dc Tab indent all actions in bcc32.mak, and do it on win32.mak too for
consistency.  Backpatch only bcc32.mak to 8.0.X.
2005-02-27 22:39:52 +00:00
Neil Conway
5285b35763 Add explicit casts between int4 and boolean. Patch from Sean Chittenden,
editorializing by Neil Conway. Catalog version bumped.
2005-02-27 08:31:30 +00:00
Bruce Momjian
76fa5e6e18 Cause Win32 to output to the event log rather than stderr by default.
Magnus Hagander
2005-02-27 01:02:57 +00:00
Bruce Momjian
afbc30e5d4 Allow Win32 to support the O_SYNC open flag as an wal_sync_method method.
Magnus Hagander
2005-02-27 00:53:29 +00:00
Tom Lane
0fc4ecf935 Finish up the flat-files project: get rid of GetRawDatabaseInfo() hack
in favor of looking at the flat file copy of pg_database during backend
startup.  This should finally eliminate the various corner cases in which
backend startup fails unexpectedly because it isn't able to distinguish
live and dead tuples in pg_database.  Simplify locking on pg_database
to be similar to the rules used with pg_shadow and pg_group, and eliminate
FlushRelationBuffers operations that were used only to reduce the odds
of failure of GetRawDatabaseInfo.
initdb forced due to addition of a trigger to pg_database.
2005-02-26 18:43:34 +00:00
Teodor Sigaev
5553d6572a In accordance to
http://www.pgsql.ru/db/mw/msg.html?mid=2045361

change TimeATD to/from Datum macros.

Re-initdb is needed.
2005-02-25 16:13:29 +00:00
Bruce Momjian
33b92a78da Add linking from /port to bcc makefile. 2005-02-25 15:57:33 +00:00
Tom Lane
41994145d4 My patch this morning was overly hasty; revert code to original state. 2005-02-24 01:11:40 +00:00
Neil Conway
406a942820 Minor code cleanup: remove a variable that was assigned to but never
subsequently referenced.

Found by: Coverity
Fixed by: Sean Chittenden
2005-02-23 23:27:54 +00:00
Neil Conway
3350b3740e This patch optimizes the md5_text() function (which is used to
implement the md5() SQL-level function). The old code did the
following:

1. de-toast the datum
2. convert it to a cstring via textout()
3. get the length of the cstring via strlen()

Since we are treating the datum context as a blob of binary data,
the latter two steps are unnecessary. Once the data has been
detoasted, we can just use it as-is, and derive its length from
the varlena metadata.

This patch improves some run-of-the-mill md5() computations by
just under 10% in my limited tests, and passes the regression tests.

I also noticed that md5_text() wasn't checking the return value
of md5_hash(); encountering OOM at precisely the right moment
could result in returning a random md5 hash. This patch corrects
that. A better fix would be to make md5_hash() only return on
success (and/or allocate via palloc()), but since it's used in
the frontend as well I don't see an easy way to do that.
2005-02-23 22:46:17 +00:00
Tom Lane
b9a87e5219 Un-break plpgsql build by removing unwanted _() usage.
This would be a completely inappropriate place to apply localization
anyway.
2005-02-23 16:23:07 +00:00
Bruce Momjian
e3267b6517 Properly undef _(x) gettext macro. 2005-02-23 04:34:21 +00:00
Neil Conway
5a9dd0dc4f This patch changes makes some significant changes to how compilation
and parsing work in PL/PgSQL:

- memory management is now done via palloc(). The compiled representation
  of each function now has its own memory context. Therefore, the storage
  consumed by a function can be reclaimed via MemoryContextDelete().

  During compilation, the CurrentMemoryContext is the function's memory
  context. This means that a palloc() is sufficient to allocate memory
  that will have the same lifetime as the function itself. As a result,
  code invoked during compilation should be careful to pfree() temporary
  allocations to avoid leaking memory. Since a lot of the code in the
  backend is not careful about releasing palloc'ed memory, that means
  we should switch into a temporary memory context before invoking
  backend functions. A temporary context appropriate for such allocations
  is `compile_tmp_cxt'.

- The ability to use palloc() allows us to simply a lot of the code in
  the parser. Rather than representing lists of elements via ad hoc
  linked lists or arrays, we can use the List type. Rather than doing
  malloc followed by memset(0), we can just use palloc0().

- We now check that the user has supplied the right number of parameters
  to a RAISE statement. Supplying either too few or too many results in
  an error (at runtime).

- PL/PgSQL's parser needs to accept arbitrary SQL statements. Since we
  do not want to duplicate the SQL grammar in the PL/PgSQL grammar, this
  means we need to be quite lax in what the PL/PgSQL grammar considers
  a "SQL statement". This can lead to misleading behavior if there is a
  syntax error in the function definition, since we assume a malformed
  PL/PgSQL construct is a SQL statement. Furthermore, these errors were
  only detected at runtime (when we tried to execute the alleged "SQL
  statement" via SPI).

  To rectify this, the patch changes the parser to invoke the main SQL
  parser when it sees a string it believes to be a SQL expression. This
  means that synctically-invalid SQL will be rejected during the
  compilation of the PL/PgSQL function. This is only done when compiling
  for "validation" purposes (i.e. at CREATE FUNCTION time), so it should
  not impose a runtime overhead.

- Fixes for the various buffer overruns I've patched in stable branches
  in the past few weeks. I've rewritten code where I thought it was
  warranted (unlike the patches applied to older branches, which were
  minimally invasive).

- Various other minor changes and cleanups.

- Updates to the regression tests.
2005-02-22 07:18:27 +00:00
Bruce Momjian
e3ebe2521e Add semicolon so snprintf.c goto has a statement to attach to:
nochar:
    /* nothing */
    ; /* semicolon required because a goto has to be attached to a statement */
2005-02-22 04:57:24 +00:00
Bruce Momjian
0542b1e2fe Use _() macro consistently rather than gettext(). Add translation
macros around strings that were missing them.
2005-02-22 04:43:23 +00:00
Bruce Momjian
b4feafb6ff Add support to port/snprintf.c for position parameter specification:
+ # Determine if printf supports %1$ argument selection, e.g. %5$ selects
+ # the fifth argument after the printf print string.
+ # This is not in the C99 standard, but in the Single Unix Specification (SUS).
+ # It is used in our langauge translation strings.

Nicolai Tufar with configure changes by Bruce.
2005-02-22 03:56:22 +00:00
Bruce Momjian
1808ce7865 Try to get Borland CC to compile.
Backpatch to 8.0.X which doesn't work right now.
2005-02-21 21:22:32 +00:00
Neil Conway
70b64cfbf4 Trivial fix: change the reference to further documentation of pathkeys to
point to its new location.
2005-02-21 06:43:04 +00:00
Tom Lane
bb0aed591f Use SnapshotNow instead of SnapshotSelf for reading the catalogs
during flat-file writing.  The only difference is that SnapshotSelf
would consider tuples of the 'current command' within the current
transaction as valid, where SnapshotNow wouldn't.  We can eliminate
the need for this with one extra CommandCounterIncrement call before
we start reading the catalogs.
2005-02-20 22:02:19 +00:00
Tom Lane
4aefe75553 Remove some no-longer-needed kluges for bootstrapping, in particular
the AMI_OVERRIDE flag.  The fact that TransactionLogFetch treats
BootstrapTransactionId as always committed is sufficient to make
bootstrap work, and getting rid of extra tests in heavily used code
paths seems like a win.  The files produced by initdb are demonstrably
the same after this change.
2005-02-20 21:46:50 +00:00
Bruce Momjian
57e3b0c9db Rename macro to MAKE_EXPIRED_TUPLES_VISIBLE. 2005-02-20 15:01:42 +00:00
Bruce Momjian
f6a7bef915 Fix MAKE_ALL_TUPLES_VISIBLE define. 2005-02-20 15:00:16 +00:00
Bruce Momjian
5845bfb8bf Move define MAKE_ALL_TUPLES_VISIBLE to a more logical place. 2005-02-20 14:57:47 +00:00
Bruce Momjian
59191b2245 I have added a define, MAKE_ALL_TUPLES_VISIBLE, to help people recover
deleted tuples. Of course it is only to be used for disaster recovery.
2005-02-20 04:56:00 +00:00
Tom Lane
3f9aec50e7 Flat file cleanup phase 2: make it work for pg_group. The flat group
file now identifies group members by usesysid not name; this avoids
needing to depend on SearchSysCache which we can't use during startup.
(The old representation was entirely broken anyway, since we did not
regenerate the file following RENAME USER.)  It's only a 95% solution
because if the group membership list is big enough to be toasted out
of line, we cannot read it during startup.  I think this will do for
the moment, until we have time to implement the planned pg_role
replacement for pg_group.
2005-02-20 04:45:59 +00:00
Tom Lane
60b2444cc3 Add code to prevent transaction ID wraparound by enforcing a safe limit
in GetNewTransactionId().  Since the limit value has to be computed
before we run any real transactions, this requires adding code to database
startup to scan pg_database and determine the oldest datfrozenxid.
This can conveniently be combined with the first stage of an attack on
the problem that the 'flat file' copies of pg_shadow and pg_group are
not properly updated during WAL recovery.  The code I've added to
startup resides in a new file src/backend/utils/init/flatfiles.c, and
it is responsible for rewriting the flat files as well as initializing
the XID wraparound limit value.  This will eventually allow us to get
rid of GetRawDatabaseInfo too, but we'll need an initdb so we can add
a trigger to pg_database.
2005-02-20 02:22:07 +00:00
Tom Lane
617d16f4ff New arrangement to always let the bgwriter do checkpoints broke
CHECKPOINT and some other commands in the context of a standalone
backend.  Allow a standalone backend to do its own checkpoints.
2005-02-19 23:16:15 +00:00
Tom Lane
9650d6c7e6 Ensure that the resolved datatype of any unknown Param is propagated
into the sub-SELECT targetlist when it appears in the context
INSERT INTO foo SELECT $1 ...  Per report from Abhijit Menon-Sen.
2005-02-19 19:33:08 +00:00
Tom Lane
a8593a3463 Convert MemoryContextSwitchTo() into an inline function when using GCC. 2005-02-18 21:52:34 +00:00
Bruce Momjian
3110cd237c Update comment on VACUUM FULL.
Manfred Koizar
2005-02-15 03:50:07 +00:00
Bruce Momjian
1d7dfb1496 Document usage of gettext_noop(). 2005-02-15 01:03:47 +00:00
Bruce Momjian
d73e0410bd Improve documentation of signal usage for HAVE_SIGPROCMASK and
non-HAVE_SIGPROCMASK cases in pqinitmask().
2005-02-14 23:02:35 +00:00
Bruce Momjian
ad4f06aeb2 Improve documentation of signal usage for HAVE_SIGPROCMASK and
non-HAVE_SIGPROCMASK cases in pqinitmask().
2005-02-14 23:02:03 +00:00
Tom Lane
db58ee5be9 ALTER LANGUAGE RENAME has never worked. Per Sergey Yatskevich. 2005-02-14 06:17:44 +00:00
Bruce Momjian
bb17a98e3c Print file name and errno string on rmtree failure.
Backpatch to 8.0.X.
2005-02-13 16:50:44 +00:00
Bruce Momjian
67ff8009cf Move plpgsql DEBUG from DEBUG2 to DEBUG1 because it is a user-requested
DEBUG.
2005-02-13 01:25:50 +00:00
Bruce Momjian
7c44e57331 Move plpgsql DEBUG from DEBUG2 to DEBUG1 because it is a user-requested
DEBUG.

Fix a few places where DEBUG1 crept in that should have been DEBUG2.
2005-02-12 23:53:42 +00:00
Tom Lane
e9d693411c Add a regression test to verify that the stack depth checker actually
works (and max_stack_depth is not set too high for the platform).
Inspired by trouble report from Brian Betts.
2005-02-11 22:15:12 +00:00
Neil Conway
975e27377a Adjust input routines for float4, float8 and oid to reject the empty string
as valid input (it was previously treated as 0). This input was deprecated
in 8.0 (and a warning was emitted). Regression tests updated.
2005-02-11 04:09:05 +00:00
Tom Lane
4db84f0880 Fix ANALYZE to accumulate some minimal statistics for an all-null column.
Per gripes from Mike Mascari and Bernd Heller.
2005-02-11 00:41:12 +00:00
Tom Lane
42599b322d Fix SPI cursor support to allow scanning the results of utility commands
that return tuples (such as EXPLAIN).  Per gripe from Michael Fuhr.
Side effect: fix an old bug that unintentionally disabled backward scans
for all SPI-created cursors.
2005-02-10 20:36:28 +00:00
Michael Meskes
5cc8884a5d Fixed changelog entry to list correct bug reporter. 2005-02-10 08:08:52 +00:00
Michael Meskes
7e786a82ca Fixed more parsing bugs in other CREATE statements as pointed out by TANIDA
Yutaka <tanida@sra.co.jp>.
2005-02-10 08:06:35 +00:00
Neil Conway
3df9abd1a5 ALTER TABLE ADD COLUMN exhibits a significant memory leak when adding a
column with a default expression. In that situation, we need to rewrite
the heap relation. To evaluate the new default expression, we use
ExecEvalExpr(); however, this can allocate memory in the current memory
context, and ATRewriteTable() does not switch out of the active portal's
heap memory context. The end result is a rather large memory leak (on
the order of gigabytes for a reasonably sized table).

This patch changes ATRewriteTable() to switch to the per-tuple memory
context before beginning the per-tuple loop. It also removes an explicit
heap_freetuple() in the loop, since that is no longer needed.

In an unrelated change, I noticed the code was scanning through the
attributes of the new tuple descriptor for each tuple of the old table.
I changed this to use precomputation, which should slightly speed up
the loop.

Thanks to steve@deefs.net for reporting the leak.
2005-02-09 23:17:26 +00:00
Michael Meskes
d32b3aec52 Fixed bug in parsing of CREATE AS statement. 2005-02-09 11:26:44 +00:00
Tom Lane
2a6c032503 Repair CLUSTER failure after ALTER TABLE SET WITHOUT OIDS. Turns out
there are corner cases involving dropping toasted columns in which the
previous coding would fail, too: the new version of the table might not
have any TOAST table, but we'd still propagate possibly-wide values of
dropped columns forward.
2005-02-06 20:19:08 +00:00
Tom Lane
4f82112473 Fix bit-rot in ipc_test.c; it didn't include some stuff that pg_shmem.c
now depends on.
2005-02-05 20:07:16 +00:00
Tom Lane
12179c99b1 Marginal hack to merge adjacent ReleaseBuffer/ReadBuffer calls into
ReleaseAndReadBuffer during GIST index searches.  We already did this
in btree and rtree, might as well do it here too.
2005-02-05 19:38:58 +00:00
Neil Conway
11635c3f6f Refactor some duplicated code in lock.c: create UnGrantLock(), move code
from LockRelease() and LockReleaseAll() into it. From Heikki Linnakangas.
2005-02-04 02:04:53 +00:00
Tom Lane
ee467c3530 Fix minor thinko in logic to set dump order when dumping from a pre-7.3
database: aggregates should be dumped in the same pass as operators,
not in the same pass as functions.
2005-02-03 23:38:58 +00:00
Tom Lane
cc4f58f4cd Ensure that all details of the ARC algorithm are hidden within freelist.c.
This refactoring does not change any algorithms or data structures, just
remove visibility of the ARC datastructures from other source files.
2005-02-03 23:29:19 +00:00
Tom Lane
ad476170e9 Improve performance of fmgr.c calling routines for cases with more than
two arguments.  Per suggestions from A. Ogawa.
2005-02-02 22:40:04 +00:00
Tom Lane
fffb5819ca Adjust constant-folding of CASE expressions so that the simple comparison
form of CASE (eg, CASE 0 WHEN 1 THEN ...) can be constant-folded as it
was in 7.4.  Also, avoid constant-folding result expressions that are
certainly unreachable --- the former coding was a bit cavalier about this
and could generate unexpected results for all-constant CASE expressions.
Add regression test cases.  Per report from Vlad Marchenko.
2005-02-02 21:49:09 +00:00
Bruce Momjian
68c4804b08 Add to release checklist:
* Update inet/cidr data types with newest Bind patches
2005-02-02 16:58:52 +00:00
Michael Meskes
4b56bd85c0 Fixed bug in parsing of #line statement in declare section. 2005-02-02 15:37:43 +00:00
Neil Conway
73f630500b Add support for temporary views, including documentation and regression
tests. Contributed by Koju Iijima, review from Neil Conway, Gavin Sherry
and Tom Lane.

Also, fix error in description of WITH CHECK OPTION clause in the CREATE
VIEW reference page: it should be "CASCADED", not "CASCADE".
2005-02-02 06:36:02 +00:00
Neil Conway
f94197ef35 Fix a bug induced by the list-rewrite that resulted in incrementing the
command counter more than necessary. Per report from Michael Fuhr.
2005-02-01 23:28:40 +00:00
Tom Lane
a3f945a1b2 Adjust estimate_num_groups() to not clamp per-relation group count
estimate to less than the number of values estimated for any one grouping
Var, as suggested by Manfred.  This is intuitively right, and what's
more it puts the plan choices in the subselect regression test back the
way they were before ...
2005-02-01 23:08:13 +00:00
Tom Lane
2a8874841d Adjust plpgsql to allow assignment to an element of an array that is
initially NULL.  For 8.0 we changed the main executor to have this
behavior in an UPDATE of an array column, but plpgsql's equivalent case
was overlooked.  Per report from Sven Willenberger.
2005-02-01 19:35:14 +00:00
Tom Lane
0a92c58b7c Sync inet formatting code with recent BIND releases. In particular,
fix bug with inconsistent selection of default mask length for
"class D" addresses.  Per report from Steve Atkins.
2005-02-01 00:59:09 +00:00
Tom Lane
875b0c62fa When dealing with multiple grouping columns coming from the same table,
clamp the estimated number of groups to table row count over 10, instead
of table row count; this reflects a heuristic that people probably won't
group over a near-unique set of columns, and the knowledge that we don't
currently have any way to estimate the correlation of the columns better
than guessing.  This change creates a trivial plan change in one of the
regression tests.
2005-01-28 20:34:27 +00:00
Tom Lane
0bf2587df4 Improve planner's estimation of the space needed for HashAgg plans:
look at the actual aggregate transition datatypes and the actual overhead
needed by nodeAgg.c, instead of using pessimistic round numbers.
Per a discussion with Michael Tiemann.
2005-01-28 19:34:28 +00:00
Tom Lane
c3a4e22e82 pg_aggregate.h fails to compile standalone, for lack of an #include
defining List.
2005-01-28 17:35:53 +00:00
Tom Lane
bb1bd3276e Adjust mkdir_p to do stat() before trying mkdir(). Avoids problems on
Solaris and should be a little faster anyway, since in most scenarios
all but perhaps the last path component will already exist.
2005-01-28 00:34:32 +00:00
Tom Lane
5ae5e3bfe6 Check that aggregate creator has the right to execute the transition
functions of the aggregate, at both aggregate creation and execution times.
2005-01-27 23:42:18 +00:00
Neil Conway
f76730e35a Small patch to move get_grosysid() from catalog/aclchk.c to
utils/cache/lsyscache.c where it can be used by other things.  Also
cleans up both get_usesysid() and get_grosysid() a bit. From Stephen
Frost.
2005-01-27 23:36:15 +00:00
Neil Conway
a885ecd6ef Change heap_modifytuple() to require a TupleDesc rather than a
Relation. Patch from Alvaro Herrera, minor editorializing by
Neil Conway.
2005-01-27 23:24:11 +00:00
Neil Conway
ffaaf27eb4 Provide a more descriptive error message when the return type of an SRF
does not match what the query expected. From Brendan Jurd, minor
editorializing by Neil Conway.
2005-01-27 06:36:42 +00:00
Tom Lane
f07b9689c9 Generalize TRUNCATE to support truncating multiple tables in one
command.  This is useful because we can allow truncation of tables
referenced by foreign keys, so long as the referencing table is
truncated in the same command.

Alvaro Herrera
2005-01-27 03:19:37 +00:00
Neil Conway
4fe201237f Add regression tests for recent cursor/savepoint bug fixed by Alvaro and
Tom.
2005-01-27 01:32:00 +00:00
Tom Lane
aba691b728 Close all cursors created during a failed subtransaction. This is needed
to avoid problems when a cursor depends on objects created or changed in
the same subtransaction.  We'd like to do better someday, but this seems
the only workable answer for 8.0.1.
2005-01-26 23:20:21 +00:00
Tom Lane
bf7737a938 On Windows, set the postmaster executable's stack size to 4MB, so that
it agrees with the default value of max_stack_depth.
2005-01-26 21:55:26 +00:00
Tom Lane
7969649bd5 Minor tweak to avoid unnecessary memory bloat when dumping extremely wide
column values in -d mode.  Per report from Marty Scholes.  This doesn't
completely solve the issue, because we still need multiple copies of the
field value, but at least one copy can be got rid of painlessly ...
2005-01-26 21:24:12 +00:00
Tom Lane
9d58b9645e Make pg_dump and pg_restore handle binary archive formats correctly
when using stdout/stdin on Windows.
2005-01-26 19:44:43 +00:00
Tom Lane
889f038129 Use SHGetFolderPath instead of SHGetSpecialFolderPath to find the
APPDATA directory on Windows.  Magnus Hagander
2005-01-26 19:24:03 +00:00
Tom Lane
fd5437c78b Fix breakage created by addition of separate 'acl pass' in pg_dump.
Also clean up incredibly poor style in TocIDRequired() usage.
2005-01-25 22:44:31 +00:00
Peter Eisentraut
5ca9687fe4 Add missing "ko". 2005-01-25 17:32:00 +00:00
Michael Meskes
d314616d12 Fixed segfault due to freeing a struct definition twice if it was a named struct used in a typedef. 2005-01-25 12:51:31 +00:00
Neil Conway
4405e74355 Regression tests for recent bugfix to ALTER TABLE ADD COLUMN: ensure that
constraints on domain types are properly enforced, even if the newly
added column has no default value. Per bug #1433.
2005-01-25 03:22:19 +00:00
Tom Lane
beaf5ae623 Fix ALTER TABLE ADD COLUMN so that constraints of domain types are
enforced properly when there is no explicit default value for the new
column.  Per report from Craig Perras.
2005-01-24 23:21:57 +00:00
Tom Lane
ad538d8bcd Disallow LOAD to non-superusers. Per report from John Heasman. 2005-01-24 17:46:16 +00:00
Tom Lane
0ffe9f7946 Fix memory leak in rtdosplit, per report from Clive Page. 2005-01-24 02:47:26 +00:00
Bruce Momjian
0960dc2293 Document why CREATE CONSTRAINT TRIGGER doesn't tab complete. 2005-01-23 15:58:50 +00:00
Tom Lane
94e4778a31 The result of a FULL or RIGHT join can't be assumed to be sorted by the
left input's sorting, because null rows may be inserted at various points.
Per report from Ferenc Lutischá¸n.
2005-01-23 02:21:36 +00:00
Bruce Momjian
d08889aa8b Add tools/find_gt_lt to find < and > in SGML source.
Lowercase some uppercase tags so tools is more reliable at finding
problems.
2005-01-23 00:30:59 +00:00
Tom Lane
bdbfd343a2 pg_dump dumped the wrong tablespace for an index (ie, the parent table's
tablespace instead of the index's own), except when the index was created
as a constraint.  Report and fix by Tanida Yutaka.
2005-01-23 00:30:26 +00:00
Tom Lane
3e2e58ba37 New routine _getObjectDescription() failed to cope with some aspects of
pre-7.3 pg_dump archive files: namespace isn't there, and in some cases
te->tag may already be quotified.  Per report from Alan Pevec and
followup testing.
2005-01-23 00:03:54 +00:00
Bruce Momjian
112654c72c Mention issue with < and > in docs. 2005-01-22 23:39:21 +00:00
Neil Conway
5df3fc67a7 This patch updates the regression tests to allow "make installcheck" to
pass if "default_with_oids" is set to false. I took the approach of
explicitly adding WITH OIDS to the CREATE TABLEs where necessary, rather
than tweaking the default_with_oids GUC var.
2005-01-22 05:12:33 +00:00
Neil Conway
fa471dac02 Trivial fix: remove some stray leading whitespace. 2005-01-20 22:54:57 +00:00
Neil Conway
a341a96c01 Refactor transformExpr() by creating separate functions for most of the
expression types.
2005-01-19 23:45:24 +00:00
Neil Conway
d600c1db7a Add some basic regression tests for refcursors in PL/PgSQL. 2005-01-19 04:32:40 +00:00
Neil Conway
b4297c177c This patch makes some improvements to the rtree index implementation:
(1) Keep a pin on the scan's current buffer and mark buffer. This
avoids the need to do a ReadBuffer() for each tuple produced by the
scan. Since ReadBuffer() is expensive, this is a significant win.

(2) Convert a ReleaseBuffer(); ReadBuffer() pair into
ReleaseAndReadBuffer(). Surely not a huge win, but it saves a lock
acquire/release...

(3) Remove a bunch of duplicated code in rtget.c; make rtnext() handle
both the "initial result" and "subsequent result" cases.

(4) Add support for index tuple killing

(5) Remove rtscancache(): it is dead code, for the same reason that
gistscancache() is dead code (an index scan ought not be invoked with
NoMovementScanDirection).

The end result is about a 10% improvement in rtree index scan perf,
according to contrib/rtree_gist/bench.
2005-01-18 23:25:55 +00:00
Neil Conway
1f5299bc3f Replace the use of "0" with "NULL" where appropriate in dllist.c, for
good style and to satisfy sparse. From Alvaro Herrera.
2005-01-18 22:59:32 +00:00
Bruce Momjian
b4e7e9ad6f Win32 8.1 stamp. 2005-01-18 14:39:46 +00:00
Bruce Momjian
31197bbdf5 Update version stamps for 8.1 as listed in RELEASE_CHANGES. 2005-01-18 05:00:35 +00:00
Peter Eisentraut
f87e5b295c Translation updates 2005-01-17 21:21:18 +00:00
PostgreSQL Daemon
c22b7eccd3 its that time ... tag it for release 2005-01-17 20:47:10 +00:00
Peter Eisentraut
1723f1f7ae Translation updates 2005-01-17 20:27:44 +00:00
Peter Eisentraut
bb60ef23ed Translation updates 2005-01-17 14:55:34 +00:00
Peter Eisentraut
f099cb0ede Translation updates 2005-01-17 10:00:06 +00:00
Peter Eisentraut
3332c0722d Fix format string error. 2005-01-17 09:06:31 +00:00
Neil Conway
48e2bb13c9 This trivial patch adds a regression test for CASE expressions that use
an untyped literal in the CASE's test expression. This adds test
coverage for a bug that was fixed by Tom on January 12.
2005-01-17 03:39:37 +00:00
Peter Eisentraut
0d45116eb0 Translation updates 2005-01-17 03:09:08 +00:00
Peter Eisentraut
0be1166352 New translation 2005-01-17 03:05:37 +00:00
Peter Eisentraut
83ef003f2c Translation updates 2005-01-17 02:41:50 +00:00
Tom Lane
299ae4356b Adjust warning message about Windows console code page to point to
the right place in the docs, and gettext()ify it.
2005-01-15 05:43:06 +00:00
Tom Lane
7a6a7d57b4 pg_regress now needs to know that Windows hasn't got unix sockets,
per Andrew Dunstan.  Also, don't override the user's value of PGHOST
in the 'make installcheck' case.  I think the latter was an ill-considered
workaround for the Windows code back when libpq didn't properly default
to localhost on Unix-socket-less platforms.
2005-01-15 04:15:51 +00:00
Tom Lane
9fa1843454 postgres -boot would print the wrong program name in event of a
failure in SelectConfigFiles().  Cosmetic issue, but ...
2005-01-14 21:08:44 +00:00
Tom Lane
9d83358499 Update obsolete comment, per Alvaro. 2005-01-14 17:53:33 +00:00
Tom Lane
982e998064 Add missing gettext() calls in find_my_exec(). It's probably too late
to get these strings translated, but we may as well have them be
translatable as not.
2005-01-14 17:47:49 +00:00
Tom Lane
ce6e2fada0 plperl trigger handler tried to fetch new/old tuples even when fired
as a statement trigger :-(.  Per report from Sokolov Yura.
2005-01-14 16:25:42 +00:00
Peter Eisentraut
75112d4b5d Translation updates 2005-01-14 08:57:06 +00:00
Bruce Momjian
29e58330a6 Change Win32 client configuration files from *.txt to *.conf. 2005-01-14 00:25:56 +00:00
Tom Lane
2730eb9ae4 Change exec_eval_simple_expr's param list allocation call from
MemoryContextAllocZero back to MemoryContextAlloc, same as it was in 7.4.
The zeroing is unnecessary since all the meaningful fields are filled in
just below.  I had made it do that out of neatnik-ism, but some testing
with an example provided by Pavel Stehule showed that the zeroing was
accounting for about 5% of the runtime in a compute-intensive plpgsql
function.  That seems a bit high of a price for neatnik-ism...
2005-01-13 23:07:34 +00:00
Peter Eisentraut
66d8165a8b Translation updates 2005-01-13 21:24:40 +00:00
Peter Eisentraut
f680aaeafa Translation updates 2005-01-13 19:06:37 +00:00
Tom Lane
3810c23fe4 Adjust src/tutorial Makefile so that it can use pgxs. This allows the
tutorial to be used without necessarily having a configured source tree.
2005-01-13 18:23:22 +00:00
Tom Lane
c06b31dc31 get_names_for_var didn't do recursion for unnamed JOIN vars quite right;
got it wrong when the JOIN was in an outer query level.  Per example from
Laurie Burrow.  Also fix same issue in markTargetListOrigin.  I think the
latter is only a latent bug since we currently don't apply markTargetListOrigin
except at the outer level ... but should do it right anyway.
2005-01-13 17:19:10 +00:00
Tom Lane
cbd8913245 Remove unportable assumption that it's okay to use the target buffer
of an sprintf() as a source string.  Demonstrably does not work with
recent gcc and/or glibc on some platforms.
2005-01-13 01:40:13 +00:00
Tom Lane
40f32f351a Add conditional inclusion of <com_err.h> to support old 'heimdal'
version of Kerberos.  Per report from Reinhard Max.
2005-01-12 21:37:54 +00:00
Tom Lane
2ec1aa4cb8 Re-allow an untyped literal as the test expression of a CASE, ie
CASE 'a' WHEN 'a' THEN 1 ELSE 2 END.  This worked in 7.4 and before
but had been broken due to premature freezing of the type of the test
expression.  Per gripe from GÄbor SzÃcs.
2005-01-12 17:32:36 +00:00
Tom Lane
8251e0b2fb Increase MAXLISTEN to a more generous value, and add an error message
telling when it has been exceeded.  Per trouble report from
Jean-GÅrard Pailloncy.
2005-01-12 16:38:17 +00:00
Tom Lane
6bb51348b0 Ensure that the test postmaster started by 'make check' listens to as
few 'listen_addresses' as possible --- on most systems, none at all,
just the Unix socket.  This avoids spurious check failures due to bogus
DNS setups, and is probably a good idea from a security standpoint anyway.
Per trouble report from Jean-GÅrard Pailloncy.
2005-01-12 16:19:51 +00:00
Tom Lane
d3d00715e2 interval_out failed to mention 'ago' for negative intervals in SQL and
GERMAN datestyles.  Ancient bug reported by Terry Lee Tucker.
2005-01-11 18:33:46 +00:00
Tom Lane
5f0a468454 Fix tracking of dump-order dependencies for stand-alone composite types.
Per report from Robert Koepferl.
2005-01-11 17:55:25 +00:00
Tom Lane
e24801654a plperl was not being quite paranoid enough about detecting 'undef' values
returned by Perl.  Per report from Nicolas Addington.
2005-01-11 06:08:45 +00:00
PostgreSQL Daemon
6ff408707e up release to rc5 2005-01-11 05:29:21 +00:00
Tom Lane
38498a28df Clean up pg_dump's handling of ownership for indexes (including
pkey/unique constraint indexes) and schemas.  Per report from
Michael Fuhr.
2005-01-11 05:14:13 +00:00
Tom Lane
fc299179df Separate the functions of relcache entry flush and smgr cache entry flush
so that we can get the size of a shared inval message back down to what it
was in 7.4 (and simplify the logic too).  Phase 2 of fixing the
'SMgrRelation hashtable corrupted' problem.
2005-01-10 21:57:19 +00:00
Tom Lane
0ce4d56924 Phase 1 of fix for 'SMgrRelation hashtable corrupted' problem. This
is the minimum required fix.  I want to look next at taking advantage of
it by simplifying the message semantics in the shared inval message queue,
but that part can be held over for 8.1 if it turns out too ugly.
2005-01-10 20:02:24 +00:00
Michael Meskes
cc7cd8774a Fixed segfault in adjust_informix due to missing varchar type. 2005-01-10 12:58:30 +00:00
Peter Eisentraut
c2719ae503 Translation updates 2005-01-10 08:14:35 +00:00
Tom Lane
a54ea1f75e Comment out check for substitution of private key file on Windows,
since st_ino can't be trusted on that platform.  Per report from T.J.
2005-01-10 00:37:12 +00:00
Tom Lane
8e4f4078d8 Un-break MSVC build, per Andrew Dunstan. 2005-01-10 00:19:51 +00:00
Tom Lane
521e8888e9 Undo an unadvertised change in the API of pg_atoi. In all previous
releases, a nonzero 'c' argument meant that the input string could be
terminated by either that character or \0.  Recent refactoring broke
that, causing the thing to scan for 'c' only.  This went undetected
because no part of the main code actually passes nonzero 'c'.  However
it broke tsearch2 and possibly other user-written code that assumed
the old definition.  Per report from Tom Hebbron.
2005-01-09 21:03:19 +00:00
Peter Eisentraut
84620860d9 New translations 2005-01-09 17:38:19 +00:00
Peter Eisentraut
a58e738cd7 Translation updates 2005-01-09 17:32:05 +00:00
Peter Eisentraut
8511a1b734 New translation 2005-01-09 17:10:29 +00:00
Peter Eisentraut
11ca6d580c Translation updates 2005-01-09 17:07:27 +00:00
Tom Lane
8afe005f42 Consistently use geteuid() not getuid(); there were a few places deviating
from our long-established standard.
2005-01-08 22:51:15 +00:00
Tom Lane
3b5152cac6 Improve comments in sample config files. 2005-01-07 23:59:17 +00:00
PostgreSQL Daemon
75a59ad6d1 upgrade tags to rc4 2005-01-07 02:44:31 +00:00
Tom Lane
bbeeea1437 Minor mop-up for Windows home-directory stuff, per Magnus. 2005-01-06 21:41:45 +00:00
Tom Lane
c2f7e3e227 Don't list port twice in SUBDIRS. Caught by Honda Shigehiro. 2005-01-06 21:00:24 +00:00
Tom Lane
6f864be004 Revert -Wl, change to Makefile.osf, as the allegedly more standard
syntax apparently does not work for all toolchains on that platform.
Per Honda Shigehiro.
2005-01-06 20:56:50 +00:00
Tom Lane
4717992b4e Instead of a bare recv() to read the server's response to an SSL
request packet, use pqReadData().  This has the same effect since
conn->ssl isn't set yet and we aren't expecting more than one byte.
The advantage is that we will correctly detect loss-of-connection
instead of going into an infinite loop.  Per report from Hannu Krosing.
2005-01-06 20:06:58 +00:00
Tom Lane
a3f98d5795 Adjust lookup of client-side profile files (.pgpass and so on) as per
discussion on pgsql-hackers-win32 list.  Documentation still needs to
be tweaked --- I'm not sure how to refer to the APPDATA folder in
user documentation.
2005-01-06 18:29:11 +00:00
Dennis Bjorklund
b8139ea397 Translation updates 2005-01-06 12:23:33 +00:00
Dennis Bjorklund
90f1507275 Translation updates 2005-01-06 12:14:36 +00:00
Dennis Bjorklund
883730edc8 Translation updates 2005-01-06 11:44:12 +00:00
Peter Eisentraut
381de28eb0 Translation updates 2005-01-06 09:07:17 +00:00
Peter Eisentraut
c43bd11683 Translation updates 2005-01-06 08:46:07 +00:00
Tom Lane
d97ae8230e Make the various places that determine the user's "home directory"
consistent.  On Unix we now always consult getpwuid(); $HOME isn't used
at all.  On Windows the code currently consults $USERPROFILE, or $HOME
if that's not defined, but I expect this will change as soon as the win32
hackers come to a consensus.  Nothing done yet about changing the file
names used underneath $USERPROFILE.
2005-01-06 01:00:12 +00:00
Tom Lane
fdbeaaf90a Keep translations in step with synopses. 2005-01-06 00:11:56 +00:00
Tom Lane
edf3832b5c Clean up code in libpq that obtains user's home directory: make a single
subroutine that can hide platform dependencies.  The WIN32 path is still
a stub, but I await a fix from one of the win32 hackers.
Also clean up unnecessary #ifdef WIN32 ugliness in a couple of places.
2005-01-04 23:18:25 +00:00
Tom Lane
d877de9e6b Make pg_dump --oids work when default_with_oids = off. Per report from
Michael Fuhr.
2005-01-04 22:27:46 +00:00
Peter Eisentraut
073149c6b2 Translation update 2005-01-04 19:42:01 +00:00
Peter Eisentraut
852b4ae5c2 Fix typo 2005-01-04 07:06:01 +00:00
Peter Eisentraut
a2a5526ecb Translation updates 2005-01-03 22:39:24 +00:00
Tom Lane
c9d8edc906 Repair bufmgr deadlock problem reported by Michael Wildpaner. Must take
share lock on a buffer being written out before releasing BufMgrLock in
the BufferAlloc code path; if we do it later we might block on someone
who's re-pinned the buffer.  I believe this is only an issue for BufferAlloc
and not the other places that call FlushBuffer.  BufferSync must continue
to do it the old way since it may well be trying to write buffers that
other backends have pinned; but it should not be holding any conflicting
locks.  FlushRelationBuffers is okay since it's got exclusive lock at the
relation level.
2005-01-03 18:49:41 +00:00
Bruce Momjian
4ea43bdfdf Update copyright script. 2005-01-03 06:16:54 +00:00
Tom Lane
a17e589046 Adjust a few more copyright notices to match the format expected by
the src/tools/copyright script.
2005-01-01 22:14:33 +00:00
Tom Lane
7e1c8ef4fc Some more missed copyright notices. Many of these look like they
should have been caught by the src/tools/copyright script ... why
weren't they?
2005-01-01 20:44:34 +00:00
Bruce Momjian
2daed8c5b3 Update copyrights that were missed. 2005-01-01 05:43:09 +00:00
PostgreSQL Daemon
2ff501590b Tag appropriate files for rc3
Also performed an initial run through of upgrading our Copyright date to
extend to 2005 ... first run here was very simple ... change everything
where: grep 1996-2004 && the word 'Copyright' ... scanned through the
generated list with 'less' first, and after, to make sure that I only
picked up the right entries ...
2004-12-31 22:04:05 +00:00
Tom Lane
7cd25199a9 Clean up win32ver.o on Windows, per Magnus. 2004-12-31 19:09:37 +00:00
Tom Lane
0686fe331f make clean must remove zic$(X) for Windows, per Magnus. 2004-12-31 19:01:54 +00:00
Michael Meskes
1fbdb6bc9f Fixed segfault in connect when specifying no database name. 2004-12-30 09:36:37 +00:00
Tom Lane
96ecf9d5aa Support Sun's compiler on SunOS4 (a/k/a Solaris 9). Per ayan@ayan.net 2004-12-29 23:47:40 +00:00
Tom Lane
eee5abce46 Refactor EXEC_BACKEND code so that postmaster child processes reattach
to shared memory as soon as possible, ie, right after read_backend_variables.
The effective difference from the original code is that this happens
before instead of after read_nondefault_variables(), which loads GUC
information and is apparently capable of expanding the backend's memory
allocation more than you'd think it should.  This should fix the
failure-to-attach-to-shared-memory reports we've been seeing on Windows.
Also clean up a few bits of unnecessarily grotty EXEC_BACKEND code.
2004-12-29 21:36:09 +00:00
Peter Eisentraut
e14018dc5e Translation updates 2004-12-29 02:30:16 +00:00
Tom Lane
d9236a69fc Make libpq default to localhost connections on machines without Unix-domain
sockets, rather than failing as it formerly did.  Revert the
thereby-obsoleted patch to make psql supply the localhost default.
2004-12-28 23:17:54 +00:00
Tom Lane
361f354109 Make sure --with-pgport option propagates into postgresql.conf.
Per gripe from Josh Berkus.
2004-12-27 20:39:21 +00:00
Tom Lane
370f90970d Cause pg_hba.conf file inclusion (@file stuff) to behave as documented,
that is, files are sought in the same directory as the referencing file.
Also allow absolute paths in @file constructs.  Improve documentation
to actually say what is allowed in an included file.
2004-12-27 19:19:24 +00:00
Peter Eisentraut
6dac6b89a0 Translation update 2004-12-27 14:24:22 +00:00
Tom Lane
42f167f8b1 Fix func_ptr declaration for netbsd-mac68k, per Rémi Zara. 2004-12-26 23:20:12 +00:00
Tom Lane
5cfdd68f84 Rearrange include file contents into a saner order, add inclusion of
<signal.h>.  Per Andrew Dunstan.
2004-12-26 19:20:33 +00:00
Tom Lane
f0c08ae7c9 Remove 'optimization' to skip resolve_symlinks() when the found
executable file isn't itself a symlink.  We still need to run the
algorithm so that any directory symlinks in the path to the
executable are replaced by a true path.  Noticed this on seeing
pg_config give me a completely wrong answer for --pkglibdir when
I called it through a symlink to the installation bindir.
2004-12-24 16:55:43 +00:00
Tom Lane
9405e14e00 Switch order of WHERE clauses in tab completion queries, as suggested
by Rod Taylor.  The foo_is_visible() functions are relatively slow and
so it pays to check them after checking the name pattern match.
2004-12-24 15:42:05 +00:00
Tom Lane
08457504f0 Avoid memory leakage during VACUUM FULL when an index expression or
index predicate uses temporary memory for evaluation.  Per example
from Jean-Gerard Pailloncy.
2004-12-23 22:42:15 +00:00
Bruce Momjian
f9a134b6e4 Add missing ecpg prototype for newly added functions. 2004-12-23 13:19:17 +00:00
Michael Meskes
f0299325e4 Added PGTYPEStimestamp_add_interval written by Dave Cramer.
Fixed parsing of defines to make sure they used more than once.
2004-12-23 10:46:10 +00:00
Tom Lane
3621657a61 Use float8-small-is-zero for netbsd on m68k, per Rémi Zara. 2004-12-23 03:49:40 +00:00
Tom Lane
63a90720b4 Remove extra parenthesis. 2004-12-23 00:03:24 +00:00
Tom Lane
bfa5f30481 Awhile back I added some code to StartupCLOG() to forcibly zero out
the remainder of the current clog page during system startup.  While
this was a good idea, it turns out the code fails if nextXid is
exactly at a page boundary, because we won't have created the "current"
clog page yet in that case.  Since the page will be correctly zeroed
when we execute the first transaction on it, the solution is just to
do nothing when exactly at a page boundary.  Per trouble report from
Dave Hartwig.
2004-12-22 18:45:49 +00:00
Tom Lane
71d21577de Add '-Wl,' prefix to linker switches consistently. Remove shlib_symbolic
macros, which aren't used anywhere and haven't been for some time.
2004-12-21 18:47:42 +00:00
Tom Lane
96b42de9a8 exec_eval_simple_expr() needs to do CommandCounterIncrement() not just
GetTransactionSnapshot() to ensure ActiveSnapshot advances properly.
Sigh.  Extend regression test so it reveals this error too.
2004-12-21 18:33:36 +00:00
Bruce Momjian
c21c658b36 Add error checking for starting a win32 service using pg_ctl. 2004-12-21 17:58:30 +00:00
Bruce Momjian
556e72124c Return proper error exit code on pg_ctl -w start failure. 2004-12-21 17:38:01 +00:00
Peter Eisentraut
ca4736ab92 Translation update 2004-12-21 11:14:18 +00:00
PostgreSQL Daemon
2ddcd4cad5 tag files for rc2 2004-12-21 02:53:33 +00:00
Tom Lane
f0cbfcd399 Patch to make libpq.rc be a built-for-distribution file was a few
bricks shy of a load.
2004-12-21 02:14:41 +00:00
Bruce Momjian
93b808e9c9 Mention libpq.rc.in is now the file to update for releases. 2004-12-20 21:00:48 +00:00
Tom Lane
6cd2c9f752 Ensure that 'disabling statistics collector' is logged in all failure
paths of pgstat_init.  Responds to confusion exhibited by Christoph Haller.
2004-12-20 19:17:56 +00:00
Tom Lane
ed06824978 Add support for Latin9 encoding in to_ascii(). Jaime Casanova 2004-12-20 19:00:37 +00:00
Tom Lane
b5ae0d69da Mark the TimeZone parameter as GUC_REPORT, so that JDBC can find out
when it changes.  Per request from Kris Jurka.
2004-12-20 18:15:07 +00:00
Tom Lane
80855ba8ca In pipe_read_line Windows code, loop to ensure we get a whole line
from the child process; fixes observed problems when the returned
version number is '8.0.0' rather than '8.0.0rc1'.  Magnus Hagander
2004-12-20 17:40:59 +00:00
Tom Lane
da59a70c09 Remove direct inclusions of <com_err.h> as well as configure test for
its presence.  This amounts to desupporting Kerberos 5 releases 1.0.*,
which is small loss, and simplifies use of our Kerberos code on platforms
with Red-Hat-style include file layouts.  Per gripe from John Gray and
followup discussion.
2004-12-20 17:13:41 +00:00
Tom Lane
59bffa3707 Adjust pg_resetxlog to handle 8.0 WAL file names properly. 2004-12-20 01:42:11 +00:00
Tom Lane
e184663b24 plpgsql's exec_eval_simple_expr() now has to take responsibility for
advancing ActiveSnapshot when we are inside a volatile function.
Per example from Gaetano Mendola.  Add a regression test to catch
similar problems in future.
2004-12-19 20:20:27 +00:00
Tom Lane
1553be4a0b Prevent evaluation of backticks while discarding unwanted arguments
after an unknown or failed psql backslash command, and also while
discarding "extra" arguments of a putatively valid backslash command.
In the case of an unknown/failed command, make sure we discard the
whole rest of the line, rather than trying to resume at the next
backslash.  Per discussion with Thomer Gil.
2004-12-19 19:39:47 +00:00
Bruce Momjian
f69cf1fc14 Mention why unixware doesn't handle threading in 8.0. 2004-12-19 04:09:48 +00:00
Bruce Momjian
f167dc8802 Test for POSIX.1c 2-arg sigwait() and fail on single-arg version. 2004-12-19 04:06:23 +00:00
Bruce Momjian
9af9320750 Add Win32 version stamps that increment each day for proper SYSTEM32
DLL pginstaller installs.
2004-12-19 02:16:31 +00:00
Bruce Momjian
08690d0688 Allow NetBSD, m64k to compile the ASM spinlock code.
R?mi Zara
2004-12-18 22:12:52 +00:00
Tom Lane
d0a6042f9f Make array_cat more paranoid about checking datatypes in empty arrays. 2004-12-17 20:59:58 +00:00
Tom Lane
bd3bc4076e array_map failed to insert correct result type in an empty array.
Per example from Florian Pflug.
2004-12-17 20:58:26 +00:00
Tom Lane
1ef38f2691 In a PGXS build, expect to find the postgres executable already installed,
rather than in $(top_builddir)/src/backend/postgres.  Sean Chittenden
2004-12-17 03:52:49 +00:00
Neil Conway
480777e56c Allow 'ELSEIF' as an alternative to 'ELSIF' in PL/PgSQL. There have been
several reports of users being confused when they attempt to use ELSEIF
and run into trouble due to PL/PgSQL's lax parser. The parser will be
improved for 8.1, but we can fix most of the problem by allowing ELSEIF
for now.
2004-12-17 03:51:36 +00:00
Tom Lane
dfdae5d63c Hook up the plpython result-object nrows and status methods correctly.
Adjust documentation to match current reality.
2004-12-17 02:14:48 +00:00
Tom Lane
ff5a354ece Fix is-it-time-for-a-checkpoint logic so that checkpoint_segments can
usefully be larger than 255.  Per gripe from Simon Riggs.
2004-12-17 00:10:36 +00:00
Bruce Momjian
ccac38ffb4 Update release changes list to mention pg_config.h.win32. 2004-12-16 22:11:06 +00:00
Bruce Momjian
e757f884bc Update version for Win32-client include file. 2004-12-16 22:05:07 +00:00
Tom Lane
8ec9608326 Cause configure --with-tcl to check for presence of <tcl.h>, as per
gripe from John Gray.  Also fix thinko in pltcl Makefile: if a special
Tcl include directory is specified, that ought to be searched first.
2004-12-16 20:41:01 +00:00
Bruce Momjian
d0c01f29df Allow --enable-thread-safety with --disable-shared libraries by passing
PTHREAD_LIBS to all libpq-usage builds.
2004-12-16 18:13:07 +00:00
Bruce Momjian
b5498167d7 Allow AIX to use --enable-thread-safety by passing PTHREAD_LIBS to
binary compiles, and adjust configure tests for AIX.
2004-12-16 17:48:29 +00:00
Peter Eisentraut
cd380b99cd Translation updates 2004-12-16 11:31:55 +00:00
Tom Lane
dd29fc2f61 Fix another place broken by new List implementation :-(. Per example
from goranpop@nspoint.net.  I think this escaped notice because in
simple cases the list is NIL on entry.
2004-12-15 21:13:34 +00:00
Tom Lane
84dbd5a8f6 Disallow SETOF in the input of parseTypeString(). Formerly it was
silently ignored, allowing one to write bizarre things like
	DECLARE x setof int;
in plpgsql.  This has misled at least one novice into thinking that
plpgsql variables could be sets ...
2004-12-15 20:15:17 +00:00
Tom Lane
c3d6c7d8f9 Calculation of keys_are_unique flag was wrong for cases involving
redundant cross-datatype comparisons.  Per example from Merlin Moncure.
2004-12-15 19:16:39 +00:00
Peter Eisentraut
6ad835f55f New translations 2004-12-15 17:50:20 +00:00
Peter Eisentraut
fe4d1df375 Translation updates 2004-12-15 17:39:54 +00:00
Peter Eisentraut
b8bbd15892 Translation update 2004-12-15 17:14:11 +00:00
Tom Lane
86a069bbed Cope with circularities involving a view's ON SELECT rule. I originally
thought there couldn't be any, but the folly of this was exposed by an
example from andrew@supernews.com 5-Dec-2004.  The patch applies the
identical logic already used for table constraints and defaults to ON
SELECT rules, so I have reasonable confidence in it even though it might
look like complicated logic.
2004-12-14 22:16:32 +00:00
Tom Lane
94e467061e Fix pg_dump to ensure that a comment on a table CHECK constraint cannot
be emitted too soon.  The previous code got this right in the case where
the CHECK was emitted as a separate ALTER TABLE command, but not in the
case where the CHECK is emitted right in CREATE TABLE.  Per report from
Slawomir Sudnik.

Note: this code is pretty ugly; it'd perhaps be better to treat comments
as independently sortable dump objects.  That'd be much too invasive a
change for RC time though.
2004-12-14 21:35:20 +00:00
Peter Eisentraut
ec4aa14b68 Fix typo 2004-12-14 11:11:20 +00:00
Neil Conway
75e39c441e Prevent pg_resetxlog from being run as root. If this is allowed, some
root-owned files will be written to the data directory, leaving it in an
unusable state.
2004-12-14 01:59:41 +00:00
Peter Eisentraut
93c4a14e5c New translation 2004-12-13 22:54:20 +00:00
Peter Eisentraut
6ccb04f341 Translation updates 2004-12-13 21:49:10 +00:00
Bruce Momjian
36af887d6b Clearify which version numbers are bumped for major and minor releases. 2004-12-13 17:28:54 +00:00
Peter Eisentraut
5483936ed3 New translations 2004-12-13 16:30:53 +00:00
Peter Eisentraut
965dd791f4 Translation updates 2004-12-13 16:28:23 +00:00
Tom Lane
d4b49b4bd4 Avoid generating excess (and illegal) parentheses around an aliased JOIN
in prettyprint mode.  Andreas Pflug
2004-12-13 00:33:06 +00:00
Neil Conway
cda3e5836e Add regression tests for the fix committed by Tom for casting between
the row types of parent/child tables.
2004-12-12 22:49:50 +00:00
Tom Lane
c604ed56e3 PREPARE and EXPLAIN need to copy the source query just like we recently
had to do in DECLARE CURSOR.  AFAICS these are all the places affected.
PREPARE case per example from Michael Fuhr, EXPLAIN case located by
grepping for planner calls ...
2004-12-12 20:17:06 +00:00
Peter Eisentraut
f9a6ba184a Add missing newlines at end of error messages. 2004-12-12 18:26:29 +00:00
Peter Eisentraut
373825c9cd Translation updates 2004-12-12 18:09:18 +00:00
Peter Eisentraut
cf5539112c Fix problems with certain shells (e.g., FreeBSD, Cygwin) clearing the
exit status in multiline traps.
2004-12-12 15:34:15 +00:00
Tom Lane
984791e0e1 Upgrade formrdesc() so that it can correctly initialize the tupledesc
(rd_att) field of a nailed-in-cache relcache entry.  This fixes the bug
reported by Alvaro 8-Dec-2004; I believe it probably also explains
Grant Finnemore's report of 10-Sep-2004.

In an unrelated change in the same file, put back 7.4's response to
failure to rename() the relcache init file, ie, unlink the useless
temp file.  I did not put back the warning message, since there might
actually be some reason not to have that.
2004-12-12 05:07:50 +00:00
Tom Lane
12b1b5d837 Instead of supposing (wrongly, in the general case) that the rowtype
of an inheritance child table is binary-compatible with the rowtype of
its parent, invent an expression node type that does the conversion
correctly.  Fixes the new bug exhibited by Kris Shannon as well as a
lot of old bugs that would only show up when using multiple inheritance
or after altering the parent table.
2004-12-11 23:26:51 +00:00
Peter Eisentraut
b89df8fe60 Translation updates 2004-12-11 20:19:24 +00:00
Peter Eisentraut
a31ec86ebe Translation updates 2004-12-11 20:10:14 +00:00
Peter Eisentraut
e82cd783a1 Translation updates 2004-12-11 19:56:07 +00:00
Peter Eisentraut
4de679c710 Translation updates 2004-12-11 19:45:34 +00:00