aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands
Commit message (Collapse)AuthorAge
...
* Implement EXPLAIN EXECUTE. By Neil Conway, with some kibitzing fromTom Lane2003-02-02
| | | | Tom Lane.
* Remove restriction that cast functions cannot be volatile. ThisTom Lane2003-02-01
| | | | | | restriction was debatable to begin with, but it has now become obvious that it breaks forward-porting of user-defined types; contrib/lo being the most salient example.
* Fix assign_session_authorization() to not be confused by all-numericTom Lane2003-02-01
| | | | user names. Per recent reports.
* Get rid of last few unadorned 'permission denied' messages.Tom Lane2003-01-27
|
* Fix obsolete error message (isImmutable doesn't exist).Tom Lane2003-01-23
|
* Read-only transactions, as defined in SQL.Peter Eisentraut2003-01-10
|
* Updated deferred trigger patch.Bruce Momjian2003-01-08
| | | | Neil Conway
* This trivial patch implements disabled, deferred triggers, per myBruce Momjian2003-01-08
| | | | | | | | | | | | | proposal on -hackers a couple days ago. The 'tgenabled' status of the trigger is consulted when the trigger is added to the deferred queue (i.e. when the event occurs that fires the trigger), not when the deferred event is executed. No regression tests, as another bug prevents them (the pg_trigger row for a trigger is only loaded once per session, so any changes to it are not noticed unless the client disconnects and reconnects). Neil Conway
* Reconsider old decision to try to constant-fold default and constraintTom Lane2003-01-08
| | | | | expressions before they are stored. This seems like not such a hot idea, particularly now that the constant-folder will try to inline SQL functions.
* Repair bug noticed by Deepak Bhole: a shell type should have a dependencyTom Lane2003-01-08
| | | | on its namespace, so that it will go away if the schema is dropped.
* Code review for FETCH/MOVE 0 changes. Improve documentation, do theTom Lane2003-01-08
| | | | | right thing with the destination when FETCH 0 can't return a row, don't try to stuff LONG_MAX into an int value.
* Fix various places where global s/NOTICE/WARNING/ was applied with tooTom Lane2003-01-07
| | | | much enthusiasm.
* ALTER DOMAIN OWNER, from Rod Taylor.Tom Lane2003-01-06
|
* Partial code review for ALTER DOMAIN patch. Incorporates Rod Taylor'sTom Lane2003-01-04
| | | | | | | | patches of 9-Dec (permissions fix) and 13-Dec (performance) as well as a partial fix for locking issues: concurrent DROP COLUMN should not create trouble anymore. But concurrent DROP TABLE is still a risk, and there is no protection at all against creating a column of a domain while we are altering the domain.
* Enforces NOT NULL constraints to be applied against new PRIMARY KEYTom Lane2003-01-02
| | | | | | | | | columns in DefineIndex. So, ALTER TABLE ... PRIMARY KEY will now automatically add the NOT NULL constraint. It appeared the alter_table regression test wanted this to occur, as after the change the regression test better matched in inline 'fails'/'succeeds' comments. Rod Taylor
* Code review for transaction-safe-TRUNCATE patch: minor cleanups.Tom Lane2002-12-30
|
* Code review for CLUSTER ALL patch. Fix bogus locking, incorrect transactionTom Lane2002-12-30
| | | | stop/start nesting, other infelicities.
* Cause FETCH 1 to return the current cursor row, or zero if atBruce Momjian2002-12-30
| | | | | | | | | | | | beginning/end of cursor. Have MOVE return 0/1 depending on cursor position. Matches SQL spec. Pass cursor counter from parser as a long rather than int. Doc updates.
* Fix ALTER TABLE ADD COLUMN to disallow the same column types that areTom Lane2002-12-16
| | | | | | | | disallowed by CREATE TABLE (eg, pseudo-types); also disallow these types from being introduced by the range-function syntax. While at it, allow CREATE TABLE to create zero-column tables, per recent pghackers discussion. I am back-patching this into 7.3 since failure to disallow pseudo-types is arguably a security hole.
* Tweak default memory context allocation policy so that a context is notTom Lane2002-12-15
| | | | | | | | | given any malloc block until something is first allocated in it; but thereafter, MemoryContextReset won't release that first malloc block. This preserves the quick-reset property of the original policy, without forcing 8K to be allocated to every context whether any of it is ever used or not. Also, remove some more no-longer-needed explicit freeing during ExecEndPlan.
* Revise executor APIs so that all per-query state structure is built inTom Lane2002-12-15
| | | | | | a per-query memory context created by CreateExecutorState --- and destroyed by FreeExecutorState. This provides a final solution to the longstanding problem of memory leaked by various ExecEndNode calls.
* Clean up plantree representation of SubPlan-s --- SubLink does not appearTom Lane2002-12-14
| | | | | | | | in the planned representation of a subplan at all any more, only SubPlan. This means subselect.c doesn't scribble on its input anymore, which seems like a good thing; and there are no longer three different possible interpretations of a SubLink. Simplify node naming and improve comments in primnodes.h. No change to stored rules, though.
* Phase 3 of read-only-plans project: ExecInitExpr now builds expressionTom Lane2002-12-13
| | | | | | | execution state trees, and ExecEvalExpr takes an expression state tree not an expression plan tree. The plan tree is now read-only as far as the executor is concerned. Next step is to begin actually exploiting this property.
* Preliminary code review for domain CHECK constraints patch: add documentation,Tom Lane2002-12-12
| | | | | | | | make VALUE a non-reserved word again, use less invasive method of passing ConstraintTestValue into transformExpr, fix problems with nested constraint testing, do correct thing with NULL result from a constraint expression, remove memory leak. Domain checks still need much more work if we are going to allow ALTER DOMAIN, however.
* Phase 2 of read-only-plans project: restructure expression-tree nodesTom Lane2002-12-12
| | | | | | | | | so that all executable expression nodes inherit from a common supertype Expr. This is somewhat of an exercise in code purity rather than any real functional advance, but getting rid of the extra Oper or Func node formerly used in each operator or function call should provide at least a little space and speed improvement. initdb forced by changes in stored-rules representation.
* Some quick fixes for ALTER DOMAIN patch. It still needs a lot of work,Tom Lane2002-12-09
| | | | but at least it doesn't generate gcc warnings.
* Explain's code for showing quals of SubqueryScan nodes has been brokenTom Lane2002-12-06
| | | | all along; not noticed till now. It's a scan not an upper qual ...
* Re-addd Rod's ALTER DOMAIN patch.Bruce Momjian2002-12-06
|
* Back out ALTER DOMAIN patch until missing file appears.Bruce Momjian2002-12-06
|
* ALTER DOMAIN .. SET / DROP NOT NULLBruce Momjian2002-12-06
| | | | | | | | | | ALTER DOMAIN .. SET / DROP DEFAULT ALTER DOMAIN .. ADD / DROP CONSTRAINT New files: - doc/src/sgml/ref/alter_domain.sgml Rod Taylor
* Phase 1 of read-only-plans project: cause executor state nodes to pointTom Lane2002-12-05
| | | | | | | | | | to plan nodes, not vice-versa. All executor state nodes now inherit from struct PlanState. Copying of plan trees has been simplified by not storing a list of SubPlans in Plan nodes (eliminating duplicate links). The executor still needs such a list, but it can build it during ExecutorStart since it has to scan the plan tree anyway. No initdb forced since no stored-on-disk structures changed, but you will need a full recompile because of node-numbering changes.
* More cleanup of userid to be AclId rather than Oid.Bruce Momjian2002-12-05
|
* Make usesysid consistently int4, not oid.Bruce Momjian2002-12-04
| | | | | | Catalog patch from Alvaro Herrera for same. catversion updated. initdb required.
* Repair core dump when trying to delete an entry from an already-NULLTom Lane2002-12-02
| | | | datconfig or useconfig field. Per report from Dustin Sallings.
* Run COPY OUT in a temporary memory context that's reset once per row,Tom Lane2002-12-01
| | | | | | | and eliminate its manual pfree() calls. This solves the encoding-conversion bug recently reported, and should be faster and more robust than the original coding anyway. For example, we are no longer at risk if datatype output routines leak memory or choose to return a constant string.
* Tighten selection of equality and ordering operators for groupingTom Lane2002-11-29
| | | | | | | operations: make sure we use operators that are compatible, as determined by a mergejoin link in pg_operator. Also, add code to planner to ensure we don't try to use hashed grouping when the grouping operators aren't marked hashable.
* Use Params, rather than run-time-modified Const nodes, to handleTom Lane2002-11-26
| | | | | | | sublink results and COPY's domain constraint checking. A Const that isn't really constant is just a Bad Idea(tm). Remove hacks in parse_coerce and other places that were needed because of the former klugery.
* Remove unused constisset and constiscast fields of Const nodes. CleanTom Lane2002-11-25
| | | | up code and documentation associated with Param nodes.
* Un-break triggers declared for INSERT OR DELETE OR UPDATE. This workedTom Lane2002-11-25
| | | | | okay in 7.3, so I think it must have been busted in the recent triggers patch.
* Fix compile warnings from truncate patch.Tom Lane2002-11-23
|
* Transaction safe TruncateBruce Momjian2002-11-23
| | | | Rod Taylor
* This patch implements FOR EACH STATEMENT triggers, per my email toBruce Momjian2002-11-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -hackers a couple days ago. Notes/caveats: - added regression tests for the new functionality, all regression tests pass on my machine - added pg_dump support - updated PL/PgSQL to support per-statement triggers; didn't look at the other procedural languages. - there's (even) more code duplication in trigger.c than there was previously. Any suggestions on how to refactor the ExecXXXTriggers() functions to reuse more code would be welcome -- I took a brief look at it, but couldn't see an easy way to do it (there are several subtly-different versions of the code in question) - updated the documentation. I also took the liberty of removing a big chunk of duplicated syntax documentation in the Programmer's Guide on triggers, and moving that information to the CREATE TRIGGER reference page. - I also included some spelling fixes and similar small cleanups I noticed while making the changes. If you'd like me to split those into a separate patch, let me know. Neil Conway
* Remove ALL from CLUSTER ALL. Use just CLUSTER.Bruce Momjian2002-11-18
|
* New version attached. The following is implemented:Bruce Momjian2002-11-15
| | | | | | | | | | | - CLUSTER ALL clusters all the tables that have some index with indisclustered set and the calling user owns. - CLUSTER tablename clusters the named table, using the index with indisclustered set. If no index has the bit set, throws elog(ERROR). - The multi-relation version (CLUSTER ALL) uses a multitransaction approach, similar to what VACUUM does. Alvaro Herrera
* Add DOMAIN check constraints.Bruce Momjian2002-11-15
| | | | Rod Taylor
* Rename:Bruce Momjian2002-11-15
| | | | | | | | | | | | | | ! #show_parser_stats = false ! #show_planner_stats = false ! #show_executor_stats = false ! #show_statement_stats = false TO: ! #log_parser_stats = false ! #log_planner_stats = false ! #log_executor_stats = false ! #log_statement_stats = false
* Make MOVE/FETCH 0 actually move/fetch 0. Add MOVE LAST to move to endBruce Momjian2002-11-13
| | | | of cursor.
* Add new palloc0 call as merge of palloc and MemSet(0).Bruce Momjian2002-11-13
|
* Code review for ON COMMIT patch. Make the actual on-commit action happenTom Lane2002-11-11
| | | | | | | | | before commit, not after :-( --- the original coding is not only unsafe if an error occurs while it's processing, but it generates an invalid sequence of WAL entries. Resurrect 7.2 logic for deleting items when no longer needed. Use an enum instead of random macros. Editorialize on names used for routines and constants. Teach backend/nodes routines about new field in CreateTable struct. Add a regression test.
* Back out use of palloc0 in place if palloc/MemSet. Seems constant lenBruce Momjian2002-11-11
| | | | to MemSet is a performance boost.