Re: [Monetdb-developers] [Monetdb-pf-checkins] pathfinder/compiler/semantics heuristic.c
Hi Peter,
I have two small comments to your changes:
1. Is there a reason for including monet_utils.h here? -- In my eyes it
introduces an unnecessary dependency to MonetDB (as we want the SQL code
generation to compile even without MonetDB).
Index: milprint_summer.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milprint_summer.c,v
retrieving revision 1.404
retrieving revision 1.405
diff -u -d -r1.404 -r1.405
--- milprint_summer.c 5 Sep 2007 17:06:54 -0000 1.404
+++ milprint_summer.c 11 Sep 2007 22:15:29 -0000 1.405
@@ -56,6 +56,7 @@
#define USE_DEPRECATED_ACCESS_TO_TYPE_SYSTEM 1
#include "pathfinder.h"
+#include "monet_utils.h"
#include
Update of /cvsroot/monetdb/pathfinder/compiler/semantics In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv24884/compiler/semantics
Modified Files: Makefile.ag xquery_fo.c Added Files: heuristic.c Log Message: The infamous push-selections-down heuristic rewrite ===================================================
the good: equi comparisons on attributes, texts and elements in MXQ can now be done in sublinear time thanks to indices. This involves the "reversing"of multi-step XPath paths if required.
the bad: it is a heuristic so no performance improvement assured, though much of the performance pitfalls are mitigated by a loop-lifted run-time decision whether to use the index plan or the original plan.
the ugly: well, since I can't (or couldn't) stomach XQuery core plan, it is all implemeted on the absssyn level.
there are quite a few comments/explanations in compiler/semantics/heuristic.c
runtime/pathfinder.mx - major changes to the indexing scheme, supporting the pf:text/pf:attribute functions - added run-time behavior to vx_lookup: for those iterations where index lookup is not beneficial, it returns a bogus node (1@0, recognizable as a docnode) so the original (non index-pushdown) plan is used for those iterations
runtime/pf_support.mx - new xquery hash function, with less collisions and the ability to preserve equality semantics for any XQuery type (currently supported..). - added a new dbl(byte1,...byte8) constructor that allows a IEEE double to be constructed from its 8 binary bytes (per byte to avoid little/big endian issues) without any precision loss. - optimization for the ll_htordered_thetajoin in case we have constant join columns
compiler/compile.c compiler/include/Makefile.ag compiler/semantics/Makefile.ag - add heuristic.[ch] - added heuristic index pushdown opt (currently only in mps, but alg/M4 should follow)
compiler/semantics/xquery_fo.c compiler/mil/milprint_summer.c - rewrote pf:atttribute and pf:text to give approximate answers - new pf:supernode function - pass parsed decimals/doubles using the new byte-wise MIL dbl() constructor (to avoid precision loss in the pf -> MonetDB transition) - bugfix in empty ipik opt for the for-rule
compiler/debug/abssynprint.c - PFabssyn_stdout for debugging sanity compiler/debug/prettyp.c - margin=6 for better debug output readability
-- Jan Rittinger Database Systems Technische Universität München (Germany) http://www-db.in.tum.de/~rittinge/
On Wed, Sep 12, 2007 at 09:54:45AM +0200, Jan Rittinger wrote:
Hi Peter,
I have two small comments to your changes:
1. Is there a reason for including monet_utils.h here? -- In my eyes it introduces an unnecessary dependency to MonetDB (as we want the SQL code generation to compile even without MonetDB).
milprint_summer.c seems to compile fine without monet_utils.h; hence, I removed it again. Stefan
Index: milprint_summer.c =================================================================== RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milprint_summer.c,v retrieving revision 1.404 retrieving revision 1.405 diff -u -d -r1.404 -r1.405 --- milprint_summer.c 5 Sep 2007 17:06:54 -0000 1.404 +++ milprint_summer.c 11 Sep 2007 22:15:29 -0000 1.405 @@ -56,6 +56,7 @@ #define USE_DEPRECATED_ACCESS_TO_TYPE_SYSTEM 1
#include "pathfinder.h" +#include "monet_utils.h"
#include
#include
-- | Dr. Stefan Manegold | mailto:Stefan.Manegold@cwi.nl | | CWI, P.O.Box 94079 | http://www.cwi.nl/~manegold/ | | 1090 GB Amsterdam | Tel.: +31 (20) 592-4212 | | The Netherlands | Fax : +31 (20) 592-4312 |
participants (2)
-
Jan Rittinger
-
Stefan Manegold