summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2011-01-11Reset walsender ps title in the main loopMagnus Hagander
When in streaming mode we can never get out, so it will never be required, but after a base backup (or other operations) we can get back to the loop, so the title needs to be cleared.
2011-01-10Set process title to indicate base backup is runningMagnus Hagander
2011-01-10Leave temporary files out of streaming base backups.Heikki Linnakangas
2011-01-10Backend support for streaming base backupsMagnus Hagander
Add BASE_BACKUP command to walsender, allowing it to stream a base backup to the client (in tar format). The syntax is still far from ideal, that will be fixed in the switch to use a proper grammar for walsender. No client included yet, will come as a separate commit. Magnus Hagander and Heikki Linnakangas
2011-01-09Split pg_start_backup() and pg_stop_backup() into two piecesMagnus Hagander
Move the actual functionality into a separate function that's easier to call internally, and change the SQL-callable function to be a wrapper calling this. Also create a pg_abort_backup() function, only callable internally, that does only the most vital parts of pg_stop_backup(), making it safe(r) to call from error handlers.
2011-01-09Fix crash in the new GiST insertion code, when an update splits the root page.Heikki Linnakangas
This bug was exercised by contrib/intarray/bench, as noted by Tom Lane.
2011-01-09Fix up core tsquery GIN support for new extractQuery API.Tom Lane
No need for the empty-prefix-match kluge to force a full scan anymore.
2011-01-09Use array_contains_nulls instead of ARR_HASNULL on user-supplied arrays.Tom Lane
This applies the fix for bug #5784 to remaining places where we wish to reject nulls in user-supplied arrays. In all these places, there's no reason not to allow a null bitmap to be present, so long as none of the current elements are actually null. I did not change some other places where we are looking at system catalog entries or aggregate transition values, as the presence of a null bitmap in such an array would be suspicious.
2011-01-09Ensure the directory for gram.h is created on win32Magnus Hagander
Result of bad testing of my last commit.
2011-01-09Properly install gram.h on MSVC buildsMagnus Hagander
This file is now needed by pgAdmin builds, which started failing since it was missing in the installer builds.
2011-01-09Add pgreadlink() on Windows to read junction pointsMagnus Hagander
Add support for reading back information about the symbolic links we've created with pgsymlink(), which are actually Junction Points. Just like pgsymlink() can only create directory symlinks, pgreadlink() can only read directory symlinks.
2011-01-09There is no need to have to identical functions in ecpg thus removing one of ↵Michael Meskes
them.
2011-01-08Add array_contains_nulls() function in arrayfuncs.c.Tom Lane
This will support fixing contrib/intarray (and probably other places) so that they don't have to fail on arrays that contain a null bitmap but no live null entries.
2011-01-08Fix up gincostestimate for new extractQuery API.Tom Lane
The only reason this wasn't crashing while testing the core anyarray operators was that it was disabled for those cases because of passing the wrong type information to get_opfamily_proc :-(. So fix that too, and make it insist on finding the support proc --- in hindsight, silently doing nothing is not as sane a coping mechanism as all that.
2011-01-08In ecpg's parser removed a fixed length limit for constants defining an ↵Michael Meskes
array dimension.
2011-01-08Remove pg_am.amindexnulls.Tom Lane
The only use we have had for amindexnulls is in determining whether an index is safe to cluster on; but since the addition of the amclusterable flag, that usage is pretty redundant. In passing, clean up assorted sloppiness from the last patch that touched pg_am.h: Natts_pg_am was wrong, and ambuildempty was not documented.
2011-01-08Refactor GIN's handling of duplicate search entries.Tom Lane
The original coding could combine duplicate entries only when they originated from the same qual condition. In particular it could not combine cases where multiple qual conditions all give rise to full-index scan requests, which is an expensive case well worth optimizing. Refactor so that duplicates are recognized across all the quals.
2011-01-07Fix pg_upgrade of large object permissions by preserving pg_auth.oid,Bruce Momjian
which is stored in pg_largeobject_metadata. No backpatch to 9.0 because you can't migrate from 9.0 to 9.0 with the same catversion (because of tablespace conflict), and a pre-9.0 migration to 9.0 has not large object permissions to migrate.
2011-01-07Force pg_upgrade's to preserve pg_class.oid, not pg_class.relfilenode.Bruce Momjian
Toast tables have identical pg_class.oid and pg_class.relfilenode, but for clarity it is good to preserve the pg_class.oid. Update comments regarding what is preserved, and do some variable/function renaming for clarity.
2011-01-07Fix the built-in GIN support procedure declarations in pg_proc.h.Tom Lane
Add more "internal" arguments so that these pg_proc entries reflect the current preferred API. This is purely a cosmetic change, since GIN doesn't actually consult the pg_proc entry when calling a support function. Accordingly, no catversion bump.
2011-01-07Fix GIN to support null keys, empty and null items, and full index scans.Tom Lane
Per my recent proposal(s). Null key datums can now be returned by extractValue and extractQuery functions, and will be stored in the index. Also, placeholder entries are made for indexable items that are NULL or contain no keys according to extractValue. This means that the index is now always complete, having at least one entry for every indexed heap TID, and so we can get rid of the prohibition on full-index scans. A full-index scan is implemented much the same way as partial-match scans were already: we build a bitmap representing all the TIDs found in the index, and then drive the results off that. Also, introduce a concept of a "search mode" that can be requested by extractQuery when the operator requires matching to empty items (this is just as cheap as matching to a single key) or requires a full index scan (which is not so cheap, but it sure beats failing or giving wrong answers). The behavior remains backward compatible for opclasses that don't return any null keys or request a non-default search mode. Using these features, we can now make the GIN index opclass for anyarray behave in a way that matches the actual anyarray operators for &&, <@, @>, and = ... which it failed to do before in assorted corner cases. This commit fixes the core GIN code and ginarrayprocs.c, updates the documentation, and adds some simple regression test cases for the new behaviors using the array operators. The tsearch and contrib GIN opclass support functions still need to be looked over and probably fixed. Another thing I intend to fix separately is that this is pretty inefficient for cases where more than one scan condition needs a full-index search: we'll run duplicate GinScanEntrys, each one of which builds a large bitmap. There is some existing logic to merge duplicate GinScanEntrys but it needs refactoring to make it work for entries belonging to different scan keys. Note that most of gin.h has been split out into a new file gin_private.h, so that gin.h doesn't export anything that's not supposed to be used by GIN opclasses or the rest of the backend. I did quite a bit of other code beautification work as well, mostly fixing comments and choosing more appropriate names for things.
2011-01-07Document pg_stat_replication, bump catversion since that was overlooked.Robert Haas
Itagaki Takahiro, edited by me.
2011-01-07Improve recovery.conf.sample comments.Robert Haas
Jehan-Guillaume de Rorthais, with some additional wordsmithing by me.
2011-01-07New system view pg_stat_replication displays activity of wal sender processes.Itagaki Takahiro
Itagaki Takahiro and Simon Riggs.
2011-01-06Improve C comments about backend variables set by pg_upgrade_supportBruce Momjian
functions.
2011-01-06Update sequence_1.out for recent changes in sequence regression test.Tom Lane
2011-01-05Clarify pg_upgrade's creation of the map file structure. Also cleanBruce Momjian
up pg_dump's calling of pg_upgrade_support functions.
2011-01-05Give superusers REPLIACTION permission by defaultMagnus Hagander
This can be overriden by using NOREPLICATION on the CREATE ROLE statement, but by default they will have it, making it backwards compatible and "less surprising" (given that superusers normally override all checks).
2011-01-04Improve psql tab completion for CREATE/ALTER ROLE [NO]REPLICATION.Itagaki Takahiro
Missing support for VALID UNTIL in CREATE ROLE is also added.
2011-01-03Fix crash in ALTER OPERATOR CLASS/FAMILY .. SET SCHEMA.Robert Haas
In the previous coding, the parser emitted a List containing a C string, which is no good, because copyObject() can't handle it. Dimitri Fontaine
2011-01-03Update comments in RecordTransactionCommit() to mention unlogged tables.Robert Haas
2011-01-03Bump catversion, forgot in previous commit.Magnus Hagander
2011-01-03Add views and functions to monitor hot standby query conflictsMagnus Hagander
Add the view pg_stat_database_conflicts and a column to pg_stat_database, and the underlying functions to provide the information.
2011-01-03perltidy run on the MSVC build systemMagnus Hagander
Forgot this with previuos commit, line it up so it's easier to submit (readable) patches against the MSVC build system.
2011-01-02Implement remaining fields of information_schema.sequences viewPeter Eisentraut
Add new function pg_sequence_parameters that returns a sequence's start, minimum, maximum, increment, and cycle values, and use that in the view. (bug #5662; design suggestion by Tom Lane) Also slightly adjust the view's column order and permissions after review of SQL standard.
2011-01-02Fix typo.Robert Haas
Noted by Magnus Hagander.
2011-01-01Basic foreign table support.Robert Haas
Foreign tables are a core component of SQL/MED. This commit does not provide a working SQL/MED infrastructure, because foreign tables cannot yet be queried. Support for foreign table scans will need to be added in a future patch. However, this patch creates the necessary system catalog structure, syntax support, and support for ancillary operations such as COMMENT and SECURITY LABEL. Shigeru Hanada, heavily revised by Robert Haas
2011-01-01Fix pg_dump support for security labels on columns.Robert Haas
Along the way, correct an erroneous comment.
2011-01-01Allow casting a table's row type to the table's supertype if it's a typed tablePeter Eisentraut
This is analogous to the existing facility that allows casting a row type to a supertable's row type.
2011-01-01Add #include <time.h> to pg_ctl.c to fix compiler warning.Bruce Momjian
2011-01-01Stamp copyrights for year 2011.Bruce Momjian
2010-12-31Include the first valid listen address in pg_ctl to improve server startBruce Momjian
"wait" detection and add postmaster start time to help determine if the postmaster is actually using the specified data directory.
2010-12-31Invert and rename flag variable to improve code readability.Tom Lane
No change in functionality. Per discussion with Robert.
2010-12-30Move symbols for ExecMergeJoin's state machine into nodeMergejoin.c.Tom Lane
There's no reason for these values to be known anywhere else. After doing this, executor/execdefs.h is vestigial and can be removed.
2010-12-30Support RIGHT and FULL OUTER JOIN in hash joins.Tom Lane
This is advantageous first because it allows us to hash the smaller table regardless of the outer-join type, and second because hash join can be more flexible than merge join in dealing with arbitrary join quals in a FULL join. For merge join all the join quals have to be mergejoinable, but hash join will work so long as there's at least one hashjoinable qual --- the others can be any condition. (This is true essentially because we don't keep per-inner-tuple match flags in merge join, while hash join can do so.) To do this, we need a has-it-been-matched flag for each tuple in the hashtable, not just one for the current outer tuple. The key idea that makes this practical is that we can store the match flag in the tuple's infomask, since there are lots of bits there that are of no interest for a MinimalTuple. So we aren't increasing the size of the hashtable at all for the feature. To write this without turning the hash code into even more of a pile of spaghetti than it already was, I rewrote ExecHashJoin in a state-machine style, similar to ExecMergeJoin. Other than that decision, it was pretty straightforward.
2010-12-30Avoid unnecessary public struct declaration in slru.hAlvaro Herrera
Instead, declare a public wrapper of the sole function using it for external callers, so that they don't have to always pass a NULL argument. Author: Kevin Grittner
2010-12-29Bump XLOG_PAGE_MAGIC.Robert Haas
The unlogged tables patch (commit 53dbc27c62d8e1b6c5253feba04a5094cb8fe046, 2010-12-29) should have done this, since it changes the format of an XLOG_SMGR_CREATE record.
2010-12-29Support unlogged tables.Robert Haas
The contents of an unlogged table are WAL-logged; thus, they are not available on standby servers and are truncated whenever the database system enters recovery. Indexes on unlogged tables are also unlogged. Unlogged GiST indexes are not currently supported.
2010-12-29Add REPLICATION privilege for ROLEsMagnus Hagander
This privilege is required to do Streaming Replication, instead of superuser, making it possible to set up a SR slave that doesn't have write permissions on the master. Superuser privileges do NOT override this check, so in order to use the default superuser account for replication it must be explicitly granted the REPLICATION permissions. This is backwards incompatible change, in the interest of higher default security.
2010-12-28Avoid unexpected conversion overflow in planner for distant date values.Tom Lane
The "date" type supports a wider range of dates than int64 timestamps do. However, there is pre-int64-timestamp code in the planner that assumes that all date values can be converted to timestamp with impunity. Fortunately, what we really need out of the conversion is always a double (float8) value; so even when the date is out of timestamp's range it's possible to produce a sane answer. All we need is a code path that doesn't try to force the result into int64. Per trouble report from David Rericha. Back-patch to all supported versions. Although this is surely a corner case, there's not much point in advertising a date range wider than timestamp's if we will choke on such values in unexpected places.