Update of /cvsroot/monetdb/pathfinder/compiler/algebra
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv23266/algebra
Modified Files:
logical.c physical.c
Log Message:
-- Prepare {ancestor-or-|descendant-or-|}self steps in the algebra
for attribute context nodes.
U physical.c
Index: physical.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/physical.c,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -d -r1.62 -r1.63
--- physical.c 1 Mar 2008 11:47:03 -0000 1.62
+++ physical.c 26 Mar 2008 11:28:25 -0000 1.63
@@ -2486,6 +2486,14 @@
if (spec.axis == alg_attr)
ret->schema.items[1]
= (PFalg_schm_item_t) { .name = item, .type = aat_anode };
+ else if (spec.axis == alg_anc_s)
+ ret->schema.items[1]
+ = (PFalg_schm_item_t) { .name = item,
+ .type = type_of (ctx, item) | aat_pnode };
+ else if (spec.axis == alg_desc_s || spec.axis == alg_self)
+ ret->schema.items[1]
+ = (PFalg_schm_item_t) { .name = item,
+ .type = type_of (ctx, item) };
else
ret->schema.items[1]
= (PFalg_schm_item_t) { .name = item, .type = aat_pnode };
U logical.c
Index: logical.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/logical.c,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -d -r1.86 -r1.87
--- logical.c 17 Mar 2008 17:41:10 -0000 1.86
+++ logical.c 26 Mar 2008 11:28:25 -0000 1.87
@@ -95,6 +95,7 @@
for (i = 0; i < PFLA_OP_MAXCHILD; i++)
ret->child[i] = NULL;
+ ret->state_label = 0;
ret->plans = NULL;
ret->sql_ann = NULL;
ret->prop = PFprop ();
@@ -2589,6 +2590,16 @@
ret->schema.items[1]
= (struct PFalg_schm_item_t) { .name = item_res,
.type = aat_anode };
+ else if (ret->sem.step.spec.axis == alg_anc_s)
+ ret->schema.items[1]
+ = (struct PFalg_schm_item_t) { .name = item_res,
+ .type = PFprop_type_of (n, item)
+ | aat_pnode };
+ else if (ret->sem.step.spec.axis == alg_desc_s ||
+ ret->sem.step.spec.axis == alg_self)
+ ret->schema.items[1]
+ = (struct PFalg_schm_item_t) { .name = item_res,
+ .type = PFprop_type_of (n, item) };
else
ret->schema.items[1]
= (struct PFalg_schm_item_t) { .name = item_res,
@@ -2668,6 +2679,16 @@
ret->schema.items[i]
= (struct PFalg_schm_item_t) { .name = item_res,
.type = aat_anode };
+ else if (ret->sem.step.spec.axis == alg_anc_s)
+ ret->schema.items[1]
+ = (struct PFalg_schm_item_t) { .name = item_res,
+ .type = PFprop_type_of (n, item)
+ | aat_pnode };
+ else if (ret->sem.step.spec.axis == alg_desc_s ||
+ ret->sem.step.spec.axis == alg_self)
+ ret->schema.items[1]
+ = (struct PFalg_schm_item_t) { .name = item_res,
+ .type = PFprop_type_of (n, item) };
else
ret->schema.items[i]
= (struct PFalg_schm_item_t) { .name = item_res,
@@ -2755,6 +2776,16 @@
ret->schema.items[1]
= (struct PFalg_schm_item_t) { .name = item_res,
.type = aat_anode };
+ else if (ret->sem.step.spec.axis == alg_anc_s)
+ ret->schema.items[1]
+ = (struct PFalg_schm_item_t) { .name = item_res,
+ .type = PFprop_type_of (n, item)
+ | aat_pnode };
+ else if (ret->sem.step.spec.axis == alg_desc_s ||
+ ret->sem.step.spec.axis == alg_self)
+ ret->schema.items[1]
+ = (struct PFalg_schm_item_t) { .name = item_res,
+ .type = PFprop_type_of (n, item) };
else
ret->schema.items[1]
= (struct PFalg_schm_item_t) { .name = item_res,
@@ -2845,6 +2876,16 @@
ret->schema.items[i]
= (struct PFalg_schm_item_t) { .name = item_res,
.type = aat_anode };
+ else if (ret->sem.step.spec.axis == alg_anc_s)
+ ret->schema.items[1]
+ = (struct PFalg_schm_item_t) { .name = item_res,
+ .type = PFprop_type_of (n, item)
+ | aat_pnode };
+ else if (ret->sem.step.spec.axis == alg_desc_s ||
+ ret->sem.step.spec.axis == alg_self)
+ ret->schema.items[1]
+ = (struct PFalg_schm_item_t) { .name = item_res,
+ .type = PFprop_type_of (n, item) };
else
ret->schema.items[i]
= (struct PFalg_schm_item_t) { .name = item_res,
-------------------------------------------------------------------------
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