summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2011-02-18Make a hard state change from catchup to streaming mode.Simon Riggs
More useful state change for monitoring purposes, plus a required change for synchronous replication patch.
2011-02-18Separate messages for standby replies and hot standby feedback.Simon Riggs
Allow messages to be sent at different times, and greatly reduce the frequency of hot standby feedback. Refactor to allow additional message types.
2011-02-18Properly initialize variablesMagnus Hagander
Kevin Grittner
2011-02-18Applied a patch by Zoltán Böszörményi that makes ecpg's parser accept ↵Michael Meskes
dynamic cursornames even in WHERE CURRENT OF clauses.
2011-02-18Fix an uninitialized field in DR_copy.Itagaki Takahiro
Shigeru HANADA
2011-02-18Add transaction-level advisory locks.Itagaki Takahiro
They share the same locking namespace with the existing session-level advisory locks, but they are automatically released at the end of the current transaction and cannot be released explicitly via unlock functions. Marko Tiikkaja, reviewed by me.
2011-02-17Convert Postgres arrays to Perl arrays on PL/perl input argumentsAlvaro Herrera
More generally, arrays are turned in Perl array references, and row and composite types are turned into Perl hash references. This is done recursively, in a way that's natural to every Perl programmer. To avoid a backwards compatibility hit, the string representation of each structure is also available if the function requests it. Authors: Alexey Klyukin and Alex Hunsaker. Some code cleanups by me.
2011-02-17pgindent run on plperl.cAlvaro Herrera
2011-02-17Use $INDENT rather than indent throughout the pgindent codeAlvaro Herrera
This allows the user to change the path to be used more easily. Also, change URL in README.
2011-02-17Fix tsmatchsel() to account properly for null rows.Tom Lane
ts_typanalyze.c computes MCE statistics as fractions of the non-null rows, which seems fairly reasonable, and anyway changing it in released versions wouldn't be a good idea. But then ts_selfuncs.c has to account for that. Failure to do so results in overestimates in columns with a significant fraction of null documents. Back-patch to 8.4 where this stuff was introduced. Jesper Krogh
2011-02-17Add client_hostname field to pg_stat_activity.Robert Haas
Peter Eisentraut, reviewed by Steve Singer, Alvaro Herrera, and me.
2011-02-17Prevent possible compiler warnings.Robert Haas
Simon Riggs reports that rnode.dbNode and rnode.spcNode were generating unused variable warnings on gcc 4.4.3 with CFLAGS=-O1
2011-02-17Add some words of caution to elog.c.Robert Haas
Stephen Frost, somewhat rewritten by me
2011-02-16Fix blatantly uninitialized variable in recent commit.Tom Lane
Doesn't anybody around here pay attention to compiler warnings?
2011-02-16Fix bogus test for hypothetical indexes in get_actual_variable_range().Tom Lane
That function was supposing that indexoid == 0 for a hypothetical index, but that is not likely to be true in any non-toy implementation of an index adviser, since assigning a fake OID is the only way to know at EXPLAIN time which hypothetical index got selected. Fix by adding a flag to IndexOptInfo to mark hypothetical indexes. Back-patch to 9.0 where get_actual_variable_range() was added. Gurjeet Singh
2011-02-16Add backwards-compatible declarations of some core GIN support functions.Tom Lane
These are needed to support reloading dumps of 9.0 installations containing contrib/intarray or contrib/tsearch2. Since not only regular dump/reload but binary upgrade would fail, it seems worth the trouble to carry these stubs for awhile. Note that the contrib opclasses referencing these functions will still work fine, since GIN doesn't actually pay any attention to the declared signature of a support function.
2011-02-16Also process psqlrc when running psql -lPeter Eisentraut
This was previously not very useful, but with many people customizing the linestyle, it is nice for a consistent appearance.
2011-02-16Fix for warnings-free compilation with Python 3.2Peter Eisentraut
The first argument of PyEval_EvalCode() was changed from PyCodeObject* to PyObject* because of PEP 384.
2011-02-16Hot Standby feedback for avoidance of cleanup conflicts on standby.Simon Riggs
Standby optionally sends back information about oldestXmin of queries which is then checked and applied to the WALSender's proc->xmin. GetOldestXmin() is modified slightly to agree with GetSnapshotData(), so that all backends on primary include WALSender within their snapshots. Note this does nothing to change the snapshot xmin on either master or standby. Feedback piggybacks on the standby reply message. vacuum_defer_cleanup_age is no longer used on standby, though parameter still exists on primary, since some use cases still exist. Simon Riggs, review comments from Fujii Masao, Heikki Linnakangas, Robert Haas
2011-02-16Make a no-op ALTER EXTENSION UPDATE give just a NOTICE, not ERROR.Tom Lane
This seems a bit more user-friendly.
2011-02-16WAL receiver shouldn't try to send a reply when dying.Robert Haas
Per report from, and discussion with, Fujii Masao.
2011-02-16Add FOREACH IN ARRAY looping to plpgsql.Tom Lane
(I'm not entirely sure that we've finished bikeshedding the syntax details, but the functionality seems OK.) Pavel Stehule, reviewed by Stephen Frost and Tom Lane
2011-02-15pg_ctl promoteRobert Haas
Fujii Masao, reviewed by Robert Haas, Stephen Frost, and Magnus Hagander.
2011-02-16Export the external file reader used in COPY FROM as APIs.Itagaki Takahiro
They are expected to be used by extension modules like file_fdw. There are no user-visible changes. Itagaki Takahiro Reviewed and tested by Kevin Grittner and Noah Misch.
2011-02-15Fix corner case for binary upgrade: extension functions in pg_catalog.Tom Lane
Normally, pg_dump summarily excludes functions in pg_catalog from consideration. However, some extensions may create functions in pg_catalog (adminpack already does that, and extensions for procedural languages will likely do it too). In binary-upgrade mode, we have to dump such functions, or the extension will be incomplete after upgrading. Per experimentation with adminpack.
2011-02-15Add CheckTableNotInUse calls in DROP TABLE and DROP INDEX.Tom Lane
Recent releases had a check on rel->rd_refcnt in heap_drop_with_catalog, but failed to cover the possibility of pending trigger events at DROP time. (Before 8.4 we didn't even check the refcnt.) When the trigger events were eventually fired, you'd get "could not open relation with OID nnn" errors, as in recent report from strk. Better to throw a suitable error when the DROP is attempted. Also add a similar check in DROP INDEX. Back-patch to all supported branches.
2011-02-15Fix obsolete comment.Tom Lane
Comment about MaxAllocSize was not updated when the TOAST-header macros were replaced in 8.3 "varvarlena" changes. Per report from Frederik Ramm.
2011-02-15Assorted corrections to the patch to add WAL receiver replies.Robert Haas
Per reports from Fujii Masao.
2011-02-15Rename max_predicate_locks_per_transaction.Robert Haas
The new name, max_pred_locks_per_transaction, is shorter. Kevin Grittner, per discussion.
2011-02-15Allow make check in PL directoriesPeter Eisentraut
Also add make check-world target, and refactor pg_regress invocation code in makefiles a bit.
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-14Delete stray word from comment.Robert Haas
2011-02-15PITR can stop at a named restore point when recovery target = timeSimon Riggs
though must not update the last transaction timestamp. Plus comment and message cleanup for recent named restore point. Fujii Masao, minor changes by me
2011-02-14Fix MSVC build scripts for recent extension-related changes.Tom Lane
Untested, but we'll soon see if the buildfarm likes this.
2011-02-14Rearrange extension-related views as per recent discussion.Tom Lane
The original design of pg_available_extensions did not consider the possibility of version-specific control files. Split it into two views: pg_available_extensions shows information that is generic about an extension, while pg_available_extension_versions shows all available versions together with information that could be version-dependent. Also, add an SRF pg_extension_update_paths() to assist in checking that a collection of update scripts provide sane update path sequences.
2011-02-15Add version-sensitive SQL for psql when constraints NOT VALIDSimon Riggs
Bug report and fix by Andres Freund
2011-02-13Remove no-longer-needed special case hacks in MSVC build scripts.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-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-12Properly handle Win32 paths of 'E:abc', which can be either absolute orBruce Momjian
relative, by creating a function path_is_relative_and_below_cwd() to check for specific requirements. It is unclear if this fixes a security problem or not but the new code is more robust.
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-11Fix comment recently obsoletedAlvaro Herrera
2011-02-11Allow tab-completion of :variable even as first word on a line.Robert Haas
Christoph Berg
2011-02-11Typo fixes. receivedUpto should be capitalized consistently.Robert Haas
2011-02-11Tweak find_composite_type_dependencies API a bit more.Robert Haas
Per discussion with Noah Misch, the previous coding, introduced by my commit 65377e0b9c0e0397b1598b38b6a7fb8b6f740d39 on 2011-02-06, was really an abuse of RELKIND_COMPOSITE_TYPE, since the caller in typecmds.c is actually passing the name of a domain. So go back having a type name argument, but make the first argument a Relation rather than just a string so we can tell whether it's a table or a foreign table and emit the proper error message.