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

Modified Files:
      Tag: XQuery_0-16
        milprint_summer.c 
Log Message:
* implement pftijah collection locking in milprint_summer.



Index: milprint_summer.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/milprint_summer.c,v
retrieving revision 1.318.2.10
retrieving revision 1.318.2.11
diff -u -d -r1.318.2.10 -r1.318.2.11
--- milprint_summer.c   11 Feb 2007 11:43:42 -0000      1.318.2.10
+++ milprint_summer.c   16 Feb 2007 10:51:21 -0000      1.318.2.11
@@ -8051,6 +8051,10 @@
                 "    var optbat := new(str,str,32);\n");
 
          milprintf(f,
+               "    var coll := collName;\n"
+               "    if ( optbat.exist(\"collection\") ) { coll := 
optbat.find(\"collection\"); }\n"
+               "    tijah_lock := tj_get_collection_lock(coll);\n"
+               "    lock_set(tijah_lock);\n"
                "    var startNodes;\n"
                "    iter := iter%03u.materialize(ipik%03u);\n"
                "    if (iter.count() > 0) {\n"  
@@ -8062,8 +8066,6 @@
                "        iter := iter.tmark([EMAIL PROTECTED]);\n"
                "        item := item.tmark([EMAIL PROTECTED]);\n"
                "        kind := kind.tmark([EMAIL PROTECTED]);\n"
-               "        var coll := collName;\n"
-               "        if ( optbat.exist(\"collection\") ) { coll := 
optbat.find(\"collection\"); }\n"
                "        var xdoc_name := bat(\"tj_\" + coll + 
\"_doc_name\");\n"
                "        var xdoc_firstpre := bat(\"tj_\" + coll + 
\"_doc_firstpre\");\n"
                "        var xpfpre := bat(\"tj_\" + coll + \"_pfpre\");\n"
@@ -8086,6 +8088,7 @@
                 "    var frag := [find_lower](const 
docpre.reverse().mark([EMAIL PROTECTED]), item);\n"
                 "    item := item.join(pfpre).sort().tmark();\n"
                 "    var needed_docs := bat(\"tj_\" + collName + 
\"_doc_name\").semijoin(frag.tunique());\n"
+               "    lock_unset(tijah_lock); tijah_lock := lock_nil;\n"
                 "    var loaded_docs := ws.fetch(OPEN_NAME).reverse();\n"
                 "    var docs_to_load := 
kdiff(needed_docs.reverse(),loaded_docs).hmark([EMAIL PROTECTED]);\n"
                "    ws_opendoc(ws, docs_to_load);\n"
@@ -10923,10 +10926,11 @@
 #ifdef HAVE_PFTIJAH
        "\n"
        "var tID := [EMAIL PROTECTED]; # start counter at an arbitrary number\n"
-       "var tijah_tID := new(void,oid).seqbase([EMAIL PROTECTED]);\n"
-       "var tijah_frag := new(void,oid).seqbase([EMAIL PROTECTED]);\n"
-       "var tijah_pre := new(void,oid).seqbase([EMAIL PROTECTED]);\n"
+       "var tijah_tID   := new(void,oid).seqbase([EMAIL PROTECTED]);\n"
+       "var tijah_frag  := new(void,oid).seqbase([EMAIL PROTECTED]);\n"
+       "var tijah_pre   := new(void,oid).seqbase([EMAIL PROTECTED]);\n"
        "var tijah_score := new(void,dbl).seqbase([EMAIL PROTECTED]);\n"
+       "var tijah_lock  := lock_nil; # pftijah collection lock\n"
 #endif
         "\n"
         "# value containers for literal values\n"
@@ -11059,6 +11063,12 @@
 "if (genType.search(\"debug\") >= 0) 
print(item.slice(0,10).col_name(\"tot_items_\"+str(item.count())));\n" 
 */
 
+#ifdef HAVE_PFTIJAH
+#define PF_STOP_PFTIJAH " if (not(isnil(tijah_lock))) 
lock_unset(tijah_lock);\n"
+#else
+#define PF_STOP_PFTIJAH " \n"
+#endif
+
 #define PF_STOPMIL_START \
            "  time_print := usec();\n"\
            "  time_exec := time_print - time_start;\n"
@@ -11077,6 +11087,7 @@
            " if (not(isnil(err))) ws_log(ws, err);\n"\
            " ws_destroy(ws);\n"\
            "}\n"\
+          PF_STOP_PFTIJAH\
            "if (not(isnil(err))) ERROR(err);\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\","\


-------------------------------------------------------------------------
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