Update of /cvsroot/monetdb/pathfinder/compiler/algebra/opt
In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv5336
Modified Files:
Tag: XQuery_0-24
opt_algebra_cse.c
Log Message:
Bugfix: the handling of serialize_rel was buggy. The items-field in the
semantic content was not mapped to the actual attributes.
U opt_algebra_cse.c
Index: opt_algebra_cse.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/algebra/opt/opt_algebra_cse.c,v
retrieving revision 1.30.2.2
retrieving revision 1.30.2.3
diff -u -d -r1.30.2.2 -r1.30.2.3
--- opt_algebra_cse.c 28 May 2008 15:13:38 -0000 1.30.2.2
+++ opt_algebra_cse.c 29 May 2008 11:31:39 -0000 1.30.2.3
@@ -766,12 +766,25 @@
case la_serialize_seq:
if ((ACTATT (R(a), a->sem.ser_seq.pos) ==
ACTATT (R(b), b->sem.ser_seq.pos)) &&
- (ACTATT (R(a), a->sem.ser_seq.item) &&
+ (ACTATT (R(a), a->sem.ser_seq.item) ==
ACTATT (R(b), b->sem.ser_seq.item)))
return true;
- break;
case la_serialize_rel:
+ if ((ACTATT (L(a), a->sem.ser_rel.iter) !=
+ ACTATT (L(b), b->sem.ser_rel.iter)) ||
+ (ACTATT (L(a), a->sem.ser_rel.pos) !=
+ ACTATT (L(b), a->sem.ser_rel.pos)))
+ return false;
+
+ for (unsigned int i = 0; i < a->sem.ser_rel.items.count;
+ i++) {
+ if (ACTATT (L(a), a->sem.ser_rel.items.atts[i])
!=
+ ACTATT (L(b),
b->sem.ser_rel.items.atts[i]))
+ return false;
+ }
+
+ return true;
case la_lit_tbl:
if (a->sem.lit_tbl.count !=
b->sem.lit_tbl.count)
@@ -1318,11 +1331,21 @@
ACTATT(R(n), n->sem.ser_seq.item));
case la_serialize_rel:
+ {
+ PFalg_attlist_t items = (PFalg_attlist_t) {
+ .count
= n->sem.ser_rel.items.count,
+ .atts =
PFmalloc (sizeof(PFalg_att_t))
+ };
+
+ for (unsigned int i = 0; i < items.count; i++) {
+ items.atts[i] = ACTATT (L(n),
n->sem.ser_rel.items.atts[i]);
+ }
+
return PFla_serialize_rel (CSE(L(n)),
ACTATT (L(n), n->sem.ser_rel.iter),
ACTATT (L(n), n->sem.ser_rel.pos),
- n->sem.ser_rel.items);
-
+ items);
+ }
case la_lit_tbl:
return PFla_lit_tbl_ (create_attlist (n->schema),
n->sem.lit_tbl.count,
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins