Tom Lane [Fri, 9 May 2008 05:25:04 +0000 (05:25 +0000)]
Fix memory stomp that's turning the whole buildfarm pink: you can't hack up
pg_wcsformat without changing pg_wcssize to match. Add some comments to
try to make that clearer, and make a couple other minor editorializations.
Bruce Momjian [Thu, 8 May 2008 02:24:26 +0000 (02:24 +0000)]
Update TODO wording:
< * Improve detection of shared memory segments being used by other
< FreeBSD jails
> * Improve detection of shared memory segments being used by others
> by checking the SysV shared memory field 'nattch'
> http://archives.postgresql.org/pgsql-hackers/2008-01/msg00673.php
Tom Lane [Wed, 7 May 2008 01:46:04 +0000 (01:46 +0000)]
The CONSTROID syscache should show conrelid as a relation OID column.
Not clear that there's any observable bug at present from this omission,
but it seems like something to fix going forward.
Tom Lane [Wed, 7 May 2008 01:04:49 +0000 (01:04 +0000)]
Convert the list of syscache names from a series of #define's into an enum,
to avoid the pain of manually renumbering them anytime we insert another
name in alphabetical order. An excellent idea from Alex Hunsaker and
NikhilS' inherited-constraints patch --- whether or not the rest of that
gets in, this should. Dunno why we never thought of it before.
Tom Lane [Sun, 4 May 2008 16:42:41 +0000 (16:42 +0000)]
Use new cstring/text conversion functions in some additional places.
These changes assume that the varchar and xml data types are represented
the same as text. (I did not, however, accept the portions of the proposed
patch that wanted to assume bytea is the same as text --- tgl.)
Tom Lane [Sat, 3 May 2008 23:19:20 +0000 (23:19 +0000)]
The 8.2 patch that added support for an alias on the target table of
UPDATE/DELETE forgot to teach ruleutils.c to display the alias.
Per bug #4141 from Mathias Seiler.
Andrew Dunstan [Sat, 3 May 2008 00:24:06 +0000 (00:24 +0000)]
Provide for MSVC config equivalents of recently added configure options. Remove
any hardcoding of those options. Along the way, reorder the expression used to
calculate RELSEG_SIZE to make it slightly clearer. For now wal_segsize is only
allowed to have a value of 1 on Windows - we can relax that when we get full
large file support in the backend.
Tom Lane [Fri, 2 May 2008 19:52:37 +0000 (19:52 +0000)]
Extend yesterday's patch making BLCKSZ and RELSEG_SIZE configurable to also
let XLOG_BLCKSZ and XLOG_SEG_SIZE be set via configure. Per a proposal by
Mark Wong, though I thought it better to call the switches after "wal" rather
than "xlog".
One-letter backslash commands now need a space before the first argument.
This has been the only documented and encouraged syntax for a long time, and
with extension facilities such as aliases being proposed, it is a good time to
clean up the legacy syntax a bit.
Tom Lane [Fri, 2 May 2008 01:08:27 +0000 (01:08 +0000)]
Remove the recently added USE_SEGMENTED_FILES option, and indeed remove all
support for a nonsegmented mode from md.c. Per recent discussions, there
doesn't seem to be much value in a "never segment" option as opposed to
segmenting with a suitably large segment size. So instead provide a
configure-time switch to set the desired segment size in units of gigabytes.
While at it, expose a configure switch for BLCKSZ as well.
Tom Lane [Thu, 1 May 2008 20:05:08 +0000 (20:05 +0000)]
Add SGT (Singapore time) to the default list of known timezone
abbreviations. It doesn't conflict with any other abbreviation
so there seems no reason not to include it. Per a recent gripe.
Tom Lane [Thu, 1 May 2008 19:55:40 +0000 (19:55 +0000)]
Make the minimum allowed value of work_mem be 64KB always, rather than having
it vary with BLCKSZ as before. This agrees with what the documentation says,
and avoids a regression test problem when BLCKSZ is larger than default.
Per recent discussion.
Tom Lane [Wed, 30 Apr 2008 23:28:32 +0000 (23:28 +0000)]
Fix nodeTidscan.c to not trigger an error if the block number portion of
a user-supplied TID is out of range for the relation. This is needed to
preserve compatibility with our pre-8.3 behavior, and it is sensible anyway
since if the query were implemented by brute force rather than optimized
into a TidScan, the behavior for a non-existent TID would be zero rows out,
never an error. Per gripe from Gurjeet Singh.
Tom Lane [Tue, 29 Apr 2008 20:44:49 +0000 (20:44 +0000)]
Some minor further cleanup around A_Const. Don't attach a typecast in
makeFloatConst, and avoid "manual" construction of A_Const nodes in grammar
productions, in favor of using makeXXXConst subroutines.
Tom Lane [Mon, 28 Apr 2008 23:48:16 +0000 (23:48 +0000)]
Increase the statement_timeout value used in the prepared_xacts regression
test. We have seen some buildfarm failures that seem to be due to this
limit being unexpectedly exceeded when the machine is under load.
Tom Lane [Mon, 28 Apr 2008 22:47:03 +0000 (22:47 +0000)]
Fix broken configure test for libxslt: it was probing for xsltLibxmlVersion,
which is a global variable not a function, and so the probe failed on machines
where the linker makes a distinction (cf. Red Hat bug #444317). Probe for
an actual function instead.
Tom Lane [Sat, 26 Apr 2008 22:47:40 +0000 (22:47 +0000)]
Code review for recent patch to terminate online backup during shutdown:
do CancelBackup at a sane place, fix some oversights in the state transitions,
allow only superusers to connect while we are waiting for backup mode to end.
Bruce Momjian [Fri, 25 Apr 2008 21:38:46 +0000 (21:38 +0000)]
Add URL for:
* Allow adding/renaming/removing enumerated values to an existing
enumerated data type
>
> http://archives.postgresql.org/pgsql-hackers/2008-04/msg01718.php
>
Tom Lane [Thu, 24 Apr 2008 20:46:49 +0000 (20:46 +0000)]
Remove transformAlterTableStmt's kluge to replace ColumnDef.is_not_null
flags by separate AT_SetNotNull subcommands. That was always ugly and
inefficient, and it's now clear that it was merely a partial workaround
for the bug just identified in ATExecAddColumn. This is just code
beautification not a bug fix, so no back-patch.
Brendan Jurd, with some trivial additional cleanup by me.
Tom Lane [Thu, 24 Apr 2008 20:17:50 +0000 (20:17 +0000)]
Fix ALTER TABLE ADD COLUMN ... PRIMARY KEY so that the new column is correctly
checked to see if it's been initialized to all non-nulls. The implicit NOT
NULL constraint was not being checked during the ALTER (in fact, not even if
there was an explicit NOT NULL too), because ATExecAddColumn neglected to
set the flag needed to make the test happen. This has been broken since
the capability was first added, in 8.0.
Bruce Momjian [Thu, 24 Apr 2008 18:23:05 +0000 (18:23 +0000)]
Add to TODO:
> * Allow prepared transactions with temporary tables created and dropped
> in the same transaction, and when an ON COMMIT DELETE ROWS temporary
> table is accessed
>
> http://archives.postgresql.org/pgsql-hackers/2008-03/msg00047.php
Bruce Momjian [Thu, 24 Apr 2008 17:06:13 +0000 (17:06 +0000)]
Add URL for:
* Allow index scans to return matching index keys, not just the matching
heap locations
>
> http://archives.postgresql.org/pgsql-hackers/2008-04/msg01657.php
>
Fix using too many LWLocks bug, reported by Craig Ringer
<craig@postnewspapers.com.au>.
It was my mistake, I missed limitation of number of held locks, now GIN doesn't
use continiuous locks, but still hold buffers pinned to prevent interference
with vacuum's deletion algorithm.
Tom Lane [Tue, 22 Apr 2008 01:34:34 +0000 (01:34 +0000)]
Issue explicit error messages for attempts to use "shell" operators in
ordinary expressions. This probably doesn't catch every single case
where you might get "cache lookup failed for function 0" for use of a
shell operator, but it will catch most. Per bug #4120 from Pedro Gimeno.
This patch incidentally folds make_op_expr() into its sole remaining
caller --- the alternative was to give it yet more arguments, which
didn't seem an improvement.
Tom Lane [Mon, 21 Apr 2008 20:54:15 +0000 (20:54 +0000)]
Fix convert_IN_to_join to properly handle the case where the subselect's
output is not of the same type that's needed for the IN comparison (ie,
where the parser inserted an implicit coercion above the subselect result).
We should record the coerced expression, not just a raw Var referencing
the subselect output, as the quantity that needs to be unique-ified if
we choose to implement the IN as Unique followed by a plain join.
As of 8.3 this error was causing crashes, as seen in bug #4113 from Javier
Hernandez, because the executor was being told to hash or sort the raw
subselect output column using operators appropriate to the coerced type.
In prior versions there was no crash because the executor chose the
hash or sort operators for itself based on the column type it saw.
However, that's still not really right, because what's unique for one data
type might not be unique for another. In corner cases we could get multiple
outputs of a row that should appear only once, as demonstrated by the
regression test case included in this commit.
However, this patch doesn't apply cleanly to 8.2 or before, and the code
involved has shifted enough over time that I'm hesitant to try to back-patch.
Given the lack of complaints from the field about such corner cases, I think
the bug may not be important enough to risk breaking other things with a
back-patch.
Magnus Hagander [Mon, 21 Apr 2008 09:44:47 +0000 (09:44 +0000)]
Add link to major version release notes at the top of the minor
version ones, to make it clear to users just browsing the notes
that there are a lot more changes available from whatever version
they are at than what's in the minor version release notes.
Tom Lane [Mon, 21 Apr 2008 03:49:45 +0000 (03:49 +0000)]
Fix a couple of places in execMain that erroneously assumed that SELECT FOR
UPDATE/SHARE couldn't occur as a subquery in a query with a non-SELECT
top-level operation. Symptoms included outright failure (as in report from
Mark Mielke) and silently neglecting to take the requested row locks.
Back-patch to 8.3, because the visible failure in the INSERT ... SELECT case
is a regression from 8.2. I'm a bit hesitant to back-patch further given the
lack of field complaints.
Tom Lane [Mon, 21 Apr 2008 02:04:09 +0000 (02:04 +0000)]
Add FLOAT4PASSBYVAL/FLOAT8PASSBYVAL to pg_config.h.win32, as a stopgap
measure to get the Windows buildfarm members working again. I don't
know if it's worth exposing these as configurables, or exactly how to
do it in the MSVC build system ...
Tom Lane [Mon, 21 Apr 2008 01:11:43 +0000 (01:11 +0000)]
Make earthdistance use version-0 calling convention if not USE_FLOAT8_BYVAL,
and version-1 if USE_FLOAT8_BYVAL. This might seem a bit pointless, but the
idea is to have at least one regression test that will fail if we ever
accidentally break version-0 functions that return float8. However, they're
already broken, or at least hopelessly unportable, in the USE_FLOAT8_BYVAL
case.
Tom Lane [Mon, 21 Apr 2008 00:26:47 +0000 (00:26 +0000)]
Allow float8, int8, and related datatypes to be passed by value on machines
where Datum is 8 bytes wide. Since this will break old-style C functions
(those still using version 0 calling convention) that have arguments or
results of these types, provide a configure option to disable it and retain
the old pass-by-reference behavior. Likewise, provide a configure option
to disable the recently-committed float4 pass-by-value change.
Zoltan Boszormenyi, plus configurability stuff by me.
Fix broken compare function for tsquery_ops. Per Tom's report.
I never understood why initial authors GiST in pgsql choose so
stgrange signature for 'same' method:
bool *sameFn(Datum a, Datum b, bool* result)
instead of simple, logical
bool sameFn(Datum a, Datum b)
This change will break any existing GiST extension, so we still live with
it and will live.