Changeset: 16a9c790ec39 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=16a9c790ec39
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
        sql/backends/monet5/UDF/udf/Tests/udf-fuse.stable.out
        sql/backends/monet5/UDF/udf/Tests/udf-reverse.stable.out
        sql/test/BugTracker-2009/Tests/All
        sql/test/BugTracker-2009/Tests/copy_multiple_files.SF-2902320.stable.out
        sql/test/BugTracker-2009/Tests/join_topn.SF-2654133.stable.out
        
sql/test/BugTracker-2009/Tests/segfault_when_quitting_debugger.SF-2538837.stable.out
        sql/test/BugTracker-2010/Tests/All
        
sql/test/BugTracker-2010/Tests/LIMIT_OFFSET_big-endian.Bug-2622.stable.out
        
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
        sql/test/BugTracker-2014/Tests/manifold.Bug-3556.stable.out
        sql/test/BugTracker-2018/Tests/copy-into-doubled.Bug-6666.sql
        
sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out
        
sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out.single
        sql/test/BugTracker/Tests/explain.SF-1739353.stable.out
        sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-0join-query.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-0join-view.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-1join-query.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-1join-view.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-query.stable.out
        
sql/test/FeatureRequests/Tests/foreign_key_outer_join_dead_code_elimination-explain-2join-view.stable.out
        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/mapi/Tests/sql_int128.stable.out.int128
        sql/test/mergetables/Tests/mergequery.stable.out
        sql/test/orderidx/Tests/simpletable.stable.out
        sql/test/orderidx/Tests/smalltable.stable.out
        sql/test/pg_regress/Tests/All
        sql/test/pg_regress/Tests/alter_table.sql
        sql/test/pg_regress/Tests/inet.stable.err
        sql/test/pg_regress/Tests/mule_internal.sql
        sql/test/pg_regress/Tests/numeric.sql
        sql/test/pg_regress/Tests/numeric_big.sql
        sql/test/pg_regress/Tests/sql_ascii.sql
        sql/test/pg_regress/Tests/without_oid.sql
        sql/test/sys-schema/Tests/systemfunctions.stable.out
        sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
Branch: unlock
Log Message:

disabled no longer usefull tests
approved output


diffs (truncated from 4041 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
@@ -14090,7 +14090,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "analyze",      "unsafe pattern sql.analyze(minmax:int, 
sample:lng, sch:str, tbl:str):void ",   "sql_analyze;", ""      ]
 [ "sql",       "analyze",      "unsafe pattern sql.analyze(minmax:int, 
sample:lng, sch:str, tbl:str, col:str):void ",  "sql_analyze;", "Update the 
database statistics table"  ]
 [ "sql",       "any",  "command sql.any(cmp:bit, nl:bit, nr:bit):bit ",        
"SQLany_cmp;",  "if cmp then true, (nl or nr) nil then nil, else false" ]
-[ "sql",       "append",       "pattern sql.append(mvc:int, sname:str, 
tname:str, cname:str, ins:any):int ",   "mvc_append_wrap;",     "Append to the 
column tname.cname (possibly optimized to replace the insert bat of 
tname.cname. Returns sequence number for order dependence."  ]
+[ "sql",       "append",       "pattern sql.append(mvc:int, sname:str, 
tname:str, cname:str, offset:lng, ins:any):int ",       "mvc_append_wrap;",     
"Append to the column tname.cname (possibly optimized to replace the insert bat 
of tname.cname. Returns sequence number for order dependence."  ]
 [ "sql",       "argRecord",    "pattern sql.argRecord():str ", 
"SQLargRecord;",        "Glue together the calling sequence"    ]
 [ "sql",       "argRecord",    "pattern sql.argRecord(a:any...):str ", 
"SQLargRecord;",        "Glue together the calling sequence"    ]
 [ "sql",       "assert",       "pattern sql.assert(b:bit, msg:str):void ",     
"SQLassert;",   "Generate an exception when b==true"    ]
@@ -14110,9 +14110,10 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(mvc:int, schema:str, 
table:str, index:str, access:int):bat[:any_1] ",  "mvc_bind_idxbat_wrap;",      
  "Bind the 'schema.table.index' BAT with access kind:\n\t0 - base table\n\t1 - 
inserts\n\t2 - updates"   ]
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(mvc:int, schema:str, 
table:str, index:str, access:int, part_nr:int, nr_parts:int) (uid:bat[:oid], 
uval:bat[:any_1]) ", "mvc_bind_idxbat_wrap;",        "Bind the 
'schema.table.index' BAT with access kind:\n\t0 - base table\n\t1 - 
inserts\n\t2 - updates"   ]
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(mvc:int, schema:str, 
table:str, index:str, access:int, part_nr:int, nr_parts:int):bat[:any_1] ",     
  "mvc_bind_idxbat_wrap;",        "Bind the 'schema.table.index' BAT with 
access kind:\n\t0 - base table\n\t1 - inserts\n\t2 - updates"   ]
+[ "sql",       "claim",        "unsafe pattern sql.claim(mvc:int, sname:str, 
tname:str, cnt:lng):lng ",        "mvc_claim_wrap;",      "Claims slots for 
appending rows."      ]
 [ "sql",       "clear_table",  "unsafe pattern sql.clear_table(sname:str, 
tname:str):lng ",    "mvc_clear_table_wrap;",        "Clear the table 
sname.tname."  ]
 [ "sql",       "commit",       "unsafe pattern sql.commit():void ",    
"SQLcommit;",   "Trigger the commit operation for a MAL block"  ]
-[ "sql",       "copy_from",    "unsafe pattern sql.copy_from(t:ptr, sep:str, 
rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int, 
best:int, fwf:str, onclient:int):bat[:any]... ",   "mvc_import_table_wrap;",    
   "Import a table from bstream s with the \n\tgiven tuple and seperators 
(sep/rsep)"      ]
+[ "sql",       "copy_from",    "unsafe pattern sql.copy_from(t:ptr, sep:str, 
rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, best:int, fwf:str, 
onclient:int):bat[:any]... ",       "mvc_import_table_wrap;",       "Import a 
table from bstream s with the \n\tgiven tuple and seperators (sep/rsep)"      ]
 [ "sql",       "copy_rejects", "pattern sql.copy_rejects() (rowid:bat[:lng], 
fldid:bat[:int], msg:bat[:str], inp:bat[:str]) ", "COPYrejects;", ""      ]
 [ "sql",       "copy_rejects_clear",   "unsafe pattern 
sql.copy_rejects_clear():void ",        "COPYrejects_clear;",   ""      ]
 [ "sql",       "corr", "pattern sql.corr(b:bte, c:bte, s:lng, e:lng):dbl ",    
"SQLcorr;",     "return the correlation value of groups"        ]
@@ -14148,8 +14149,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "dec_round",    "command sql.dec_round(v:lng, r:lng):lng ",     
"lng_dec_round_wrap;",  "round off the value v to nearests multiple of r"       
]
 [ "sql",       "dec_round",    "command sql.dec_round(v:sht, r:sht):sht ",     
"sht_dec_round_wrap;",  "round off the value v to nearests multiple of r"       
]
 [ "sql",       "delete",       "unsafe pattern sql.delete(mvc:int, sname:str, 
tname:str, b:any):int ", "mvc_delete_wrap;",     "Delete a row from a table. 
Returns sequence number for order dependence."      ]
-[ "sql",       "delta",        "command sql.delta(col:bat[:any_3], 
uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ",     "DELTAbat2;",   "Return 
column bat with delta's applied."       ]
-[ "sql",       "delta",        "command sql.delta(col:bat[:any_3], 
uid:bat[:oid], uval:bat[:any_3], ins:bat[:any_3]):bat[:any_3] ",    
"DELTAbat;",    "Return column bat with delta's applied."       ]
+[ "sql",       "delta",        "command sql.delta(col:bat[:any_3], 
uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ",     "DELTAbat;",    "Return 
column bat with delta's applied."       ]
 [ "sql",       "deltas",       "pattern sql.deltas(schema:str) (ids:bat[:int], 
cleared:bat[:bit], readonly:bat[:lng], inserted:bat[:lng], updated:bat[:lng], 
deleted:bat[:lng], tr_level:bat[:int]) ", "mvc_delta_values;",    "Return the 
delta values sizes of all columns of the schema's tables, plus the current 
transaction level"       ]
 [ "sql",       "deltas",       "pattern sql.deltas(schema:str, table:str) 
(ids:bat[:int], cleared:bat[:bit], readonly:bat[:lng], inserted:bat[:lng], 
updated:bat[:lng], deleted:bat[:lng], tr_level:bat[:int]) ",      
"mvc_delta_values;",    "Return the delta values sizes from the table's 
columns, plus the current transaction level"    ]
 [ "sql",       "deltas",       "pattern sql.deltas(schema:str, table:str, 
column:str) (ids:bat[:int], cleared:bat[:bit], readonly:bat[:lng], 
inserted:bat[:lng], updated:bat[:lng], deleted:bat[:lng], tr_level:bat[:int]) 
",  "mvc_delta_values;",    "Return the delta values sizes of a column, plus 
the current transaction level" ]
@@ -14181,7 +14181,6 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "export_table", "unsafe pattern sql.export_table(fname:str, 
fmt:str, colsep:str, recsep:str, qout:str, nullrep:str, onclient:int, 
tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], 
cols:any...):int ",     "mvc_export_row_wrap;", "Prepare a table result set for 
the COPY INTO stream"   ]
 [ "sql",       "export_table", "unsafe pattern sql.export_table(fname:str, 
fmt:str, colsep:str, recsep:str, qout:str, nullrep:str, onclient:int, 
tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], 
cols:bat[:any]...):int ",       "mvc_export_table_wrap;",       "Prepare a 
table result set for the COPY INTO stream"   ]
 [ "sql",       "first_value",  "pattern sql.first_value(b:any_1, s:lng, 
e:lng):any_1 ",        "SQLfirst_value;",      "return the first value of 
groups"      ]
-[ "sql",       "flush_log",    "unsafe command sql.flush_log():void ", 
"SQLflush_log;",        "start flushing the write ahead log"    ]
 [ "sql",       "getVariable",  "pattern sql.getVariable(mvc:int, 
varname:str):any_1 ", "getVariable;", "Get the value of a session variable"   ]
 [ "sql",       "getVersion",   "command sql.getVersion(clientid:int):lng ",    
"mvc_getVersion;",      "Return the database version identifier for a client."  
]
 [ "sql",       "get_value",    "pattern sql.get_value(sname:str, 
sequence:str):lng ",  "mvc_get_value;",       "return the current value of the 
sequence"      ]
@@ -14222,8 +14221,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "prod", "pattern sql.prod(b:lng, s:lng, e:lng):lng ",   
"SQLprod;",     "return the product of groups"  ]
 [ "sql",       "prod", "pattern sql.prod(b:sht, s:lng, e:lng):lng ",   
"SQLprod;",     "return the product of groups"  ]
 [ "sql",       "project",      "command sql.project(col:bat[:oid], 
l:bat[:oid], r:bat[:oid]):bat[:oid] ",      "BATleftproject;",      "Last step 
of a left outer join, ie project the inner join (l,r) over the left input side 
(col)"        ]
-[ "sql",       "projectdelta", "command sql.projectdelta(select:bat[:oid], 
col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ",    
"DELTAproject2;",       "Return column bat with delta's applied."       ]
-[ "sql",       "projectdelta", "command sql.projectdelta(select:bat[:oid], 
col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3], ins:bat[:any_3]):bat[:any_3] 
",   "DELTAproject;",        "Return column bat with delta's applied."       ]
+[ "sql",       "projectdelta", "command sql.projectdelta(select:bat[:oid], 
col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ",    
"DELTAproject;",        "Return column bat with delta's applied."       ]
 [ "sql",       "querylog_calls",       "pattern sql.querylog_calls() 
(id:bat[:oid], start:bat[:timestamp], stop:bat[:timestamp], 
arguments:bat[:str], tuples:bat[:lng], exec:bat[:lng], result:bat[:lng], 
cpuload:bat[:int], iowait:bat[:int]) ",      "sql_querylog_calls;",  "Obtain 
the query log calls"    ]
 [ "sql",       "querylog_catalog",     "pattern sql.querylog_catalog() 
(id:bat[:oid], user:bat[:str], defined:bat[:timestamp], query:bat[:str], 
pipe:bat[:str], plan:bat[:str], mal:bat[:int], optimize:bat[:lng]) ",  
"sql_querylog_catalog;",        "Obtain the query log catalog"  ]
 [ "sql",       "querylog_disable",     "unsafe command 
sql.querylog_disable():void ",  "QLOGdisable;", ""      ]
@@ -14238,7 +14236,6 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(tbl:str, 
attr:str, tpe:str, len:int, scale:int, eclass:int, val:any):int ",       
"mvc_scalar_value_wrap;",       "Prepare a table result set for the client 
front-end."  ]
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(tbl:bat[:str], 
attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], 
cols:bat[:any]...):int ",   "mvc_table_result_wrap;",       "Prepare a table 
result set for the client in default CSV format"       ]
 [ "sql",       "resume_log_flushing",  "unsafe command 
sql.resume_log_flushing():void ",       "SQLresume_log_flushing;",      "Resume 
WAL log flushing"       ]
-[ "sql",       "reuse",        "unsafe pattern sql.reuse(sch:str, 
tbl:str):void ",     "SQLreuse;",    "Consolidate the deletion table over all 
columns reusing deleted slots" ]
 [ "sql",       "round",        "command sql.round(v:bte, d:int, s:int, 
r:bte):bte ",   "bte_round_wrap;",      "round off the decimal v(d,s) to r 
digits behind the dot (if r < 0, before the dot)"    ]
 [ "sql",       "round",        "command sql.round(v:dbl, r:bte):dbl ", 
"dbl_round_wrap;",      "round off the floating point v to r digits behind the 
dot (if r < 0, before the dot)"  ]
 [ "sql",       "round",        "command sql.round(v:flt, r:bte):flt ", 
"flt_round_wrap;",      "round off the floating point v to r digits behind the 
dot (if r < 0, before the dot)"  ]
@@ -14249,7 +14246,6 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "rt_credentials",       "pattern 
sql.rt_credentials(tablename:str) (uri:bat[:str], username:bat[:str], 
hash:bat[:str]) ",       "sql_rt_credentials_wrap;",     "Return the remote 
table credentials for the given table"       ]
 [ "sql",       "sessions",     "pattern sql.sessions() (id:bat[:int], 
user:bat[:str], start:bat[:timestamp], idle:bat[:timestamp], 
optmizer:bat[:str], stimeout:bat[:int], qtimeout:bat[:int], wlimit:bat[:int], 
mlimit:bat[:int]) ",  "sql_sessions_wrap;",   "SQL export table of active 
sessions, their timeouts and idle status"   ]
 [ "sql",       "setVariable",  "unsafe pattern sql.setVariable(mvc:int, 
varname:str, value:any_1):int ",       "setVariable;", "Set the value of a 
session variable"   ]
-[ "sql",       "shrink",       "unsafe pattern sql.shrink(sch:str, 
tbl:str):void ",    "SQLshrink;",   "Consolidate the deletion table over all 
columns using shrinking"       ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(delay:bte):str ", 
"SQLshutdown_wrap;",    ""      ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(delay:bte, force:bit):str 
",      "SQLshutdown_wrap;",    ""      ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(delay:int):str ", 
"SQLshutdown_wrap;",    ""      ]
@@ -14278,8 +14274,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "str_group_concat",     "pattern sql.str_group_concat(b:str, 
s:lng, e:lng):str ",       "SQLstrgroup_concat;",  "return the string 
concatenation of groups"     ]
 [ "sql",       "str_group_concat",     "pattern sql.str_group_concat(b:str, 
sep:str, s:lng, e:lng):str ",      "SQLstrgroup_concat;",  "return the string 
concatenation of groups with a custom separator"     ]
 [ "sql",       "suball",       "command sql.suball(l:bat[:any_1], 
gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:any_1] ",      "SQLall_grp;",  
"if all values in l are equal (per group) return the value, else nil"   ]
-[ "sql",       "subdelta",     "command sql.subdelta(col:bat[:oid], 
cand:bat[:oid], uid:bat[:oid], uval:bat[:oid]):bat[:oid] ",        
"DELTAsub2;",   "Return a single bat of selected delta."        ]
-[ "sql",       "subdelta",     "command sql.subdelta(col:bat[:oid], 
cand:bat[:oid], uid:bat[:oid], uval:bat[:oid], ins:bat[:oid]):bat[:oid] ", 
"DELTAsub;",    "Return a single bat of selected delta."        ]
+[ "sql",       "subdelta",     "command sql.subdelta(col:bat[:oid], 
cand:bat[:oid], uid:bat[:oid], uval:bat[:oid]):bat[:oid] ",        "DELTAsub;", 
   "Return a single bat of selected delta."        ]
 [ "sql",       "subnull",      "command sql.subnull(l:bat[:any_1], 
gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:bit] ",       "SQLnil_grp;",  "if 
any value in l is nil with in a group return true for that group, else false"   
    ]
 [ "sql",       "subzero_or_one",       "command 
sql.subzero_or_one(b:bat[:any_1], gp:bat[:oid], gpe:bat[:oid], 
no_nil:bit):bat[:any_1] ",      "SQLsubzero_or_one;",   ""      ]
 [ "sql",       "sum",  "pattern sql.sum(b:bte, s:lng, e:lng):lng ",    
"SQLsum;",      "return the sum of groups"      ]
@@ -14315,7 +14310,6 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "update",       "pattern sql.update(mvc:int, sname:str, 
tname:str, cname:str, rids:any, upd:any):int ", "mvc_update_wrap;",     "Update 
the values of the column tname.cname. Returns sequence number for order 
dependence)"    ]
 [ "sql",       "update_schemas",       "unsafe pattern 
sql.update_schemas():void ",    "SYSupdate_schemas;",   "Procedure triggered on 
update of the sys.schemas table"        ]
 [ "sql",       "update_tables",        "unsafe pattern 
sql.update_tables():void ",     "SYSupdate_tables;",    "Procedure triggered on 
update of the sys._tables table"        ]
-[ "sql",       "vacuum",       "unsafe pattern sql.vacuum(sch:str, 
tbl:str):void ",    "SQLvacuum;",   "Choose an approach to consolidate the 
deletions"       ]
 [ "sql",       "variance",     "pattern sql.variance(b:bte, s:lng, e:lng):dbl 
",       "SQLvar_samp;", "return the variance sample of groups"  ]
 [ "sql",       "variance",     "pattern sql.variance(b:dbl, s:lng, e:lng):dbl 
",       "SQLvar_samp;", "return the variance sample of groups"  ]
 [ "sql",       "variance",     "pattern sql.variance(b:flt, s:lng, e:lng):dbl 
",       "SQLvar_samp;", "return the variance sample of groups"  ]
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
@@ -13139,8 +13139,8 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "hge_noerror",  "pattern batcalc.hge_noerror(b:bat[:str], 
r:bat[:bit]):bat[:hge] ",     "CMDconvert_hge;",      "cast from str to hge"  ]
 [ "batcalc",   "hge_noerror",  "pattern batcalc.hge_noerror(b:bat[:str], 
s:bat[:oid]):bat[:hge] ",     "CMDconvert_hge;",      "cast from str to hge 
with candidates list"     ]
 [ "batcalc",   "hge_noerror",  "pattern batcalc.hge_noerror(b:bat[:str], 
s:bat[:oid], r:bat[:bit]):bat[:hge] ",        "CMDconvert_hge;",      "cast 
from str to hge with candidates list"     ]
-[ "batcalc",   "identity",     "command 
batcalc.identity(b:bat[:any_2]):bat[:oid] ",   "BATSQLidentity;",      "Returns 
the unique row identitfiers."  ]
-[ "batcalc",   "identity",     "pattern batcalc.identity(b:bat[:any_2], s:oid) 
(resb:bat[:oid], ns:oid) ",     "PBATSQLidentity;",     "Returns the unique row 
identitfiers."  ]
+[ "batcalc",   "identity",     "command 
batcalc.identity(b:bat[:any]):bat[:oid] ",     "BATSQLidentity;",      "Returns 
the unique row identitfiers."  ]
+[ "batcalc",   "identity",     "pattern batcalc.identity(b:bat[:any], s:oid) 
(resb:bat[:oid], ns:oid) ",       "PBATSQLidentity;",     "Returns the unique 
row identitfiers."  ]
 [ "batcalc",   "ifthenelse",   "pattern batcalc.ifthenelse(b:bat[:bit], 
b1:bat[:any_1], b2:bat[:any_1]):bat[:any_1] ", "CMDifthen;",   "If-then-else 
operation to assemble a conditional result"       ]
 [ "batcalc",   "ifthenelse",   "pattern batcalc.ifthenelse(b:bat[:bit], 
b1:bat[:any_1], v2:any_1):bat[:any_1] ",       "CMDifthen;",   "If-then-else 
operation to assemble a conditional result"       ]
 [ "batcalc",   "ifthenelse",   "pattern batcalc.ifthenelse(b:bat[:bit], 
v1:any_1, b2:bat[:any_1]):bat[:any_1] ",       "CMDifthen;",   "If-then-else 
operation to assemble a conditional result"       ]
@@ -18190,7 +18190,7 @@ stdout of test 'MAL-signatures` in direc
 [ "calc",      "hge",  "command calc.hge(s1:int, v:sht, d2:int, s2:int):hge ", 
"sht_dec2dec_hge;",     "cast decimal(sht) to decimal(hge) and check for 
overflow"      ]
 [ "calc",      "hge",  "command calc.hge(v:sht, digits:int, scale:int):hge ",  
"sht_num2dec_hge;",     "cast number to decimal(hge) and check for overflow"    
]
 [ "calc",      "hge",  "command calc.hge(v:str, digits:int, scale:int):hge ",  
"str_2dec_hge;",        "cast to dec(hge) and check for overflow"       ]
-[ "calc",      "identity",     "command calc.identity(X_0:any_2):oid ",        
"SQLidentity;", "Returns a unique row identitfier."     ]
+[ "calc",      "identity",     "command calc.identity(X_0:any):oid ",  
"SQLidentity;", "Returns a unique row identitfier."     ]
 [ "calc",      "ifthenelse",   "pattern calc.ifthenelse(b:bit, t:any_1, 
f:any_1):any_1 ",      "CALCswitchbit;",       "If VALUE is true return MIDDLE 
else RIGHT"     ]
 [ "calc",      "index",        "command calc.index(v:str, u:bit):bte ",        
"STRindex_bte;",        "Return the offsets as an index bat"    ]
 [ "calc",      "index",        "command calc.index(v:str, u:bit):int ",        
"STRindex_int;",        "Return the offsets as an index bat"    ]
@@ -19575,7 +19575,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "analyze",      "unsafe pattern sql.analyze(minmax:int, 
sample:lng, sch:str, tbl:str):void ",   "sql_analyze;", ""      ]
 [ "sql",       "analyze",      "unsafe pattern sql.analyze(minmax:int, 
sample:lng, sch:str, tbl:str, col:str):void ",  "sql_analyze;", "Update the 
database statistics table"  ]
 [ "sql",       "any",  "command sql.any(cmp:bit, nl:bit, nr:bit):bit ",        
"SQLany_cmp;",  "if cmp then true, (nl or nr) nil then nil, else false" ]
-[ "sql",       "append",       "pattern sql.append(mvc:int, sname:str, 
tname:str, cname:str, ins:any):int ",   "mvc_append_wrap;",     "Append to the 
column tname.cname (possibly optimized to replace the insert bat of 
tname.cname. Returns sequence number for order dependence."  ]
+[ "sql",       "append",       "pattern sql.append(mvc:int, sname:str, 
tname:str, cname:str, offset:lng, ins:any):int ",       "mvc_append_wrap;",     
"Append to the column tname.cname (possibly optimized to replace the insert bat 
of tname.cname. Returns sequence number for order dependence."  ]
 [ "sql",       "argRecord",    "pattern sql.argRecord():str ", 
"SQLargRecord;",        "Glue together the calling sequence"    ]
 [ "sql",       "argRecord",    "pattern sql.argRecord(a:any...):str ", 
"SQLargRecord;",        "Glue together the calling sequence"    ]
 [ "sql",       "assert",       "pattern sql.assert(b:bit, msg:str):void ",     
"SQLassert;",   "Generate an exception when b==true"    ]
@@ -19596,9 +19596,10 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(mvc:int, schema:str, 
table:str, index:str, access:int):bat[:any_1] ",  "mvc_bind_idxbat_wrap;",      
  "Bind the 'schema.table.index' BAT with access kind:\n\t0 - base table\n\t1 - 
inserts\n\t2 - updates"   ]
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(mvc:int, schema:str, 
table:str, index:str, access:int, part_nr:int, nr_parts:int) (uid:bat[:oid], 
uval:bat[:any_1]) ", "mvc_bind_idxbat_wrap;",        "Bind the 
'schema.table.index' BAT with access kind:\n\t0 - base table\n\t1 - 
inserts\n\t2 - updates"   ]
 [ "sql",       "bind_idxbat",  "pattern sql.bind_idxbat(mvc:int, schema:str, 
table:str, index:str, access:int, part_nr:int, nr_parts:int):bat[:any_1] ",     
  "mvc_bind_idxbat_wrap;",        "Bind the 'schema.table.index' BAT with 
access kind:\n\t0 - base table\n\t1 - inserts\n\t2 - updates"   ]
+[ "sql",       "claim",        "unsafe pattern sql.claim(mvc:int, sname:str, 
tname:str, cnt:lng):lng ",        "mvc_claim_wrap;",      "Claims slots for 
appending rows."      ]
 [ "sql",       "clear_table",  "unsafe pattern sql.clear_table(sname:str, 
tname:str):lng ",    "mvc_clear_table_wrap;",        "Clear the table 
sname.tname."  ]
 [ "sql",       "commit",       "unsafe pattern sql.commit():void ",    
"SQLcommit;",   "Trigger the commit operation for a MAL block"  ]
-[ "sql",       "copy_from",    "unsafe pattern sql.copy_from(t:ptr, sep:str, 
rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, locked:int, 
best:int, fwf:str, onclient:int):bat[:any]... ",   "mvc_import_table_wrap;",    
   "Import a table from bstream s with the \n\tgiven tuple and seperators 
(sep/rsep)"      ]
+[ "sql",       "copy_from",    "unsafe pattern sql.copy_from(t:ptr, sep:str, 
rsep:str, ssep:str, ns:str, fname:str, nr:lng, offset:lng, best:int, fwf:str, 
onclient:int):bat[:any]... ",       "mvc_import_table_wrap;",       "Import a 
table from bstream s with the \n\tgiven tuple and seperators (sep/rsep)"      ]
 [ "sql",       "copy_rejects", "pattern sql.copy_rejects() (rowid:bat[:lng], 
fldid:bat[:int], msg:bat[:str], inp:bat[:str]) ", "COPYrejects;", ""      ]
 [ "sql",       "copy_rejects_clear",   "unsafe pattern 
sql.copy_rejects_clear():void ",        "COPYrejects_clear;",   ""      ]
 [ "sql",       "corr", "pattern sql.corr(b:bte, c:bte, s:lng, e:lng):dbl ",    
"SQLcorr;",     "return the correlation value of groups"        ]
@@ -19638,8 +19639,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "dec_round",    "command sql.dec_round(v:lng, r:lng):lng ",     
"lng_dec_round_wrap;",  "round off the value v to nearests multiple of r"       
]
 [ "sql",       "dec_round",    "command sql.dec_round(v:sht, r:sht):sht ",     
"sht_dec_round_wrap;",  "round off the value v to nearests multiple of r"       
]
 [ "sql",       "delete",       "unsafe pattern sql.delete(mvc:int, sname:str, 
tname:str, b:any):int ", "mvc_delete_wrap;",     "Delete a row from a table. 
Returns sequence number for order dependence."      ]
-[ "sql",       "delta",        "command sql.delta(col:bat[:any_3], 
uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ",     "DELTAbat2;",   "Return 
column bat with delta's applied."       ]
-[ "sql",       "delta",        "command sql.delta(col:bat[:any_3], 
uid:bat[:oid], uval:bat[:any_3], ins:bat[:any_3]):bat[:any_3] ",    
"DELTAbat;",    "Return column bat with delta's applied."       ]
+[ "sql",       "delta",        "command sql.delta(col:bat[:any_3], 
uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ",     "DELTAbat;",    "Return 
column bat with delta's applied."       ]
 [ "sql",       "deltas",       "pattern sql.deltas(schema:str) (ids:bat[:int], 
cleared:bat[:bit], readonly:bat[:lng], inserted:bat[:lng], updated:bat[:lng], 
deleted:bat[:lng], tr_level:bat[:int]) ", "mvc_delta_values;",    "Return the 
delta values sizes of all columns of the schema's tables, plus the current 
transaction level"       ]
 [ "sql",       "deltas",       "pattern sql.deltas(schema:str, table:str) 
(ids:bat[:int], cleared:bat[:bit], readonly:bat[:lng], inserted:bat[:lng], 
updated:bat[:lng], deleted:bat[:lng], tr_level:bat[:int]) ",      
"mvc_delta_values;",    "Return the delta values sizes from the table's 
columns, plus the current transaction level"    ]
 [ "sql",       "deltas",       "pattern sql.deltas(schema:str, table:str, 
column:str) (ids:bat[:int], cleared:bat[:bit], readonly:bat[:lng], 
inserted:bat[:lng], updated:bat[:lng], deleted:bat[:lng], tr_level:bat[:int]) 
",  "mvc_delta_values;",    "Return the delta values sizes of a column, plus 
the current transaction level" ]
@@ -19671,7 +19671,6 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "export_table", "unsafe pattern sql.export_table(fname:str, 
fmt:str, colsep:str, recsep:str, qout:str, nullrep:str, onclient:int, 
tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], 
cols:any...):int ",     "mvc_export_row_wrap;", "Prepare a table result set for 
the COPY INTO stream"   ]
 [ "sql",       "export_table", "unsafe pattern sql.export_table(fname:str, 
fmt:str, colsep:str, recsep:str, qout:str, nullrep:str, onclient:int, 
tbl:bat[:str], attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], 
cols:bat[:any]...):int ",       "mvc_export_table_wrap;",       "Prepare a 
table result set for the COPY INTO stream"   ]
 [ "sql",       "first_value",  "pattern sql.first_value(b:any_1, s:lng, 
e:lng):any_1 ",        "SQLfirst_value;",      "return the first value of 
groups"      ]
-[ "sql",       "flush_log",    "unsafe command sql.flush_log():void ", 
"SQLflush_log;",        "start flushing the write ahead log"    ]
 [ "sql",       "getVariable",  "pattern sql.getVariable(mvc:int, 
varname:str):any_1 ", "getVariable;", "Get the value of a session variable"   ]
 [ "sql",       "getVersion",   "command sql.getVersion(clientid:int):lng ",    
"mvc_getVersion;",      "Return the database version identifier for a client."  
]
 [ "sql",       "get_value",    "pattern sql.get_value(sname:str, 
sequence:str):lng ",  "mvc_get_value;",       "return the current value of the 
sequence"      ]
@@ -19717,8 +19716,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "prod", "pattern sql.prod(b:sht, s:lng, e:lng):hge ",   
"SQLprod;",     "return the product of groups"  ]
 [ "sql",       "prod", "pattern sql.prod(b:sht, s:lng, e:lng):lng ",   
"SQLprod;",     "return the product of groups"  ]
 [ "sql",       "project",      "command sql.project(col:bat[:oid], 
l:bat[:oid], r:bat[:oid]):bat[:oid] ",      "BATleftproject;",      "Last step 
of a left outer join, ie project the inner join (l,r) over the left input side 
(col)"        ]
-[ "sql",       "projectdelta", "command sql.projectdelta(select:bat[:oid], 
col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ",    
"DELTAproject2;",       "Return column bat with delta's applied."       ]
-[ "sql",       "projectdelta", "command sql.projectdelta(select:bat[:oid], 
col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3], ins:bat[:any_3]):bat[:any_3] 
",   "DELTAproject;",        "Return column bat with delta's applied."       ]
+[ "sql",       "projectdelta", "command sql.projectdelta(select:bat[:oid], 
col:bat[:any_3], uid:bat[:oid], uval:bat[:any_3]):bat[:any_3] ",    
"DELTAproject;",        "Return column bat with delta's applied."       ]
 [ "sql",       "querylog_calls",       "pattern sql.querylog_calls() 
(id:bat[:oid], start:bat[:timestamp], stop:bat[:timestamp], 
arguments:bat[:str], tuples:bat[:lng], exec:bat[:lng], result:bat[:lng], 
cpuload:bat[:int], iowait:bat[:int]) ",      "sql_querylog_calls;",  "Obtain 
the query log calls"    ]
 [ "sql",       "querylog_catalog",     "pattern sql.querylog_catalog() 
(id:bat[:oid], user:bat[:str], defined:bat[:timestamp], query:bat[:str], 
pipe:bat[:str], plan:bat[:str], mal:bat[:int], optimize:bat[:lng]) ",  
"sql_querylog_catalog;",        "Obtain the query log catalog"  ]
 [ "sql",       "querylog_disable",     "unsafe command 
sql.querylog_disable():void ",  "QLOGdisable;", ""      ]
@@ -19733,7 +19731,6 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(tbl:str, 
attr:str, tpe:str, len:int, scale:int, eclass:int, val:any):int ",       
"mvc_scalar_value_wrap;",       "Prepare a table result set for the client 
front-end."  ]
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(tbl:bat[:str], 
attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], 
cols:bat[:any]...):int ",   "mvc_table_result_wrap;",       "Prepare a table 
result set for the client in default CSV format"       ]
 [ "sql",       "resume_log_flushing",  "unsafe command 
sql.resume_log_flushing():void ",       "SQLresume_log_flushing;",      "Resume 
WAL log flushing"       ]
-[ "sql",       "reuse",        "unsafe pattern sql.reuse(sch:str, 
tbl:str):void ",     "SQLreuse;",    "Consolidate the deletion table over all 
columns reusing deleted slots" ]
 [ "sql",       "round",        "command sql.round(v:bte, d:int, s:int, 
r:bte):bte ",   "bte_round_wrap;",      "round off the decimal v(d,s) to r 
digits behind the dot (if r < 0, before the dot)"    ]
 [ "sql",       "round",        "command sql.round(v:dbl, r:bte):dbl ", 
"dbl_round_wrap;",      "round off the floating point v to r digits behind the 
dot (if r < 0, before the dot)"  ]
 [ "sql",       "round",        "command sql.round(v:flt, r:bte):flt ", 
"flt_round_wrap;",      "round off the floating point v to r digits behind the 
dot (if r < 0, before the dot)"  ]
@@ -19745,7 +19742,6 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "rt_credentials",       "pattern 
sql.rt_credentials(tablename:str) (uri:bat[:str], username:bat[:str], 
hash:bat[:str]) ",       "sql_rt_credentials_wrap;",     "Return the remote 
table credentials for the given table"       ]
 [ "sql",       "sessions",     "pattern sql.sessions() (id:bat[:int], 
user:bat[:str], start:bat[:timestamp], idle:bat[:timestamp], 
optmizer:bat[:str], stimeout:bat[:int], qtimeout:bat[:int], wlimit:bat[:int], 
mlimit:bat[:int]) ",  "sql_sessions_wrap;",   "SQL export table of active 
sessions, their timeouts and idle status"   ]
 [ "sql",       "setVariable",  "unsafe pattern sql.setVariable(mvc:int, 
varname:str, value:any_1):int ",       "setVariable;", "Set the value of a 
session variable"   ]
-[ "sql",       "shrink",       "unsafe pattern sql.shrink(sch:str, 
tbl:str):void ",    "SQLshrink;",   "Consolidate the deletion table over all 
columns using shrinking"       ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(delay:bte):str ", 
"SQLshutdown_wrap;",    ""      ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(delay:bte, force:bit):str 
",      "SQLshutdown_wrap;",    ""      ]
 [ "sql",       "shutdown",     "pattern sql.shutdown(delay:int):str ", 
"SQLshutdown_wrap;",    ""      ]
@@ -19776,8 +19772,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "str_group_concat",     "pattern sql.str_group_concat(b:str, 
s:lng, e:lng):str ",       "SQLstrgroup_concat;",  "return the string 
concatenation of groups"     ]
 [ "sql",       "str_group_concat",     "pattern sql.str_group_concat(b:str, 
sep:str, s:lng, e:lng):str ",      "SQLstrgroup_concat;",  "return the string 
concatenation of groups with a custom separator"     ]
 [ "sql",       "suball",       "command sql.suball(l:bat[:any_1], 
gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:any_1] ",      "SQLall_grp;",  
"if all values in l are equal (per group) return the value, else nil"   ]
-[ "sql",       "subdelta",     "command sql.subdelta(col:bat[:oid], 
cand:bat[:oid], uid:bat[:oid], uval:bat[:oid]):bat[:oid] ",        
"DELTAsub2;",   "Return a single bat of selected delta."        ]
-[ "sql",       "subdelta",     "command sql.subdelta(col:bat[:oid], 
cand:bat[:oid], uid:bat[:oid], uval:bat[:oid], ins:bat[:oid]):bat[:oid] ", 
"DELTAsub;",    "Return a single bat of selected delta."        ]
+[ "sql",       "subdelta",     "command sql.subdelta(col:bat[:oid], 
cand:bat[:oid], uid:bat[:oid], uval:bat[:oid]):bat[:oid] ",        "DELTAsub;", 
   "Return a single bat of selected delta."        ]
 [ "sql",       "subnull",      "command sql.subnull(l:bat[:any_1], 
gp:bat[:oid], gpe:bat[:oid], no_nil:bit):bat[:bit] ",       "SQLnil_grp;",  "if 
any value in l is nil with in a group return true for that group, else false"   
    ]
 [ "sql",       "subzero_or_one",       "command 
sql.subzero_or_one(b:bat[:any_1], gp:bat[:oid], gpe:bat[:oid], 
no_nil:bit):bat[:any_1] ",      "SQLsubzero_or_one;",   ""      ]
 [ "sql",       "sum",  "pattern sql.sum(b:bte, s:lng, e:lng):hge ",    
"SQLsum;",      "return the sum of groups"      ]
@@ -19818,7 +19813,6 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "update",       "pattern sql.update(mvc:int, sname:str, 
tname:str, cname:str, rids:any, upd:any):int ", "mvc_update_wrap;",     "Update 
the values of the column tname.cname. Returns sequence number for order 
dependence)"    ]
 [ "sql",       "update_schemas",       "unsafe pattern 
sql.update_schemas():void ",    "SYSupdate_schemas;",   "Procedure triggered on 
update of the sys.schemas table"        ]
 [ "sql",       "update_tables",        "unsafe pattern 
sql.update_tables():void ",     "SYSupdate_tables;",    "Procedure triggered on 
update of the sys._tables table"        ]
-[ "sql",       "vacuum",       "unsafe pattern sql.vacuum(sch:str, 
tbl:str):void ",    "SQLvacuum;",   "Choose an approach to consolidate the 
deletions"       ]
 [ "sql",       "variance",     "pattern sql.variance(b:bte, s:lng, e:lng):dbl 
",       "SQLvar_samp;", "return the variance sample of groups"  ]
 [ "sql",       "variance",     "pattern sql.variance(b:dbl, s:lng, e:lng):dbl 
",       "SQLvar_samp;", "return the variance sample of groups"  ]
 [ "sql",       "variance",     "pattern sql.variance(b:flt, s:lng, e:lng):dbl 
",       "SQLvar_samp;", "return the variance sample of groups"  ]
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -216,6 +216,7 @@ gdk_return BUNappend(BAT *b, const void 
 gdk_return BUNdelete(BAT *b, oid o) __attribute__((__warn_unused_result__));
 BUN BUNfnd(BAT *b, const void *right);
 gdk_return BUNinplace(BAT *b, BUN p, const void *right, bool force) 
__attribute__((__warn_unused_result__));
+gdk_return BUNreplace(BAT *b, oid left, const void *right, bool force) 
__attribute__((__warn_unused_result__));
 BAT *COLcopy(BAT *b, int tt, bool writable, role_t role);
 BAT *COLnew(oid hseq, int tltype, BUN capacity, role_t role) 
__attribute__((__warn_unused_result__));
 size_t GDK_mem_maxsize;
@@ -497,27 +498,21 @@ ssize_t lngFromStr(const char *src, size
 ssize_t lngToStr(str *dst, size_t *len, const lng *src, bool external);
 const lng lng_nil;
 struct tm *localtime_r(const time_t *restrict, struct tm *restrict);
-gdk_return log_abort(logger *lg);
-gdk_return log_bat(logger *lg, BAT *b, const char *n, char tpe, oid id);
-gdk_return log_bat_clear(logger *lg, const char *n, char tpe, oid id);
-gdk_return log_bat_persists(logger *lg, BAT *b, const char *n, char tpe, oid 
id);
-gdk_return log_bat_transient(logger *lg, const char *n, char tpe, oid id);
-gdk_return log_delta(logger *lg, BAT *uid, BAT *uval, const char *n, char tpe, 
oid id);
+gdk_return log_bat(logger *lg, BAT *b, log_id id, lng offset, lng cnt);
+gdk_return log_bat_clear(logger *lg, log_id id);
+gdk_return log_bat_persists(logger *lg, BAT *b, log_id id);
+gdk_return log_bat_transient(logger *lg, log_id id);
+gdk_return log_delta(logger *lg, BAT *uid, BAT *uval, log_id id);
 gdk_return log_sequence(logger *lg, int seq, lng id);
 gdk_return log_tend(logger *lg);
+lng log_tid(logger *lg);
 gdk_return log_tstart(logger *lg);
-gdk_return logger_add_bat(logger *lg, BAT *b, const char *name, char tpe, oid 
id) __attribute__((__warn_unused_result__));
 lng logger_changes(logger *lg);
-gdk_return logger_cleanup(logger *lg);
 logger *logger_create(int debug, const char *fn, const char *logdir, int 
version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp);
-gdk_return logger_del_bat(logger *lg, log_bid bid) 
__attribute__((__warn_unused_result__));
 void logger_destroy(logger *lg);
-gdk_return logger_exit(logger *lg);
-log_bid logger_find_bat(logger *lg, const char *name, char tpe, oid id);
-gdk_return logger_restart(logger *lg);
+log_bid logger_find_bat(logger *lg, log_id id);
+gdk_return logger_flush(logger *lg);
 int logger_sequence(logger *lg, int seq, lng *id);
-gdk_return logger_upgrade_bat(logger *lg, const char *name, char tpe, oid id) 
__attribute__((__warn_unused_result__));
-void logger_with_ids(logger *lg);
 log_level_t lvl_per_component[];
 void *mdlopen(const char *library, int mode);
 const char *mercurial_revision(void) __attribute__((__const__));
@@ -528,6 +523,7 @@ void mo_free_options(opt *set, int setle
 void mo_print_options(opt *set, int setlen);
 int mo_system_config(opt **Set, int setlen);
 const oid oid_nil;
+gdk_return old_logger_load(int debug, const char *fn, const char *logdir, int 
version, preversionfix_fptr prefuncp, postversionfix_fptr postfuncp);
 DIR *opendir(const char *dirname);
 void print_trace(void);
 ssize_t ptrFromStr(const char *src, size_t *len, ptr **dst, bool external);
@@ -2056,6 +2052,7 @@ str chkFlow(MalBlkPtr mb);
 int chkInstruction(Module s, MalBlkPtr mb, InstrPtr p);
 str chkProgram(Module s, MalBlkPtr mb);
 str chkTypes(Module s, MalBlkPtr mb, int silent);
+str claimRef;
 str cleanupTraces(Client cntxt);
 void clearTrace(Client cntxt);
 void clearVariable(MalBlkPtr mb, int varid);
diff --git 
a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out 
b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
--- a/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
+++ b/monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
@@ -59,16 +59,17 @@ stdout of test 'opt_sql_append` in direc
 % .explain # table_name
 % mal # name
 % clob # type
-% 235 # length
+% 245 # length
 function user.s10_0():void;
     X_1:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';":str, "sequential_pipe":str, 22:int);
     X_4:int := sql.mvc();
-    (X_26:bat[:int], X_27:bat[:int], X_28:bat[:int]) := 
sql.copy_from(0x7f371c1f09b0:ptr, "|":str, "\n":str, nil:str, "null":str, 
"/tmp/xyz":str, -1:lng, 0:lng, 0:int, 0:int, nil:str, 0:int);
-    X_30:int := sql.append(X_4:int, "sys":str, "ttt":str, 
"averylongcolumnnametomakeitlargeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee":str,
 X_26:bat[:int]);
-    X_35:int := sql.append(X_30:int, "sys":str, "ttt":str, "b":str, 
X_27:bat[:int]);
-    X_38:int := sql.append(X_35:int, "sys":str, "ttt":str, "c":str, 
X_28:bat[:int]);
-    X_40:lng := aggr.count(X_28:bat[:int]);
-    sql.affectedRows(X_38:int, X_40:lng);
+    (X_25:bat[:int], X_26:bat[:int], X_27:bat[:int]) := 
sql.copy_from(0x7f0dec1ace80:ptr, "|":str, "\n":str, nil:str, "null":str, 
"/tmp/xyz":str, -1:lng, 0:lng, 0:int, nil:str, 0:int);
+    X_28:lng := aggr.count(X_25:bat[:int]);
+    X_29:lng := sql.claim(X_4:int, "sys":str, "ttt":str, X_28:lng);
+    X_33:int := sql.append(X_4:int, "sys":str, "ttt":str, 
"averylongcolumnnametomakeitlargeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee":str,
 X_29:lng, X_25:bat[:int]);
+    X_36:int := sql.append(X_33:int, "sys":str, "ttt":str, "b":str, X_29:lng, 
X_26:bat[:int]);
+    X_39:int := sql.append(X_36:int, "sys":str, "ttt":str, "c":str, X_29:lng, 
X_27:bat[:int]);
+    sql.affectedRows(X_39:int, X_28:lng);
 end user.s10_0;
 #inline               actions= 0 time=1 usec 
 #candidates           actions= 1 time=14 usec 
@@ -118,16 +119,17 @@ end user.s10_0;
 % .explain # table_name
 % mal # name
 % clob # type
-% 235 # length
+% 245 # length
 function user.s26_0():void;
     X_1:void := querylog.define("explain copy into ttt from 
\\'/tmp/xyz\\';":str, "user_0":str, 22:int);
     X_4:int := sql.mvc();
-    (X_26:bat[:int], X_27:bat[:int], X_28:bat[:int]) := 
sql.copy_from(0x7f371c1f09b0:ptr, "|":str, "\n":str, nil:str, "null":str, 
"/tmp/xyz":str, -1:lng, 0:lng, 0:int, 0:int, nil:str, 0:int);
-    X_30:int := sql.append(X_4:int, "sys":str, "ttt":str, 
"averylongcolumnnametomakeitlargeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee":str,
 X_26:bat[:int]);
-    X_35:int := sql.append(X_30:int, "sys":str, "ttt":str, "b":str, 
X_27:bat[:int]);
-    X_40:lng := aggr.count(X_28:bat[:int]);
-    X_38:int := sql.append(X_35:int, "sys":str, "ttt":str, "c":str, 
X_28:bat[:int]);
-    sql.affectedRows(X_38:int, X_40:lng);
+    (X_25:bat[:int], X_26:bat[:int], X_27:bat[:int]) := 
sql.copy_from(0x7f0dec1ace80:ptr, "|":str, "\n":str, nil:str, "null":str, 
"/tmp/xyz":str, -1:lng, 0:lng, 0:int, nil:str, 0:int);
+    X_28:lng := aggr.count(X_25:bat[:int]);
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to