Update of /cvsroot/monetdb/pathfinder/compiler/algebra/prop
In directory
sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv20201/compiler/algebra/prop
Modified Files:
prop_card.c prop_composite_key.c prop_const.c prop_dom.c
prop_dom_nat.c prop_guide.c prop_icol.c prop_key.c
prop_level.c prop_ocol.c prop_ori_names.c prop_rec_delta.c
prop_reqval.c prop_set.c prop_trace_names.c prop_unq_names.c
Log Message:
Basic Algebra implementation for the fn:error functions (32 files edited).
Introduced a new operator on the logical level, namely la_error.
Operator la_error takes a BAT of strings as parameter (containing the error
message) and carry it all the way until the MIL level where the conditions are
checked and the mil if-statement is printed.
Disclaimer:
Most likely the switch-case clauses on the prop/ and opt/ directories
are not always treated correctly for the la_error operator, but a man has
to start from somewhere.
Index: prop_unq_names.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_unq_names.c,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -d -r1.24 -r1.25
--- prop_unq_names.c 6 Dec 2007 08:42:33 -0000 1.24
+++ prop_unq_names.c 10 Dec 2007 15:10:03 -0000 1.25
@@ -547,6 +547,7 @@
case la_empty_frag:
break;
+ case la_error:
case la_cond_err:
case la_trace:
case la_trace_msg:
Index: prop_ocol.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_ocol.c,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- prop_ocol.c 6 Dec 2007 08:42:32 -0000 1.39
+++ prop_ocol.c 10 Dec 2007 15:10:01 -0000 1.40
@@ -886,6 +886,7 @@
/* keep empty schema */
break;
+ case la_error:
case la_cond_err:
case la_trace:
case la_trace_msg:
Index: prop_const.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_const.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- prop_const.c 6 Dec 2007 08:42:29 -0000 1.31
+++ prop_const.c 10 Dec 2007 15:10:01 -0000 1.32
@@ -382,6 +382,7 @@
case la_semijoin:
case la_difference:
+ case la_error:
case la_cond_err:
/* propagate information from the first input operator */
for (unsigned int j = 0;
Index: prop_reqval.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_reqval.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -d -r1.29 -r1.30
--- prop_reqval.c 6 Dec 2007 08:42:33 -0000 1.29
+++ prop_reqval.c 10 Dec 2007 15:10:02 -0000 1.30
@@ -228,6 +228,7 @@
case la_proxy:
case la_proxy_base:
case la_dummy:
+ case la_error:
/* propagate required values list to left subtree */
prop_infer_reqvals (L(n), rv);
break;
Index: prop_set.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_set.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- prop_set.c 6 Dec 2007 08:42:33 -0000 1.16
+++ prop_set.c 10 Dec 2007 15:10:02 -0000 1.17
@@ -159,6 +159,7 @@
r_set = true;
break;
+ case la_error:
case la_distinct:
case la_max:
case la_min:
Index: prop_icol.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_icol.c,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -d -r1.26 -r1.27
--- prop_icol.c 6 Dec 2007 08:42:31 -0000 1.26
+++ prop_icol.c 10 Dec 2007 15:10:01 -0000 1.27
@@ -247,6 +247,7 @@
case la_lit_tbl:
case la_empty_tbl:
case la_ref_tbl:
+ case la_error:
break;
case la_attach:
Index: prop_rec_delta.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_rec_delta.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- prop_rec_delta.c 6 Dec 2007 08:42:33 -0000 1.15
+++ prop_rec_delta.c 10 Dec 2007 15:10:02 -0000 1.16
@@ -104,6 +104,7 @@
case la_doc_tbl:
case la_roots:
case la_trace:
+ case la_error:
case la_cond_err:
/* just propagate all column information */
ITER (n) = ITER (L(n));
Index: prop_level.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_level.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- prop_level.c 6 Dec 2007 08:42:31 -0000 1.8
+++ prop_level.c 10 Dec 2007 15:10:01 -0000 1.9
@@ -169,6 +169,7 @@
case la_type_assert:
case la_cast:
case la_roots:
+ case la_error:
case la_cond_err:
case la_trace:
case la_trace_msg:
Index: prop_dom_nat.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_dom_nat.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- prop_dom_nat.c 6 Dec 2007 08:42:30 -0000 1.11
+++ prop_dom_nat.c 10 Dec 2007 15:10:01 -0000 1.12
@@ -851,6 +851,7 @@
case la_empty_frag:
break;
+ case la_error:
case la_cond_err:
case la_trace:
bulk_add_dom (n->prop, L(n));
Index: prop_trace_names.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_trace_names.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- prop_trace_names.c 6 Dec 2007 08:42:33 -0000 1.10
+++ prop_trace_names.c 10 Dec 2007 15:10:02 -0000 1.11
@@ -156,6 +156,7 @@
case la_thetajoin:
case la_select:
case la_pos_select:
+ case la_error:
case la_distinct:
case la_disjunion:
case la_intersect:
Index: prop_key.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_key.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- prop_key.c 6 Dec 2007 22:41:33 -0000 1.33
+++ prop_key.c 10 Dec 2007 15:10:01 -0000 1.34
@@ -424,6 +424,7 @@
case la_difference:
case la_type_assert:
case la_roots:
+ case la_error:
case la_cond_err:
/* key columns are propagated */
copy (n->prop->keys, L(n)->prop->keys);
Index: prop_guide.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_guide.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- prop_guide.c 6 Dec 2007 08:42:30 -0000 1.16
+++ prop_guide.c 10 Dec 2007 15:10:01 -0000 1.17
@@ -1009,6 +1009,7 @@
case la_type_assert:
case la_cast:
case la_roots:
+ case la_error:
case la_cond_err:
case la_trace:
case la_trace_msg:
Index: prop_ori_names.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_ori_names.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- prop_ori_names.c 6 Dec 2007 08:42:32 -0000 1.23
+++ prop_ori_names.c 10 Dec 2007 15:10:02 -0000 1.24
@@ -358,6 +358,7 @@
}
break;
+ case la_error:
case la_select:
case la_pos_select:
case la_distinct:
Index: prop_card.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_card.c,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- prop_card.c 6 Dec 2007 08:42:28 -0000 1.28
+++ prop_card.c 10 Dec 2007 15:10:01 -0000 1.29
@@ -177,6 +177,7 @@
n->prop->card = 0;
break;
+ case la_error:
case la_cond_err:
/* Optimizations are allowed to prune errors
as long as the cardinality stays the same.
Index: prop_composite_key.c
===================================================================
RCS file:
/cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_composite_key.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- prop_composite_key.c 6 Dec 2007 08:42:29 -0000 1.8
+++ prop_composite_key.c 10 Dec 2007 15:10:01 -0000 1.9
@@ -465,6 +465,7 @@
case la_difference:
case la_type_assert:
case la_roots:
+ case la_error:
case la_cond_err:
/* composite key columns are propagated */
copy (n->prop->ckeys, L(n)->prop->ckeys);
Index: prop_dom.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/prop/prop_dom.c,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -d -r1.43 -r1.44
--- prop_dom.c 6 Dec 2007 08:42:29 -0000 1.43
+++ prop_dom.c 10 Dec 2007 15:10:01 -0000 1.44
@@ -1132,6 +1132,7 @@
case la_empty_frag:
break;
+ case la_error:
case la_cond_err:
case la_trace:
bulk_add_dom (n->prop, L(n));
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins