summaryrefslogtreecommitdiff
path: root/doc/src
AgeCommit message (Collapse)Author
2011-02-14Small improvements to external-projects documentation.Tom Lane
2011-02-14Fix obsolete references to old-style contrib installation methods.Tom Lane
2011-02-13Support replacing MODULE_PATHNAME during extension script file execution.Tom Lane
This avoids the need to find a way to make PGXS' .sql.in-to-.sql rule insert the right thing. We'll just deprecate use of that hack for extensions.
2011-02-13Change the naming convention for extension files to use double dashes.Tom Lane
This allows us to have an unambiguous rule for deconstructing the names of script files and secondary control files, without having to forbid extension and version names from containing any dashes. We do have to forbid them from containing double dashes or leading/trailing dashes, but neither restriction is likely to bother anyone in practice. Per discussion, this seems like a better solution overall than the original design.
2011-02-13Clarify documentation for libpq's PQescapeBytea to mention the new hexBruce Momjian
format. Modify PQescapeStringConn() docs to be consisent with other escaping functions. Add mention problems with pre-9.0 versions of libpq using not understanding bytea hex format to the 9.0 release notes. Backpatch to 9.0 docs.
2011-02-13Back out libpq doc change; not ready yet.Bruce Momjian
2011-02-13Fix reverse 'if' test in path_is_relative_and_below_cwd(), per Tom.Bruce Momjian
2011-02-12Refactor ALTER EXTENSION UPDATE to have cleaner multi-step semantics.Tom Lane
This change causes a multi-step update sequence to behave exactly as if the updates had been commanded one at a time, including updating the "requires" dependencies afresh at each step. The initial implementation took the shortcut of examining only the final target version's "requires" and changing the catalog entry but once. But on reflection that's a bad idea, since it could lead to executing old update scripts under conditions different than they were designed/tested for. Better to expend a few extra cycles and avoid any surprises. In the same spirit, if a CREATE EXTENSION FROM operation involves applying a series of update files, it will act as though the CREATE had first been done using the initial script's target version and then the additional scripts were invoked with ALTER EXTENSION UPDATE. I also removed the restriction about not changing encoding in secondary control files. The new rule is that a script is assumed to be in whatever encoding the control file(s) specify for its target version. Since this reimplementation causes us to read each intermediate version's control file, there's no longer any uncertainty about which encoding setting would get applied.
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-10Send status updates back from standby server to master, indicating how farHeikki Linnakangas
the standby has written, flushed, and applied the WAL. At the moment, this is for informational purposes only, the values are only shown in pg_stat_replication system view, but in the future they will also be needed for synchronous replication. Extracted from Simon riggs' synchronous replication patch by Robert Haas, with some tweaking by me.
2011-02-10Track last time for statistics reset on databases and bgwriterMagnus Hagander
Tracks one counter for each database, which is reset whenever the statistics for any individual object inside the database is reset, and one counter for the background writer. Tomas Vondra, reviewed by Greg Smith
2011-02-10Use correct name and URL for MinGW-w64, error noticed by Gurjeet Singh.Andrew Dunstan
2011-02-10Fix typo in the documentation.Itagaki Takahiro
by Kevin Grittner
2011-02-09Information schema views for collation supportPeter Eisentraut
Add the views character_sets, collations, and collation_character_set_applicability.
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-09Remove more SGML tabs.Bruce Momjian
2011-02-09Remove tabs in SGML file.Bruce Momjian
2011-02-09Implement NOWAIT option for BASE_BACKUP commandMagnus Hagander
Specifying this option makes the server not wait for the xlog to be archived, or emit a warning that it can't, instead leaving the responsibility with the client. This is useful when the log is being streamed using the streaming protocol in parallel with the backup, without having log archiving enabled.
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-08Fix typo, by Kevin Grittner.Heikki Linnakangas
2011-02-08Named restore points in recovery. Users can record named points, thenSimon Riggs
new recovery.conf parameter recovery_target_name allows PITR to specify named points as recovery targets. Jaime Casanova, reviewed by Euler Taveira de Oliveira, plus minor edits
2011-02-08Basic Recovery Control functions for use in Hot Standby. Pause, Resume,Simon Riggs
Status check functions only. Also, new recovery.conf parameter to pause_at_recovery_target, default on. Simon Riggs, reviewed by Fujii Masao
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-08Fix copy-pasto in description of pg_serial, and silence compiler warningHeikki Linnakangas
about uninitialized field you get on some compilers.
2011-02-07Avoid having autovacuum workers wait for relation locks.Robert Haas
Waiting for relation locks can lead to starvation - it pins down an autovacuum worker for as long as the lock is held. But if we're doing an anti-wraparound vacuum, then we still wait; maintenance can no longer be put off. To assist with troubleshooting, if log_autovacuum_min_duration >= 0, we log whenever an autovacuum or autoanalyze is skipped for this reason. Per a gripe by Josh Berkus, and ensuing discussion.
2011-02-08Oops, forgot to bump catversion in the Serializable Snapshot Isolation patch.Heikki Linnakangas
I thought we didn't need that, but then I remembered that it added a new SLRU subdirectory, pg_serial. While we're at it, document what pg_serial is.
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-06remove tags.Bruce Momjian
2011-02-06Force strings passed to and from plperl to be in UTF8 encoding.Andrew Dunstan
String are converted to UTF8 on the way into perl and to the database encoding on the way back. This avoids a number of observed anomalies, and ensures Perl a consistent view of the world. Some minor code cleanups are also accomplished. Alex Hunsaker, reviewed by Andy Colson.
2011-02-06Adjust libpq docs to be clearer about 'hostaddr' usage by rewording andBruce Momjian
using an itemized list.
2011-02-04Add doc comment that installation.sgml can't use xrefs.Bruce Momjian
2011-02-04In docs, move PQrequestCancel() deprecation mention up to match otherBruce Momjian
libpq doc mentions.
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-04Attempt to un-break the documentation build againMagnus Hagander
Another case of <xref linkend> in the documentation that builds INSTALL, which is not allowed.
2011-02-03Avoid maintaining three separate copies of the error codes list.Robert Haas
src/pl/plpgsql/src/plerrcodes.h, src/include/utils/errcodes.h, and a big chunk of errcodes.sgml are now automatically generated from a single file, src/backend/utils/errcodes.txt. Jan Urbański, reviewed by Tom Lane.
2011-02-03ALTER TABLE sometimes takes only ShareUpdateExclusiveLock.Robert Haas
Along the way, be more consistent about the wording we use here.
2011-02-03In docs, PL is Procedural Language, not Programming Language.Bruce Momjian
Satoshi Nagayasu
2011-02-03Include more status information in walsender resultsMagnus Hagander
Add the current xlog insert location to the response of IDENTIFY_SYSTEM, and adds result sets containing start and stop location of backups to BASE_BACKUP responses.
2011-02-03Fix typo.Magnus Hagander
Thom Brown
2011-02-03Further sepgsql documentation cleanup.Robert Haas
2011-02-02sepgsql doc fixRobert Haas
KaiGai Kohei
2011-02-02Log restartpoints in the same fashion as checkpoints.Robert Haas
Prior to 9.0, restartpoints never created, deleted, or recycled WAL files, but now they can. This code makes log_checkpoints treat checkpoints and restartpoints symmetrically. It also adjusts up the documentation of the parameter to mention restartpoints. Fujii Masao. Docs by me, as suggested by Itagaki Takahiro.
2011-02-02Mark all GUC variables with <varname> markup, rather than <literal>.Bruce Momjian
2011-02-02Wrap PL/Python SPI calls into subtransactionsPeter Eisentraut
This allows the language-specific try/catch construct to catch and handle exceptions arising from SPI calls, matching the behavior of other PLs. As an additional bonus you no longer get all the ugly "unrecognized error in PLy_spi_execute_query" errors. Jan Urbański, reviewed by Steve Singer
2011-02-01Document that CREATE VIEW that uses "*" for the column list will notBruce Momjian
auto-add columns later added to the base table.