Changeset: 8da58f3c3650 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=8da58f3c3650
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        monetdb5/modules/mal/wlc.c
        monetdb5/optimizer/opt_wlc.c
        sql/backends/monet5/wlr.c
        sql/backends/monet5/wlr.mal
        sql/scripts/60_wlcr.sql
        sql/test/BugTracker-2014/Tests/querylog.Bug-3607.stable.out
        sql/test/Dump/Tests/dump.stable.out
        sql/test/Tests/systemfunctions.stable.out
        sql/test/Tests/systemfunctions.stable.out.int128
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
        sql/test/leaks/Tests/check1.stable.out
        sql/test/leaks/Tests/check1.stable.out.int128
        sql/test/wlcr/Tests/wlc70.py
        sql/test/wlcr/Tests/wlc70.stable.out
        sql/test/wlcr/Tests/wlr70.py
Branch: wlcr
Log Message:

Fixing the temporal roll-forward of the wlcr
- also fix the optimizer to make sure the wlcr is used before the 
garbagecollector correctly


diffs (truncated from 503 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -8769,6 +8769,7 @@ Ready.
 [ "wlr",       "replicate",    "pattern wlr.replicate(dbname:str, id:lng):void 
",      "WLRreplicate;",        "Roll the snapshot forward to a specific 
transaction id"        ]
 [ "wlr",       "replicate",    "pattern wlr.replicate(dbname:str, id:sht):void 
",      "WLRreplicate;",        "Roll the snapshot forward to a specific 
transaction id"        ]
 [ "wlr",       "replicate",    "pattern wlr.replicate(dbname:str, 
ts:timestamp):void ",        "WLRreplicate;",        "Roll the snapshot forward 
to the time TS"      ]
+[ "wlr",       "replicate",    "pattern wlr.replicate(ts:timestamp):void ",    
"WLRreplicate;",        "Roll the snapshot forward to an up-to-date clone"      
]
 [ "wlr",       "revoke",       "pattern wlr.revoke(sname:str, tbl:str, 
grantee:str, privs:int, cname:str, grant:int, grantor:int):void ",      
"WLRgeneric;",  "Catalog operation revoke"      ]
 [ "wlr",       "revoke_function",      "pattern wlr.revoke_function(sname:str, 
fcnid:int, grantee:str, privs:int, grant:int, grantor:int):void ",      
"WLRgeneric;",  "Catalog operation revoke_function"     ]
 [ "wlr",       "revoke_roles", "pattern wlr.revoke_roles(sname:str, auth:str, 
grantor:int, admin:int):void ",  "WLRgeneric;",  "Catalog operation 
revoke_roles"        ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -11134,6 +11134,7 @@ Ready.
 [ "wlr",       "replicate",    "pattern wlr.replicate(dbname:str, id:lng):void 
",      "WLRreplicate;",        "Roll the snapshot forward to a specific 
transaction id"        ]
 [ "wlr",       "replicate",    "pattern wlr.replicate(dbname:str, id:sht):void 
",      "WLRreplicate;",        "Roll the snapshot forward to a specific 
transaction id"        ]
 [ "wlr",       "replicate",    "pattern wlr.replicate(dbname:str, 
ts:timestamp):void ",        "WLRreplicate;",        "Roll the snapshot forward 
to the time TS"      ]
+[ "wlr",       "replicate",    "pattern wlr.replicate(ts:timestamp):void ",    
"WLRreplicate;",        "Roll the snapshot forward to an up-to-date clone"      
]
 [ "wlr",       "revoke",       "pattern wlr.revoke(sname:str, tbl:str, 
grantee:str, privs:int, cname:str, grant:int, grantor:int):void ",      
"WLRgeneric;",  "Catalog operation revoke"      ]
 [ "wlr",       "revoke_function",      "pattern wlr.revoke_function(sname:str, 
fcnid:int, grantee:str, privs:int, grant:int, grantor:int):void ",      
"WLRgeneric;",  "Catalog operation revoke_function"     ]
 [ "wlr",       "revoke_roles", "pattern wlr.revoke_roles(sname:str, auth:str, 
grantor:int, admin:int):void ",  "WLRgeneric;",  "Catalog operation 
revoke_roles"        ]
diff --git a/monetdb5/modules/mal/wlc.c b/monetdb5/modules/mal/wlc.c
--- a/monetdb5/modules/mal/wlc.c
+++ b/monetdb5/modules/mal/wlc.c
@@ -41,7 +41,7 @@
  * IMPLEMENTATION
  * The underlying assumption of the techniques deployed is that the database
  * resides on a proper (global/distributed) file system to guarantees recovery 
- * from most storage system related failures, e.g. using RAID disks or 
LSFsystems.
+ * from most storage system related failures, e.g. using RAID disks or LSF 
systems.
  *
  * A database can be set into 'master' mode only once using the SQL command:
  * CALL master()
diff --git a/monetdb5/optimizer/opt_wlc.c b/monetdb5/optimizer/opt_wlc.c
--- a/monetdb5/optimizer/opt_wlc.c
+++ b/monetdb5/optimizer/opt_wlc.c
@@ -7,9 +7,7 @@
  */
 
 /* author M.Kersten
- * This optimizer prepares a MAL block for delayed locking
- * The objects are mapped to a fixed hash table to speedup testing later.
- * We don't need the actual name of the objects
+ * This optimizer prepares the code for workload-capture-replay processing.
  */
 #include "monetdb_config.h"
 #include "opt_wlc.h"
@@ -34,9 +32,15 @@ OPTwlcImplementation(Client cntxt, MalBl
        limit= mb->stop;
        slimit = mb->ssize;
 
-       /* check if we are dealing with an update */
+       /* check if we are dealing with an update  and move definition to 
front*/
        for (i = 0; i < limit; i++) {
                p = old[i];
+               if( getModuleId(p) == querylogRef && getFunctionId(p) == 
defineRef){
+                       def = p;
+                       for(j = i; j>1; j--)
+                               old[j]= old[j-1];
+                       old[j]= def;
+               }
                if( getModuleId(p) == sqlcatalogRef)
                        query = 0;
                if( getModuleId(p) == sqlRef && 
@@ -46,6 +50,7 @@ OPTwlcImplementation(Client cntxt, MalBl
                          getFunctionId(p) == clear_tableRef ))
                        query = 0;
        }
+       def = 0;
 
        if(query) // nothing to log
                return MAL_SUCCEED;
@@ -69,13 +74,13 @@ OPTwlcImplementation(Client cntxt, MalBl
                        updates++;
                } else
                /* the catalog operations all need to be re-executed */
-               if( getModuleId(p) == sqlcatalogRef &&
+               if( def && getModuleId(p) == sqlcatalogRef &&
                        strcmp( getVarConstant(mb,getArg(p,1)).val.sval, "tmp") 
!= 0 ){
                        assert( def);// should always be there
                        setFunctionId(def,catalogRef);
                        updates++;
                } else
-               if( getModuleId(p) == sqlRef && getFunctionId(p) == 
clear_tableRef &&
+               if( def && getModuleId(p) == sqlRef && getFunctionId(p) == 
clear_tableRef &&
                        strcmp( getVarConstant(mb,getArg(p,1)).val.sval, "tmp") 
!= 0 ){
                        setFunctionId(def,actionRef);
                                assert(def);
@@ -86,7 +91,7 @@ OPTwlcImplementation(Client cntxt, MalBl
                                pushInstruction(mb,q);
                                updates++;
                } else
-               if( getModuleId(p) == sqlRef && 
+               if( def && getModuleId(p) == sqlRef && 
                        ( getFunctionId(p) == appendRef  ||
                          getFunctionId(p) == updateRef  ||
                          getFunctionId(p) == deleteRef  ||
diff --git a/sql/backends/monet5/wlr.c b/sql/backends/monet5/wlr.c
--- a/sql/backends/monet5/wlr.c
+++ b/sql/backends/monet5/wlr.c
@@ -405,11 +405,13 @@ WLRreplicate(Client cntxt, MalBlkPtr mb,
                                throw(SQL,"wlr.replicate","Master and replicate 
should be different");
                        strncpy(wlr_master, *getArgReference_str(stk,pci,1), 
IDLENGTH);
                }
-       } else  
+       } else  {
+               timelimit[0]=0;
                wlr_limit = -1;
+       }
 
        if( getArgType(mb, pci, pci->argc-1) == TYPE_timestamp){
-               timestamp_tz_tostr(&timelimit, &size, (timestamp*) 
getArgReference(stk,pci,2), &tzone_local);
+               timestamp_tz_tostr(&timelimit, &size, (timestamp*) 
getArgReference(stk,pci,1), &tzone_local);
                mnstr_printf(cntxt->fdout,"#time limit %s\n",timelimit);
        } else
        if( getArgType(mb, pci, pci->argc-1) == TYPE_bte)
@@ -526,6 +528,8 @@ WLRquery(Client cntxt, MalBlkPtr mb, Mal
        // execute the query in replay mode when required.
        // we need to get rid of the escaped quote.
        x = qtxt= (char*) GDKmalloc(strlen(qry) +1);
+       if( qtxt == NULL)
+               throw(SQL,"wlr.query",MAL_MALLOC_FAIL);
        for(y = qry; *y; y++){
                if( *y == '\\' ){
                        if( *(y+1) ==  '\'')
diff --git a/sql/backends/monet5/wlr.mal b/sql/backends/monet5/wlr.mal
--- a/sql/backends/monet5/wlr.mal
+++ b/sql/backends/monet5/wlr.mal
@@ -10,6 +10,10 @@ pattern replicate()
 address WLRreplicate
 comment "Roll the snapshot forward to an up-to-date clone";
 
+pattern replicate(ts:timestamp)
+address WLRreplicate
+comment "Roll the snapshot forward to an up-to-date clone";
+
 pattern replicate(dbname:str)
 address WLRreplicate
 comment "Roll the snapshot forward to an up-to-date clone";
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
@@ -29,6 +29,9 @@ external name wlc."getmastertick";
 create procedure replicate()
 external name wlr.replicate;
 
+create procedure replicate(pointintime timestamp)
+external name wlr.replicate;
+
 create procedure replicate(dbname string)
 external name wlr.replicate;
 
diff --git a/sql/test/BugTracker-2014/Tests/querylog.Bug-3607.stable.out 
b/sql/test/BugTracker-2014/Tests/querylog.Bug-3607.stable.out
--- a/sql/test/BugTracker-2014/Tests/querylog.Bug-3607.stable.out
+++ b/sql/test/BugTracker-2014/Tests/querylog.Bug-3607.stable.out
@@ -74,27 +74,28 @@ Ready.
 % tinyint # type
 % 1 # length
 [ 1    ]
-#select owner, query, pipe, plan, mal from sys.querylog_catalog;
-% .querylog_catalog,   .querylog_catalog,      .querylog_catalog,      
.querylog_catalog,      .querylog_catalog # table_name
-% owner,       query,  pipe,   plan,   mal # name
-% clob,        clob,   clob,   clob,   int # type
-% 7,   9,      12,     10,     2 # length
-[ "monetdb",   "select 1;",    "default_pipe", "user.s10_1",   45      ]
+#select owner, query, pipe, plan from sys.querylog_catalog;
+% .querylog_catalog,   .querylog_catalog,      .querylog_catalog,      
.querylog_catalog # table_name
+% owner,       query,  pipe,   plan # name
+% clob,        clob,   clob,   clob # type
+% 7,   58,     12,     10 # length
+[ "monetdb",   "select 1;",    "default_pipe", "user.s10_1"    ]
+[ "monetdb",   "select owner, query, pipe, plan from sys.querylog_catalog;",   
"default_pipe", "user.s12_1"    ]
 #select arguments, tuples from sys.querylog_calls;
 % .querylog_calls,     .querylog_calls # table_name
 % arguments,   tuples # name
 % clob,        bigint # type
 % 18,  1 # length
 [ "user.s10_1():void;",        1       ]
-[ "user.s12_1():void;",        5       ]
-#select owner, query, pipe, plan, mal, arguments, tuples from 
sys.querylog_history;
-% .querylog_history,   .querylog_history,      .querylog_history,      
.querylog_history,      .querylog_history,      .querylog_history,      
.querylog_history # table_name
-% owner,       query,  pipe,   plan,   mal,    arguments,      tuples # name
-% clob,        clob,   clob,   clob,   int,    clob,   bigint # type
-% 7,   9,      12,     10,     2,      18,     1 # length
-[ "monetdb",   "select 1;",    "default_pipe", "user.s10_1",   45,     
"user.s10_1():void;",   1       ]
-[ "monetdb",   "select 1;",    "default_pipe", "user.s10_1",   45,     
"user.s12_1():void;",   5       ]
-[ "monetdb",   "select 1;",    "default_pipe", "user.s10_1",   45,     
"user.s14_1():void;",   2       ]
+[ "user.s12_1():void;",        4       ]
+#select owner, query, pipe, plan, arguments, tuples from sys.querylog_history;
+% .querylog_history,   .querylog_history,      .querylog_history,      
.querylog_history,      .querylog_history,      .querylog_history # table_name
+% owner,       query,  pipe,   plan,   arguments,      tuples # name
+% clob,        clob,   clob,   clob,   clob,   bigint # type
+% 7,   58,     12,     10,     18,     1 # length
+[ "monetdb",   "select 1;",    "default_pipe", "user.s10_1",   
"user.s10_1():void;",   1       ]
+[ "monetdb",   "select owner, query, pipe, plan from sys.querylog_catalog;",   
"default_pipe", "user.s12_1",   "user.s12_1():void;",   4       ]
+[ "monetdb",   "select arguments, tuples from sys.querylog_calls;",    
"default_pipe", "user.s14_1",   "user.s14_1():void;",   2       ]
 #select * from sys.querylog_history;
 % .querylog_history,   .querylog_history,      .querylog_history,      
.querylog_history,      .querylog_history,      .querylog_history,      
.querylog_history,      .querylog_history,      .querylog_history,      
.querylog_history,      .querylog_history,      .querylog_history,      
.querylog_history,      .querylog_history,      .querylog_history,      
.querylog_history # table_name
 % id,  owner,  defined,        query,  pipe,   plan,   mal,    optimize,       
start,  stop,   arguments,      tuples, run,    ship,   cpu,    io # name
diff --git a/sql/test/Dump/Tests/dump.stable.out 
b/sql/test/Dump/Tests/dump.stable.out
--- a/sql/test/Dump/Tests/dump.stable.out
+++ b/sql/test/Dump/Tests/dump.stable.out
@@ -89,7 +89,7 @@ CREATE TABLE "sys"."typestest" (
        "uuid"           UUID
 );
 COPY 1 RECORDS INTO "sys"."typestest" FROM stdin USING DELIMITERS 
'\t','\n','"';
-true   10      10000   1000000 10000000000     1e+30   1e+20   1.000   
123456789       12345.678       3.1415  3.1415  3.1415  2009-04-15      24      
18      3       1728000.000     108000.000      120000.000      100000.000      
36000.000       6000.000        2000.000        600.000 100.000 10.000  
1995-07-15 07:30:00.000000      1995-07-15 07:30:00.00000       1995-07-15 
07:30:00.000000+00:00        1995-07-15 07:30:00.00000+00:00 07:30:00        
07:30:00.00000  07:30:00+00:00  07:30:00.00000+00:00    123456  123456  
"123456"        "123456"        "x"     "varchar"       "0123456789"    
127.0.0.0       127.127.127.255 {"a": 123}      {"b": 456}      
https://www.monetdb.org/Documentation/Manuals/SQLreference/BuiltinTypes 
https://www.monetdb.org/Documentation/Manuals/SQLreference/URLtype      
ae106ad4-81fd-4f1a-85e8-5efface60da4
+true   10      10000   1000000 10000000000     1e+30   1e+20   1.000   
123456789       12345.678       3.1415  3.1415  3.1415  2009-04-15      24      
18      3       1728000.000     108000.000      120000.000      100000.000      
36000.000       6000.000        2000.000        600.000 100.000 10.000  
"1995-07-15 07:30:00.000000"    "1995-07-15 07:30:00.00000"     "1995-07-15 
07:30:00.000000+00:00"      "1995-07-15 07:30:00.00000+00:00"       07:30:00    
    07:30:00.00000  07:30:00+00:00  07:30:00.00000+00:00    123456  123456  
"123456"        "123456"        "x"     "varchar"       "0123456789"    
127.0.0.0       127.127.127.255 {"a": 123}      {"b": 456}      
https://www.monetdb.org/Documentation/Manuals/SQLreference/BuiltinTypes 
https://www.monetdb.org/Documentation/Manuals/SQLreference/URLtype      
ae106ad4-81fd-4f1a-85e8-5efface60da4
 CREATE TABLE "sys"."keytest1" (
        "key1" INTEGER       NOT NULL,
        "key2" INTEGER       NOT NULL,
diff --git a/sql/test/Tests/systemfunctions.stable.out 
b/sql/test/Tests/systemfunctions.stable.out
--- a/sql/test/Tests/systemfunctions.stable.out
+++ b/sql/test/Tests/systemfunctions.stable.out
@@ -1379,6 +1379,7 @@ Ready.
 [ "sys",       "replace",      3,      "clob", ""      ]
 [ "sys",       "replicabeat",  0,      "int",  "create procedure 
replicabeat(duration integer)\nexternal name wlr.\"setreplicabeat\";" ]
 [ "sys",       "replicaclock", 0,      "clob", "create function replicaclock() 
returns string\nexternal name wlr.\"getreplicaclock\";" ]
+[ "sys",       "replicate",    0,      "timestamp",    "create procedure 
replicate(pointintime timestamp)\nexternal name wlr.replicate;"       ]
 [ "sys",       "replicate",    0,      "clob", "create procedure 
replicate(dbname string)\nexternal name wlr.replicate;"       ]
 [ "sys",       "replicate",    0,      "clob", "create procedure 
replicate(dbname string, pointintime timestamp)\nexternal name wlr.replicate;"  
      ]
 [ "sys",       "replicate",    1,      "timestamp",    ""      ]
diff --git a/sql/test/Tests/systemfunctions.stable.out.int128 
b/sql/test/Tests/systemfunctions.stable.out.int128
--- a/sql/test/Tests/systemfunctions.stable.out.int128
+++ b/sql/test/Tests/systemfunctions.stable.out.int128
@@ -1444,6 +1444,7 @@ Ready.
 [ "sys",       "replace",      3,      "clob", ""      ]
 [ "sys",       "replicabeat",  0,      "int",  "create procedure 
replicabeat(duration integer)\nexternal name wlr.\"setreplicabeat\";" ]
 [ "sys",       "replicaclock", 0,      "clob", "create function replicaclock() 
returns string\nexternal name wlr.\"getreplicaclock\";" ]
+[ "sys",       "replicate",    0,      "timestamp",    "create procedure 
replicate(pointintime timestamp)\nexternal name wlr.replicate;"       ]
 [ "sys",       "replicate",    0,      "clob", "create procedure 
replicate(dbname string)\nexternal name wlr.replicate;"       ]
 [ "sys",       "replicate",    0,      "clob", "create procedure 
replicate(dbname string, pointintime timestamp)\nexternal name wlr.replicate;"  
      ]
 [ "sys",       "replicate",    1,      "timestamp",    ""      ]
diff --git a/sql/test/emptydb/Tests/check.stable.out 
b/sql/test/emptydb/Tests/check.stable.out
--- a/sql/test/emptydb/Tests/check.stable.out
+++ b/sql/test/emptydb/Tests/check.stable.out
@@ -998,6 +998,7 @@ create function sys.rejects() returns ta
 create procedure replicabeat(duration integer) external name 
wlr."setreplicabeat";
 create function replicaclock() returns string external name 
wlr."getreplicaclock";
 create procedure replicate() external name wlr.replicate;
+create procedure replicate(pointintime timestamp) external name wlr.replicate;
 create procedure replicate(dbname string) external name wlr.replicate;
 create procedure replicate(dbname string, pointintime timestamp) external name 
wlr.replicate;
 create procedure replicate(dbname string, id tinyint) external name 
wlr.replicate;
@@ -2264,6 +2265,7 @@ drop function pcre_replace(string, strin
 [ "sys",       "replicate",    "create procedure replicate(dbname string, id 
smallint) external name wlr.replicate;",  "wlr",  1,      2,      true,   
false,  false   ]
 [ "sys",       "replicate",    "create procedure replicate(dbname string, id 
tinyint) external name wlr.replicate;",   "wlr",  1,      2,      true,   
false,  false   ]
 [ "sys",       "replicate",    "create procedure replicate(dbname string, 
pointintime timestamp) external name wlr.replicate;",        "wlr",  1,      2, 
     true,   false,  false   ]
+[ "sys",       "replicate",    "create procedure replicate(pointintime 
timestamp) external name wlr.replicate;",       "wlr",  1,      2,      true,   
false,  false   ]
 [ "sys",       "replicatick",  "create function replicatick() returns bigint 
external name wlr.\"getreplicatick\";",   "wlr",  1,      1,      false,  
false,  false   ]
 [ "sys",       "restart",      "restart",      "sql",  0,      1,      false,  
false,  false   ]
 [ "sys",       "resume",       "create procedure sys.resume(tag bigint) 
external name sql.sysmon_resume;",     "sql",  1,      2,      true,   false,  
false   ]
@@ -3826,6 +3828,7 @@ drop function pcre_replace(string, strin
 [ "sys",       "replicaclock", NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
 [ "sys",       "replicate",    NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
 [ "sys",       "replicate",    NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
+[ "sys",       "replicate",    NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
 [ "sys",       "replicate",    "id",   "bigint",       64,     0,      1,      
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    
]
 [ "sys",       "replicate",    "id",   "int",  32,     0,      1,      NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
 [ "sys",       "replicate",    "id",   "smallint",     16,     0,      1,      
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    
]
@@ -6251,6 +6254,7 @@ drop function pcre_replace(string, strin
 [ "replicate"  ]
 [ "replicate"  ]
 [ "replicate"  ]
+[ "replicate"  ]
 [ "replicatick"        ]
 [ "restart"    ]
 [ "resume"     ]
diff --git a/sql/test/emptydb/Tests/check.stable.out.32bit 
b/sql/test/emptydb/Tests/check.stable.out.32bit
--- a/sql/test/emptydb/Tests/check.stable.out.32bit
+++ b/sql/test/emptydb/Tests/check.stable.out.32bit
@@ -1008,6 +1008,7 @@ create function sys.rejects() returns ta
 create procedure replicabeat(duration integer) external name 
wlr."setreplicabeat";
 create function replicaclock() returns string external name 
wlr."getreplicaclock";
 create procedure replicate() external name wlr.replicate;
+create procedure replicate(pointintime timestamp) external name wlr.replicate;
 create procedure replicate(dbname string) external name wlr.replicate;
 create procedure replicate(dbname string, pointintime timestamp) external name 
wlr.replicate;
 create procedure replicate(dbname string, id tinyint) external name 
wlr.replicate;
@@ -2274,6 +2275,7 @@ drop function pcre_replace(string, strin
 [ "sys",       "replicate",    "create procedure replicate(dbname string, id 
smallint) external name wlr.replicate;",  "wlr",  1,      2,      true,   
false,  false   ]
 [ "sys",       "replicate",    "create procedure replicate(dbname string, id 
tinyint) external name wlr.replicate;",   "wlr",  1,      2,      true,   
false,  false   ]
 [ "sys",       "replicate",    "create procedure replicate(dbname string, 
pointintime timestamp) external name wlr.replicate;",        "wlr",  1,      2, 
     true,   false,  false   ]
+[ "sys",       "replicate",    "create procedure replicate(pointintime 
timestamp) external name wlr.replicate;",       "wlr",  1,      2,      true,   
false,  false   ]
 [ "sys",       "replicatick",  "create function replicatick() returns bigint 
external name wlr.\"getreplicatick\";",   "wlr",  1,      1,      false,  
false,  false   ]
 [ "sys",       "restart",      "restart",      "sql",  0,      1,      false,  
false,  false   ]
 [ "sys",       "resume",       "create procedure sys.resume(tag bigint) 
external name sql.sysmon_resume;",     "sql",  1,      2,      true,   false,  
false   ]
@@ -3836,6 +3838,7 @@ drop function pcre_replace(string, strin
 [ "sys",       "replicaclock", NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
 [ "sys",       "replicate",    NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
 [ "sys",       "replicate",    NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
+[ "sys",       "replicate",    NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
 [ "sys",       "replicate",    "id",   "bigint",       64,     0,      1,      
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    
]
 [ "sys",       "replicate",    "id",   "int",  32,     0,      1,      NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    ]
 [ "sys",       "replicate",    "id",   "smallint",     16,     0,      1,      
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL    
]
@@ -6261,6 +6264,7 @@ drop function pcre_replace(string, strin
 [ "replicate"  ]
 [ "replicate"  ]
 [ "replicate"  ]
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to