summaryrefslogtreecommitdiff
path: root/doc/src
AgeCommit message (Collapse)Author
2013-09-23Don't allow system columns in CHECK constraints, except tableoid.Robert Haas
Previously, arbitray system columns could be mentioned in table constraints, but they were not correctly checked at runtime, because the values weren't actually set correctly in the tuple. Since it seems easy enough to initialize the table OID properly, do that, and continue allowing that column, but disallow the rest unless and until someone figures out a way to make them work properly. No back-patch, because this doesn't seem important enough to take the risk of destabilizing the back branches. In fact, this will pose a dump-and-reload hazard for those upgrading from previous versions: constraints that were accepted before but were not correctly enforced will now either be enforced correctly or not accepted at all. Either could result in restore failures, but in practice I think very few users will notice the difference, since the use case is pretty marginal anyway and few users will be relying on features that have not historically worked. Amit Kapila, reviewed by Rushabh Lathia, with doc changes by me.
2013-09-18Documentation correction.Robert Haas
Etsuro Fujita
2013-09-16Add a GUC to report whether data page checksums are enabled.Heikki Linnakangas
Bernd Helmle
2013-09-15Fix typosPeter Eisentraut
2013-09-10docs: Update libpq and testlo examplesBruce Momjian
Josh Kupershmidt
2013-09-09Show schemas in information_schema.schemata that the current has access toPeter Eisentraut
Before, it would only show schemas that the current user owns. Per discussion, the new behavior is more useful and consistent for PostgreSQL.
2013-09-05Eliminate pg_rewrite.ev_attr column and related dead code.Kevin Grittner
Commit 95ef6a344821655ce4d0a74999ac49dd6af6d342 removed the ability to create rules on an individual column as of 7.3, but left some residual code which has since been useless. This cleans up that dead code without any change in behavior other than dropping the useless column from the catalog.
2013-09-04Improve Range Types and Exclusion Constraints example.Jeff Davis
Make the examples self-contained to avoid confusion. Per bug report 8367 from KOIZUMI Satoru.
2013-09-03Don't fail for bad GUCs in CREATE FUNCTION with check_function_bodies off.Tom Lane
The previous coding attempted to activate all the GUC settings specified in SET clauses, so that the function validator could operate in the GUC environment expected by the function body. However, this is problematic when restoring a dump, since the SET clauses might refer to database objects that don't exist yet. We already have the parameter check_function_bodies that's meant to prevent forward references in function definitions from breaking dumps, so let's change CREATE FUNCTION to not install the SET values if check_function_bodies is off. Authors of function validators were already advised not to make any "context sensitive" checks when check_function_bodies is off, if indeed they're checking anything at all in that mode. But extend the documentation to point out the GUC issue in particular. (Note that we still check the SET clauses to some extent; the behavior with !check_function_bodies is now approximately equivalent to what ALTER DATABASE/ROLE have been doing for awhile with context-dependent GUCs.) This problem can be demonstrated in all active branches, so back-patch all the way.
2013-09-03Allow aggregate functions to be VARIADIC.Tom Lane
There's no inherent reason why an aggregate function can't be variadic (even VARIADIC ANY) if its transition function can handle the case. Indeed, this patch to add the feature touches none of the planner or executor, and little of the parser; the main missing stuff was DDL and pg_dump support. It is true that variadic aggregates can create the same sort of ambiguity about parameters versus ORDER BY keys that was complained of when we (briefly) had both one- and two-argument forms of string_agg(). However, the policy formed in response to that discussion only said that we'd not create any built-in aggregates with varying numbers of arguments, not that we shouldn't allow users to do it. So the logical extension of that is we can allow users to make variadic aggregates as long as we're wary about shipping any such in core. In passing, this patch allows aggregate function arguments to be named, to the extent of remembering the names in pg_proc and dumping them in pg_dump. You can't yet call an aggregate using named-parameter notation. That seems like a likely future extension, but it'll take some work, and it's not what this patch is really about. Likewise, there's still some work needed to make window functions handle VARIADIC fully, but I left that for another day. initdb forced because of new aggvariadic field in Aggref parse nodes.
2013-09-03Docs: wording improvements in discussion of timestamp arithmetic.Tom Lane
I started out just to fix the broken markup in commit 1c2085766187031eaeaae7db4785b9e1d4241988, but got distracted by copy-editing. I see Bruce already fixed the markup, but I'll commit the wordsmithing anyway.
2013-09-03doc: Fix SGML markup for date patchBruce Momjian
2013-09-03Docs: add paragraph about date/timestamp subtractionBruce Momjian
per suggestion from Francisco Olart
2013-09-03docs: Clarify that we also support Solaris versions greater than 10.Robert Haas
MauMau
2013-09-02Fix relfrozenxid query in docs to include TOAST tables.Andrew Dunstan
The original query ignored TOAST tables which could result in tables needing a vacuum not being reported. Backpatch to all live branches.
2013-09-01Update "Using EXPLAIN" documentation examples using current code.Tom Lane
It seems like a good idea to update these examples since some fairly basic planner behaviors have changed in 9.3; notably that the startup cost for an indexscan plan node is no longer invariably estimated at 0.00.
2013-08-31Update 9.3 release notes.Tom Lane
Some corrections, a lot of copy-editing. Set projected release date as 2013-09-09.
2013-08-28Allow discovery of whether a dynamic background worker is running.Robert Haas
Using the infrastructure provided by this patch, it's possible either to wait for the startup of a dynamically-registered background worker, or to poll the status of such a worker without waiting. In either case, the current PID of the worker process can also be obtained. As usual, worker_spi is updated to demonstrate the new functionality. Patch by me. Review by Andres Freund.
2013-08-28Accept multiple -I, -P, -T and -n options in pg_restore.Heikki Linnakangas
We already did this for -t (--table) in 9.3, but missed the other similar options. For consistency, allow all of them to be specified multiple times. Unfortunately it's too late to sneak this into 9.3, so commit to master only.
2013-08-26doc: Explain that ereport doesn't return for ERROR or higher levels.Robert Haas
Christophe Pettus
2013-08-21docs: Remove second 'trim' index referenceBruce Momjian
Per suggestion from Vik Fearing
2013-08-20release notes: update link to 9.3 PL/pgSQL constraint error infoBruce Momjian
Backpatch to 9.3. Pavel Stehule
2013-08-19release notes: remove username from 9.3 major itemBruce Momjian
Etsuro Fujita
2013-08-16release notes: update 9.3 major feature listBruce Momjian
Backpatch to 9.3.
2013-08-16release notes: Update to 9.3 git currentBruce Momjian
Backpatch to 9.3, of course.
2013-08-14docs: document TRIM "comma" syntaxBruce Momjian
This syntax is supported by the parser, but is non-standard. _Not_ backpatched to 9.3 in case we change our minds.
2013-08-139.3 release notes: move foreign table itemBruce Momjian
Move item about foreign data wrappers supporting inserts/updates/deletes to object manipulation. From Etsuro Fujita
2013-08-09docs: mention Julian is midnight _UTC_Bruce Momjian
(Yes, there was no UTC back then, but we compute it that way.) Backpatch to 9.3.
2013-08-09Docs: Document to_*() Julian values are integersBruce Momjian
Backpatch to 9.3. Per request from Marc Dahn
2013-08-09Document how auto_explain.log_timing can be changed.Fujii Masao
2013-07-31Fix inaccurate description of tablespace.Fujii Masao
Currently we don't need to update the pg_tablespace catalog after redefining the symbolic links to the tablespaces because pg_tablespace.spclocation column was removed in PostgreSQL 9.2. Back patch to 9.2 where pg_tablespace.spclocation was removed. Ian Barwick, with minor change by me.
2013-07-29Add SQL Standard WITH ORDINALITY support for UNNEST (and any other SRF)Greg Stark
Author: Andrew Gierth, David Fetter Reviewers: Dean Rasheed, Jeevan Chalke, Stephen Frost
2013-07-26pg_upgrade docs: don't use cluster for binary/libBruce Momjian
In a few cases, pg_upgrade said old/new cluster location when it meant old/new Postgres install location, so fix those. Per private email report
2013-07-25Prevent leakage of SPI tuple tables during subtransaction abort.Tom Lane
plpgsql often just remembers SPI-result tuple tables in local variables, and has no mechanism for freeing them if an ereport(ERROR) causes an escape out of the execution function whose local variable it is. In the original coding, that wasn't a problem because the tuple table would be cleaned up when the function's SPI context went away during transaction abort. However, once plpgsql grew the ability to trap exceptions, repeated trapping of errors within a function could result in significant intra-function-call memory leakage, as illustrated in bug #8279 from Chad Wagner. We could fix this locally in plpgsql with a bunch of PG_TRY/PG_CATCH coding, but that would be tedious, probably slow, and prone to bugs of omission; moreover it would do nothing for similar risks elsewhere. What seems like a better plan is to make SPI itself responsible for freeing tuple tables at subtransaction abort. This patch attacks the problem that way, keeping a list of live tuple tables within each SPI function context. Currently, such freeing is automatic for tuple tables made within the failed subtransaction. We might later add a SPI call to mark a tuple table as not to be freed this way, allowing callers to opt out; but until someone exhibits a clear use-case for such behavior, it doesn't seem worth bothering. A very useful side-effect of this change is that SPI_freetuptable() can now defend itself against bad calls, such as duplicate free requests; this should make things more robust in many places. (In particular, this reduces the risks involved if a third-party extension contains now-redundant SPI_freetuptable() calls in error cleanup code.) Even though the leakage problem is of long standing, it seems imprudent to back-patch this into stable branches, since it does represent an API semantics change for SPI users. We'll patch this in 9.3, but live with the leakage in older branches.
2013-07-25pgstattuple: Doc update for previous commit.Robert Haas
In my previous change to make pgstattuple use SnapshotDirty rather than SnapshotNow, I failed to notice that the documenation also needed to be updated to match. Fix.
2013-07-24Add GET DIAGNOSTICS ... PG_CONTEXT in PL/PgSQLStephen Frost
This adds the ability to get the call stack as a string from within a PL/PgSQL function, which can be handy for logging to a table, or to include in a useful message to an end-user. Pavel Stehule, reviewed by Rushabh Lathia and rather heavily whacked around by Stephen Frost.
2013-07-22doc: Remove tab from SGML filePeter Eisentraut
2013-07-23Add --rate option.Tatsuo Ishii
This controls the target transaction rate to certain tps, rather than maximum. Patch contributed by Fabien COELHO, reviewed by Greg Smith, and slight editing by me.
2013-07-22Remove bgw_sighup and bgw_sigterm.Robert Haas
Per discussion on pgsql-hackers, these aren't really needed. Interim versions of the background worker patch had the worker starting with signals already unblocked, which would have made this necessary. But the final version does not, so we don't really need it; and it doesn't work well with the new facility for starting dynamic background workers, so just rip it out. Also per discussion on pgsql-hackers, back-patch this change to 9.3. It's best to get the API break out of the way before we do an official release of this facility, to avoid more pain for extension authors later.
2013-07-22Silence compiler warning on an unused variableAlvaro Herrera
Also, tweak wording in comments (per Andres) and documentation (myself) to point out that it's the database's default tablespace that can be passed as 0, not DEFAULTTABLESPACE_OID. Robert Haas noticed the bug in the code, but didn't update the accompanying prose.
2013-07-22Add infrastructure for mapping relfilenodes to relation OIDs.Robert Haas
Future patches are expected to introduce logical replication that works by decoding WAL. WAL contains relfilenodes rather than relation OIDs, so this infrastructure will be needed to find the relation OID based on WAL contents. If logical replication does not make it into this release, we probably should consider reverting this, since it will add some overhead to DDL operations that create new relations. One additional index insert per pg_class row is not a large overhead, but it's more than zero. Another way of meeting the needs of logical replication would be to the relation OID to WAL, but that would burden DML operations, not only DDL. Andres Freund, with some changes by me. Design review, in earlier versions, by Álvaro Herrera.
2013-07-19doc: Fix typos in conversion names.Robert Haas
David Christensen
2013-07-18WITH CHECK OPTION support for auto-updatable VIEWsStephen Frost
For simple views which are automatically updatable, this patch allows the user to specify what level of checking should be done on records being inserted or updated. For 'LOCAL CHECK', new tuples are validated against the conditionals of the view they are being inserted into, while for 'CASCADED CHECK' the new tuples are validated against the conditionals for all views involved (from the top down). This option is part of the SQL specification. Dean Rasheed, reviewed by Pavel Stehule
2013-07-19Fix pgstattuple functions to use regclass-type as the argument.Fujii Masao
This allows us to specify the target relation with several expressions, 'relname', 'schemaname.relname' and OID in all pgstattuple functions. pgstatindex() and pg_relpages() could not accept OID as the argument so far. Per discussion on -hackers, we decided to keep two types of interfaces, with regclass-type and TEXT-type argument, for each pgstattuple function because of the backward-compatibility issue. The functions which have TEXT-type argument will be deprecated in the future release. Patch by Satoshi Nagayasu, reviewed by Rushabh Lathia and Fujii Masao.
2013-07-17doc: Remove tab from SGML filePeter Eisentraut
2013-07-18Fix typo in previous pgbench --progress patch.Fujii Masao
2013-07-17Use correct parameter name for view_option_valueStephen Frost
The documentation for ALTER VIEW had a minor copy-and-paste error in defining the parameters. Noticed when reviewing the WITH CHECK OPTION patch. Backpatch to 9.2 where this was first introduced.
2013-07-16Implement the FILTER clause for aggregate function calls.Noah Misch
This is SQL-standard with a few extensions, namely support for subqueries and outer references in clause expressions. catversion bump due to change in Aggref and WindowFunc. David Fetter, reviewed by Dean Rasheed.
2013-07-17Add --progress option to show progress reportTatsuo Ishii
Patch contributed by Fabien COELHO, reviewed by KONDO Mitsumasa.
2013-07-16Add support for REFRESH MATERIALIZED VIEW CONCURRENTLY.Kevin Grittner
This allows reads to continue without any blocking while a REFRESH runs. The new data appears atomically as part of transaction commit. Review questioned the Assert that a matview was not a system relation. This will be addressed separately. Reviewed by Hitoshi Harada, Robert Haas, Andres Freund. Merged after review with security patch f3ab5d4.