Update of /cvsroot/monetdb/pathfinder/compiler
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv4845/compiler
Modified Files:
Tag: M5XQ
compile.c
Log Message:
propagated changes of Wednesday May 20 2009
from the development trunk to the M5XQ branch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2009/05/20 - tsheyar: compiler/compile.c,1.178
-- Renamed algebra/intro_rec_border.c into algebra/intro_borders.c.
-- Renamed include/intro_rec_border.h into include/intro_borders.h.
-- Extended the physical algebra with a dependent cross product operator
that only evaluates its right side if the left side produces at least
one row.
This change implicitely implements a control structure for some conditionals.
E.g., the following query conditionally evaluates the independent
expressions ('doc("xmark-sf0.001.xml")//*' and 'doc("xmark-sf100.xml")//*'):
if (1 = (1,2,3))
then doc("xmark-sf0.1.xml")//*
else doc("xmark-sf100.xml")//*
With the dependent cross product operator in place this leads to the
evaluation
of the (previously independent) then-branch and the avoidance of the
evaluation
of the (expensive) else-branch.
-- Adjusted stable output.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
U compile.c
Index: compile.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/compile.c,v
retrieving revision 1.172.2.3
retrieving revision 1.172.2.4
diff -u -d -r1.172.2.3 -r1.172.2.4
--- compile.c 16 May 2009 08:22:57 -0000 1.172.2.3
+++ compile.c 20 May 2009 16:27:41 -0000 1.172.2.4
@@ -78,7 +78,7 @@
#include "algebra_cse.h"
#include "planner.h"
#include "physdebug.h"
-#include "intro_rec_border.h"
+#include "intro_borders.h"
#include "milgen.h" /* MIL command tree generation */
#include "mil_dce.h" /* dead MIL code elimination */
#include "milprint.h" /* create string representation of MIL tree */
@@ -126,7 +126,7 @@
[17] = "after the logical algebra tree has been rewritten/optimized",
[18] = "after the CSE on the logical algebra tree",
[19] = "after compiling logical algebra into the physical algebra (or
SQL)",
- [20] = "after introducing recursion boundaries",
+ [20] = "after introducing boundary operators",
[21] = "after compiling the physical algebra into MIL code",
[22] = "after the MIL program has been serialized"
};
@@ -766,14 +766,14 @@
STOP_POINT(19);
- /* Extend the physical algebra with recursion boundaries
- whenever a recursion occurs */
+ /* Extend the physical algebra with recursion and branch
+ boundaries whenever a recursion or branch occurs */
tm = PFtimer_start ();
- paroot = PFpa_intro_rec_borders (paroot);
+ paroot = PFpa_intro_borders (paroot);
tm = PFtimer_stop (tm);
if (status->timing)
- PFlog ("introduction of recursion boundaries:\t %s", PFtimer_str (tm));
+ PFlog ("introduction of boundary operators:\t %s", PFtimer_str (tm));
STOP_POINT(20);
------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables
unlimited royalty-free distribution of the report engine
for externally facing server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins