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