summaryrefslogtreecommitdiff
path: root/doc/src
AgeCommit message (Collapse)Author
2013-03-03Add a materialized view relations.Kevin Grittner
A materialized view has a rule just like a view and a heap and other physical properties like a table. The rule is only used to populate the table, references in queries refer to the materialized data. This is a minimal implementation, but should still be useful in many cases. Currently data is only populated "on demand" by the CREATE MATERIALIZED VIEW and REFRESH MATERIALIZED VIEW statements. It is expected that future releases will add incremental updates with various timings, and that a more refined concept of defining what is "fresh" data will be developed. At some point it may even be possible to have queries use a materialized in place of references to underlying tables, but that requires the other above-mentioned features to be working first. Much of the documentation work by Robert Haas. Review by Noah Misch, Thom Brown, Robert Haas, Marko Tiikkaja Security review by KaiGai Kohei, with a decision on how best to implement sepgsql still pending.
2013-03-03doc: Small tweak for consistencyPeter Eisentraut
submitted by "Lyle"
2013-03-03doc: A few awkward phrasing fixesPeter Eisentraut
Josh Kupershmidt
2013-02-27Remove spurious "the", and add a missing one.Heikki Linnakangas
Thom Brown and me.
2013-02-27Add support for piping COPY to/from an external program.Heikki Linnakangas
This includes backend "COPY TO/FROM PROGRAM '...'" syntax, and corresponding psql \copy syntax. Like with reading/writing files, the backend version is superuser-only, and in the psql version, the program is run in the client. In the passing, the psql \copy STDIN/STDOUT syntax is subtly changed: if you the stdin/stdout is quoted, it's now interpreted as a filename. For example, "\copy foo from 'stdin'" now reads from a file called 'stdin', not from standard input. Before this, there was no way to specify a filename called stdin, stdout, pstdin or pstdout. This creates a new function in pgport, wait_result_to_str(), which can be used to convert the exit status of a process, as returned by wait(3), to a human-readable string. Etsuro Fujita, reviewed by Amit Kapila.
2013-02-25doc: Fix markup typoPeter Eisentraut
2013-02-25Add -d option to pg_dumpall, for specifying a connection string.Heikki Linnakangas
Like with pg_basebackup and pg_receivexlog, it's a bit strange to call the option -d/--dbname, when in fact you cannot pass a database name in it. Original patch by Amit Kapila, heavily modified by me.
2013-02-25Add -d/--dbname option to pg_dump.Heikki Linnakangas
You could already pass a database name just by passing it as the last option, without -d. This is an alias for that, like the -d/--dbname option in psql and many other client applications. For consistency.
2013-02-25Add -d option to pg_basebackup and pg_receivexlog, for connection string.Heikki Linnakangas
Without this, there's no way to pass arbitrary libpq connection parameters to these applications. It's a bit strange that the option is called -d/--dbname, when in fact you can *not* pass a database name in it, but it's consistent with other client applications where a connection string is also passed using -d. Original patch by Amit Kapila, heavily modified by me.
2013-02-24doc: Remove PostgreSQL version number from xml2 deprecation noticePeter Eisentraut
It is obviously no longer true.
2013-02-23doc: Add more compatibility information for triggersPeter Eisentraut
Louis-Claude Canon and Josh Kupershmidt
2013-02-22Fix some typos and grammatical mistakesAlvaro Herrera
... as well a update copyrights statements to 2013. Noted by Thom Brown and Peter Geoghegan
2013-02-22Add pg_xlogdump contrib programAlvaro Herrera
This program relies on rm_desc backend routines and the xlogreader infrastructure to emit human-readable rendering of WAL records. Author: Andres Freund, with many reworks by Álvaro Reviewed (in a much earlier version) by Peter Eisentraut
2013-02-21Add postgres_fdw contrib module.Tom Lane
There's still a lot of room for improvement, but it basically works, and we need this to be present before we can do anything much with the writable-foreign-tables patch. So let's commit it and get on with testing. Shigeru Hanada, reviewed by KaiGai Kohei and Tom Lane
2013-02-17Add ALTER ROLE ALL SET commandPeter Eisentraut
This generalizes the existing ALTER ROLE ... SET and ALTER DATABASE ... SET functionality to allow creating settings that apply to all users in all databases. reviewed by Pavel Stehule
2013-02-13doc: Add make target to produce EPUB from DocBookPeter Eisentraut
2013-02-11Support unlogged GiST index.Heikki Linnakangas
The reason this wasn't supported before was that GiST indexes need an increasing sequence to detect concurrent page-splits. In a regular WAL- logged GiST index, the LSN of the page-split record is used for that purpose, and in a temporary index, we can get away with a backend-local counter. Neither of those methods works for an unlogged relation. To provide such an increasing sequence of numbers, create a "fake LSN" counter that is saved and restored across shutdowns. On recovery, unlogged relations are blown away, so the counter doesn't need to survive that either. Jeevan Chalke, based on discussions with Robert Haas, Tom Lane and me.
2013-02-09Add an example of attaching a default value to an updatable view.Tom Lane
This is probably the single most useful thing that ALTER VIEW can do, particularly now that we have auto-updatable views. So show an explicit example.
2013-02-08Add support for ALTER RULE ... RENAME TO.Tom Lane
Ali Dar, reviewed by Dean Rasheed.
2013-02-08doc: Fix mistakes in the most recent set of release notes.Tom Lane
Improve description of the vacuum_freeze_table_age bug (it's much more serious than we realized at the time the fix was committed), and correct attribution of pg_upgrade -O/-o fix (Marti Raudsepp contributed that, but Bruce forgot to credit him in the commit log). No need to back-patch right now, it'll happen when the next set of release notes are prepared.
2013-02-07doc: Rewrite how to get the source codePeter Eisentraut
Instead of hardcoding a specific link, give a general link to the download section of the web site. This gives the user more download options and the sysadmins more flexibility. Also, the previously presented link didn't work for devel versions.
2013-02-06Enable building with Microsoft Visual Studio 2012.Andrew Dunstan
Backpatch to release 9.2 Brar Piening and Noah Misch, reviewed by Craig Ringer.
2013-02-04Prevent execution of enum_recv() from SQL.Tom Lane
This function was misdeclared to take cstring when it should take internal. This at least allows crashing the server, and in principle an attacker might be able to use the function to examine the contents of server memory. The correct fix is to adjust the system catalog contents (and fix the regression tests that should have caught this but failed to). However, asking users to correct the catalog contents in existing installations is a pain, so as a band-aid fix for the back branches, install a check in enum_recv() to make it throw error if called with a cstring argument. We will later revert this in HEAD in favor of correcting the catalogs. Our thanks to Sumit Soni (via Secunia SVCRP) for reporting this issue. Security: CVE-2013-0255
2013-02-04Update release notes for 9.2.3, 9.1.8, 9.0.12, 8.4.16, 8.3.23.Tom Lane
2013-02-04Reset vacuum_defer_cleanup_age to PGC_SIGHUP.Simon Riggs
Revert commit 84725aa5efe11688633b553e58113efce4181f2e
2013-02-04Reset master xmin when hot_standby_feedback disabled.Simon Riggs
If walsender has xmin of standby then ensure we reset the value to 0 when we change from hot_standby_feedback=on to hot_standby_feedback=off.
2013-02-03Perform line wrapping and indenting by default in ruleutils.c.Tom Lane
This patch changes pg_get_viewdef() and allied functions so that PRETTY_INDENT processing is always enabled. Per discussion, only the PRETTY_PAREN processing (that is, stripping of "unnecessary" parentheses) poses any real forward-compatibility risk, so we may as well make dump output look as nice as we safely can. Also, set the default wrap length to zero (i.e, wrap after each SELECT or FROM list item), since there's no very principled argument for the former default of 80-column wrapping, and most people seem to agree this way looks better. Marko Tiikkaja, reviewed by Jeevan Chalke, further hacking by Tom Lane
2013-02-03PL/Python: Add result object str handlerPeter Eisentraut
This is intended so that say plpy.debug(rv) prints something useful for debugging query execution results. reviewed by Steve Singer
2013-02-02Create a psql command \gset to store query results into psql variables.Tom Lane
This eases manipulation of query results in psql scripts. Pavel Stehule, reviewed by Piyush Newe, Shigeru Hanada, and Tom Lane
2013-02-02Prevent "\g filename" from affecting subsequent commands after an error.Tom Lane
In the previous coding, psql's state variable saying that output should go to a file was only reset after successful completion of a query returning tuples. Thus for example, regression=# select 1/0 regression-# \g somefile ERROR: division by zero regression=# select 1/2; regression=# ... huh, I wonder where that output went. Even more oddly, the state was not reset even if it's the file that's causing the failure: regression=# select 1/2 \g /foo /foo: Permission denied regression=# select 1/2; /foo: Permission denied regression=# select 1/2; /foo: Permission denied This seems to me not to satisfy the principle of least surprise. \g is certainly not documented in a way that suggests its effects are at all persistent. To fix, adjust the code so that the flag is reset at exit from SendQuery no matter what happened. Noted while reviewing the \gset patch, which had comparable issues. Arguably this is a bug fix, but I'll refrain from back-patching for now.
2013-02-02Mark vacuum_defer_cleanup_age as PGC_POSTMASTER.Simon Riggs
Following bug analysis of #7819 by Tom Lane
2013-02-01doc: Tiny whitespace fixPeter Eisentraut
2013-01-31Add CREATE RECURSIVE VIEW syntaxPeter Eisentraut
This is specified in the SQL standard. The CREATE RECURSIVE VIEW specification is transformed into a normal CREATE VIEW statement with a WITH RECURSIVE clause. reviewed by Abhijit Menon-Sen and Stephen Frost
2013-01-31pg_upgrade docs: mention modification of postgresql.conf in new clusterBruce Momjian
Mention it might be necessary to modify postgresql.conf in the new cluster to match the old cluster. Backpatch to 9.2. Suggested by user.
2013-01-31Add --aggregate-interval option.Tatsuo Ishii
The new option specifies length of aggregation interval (in seconds). May be used only together with -l. With this option, the log contains per-interval summary (number of transactions, min/max latency and two additional fields useful for variance estimation). Patch contributed by Tomas Vondra, reviewed by Pavel Stehule. Slight change by Tatsuo Ishii, suggested by Robert Hass to emit an error message indicating that the option is not currently supported on Windows.
2013-01-29pg_regress: Allow overriding diff optionsPeter Eisentraut
By setting the environment variable PG_REGRESS_DIFF_OPTS, custom diff options can be passed. reviewed by Jeevan Chalke
2013-01-29Provide database object names as separate fields in error messages.Tom Lane
This patch addresses the problem that applications currently have to extract object names from possibly-localized textual error messages, if they want to know for example which index caused a UNIQUE_VIOLATION failure. It adds new error message fields to the wire protocol, which can carry the name of a table, table column, data type, or constraint associated with the error. (Since the protocol spec has always instructed clients to ignore unrecognized field types, this should not create any compatibility problem.) Support for providing these new fields has been added to just a limited set of error reports (mainly, those in the "integrity constraint violation" SQLSTATE class), but we will doubtless add them to more calls in future. Pavel Stehule, reviewed and extensively revised by Peter Geoghegan, with additional hacking by Tom Lane.
2013-01-29Allow pgbench to use a scale larger than 21474.Heikki Linnakangas
Beyond 21474, the number of accounts exceed the range for int4. Change the initialization code to use bigint for account id columns when scale is large enough, and switch to using int64s for the variables in pgbench code. The threshold where we switch to bigints is set at 20000, because that's easier to remember and document than 21474, and ensures that there is some headroom when int4s are used. Greg Smith, with various changes by Euler Taveira de Oliveira, Gurjeet Singh and Satoshi Nagayasu.
2013-01-28REASSIGN OWNED: handle shared objects, tooAlvaro Herrera
Give away ownership of shared objects (databases, tablespaces) along with local objects, per original code intention. Try to make the documentation clearer, too. Per discussion about DROP OWNED's brokenness, in bug #7748. This is not backpatched because it'd require some refactoring of the ALTER/SET OWNER code for databases and tablespaces.
2013-01-28DROP OWNED: don't try to drop tablespaces/databasesAlvaro Herrera
My "fix" for bugs #7578 and #6116 on DROP OWNED at fe3b5eb08a1 not only misstated that it applied to REASSIGN OWNED (which it did not affect), but it also failed to fix the problems fully, because I didn't test the case of owned shared objects. Thus I created a new bug, reported by Thomas Kellerer as #7748, which would cause DROP OWNED to fail with a not-for-user-consumption error message. The code would attempt to drop the database, which not only fails to work because the underlying code does not support that, but is a pretty dangerous and undesirable thing to be doing as well. This patch fixes that bug by having DROP OWNED only attempt to process shared objects when grants on them are found, ignoring ownership. Backpatch to 8.3, which is as far as the previous bug was backpatched.
2013-01-26Make LATERAL implicit for functions in FROM.Tom Lane
The SQL standard does not have general functions-in-FROM, but it does allow UNNEST() there (see the <collection derived table> production), and the semantics of that are defined to include lateral references. So spec compliance requires allowing lateral references within UNNEST() even without an explicit LATERAL keyword. Rather than making UNNEST() a special case, it seems best to extend this flexibility to any function-in-FROM. We'll still allow LATERAL to be written explicitly for clarity's sake, but it's now a noise word in this context. In theory this change could result in a change in behavior of existing queries, by allowing what had been an outer reference in a function-in-FROM to be captured by an earlier FROM-item at the same level. However, all pre-9.3 PG releases have a bug that causes them to match variable references to earlier FROM-items in preference to outer references (and then throw an error). So no previously-working query could contain the type of ambiguity that would risk a change of behavior. Per a suggestion from Andrew Gierth, though I didn't use his patch.
2013-01-26Issue ERROR if FREEZE mode can't be honored by COPYBruce Momjian
Previously non-honored FREEZE mode was ignored. This also issues an appropriate error message based on the cause of the failure, per suggestion from Tom. Additional regression test case added.
2013-01-25doc: revert 80c20fcf3df17309b3c131962045825f42e45bc7 andBruce Momjian
0e93959a70ac6e7c7858d1d6fb00645e7540a1cc Revert patch that modified doc index mentions of search_path Per Peter E.
2013-01-25doc: mention commit_delay is only honored if fsync is enabledBruce Momjian
per Tianyin Xu
2013-01-25Change plan caching to honor, not resist, changes in search_path.Tom Lane
In the initial implementation of plan caching, we saved the active search_path when a plan was first cached, then reinstalled that path anytime we needed to reparse or replan. The idea of that was to try to reselect the same referenced objects, in somewhat the same way that views continue to refer to the same objects in the face of schema or name changes. Of course, that analogy doesn't bear close inspection, since holding the search_path fixed doesn't cope with object drops or renames. Moreover sticking with the old path seems to create more surprises than it avoids. So instead of doing that, consider that the cached plan depends on search_path, and force reparse/replan if the active search_path is different than it was when we last saved the plan. This gets us fairly close to having "transparency" of plan caching, in the sense that the cached statement acts the same as if you'd just resubmitted the original query text for another execution. There are still some corner cases where this fails though: a new object added in the search path schema(s) might capture a reference in the query text, but we'd not realize that and force a reparse. We might try to fix that in the future, but for the moment it looks too expensive and complicated.
2013-01-25doc: merge ecpg username/password example into C commentBruce Momjian
Backpatch to 9.2 per Tom Lane
2013-01-25doc: adjust search_path secondary index mentionBruce Momjian
per Tom Lane
2013-01-25doc: split search_path index entries into separate secondariesBruce Momjian
Karl O. Pinc
2013-01-25Make it easy to time out pg_isready, and make the default 3 seconds.Robert Haas
Along the way, add a missing line to the help message. Phil Sorber, reviewed by Fujii Masao
2013-01-25docs: In ecpg, clarify how username/password colon parameters are usedBruce Momjian
Backpatch to 9.2. Patch from Alan B