aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* Missed one place that can be simplified after recent Param/Const cleanup.Tom Lane2002-11-30
|
* Be more realistic about plans involving Materialize nodes: take theirTom Lane2002-11-30
| | | | cost into account while planning.
* Upgrade planner and executor to allow multiple hash keys for a hash join,Tom Lane2002-11-30
| | | | | | 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.
* 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.
* Repair prehistoric logic error in lseg_eq and lseg_ne.Tom Lane2002-11-29
|
* Suppress compiler warning from newer gcc.Tom Lane2002-11-29
|
* 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.
* Guard against 0 length string encoding conversion case.Tatsuo Ishii2002-11-26
|
* Remove unused constisset and constiscast fields of Const nodes. CleanTom Lane2002-11-25
| | | | up code and documentation associated with Param nodes.
* Restructure outfuncs and readfuncs to use macros in the same style asTom Lane2002-11-25
| | | | | | | | 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).
* 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.
* Restructure the code in copyfuncs and equalfuncs to put much heavierTom Lane2002-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | reliance on macros, in hopes of eliminating silly typos (like copying to the wrong field) and just generally making it easier to see the forest instead of the trees. As an example, here is the new code for A_Indices: static A_Indices * _copyAIndices(A_Indices *from) { A_Indices *newnode = makeNode(A_Indices); COPY_NODE_FIELD(lidx); COPY_NODE_FIELD(uidx); return newnode; } static bool _equalAIndices(A_Indices *a, A_Indices *b) { COMPARE_NODE_FIELD(lidx); COMPARE_NODE_FIELD(uidx); return true; } I plan to redo outfuncs/readfuncs in a similar style, but am committing what I've got.
* Restructure planning of nestloop inner indexscans so that the set of usableTom Lane2002-11-24
| | | | | | | | | | | 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.
* 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
* Redesign internal logic of nodeLimit so that it does not need to fetchTom Lane2002-11-22
| | | | | | 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.
* Fix breakage in new-in-7.3 timetz_zone() function: was giving randomTom Lane2002-11-21
| | | | | | results due to doing arithmetic on uninitialized values. Add some documentation about the AT TIME ZONE construct. Update some other date/time documentation that seemed out of date for 7.3.
* Code review for superuser_reserved_connections patch. Don't try to doTom Lane2002-11-21
| | | | | | database access outside a transaction; revert bogus performance improvement in SIBackendInit(); improve comments; add documentation (this part courtesy Neil Conway).
* Finish implementation of hashed aggregation. Add enable_hashagg GUCTom Lane2002-11-21
| | | | | | 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.
* Add an at-least-marginally-plausible method of estimating the numberTom Lane2002-11-19
| | | | | | 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.
* Most of the code follows the American spelling of the word, which isBruce Momjian2002-11-19
| | | | | | | | "canceled", so I changed the one remaining usage of the British spelling ("cancelled") over to the former, and updated the translation files appropriately. Neil Conway
* Remove ALL from CLUSTER ALL. Use just CLUSTER.Bruce Momjian2002-11-18
|
* Put back error test for DECLARE CURSOR outside a transaction block ...Tom Lane2002-11-18
| | | | but do it correctly now.
* Suppress compile warning, avoid possible problems with signed vs. unsignedTom Lane2002-11-18
| | | | comparisons in recently-added CheckPointWarning code.
* Reduce need for palloc/pfree overhead in varstr_cmp() by using fixed-sizeTom Lane2002-11-17
| | | | buffers on stack for short strings.
* Add relcache support for system catalogs with attnotnull columns.Tom Lane2002-11-15
| | | | | | | | The code was not making TupleConstr structs for such catalogs in several places; with the consequence that the not-null constraint wasn't actually enforced. With this change, INSERT INTO pg_proc VALUES('sdf'); generates a 'Fail to add null value' error instead of a core dump.
* 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
* Add checkpoint_warning to warn of excessive checkpoints caused by tooBruce Momjian2002-11-15
| | | | few WAL files.
* Push qual clauses containing subplans to the back of the qual listTom Lane2002-11-15
| | | | at each plan node. Per gripe from Ross Reedstrom.
* Rename hostname_lookup to log_hostname.Bruce Momjian2002-11-15
|
* Rename show_source_port to log_source_port.Bruce Momjian2002-11-15
|
* Rename show_btree_build_stats to log_btree_build_statsBruce Momjian2002-11-15
|
* 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
* Rename server_min_messages to log_min_messages. Part of consolidationBruce Momjian2002-11-14
| | | | of log_ settings.
* Fix planning bug introduced in recent code reorganization for hashedTom Lane2002-11-14
| | | | | aggregates: tuple_fraction has to be adjusted before passing it to compare_fractional_path_costs().
* Allow +1300 as a numeric timezone specifier; we already accept FJST as ↵Tom Lane2002-11-13
| | | | meaning +1300.
* Update xact.c comments for clarity.Bruce Momjian2002-11-13
|
* 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
|
* Split MemSet into three parts to constant comparisons can be optimizedBruce Momjian2002-11-13
| | | | away by the compiler; used by palloc0.
* Improve comment: add note that grotty special case in mdread() isTom Lane2002-11-12
| | | | required by hash index implementation.
* Fix broken GB18030 <--> UTF-8 conversion mapTatsuo Ishii2002-11-12
|
* Remove NO_MKTIME_BEFORE_1970. I had speculated that it was not neededTom Lane2002-11-12
| | | | | | anymore given the mktime() workaround now done in DetermineLocalTimeZone. This has now been confirmed by Robert Bruccoleri for Irix, and I'm going to extrapolate to AIX as well.
* 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.
* Add cast to suppress compile warning on Alphas.Tom Lane2002-11-11
|
* Back out use of palloc0 in place if palloc/MemSet. Seems constant lenBruce Momjian2002-11-11
| | | | to MemSet is a performance boost.
* Merge palloc()/MemSet(0) calls into a single palloc0() call.Bruce Momjian2002-11-10
|
* Add palloc0 function to inline MemSet for newNode call.Bruce Momjian2002-11-10
|