aboutsummaryrefslogtreecommitdiff
path: root/doc/src
Commit message (Collapse)AuthorAge
...
* Revise FDW planning API, again.Tom Lane2012-03-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Further reflection shows that a single callback isn't very workable if we desire to let FDWs generate multiple Paths, because that forces the FDW to do all work necessary to generate a valid Plan node for each Path. Instead split the former PlanForeignScan API into three steps: GetForeignRelSize, GetForeignPaths, GetForeignPlan. We had already bit the bullet of breaking the 9.1 FDW API for 9.2, so this shouldn't cause very much additional pain, and it's substantially more flexible for complex FDWs. Add an fdw_private field to RelOptInfo so that the new functions can save state there rather than possibly having to recalculate information two or three times. In addition, we'd not thought through what would be needed to allow an FDW to set up subexpressions of its choice for runtime execution. We could treat ForeignScan.fdw_private as an executable expression but that seems likely to break existing FDWs unnecessarily (in particular, it would restrict the set of node types allowable in fdw_private to those supported by expression_tree_walker). Instead, invent a separate field fdw_exprs which will receive the postprocessing appropriate for expression trees. (One field is enough since it can be a list of expressions; also, we assume the corresponding expression state tree(s) will be held within fdw_state, so we don't need to add anything to ForeignScanState.) Per review of Hanada Shigeru's pgsql_fdw patch. We may need to tweak this further as we continue to work on that patch, but to me it feels a lot closer to being right now.
* Add GetForeignColumnOptions() to foreign.c, and add some documentation.Tom Lane2012-03-07
| | | | | | | | | | | | | | | | GetForeignColumnOptions provides some abstraction for accessing column-specific FDW options, on a par with the access functions that were already provided here for other FDW-related information. Adjust file_fdw.c to use GetForeignColumnOptions instead of equivalent hand-rolled code. In addition, add some SGML documentation for the functions exported by foreign.c that are meant for use by FDW authors. (This is the fdw_helper portion of the proposed pgsql_fdw patch.) Hanada Shigeru, reviewed by KaiGai Kohei
* In pg_upgrade, only lock the old cluster if link mode is used, and do itBruce Momjian2012-03-05
| | | | | | | right after we restore the schema (a common failure point), and right before we do the link operation. Per suggesgtions from Robert and ^!C^!^@lvaro
* Redesign PlanForeignScan API to allow multiple paths for a foreign table.Tom Lane2012-03-05
| | | | | | | | | | | The original API specification only allowed an FDW to create a single access path, which doesn't seem like a terribly good idea in hindsight. Instead, move the responsibility for building the Path node and calling add_path() into the FDW's PlanForeignScan function. Now, it can do that more than once if appropriate. There is no longer any need for the transient FdwPlan struct, so get rid of that. Etsuro Fujita, Shigeru Hanada, Tom Lane
* Improve documentation around logging_collector and use of stderr.Tom Lane2012-03-05
| | | | | | | | | | | | | In backup.sgml, point out that you need to be using the logging collector if you want to log messages from a failing archive_command script. (This is an oversimplification, in that it will work without the collector as long as you're not sending postmaster stderr to /dev/null; but it seems like a good idea to encourage use of the collector to avoid problems with multiple processes concurrently scribbling on one file.) In config.sgml, do some wordsmithing of logging_collector discussion. Per bug #6518 from Janning Vygen
* Add function pg_xlog_location_diff to help comparisonsMagnus Hagander2012-03-04
| | | | | | | | Comparing two xlog locations are useful for example when calculating replication lag. Euler Taveira de Oliveira, reviewed by Fujii Masao, and some cleanups from me
* Collect and use element-frequency statistics for arrays.Tom Lane2012-03-03
| | | | | | | | | | | | | | | | | | | | | | | | This patch improves selectivity estimation for the array <@, &&, and @> (containment and overlaps) operators. It enables collection of statistics about individual array element values by ANALYZE, and introduces operator-specific estimators that use these stats. In addition, ScalarArrayOpExpr constructs of the forms "const = ANY/ALL (array_column)" and "const <> ANY/ALL (array_column)" are estimated by treating them as variants of the containment operators. Since we still collect scalar-style stats about the array values as a whole, the pg_stats view is expanded to show both these stats and the array-style stats in separate columns. This creates an incompatible change in how stats for tsvector columns are displayed in pg_stats: the stats about lexemes are now displayed in the array-related columns instead of the original scalar-related columns. There are a few loose ends here, notably that it'd be nice to be able to suppress either the scalar-style stats or the array-element stats for columns for which they're not useful. But the patch is in good enough shape to commit for wider testing. Alexander Korotkov, reviewed by Noah Misch and Nathan Boley
* Provide environment overrides for psql file locations.Andrew Dunstan2012-03-03
| | | | | PSQL_HISTORY provides an alternative for the command history file, and PSQLRC provides an alternative location for the .psqlrc file.
* Allow CREATE TABLE (LIKE ...) from composite typePeter Eisentraut2012-03-03
| | | | | | The only reason this didn't work before was that parserOpenTable() rejects composite types. So use relation_openrv() directly and manually do the errposition() setup that parserOpenTable() does.
* Add COLLATION FOR expressionPeter Eisentraut2012-03-02
| | | | reviewed by Jaime Casanova
* Add a rule to optionally build docs with the stylesheet from the websiteMagnus Hagander2012-03-02
| | | | | | | | | | For those of us who prefer the formatting of the docs using the website stylesheets. Use "make STYLE=website draft" (for example) to use. The stylesheet itself is referenced directly to the website, so there is currently no copy of it stored in the source repository. Thus, docs built with it will only look correct if the browser can access the website when viewing them.
* Small possible clarification in pg_basebackup reference pagePeter Eisentraut2012-03-01
| | | | | | | | The <literal> markup is not visible as distinct on man pages, which creates a bit of confusion when looking at the documentation of the pg_basebackup -l option. Rather than reinventing the entire font system for man pages to remedy this, just put some quotes around this particular case, which should also help in other output formats.
* Simplify references to backslash-doubling in func.sgml.Tom Lane2012-02-29
| | | | | | | | | | Several places were still written as though standard_conforming_strings didn't exist, much less be the default. Now that it is on by default, we can simplify the text and just insert occasional notes suggesting that you might have to think harder if it's turned off. Per discussion of a suggestion from Hannes Frederic Sowa. Back-patch to 9.1 where standard_conforming_strings was made the default.
* Fix some typos and correct wording in the monitoring docs patchMagnus Hagander2012-02-25
| | | | Thom Brown
* Merge the list of statistics functions into the view documentationMagnus Hagander2012-02-25
| | | | | | Most people won't read them individually anyway, it's an easy way to find them, and it's a lot of duplicated information if they are kept in two different places.
* Make each pg_stat_ view into it's own table in the documentationMagnus Hagander2012-02-25
| | | | | | | | | | This makes it easier to match a column name with the description of it, and makes it possible to add more detailed documentation in the future. This patch does not add that extra documentation at this point, only the structure required for it. Modeled on the changes already done to pg_stat_activity.
* Put Debian package list back in alphabetical orderPeter Eisentraut2012-02-24
|
* Last-minute release note updates.Tom Lane2012-02-23
| | | | Security: CVE-2012-0866, CVE-2012-0867, CVE-2012-0868
* Require execute permission on the trigger function for CREATE TRIGGER.Tom Lane2012-02-23
| | | | | | | | | | | | | | | | | This check was overlooked when we added function execute permissions to the system years ago. For an ordinary trigger function it's not a big deal, since trigger functions execute with the permissions of the table owner, so they couldn't do anything the user issuing the CREATE TRIGGER couldn't have done anyway. However, if a trigger function is SECURITY DEFINER, that is not the case. The lack of checking would allow another user to install it on his own table and then invoke it with, essentially, forged input data; which the trigger function is unlikely to realize, so it might do something undesirable, for instance insert false entries in an audit log table. Reported by Dinesh Kumar, patch by Robert Haas Security: CVE-2012-0866
* Make EXPLAIN (BUFFERS) track blocks dirtied, as well as those written.Robert Haas2012-02-22
| | | | | | Also expose the new counters through pg_stat_statements. Patch by me. Review by Fujii Masao and Greg Smith.
* Improve wording of pg_upgrade logfile option:Bruce Momjian2012-02-22
| | | | -l, --logfile=FILENAME log internal activity to file\n\
* Draft release notes for 9.1.3, 9.0.7, 8.4.11, 8.3.18.Tom Lane2012-02-22
|
* Add parameters for controlling locations of server-side SSL filesPeter Eisentraut2012-02-22
| | | | | | | | | | | | This allows changing the location of the files that were previously hard-coded to server.crt, server.key, root.crt, root.crl. server.crt and server.key continue to be the default settings and are thus required to be present by default if SSL is enabled. But the settings for the server-side CA and CRL are now empty by default, and if they are set, the files are required to be present. This replaces the previous behavior of ignoring the functionality if the files were not found.
* Improve pretty printing of viewdefs.Andrew Dunstan2012-02-19
| | | | | | | | | Some line feeds are added to target lists and from lists to make them more readable. By default they wrap at 80 columns if possible, but the wrap column is also selectable - if 0 it wraps after every item. Andrew Dunstan, reviewed by Hitoshi Harada.
* Make CREATE/ALTER FUNCTION support NOT LEAKPROOF.Robert Haas2012-02-15
| | | | Because it isn't good to be able to turn things on, and not off again.
* sepgsql: Reword and fix typo in docs on DML permissions.Robert Haas2012-02-15
| | | | Per report from Christoph Berg.
* Improve fsync documentation by stating that -W _0_ turns of writeBruce Momjian2012-02-14
| | | | caching.
* Document random page cost is only 4x seqeuntial, and not 40x.Bruce Momjian2012-02-14
|
* Document that the pg_test_fsync defaults allow the program to completeBruce Momjian2012-02-14
| | | | in about 30 seconds.
* Change contrib/pg_test_fsync to control tests in terms of seconds perBruce Momjian2012-02-14
| | | | | test, rather than a number of test cycles. Changes -o/cycles option to -s/seconds.
* Allow LEAKPROOF functions for better performance of security views.Robert Haas2012-02-13
| | | | | | | | | | | | | | | | We don't normally allow quals to be pushed down into a view created with the security_barrier option, but functions without side effects are an exception: they're OK. This allows much better performance in common cases, such as when using an equality operator (that might even be indexable). There is an outstanding issue here with the CREATE FUNCTION / ALTER FUNCTION syntax: there's no way to use ALTER FUNCTION to unset the leakproof flag. But I'm committing this as-is so that it doesn't have to be rebased again; we can fix up the grammar in a future commit. KaiGai Kohei, with some wordsmithing by me.
* psql: Support zero byte field and record separatorsPeter Eisentraut2012-02-09
| | | | | | | | Add new psql settings and command-line options to support setting the field and record separators for unaligned output to a zero byte, for easier interfacing with other shell tools. reviewed by Abhijit Menon-Sen
* Add opensp as a requirement for building the docs on Debian --- testedBruce Momjian2012-02-07
| | | | on Debian Squeeze.
* Add TIMING option to EXPLAIN, to allow eliminating of timing overhead.Robert Haas2012-02-07
| | | | | | | | Sometimes it may be useful to get actual row counts out of EXPLAIN (ANALYZE) without paying the cost of timing every node entry/exit. With this patch, you can say EXPLAIN (ANALYZE, TIMING OFF) to get that. Tomas Vondra, reviewed by Eric Theise, with minor doc changes by me.
* createuser: Disable prompting by defaultPeter Eisentraut2012-02-07
| | | | | | | | | | Do not prompt when options were not specified. Assume --no-createdb, --no-createrole, --no-superuser by default. Also disable prompting for user name in dropdb, unless --interactive was specified. reviewed by Josh Kupershmidt
* Allow SQL-language functions to reference parameters by name.Tom Lane2012-02-04
| | | | Matthew Draper, reviewed by Hitoshi Harada
* Remove tabs in SGML file.Bruce Momjian2012-02-04
|
* Add array_to_json and row_to_json functions.Andrew Dunstan2012-02-03
| | | | | | | Also move the escape_json function from explain.c to json.c where it seems to belong. Andrew Dunstan, Reviewd by Abhijit Menon-Sen.
* initdb: Add options --auth-local and --auth-hostPeter Eisentraut2012-02-01
| | | | reviewed by Robert Haas and Pavel Stehule
* Implement dry-run mode for pg_archivecleanupAlvaro Herrera2012-02-01
| | | | | | | | | | In dry-run mode, just the name of the file to be removed is printed to stdout; this is so the user can easily plug it into another program through a pipe. If debug mode is also specified, a more verbose message is printed to stderr. Author: Gabriele Bartolini Reviewer: Josh Kupershmidt
* Built-in JSON data type.Robert Haas2012-01-31
| | | | | | | | | | Like the XML data type, we simply store JSON data as text, after checking that it is valid. More complex operations such as canonicalization and comparison may come later, but this is enough for not. There are a few open issues here, such as whether we should attempt to detect UTF-8 surrogate pairs represented as \uXXXX\uYYYY, but this gets the basic framework in place.
* Add sequence USAGE privileges to information schemaPeter Eisentraut2012-01-30
| | | | | | | The sequence USAGE privilege is sufficiently similar to the SQL standard that it seems reasonable to show in the information schema. Also add some compatibility notes about it on the GRANT reference page.
* PL/Python: Add result metadata functionsPeter Eisentraut2012-01-30
| | | | | | | | Add result object functions .colnames, .coltypes, .coltypmods to obtain information about the result column names and types, which was previously not possible in the PL/Python SPI interface. reviewed by Abhijit Menon-Sen
* Add caution about multiple unique indexes breaking plpgsql upsert example.Tom Lane2012-01-28
| | | | Per Phil Sorber, though I didn't use his wording exactly.
* Update statement about sorting of character-string data.Tom Lane2012-01-28
| | | | | The sort order is no longer fixed at database creation time, but can be controlled via COLLATE. Noted by Thomas Kellerer.
* Use parameterized paths to generate inner indexscans more flexibly.Tom Lane2012-01-27
| | | | | | | | | | | | | | | | | | | This patch fixes the planner so that it can generate nestloop-with- inner-indexscan plans even with one or more levels of joining between the indexscan and the nestloop join that is supplying the parameter. The executor was fixed to handle such cases some time ago, but the planner was not ready. This should improve our plans in many situations where join ordering restrictions formerly forced complete table scans. There is probably a fair amount of tuning work yet to be done, because of various heuristics that have been added to limit the number of parameterized paths considered. However, we are not going to find out what needs to be adjusted until the code gets some real-world use, so it's time to get it in there where it can be tested easily. Note API change for index AM amcostestimate functions. I'm not aware of any non-core index AMs, but if there are any, they will need minor adjustments.
* Document that COUNT(*) might not need a seq scan any more.Robert Haas2012-01-27
| | | | Noted by Josh Kupershmidt.
* Document that analyzing an empty table doesn't update the statistics.Robert Haas2012-01-27
| | | | Per a suggestion from Sergey Konoplev
* Fix copy-paste error in docs.Heikki Linnakangas2012-01-27
| | | | Dean Rasheed
* Fix wording, per Peter GeogheganMagnus Hagander2012-01-27
|