summaryrefslogtreecommitdiff
path: root/src/include
AgeCommit message (Collapse)Author
2002-12-18Update EvalPlanQual() to work with new executor memory management method.Tom Lane
It doesn't leak memory anymore ...
2002-12-16Fix GEQO to work again in CVS tip, by being more careful about memoryTom Lane
allocation in best_inner_indexscan(). While at it, simplify GEQO's interface to the main planner --- make_join_rel() offers exactly the API it really wants, whereas calling make_rels_by_clause_joins() and make_rels_by_clauseless_joins() required jumping through hoops. Rewrite gimme_tree for clarity (sometimes iteration is much better than recursion), and approximately halve GEQO's runtime by recognizing that tours of the forms (a,b,c,d,...) and (b,a,c,d,...) are equivalent because of symmetry in make_join_rel().
2002-12-16Fix ALTER TABLE ADD COLUMN to disallow the same column types that areTom Lane
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.
2002-12-16Code review for palloc0 patch --- avoid dangerous and unnecessaryTom Lane
practice of evaluating MemSet's arguments multiple times, except for the special case of newNode(), where we can assume the argument is a constant sizeof() operator. Also, add GetMemoryChunkContext() to mcxt.c's API, in preparation for fixing recent GEQO breakage.
2002-12-15Tweak default memory context allocation policy so that a context is notTom Lane
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.
2002-12-15Revise executor APIs so that all per-query state structure is built inTom Lane
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.
2002-12-14Clean up plantree representation of SubPlan-s --- SubLink does not appearTom Lane
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.
2002-12-13Phase 3 of read-only-plans project: ExecInitExpr now builds expressionTom Lane
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.
2002-12-12TODO marked as done:Bruce Momjian
* Add schema, cast, and conversion backslash commands to psql I had to create a new publically available function, pg_conversion_is_visible, as it seemed to be missing from the catalogs. This required me to do no small amount of hacking around in namespace.c I have updated the \? help and sgml docs. \dc - list conversions [PATTERN] \dC - list casts \dn list schemas I didn't support patterns with casts as there's nothing obvious to match against. Catalog version incremented --- initdb required. Christopher Kings-Lynne
2002-12-12Preliminary code review for domain CHECK constraints patch: add documentation,Tom Lane
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.
2002-12-12Phase 2 of read-only-plans project: restructure expression-tree nodesTom Lane
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.
2002-12-10If typecmds is going to have its own header file, said header fileTom Lane
should include what it needs.
2002-12-09Update obsolete comment.Tom Lane
2002-12-06Attached are two small patches to expose md5 as a user function -- includingBruce Momjian
documentation and regression test mods. It seemed small and unobtrusive enough to not require a specific proposal on the hackers list -- but if not, let me know and I'll make a pitch. Otherwise, if there are no objections please apply. Joe Conway
2002-12-06Re-addd Rod's ALTER DOMAIN patch.Bruce Momjian
2002-12-06Back out V6 code, caused postmaster startup failure.Bruce Momjian
2002-12-06Add missing v6utils file.Bruce Momjian
2002-12-06We have just finished porting the old KAME IPv6 patch over toBruce Momjian
postgresql version 7.3, but yea... this patch adds full IPv6 support to postgres. I've tested it out on 7.2.3 and has been running perfectly stable. CREDITS: The KAME Project (Initial patch) Nigel Kukard <nkukard@lbsd.net> Johan Jordaan <johanj@lando.co.za>
2002-12-06Back out ALTER DOMAIN patch until missing file appears.Bruce Momjian
2002-12-06ALTER DOMAIN .. SET / DROP NOT NULLBruce Momjian
ALTER DOMAIN .. SET / DROP DEFAULT ALTER DOMAIN .. ADD / DROP CONSTRAINT New files: - doc/src/sgml/ref/alter_domain.sgml Rod Taylor
2002-12-05Clearify variables names so it is clear which variable is theBruce Momjian
client-supplied password and which is from pg_shadow.
2002-12-05Allow 'password' encryption even when pg_shadow has MD5 passwords, perBruce Momjian
report from Terry Yapt and Hiroshi. Backpatch to 7.3.
2002-12-05Phase 1 of read-only-plans project: cause executor state nodes to pointTom Lane
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.
2002-12-05Document get/set bit/byte functions.Bruce Momjian
2002-12-05More cleanup of userid to be AclId rather than Oid.Bruce Momjian
2002-12-04Make usesysid consistently int4, not oid.Bruce Momjian
Catalog patch from Alvaro Herrera for same. catversion updated. initdb required.
2002-12-01Teach planner to expand sufficiently simple SQL-language functionsTom Lane
('SELECT expression') inline, like macros, during the constant-folding phase of planning. The actual expansion is not difficult, but checking that we're not changing the semantics of the call turns out to be more subtle than one might think; in particular must pay attention to permissions issues, strictness, and volatility.
2002-12-01Fix ExecMakeTableFunctionResult() to work with generic expressions asTom Lane
well as function calls. This is needed for cases where the planner has constant-folded or inlined the original function call. Possibly we should back-patch this change into 7.3 branch as well.
2002-11-30Code review for IS DISTINCT FROM patch. Fix incorrect constant-foldingTom Lane
logic, dissuade planner from thinking that 'x IS DISTINCT FROM 42' may be optimized into 'x = 42' (!!), cause dependency on = operator to be recorded correctly, minor other improvements.
2002-11-30Be more realistic about plans involving Materialize nodes: take theirTom Lane
cost into account while planning.
2002-11-30Upgrade planner and executor to allow multiple hash keys for a hash join,Tom Lane
instead of only one. This should speed up planning (only one hash path to consider for a given pair of relations) as well as allow more effective hashing, when there are multiple hashable joinclauses.
2002-11-29Tighten selection of equality and ordering operators for groupingTom Lane
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.
2002-11-27Improve some comments.Tom Lane
2002-11-26Use Params, rather than run-time-modified Const nodes, to handleTom Lane
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.
2002-11-25Remove unused constisset and constiscast fields of Const nodes. CleanTom Lane
up code and documentation associated with Param nodes.
2002-11-25Restructure outfuncs and readfuncs to use macros in the same style asTom Lane
just done for copyfuncs/equalfuncs. Read functions in particular get a lot shorter than before, and it's much easier to compare an out function with the corresponding read function to make sure they agree. initdb forced due to small changes in nodestring format (regularizing a few cases that were formerly idiosyncratic).
2002-11-25Un-break triggers declared for INSERT OR DELETE OR UPDATE. This workedTom Lane
okay in 7.3, so I think it must have been busted in the recent triggers patch.
2002-11-24Restructure planning of nestloop inner indexscans so that the set of usableTom Lane
joinclauses is determined accurately for each join. Formerly, the code only considered joinclauses that used all of the rels from the outer side of the join; thus for example FROM (a CROSS JOIN b) JOIN c ON (c.f1 = a.x AND c.f2 = b.y) could not exploit a two-column index on c(f1,f2), since neither of the qual clauses would be in the joininfo list it looked in. The new code does this correctly, and also is able to eliminate redundant clauses, thus fixing the problem noted 24-Oct-02 by Hans-Jürgen Schönig.
2002-11-23Update regression for new patches. Bump up catversion.Bruce Momjian
2002-11-23Transaction safe TruncateBruce Momjian
Rod Taylor
2002-11-23This patch implements FOR EACH STATEMENT triggers, per my email toBruce Momjian
-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
2002-11-22Redesign internal logic of nodeLimit so that it does not need to fetchTom Lane
one more row from the subplan than the COUNT would appear to require. This costs a little more logic but a number of people have complained about the old implementation.
2002-11-22TAS code originally written for s390 (32-bit) does not work for s390xTom Lane
(64-bit). Fix it. Per report from Permaine Cheung.
2002-11-21Finish implementation of hashed aggregation. Add enable_hashagg GUCTom Lane
parameter to allow it to be forced off for comparison purposes. Add ORDER BY clauses to a bunch of regression test queries that will otherwise produce randomly-ordered output in the new regime.
2002-11-19Add an at-least-marginally-plausible method of estimating the numberTom Lane
of groups produced by GROUP BY. This improves the accuracy of planning estimates for grouped subselects, and is needed to check whether a hashed aggregation plan risks memory overflow.
2002-11-18Put back error test for DECLARE CURSOR outside a transaction block ...Tom Lane
but do it correctly now.
2002-11-15New version attached. The following is implemented:Bruce Momjian
- 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
2002-11-15Add DOMAIN check constraints.Bruce Momjian
Rod Taylor
2002-11-15Add checkpoint_warning to warn of excessive checkpoints caused by tooBruce Momjian
few WAL files.
2002-11-15Rename hostname_lookup to log_hostname.Bruce Momjian