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

Reply via email to