aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* Small code cleanup for recent UPDATE SET (values) patch.Bruce Momjian2006-09-02
|
* Add UPDATE tab SET ROW (col, ...) = (val, ...) for updatingBruce Momjian2006-09-02
| | | | | | multiple columns Susanne Ebrecht
* Change FETCH/MOVE to use int8.Bruce Momjian2006-09-02
| | | | Dhanaraj M
* Remove GUC_REPORT for new "server_version_num" GUC variable. AddedBruce Momjian2006-09-02
| | | | overhead for every connection, per Tom.
* Apply a simple solution to the problem of making INSERT/UPDATE/DELETETom Lane2006-09-02
| | | | | | | | | | | | | | | RETURNING play nice with views/rules. To wit, have the rule rewriter rewrite any RETURNING clause found in a rule to produce what the rule's triggering query asked for in its RETURNING clause, in particular drop the RETURNING clause if no RETURNING in the triggering query. This leaves the responsibility for knowing how to produce the view's output columns on the rule author, without requiring any fundamental changes in rule semantics such as adding new rule event types would do. The initial implementation constrains things to ensure that there is exactly one, unconditionally invoked RETURNING clause among the rules for an event --- later we might be able to relax that, but for a post feature freeze fix it seems better to minimize how much invention we do. Per gripe from Jaime Casanova.
* Add new variable "server_version_num", which is almost the same asBruce Momjian2006-09-02
| | | | | | | | "server_version" but uses the handy PG_VERSION_NUM which allows apps to do things like if ($version >= 80200) without having to parse apart the value of server_version themselves. Greg Sabino Mullane greg@turnstep.com
* Clean up rather sloppy fix in HEAD for the ancient bug that CREATE CONVERSIONTom Lane2006-08-31
| | | | | didn't create a dependency from the new conversion to its schema. Back-patch to all supported releases.
* Repair interpretation of GB as MB.Peter Eisentraut2006-08-31
|
* Attibution addition: Add Karel Zak also for COPY SELECT.Bruce Momjian2006-08-31
|
* Correct attibution:Bruce Momjian2006-08-31
| | | | COPY SELECT work done by Zoltan Boszormenyi
* Extend COPY to support COPY (SELECT ...) TO ...Tom Lane2006-08-30
| | | | Bernd Helmle
* Update logging of prepare/execute syntax, per comments from Guillaume Smet.Bruce Momjian2006-08-30
|
* Separate prepared statement and bind parameters with comma.Bruce Momjian2006-08-29
| | | | Fix printing of NULL bind parameters, use "NULL".
* Fix mistypingTeodor Sigaev2006-08-29
|
* Fix BUG #2594: Gin Indexes cause server to crash when it builds on empty tableTeodor Sigaev2006-08-29
|
* Revert change to turn autovacuum on by default.Peter Eisentraut2006-08-29
|
* Only call log_after_parse() if necessary.Bruce Momjian2006-08-29
|
* Now bind displays prepare as detail, and execute displays prepare andBruce Momjian2006-08-29
| | | | | | | | | | optionally bind. I re-added the "statement:" label so people will understand why the line is being printed (it is log_*statement behavior). Use single quotes for bind values, instead of double quotes, and double literal single quotes in bind values (and document that). I also made use of the DETAIL line to have much cleaner output.
* Fix pgstat_report_waiting() to not dump core if called beforeTom Lane2006-08-28
| | | | | | | | | | pgstat_bestart() has been called; else any lock-block occurring during InitPostgres() is disastrous. I believe this explains recent wasp regression failure; at least it explains the crash I got while trying to duplicate the problem. I also made pgstat_report_activity() safe against the same scenario, just in case. The report_waiting hazard was created by my patch of 19-Aug to include waiting status in pg_stat_activity.
* Tweak trivial_subqueryscan() to consider a SubqueryScan's targetlistTom Lane2006-08-28
| | | | | | | trivial if it contains either Vars referencing the corresponding subplan columns, or Consts equaling the corresponding subplan columns. This lets the planner eliminate the SubqueryScan in some cases generated by generate_setop_tlist().
* Turn autovacuum on by default. (stats_row_level is also on by default.)Peter Eisentraut2006-08-28
| | | | Threshold and scale factor are cut in half for more aggressive behavior.
* Add new return codes SPI_OK_INSERT_RETURNING etc to the SPI API.Tom Lane2006-08-27
| | | | | | | Fix all the standard PLs to be able to return tuples from FOO_RETURNING statements as well as utility statements that return tuples. Also, fix oversight that SPI_processed wasn't set for a utility statement returning tuples. Per recent discussion.
* Add some notes about why it's not a bug that RI_FKey_check callsTom Lane2006-08-27
| | | | | HeapTupleSatisfiesItself without doing LockBuffer first. This code is a bit fragile, but AFAICS it's not actually broken.
* Add a function GetLockConflicts() to lock.c to report xacts holdingTom Lane2006-08-27
| | | | | | | | | locks that would conflict with a specified lock request, without actually trying to get that lock. Use this instead of the former ad hoc method of doing the first wait step in CREATE INDEX CONCURRENTLY. Fixes problem with undetected deadlock and in many cases will allow the index creation to proceed sooner than it otherwise could've. Per discussion with Greg Stark.
* Move xact.c's partial support for Lists of TransactionIds into pg_list.h.Tom Lane2006-08-27
| | | | Needed because lock.c is now going to use the same type of list.
* Add the ability to create indexes 'concurrently', that is, withoutTom Lane2006-08-25
| | | | | blocking concurrent writes to the table. Greg Stark, with a little help from Tom Lane.
* Add some debug logging code to AllocateFile's failure path to log theTom Lane2006-08-24
| | | | | specific Windows error code (GetLastError). This is a hopefully temporary hack to try to diagnose rare failures. Magnus Hagander
* Optimize the case where a btree indexscan has current and mark positionsTom Lane2006-08-24
| | | | | | | | on the same index page; we can avoid data copying as well as buffer refcount manipulations in this common case. Makes for a small but noticeable improvement in mergejoin speed. Heikki Linnakangas
* In new "invalid byte sequence" error hint, call it "error", notBruce Momjian2006-08-22
| | | | "failure".
* Add hint for "invalid byte sequence for encoding" error message,Bruce Momjian2006-08-22
| | | | suggesting review of client_encoding.
* Ooops, ldap fix for win32 broke the non-win32 case.Tom Lane2006-08-22
|
* Fix encrypted-LDAP support so that it doesn't cause the server to failTom Lane2006-08-21
| | | | | entirely on older Windows platforms without the needed library function. Magnus Hagander
* Minor code rearrangement to save a few cycles in RI_FKey_check whenTom Lane2006-08-21
| | | | | the subject tuple is already deleted: we need not open the pk_rel until after we check that.
* Make the server track an 'XID epoch', that is, maintain higher-order bitsTom Lane2006-08-21
| | | | | | | | | of the transaction ID counter. Nothing is done with the epoch except to store it in checkpoint records, but this provides a foundation with which add-on code can pretend that XIDs never wrap around. This is a severely trimmed and rewritten version of the xxid patch submitted by Marko Kreen. Per discussion, the epoch counter seems the only part of xxid that really needs to be in the core server.
* Fix all known problems with pg_dump's handling of serial sequencesTom Lane2006-08-21
| | | | | | | | | | | | | | | | | | | | | by abandoning the idea that it should say SERIAL in the dump. Instead, dump serial sequences and column defaults just like regular ones. Add a new backend command ALTER SEQUENCE OWNED BY to let pg_dump recreate the sequence-to-column dependency that was formerly created "behind the scenes" by SERIAL. This restores SERIAL to being truly "just a macro" consisting of component operations that can be stated explicitly in SQL. Furthermore, the new command allows sequence ownership to be reassigned, so that old mistakes can be cleaned up. Also, downgrade the OWNED-BY dependency from INTERNAL to AUTO, since there is no longer any very compelling argument why the sequence couldn't be dropped while keeping the column. (This forces initdb, to be sure the right kinds of dependencies are in there.) Along the way, add checks to prevent ALTER OWNER or SET SCHEMA on an owned sequence; you can now only do this indirectly by changing the owning table's owner or schema. This is an oversight in previous releases, but probably not worth back-patching.
* Fix DROP OWNED BY to correctly consider the implicitly-deleted objects list forAlvaro Herrera2006-08-20
| | | | | | | | | | | | | each object to be deleted, instead of the previous hack that just skipped INTERNAL dependencies, which didn't really work. Per report from Tom Lane. To do this, introduce a new performMultipleDeletions entry point in dependency.c to delete multiple objects at once. The dependency code then has the responsability of tracking INTERNAL and AUTO dependencies as needed. Along the way, change ObjectAddresses so that we can allocate an ObjectAddress list from outside dependency.c and not have to export the internal representation.
* Suppress subquery pullup/pushdown when a subquery contains volatileTom Lane2006-08-19
| | | | | | functions in its targetlist, to avoid introducing multiple evaluations of volatile functions that textually appear only once. This is a slightly tighter version of Jaime Casanova's recent patch.
* Add a 'waiting' column to pg_stat_activity to carry the same informationTom Lane2006-08-19
| | | | | | | that ps_status provides by appending 'waiting' to the PS display. This completes the project of making it feasible to turn off process title updates and instead rely on pg_stat_activity. Per my suggestion a few weeks ago.
* Now that we've rearranged relation open to get a lock before touchingTom Lane2006-08-18
| | | | | | the rel, it's easy to get rid of the narrow race-condition window that used to exist in VACUUM and CLUSTER. Did some minor code-beautification work in the same area, too.
* Implement archive_timeout feature to force xlog file switches to occur no moreTom Lane2006-08-17
| | | | | | | | | | | than N seconds apart. This allows a simple, if not very high performance, means of guaranteeing that a PITR archive is no more than N seconds behind real time. Also make pg_current_xlog_location return the WAL Write pointer, add pg_current_xlog_insert_location to return the Insert pointer, and fix pg_xlogfile_name_offset to return its results as a two-element record instead of a smashed-together string, as per recent discussion. Simon Riggs
* Fix an oversight in mergejoin planning: the planner would reject aTom Lane2006-08-17
| | | | | | | | | mergejoin possibility where the inner rel was less well sorted than the outer (ie, it matches some but not all of the merge clauses that can work with the outer), if the inner path in question is also the overall cheapest path for its rel. This is an old bug, but I'm not sure it's worth back-patching, because it's such a corner case. Noted while investigating a test case from Peter Hardman.
* Teach convert_subquery_pathkeys() to handle the case where theTom Lane2006-08-17
| | | | | | | | subquery's pathkey is a RelabelType applied to something that appears in the subquery's output; for example where the subquery returns a varchar Var and the sort order is shown as that Var coerced to text. This comes up because varchar doesn't have its own sort operator. Per example from Peter Hardman.
* Put probes.o file in right directory, fixes dtrace compilationPeter Eisentraut2006-08-16
|
* Seems some C compilers think 'restrict' is a fully reserved word.Tom Lane2006-08-16
| | | | Per buildfarm results from warthog.
* Add a hack so that get_type_io_data() can work from bootstrap.c'sTom Lane2006-08-15
| | | | | | internal TypInfo table in bootstrap mode. This allows array_in and array_out to be used during early bootstrap, which eliminates the former obstacle to giving OUT parameters to built-in functions.
* Add server support for "plugin" libraries that can be used for add-on tasksTom Lane2006-08-15
| | | | | | | | | | | | | | | | | | such as debugging and performance measurement. This consists of two features: a table of "rendezvous variables" that allows separately-loaded shared libraries to communicate, and a new GUC setting "local_preload_libraries" that allows libraries to be loaded into specific sessions without explicit cooperation from the client application. To make local_preload_libraries as flexible as possible, we do not restrict its use to superusers; instead, it is restricted to load only libraries stored in $libdir/plugins/. The existing LOAD command has also been modified to allow non-superusers to LOAD libraries stored in this directory. This patch also renames the existing GUC variable preload_libraries to shared_preload_libraries (after a suggestion by Simon Riggs) and does some code refactoring in dfmgr.c to improve clarity. Korry Douglas, with a little help from Tom Lane.
* Cause '*' and 'foo.*' notations to mark the referenced RTE(s) asTom Lane2006-08-14
| | | | | | | | | requiring read permissions. Up till now there was no possible case in which the RTEs wouldn't already have ACL_SELECT set ... but now that you can say something like 'INSERT INTO foo ... RETURNING *' this is an essential step. With this commit, a RETURNING clause adds the requirement for SELECT permissions on the target table if and only if the clause actually reads the value of at least one target-table column.
* Fix oversight in initial implementation of PORTAL_ONE_RETURNING mode: weTom Lane2006-08-14
| | | | | | | | | | cannot assume that there's exactly one Query in the Portal, as we can for ONE_SELECT mode, because non-SELECT queries might have extra queries added during rule rewrites. Fix things up so that we'll use ONE_RETURNING mode when a Portal contains one primary (canSetTag) query and that query has a RETURNING list. This appears to be a second showstopper reason for running the Portal to completion before we start to hand anything back --- we want to be sure that the rule-added queries get run too.
* When executing a list of queries derived from rule expansion,Tom Lane2006-08-14
| | | | | | | | | _SPI_execute_plan's return code should reflect the type of the query that is marked canSetTag, not necessarily the last one in the list. This is arguably a bug fix, but I'm hesitant to back-patch it because it's the sort of subtle change that might break someone's code, and it's best not to do that kind of thing in point releases.
* Remove hash_destroy calls in hash_create's failure paths. As noted byTom Lane2006-08-14
| | | | | | | a Coverity warning, these are risky since the hashtable isn't necessarily fully set up yet. They're unnecessary anyway: a deletable hashtable should be in a memory context that will be cleared following elog(ERROR). Per report from Martijn van Oosterhout.