Update of /cvsroot/monetdb/pathfinder/compiler/mil
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv12821/compiler/mil
Modified Files:
milprint_summer.c
Log Message:
- added a pf:attribute(ctx as node()*, value as xs:string) : element()*
i.e. without attribute uri:loc filter.
Index: milprint_summer.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milprint_summer.c,v
retrieving revision 1.359
retrieving revision 1.360
diff -u -d -r1.359 -r1.360
--- milprint_summer.c 4 Apr 2007 22:23:52 -0000 1.359
+++ milprint_summer.c 5 Apr 2007 10:23:11 -0000 1.360
@@ -6579,10 +6579,16 @@
" pos := tmark_grp_unique(iter,ipik);\n"
"} # end of translate fn:collections () as string*\n",
cur_level, consistent);
return NORMAL;
- } else if (PFqname_eq(fnQname,PFqname (PFns_lib,"text")) == 0) {
+ } else if (fun->arity == 2 && ((PFqname_eq(fnQname,PFqname
(PFns_lib,"text")) == 0) ||
+ (rc = 2, PFqname_eq(fnQname,PFqname (PFns_lib,"attribute")) ==
0)))
+ {
+ char *fcn = (rc == 2)?"attribute":"text";
+
/* index-powered element lookup by attribute or text-child on equal
value (string)
* - pf:text(NODES, VALUE)
* delivers all text nodes from the fragments in NODES with a VALUE
as text value
+ * - pf:attribute(NODES, VALUE)
+ * delivers all elemeny nodes from the fragments in NODES with a
VALUE as attribute value
* within each iter, the returned pre-sequence is unique and in
doc-order
*/
@@ -6596,15 +6602,15 @@
milprintf(f, "item_str_ := item%s.materialize(ipik);\n", (rc ==
NORMAL)?val_join(STR):"_str_");
milprintf(f,
- "{ # translate pf:text () as string*\n"
- " var id_pre := vx_lookup(ws, iter%03u, kind%03u, item_str_,
str_nil, str_nil);\n"
+ "{ # translate pf:%s () as string*\n"
+ " var id_pre := vx_lookup(ws, iter%03u, kind%03u, item_str_,
str_nil, str_nil, %s);\n"
" iter := id_pre.hmark([EMAIL
PROTECTED]).leftfetchjoin(iter%03u);\n"
" kind := id_pre.hmark([EMAIL
PROTECTED]).leftfetchjoin(kind%03u);\n"
" item := id_pre.tmark([EMAIL PROTECTED]);\n"
" ipik := item;\n"
" pos := tmark_grp_unique(iter,ipik);\n"
- "} # end of translate pf:text () as element()*\n",
- counter, counter, counter, counter);
+ "} # end of translate pf:%s () as element()*\n",
+ fcn, counter, counter, (*fcn=='a')?"false":"true",
counter, counter, fcn);
deleteResult_ (f, counter, NORMAL);
return NORMAL;
@@ -6635,7 +6641,7 @@
milprintf(f,
"{ # translate pf:attribute() as string*\n"
- " var id_pre := vx_lookup(ws, iter%03u, kind%03u,
item_str_%03u, item_str_%03u, item_str_);\n"
+ " var id_pre := vx_lookup(ws, iter%03u, kind%03u,
item_str_%03u, item_str_%03u, item_str_, false);\n"
" iter := id_pre.hmark([EMAIL
PROTECTED]).leftfetchjoin(iter%03u);\n"
" kind := id_pre.hmark([EMAIL
PROTECTED]).leftfetchjoin(kind%03u);\n"
" item := id_pre.tmark([EMAIL PROTECTED]);\n"
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins