MonetDB: wlcr - Handle update propagations
Changeset: 7b37fdc8255d for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=7b37fdc8255d Modified Files: sql/backends/monet5/sql_wlcr.c sql/scripts/60_wlcr.sql Branch: wlcr Log Message: Handle update propagations append, clear table and deletion. diffs (290 lines): diff --git a/sql/backends/monet5/sql_wlcr.c b/sql/backends/monet5/sql_wlcr.c --- a/sql/backends/monet5/sql_wlcr.c +++ b/sql/backends/monet5/sql_wlcr.c @@ -38,15 +38,38 @@ static int wlcr_replaybatches; static MT_Id wlcr_thread; static str -WLCRreplayinit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) +CLONEgetlogfile( Client cntxt, MalBlkPtr mb) +{ + mvc *m = NULL; + str msg; + atom *a; + + if ((msg = getSQLContext(cntxt, mb, &m, NULL)) != NULL) + return msg; + if ((msg = checkSQLContext(cntxt)) != NULL) + return msg; + a = stack_get_var(m, "replaylog"); + if (!a) { + throw(SQL, "sql.getVariable", "variable 'replaylog' unknown"); + } + cntxt->wlcr_replaylog = GDKstrdup(a->data.val.sval); + return MAL_SUCCEED; +} + +static str +CLONEinit(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) { int i = 1, j,k; char path[PATHLENGTH]; str dbname,dir; FILE *fd; + str msg; (void) cntxt; (void) k; + msg = CLONEgetlogfile(cntxt, mb); + if( msg) + return msg; if (getArgType(mb, pci, i) == TYPE_str){ dbname = *getArgReference_str(stk,pci,i); @@ -144,8 +167,10 @@ WLCRprocess(void *arg) if( parseMAL(c, c->curprg, 1, 1) || mb->errors){ mnstr_printf(c->fdout,"#wlcr.process:parsing failed '%s'\n",path); } + mb = c->curprg->def; // needed q= getInstrPtr(mb, mb->stop-1); if ( getModuleId(q) == cloneRef && getFunctionId(q) ==execRef){ + pushEndInstruction(mb); printFunction(c->fdout, mb, 0, LIST_MAL_DEBUG ); // execute this block chkTypes(c->fdout,c->nspace, mb, FALSE); @@ -162,8 +187,8 @@ WLCRprocess(void *arg) mnstr_printf(c->fdout,"#wlcr.process transaction commit failed"); // cleanup + resetMalBlk(mb, 1); trimMalVariables(mb, NULL); - resetMalBlk(mb, 1); pc = 0; } } while( mb->errors == 0 && pc != mb->stop); @@ -184,7 +209,7 @@ WLCRreplay(Client cntxt, MalBlkPtr mb, M throw(SQL,"wlcr.replay","System already in replay mode"); } cntxt->wlcr_mode = WLCR_REPLAY; - msg = WLCRreplayinit(cntxt, mb, stk, pci); + msg = CLONEinit(cntxt, mb, stk, pci); if( msg) return msg; @@ -195,12 +220,12 @@ WLCRreplay(Client cntxt, MalBlkPtr mb, M } close_stream(fd); + WLCRprocess((void*) cntxt); /* - WLCRprocess((void*) cntxt); -*/ if (MT_create_thread(&wlcr_thread, WLCRprocess, (void*) cntxt, MT_THR_JOINABLE) < 0) { throw(SQL,"wlcr.replay","replay process can not be started\n"); } +*/ return MAL_SUCCEED; } @@ -213,7 +238,7 @@ WLCRclone(Client cntxt, MalBlkPtr mb, Ma if( cntxt->wlcr_mode == WLCR_CLONE || cntxt->wlcr_mode == WLCR_REPLAY){ throw(SQL,"wlcr.clone","System already in synchronization mode"); } - msg = WLCRreplayinit(cntxt, mb, stk, pci); + msg = CLONEinit(cntxt, mb, stk, pci); snprintf(path,PATHLENGTH,"%s%cwlcr", wlcr_master, DIR_SEP); fd= open_rstream(path); if( fd == NULL){ @@ -222,7 +247,7 @@ WLCRclone(Client cntxt, MalBlkPtr mb, Ma close_stream(fd); cntxt->wlcr_mode = WLCR_CLONE; - msg = WLCRreplayinit(cntxt, mb, stk, pci); + msg = CLONEinit(cntxt, mb, stk, pci); if( msg) return msg; /* @@ -262,14 +287,16 @@ CLONEexec(Client cntxt, MalBlkPtr mb, Ma str CLONEquery(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) { str qry = *getArgReference_str(stk,pci,1); + str msg = MAL_SUCCEED; + lng clk = GDKms(); (void) mb; // execute the query in replay mode if( cntxt->wlcr_kind == WLCR_CATALOG || cntxt->wlcr_kind == WLCR_QUERY){ - mnstr_printf(cntxt->fdout,"#execute %s",qry); - return SQLstatementIntern(cntxt, &qry, "SQLstatement", TRUE, TRUE, NULL); + msg = SQLstatementIntern(cntxt, &qry, "SQLstatement", TRUE, TRUE, NULL); + mnstr_printf(cntxt->fdout,"# "LLFMT"ms\n",GDKms() - clk); } - return MAL_SUCCEED; + return msg;
MonetDB: wlcr - Keep the replaylog in a SQL variable.
Changeset: bc8c76dd4f2f for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bc8c76dd4f2f Modified Files: monetdb5/mal/mal_client.c monetdb5/mal/mal_client.h Branch: wlcr Log Message: Keep the replaylog in a SQL variable. diffs (32 lines): diff --git a/monetdb5/mal/mal_client.c b/monetdb5/mal/mal_client.c --- a/monetdb5/mal/mal_client.c +++ b/monetdb5/mal/mal_client.c @@ -244,6 +244,7 @@ MCinitClientRecord(Client c, oid user, b c->error_row = c->error_fld = c->error_msg = c->error_input = NULL; c->wlcr_kind = 0; c->wlcr = NULL; + c->wlcr_replaylog = NULL; #ifndef HAVE_EMBEDDED /* no authentication in embedded mode */ { str msg = AUTHgetUsername(&c->username, c); @@ -400,6 +401,9 @@ freeClient(Client c) freeMalBlk(c->wlcr); c->wlcr_kind = 0; c->wlcr = NULL; + if( c->wlcr_replaylog) + GDKfree(c->wlcr_replaylog); + c->wlcr_replaylog = NULL; } if (t) THRdel(t); /* you may perform suicide */ diff --git a/monetdb5/mal/mal_client.h b/monetdb5/mal/mal_client.h --- a/monetdb5/mal/mal_client.h +++ b/monetdb5/mal/mal_client.h @@ -176,6 +176,7 @@ typedef struct CLIENT { */ int wlcr_kind; int wlcr_mode; + str wlcr_replaylog; MalBlkPtr wlcr; /* * Errors during copy into are collected in a user specific column set ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: wlcr - User shorter commands
Changeset: 89da3ca01c36 for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=89da3ca01c36 Modified Files: sql/scripts/60_wlcr.sql Branch: wlcr Log Message: User shorter commands diffs (37 lines): diff --git a/sql/scripts/60_wlcr.sql b/sql/scripts/60_wlcr.sql --- a/sql/scripts/60_wlcr.sql +++ b/sql/scripts/60_wlcr.sql @@ -6,26 +6,25 @@ -- Workload Capture and Replay -create schema wlcr; -create procedure wlcr.master() +create procedure master() external name wlcr.master; -create procedure wlcr.master(threshold integer) +create procedure master(threshold integer) external name wlcr.master; -create procedure wlcr.replay() +create procedure replay() external name wlcr.replay; -create procedure wlcr.replay(threshold int) +create procedure replay(threshold int) external name wlcr.replay; -create procedure wlcr.replay(dbname string) +create procedure replay(dbname string) external name wlcr.replay; -create procedure wlcr.replay(dbname string, threshold int) +create procedure replay(dbname string, threshold int) external name wlcr.replay; -create procedure wlcr.clone(dbname string) +create procedure clone(dbname string) external name wlcr.clone; ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list
MonetDB: Dec2016 - new files, Bug 6134
Changeset: f0eaa26022fe for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f0eaa26022fe Added Files: sql/test/BugTracker-2017/Tests/all_dates.csv.gz sql/test/BugTracker-2017/Tests/heapextend.Bug-6134.sql.in Branch: Dec2016 Log Message: new files, Bug 6134 diffs (truncated from 1704 to 300 lines): diff --git a/sql/test/BugTracker-2017/Tests/all_dates.csv.gz b/sql/test/BugTracker-2017/Tests/all_dates.csv.gz new file mode 100644 index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..5b660b69ded583f9ba5235a6e32aa016a31820e7 GIT binary patch literal 92846 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
MonetDB: Dec2016 - Added test for Bug 6134
Changeset: d21bef4f8fdd for MonetDB URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=d21bef4f8fdd Modified Files: sql/test/BugTracker-2017/Tests/All Branch: Dec2016 Log Message: Added test for Bug 6134 diffs (8 lines): diff --git a/sql/test/BugTracker-2017/Tests/All b/sql/test/BugTracker-2017/Tests/All --- a/sql/test/BugTracker-2017/Tests/All +++ b/sql/test/BugTracker-2017/Tests/All @@ -1,3 +1,4 @@ shutdown.Bug-6182 avggroupbysq.Bug-6178 semijoinunion.Bug-6150 +heapextend.Bug-6134 ___ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list