Commit Graph

6432 Commits

Author SHA1 Message Date
Bruce Momjian 04a942e31e Split up wal-logging items:
< * Allow control over which tables are WAL-logged [walcontrol]
> * Allow WAL logging to be turned off for a table, but the table
>   might be dropped or truncated during crash recovery [walcontrol]
<   commit.  To do this, only a single writer can modify the table, and
<   writes must happen only on new pages.  Readers can continue accessing
<   the table.  This would affect COPY, and perhaps INSERT/UPDATE too.
<   Another option is to avoid transaction logging entirely and truncate
<   or drop the table on crash recovery.  These should be implemented
<   using ALTER TABLE, e.g. ALTER TABLE PERSISTENCE [ DROP | TRUNCATE |
<   STABLE | DEFAULT ].  Tables using non-default logging should not use
<   referential integrity with default-logging tables, and tables using
<   stable logging probably can not have indexes.  One complexity is
<   the handling of indexes on TOAST tables.
>   commit.  This should be implemented using ALTER TABLE, e.g. ALTER
>   TABLE PERSISTENCE [ DROP | TRUNCATE | DEFAULT ].  Tables using
>   non-default logging should not use referential integrity with
>   default-logging tables.  A table without dirty buffers during a
>   crash could perhaps avoid the drop/truncate.
>
> * Allow WAL logging to be turned off for a table, but the table would
>   avoid being truncated/dropped [walcontrol]
>
>   To do this, only a single writer can modify the table, and writes
>   must happen only on new pages so the new pages can be removed during
>   crash recovery.  Readers can continue accessing the table.  Such
>   tables probably cannot have indexes.  One complexity is the handling
>   of indexes on TOAST tables.
2006-02-07 02:08:08 +00:00
Bruce Momjian db5e39b2f0 Fix typo in configuration docs.
Devrim GUNDUZ
2006-02-05 18:19:14 +00:00
Bruce Momjian 354213c7f4 Update PL/pgSQL trigger example to be clearer about how to "merge" data
into a table.

Jim C. Nasby
2006-02-05 02:47:53 +00:00
Tom Lane 3893127431 Fix constraint exclusion to work in inherited UPDATE/DELETE queries
... in fact, it will be applied now in any query whatsoever.  I'm still
a bit concerned about the cycles that might be expended in failed proof
attempts, but given that CE is turned off by default, it's the user's
choice whether to expend those cycles or not.  (Possibly we should
change the simple bool constraint_exclusion parameter to something
more fine-grained?)
2006-02-04 23:03:20 +00:00
Tom Lane 48d9ad3722 Fix broken markup. 2006-02-04 22:38:39 +00:00
Andrew Dunstan f8b54fe6ed DROP IF EXISTS for ROLE/USER/GROUP 2006-02-04 19:06:47 +00:00
Peter Eisentraut 3fa9c416ed Issue a warning if a change-on-restart-only postgresql.conf value is
modified  and the server config files are reloaded
2006-02-04 12:50:47 +00:00
Bruce Momjian bc6a824ca6 Update walcontrol item:
< * Allow control over which tables are WAL-logged
> * Allow control over which tables are WAL-logged [walcontrol]
1038c1038,1039
<   stable logging probably can not have indexes.  [walcontrol]
>   stable logging probably can not have indexes.  One complexity is
>   the handling of indexes on TOAST tables.
2006-02-04 03:23:21 +00:00
Bruce Momjian 3f8984039a Add to TODO.detail/walcontrol. 2006-02-04 03:22:36 +00:00
Bruce Momjian bd5d12a16b Add:
> * Allow statistics collector information to be pulled from the collector
>   process directly, rather than requiring the collector to write a
>   filesystem file twice a second?
2006-02-01 17:32:45 +00:00
Bruce Momjian c6ef3264be Move items:
> * Add SQL99 WITH clause to SELECT
> * Add SQL99 WITH RECURSIVE to SELECT
< * Add SQL99 WITH clause to SELECT
< * Add SQL99 WITH RECURSIVE to SELECT
2006-02-01 00:07:26 +00:00
Bruce Momjian 5eb29fea25 Add:
>
> 	o Prevent tab completion of SET TRANSACTION from querying the
> 	  database and therefore preventing the transaction isolation
> 	  level from being set.
>
> 	  Currently, SET <tab> causes a database lookup to check all
> 	  supported session variables.  This query causes problems
> 	  because setting the transaction isolation level must be the
> 	  first statement of a transaction.
2006-02-01 00:03:09 +00:00
Michael Meskes 097df388b7 Removed single quotes from connect to example. 2006-01-31 13:32:20 +00:00
Bruce Momjian 3125321934 Done:
< * %Prevent INET cast to CIDR if the unmasked bits are not zero, or
<   zero the bits
< * %Prevent INET cast to CIDR from dropping netmask, SELECT '1.1.1.1'::inet::cidr
> * -Zero umasked bits in conversion from INET cast to CIDR
> * -Prevent INET cast to CIDR from dropping netmask, SELECT '1.1.1.1'::inet::cidr
2006-01-26 02:50:11 +00:00
Tom Lane 8d8bf12760 Clean up the INET-vs-CIDR situation. Get rid of the internal is_cidr flag
and rely exclusively on the SQL type system to tell the difference between
the types.  Prevent creation of invalid CIDR values via casting from INET
or set_masklen() --- both of these operations now silently zero any bits
to the right of the netmask.  Remove duplicate CIDR comparison operators,
letting the type rely on the INET operators instead.
2006-01-26 02:35:51 +00:00
Tom Lane 726b42abd0 Improve wording of descriptions of SIGHUP GUC parameters, as per my
suggestion a couple days ago.  Fix some cases in which the documentation
neglected to mention any restriction on when a parameter can be set.
Try to be consistent about calling parameters parameters; use the term
option only for command-line switches.
2006-01-23 18:16:41 +00:00
Bruce Momjian 1bdc5ab2da Done:
< 	o Allow an alias to be provided for the target table in
< 	  UPDATE/DELETE
<
< 	  This is not SQL-spec but many DBMSs allow it.
<
> 	o -Allow an alias to be provided for the target table in
> 	  UPDATE/DELETE (Neil)
2006-01-23 02:59:27 +00:00
Tom Lane 16c5a471a3 Improve note about not using the target table name in the SET clause.
It's not related to whether an alias is used or not.
2006-01-22 20:34:11 +00:00
Neil Conway 1d763d9107 Allow an optional alias for the target table to be specified for UPDATE
and DELETE. If specified, the alias must be used instead of the full
table name. Also, the alias currently cannot be used in the SET clause
of UPDATE.

Patch from Atsushi Ogawa, various editorialization by Neil Conway.
Along the way, make the rowtypes regression test pass if add_missing_from
is enabled, and add a new (skeletal) regression test for DELETE.
2006-01-22 05:20:35 +00:00
Neil Conway 57a84ca48e Minor improvements to GEQO documentation. 2006-01-22 03:56:58 +00:00
Tom Lane b42f307340 Marginal improvements in the wording of the autovacuum documentation:
be consistent about whether it's called a daemon or a subprocess, and
don't describe the autovacuum setting in exactly the same way as the
stats_start_collector setting, because that leaves people thinking (if
they aren't paying close attention) that autovacuum can't be changed
on the fly.
2006-01-21 19:34:42 +00:00
Tom Lane 27959dd746 Fix broken markup. 2006-01-21 19:05:59 +00:00
Bruce Momjian 4789e98801 Add GRANT ON SEQUENCE syntax to support sequence-only permissions.
Continue to support GRANT ON [TABLE] for sequences for backward
compatibility;  issue warning for invalid sequence permissions.

[Backward compatibility warning message.]

Add USAGE permission for sequences that allows only currval() and
nextval(), not setval().

Mention object name in grant/revoke warnings because of possible
multi-object operations.
2006-01-21 02:16:21 +00:00
Bruce Momjian 138fdf32bb Update EXPLAIN wording for GEQO usage. 2006-01-20 16:41:55 +00:00
Bruce Momjian cd5d464e9f Doc patch that adds an example of a correllated UPDATE.
David Fetter
2006-01-19 23:09:42 +00:00
Bruce Momjian 807cb000f6 Clarify STABLE function documentation to highlight how such functions
can be optimized.
2006-01-19 22:52:08 +00:00
Bruce Momjian 7259cc1e7e Clarify use of btree indexes for ILIKE and ~*. 2006-01-18 21:29:45 +00:00
Bruce Momjian ccebb6745e You'll find attached a patch for a fixed explanation on parameter_mode
column, OUT and INOUT added.

Guillaume LELARGE
2006-01-18 21:02:55 +00:00
Bruce Momjian e1af35afac Done:
> 	o -Allow pooled connections to list all open WITH HOLD cursors
2006-01-18 14:20:22 +00:00
Neil Conway 33e06ebccb Add a new system view, pg_cursors, that displays the currently available
cursors. Patch from Joachim Wieland, review and ediorialization by Neil
Conway. The view lists cursors defined by DECLARE CURSOR, using SPI, or
via the Bind message of the frontend/backend protocol. This means the
view does not list the unnamed portal or the portal created to implement
EXECUTE. Because we do list SPI portals, there might be more rows in
this view than you might expect if you are using SPI implicitly (e.g.
via a procedural language).

Per recent discussion on -hackers, the query string included in the
view for cursors defined by DECLARE CURSOR is based on
debug_query_string. That means it is not accurate if multiple queries
separated by semicolons are submitted as one query string. However,
there doesn't seem a trivial fix for that: debug_query_string
is better than nothing. I also changed SPI_cursor_open() to include
the source text for the portal it creates: AFAICS there is no reason
not to do this.

Update the documentation and regression tests, bump the catversion.
2006-01-18 06:49:30 +00:00
Bruce Momjian e38217d1ec Improve constraint_name wording. 2006-01-16 20:48:49 +00:00
Bruce Momjian a0ae3dbacb Add markup for new constraint_name mention. 2006-01-16 19:53:12 +00:00
Bruce Momjian 9200318972 Add documentaiotn mention that constraint names can be sentences that
can convey information to clients on constraint violation.
2006-01-16 19:50:03 +00:00
Neil Conway b06e6f1a9a Change the parameter_types column of the pg_prepared_statements to be
an array of regtype, rather than an array of OIDs. This is likely to
be more useful to user, and the type OID can easily be obtained by
casting a regtype value to OID. Per suggestion from Tom.

Update the documentation and regression tests, and bump the catversion.
2006-01-16 18:15:31 +00:00
Neil Conway 106a3695f5 Allow the types of parameters to PREPARE to be inferred. If a parameter's
data type is unspecified or is declared to be "unknown", the type will
be inferred from the context in which the parameter is used. This was
already possible for protocol-level prepared statements.
2006-01-15 22:18:47 +00:00
Tom Lane 7d6d02b640 Document that CREATE OPERATOR CLASS amounts to granting public execute
permissions on the functions and operators contained in the opclass.
Since we already require superuser privilege to create an operator class,
there's no expansion-of-privilege hazard here, but if someone were to get
the idea of building an opclass containing functions that need security
restrictions, we'd better warn them off.  Also, change the permission
checks from have-execute-privilege to have-ownership, and then comment
them all out since they're dead code anyway under the superuser restriction.
2006-01-13 18:10:25 +00:00
Tom Lane 1564e92cea Require the issuer of CREATE TYPE to own the functions mentioned in the
type definition.  Because use of a type's I/O conversion functions isn't
access-checked, CREATE TYPE amounts to granting public execute permissions
on the functions, and so allowing it to anybody means that someone could
theoretically gain access to a function he's not supposed to be able to
execute.  The parameter-type restrictions already enforced by CREATE TYPE
make it fairly unlikely that this oversight is meaningful in practice,
but still it seems like a good idea to plug the hole going forward.
Also, document the implicit grant just in case anybody gets the idea of
building I/O functions that might need security restrictions.
2006-01-13 18:06:45 +00:00
Tom Lane 9484e14c5c Remove extraneous backslash from 'fixseq.sql' example --- mea culpa
certainly.  Per report from George Woodring.
2006-01-12 18:09:24 +00:00
Tom Lane 445144b8c2 Update comment about outer joins in description of geqo_threshold. 2006-01-11 23:14:29 +00:00
Neil Conway 416689c866 Documentation tweak: add spaces around the brackets in the description
of the CREATE CONVERSION syntax, for consistency with the other SQL
reference pages.
2006-01-11 22:16:39 +00:00
Bruce Momjian 9545d66a97 Done:
> * -Add sleep() function, remove from regress.c
2006-01-11 20:28:21 +00:00
Tom Lane 782eefc580 Create a standard function pg_sleep() to sleep for a specified amount of time.
Replace the former ad-hoc implementation used in the regression tests.
Joachim Wieland
2006-01-11 20:12:43 +00:00
Bruce Momjian 42ff6a04d8 Done:
< * %Allow pooled connections to list all prepared statements
> * -%Allow pooled connections to list all prepared statements
2006-01-09 22:43:23 +00:00
Neil Conway 44b928e876 Add a new system view, pg_prepared_statements, that can be used to
access information about the prepared statements that are available
in the current session. Original patch from Joachim Wieland, various
improvements by Neil Conway.

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

Catalog version bumped, regression tests updated.
2006-01-08 07:00:27 +00:00
Tom Lane 615d99feb4 Release-note updates and copy editing. 2006-01-06 02:59:57 +00:00
Tom Lane bf7faa7c8f Fix broken markup. 2006-01-06 01:35:09 +00:00
Bruce Momjian 6d41b144e9 Add:
>
> 	* Allow SERIAL sequences to inherit permissions from the base table?
2006-01-05 17:47:53 +00:00
Bruce Momjian 9a47ad1d20 Add logging control TODO.detail. 2006-01-05 17:28:45 +00:00
Bruce Momjian db6cb1a9a9 Update:
<   stable logging probably can not have indexes.  [wallog]
>   stable logging probably can not have indexes.  [walcontrol]
2006-01-05 16:39:54 +00:00
Bruce Momjian ac9e14d064 Update wording:
<   STABLE | DEFAULT ].  [wallog]
>   STABLE | DEFAULT ].  Tables using non-default logging should not use
>   referential integrity with default-logging tables, and tables using
>   stable logging probably can not have indexes.  [wallog]
2006-01-05 16:35:19 +00:00