Commit Graph

14391 Commits

Author SHA1 Message Date
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
Peter Eisentraut
10e960fb39 Translation updates 2004-12-11 19:09:08 +00:00
Peter Eisentraut
022a00b5f3 Translation updates 2004-12-11 19:03:49 +00:00
Tom Lane
d5df606cb2 ActiveSnapshot must be set to something valid while running deferred
triggers during COMMIT.  Per trouble report from Frank van Vugt.
2004-12-06 23:57:17 +00:00
Peter Eisentraut
8efc721d52 Translation updates 2004-12-06 22:10:42 +00:00
Michael Meskes
ec7806db2c Fixed bug in parsing of typedef'ed array sizes.
Synced parser.
2004-12-06 20:35:35 +00:00
Neil Conway
b3f3092cad Fix off-by-1 bug in pg_ctl in -D handling, per report from pjmodos@parba.cz 2004-12-06 01:09:20 +00:00
Bruce Momjian
e09567d850 Back out addition of Win1252 encoding. 2004-12-04 18:19:33 +00:00
Tom Lane
59b3b8014d As long as we're forcing an ORDER BY in these four join queries, we had
better make sure the sort order is totally specified; else we get burnt
by platform-specific behavior of qsort() with equal keys.  Per buildfarm
results.
2004-12-03 22:19:28 +00:00
Tom Lane
8090616847 Use StrNCpy not strncpy to fill hash key, to ensure the resulting key
is null-terminated.  I think this is not a real bug because the parser
would always have truncated the identifier to NAMEDATALEN-1 already,
but let's be safe.  Per report from Klocwork.
2004-12-03 21:26:31 +00:00
Tom Lane
2ee3a720a4 Adjust help message for --no-owner, per Alvaro Herrera. 2004-12-03 18:48:19 +00:00
Bruce Momjian
cb99679aad > If it bothers you that much. I'd make a flag, cleared at the start of
> each COPY, and then where we test for CR or LF in CopyAttributeOutCSV,
> if the flag is not set then set it and issue the warning.

Andrew Dunstan
2004-12-03 17:13:28 +00:00
Bruce Momjian
9ef75bb21c Fix compile breakage from SIGPIPE fix for threading. 2004-12-03 01:58:43 +00:00
Bruce Momjian
08e0b34bad Back out fix for Unicode characters above 0x10000 2004-12-03 01:20:33 +00:00
Tom Lane
5d7a555d0f Code review for recent libpq changes. Be more careful about error
handling in SIGPIPE processing; avoid unnecessary pollution of application
link-symbol namespace; spell 'pointer to function' in the conventional
way.
2004-12-02 23:20:21 +00:00
Bruce Momjian
1d006ce95e > I have installed your patch and adjusted the names of the standards
> throughout to the spellings suggested by your book.

Great.

A follow-up patch for current CVS HEAD is attached, and available at
http://troels.arvin.dk/db/pgsql/conformance/pgsql-sql-conformance-
followup.patch

The patch
 - includes a core feature ID that had been left
   out by mistake (C011)
 - updates the sql_feature_packages.txt table to
   reflect changes in SQL:2003 which were not
   covered properly in my last patch

Troels Arvin
2004-12-02 22:51:28 +00:00
Bruce Momjian
12e678201d > I enclose a short patch to reduce the PGARCH_RESTART_INTERVAL from 60
> seconds to 10 seconds. The original number was plucked from thin air
> some months ago, and I'd like to review that now based upon further
> thought, observation and experience.
>
> This change has little or no effect on performance, since the interval
> is there mainly to avoid repeated respawn attempts if archiver fails at
> startup. Archiver start-up time is very quick, so there is little danger
> of exceeding 10 seconds.
>
> On a busy system, if the archiver does die, then many files can build up
> in the 60 seconds before respawning. That xlog file backlog could take
> some time to clear. This then leaves a larger than normal window of data
> loss for a possibly long period.
>
> It's a minor change only, with no other effect on function.

Simon Riggs
2004-12-02 22:40:18 +00:00
Bruce Momjian
4ea4f8bd06 Fix for Unicode characters above 0x10000.
John Hansen
2004-12-02 22:37:14 +00:00
Bruce Momjian
917c8bb407 On win32, there is currently no way to get the equivalent function of
the "ps" argument list on Unix - meaning that there is no way to
identify for example the stats processors or the bgwriter.

This patch adds this functionality, in a bit of a crufty way. It creates
a kernel Event object with the name of what would be in the title. This
can be viewed using for example Process Explorer.

It's been very handy for me during both debugging and using. I haven't
figured a better way, but perhaps someone has one that's less crufty? If
not, here is at least a working patch :-)

Magnus Hagander
2004-12-02 22:28:22 +00:00
Bruce Momjian
7af770d005 Add Charset WIN1252 support.
Roland Volkmann
2004-12-02 22:14:38 +00:00
Bruce Momjian
d76589114d Change Win32 dlerror message to:
return "dynamic loading error";
2004-12-02 19:38:50 +00:00
Tom Lane
e9c03c3b1b Disallow the combination VACUUM FULL FREEZE for safety's sake, for the
reasons I outlined in pghackers a few days ago.

Also, undo someone's overly optimistic decision to reduce tuple state
checks from if (...) elog() to Asserts.  If I trusted this code more,
I might think it was a good idea to disable these checks in production
installations.  But I don't.
2004-12-02 19:28:49 +00:00
Bruce Momjian
f7bae20d67 Don't bother adding to cflags/cppflags, just set them because configure
handles that, and make solaris debug use no optimization.
2004-12-02 18:11:40 +00:00
Bruce Momjian
8408f65252 Rework libpq threaded SIGPIPE handling to avoid interference with
calling applications.  This is done by blocking sigpipe in the libpq
thread and using sigpending/sigwait to possibily discard any sigpipe we
generated.
2004-12-02 15:32:54 +00:00
Tom Lane
76e8a87f15 Teach regex_fixed_prefix() the correct handling of advanced regex
escapes --- they aren't simply quoted characters.  Problem noted by
Antti Salmela.  Also fix problem with incorrect handling of multibyte
characters when followed by a quantifier.
2004-12-02 02:45:07 +00:00
Tom Lane
4e91824b94 Make some adjustments to reduce platform dependencies in plan selection.
In particular, there was a mathematical tie between the two possible
nestloop-with-materialized-inner-scan plans for a join (ie, we computed
the same cost with either input on the inside), resulting in a roundoff
error driven choice, if the relations were both small enough to fit in
sort_mem.  Add a small cost factor to ensure we prefer materializing the
smaller input.  This changes several regression test plans, but with any
luck we will now have more stability across platforms.
2004-12-02 01:34:18 +00:00
Bruce Momjian
ee9007a2e1 Allow libpq to build on MS Visual Studio .NET 2003 on Windows XP. 2004-12-01 23:42:26 +00:00
Tom Lane
1e6457dfce Fix timestamptz_age() to do calculation in local timezone not GMT, per bug 1332. 2004-12-01 19:57:49 +00:00
Tom Lane
5374d097de Change planner to use the current true disk file size as its estimate of
a relation's number of blocks, rather than the possibly-obsolete value
in pg_class.relpages.  Scale the value in pg_class.reltuples correspondingly
to arrive at a hopefully more accurate number of rows.  When pg_class
contains 0/0, estimate a tuple width from the column datatypes and divide
that into current file size to estimate number of rows.  This improved
methodology allows us to jettison the ancient hacks that put bogus default
values into pg_class when a table is first created.  Also, per a suggestion
from Simon, make VACUUM (but not VACUUM FULL or ANALYZE) adjust the value
it puts into pg_class.reltuples to try to represent the mean tuple density
instead of the minimal density that actually prevails just after VACUUM.
These changes alter the plans selected for certain regression tests, so
update the expected files accordingly.  (I removed join_1.out because
it's not clear if it still applies; we can add back any variant versions
as they are shown to be needed.)
2004-12-01 19:00:56 +00:00
Bruce Momjian
a6c1377085 Add \n to end of output for psql \s with no history file name.
This prevents the next psql prompt from showing up on the end of the
last history line.
2004-11-30 20:00:34 +00:00
Bruce Momjian
f44c64c727 Quote SHELL arguments only on Win32. 2004-11-30 19:01:28 +00:00
Neil Conway
16c46870b7 Fix a few typos in comments. 2004-11-30 03:50:29 +00:00
Tom Lane
af434fcdf4 Update plperl to use ereport() not elog() for user-facing messages,
so that they will be translatable.  Give messages some semblance of
conformance to the style guide.
2004-11-29 20:11:06 +00:00
Tom Lane
66cd815063 Clean up initdb's error handling so that it prints something more
useful than just \'failed\' when there's a problem.  Per gripe from
Chris Albertson.

In an unrelated change, use VACUUM FULL; VACUUM FREEZE; rather than
a single VACUUM FULL FREEZE command, to respond to my worries of a
couple days ago about the reliability of doing this in one go.
2004-11-29 03:05:03 +00:00
Bruce Momjian
5548122829 Add comment explaining possible compiler warning:
/*
     *  Some compilers with throw a warning knowing this test can never be
     *  true because off_t can't exceed the compared maximum.
     */
    if (th->fileLen > MAX_TAR_MEMBER_FILELEN)
        die_horribly(AH, modulename, "archive member too large for tar format\n");
2004-11-29 03:01:54 +00:00
Bruce Momjian
ee814b4511 Have initdb display relative paths to start postmaster if used to invoke
initdb, and display in a path-native way.
2004-11-29 01:14:45 +00:00
Tom Lane
839484f9f5 Avoid scribbling on original parsetree during DECLARE CURSOR. This
prevents problems when the DECLARE is in a portal and is executed
repeatedly, as is possible in v3 protocol.  Per analysis by Oliver
Jowett, though I didn't use his patch exactly.
2004-11-28 22:16:31 +00:00
Peter Eisentraut
99b735cc03 Work around lack of NLS support in libpgport by making those components
who use it scan the relevant source files for their own catalog.  It
creates a bit of duplicate work for translators, but it gets the job done
for now.
2004-11-27 22:44:15 +00:00
Peter Eisentraut
49cbef7947 Update of conformance information to SQL:2003
by Troels Arvin, Simon Riggs, Elein Mustain

Make spelling of SQL standard names uniform.
2004-11-27 21:27:08 +00:00
Tom Lane
90c3ebe4d7 Fix HAVE_OPTRESET to be HAVE_INT_OPTRESET. Typos spotted by Lorne Sunley. 2004-11-27 18:51:08 +00:00
Bruce Momjian
3aa9776d95 Add to CPPFLAGS/CFLAGS in template files, don't over-ride them. 2004-11-27 05:03:26 +00:00
Tom Lane
c2e5631760 RelOptInfo.pages should really be declared as BlockNumber, not long. 2004-11-26 21:08:35 +00:00
Tom Lane
d4c4d28427 Install Tcl regex fixes to sync our regex engine with Tcl 8.4.8 (up from
8.4.1).  This corrects some curious regex bugs, though not the greediness
issue I was hoping to find a solution for :-(
2004-11-24 22:56:54 +00:00
Tom Lane
236404fcd1 Our interface code for Spencer's regexp package was checking for regexp
error conditions during regexp compile, but not during regexp execution;
any sort of "can't happen" errors would be treated as no-match instead
of being reported as they should be.  Noticed while trying to duplicate
a reported Tcl bug.
2004-11-24 22:44:07 +00:00
Tom Lane
cf796cc702 A client_encoding specification coming from the connection request has
to be processed by GUC before InitPostgres, because any required lookup
of the encoding conversion function has to be done during InitializeClientEncoding.
So, I broke this last week by moving GUC processing to after InitPostgres :-(.
What we can do as a compromise is process non-SUSET variables during
command line scanning (the same as before), and postpone the processing
of only SUSET variables.  None of the SUSET variables need to be set
before InitPostgres.
2004-11-24 19:51:05 +00:00
Tom Lane
5597fee8d7 Avoid getting bit by roundoff error while checking $Safe::VERSION.
Per report from Mark Kirkwood.
2004-11-24 18:47:38 +00:00
Neil Conway
e17766c12e Trivial fix for a bug introduced in r1.94 of help.c: we want to only
include "\s" in \? output when readline is enabled, but that commit
supressed "\s" whether readline was enabled or not.
2004-11-24 04:58:42 +00:00
Neil Conway
4acc97d7e4 Assert that BufferIsPinned() in IncrBufferRefCount(), rather than using
a home-brewed combination of assertions that boiled down to the same
thing.
2004-11-24 02:56:17 +00:00
Peter Eisentraut
2663e0c2e9 New translations 2004-11-23 23:13:26 +00:00
Peter Eisentraut
98f5efe774 Translation updates 2004-11-23 22:16:04 +00:00
Tom Lane
28e9b26f4d Further plperl cleanup: be more paranoid about checking the type of
data returned from Perl.  Consolidate multiple bits of code to convert
a Perl hash to a tuple, and drive the conversion off the keys present
in the hash rather than the tuple column names, so we detect error if
the hash contains keys it shouldn't.  (This means keys not in the hash
will silently default to NULL, which seems ok to me.)  Fix a bunch of
reference-count leaks too.
2004-11-23 00:21:24 +00:00
Tom Lane
25fcfdf6f4 The beginnings of a regression test for plperl. Right now it only
covers return value processing, but that was the most broken stuff...
2004-11-22 20:32:59 +00:00
Tom Lane
f5206262c8 Try to instill some sanity in plperl's function result processing.
Get rid of static variables for SETOF result, don't crash when called
from non-FROM context, eliminate dead code, etc.
2004-11-22 20:31:53 +00:00
Tom Lane
294c34bb9d Fix rounding problem in dynahash.c's decision about when the target
fill factor has been exceeded.  We usually run with ffactor == 1, but
the way the test was coded, it wouldn't split a bucket until the actual
fill factor reached 2.0, because of use of integer division.  Change
from > to >= so that it will split more aggressively when the table
starts to get full.
2004-11-21 22:57:00 +00:00
Tom Lane
7f1711f29d Reduce the default size of the PortalHashTable in order to save a
few cycles during transaction exit.  A typical session probably
wouldn't have as many as half a dozen portals open at once, so the
original value of 64 seems far larger than needed.
2004-11-21 22:48:01 +00:00
Tom Lane
183e8b911c While fixing plperl and pltcl, I realized plpgsql wasn't doing
subtransactions quite right either: the ReleaseCurrentSubTransaction
call should occur inside the PG_TRY, so that the proper path is taken
if an error occurs during subtransaction commit.  This assumes that
AbortSubTransaction can cope with the state left behind if
CommitSubTransaction fails partway through, but we were already
requiring that.
2004-11-21 22:27:34 +00:00
Tom Lane
32c97fd58f Suppress remaining compile warnings, and add a comment about why
it's not really broken.  Andrew Dunstan
2004-11-21 22:13:37 +00:00
Tom Lane
35f4994133 Fix plperl and pltcl error handling per my previous proposal. SPI
operations are now run as subtransactions, so that errors in them
can be reported as ordinary Perl or Tcl errors and caught by the
normal error handling convention of those languages.  Also do some
minor code cleanup in pltcl.c: extract a large chunk of duplicated
code in pltcl_SPI_execute and pltcl_SPI_execute_plan into a shared
subroutine.
2004-11-21 21:17:07 +00:00
Tom Lane
c584103f56 Patch of 2004-03-30 corrected date_part(timestamp) for extracting
the year from a BC date, but failed to make the same fix in
date_part(timestamptz).
2004-11-20 22:12:44 +00:00
Tom Lane
a34d76ef65 Fix up makefile dependencies for pg_config_paths.h. 2004-11-20 21:13:06 +00:00
Tom Lane
3e3f283e31 Avoid scanning the relcache during AtEOSubXact_RelationCache when there
is nothing to do, which is most of the time.  This is another simple
improvement to cut subtransaction entry/exit overhead.
2004-11-20 20:19:52 +00:00
Tom Lane
8ecbc46bdb Reduce the default size of the local lock hash table. There's usually
no need for it to be nearly as big as the global hash table, and since
it's not in shared memory it can grow if it does need to be bigger.
By reducing the size, we speed up hash_seq_search(), which saves a
significant fraction of subtransaction entry/exit overhead.
2004-11-20 20:16:54 +00:00
Tom Lane
193a97c2d3 Fix plperl's elog() function to convert elog(ERROR) into Perl croak(),
rather than longjmp'ing clear out of Perl and thereby leaving Perl in
a broken state.  Also some minor prettification of error messages.
Still need to do something with spi_exec_query() error handling.
2004-11-20 19:07:40 +00:00
Tom Lane
d5013ab50f Fix one more place where we were expecting lcons() to be nondestructive
to the original List; per report from Sebastian BÎck.  I think this is
the last such bug --- I examined every lcons() call in the backend and
the rest seem OK --- but it's nervous-making that we're still finding
'em so many months after the List rewrite went in.
2004-11-20 17:59:31 +00:00
Tom Lane
0b5c72d9ba On some HPUX versions/hardware, it seems we need to include libgcc.a in
the regression test shared libraries.
2004-11-20 03:52:00 +00:00
Tom Lane
83fea34b5b Fix unportable isdigit() call --- must cast arg to unsigned char. 2004-11-20 02:09:47 +00:00
Tom Lane
8a7025f0bb Move pgstat_report_tabstat() call so that stats are not reported to the
collector until the transaction commits.  Per recent discussion, this
should avoid confusing autovacuum when an updating transaction runs for
a long time.
2004-11-20 00:48:58 +00:00
Tom Lane
e719591ea3 Make sure we produce a useful error message for the case where the
postgresql.crt file simply isn't there, too.
2004-11-20 00:35:13 +00:00
Tom Lane
7506677b62 Improve error reporting for SSL connection failures. Remove redundant
free operations in client_cert_cb --- openssl will also attempt to free
these structures, resulting in core dumps.
2004-11-20 00:18:18 +00:00
Tom Lane
8e57975219 Clean up rpath handling for HPUX --- we can't use the cc-style rpath
switch syntax when calling ld directly.
2004-11-19 21:27:42 +00:00
Tom Lane
466fb06739 Set rpath for plperl and plpython to ensure we can find the .so files
for the languages even when not installed in a standard directory.
pltcl may need this treatment as well, but we don't have the right path
conveniently available, so I'll leave it alone as long as there aren't
actual reports of trouble.
2004-11-19 19:23:01 +00:00
Tom Lane
a9ddd649df Modify the platform-specific makefiles so that macro 'rpath' is defined
in terms of macro 'rpathdir', as I proposed a few weeks ago.  In itself
this commit shouldn't change the behavior at all, but it opens the door
to using special rpaths for the PL shared libraries, as seems to be
needed for plperl in particular.
2004-11-19 00:41:39 +00:00
Tom Lane
b6038484f8 Fix memory clobber problem reported by John Hansen: plperl_safe_init()
may expand the Perl stack, therefore we must SPAGAIN to reload the local
stack pointer after calling it.  Also a couple other marginal readability
improvements.
2004-11-18 21:35:42 +00:00
Tom Lane
da1c19aa57 Whoops, missed converting the other sleep() call to pg_usleep(). 2004-11-18 17:13:38 +00:00
Peter Eisentraut
050a0074c2 Translation update 2004-11-18 10:09:59 +00:00
Tom Lane
b2a2f4cef7 Force pg_database updates out to disk immediately after ALTER DATABASE;
this is to avoid scenarios where incoming backends find no live copies
of a database's row because the only live copy is in an as-yet-unwritten
shared buffer, which they can't see.  Also, use FlushRelationBuffers()
for forcing out pg_database, instead of the much more expensive BufferSync().
There's no need to write out pages belonging to other relations.
2004-11-18 01:14:26 +00:00
Tom Lane
c36496a101 Include <getopt.h> if available, to avoid warnings on Windows. 2004-11-17 21:37:47 +00:00
Tom Lane
1c1f2f5b96 Remove ill-considered suppression of gcc warnings in plperl, and fix
some of the bugs exposed thereby.  The remaining 'might be used uninitialized'
warnings look like live bugs, but I am not familiar enough with Perl/C hacking
to tell how to fix them.
2004-11-17 21:23:36 +00:00
Tom Lane
edcaa8f691 Fix off-by-one memory allocation, as reported by Rod Taylor. Also
avoid repalloc'ing twice when once is sufficient.
2004-11-17 19:54:24 +00:00
Tom Lane
6444bc3535 Set DEFAULT_EDITOR to notepad.exe on Windows, as per recent discussion. 2004-11-17 18:32:31 +00:00
Tom Lane
4a6fd46950 Force LANG=en on Windows, since system may fail to default to English. 2004-11-17 18:06:04 +00:00
Tom Lane
98640c3130 Add installcheck-parallel regression test target. Magnus Hagander 2004-11-17 18:05:06 +00:00
Tom Lane
77fe4fd656 Use pg_usleep() not sleep(), per Andrew Dunstan. 2004-11-17 17:50:20 +00:00
Tom Lane
5d72ef83fd Miscellaneous Cygwin build fixes from Reini Urban. 2004-11-17 17:46:24 +00:00
Tom Lane
ede8f4e311 Add variant regression file to support BSDen that underflow to plus zero instead
of minus zero.  Per Andrew Dunstan.
2004-11-17 17:25:32 +00:00
Tom Lane
e5f7a9f404 Install include/port header files, and fix PGXS build to use them.
Fabien COELHO
2004-11-17 17:16:17 +00:00
Tom Lane
86b5545260 Adjust SHLIB_LINK for cygwin case.
Reini Urban
2004-11-17 17:08:15 +00:00
Tom Lane
18b58350db Be sure length limit passed to snprintf matches what malloc was given.
Just paranoia ...
2004-11-17 16:34:42 +00:00
Tom Lane
37d693033d Minor adjustment of message style. 2004-11-17 16:26:59 +00:00
Neil Conway
2fa36d7e41 Win32 build cleanups, from Andrew Dunstan. 2004-11-17 08:30:11 +00:00
Neil Conway
ffe130f52e Remove debugging printf from #ifdef WIN32 section. 2004-11-17 04:05:42 +00:00
Neil Conway
5d1dd2bc55 Micro-optimization of markpos() and restrpos() in btree and hash indexes.
Rather than using ReadBuffer() to increment the reference count on an
already-pinned buffer, we should use IncrBufferRefCount() as it is
faster and does not require acquiring the BufMgrLock.
2004-11-17 03:13:38 +00:00
Neil Conway
b25d23e1e6 Don't allow pg_start_backup() to be invoked if archive_command has not
been defined. Patch from Gavin Sherry, editorializing by Neil Conway.
2004-11-17 02:22:54 +00:00
Tom Lane
0021ae06be Fix Win32 problems with signals and sockets, by making the forkexec code
even uglier than it was already :-(.  Also, on Windows only, use temporary
shared memory segments instead of ordinary files to pass over critical
variable values from postmaster to child processes.  Magnus Hagander
2004-11-17 00:14:14 +00:00
Neil Conway
e1bf6527f6 Prevent a backend crash when processing CREATE TABLE commands with
more than 65K columns, or when the created table has more than 65K columns
due to adding inherited columns from parent relations. Fix a similar
crash when processing SELECT queries with more than 65K target list
entries. In all three cases we would eventually detect the error and
elog, but the check was being made too late.
2004-11-16 23:34:26 +00:00
Peter Eisentraut
8a1821ab5b Translation update 2004-11-16 22:58:44 +00:00
Tom Lane
4a0bee976c Adjust safety restrictions for plperl functions. Andrew Dunstan's
patch, but allow srand and disallow sprintf as per subsequent discussion.
2004-11-16 22:05:22 +00:00
Tom Lane
bb85f1b9b1 Suppress duplicate rules for lib$(NAME).a on WIN32 and Cygwin.
Andrew Dunstan
2004-11-16 21:51:13 +00:00
Tom Lane
6beb6fa495 Use dynamically-sized buffers in pgwin32_is_service().
Magnus Hagander
2004-11-16 19:52:22 +00:00
Tom Lane
7efa8411cc Rethink plpgsql's way of handling SPI execution during an exception block.
We don't really want to start a new SPI connection, just keep using the old
one; otherwise we have memory management problems as illustrated by
John Kennedy's bug report of today.  This requires a bit of a hack to
ensure the SPI stack state is properly restored, but then again what we
were doing before was a hack too, strictly speaking.  Add a regression
test to cover this case.
2004-11-16 18:10:16 +00:00
Tom Lane
3d1e269e7e Don't quote the value of EDITOR on Unix, only on Windows. Per discussion. 2004-11-15 23:15:12 +00:00