aboutsummaryrefslogtreecommitdiff
path: root/src/backend
Commit message (Collapse)AuthorAge
* First step in fixing selectivity-estimation code. eqsel andTom Lane1999-08-01
| | | | | | | | | | neqsel now behave as per my suggestions in pghackers a few days ago. selectivity for < > <= >= should work OK for integral types as well, but still need work for nonintegral types. Since these routines have never actually executed before :-(, this may result in some significant changes in the optimizer's choices of execution plans. Let me know if you see any serious misbehavior. CAUTION: THESE CHANGES REQUIRE INITDB. pg_statistic table has changed.
* Update comments about clause selectivity estimation.Tom Lane1999-07-30
|
* Make usecatupd disabled for normal users, and allow normal users toBruce Momjian1999-07-30
| | | | update temp tables with this setting.
* Further cleanups of indexqual processing: simplify controlTom Lane1999-07-30
| | | | | logic in indxpath.c, avoid generation of redundant indexscan paths for the same relation and index.
* Remove extra #endifBruce Momjian1999-07-30
|
* Fix coredump seen when doing mergejoin between indexed tables,Tom Lane1999-07-30
| | | | | | for example in the regression test database, try select * from tenk1 t1, tenk1 t2 where t1.unique1 = t2.unique2; 6.5 has this same bug ...
* Update comments for create_indexscan_node().Tom Lane1999-07-30
|
* Add support for Case exprs to fix_indxqual_references,Tom Lane1999-07-29
| | | | | | so that Case works in WHERE join clauses. Temporary patch --- this routine is one of many that ought to be changed to use centralized expression-tree- walking logic.
* Add equal() funcs for Case nodes ... amazing we had notTom Lane1999-07-29
| | | | detected this omission before. Miscellaneous other cleanups.
* Allow a_expr not just AexprConst in the right-hand list ofTom Lane1999-07-28
| | | | | IN and NOT IN operators. Rewrite grotty implementation of IN-list parsing ... look Ma, no global variable ...
* Correct bug in best_innerjoin(): it should check all theTom Lane1999-07-27
| | | | | | | rels that the inner path needs to join to, but it was only checking for the first one. Failure could only have been observed with an OR-clause that mentions 3 or more tables, and then only if the bogus path was actually selected as cheapest ...
* First cut at doing LIKE/regex indexing optimization inTom Lane1999-07-27
| | | | | | | | | | | | | | | | | | optimizer rather than parser. This has many advantages, such as not getting fooled by chance uses of operator names ~ and ~~ (the operators are identified by OID now), and not creating useless comparison operations in contexts where the comparisons will not actually be used as indexquals. The new code also recognizes exact-match LIKE and regex patterns, and produces an = indexqual instead of >= and <=. This change does NOT fix the problem with non-ASCII locales: the code still doesn't know how to generate an upper bound indexqual for non-ASCII collation order. But it's no worse than before, just the same deficiency in a different place... Also, dike out loc_restrictinfo fields in Plan nodes. These were doing nothing useful in the absence of 'expensive functions' optimization, and they took a considerable amount of processing to fill in.
* Further work on planning of indexscans. Cleaned up interfacesTom Lane1999-07-25
| | | | | to index_selectivity so that it can be handed an indexqual clause list rather than a bunch of assorted derivative data.
* Remove 'restrictinfojoinid' field from RestrictInfo nodes.Tom Lane1999-07-25
| | | | | | | The only place it was being used was as temporary storage in indxpath.c, and the logic was wrong: the same restrictinfo node could get chosen to carry the info for two different joins. Right fix is to return a second list of unjoined-relids parallel to the list of clause groups.
* Clean up messy clause-selectivity code in clausesel.c; repair bugTom Lane1999-07-24
| | | | | | | | | | | | | | | | | | | | identified by Hiroshi (incorrect cost attributed to OR clauses after multiple passes through set_rest_selec()). I think the code was trying to allow selectivities of OR subclauses to be passed in from outside, but noplace was actually passing any useful data, and set_rest_selec() was passing wrong data. Restructure representation of "indexqual" in IndexPath nodes so that it is the same as for indxqual in completed IndexScan nodes: namely, a toplevel list with an entry for each pass of the index scan, having sublists that are implicitly-ANDed index qual conditions for that pass. You don't want to know what the old representation was :-( Improve documentation of OR-clause indexscan functions. Remove useless 'notclause' field from RestrictInfo nodes. (This might force an initdb for anyone who has stored rules containing RestrictInfos, but I do not think that RestrictInfo ever appears in completed plans.)
* Minor code beautification, extensive improvement ofTom Lane1999-07-23
| | | | | comments. This file was full of obsolete and just plain wrong commentary...
* Exit cleanups I made yesterday caused pq_close() to beTom Lane1999-07-23
| | | | | | invoked during exit from a standalone backend, leading to core dump. This is the cause of the recently reported initdb-time crash :-(. Sorry folks...
* Alpha spinlock fix from Uncle George <gatgul@voicenet.com>Bruce Momjian1999-07-22
|
* Plug several holes in backend's ability to cope withTom Lane1999-07-22
| | | | unexpected loss of connection to frontend.
* Reverse out cache changes that are not ready yet.Bruce Momjian1999-07-20
|
* Use -ieee alpha flag for gcc and egcs only.Bruce Momjian1999-07-20
|
* Re-add Makefile.Bruce Momjian1999-07-20
|
* Move -ieee to adt Makefile, and add CPU Makefile variable.Bruce Momjian1999-07-20
|
* Complain about INSERT ... SELECT ... ORDER BY, which we do notTom Lane1999-07-20
| | | | | | support, but which the grammar was accepting. Also, fix several bugs having to do with failure to copy fields up from a subselect to a select or insert node.
* Install new alignment code to use MAXALIGN rather than DOUBLEALIGN whereBruce Momjian1999-07-19
| | | | approproate.
* Enable WIN32 compilation of libpq.Bruce Momjian1999-07-19
|
* Re-add getopt.h check, remove NT-specific tests for it.Bruce Momjian1999-07-19
|
* Clean up gcc warning about unused static decl.Tom Lane1999-07-19
|
* Rewrite parser's handling of INSERT ... SELECT so that processingTom Lane1999-07-19
| | | | | | | | | of the SELECT part of the statement is just like a plain SELECT. All INSERT-specific processing happens after the SELECT parsing is done. This eliminates many problems, e.g. INSERT ... SELECT ... GROUP BY using the wrong column labels. Ensure that DEFAULT clauses are coerced to the target column type, whether or not stored clause produces the right type. Substantial cleanup of parser's array support.
* cleanupBruce Momjian1999-07-18
|
* Fix configure problem.Bruce Momjian1999-07-18
|
* Fix typo in _outArrayRef().Tom Lane1999-07-18
|
* configure cleanupBruce Momjian1999-07-18
|
* configure cleanupBruce Momjian1999-07-18
|
* Move some system includes into c.h, and remove duplicates.Bruce Momjian1999-07-17
|
* Fix incorrect declaration of rtentry as 'ResTarget' where itTom Lane1999-07-17
| | | | should be 'RangeTblEntry' ; explain.c had copied the erroneous code.
* Fix for multi-byte includes.Bruce Momjian1999-07-17
|
* Fix silly typo in commentary...Tom Lane1999-07-17
|
* clean up comment on missing file.Bruce Momjian1999-07-17
|
* Include checkBruce Momjian1999-07-17
|
* More config.h cleanups.Bruce Momjian1999-07-17
|
* Add config.h as needed.Bruce Momjian1999-07-17
|
* Add back improperly removed #include for utils/trace.h.Tom Lane1999-07-16
|
* Add back improperly removed #include for config.h.Tom Lane1999-07-16
| | | | | This probably ought to be kept in *all* the port files, but these two are the only ones that generated compiler warnings for me ...
* Add back improperly removed #include for utils/dynamic_loader.h.Tom Lane1999-07-16
|
* Support subscripts on bare column names.Tom Lane1999-07-16
|
* Allow bare column names to be subscripted as arrays. ThisTom Lane1999-07-16
| | | | | | | | | | | | | | | creates a reduce/reduce conflict, which I resolved by changing the 'AexprConst -> Typename Sconst' rule to 'AexprConst -> SimpleTypename Sconst'. In other words, a subscripted type declaration can't be used in that syntax any longer. This seems a small price to pay for not having to qualify subscripted columns anymore. Other cleanups: rename res_target_list to update_target_list, and remove productions for variants that are not legal in an UPDATE target list; rename res_target_list2 to plain target_list; delete position_expr in favor of using b_expr in that production; merge opt_indirection into attr nonterminal, since there are no places where an unsubscripted attr is wanted; fix typos in Param support; change case_arg so that an arbitrary a_expr is allowed, not only a column name.
* Revise _bt_binsrch() so that its binary search loop takesTom Lane1999-07-16
| | | | | | care of equal-key cases, eliminating bt_firsteq(). The linear search formerly done by bt_firsteq() took a lot of time in the case where many equal keys appear on the same page.
* More cleanupBruce Momjian1999-07-16
|
* More cleanupBruce Momjian1999-07-16
|