Update of /cvsroot/monetdb/pathfinder/compiler/mil
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv4698/compiler/mil

Modified Files:
        milprint_summer.c 
Log Message:
propagated changes of Saturday Feb 10 2007 - Sunday Feb 11 2007
from the XQuery_0-16 branch to the development trunk



Index: milprint_summer.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milprint_summer.c,v
retrieving revision 1.323
retrieving revision 1.324
diff -u -d -r1.323 -r1.324
--- milprint_summer.c   9 Feb 2007 23:41:09 -0000       1.323
+++ milprint_summer.c   11 Feb 2007 22:04:35 -0000      1.324
@@ -6528,36 +6528,51 @@
             milprintf(f, 
                 "{ # translate pf:documents (string*) as string*\n"
                 "  var ret := ws_documents(ws, item%s.materialize(ipik));\n"
-                "  item_str_ := ret.tmark([EMAIL PROTECTED]);\n"
+                "  item := ret.tmark([EMAIL PROTECTED]);\n"
                 "  iter := ret.hmark([EMAIL 
PROTECTED]).leftfetchjoin(iter);\n", (rc)?item_ext:val_join(STR));
         } else {
             milprintf(f, 
                 "{ # translate pf:documents () as string*\n"
-                "  var ret := reverse(loop%03u).project([EMAIL 
PROTECTED]).leftjoin(ws_documents(ws));\n"
+                "  var ret := reverse(loop%03u).cross(ws_documents(ws));\n"
                 "  iter := ret.hmark([EMAIL PROTECTED]);\n"
-                "  item_str_ := ret.tmark([EMAIL PROTECTED]);\n", cur_level);
+                "  item := ret.tmark([EMAIL PROTECTED]);\n", cur_level);
         }
         milprintf(f,
-                "  ipik := item_str_;\n"
-                "  kind := STR;\n"
+                "  ipik := item;\n"
+                "  kind := set_kind(WS,ELEM);\n"
                 "  pos  := tmark_grp_unique(iter,ipik);\n" 
                 "} # end of translate fn:documents (string?) as string*\n");
-        if (code) return STR;
-        addValues (f, str_container(), "item_str_", "item");
         return NORMAL;
     } else if (!PFqname_eq(fnQname,PFqname (PFns_lib,"collections")))
     {
         milprintf(f,
                 "{ # translate pf:collections () as string*\n"
-                "  var ret := reverse(loop%03u).project([EMAIL 
PROTECTED]).leftjoin(ws_collections(ws));\n"
+                "  var ret := reverse(loop%03u).cross(ws_collections(ws));\n"
                 "  iter := ret.hmark([EMAIL PROTECTED]);\n"
-                "  item_str_ := ret.tmark([EMAIL PROTECTED]);\n"
-                "  ipik := item_str;\n"
-                "  kind := STR;\n"
+                "  item := ret.tmark([EMAIL PROTECTED]);\n"
+                "  ipik := item;\n"
+                "  kind := set_kind(WS,ELEM);\n"
                 "  pos  := tmark_grp_unique(iter,ipik);\n"
                 "} # end of translate fn:collections () as string*\n", 
cur_level);
-        if (code) return STR;
-        addValues (f, str_container(), "item_str_", "item");
+        return NORMAL;
+    } else if (!PFqname_eq(fnQname,PFqname (PFns_lib,"mil")))
+    {
+        rc = translate2MIL (f, VALUES, cur_level, counter, L(args));
+        item_ext = kind_str(rc);
+        milprintf(f,
+                "{ # translate pf:mil (string) as item*\n"
+                "  if (count(loop%03u) != 1) ERROR(\"pf:mil can only be called 
in a single iteration\");\n"
+                "  kind := ELEM;\n"
+                "  item := ws_mil(ws, item%s.fetch(0));\n"
+                "  if (type(item) = str) {\n"
+                "     item := addValues(str_values,item);\n"
+                "     kind := STR;\n"
+                "  }\n"
+                "  kind := set_kind(WS,kind);\n"
+                "  iter := item.materialize(ipik).project([EMAIL 
PROTECTED]);\n"
+                "  ipik := iter;\n"
+                "  pos  := ipik.tmark([EMAIL PROTECTED]);\n"
+                "} # end of translate fn:mil (string) as item*\n", cur_level, 
rc?item_ext:val_join(STR));
         return NORMAL;
     } else if (!PFqname_eq(fnQname,PFqname (PFns_fn,"put")))
     {
@@ -11065,10 +11080,9 @@
            " ws_destroy(ws);\n"\
            "}\n"\
            "if (not(isnil(err))) ERROR(err);\n"\
-           "time_print := usec() - time_print;\n"\
-           "if (genType.startsWith(\"timing\"))\n"\
+           "else if (genType.startsWith(\"timing\"))\n"\
            "  printf(\"\\nTrans  %% 10.3f msec\\nShred  %% 10.3f msec\\nQuery  
%% 10.3f msec\\n" LASTPHASE " %% 10.3f msec\\n\","\
-           "      dbl(time_compile)/1000.0, dbl(time_shred)/1000.0, 
dbl(time_exec - time_shred)/1000.0, dbl(time_print)/1000.0);\n"
+           "      dbl(time_compile)/1000.0, dbl(time_shred)/1000.0, 
dbl(time_exec - time_shred)/1000.0, dbl(time_print := usec() - 
time_print)/1000.0);\n"
 const char* PFstopMIL(int statement_type) {
     return (statement_type==0)?
                (PF_STOPMIL_RDONLY):


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to