Commit Graph

26953 Commits

Author SHA1 Message Date
Tom Lane a0b012a1ab Rearrange ALTER TABLE syntax processing as per my recent proposal: the
grammar allows ALTER TABLE/INDEX/SEQUENCE/VIEW interchangeably for all
subforms of those commands, and then we sort out what's really legal
at execution time.  This allows the ALTER SEQUENCE/VIEW reference pages
to fully document all the ALTER forms available for sequences and views
respectively, and eliminates a longstanding cause of confusion for users.

The net effect is that the following forms are allowed that weren't before:
	ALTER SEQUENCE OWNER TO
	ALTER VIEW ALTER COLUMN SET/DROP DEFAULT
	ALTER VIEW OWNER TO
	ALTER VIEW SET SCHEMA
(There's no actual functionality gain here, but formerly you had to say
ALTER TABLE instead.)

Interestingly, the grammar tables actually get smaller, probably because
there are fewer special cases to keep track of.

I did not disallow using ALTER TABLE for these operations.  Perhaps we
should, but there's a backwards-compatibility issue if we do; in fact
it would break existing pg_dump scripts.  I did however tighten up
ALTER SEQUENCE and ALTER VIEW to reject non-sequences and non-views
in the new cases as well as a couple of cases where they didn't before.

The patch doesn't change pg_dump to use the new syntaxes, either.
2008-06-15 01:25:54 +00:00
Alvaro Herrera bd2ef8707f In log_filename documentation, mention that strftime is not used directly to
expand the pattern specifier.

Per gripe from Josh Drake.
2008-06-14 21:59:59 +00:00
Tom Lane 0cefb50f3c Refactor the handling of the various DropStmt variants so that when multiple
objects are specified, we drop them all in a single performMultipleDeletions
call.  This makes the RESTRICT/CASCADE checks more relaxed: it's not counted
as a cascade if one of the later objects has a dependency on an earlier one.
NOTICE messages about such cases go away, too.

In passing, fix the permissions check for DROP CONVERSION, which for some
reason was never made role-aware, and omitted the namespace-owner exemption
too.

Alex Hunsaker, with further fiddling by me.
2008-06-14 18:04:34 +00:00
Bruce Momjian 95ce4ee943 Modify TODO entry to be a function:
> 	o Add functions to syntax check configuration files
>
< * Add pg_ctl option to do a syntax check of postgresql.conf
2008-06-13 16:24:38 +00:00
Tom Lane 55a56845ed Improve the various elog messages in tuptoaster.c to report which TOAST table
the problem happened in.  These are all supposedly can't-happen cases, but
when they do happen it's useful to know where.

Back-patch to 8.3, but not further because the patch doesn't apply cleanly
further back.  Given the lack of response to my proposal of this, there
doesn't seem to be enough interest to justify much back-porting effort.
2008-06-13 02:59:47 +00:00
Bruce Momjian 2319ddf3f1 Use macro to document size of ecpg sqlerrmc string. 2008-06-12 19:15:40 +00:00
Bruce Momjian 635131b159 Update item to mention target list problem:
< * Allow INSERT/UPDATE ... RETURNING inside a SELECT 'FROM' clause
> * Allow INSERT/UPDATE ... RETURNING inside a SELECT 'FROM' clause or
>   target list
>   http://archives.postgresql.org/pgsql-hackers/2008-06/msg00124.php
2008-06-12 18:09:04 +00:00
Heikki Linnakangas a213f1ee6c Refactor XLogOpenRelation() and XLogReadBuffer() in preparation for relation
forks. XLogOpenRelation() and the associated light-weight relation cache in
xlogutils.c is gone, and XLogReadBuffer() now takes a RelFileNode as argument,
instead of Relation.

For functions that still need a Relation struct during WAL replay, there's a
new function called CreateFakeRelcacheEntry() that returns a fake entry like
XLogOpenRelation() used to.
2008-06-12 09:12:31 +00:00
Tom Lane c4f2a0458d Improve reporting of dependencies in DROP to work like the scheme that we
devised for pg_shdepend, namely the individual dependencies are reported as
DETAIL lines rather than coming out as separate NOTICEs.  The client-side
report is capped at 100 lines, but the server log always gets a full report.
2008-06-11 21:53:49 +00:00
Bruce Momjian ebff1d4dc6 Add:
> * Add pg_ctl option to do a syntax check of postgresql.conf
2008-06-11 20:54:31 +00:00
Bruce Momjian 70da495d84 Fix spelling mistake in postgresql.conf.
Greg Sabino Mullane
2008-06-11 15:44:52 +00:00
Heikki Linnakangas 15dc3f59c7 Update "help" output to reflect that \timing now takes an optional on/off
argument.
2008-06-11 10:55:43 +00:00
Heikki Linnakangas 8b64a2642a Add optional on/off argument to \timing.
David Fetter.
2008-06-11 10:48:17 +00:00
Heikki Linnakangas 96675bff1f Fix bug in the WAL recovery code to finish an incomplete split.
CacheInvalidateRelcache() crashes if called in WAL recovery, because the
invalidation infrastructure hasn't been initialized yet.

Back-patch to 8.2, where the bug was introduced.
2008-06-11 08:38:56 +00:00
Neil Conway 109940c635 Editorialization for the text emitted by the "help" psql command.
Basically just reuse the same text that psql emitted as part of
its startup banner in prior versions, and make some whitespace
more consistent with the conventions in other psql command output.
2008-06-10 20:58:19 +00:00
Tom Lane 99b8ebec64 Create a script to handle stamping release version numbers into files,
replacing the tedious and error-prone manual process we've been using.
2008-06-10 18:08:48 +00:00
Heikki Linnakangas 0f5c606f41 Comment fix, should say TSQuery instead of TSVector.
Per Jan Urbanski.
2008-06-10 08:55:50 +00:00
Alvaro Herrera 96063da99d Make XML building work silently on VPATH builds (untested on regular builds). 2008-06-10 00:19:32 +00:00
Tom Lane 0b510ad920 Fix unportable (and incorrect anyway) usage of LL constant suffix that
recently snuck into cash.c.  Per report from Edmundo Robles Lopez.
2008-06-09 19:58:39 +00:00
Bruce Momjian 242d70d5ef Update Japanese FAQ.
Jun Kuwamura
2008-06-09 19:37:16 +00:00
Tom Lane 3a4e929b76 Fix datetime input functions to correctly detect integer overflow when
running on a 64-bit platform ... strtol() will happily return 64-bit
output in that case.  Per bug #4231 from Geoff Tolley.
2008-06-09 19:34:02 +00:00
Tom Lane 5862cda611 Fix an ALTER TABLE test case so that it actually tests what the comment says it
is testing.  Ah, the perils of making keywords optional ...
2008-06-09 18:28:00 +00:00
Neil Conway 8374246054 Further tweak for comment in CheckDeadLock(), per Tom. 2008-06-09 18:23:05 +00:00
Neil Conway da80a4b97e Fix typo in comment. 2008-06-09 06:55:34 +00:00
Alvaro Herrera 7f15f8f2e7 Fix breakage caused by conflicting patches, as evidenced by the buildfarm. 2008-06-08 23:16:43 +00:00
Tom Lane 281a724d5c Rewrite DROP's dependency traversal algorithm into an honest two-pass
algorithm, replacing the original intention of a one-pass search, which
had been hacked up over time to be partially two-pass in hopes of handling
various corner cases better.  It still wasn't quite there, especially as
regards emitting unwanted NOTICE messages.  More importantly, this approach
lets us fix a number of open bugs concerning concurrent DROP scenarios,
because we can take locks during the first pass and avoid traversing to
dependent objects that were just deleted by someone else.

There is more that can be done here, but I'll go ahead and commit the
base patch before working on the options.
2008-06-08 22:41:04 +00:00
Alvaro Herrera cc87402d6e Move BufferGetPageSize and BufferGetPage from bufpage.h to bufmgr.h. It is
more logical that way, and also it reduces the amount of unnecessary includes
in bufpage.h, which is widely used.

Zdenek Kotala.

My previous patch to bufpage.h should also have credited him as author, but I
forgot (sorry about that).
2008-06-08 22:00:48 +00:00
Tom Lane 2071865caa Update release notes for ALTER AGGREGATE fix. 2008-06-08 21:46:07 +00:00
Tom Lane 395f8b91db ALTER AGGREGATE OWNER seems to have been missed by the last couple of
patches that dealt with object ownership.  It wasn't updating pg_shdepend
nor adjusting the aggregate's ACL.  In 8.2 and up, fix this permanently
by making it use AlterFunctionOwner_oid.  In 8.1, the function code wasn't
factored that way, so just copy and paste.
2008-06-08 21:09:48 +00:00
Tom Lane 6d61b404d4 Update release notes for 8.3.3 et al. 2008-06-07 22:10:38 +00:00
Alvaro Herrera e4ca6cac43 Change xlog.h to xlogdefs.h in bufpage.h, and fix fallout. 2008-06-06 22:35:22 +00:00
Tom Lane c1943dbaef Fix pg_get_ruledef() so that negative numeric constants are parenthesized.
This is needed because :: casting binds more tightly than minus, so for
example -1::integer is not the same as (-1)::integer, and there are cases
where the difference is important.  In particular this caused a failure
in SELECT DISTINCT ... ORDER BY ... where expressions that should have
matched were seen as different by the parser; but I suspect that there
could be other cases where failure to parenthesize leads to subtler
semantic differences in reloaded rules.  Per report from Alexandr Popov.
2008-06-06 17:59:29 +00:00
Alvaro Herrera 700af334cc Fix missing "not", per Frank Millman (bug #4212). 2008-06-05 19:56:09 +00:00
Alvaro Herrera 9319fd89e1 Modify vacuum() to accept a single relation OID instead of a list (which we
always pass as a single element anyway.)  In passing, fix an outdated comment.
2008-06-05 15:47:32 +00:00
Alvaro Herrera f23b79147b Fix some string building in getObjectDescription. 2008-06-05 15:04:39 +00:00
Michael Meskes c8e0d68aa5 Added lost sysmbol SQL_SQL to list of allowed variable names. 2008-06-04 12:23:34 +00:00
Tom Lane 393ad11c7e Draft release notes for upcoming back-branch updates. 2008-06-04 03:16:02 +00:00
Tom Lane eaa70a3891 Fix initdb to reject a relative path for -X (--xlogdir) argument. This
doesn't work, and the real reason why not is it's unclear where the path
is relative to (initdb's CWD, or the data directory?).  We could make an
arbitrary decision, but it seems best to make the user be unambiguous.
Per gripe from Devrim.
2008-06-02 03:48:00 +00:00
Tom Lane c4fdebd926 Update time zone data files to tzdata release 2008c (DST law changes in
Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, Argentina/San_Luis).
2008-06-01 18:23:00 +00:00
Tom Lane 6a9fffcd0d Refactor SPI_cursor_open/SPI_cursor_open_with_args so that the latter sets
the PARAM_FLAG_CONST flag on the parameters that are passed into the portal,
while the former's behavior is unchanged.  This should only affect the case
where the portal is executing an EXPLAIN; it will cause the generated plan to
look more like what would be generated if the portal were actually executing
the command being explained.  Per gripe from Pavel.
2008-06-01 17:32:48 +00:00
Tom Lane 6d19e9ffad Marginal improvements to the documentation for PGOPTIONS. 2008-06-01 16:23:08 +00:00
Andrew Dunstan 66e4da4c86 Done: -Remove psql newline patch when we find out why mingw outputs an extra newline 2008-05-31 15:05:46 +00:00
Tom Lane bf4bd50ff7 Copy refint.so and autoinc.so into the src/test/regress directory during
"make all", and then reference them there during the actual tests.  This
makes the handling of these files more parallel to that of regress.so,
and in particular simplifies use of the regression tests outside the
original build tree.  The PGDG and Red Hat RPMs have been doing this via
patches for a very long time.  Inclusion of the change in core was requested
by Jørgen Austvik of Sun, and I can't see any reason not to.

I attempted to fix the MSVC scripts for this too, but they may need
further tweaking ...
2008-05-30 00:04:32 +00:00
Tom Lane d11e301a15 Improve the documentation comment for replace(). Robert Treat 2008-05-29 22:48:07 +00:00
Tom Lane 02ac305405 Tweak libpq to avoid crashing due to incorrect buffer size calculation when
we are on a 64-bit machine (ie, size_t is wider than int) and someone passes
in a query string that approaches or exceeds INT_MAX bytes.  Also, just for
paranoia's sake, guard against similar overflows in sizing the input buffer.

The backend will not in the foreseeable future be prepared to send or receive
strings exceeding 1GB, so I didn't take the more invasive step of switching
all the buffer index variables from int to size_t; though someday we might
want to do that.

I have a suspicion that this is not the only such bug in libpq, but this
fix is enough to take care of the crash reported by Francisco Reyes.
2008-05-29 22:02:44 +00:00
Tom Lane 5914140a3b Fix some bugs introduced by the 8.2-era conversion of cube functions to V1
calling convention.  cube_inter and cube_distance could attempt to pfree
their input arguments, and cube_dim returned a value from a struct it
might have just pfree'd (which would only really cause a problem in a
debug build, but it's still wrong).  Per bug #4208 and additional code
reading.

In HEAD and 8.3, I also made a batch of cosmetic changes to bring these
functions into line with the preferred coding style for V1 functions,
ie declare and fetch all the arguments at the top so readers can easily
see what they are.
2008-05-29 18:46:40 +00:00
Bruce Momjian e19d10b595 Add description to:
* Add deferred trigger queue file

<   This item involves dumping large queues into files.
>   This item involves dumping large queues into files, or doing some
>   kind of join to process all the triggers, or some bulk operation.
2008-05-29 02:04:15 +00:00
Bruce Momjian 882576aa89 Add URL for:
* Add deferred trigger queue file

>   http://archives.postgresql.org/pgsql-hackers/2008-05/msg00876.php
2008-05-29 01:58:29 +00:00
Magnus Hagander 8eee526c19 Set hidden field for guc enum missed in previous commit. 2008-05-28 15:22:05 +00:00
Magnus Hagander d88cd7db63 Add a field to guc enums to allow hiding of values from display while
still accepting them as input, used to allow alternate syntax for the
same setting.

Alex Hunsaker
2008-05-28 09:04:06 +00:00