Update of /cvsroot/monetdb/pathfinder/compiler/algebra/prop
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv17421/algebra/prop
Modified Files:
prop_rec_delta.c prop_reqval.c
Log Message:
-- Extended the required value property
to also infer for which columns
(1) we need the real values,
(2) the same value distribution only, or
(3) whether columns can be split into two columns.
-- Added optimization rules that get rid of rownum operators
(in opt_complex.c) and rowrank operators (in opt_reqval.c)
if they only have to produce the correct value distribution.
-- Fixed dot printing for the ref_tbl operator in logdebug.c.
-- Aligned the property printing in the physical algebra
(physdebug.c) with the one in the logical algebra.
Index: prop_rec_delta.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_rec_delta.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- prop_rec_delta.c 11 Jan 2008 10:46:59 -0000 1.18
+++ prop_rec_delta.c 11 Jan 2008 12:49:09 -0000 1.19
@@ -428,9 +428,9 @@
/* this reference is the only one */
REFS(L(n)) == 1 &&
/* column item generates a value that may be required */
- PFprop_reqval (n->prop, n->sem.attach.res) &&
+ PFprop_req_bool_val (n->prop, n->sem.attach.res) &&
/* the required value differs from the attached value */
- PFprop_reqval_val (n->prop, n->sem.attach.res) !=
+ PFprop_req_bool_val_val (n->prop, n->sem.attach.res) !=
n->sem.attach.value.val.bln)
/* mark the distinct operator as unused */
NOT_USED(L(n)) = true;
Index: prop_reqval.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_reqval.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- prop_reqval.c 11 Jan 2008 10:46:59 -0000 1.32
+++ prop_reqval.c 11 Jan 2008 12:49:09 -0000 1.33
@@ -33,6 +33,7 @@
#include "pathfinder.h"
#include <assert.h>
+#include <stdio.h>
#include "properties.h"
@@ -51,14 +52,21 @@
#define SEEN(p) ((p)->bit_dag)
[...1283 lines suppressed...]
- reqval_t init = { .name = 0, .val = 0 };
+ req_bool_val_t init = { .name = empty_list, .val = empty_list };
+ /* We need the domain property to detect more
+ distribution columns (in operators with two
+ children). */
+ PFprop_infer_nat_dom (root);
+
/* collect number of incoming edges (parents) */
prop_infer (root);
PFla_dag_reset (root);
- /* second run infers reqvals property */
- prop_infer_reqvals (root, init);
+ /* second run infers required values properties */
+ prop_infer_reqvals (root, init, schema2collist(root),
+ empty_list, empty_list, empty_list);
PFla_dag_reset (root);
}
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins