summaryrefslogtreecommitdiff
path: root/doc/src/sgml/ref
AgeCommit message (Collapse)Author
2011-03-16Corrections to CREATE FOREIGN TABLE documentation.Robert Haas
Omit incorrect = sign, and properly document server_name parameter. Shigeru Hanada
2011-03-15Adjust doc wording about the casting exceptions for composite types.Bruce Momjian
2011-03-12Use "backend process" rather than "backend server", where appropriate.Bruce Momjian
2011-03-11Fix "unparenthesized" mention in vacuum docs.Bruce Momjian
2011-03-11Document that pg_dump --clean might generate some harmless errors on restore.Bruce Momjian
2011-03-11Document that the parenthesized VACUUM syntax is deprecated, not theBruce Momjian
FREEZE functionality.
2011-03-10Reference doc "examples" section for pg_dump options that often needBruce Momjian
complex quoting, e.g. -t and -n.
2011-03-10Use '=' when documenting long options.Bruce Momjian
2011-03-09Remove collation information from TypeName, where it does not belong.Tom Lane
The initial collations patch treated a COLLATE spec as part of a TypeName, following what can only be described as brain fade on the part of the SQL committee. It's a lot more reasonable to treat COLLATE as a syntactically separate object, so that it can be added in only the productions where it actually belongs, rather than needing to reject it in a boatload of places where it doesn't belong (something the original patch mostly failed to do). In addition this change lets us meet the spec's requirement to allow COLLATE anywhere in the clauses of a ColumnDef, and it avoids unfriendly behavior for constructs such as "foo::type COLLATE collation". To do this, pull collation information out of TypeName and put it in ColumnDef instead, thus reverting most of the collation-related changes in parse_type.c's API. I made one additional structural change, which was to use a ColumnDef as an intermediate node in AT_AlterColumnType AlterTableCmd nodes. This provides enough room to get rid of the "transform" wart in AlterTableCmd too, since the ColumnDef can carry the USING expression easily enough. Also fix some other minor bugs that have crept in in the same areas, like failure to copy recently-added fields of ColumnDef in copyfuncs.c. While at it, document the formerly secret ability to specify a collation in ALTER TABLE ALTER COLUMN TYPE, ALTER TYPE ADD ATTRIBUTE, and ALTER TYPE ALTER ATTRIBUTE TYPE; and correct some misstatements about what the default collation selection will be when COLLATE is omitted. BTW, the three-parameter form of format_type() should go away too, since it just contributes to the confusion in this area; but I'll do that in a separate patch.
2011-03-09Document that server single-user mode does not do checkpoints or otherBruce Momjian
background processing.
2011-03-09Adjust the permissions required for COMMENT ON ROLE.Tom Lane
Formerly, any member of a role could change the role's comment, as of course could superusers; but holders of CREATEROLE privilege could not, unless they were also members. This led to the odd situation that a CREATEROLE holder could create a role but then could not comment on it. It also seems a bit dubious to let an unprivileged user change his own comment, let alone those of group roles he belongs to. So, change the rule to be "you must be superuser to comment on a superuser role, or hold CREATEROLE to comment on non-superuser roles". This is the same as the privilege check for creating/dropping roles, and thus fits much better with the rule for other object types, namely that only the owner of an object can comment on it. In passing, clean up the documentation for COMMENT a little bit. Per complaint from Owen Jacobson and subsequent discussion.
2011-03-09Remove '=' from initdb switch syntax.Bruce Momjian
2011-03-09Improve wording of initdb and pg_controldata manual pages.REL9_1_ALPHA4Bruce Momjian
gabrielle <gorthx@gmail.com>
2011-03-08Assorted editing for collation documentation.Tom Lane
I made a pass over this to familiarize myself with the feature, and found some things that could be improved.
2011-03-07Minor copy-editing in CREATE TRIGGER reference page.Tom Lane
Per suggestions from Thom Brown and Robert Haas.
2011-03-07Document the DEFERRABLE option in SET TRANSACTION command.Heikki Linnakangas
Kevin Grittner
2011-03-05Convert createlang/droplang to use CREATE/DROP EXTENSION.Tom Lane
In createlang this is a one-line change. In droplang there's a whole lot of cruft that can be discarded since the extension mechanism now manages removal of the language's support functions. Also, add deprecation notices to these two programs' reference pages, since per discussion we may toss them overboard altogether in a release or two.
2011-03-05Update documentation to reflect that standard PLs are now extensions.Tom Lane
Recommend use of CREATE EXTENSION rather than plain CREATE LANGUAGE where relevant. Encourage PL authors to provide extension wrappers for their PLs.
2011-03-04Allow non-superusers to create (some) extensions.Tom Lane
Remove the unconditional superuser permissions check in CREATE EXTENSION, and instead define a "superuser" extension property, which when false (not the default) skips the superuser permissions check. In this case the calling user only needs enough permissions to execute the commands in the extension's installation script. The superuser property is also enforced in the same way for ALTER EXTENSION UPDATE cases. In other ALTER EXTENSION cases and DROP EXTENSION, test ownership of the extension rather than superuserness. ALTER EXTENSION ADD/DROP needs to insist on ownership of the target object as well; to do that without duplicating code, refactor comment.c's big switch for permissions checks into a separate function in objectaddress.c. I also removed the superuserness checks in pg_available_extensions and related functions; there's no strong reason why everybody shouldn't be able to see that info. Also invent an IF NOT EXISTS variant of CREATE EXTENSION, and use that in pg_dump, so that dumps won't fail for installed-by-default extensions. We don't have any of those yet, but we will soon. This is all per discussion of wrapping the standard procedural languages into extensions. I'll make those changes in a separate commit; this is just putting the core infrastructure in place.
2011-03-02Add 'collatable' to the Parameters section of CREATE TYPE.Tom Lane
2011-03-02Fix erroneous documentation of the syntax of CREATE CONSTRAINT TRIGGER.Tom Lane
The grammar requires a specific ordering of the clauses, but the documentation showed a different order. This error was introduced in commit b47953f9c69d48a9261bd643e3170017b93f6337, which merged the CREATE CONSTRAINT TRIGGER documentation into the CREATE TRIGGER page. There is no code bug AFAICS.
2011-02-28Add documentation for data-modifying statements in WITH clauses.Tom Lane
Marko Tiikkaja, somewhat reworked by Tom
2011-02-22Fix a couple of unlogged tables goofs.Robert Haas
"SELECT ... INTO UNLOGGED tabname" works, but wasn't documented; CREATE UNLOGGED SEQUENCE and CREATE UNLOGGED VIEW failed an assertion, instead of throwing a sensible error. Latter issue reported by Itagaki Takahiro; patch review by Tom Lane.
2011-02-21Add ENCODING option to COPY TO/FROM and file_fdw.Itagaki Takahiro
File encodings can be specified separately from client encoding. If not specified, client encoding is used for backward compatibility. Cases when the encoding doesn't match client encoding are slower than matched cases because we don't have conversion procs for other encodings. Performance improvement would be be a future work. Original patch by Hitoshi Harada, and modified by me.
2011-02-20Implement an API to let foreign-data wrappers actually be functional.Tom Lane
This commit provides the core code and documentation needed. A contrib module test case will follow shortly. Shigeru Hanada, Jan Urbanski, Heikki Linnakangas
2011-02-19Set psql client encoding from locale by defaultPeter Eisentraut
Add a new libpq connection option client_encoding (which includes the existing PGCLIENTENCODING environment variable), which besides an encoding name accepts a special value "auto" that tries to determine the encoding from the locale in the client's environment, using the mechanisms that have been in use in initdb. psql sets this new connection option to "auto" when running from a terminal and not overridden by setting PGCLIENTENCODING. original code by Heikki Linnakangas, with subsequent contributions by Jaime Casanova, Peter Eisentraut, Stephen Frost, Ibrar Ahmed
2011-02-19Create the catalog infrastructure for foreign-data-wrapper handlers.Tom Lane
Add a fdwhandler column to pg_foreign_data_wrapper, plus HANDLER options in the CREATE FOREIGN DATA WRAPPER and ALTER FOREIGN DATA WRAPPER commands, plus pg_dump support for same. Also invent a new pseudotype fdw_handler with properties similar to language_handler. This is split out of the "FDW API" patch for ease of review; it's all stuff we will certainly need, regardless of any other details of the FDW API. FDW handler functions will not actually get called yet. In passing, fix some omissions and infelicities in foreigncmds.c. Shigeru Hanada, Jan Urbanski, Heikki Linnakangas
2011-02-15pg_ctl promoteRobert Haas
Fujii Masao, reviewed by Robert Haas, Stephen Frost, and Magnus Hagander.
2011-02-14Avoid a few more SET DATA TYPE table rewrites.Robert Haas
When the new type is an unconstrained domain over the old type, we don't need to rewrite the table. Noah Misch and Robert Haas
2011-02-12DDL support for collationsPeter Eisentraut
- collowner field - CREATE COLLATION - ALTER COLLATION - DROP COLLATION - COMMENT ON COLLATION - integration with extensions - pg_dump support for the above - dependency management - psql tab completion - psql \dO command
2011-02-12Teach ALTER TABLE .. SET DATA TYPE to avoid some table rewrites.Robert Haas
When the old type is binary coercible to the new type and the using clause does not change the column contents, we can avoid a full table rewrite, though any indexes on the affected columns will still need to be rebuilt. This applies, for example, when changing a varchar column to be of type text. The prior coding assumed that the set of operations that force a rewrite is identical to the set of operations that must be propagated to tables making use of the affected table's rowtype. This is no longer true: even though the tuples in those tables wouldn't need to be modified, the data type change invalidate indexes built using those composite type columns. Indexes on the table we're actually modifying can be invalidated too, of course, but the existing machinery is sufficient to handle that case. Along the way, add some debugging messages that make it possible to understand what operations ALTER TABLE is actually performing in these cases. Noah Misch and Robert Haas
2011-02-11Clean up installation directory choices for extensions.Tom Lane
Arrange for the control files to be in $SHAREDIR/extension not $SHAREDIR/contrib, since we're generally trying to deprecate the term "contrib" and this is a once-in-many-moons opportunity to get rid of it in install paths. Fix PGXS to install the $EXTENSION file into that directory no matter what MODULEDIR is set to; a nondefault MODULEDIR should only affect the script and secondary extension files. Fix the control file directory parameter to be interpreted relative to $SHAREDIR, to avoid a surprising disconnect between how you specify that and what you set MODULEDIR to. Per discussion with David Wheeler.
2011-02-11Add support for multiple versions of an extension and ALTER EXTENSION UPDATE.Tom Lane
This follows recent discussions, so it's quite a bit different from Dimitri's original. There will probably be more changes once we get a bit of experience with it, but let's get it in and start playing with it. This is still just core code. I'll start converting contrib modules shortly. Dimitri Fontaine and Tom Lane
2011-02-10Extend "ALTER EXTENSION ADD object" to permit "DROP object" as well.Tom Lane
Per discussion, this is something we should have sooner rather than later, and it doesn't take much additional code to support it.
2011-02-09Implement "ALTER EXTENSION ADD object".Tom Lane
This is an essential component of making the extension feature usable; first because it's needed in the process of converting an existing installation containing "loose" objects of an old contrib module into the extension-based world, and second because we'll have to use it in pg_dump --binary-upgrade, as per recent discussion. Loosely based on part of Dimitri Fontaine's ALTER EXTENSION UPGRADE patch.
2011-02-08Core support for "extensions", which are packages of SQL objects.Tom Lane
This patch adds the server infrastructure to support extensions. There is still one significant loose end, namely how to make it play nice with pg_upgrade, so I am not yet committing the changes that would make all the contrib modules depend on this feature. In passing, fix a disturbingly large amount of breakage in AlterObjectNamespace() and callers. Dimitri Fontaine, reviewed by Anssi Kääriäinen, Itagaki Takahiro, Tom Lane, and numerous others
2011-02-08Per-column collation supportPeter Eisentraut
This adds collation support for columns and domains, a COLLATE clause to override it per expression, and B-tree index support. Peter Eisentraut reviewed by Pavel Stehule, Itagaki Takahiro, Robert Haas, Noah Misch
2011-02-08Extend ALTER TABLE to allow Foreign Keys to be added without initial validation.Simon Riggs
FK constraints that are marked NOT VALID may later be VALIDATED, which uses an ShareUpdateExclusiveLock on constraint table and RowShareLock on referenced table. Significantly reduces lock strength and duration when adding FKs. New state visible from psql. Simon Riggs, with reviews from Marko Tiikkaja and Robert Haas
2011-02-08Implement genuine serializable isolation level.Heikki Linnakangas
Until now, our Serializable mode has in fact been what's called Snapshot Isolation, which allows some anomalies that could not occur in any serialized ordering of the transactions. This patch fixes that using a method called Serializable Snapshot Isolation, based on research papers by Michael J. Cahill (see README-SSI for full references). In Serializable Snapshot Isolation, transactions run like they do in Snapshot Isolation, but a predicate lock manager observes the reads and writes performed and aborts transactions if it detects that an anomaly might occur. This method produces some false positives, ie. it sometimes aborts transactions even though there is no anomaly. To track reads we implement predicate locking, see storage/lmgr/predicate.c. Whenever a tuple is read, a predicate lock is acquired on the tuple. Shared memory is finite, so when a transaction takes many tuple-level locks on a page, the locks are promoted to a single page-level lock, and further to a single relation level lock if necessary. To lock key values with no matching tuple, a sequential scan always takes a relation-level lock, and an index scan acquires a page-level lock that covers the search key, whether or not there are any matching keys at the moment. A predicate lock doesn't conflict with any regular locks or with another predicate locks in the normal sense. They're only used by the predicate lock manager to detect the danger of anomalies. Only serializable transactions participate in predicate locking, so there should be no extra overhead for for other transactions. Predicate locks can't be released at commit, but must be remembered until all the transactions that overlapped with it have completed. That means that we need to remember an unbounded amount of predicate locks, so we apply a lossy but conservative method of tracking locks for committed transactions. If we run short of shared memory, we overflow to a new "pg_serial" SLRU pool. We don't currently allow Serializable transactions in Hot Standby mode. That would be hard, because even read-only transactions can cause anomalies that wouldn't otherwise occur. Serializable isolation mode now means the new fully serializable level. Repeatable Read gives you the old Snapshot Isolation level that we have always had. Kevin Grittner and Dan Ports, reviewed by Jeff Davis, Heikki Linnakangas and Anssi Kääriäinen
2011-02-04Update ALTER TABLE docs to mention using VACUUM FULL for rewrites.Robert Haas
Remove the claim that ALTER TABLE .. SET DATA TYPE is the fastest way of rewriting a table, since it no longer is. Noah Misch and Robert Haas, based on a suggestion from Tom Lane.
2011-02-03Fix typo.Magnus Hagander
Thom Brown
2011-02-02Mark all GUC variables with <varname> markup, rather than <literal>.Bruce Momjian
2011-02-01Document that CREATE VIEW that uses "*" for the column list will notBruce Momjian
auto-add columns later added to the base table.
2011-02-01Properly capitalize hyphenated words in documentation titles.Bruce Momjian
2011-01-31Remove spurious word, spotted by Thom Brown.Heikki Linnakangas
2011-01-31Support multiple concurrent pg_basebackup backups.Heikki Linnakangas
With this patch, pg_basebackup doesn't write a backup_label file in the data directory, so it doesn't interfere with a pg_start/stop_backup() based backup anymore. backup_label is still included in the backup, but it is injected directly into the tar stream. Heikki Linnakangas, reviewed by Fujii Masao and Magnus Hagander.
2011-01-30Add option to include WAL in base backupMagnus Hagander
When included, this makes the base backup a complete working "clone" of the initial database, ready to have a postmaster started against it without the need to set up any log archiving or similar. Magnus Hagander, reviewed by Fujii Masao and Heikki Linnakangas
2011-01-29Properly capitalize documentation headings; some only had initial-wordBruce Momjian
capitalization.
2011-01-26Update contrib documention mentions to point to actual documentationBruce Momjian
sections, rather than just calling it "/contrib/module_name". Also update pg_test_fsync build instructions now that it is in /contrib.
2011-01-26Make 'on' uppercase in a sql example.Itagaki Takahiro