MonetDB: wlcr - Handle update propagations

2017-01-10 Thread Martin Kersten
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.

2017-01-10 Thread Martin Kersten
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

2017-01-10 Thread Martin Kersten
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

2017-01-10 Thread Hannes Muehleisen
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

2017-01-10 Thread Hannes Muehleisen
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