Tom Lane
e1fad50a5d
Revise generation of hashjoin paths: generate one path per
...
hashjoinable clause, not one path for a randomly-chosen element of each
set of clauses with the same join operator. That is, if you wrote
SELECT ... WHERE t1.f1 = t2.f2 and t1.f3 = t2.f4,
and both '=' ops were the same opcode (say, all four fields are int4),
then the system would either consider hashing on f1=f2 or on f3=f4,
but it would *not* consider both possibilities. Boo hiss.
Also, revise estimation of hashjoin costs to include a penalty when the
inner join var has a high disbursion --- ie, the most common value is
pretty common. This tends to lead to badly skewed hash bucket occupancy
and way more comparisons than you'd expect on average.
I imagine that the cost calculation still needs tweaking, but at least
it generates a more reasonable plan than before on George Young's example.
1999-08-06 04:00:17 +00:00
Tom Lane
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
Bruce Momjian
a71802e12e
Final cleanup.
1999-07-16 05:00:38 +00:00
Bruce Momjian
9b645d481c
Update #include cleanups
1999-07-16 03:14:30 +00:00
Bruce Momjian
2e6b1e63a3
Remove unused #includes in *.c files.
1999-07-15 22:40:16 +00:00
Bruce Momjian
fcff1cdf4e
Another pgindent run. Sorry folks.
1999-05-25 22:43:53 +00:00
Bruce Momjian
07842084fe
pgindent run over code.
1999-05-25 16:15:34 +00:00
Tom Lane
c2f0d565f3
Now that hashjoin is reliable for large joins (knock on wood),
...
remove optimizer's arbitrary limit on how large a join it will use hashing
for. (The limit was too large to prevent the problems we'd been seeing,
anyway...)
1999-05-18 21:36:10 +00:00
Tom Lane
fecb2b0024
Minor code cleanup in optimizer.
1999-05-16 19:45:37 +00:00
Tom Lane
605d84941d
Clean up cost_sort some more: most callers were double-counting
...
the cost of reading the source data.
1999-05-01 19:47:42 +00:00
Tom Lane
ff38837fe9
Fix nasty bug in optimization of multiway joins: optimizer
...
would sometimes generate a plan that omitted a sort step before merge.
1999-04-03 00:18:28 +00:00
Bruce Momjian
1ed5cbbfd8
Final optimizer cleanups.
1999-02-22 05:26:58 +00:00
Bruce Momjian
23c30246d7
pathkeys.c cleanup.
1999-02-21 01:55:03 +00:00
Bruce Momjian
612b8434e4
optimizer cleanup
1999-02-19 05:18:06 +00:00
Bruce Momjian
cd38f08598
rename optimizer file name
1999-02-18 19:58:53 +00:00
Bruce Momjian
31cce21fb0
Fix bushy plans. Cleanup.
1999-02-18 00:49:48 +00:00
Bruce Momjian
ba2883b264
Remove duplicate geqo functions, and more optimizer cleanup
1999-02-15 03:22:37 +00:00
Tom Lane
944d3c395e
Replace non-idiomatic nconc(x, lcons(y, NIL)) with lappend(x, y).
1999-02-15 02:04:58 +00:00
Bruce Momjian
d8b482be7c
optimizer cleanup.
1999-02-14 05:27:12 +00:00
Bruce Momjian
61aa825876
Optimizer rename.
1999-02-14 04:57:02 +00:00
Bruce Momjian
6724a50787
Change my-function-name-- to my_function_name, and optimizer renames.
1999-02-13 23:22:53 +00:00
Bruce Momjian
ad4b27ac3f
Optimizer cleanup.
1999-02-12 17:25:05 +00:00
Bruce Momjian
c0d17c7aee
JoinPath -> NestPath for nested loop.
1999-02-12 06:43:53 +00:00
Bruce Momjian
d244df95db
More optimizer speedups.
1999-02-11 14:59:09 +00:00
Bruce Momjian
9dbb0efb0b
Optmizer cleanup
1999-02-10 21:02:50 +00:00
Bruce Momjian
d5a785cd5a
Update find_typedefs for bsdi 4.0.
1999-02-10 17:14:32 +00:00
Bruce Momjian
f859c81c18
Rename Path.keys to Path.pathkeys. Too many 'keys' used for other things.
1999-02-10 03:52:54 +00:00
Bruce Momjian
fe35ffe7e0
Major optimizer improvement for joining a large number of tables.
1999-02-09 03:51:42 +00:00
Bruce Momjian
54e5d25666
Optimizer cleanup.
1999-02-08 04:29:25 +00:00
Bruce Momjian
ce3afccf7f
More optimizer cleanups.
1999-02-04 03:19:11 +00:00
Bruce Momjian
18fbe4142f
More optimizer renaming HInfo -> HashInfo.
1999-02-04 01:47:02 +00:00
Bruce Momjian
9322950aa4
Cleanup of source files where 'return' or 'var =' is alone on a line.
1999-02-03 21:18:02 +00:00
Bruce Momjian
8d9237d485
Optimizer rename ClauseInfo -> RestrictInfo. Update optimizer README.
1999-02-03 20:15:53 +00:00
Bruce Momjian
fa1a8d6a97
OK, folks, here is the pgindent output.
1998-09-01 04:40:42 +00:00
Bruce Momjian
af74855a60
Renaming cleanup, no pgindent yet.
1998-09-01 03:29:17 +00:00
Bruce Momjian
d9be0ff432
MergeSort was sometimes called mergejoin and was confusing. Now
...
it is now only mergejoin.
1998-08-04 16:44:31 +00:00
Bruce Momjian
584f9438ca
Rename Rel to RelOptInfo.
1998-07-18 04:22:52 +00:00
Bruce Momjian
6bd323c6b3
Remove un-needed braces around single statements.
1998-06-15 19:30:31 +00:00
Bruce Momjian
59f6a57e59
Used modified version of indent that understands over 100 typedefs.
1997-09-08 21:56:23 +00:00
Bruce Momjian
319dbfa736
Another PGINDENT run that changes variable indenting and case label indenting. Also static variable indenting.
1997-09-08 02:41:22 +00:00
Bruce Momjian
1ccd423235
Massive commit to run PGINDENT on all *.c and *.h files.
1997-09-07 05:04:48 +00:00
Marc G. Fournier
76294e1d38
Cleanup Makefiles
...
Add #include "postgres.h"
and
#include <sys/types.h>
1996-10-31 10:59:42 +00:00
Marc G. Fournier
d31084e9d1
Postgres95 1.01 Distribution - Virgin Sources
1996-07-09 06:22:35 +00:00