Forgot the attachments!

---------------------------------------------------------------------------
Hi all,

I checked out today the MonetDB/XQuery code and Mserver is crashing
whenever I try to execute MIL statements using the mclient command. More
details follow.

I first compile an XQuery to MIL statements using the command "pf -A"
Then I execute the MIL statements with "mclient -t -l"
Whenever I do so, I get the correct results but Mserver aborts after
giving the following error message:
        Mserver: monet_tbl.mx:1743: TBL_M_decref: Assertion `p' failed.
        Aborted

I have attached the XQuery file and the generated MIL file.

Thank you and best regards,
Riham

-- 
Address: Database Group, Dept of EEMCS, University of Twente, POBox 217, 7500 
AE Enschede, The Netherlands
Phone: +31 (0)53 489 4628
Fax: +31 (0)53 489 2927
Email: [EMAIL PROTECTED] 

for $p in doc("doc_100000_10ab_1000pr.xml")//a/p,
    $r in doc("doc_100000_10ab_1000pr.xml")//b/r
where $p/text() = $r/text()
return $r


module ("pathfinder");
module ("mkey");
var time_load;
var time_query;
var time_print;
var a0000;
var a0001;
var a0002;
var a0003;
var a0004;
var a0005;
var a0006;
var a0007;
var a0008;
var a0009;
var a0010;
var a0011;
var a0012;
var a0013;
var a0014;
var unused;
var ws;
unused := nil;
# trace structure
var trace_outer;
var trace_inner;
var trace_iter;
var trace_msg;
var trace_item;
var trace_type;
var trace_rel;
# Begin rule: "Query: serialize(FragList, Rel)"
a0001 := CATCH ({
    ws := ws_create ();
    # Begin rule: "Rel: lit_tbl"
    #     a0000: iter(nat)
    a0000 := new (void, oid).seqbase ([EMAIL PROTECTED]);
    a0000.append ([EMAIL PROTECTED]);
    a0000.access (BAT_READ);
    #     a0001: item(str)
    a0001 := new (void, str).seqbase ([EMAIL PROTECTED]);
    a0001.append ("doc_100000_10ab_1000pr.xml");
    a0001.access (BAT_READ);
    # End rule: "Rel: lit_tbl"
    # Begin rule: "FragRel: doc_tbl(Rel)"
    #     a0000: iter(nat)
    #     a0005: item(pre)
    #     a0004: item(pfrag)
    a0003 := doc_tbl (ws, a0001);
    a0005 := a0003.fetch (1);
    a0004 := a0003.fetch (2);
    ws := a0003.fetch (0);
    a0003 := unused;
    a0002 := unused;
    a0001 := unused;
    # End rule: "FragRel: doc_tbl(Rel)"
    # Begin rule: "Rel: roots(FragRel)"
    #     a0000: iter(nat)
    #     a0005: item(pre)
    #     a0004: item(pfrag)
    # End rule: "Rel: roots(FragRel)"
    # Begin rule: "Frag: fragment(FragRel)"
    # End rule: "Frag: fragment(FragRel)"
    # Begin rule: "FragList: empty_frag"
    # End rule: "FragList: empty_frag"
    # Begin rule: "FragList: frag_union(FragList, Frag)"
    # End rule: "FragList: frag_union(FragList, Frag)"
    # Begin rule: "Rel: llscj_desc(FragList, Rel)"
    a0001 := loop_lifted_descendant_step_with_nsloc_test (a0000, a0005, a0004, 
ws, 2, "", "b");
    a0002 := a0001.fetch (1);
    a0003 := a0001.fetch (2).materialize (a0002);
    #     a0002: item(pre)
    #     a0003: item(pfrag)
    a0006 := a0001.fetch (0).materialize (a0001.fetch (1));
    #     a0006: iter(nat)
    a0001 := unused;
    # End rule: "Rel: llscj_desc(FragList, Rel)"
    # Begin rule: "Rel: llscj_child(FragList, Rel)"
    a0001 := loop_lifted_child_step_with_nsloc_test (a0006, a0002, a0003, ws, 
3, "", "r");
    a0007 := a0001.fetch (1);
    a0008 := a0001.fetch (2).materialize (a0007);
    #     a0007: item(pre)
    #     a0008: item(pfrag)
    #     a0009: iter(nat)
    a0001 := unused;
    a0002 := unused;
    a0003 := unused;
    a0006 := unused;
    # End rule: "Rel: llscj_child(FragList, Rel)"
    # Begin rule: "Rel: project(Rel)"
    #     a0008: item(pfrag)
    #     a0007: item(pre)
    a0009 := unused;
    # End rule: "Rel: project(Rel)"
    # Begin rule: "Rel: number(Rel)"
    #     a0008: item(pfrag)
    #     a0007: item(pre)
    a0001 := a0007.mark ([EMAIL PROTECTED]);
    #     a0001: iter1(nat)
    # End rule: "Rel: number(Rel)"
    # Begin rule: "Rel: project(Rel)"
    #     a0008: item(pfrag)
    #     a0007: item(pre)
    #     a0001: iter(nat)
    # End rule: "Rel: project(Rel)"
    # Begin rule: "Rel: llscj_child(FragList, Rel)"
    a0002 := loop_lifted_child_step_with_kind_test (a0001, a0007, a0008, ws, 3, 
TEXT);
    a0003 := a0002.fetch (1);
    a0006 := a0002.fetch (2);
    #     a0003: item(pre)
    #     a0006: item(pfrag)
    a0009 := a0002.fetch (0).materialize (a0002.fetch (1));
    #     a0009: iter(nat)
    a0002 := unused;
    # End rule: "Rel: llscj_child(FragList, Rel)"
    # Begin rule: "Rel: doc_access(FragList, Rel)"
    #     a0003: item(pre)
    #     a0006: item(pfrag)
    #     a0009: iter(nat)
    a0002 := mposjoin (mposjoin (a0003, a0006, ws.fetch (PRE_PROP)), mposjoin 
(a0003, a0006, ws.fetch (PRE_CONT)), ws.fetch (PROP_TEXT));
    #     a0002: item1(str)
    # End rule: "Rel: doc_access(FragList, Rel)"
    # Begin rule: "Rel: project(Rel)"
    #     a0009: iter(nat)
    #     a0002: item1(str)
    a0003 := unused;
    a0006 := unused;
    # End rule: "Rel: project(Rel)"
    # Begin rule: "Rel: project(Rel)"
    #     a0000: iter(nat)
    #     a0004: item1(pfrag)
    #     a0005: item1(pre)
    # End rule: "Rel: project(Rel)"
    # Begin rule: "Rel: llscj_desc(FragList, Rel)"
    a0003 := loop_lifted_descendant_step_with_nsloc_test (a0000, a0005, a0004, 
ws, 2, "", "a");
    a0006 := a0003.fetch (1);
    a0010 := a0003.fetch (2).materialize (a0006);
    #     a0006: item1(pre)
    #     a0010: item1(pfrag)
    a0011 := a0003.fetch (0).materialize (a0003.fetch (1));
    #     a0011: iter(nat)
    a0003 := unused;
    a0000 := unused;
    a0004 := unused;
    a0005 := unused;
    # End rule: "Rel: llscj_desc(FragList, Rel)"
    # Begin rule: "Rel: llscj_child(FragList, Rel)"
    a0000 := loop_lifted_child_step_with_nsloc_test (a0011, a0006, a0010, ws, 
3, "", "p");
    a0003 := a0000.fetch (1);
    a0004 := a0000.fetch (2).materialize (a0003);
    #     a0003: item1(pre)
    #     a0004: item1(pfrag)
    #     a0005: iter(nat)
    a0000 := unused;
    a0006 := unused;
    a0010 := unused;
    a0011 := unused;
    # End rule: "Rel: llscj_child(FragList, Rel)"
    # Begin rule: "Rel: project(Rel)"
    #     a0004: item1(pfrag)
    #     a0003: item1(pre)
    a0005 := unused;
    # End rule: "Rel: project(Rel)"
    # Begin rule: "Rel: number(Rel)"
    #     a0004: item1(pfrag)
    #     a0003: item1(pre)
    a0000 := a0003.mark ([EMAIL PROTECTED]);
    #     a0000: iter2(nat)
    # End rule: "Rel: number(Rel)"
    # Begin rule: "Rel: llscj_child(FragList, Rel)"
    a0005 := loop_lifted_child_step_with_kind_test (a0000, a0003, a0004, ws, 3, 
TEXT);
    a0006 := a0005.fetch (1);
    a0010 := a0005.fetch (2);
    #     a0006: item1(pre)
    #     a0010: item1(pfrag)
    a0011 := a0005.fetch (0).materialize (a0005.fetch (1));
    #     a0011: iter2(nat)
    a0005 := unused;
    # End rule: "Rel: llscj_child(FragList, Rel)"
    # Begin rule: "Rel: doc_access(FragList, Rel)"
    #     a0006: item1(pre)
    #     a0010: item1(pfrag)
    #     a0011: iter2(nat)
    a0005 := mposjoin (mposjoin (a0006, a0010, ws.fetch (PRE_PROP)), mposjoin 
(a0006, a0010, ws.fetch (PRE_CONT)), ws.fetch (PROP_TEXT));
    #     a0005: item(str)
    # End rule: "Rel: doc_access(FragList, Rel)"
    # Begin rule: "Rel: project(Rel)"
    #     a0011: iter2(nat)
    #     a0005: item(str)
    a0006 := unused;
    a0010 := unused;
    # End rule: "Rel: project(Rel)"
    # Begin rule: "Rel: unq2_thetajoin(Rel, Rel)"
    #     a0010: iter2(nat)
    #     a0012: iter(nat)
    a0006 := htordered_unique_thetajoin (EQ, a0011.reverse ().leftjoin (a0005), 
a0009.reverse ().leftjoin (a0002), nil, nil);
    a0010 := a0006.mark ([EMAIL PROTECTED]).reverse ();
    a0010 := a0010.assert_order ();
    a0012 := a0006.reverse ().mark ([EMAIL PROTECTED]).reverse ();
    a0006 := unused;
    a0011 := unused;
    a0005 := unused;
    a0009 := unused;
    a0002 := unused;
    # End rule: "Rel: unq2_thetajoin(Rel, Rel)"
    # Begin rule: "Rel: project(Rel)"
    #     a0010: iter2(nat)
    #     a0012: iter(nat)
    # End rule: "Rel: project(Rel)"
    # Begin rule: "Rel: leftjoin(Rel, Rel)"
    a0002 := a0012.leftjoin (a0001.reverse ());
    a0005 := a0002.mark ([EMAIL PROTECTED]).reverse ();
    a0006 := a0002.reverse ().mark ([EMAIL PROTECTED]).reverse ();
    a0002 := unused;
    a0002 := a0005.leftjoin (a0010);
    a0002 := a0002.reverse ().mark ([EMAIL PROTECTED]).reverse ();
    #     a0002: iter2(nat)
    #     a0009: iter(nat)
    a0011 := a0006.leftjoin (a0008);
    a0011 := a0011.reverse ().mark ([EMAIL PROTECTED]).reverse ();
    #     a0011: item(pfrag)
    a0013 := a0006.leftjoin (a0007);
    a0013 := a0013.reverse ().mark ([EMAIL PROTECTED]).reverse ();
    #     a0013: item(pre)
    #     a0014: iter1(nat)
    a0005 := unused;
    a0006 := unused;
    a0010 := unused;
    a0012 := unused;
    a0008 := unused;
    a0007 := unused;
    a0001 := unused;
    # End rule: "Rel: leftjoin(Rel, Rel)"
    # Begin rule: "Rel: project(Rel)"
    #     a0011: item(pfrag)
    #     a0013: item(pre)
    #     a0002: iter2(nat)
    a0009 := unused;
    a0014 := unused;
    # End rule: "Rel: project(Rel)"
    # Begin rule: "Rel: project(Rel)"
    #     a0004: item1(pfrag)
    #     a0003: item1(pre)
    #     a0000: iter(nat)
    # End rule: "Rel: project(Rel)"
    # Begin rule: "Rel: leftjoin(Rel, Rel)"
    a0001 := a0000.leftjoin (a0002.reverse ());
    a0005 := a0001.mark ([EMAIL PROTECTED]).reverse ();
    a0006 := a0001.reverse ().mark ([EMAIL PROTECTED]).reverse ();
    a0001 := unused;
    a0001 := a0005.leftjoin (a0004);
    a0001 := a0001.reverse ().mark ([EMAIL PROTECTED]).reverse ();
    #     a0001: item1(pfrag)
    a0007 := a0005.leftjoin (a0003);
    a0007 := a0007.reverse ().mark ([EMAIL PROTECTED]).reverse ();
    #     a0007: item1(pre)
    #     a0008: iter(nat)
    a0009 := a0006.leftjoin (a0011);
    a0009 := a0009.reverse ().mark ([EMAIL PROTECTED]).reverse ();
    #     a0009: item(pfrag)
    a0010 := a0006.leftjoin (a0013);
    a0010 := a0010.reverse ().mark ([EMAIL PROTECTED]).reverse ();
    #     a0010: item(pre)
    #     a0012: iter2(nat)
    a0005 := unused;
    a0006 := unused;
    a0004 := unused;
    a0003 := unused;
    a0000 := unused;
    a0011 := unused;
    a0013 := unused;
    a0002 := unused;
    # End rule: "Rel: leftjoin(Rel, Rel)"
    # Begin rule: "Rel: project(Rel)"
    #     a0009: item(pfrag)
    #     a0010: item(pre)
    #     a0001: item1(pfrag)
    #     a0007: item1(pre)
    a0008 := unused;
    a0012 := unused;
    # End rule: "Rel: project(Rel)"
    # Begin rule: "Rel: refine_sort(Rel)"
    a0000 := a0001;
    a0000 := a0000.CTrefine (a0007);
    a0000 := a0000.CTrefine (a0009);
    a0000 := a0000.CTrefine (a0010);
    a0000 := a0000.mark ([EMAIL PROTECTED]).reverse ();
    a0002 := a0000.leftjoin (a0009);
    a0002 := a0002.reverse ().mark ([EMAIL PROTECTED]).reverse ();
    #     a0002: item(pfrag)
    a0003 := a0000.leftjoin (a0010);
    a0003 := a0003.reverse ().mark ([EMAIL PROTECTED]).reverse ();
    #     a0003: item(pre)
    #     a0001: item1(pfrag)
    #     a0007: item1(pre)
    a0000 := unused;
    a0009 := unused;
    a0010 := unused;
    # End rule: "Rel: refine_sort(Rel)"
    # Begin rule: "Rel: number(Rel)"
    #     a0002: item(pfrag)
    #     a0003: item(pre)
    #     a0001: item1(pfrag)
    #     a0007: item1(pre)
    #     a0000: pos(nat)
    # End rule: "Rel: number(Rel)"
    # Begin rule: "Rel: project(Rel)"
    #     a0002: item(pfrag)
    #     a0003: item(pre)
    #     a0000: pos(nat)
    a0001 := unused;
    a0007 := unused;
    # End rule: "Rel: project(Rel)"
    a0004 := new (lng, void).key (true).reverse ().seqbase ([EMAIL PROTECTED]);
    a0005 := new (dbl, void).key (true).reverse ().seqbase ([EMAIL PROTECTED]);
    a0006 := new (str, void).key (true).reverse ().seqbase ([EMAIL PROTECTED]);
    a0007 := a0003;
    a0008 := a0002.set_kind (ELEM);
    a0007 := a0007.reverse ().mark ([EMAIL PROTECTED]).reverse ();
    a0008 := a0008.reverse ().mark ([EMAIL PROTECTED]).reverse ();
    print_result ("xml", ws, a0007, a0008, a0004, a0005, a0005, a0006);
    a0004 := unused;
    a0005 := unused;
    a0006 := unused;
    a0007 := unused;
    a0008 := unused;
    a0001 := unused;
});
if (not(isnil(ws))) {
    ws_destroy (ws);
} else {
}
if (not(isnil(a0001))) {
    ERROR (a0001);
} else {
}
a0001 := unused;
a0002 := unused;
a0003 := unused;
a0000 := unused;
# End rule: "Query: serialize(FragList, Rel)"
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Monetdb-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-developers

Reply via email to