Changeset: 37c4e93fe2b2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=37c4e93fe2b2
Modified Files:
        monetdb5/modules/mal/oltp.c
        monetdb5/optimizer/opt_oltp.c
Branch: oltp
Log Message:

Set proper entry in lock table


diffs (75 lines):

diff --git a/monetdb5/modules/mal/oltp.c b/monetdb5/modules/mal/oltp.c
--- a/monetdb5/modules/mal/oltp.c
+++ b/monetdb5/modules/mal/oltp.c
@@ -133,10 +133,10 @@ OLTPlock(Client cntxt, MalBlkPtr mb, Mal
                                lck= getVarConstant(mb, getArg(pci,i)).val.ival;
                                // only set the write locks
                                if( lck > 0){
-                                       oltp_locks[i].cntxt = cntxt;
-                                       oltp_locks[i].start = clk;
-                                       oltp_locks[i].used++;
-                                       oltp_locks[i].locked = 1;
+                                       oltp_locks[lck].cntxt = cntxt;
+                                       oltp_locks[lck].start = clk;
+                                       oltp_locks[lck].used++;
+                                       oltp_locks[lck].locked = 1;
                                }
                        }
                        //OLTPdump_(cntxt,"#grabbed the locks\n");
diff --git a/monetdb5/optimizer/opt_oltp.c b/monetdb5/optimizer/opt_oltp.c
--- a/monetdb5/optimizer/opt_oltp.c
+++ b/monetdb5/optimizer/opt_oltp.c
@@ -15,7 +15,7 @@
 #include "opt_oltp.h"
 
 static void
-addLock(OLTPlocks locks, MalBlkPtr mb, InstrPtr p, int sch, int tbl)
+addLock(Client cntxt, OLTPlocks locks, MalBlkPtr mb, InstrPtr p, int sch, int 
tbl)
 {      BUN hash;
        char *r,*s;
 
@@ -24,6 +24,12 @@ addLock(OLTPlocks locks, MalBlkPtr mb, I
        hash = (strHash(r)  ^ strHash(s)) % MAXOLTPLOCKS ;
        hash += (hash == 0);
        locks[hash] = 1;
+#ifdef _DEBUG_OLP_
+       mnstr_printf(cntxt->fdout,"#addLock %s "BUNFMT", %s "BUNFMT" combined 
"BUNFMT"\n",
+               r, strHash(r), s, strHash(s),hash);
+#else
+       (void) cntxt;
+#endif
 }
 
 int
@@ -51,25 +57,25 @@ OPToltpImplementation(Client cntxt, MalB
        for (i = 0; i < limit; i++) {
                p = old[i];
                if( getModuleId(p) == sqlRef && getFunctionId(p) == bindRef)
-                       addLock(rlocks, mb, p, p->retc + 1, p->retc + 2);
+                       addLock(cntxt,rlocks, mb, p, p->retc + 1, p->retc + 2);
                else
                if( getModuleId(p) == sqlRef && getFunctionId(p) == bindidxRef)
-                       addLock(rlocks, mb, p, p->retc + 1, p->retc + 2);
+                       addLock(cntxt,rlocks, mb, p, p->retc + 1, p->retc + 2);
                else
                if( getModuleId(p) == sqlRef && getFunctionId(p) == appendRef ){
-                       addLock(wlocks, mb, p, p->retc + 1, p->retc + 2);
+                       addLock(cntxt,wlocks, mb, p, p->retc + 1, p->retc + 2);
                        updates++;
                } else
                if( getModuleId(p) == sqlRef && getFunctionId(p) == updateRef ){
-                       addLock(wlocks, mb, p, p->retc + 1, p->retc + 2);
+                       addLock(cntxt,wlocks, mb, p, p->retc + 1, p->retc + 2);
                        updates++;
                } else
                if( getModuleId(p) == sqlRef && getFunctionId(p) == deleteRef ){
-                       addLock(wlocks, mb, p, p->retc + 1, p->retc + 2);
+                       addLock(cntxt,wlocks, mb, p, p->retc + 1, p->retc + 2);
                        updates++;
                } else
                if( getModuleId(p) == sqlcatalogRef ){
-                       addLock(wlocks, mb, p, 0,0);
+                       addLock(cntxt,wlocks, mb, p, 0,0);
                        updates++;
                }
        }
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to