Commit Graph

9583 Commits

Author SHA1 Message Date
04578a9180 Further cleanups of indexqual processing: simplify control
logic in indxpath.c, avoid generation of redundant indexscan paths for the
same relation and index.
1999-07-30 04:07:25 +00:00
b62fdc13f0 Correct bug in best_innerjoin(): it should check all the
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 ...
1999-07-27 06:23:12 +00:00
9e7e29e6c9 First cut at doing LIKE/regex indexing optimization in
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.
1999-07-27 03:51:11 +00:00
49ed4dd779 Further work on planning of indexscans. Cleaned up interfaces
to index_selectivity so that it can be handed an indexqual clause list
rather than a bunch of assorted derivative data.
1999-07-25 23:07:26 +00:00
8ae29a1d40 Remove 'restrictinfojoinid' field from RestrictInfo nodes.
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.
1999-07-25 17:53:27 +00:00
ac4913a0dd Clean up messy clause-selectivity code in clausesel.c; repair bug
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.)
1999-07-24 23:21:14 +00:00
c175de56dc Reverse out cache changes that are not ready yet. 1999-07-20 17:14:08 +00:00
7944d501f4 Use -ieee alpha flag for gcc and egcs only. 1999-07-20 16:48:58 +00:00
e2f32054f4 linux/sparc cleanup 1999-07-19 18:19:40 +00:00
b653d1e263 Fix for linux/sparc. 1999-07-19 18:07:36 +00:00
be1851902a Fix #if if. 1999-07-19 14:30:52 +00:00
faf7d78174 Install new alignment code to use MAXALIGN rather than DOUBLEALIGN where
approproate.
1999-07-19 07:07:29 +00:00
e44c931801 Re-add getopt.h check, remove NT-specific tests for it. 1999-07-19 02:27:16 +00:00
c9acd2da12 Remove getopt configure check. 1999-07-19 01:18:05 +00:00
44bc7ab2a6 Put back mistakenly removed configure test for HAVE_NETINET_IN_H. 1999-07-19 00:55:59 +00:00
7f76eab140 Rewrite parser's handling of INSERT ... SELECT so that processing
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.
1999-07-19 00:26:20 +00:00
cb08547646 Add getopt test. 1999-07-18 21:02:56 +00:00
7badb1e792 Fix configure problem. 1999-07-18 20:43:13 +00:00
d6f26e6451 Update for 6.6. 1999-07-18 18:06:42 +00:00
a927d6ea4e configure cleanup 1999-07-18 18:03:50 +00:00
d0634aca39 configure cleanup 1999-07-18 17:38:25 +00:00
07262a2dfb Update configure include checks. 1999-07-18 16:42:16 +00:00
46355e94d4 Update includes from configure 1999-07-18 14:48:30 +00:00
32664b4b4b Improve commentary about ArrayRef and ResTarget nodes. 1999-07-18 03:45:01 +00:00
3406901a29 Move some system includes into c.h, and remove duplicates. 1999-07-17 20:18:55 +00:00
33e826d167 Fix for multi-byte includes. 1999-07-17 16:25:28 +00:00
8f5561a0d9 More config.h cleanups. 1999-07-17 04:12:10 +00:00
773088809d More cleanup 1999-07-16 17:07:40 +00:00
a9591ce66a Change #include's to use <> and "" as appropriate. 1999-07-15 23:04:24 +00:00
40a89e08b2 Cleanups. 1999-07-15 20:32:30 +00:00
4b2c2850bf Clean up #include in /include directory. Add scripts for checking includes. 1999-07-15 15:21:54 +00:00
0cf1b79528 Cleanup of /include #include's, for 6.6 only. 1999-07-14 01:20:30 +00:00
ad4948862c Remove S*I comments from Stephan. 1999-07-13 21:17:45 +00:00
050371fccd More cpu cleanups, only for 6.6. 1999-07-13 20:12:51 +00:00
540c114225 Redefine cpu's as __cpu__. Only for 6.6 branch. 1999-07-13 20:00:37 +00:00
30e27a9099 readd include for safety. 1999-07-12 13:32:38 +00:00
8f02f2252d Fix some compiler warnings (Tomoaki Nishiyama), add WIN1250 support (Pavel Behal) 1999-07-11 22:47:21 +00:00
ebc3cc7efa heapam.h uses type time_t, but didn't include <time.h>. 1999-07-10 22:06:26 +00:00
d62c25d452 cleanup of long long int atoi test. 1999-07-10 17:03:34 +00:00
5a3fa95c39 Update stuff for 6.5.1 release. 1999-07-10 16:28:02 +00:00
cd5dfb65a9 Add mention block size <= 32k. 1999-07-09 16:56:44 +00:00
296efd8065 Fix for ACL length problem on different platforms. 1999-07-09 03:28:53 +00:00
38ff52c379 Allow port numbers 32k - 64k. 1999-07-07 17:17:50 +00:00
9f7ac20e57 Cleanup of min tuple size. 1999-07-07 09:27:28 +00:00
137eacbe6a Align cleanup. 1999-07-04 05:47:06 +00:00
a0b4af3c85 More alignment 1999-07-04 05:44:56 +00:00
eba41848aa Clarify maximum tuple and max attribute lengths. 1999-07-04 04:56:02 +00:00
ff8756dd1c More cleanup 1999-07-03 01:57:53 +00:00
97dfff832c Fix to prevent too large tuple from being created. 1999-07-03 00:33:04 +00:00
c9a0a232e2 #ifdef around true and false. 1999-07-01 19:47:25 +00:00