Update of /cvsroot/monetdb/pathfinder/compiler
In directory sc8-pr-cvs16:/tmp/cvs-serv26652
Modified Files:
compile.c main.c
Log Message:
Thetajoin operator:
Introduced a thetajoin operator in the logical algebra (and the physical
algebra and the MIL generation). This new thetajoin can handle a list of
conjunctive predicates where each predicate represents an (in-)equality
condition.
Thetajoin introduction:
A thetajoin operator is introduced either by a small pattern
(select-comparison-cross) in opt_general.brg or by a new introduction
phase in intro_thetajoin.c. The latter introduction phase uses a
selection as a basis to find the *correct* equi-join and transforms
this equi-join into a thetajoin (for more details please look into
the code).
Thetajoin optimization:
Similar to the MVD optimization phase that pushes cross product
operators up in the DAG structure this checkin provides a new
optimization phase that pushes thetajoin operators up in the DAG
(opt_thetajoin.c). These rewrites result in thetajoin operators
that contain multiple predicates. (E.g. the transformed equi-joins
eventually hit the selection that triggered the rewrite and thus form
a new scope-dependent value-based join -- see XMark Q3 and Q4.)
Additional changes:
opt_general.brg
* Extended thetajoin pattern to cope with inequality comparisons
* Rewrite the pattern: semijoin (distinct (Rel), Rel) into
distinct (semijoin (Rel, Rel) as the semijoin hopefully reduces
the cardinality more than the distinct operator. (This speeds
up XMark Q12 by a factor of 2.5.)
intro_proxy.c
* Added a preceding phase that removes all semijoin operators.
(Using only simply checks more proxies are now detected.)
* Removed unnest optimization phase (thetajoin optimization
does the same in a more general scenario).
physical.c
* Toyed around with the cost model
* Fixed 'PFord_order_dir_at' bug
planner.c
* Generated more ordered alternatives (even if an ordering is
not required) after an operator is mapped to physical algebra.
In some situations this avoids in a later step planning the same
sort operator multiple times. (We only introduce orderings for
iter-like columns and sort at most two columns. Otherwise the
plan space explodes for some sample queries.)
* Extended list of possible orderings for the rownum operator
Index: compile.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/compile.c,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -d -r1.109 -r1.110
--- compile.c 2 Apr 2007 19:36:29 -0000 1.109
+++ compile.c 7 May 2007 10:16:57 -0000 1.110
@@ -142,12 +142,12 @@
.standoff_axis_steps = false,
.opt_alg = "OIKDCG_VGO_[J]OKVCG"
- "}IM_{_[J]OKVCG"
- "}IM_{_[J]OKVCGCG"
- "}IM_{_[J]OKVCG"
- "}IMS{_[J]OKVCGCG"
- "}IMS{_[J]OKVCG"
- "}IMS{_[J]OKVCGCGP",
+ "}IM__{_[J]OKVCG"
+ "}IM__{_[J]OKVCGCG"
+ "}IM__{_[J]OKVCG"
+ "}IMTS{_[J]OKVCGCG"
+ "}IMTS{_[J]OKVCG"
+ "}IMTS{_[J]OKVCGCGP",
.format = NULL,
#ifndef NDEBUG
Index: main.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/main.c,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -d -r1.84 -r1.85
--- main.c 13 Mar 2007 13:56:00 -0000 1.84
+++ main.c 7 May 2007 10:16:59 -0000 1.85
@@ -783,12 +783,12 @@
"the options)\n");
printf (" (default is: "
"'-o OIKDCG_VGO_[J]OKVCG"
- "}IM_{_[J]OKVCG"
- "}IM_{_[J]OKVCGCG"
- "}IM_{_[J]OKVCG"
- "}IMS{_[J]OKVCGCG"
- "}IMS{_[J]OKVCG"
- "}IMS{_[J]OKVCGCGP')\n");
+ "}IM__{_[J]OKVCG"
+ "}IM__{_[J]OKVCGCG"
+ "}IM__{_[J]OKVCG"
+ "}IMTS{_[J]OKVCGCG"
+ "}IMTS{_[J]OKVCG"
+ "}IMTS{_[J]OKVCGCGP')\n");
printf (" -e[0|1]%s: dead code elimination:\n"
" 0 disable dead code elimination\n"
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins