Changeset: 1065fb37f75b for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1065fb37f75b Modified Files: sql/backends/monet5/rel_bin.c sql/backends/monet5/sql.c sql/backends/monet5/sql.h sql/backends/monet5/sql_statement.c sql/backends/monet5/sql_upgrades.c sql/include/sql_list.h sql/server/rel_optimizer.c sql/server/rel_schema.c sql/server/rel_select.c sql/server/rel_updates.c sql/storage/bat/bat_storage.c sql/storage/sql_storage.h sql/storage/store.c Branch: nospare Log Message:
mergeddddddd with default (ie copybinary and sqlancer fixes) diffs (truncated from 13866 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 @@ -621,8 +621,8 @@ stdout of test 'MAL-signatures` in direc [ "algebra", "ilike", "command algebra.ilike(X_1:str, X_2:str, X_3:str):bit ", "PCREilike3;", "" ] [ "algebra", "ilikejoin", "command algebra.ilikejoin(X_1:bat[:str], X_2:bat[:str], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:lng, X_7:bit):bat[:oid] ", "ILIKEjoin1;", "" ] [ "algebra", "ilikejoin", "command algebra.ilikejoin(X_2:bat[:str], X_3:bat[:str], X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:lng, X_8:bit) (X_0:bat[:oid], X_1:bat[:oid]) ", "ILIKEjoin;", "" ] -[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_1:bat[:str], X_2:bat[:str], X_3:str, X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:lng, X_8:bit):bat[:oid] ", "ILIKEjoin_esc1;", "" ] -[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_2:bat[:str], X_3:bat[:str], X_4:str, X_5:bat[:oid], X_6:bat[:oid], X_7:bit, X_8:lng, X_9:bit) (X_0:bat[:oid], X_1:bat[:oid]) ", "ILIKEjoin_esc;", "" ] +[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_1:bat[:str], X_2:bat[:str], X_3:bat[:str], X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:lng, X_8:bit):bat[:oid] ", "ILIKEjoin_esc1;", "" ] +[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_2:bat[:str], X_3:bat[:str], X_4:bat[:str], X_5:bat[:oid], X_6:bat[:oid], X_7:bit, X_8:lng, X_9:bit) (X_0:bat[:oid], X_1:bat[:oid]) ", "ILIKEjoin_esc;", "" ] [ "algebra", "ilikeselect", "command algebra.ilikeselect(X_1:bat[:str], X_2:bat[:oid], X_3:str, X_4:str, X_5:bit):bat[:oid] ", "PCRElikeselect1;", "" ] [ "algebra", "ilikeselect", "command algebra.ilikeselect(X_1:bat[:str], X_2:bat[:oid], X_3:str, X_4:bit):bat[:oid] ", "PCRElikeselect4;", "" ] [ "algebra", "intersect", "command algebra.intersect(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:bit, X_7:lng):bat[:oid] ", "ALGintersect;", "" ] @@ -634,8 +634,8 @@ stdout of test 'MAL-signatures` in direc [ "algebra", "like", "command algebra.like(X_1:str, X_2:str, X_3:str):bit ", "PCRElike3;", "" ] [ "algebra", "likejoin", "command algebra.likejoin(X_1:bat[:str], X_2:bat[:str], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:lng, X_7:bit):bat[:oid] ", "LIKEjoin1;", "" ] [ "algebra", "likejoin", "command algebra.likejoin(X_2:bat[:str], X_3:bat[:str], X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:lng, X_8:bit) (X_0:bat[:oid], X_1:bat[:oid]) ", "LIKEjoin;", "" ] -[ "algebra", "likejoin", "command algebra.likejoin(X_1:bat[:str], X_2:bat[:str], X_3:str, X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:lng, X_8:bit):bat[:oid] ", "LIKEjoin_esc1;", "" ] -[ "algebra", "likejoin", "command algebra.likejoin(X_2:bat[:str], X_3:bat[:str], X_4:str, X_5:bat[:oid], X_6:bat[:oid], X_7:bit, X_8:lng, X_9:bit) (X_0:bat[:oid], X_1:bat[:oid]) ", "LIKEjoin_esc;", "" ] +[ "algebra", "likejoin", "command algebra.likejoin(X_1:bat[:str], X_2:bat[:str], X_3:bat[:str], X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:lng, X_8:bit):bat[:oid] ", "LIKEjoin_esc1;", "" ] +[ "algebra", "likejoin", "command algebra.likejoin(X_2:bat[:str], X_3:bat[:str], X_4:bat[:str], X_5:bat[:oid], X_6:bat[:oid], X_7:bit, X_8:lng, X_9:bit) (X_0:bat[:oid], X_1:bat[:oid]) ", "LIKEjoin_esc;", "" ] [ "algebra", "likeselect", "command algebra.likeselect(X_1:bat[:str], X_2:bat[:oid], X_3:str, X_4:str, X_5:bit, X_6:bit):bat[:oid] ", "PCRElikeselect2;", "" ] [ "algebra", "likeselect", "command algebra.likeselect(X_1:bat[:str], X_2:bat[:oid], X_3:str, X_4:str, X_5:bit):bat[:oid] ", "PCRElikeselect3;", "" ] [ "algebra", "likeselect", "command algebra.likeselect(X_1:bat[:str], X_2:bat[:oid], X_3:str, X_4:bit):bat[:oid] ", "PCRElikeselect5;", "" ] @@ -9111,6 +9111,8 @@ stdout of test 'MAL-signatures` in direc [ "oltp", "table", "unsafe pattern oltp.table() (X_0:bat[:timestamp], X_1:bat[:str], X_2:bat[:int], X_3:bat[:int]) ", "OLTPtable;", "" ] [ "optimizer", "aliases", "pattern optimizer.aliases():str ", "OPTwrapper;", "" ] [ "optimizer", "aliases", "pattern optimizer.aliases(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] +[ "optimizer", "bincopyfrom", "pattern optimizer.bincopyfrom():str ", "OPTwrapper;", "" ] +[ "optimizer", "bincopyfrom", "pattern optimizer.bincopyfrom(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] [ "optimizer", "candidates", "pattern optimizer.candidates():str ", "OPTwrapper;", "" ] [ "optimizer", "candidates", "pattern optimizer.candidates(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] [ "optimizer", "coercions", "pattern optimizer.coercions():str ", "OPTwrapper;", "" ] @@ -9150,8 +9152,8 @@ stdout of test 'MAL-signatures` in direc [ "optimizer", "minimal_pipe", "function optimizer.minimal_pipe():void;", "", "" ] [ "optimizer", "mitosis", "pattern optimizer.mitosis():str ", "OPTwrapper;", "" ] [ "optimizer", "mitosis", "pattern optimizer.mitosis(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] -[ "optimizer", "multiplex", "pattern optimizer.multiplex():void ", "OPTwrapper;", "" ] -[ "optimizer", "multiplex", "pattern optimizer.multiplex(X_1:str, X_2:str):void ", "OPTwrapper;", "" ] +[ "optimizer", "multiplex", "pattern optimizer.multiplex():str ", "OPTwrapper;", "" ] +[ "optimizer", "multiplex", "pattern optimizer.multiplex(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] [ "optimizer", "no_mitosis_pipe", "function optimizer.no_mitosis_pipe():void;", "", "" ] [ "optimizer", "oltp", "pattern optimizer.oltp():str ", "OPTwrapper;", "" ] [ "optimizer", "oltp", "pattern optimizer.oltp(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] @@ -9159,6 +9161,8 @@ stdout of test 'MAL-signatures` in direc [ "optimizer", "optimize", "pattern optimizer.optimize(X_1:str, X_2:str):void ", "QOToptimize;", "" ] [ "optimizer", "orcam", "pattern optimizer.orcam(X_1:str, X_2:str):void ", "OPTorcam;", "" ] [ "optimizer", "orcam", "pattern optimizer.orcam(X_1:str, X_2:str, X_3:str, X_4:str):void ", "OPTorcam;", "" ] +[ "optimizer", "parappend", "pattern optimizer.parappend():str ", "OPTwrapper;", "" ] +[ "optimizer", "parappend", "pattern optimizer.parappend(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] [ "optimizer", "postfix", "pattern optimizer.postfix():str ", "OPTwrapper;", "" ] [ "optimizer", "postfix", "pattern optimizer.postfix(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] [ "optimizer", "prelude", "pattern optimizer.prelude():void ", "optimizer_prelude;", "" ] @@ -9277,6 +9281,9 @@ stdout of test 'MAL-signatures` in direc [ "sql", "analyze", "unsafe pattern sql.analyze(X_1:int, X_2:lng, X_3:str, X_4:str, X_5:str):void ", "sql_analyze;", "" ] [ "sql", "any", "pattern sql.any(X_1:bit, X_2:bit, X_3:bit):bit ", "SQLany_cmp;", "" ] [ "sql", "append", "pattern sql.append(X_1:int, X_2:str, X_3:str, X_4:str, X_5:any):int ", "mvc_append_wrap;", "" ] +[ "sql", "append_exec", "pattern sql.append_exec(X_1:ptr, X_2:any_1):ptr ", "mvc_append_exec_wrap;", "" ] +[ "sql", "append_finish", "pattern sql.append_finish(X_1:int, X_2:ptr...):int ", "mvc_append_finish_wrap;", "" ] +[ "sql", "append_prep", "pattern sql.append_prep(X_2:int, X_3:str, X_4:str, X_5:str...) (X_0:int, X_1:ptr...) ", "mvc_append_prep_wrap;", "" ] [ "sql", "argRecord", "pattern sql.argRecord():str ", "SQLargRecord;", "" ] [ "sql", "argRecord", "pattern sql.argRecord(X_1:any...):str ", "SQLargRecord;", "" ] [ "sql", "assert", "pattern sql.assert(X_1:bit, X_2:str):void ", "SQLassert;", "" ] @@ -9372,7 +9379,8 @@ stdout of test 'MAL-signatures` in direc [ "sql", "grow", "pattern sql.grow(X_1:bat[:oid], X_2:any_1):int ", "mvc_grow_wrap;", "" ] [ "sql", "hot_snapshot", "unsafe command sql.hot_snapshot(X_1:str):void ", "SQLhot_snapshot;", "" ] [ "sql", "hot_snapshot", "unsafe pattern sql.hot_snapshot(X_1:str, X_2:bit):void ", "SQLhot_snapshot_wrap;", "" ] -[ "sql", "importTable", "unsafe pattern sql.importTable(X_1:str, X_2:str, X_3:int, X_4:str...):bat[:any]... ", "mvc_bin_import_table_wrap;", "" ] +[ "sql", "importColumn", "pattern sql.importColumn(X_2:str, X_3:bit, X_4:str, X_5:int, X_6:oid) (X_0:bat[:any], X_1:oid) ", "mvc_bin_import_column_wrap;", "" ] +[ "sql", "importTable", "unsafe pattern sql.importTable(X_1:str, X_2:str, X_3:int, X_4:bit, X_5:str...):bat[:any]... ", "mvc_bin_import_table_wrap;", "" ] [ "sql", "include", "pattern sql.include(X_1:str):void ", "SQLinclude;", "" ] [ "sql", "index", "command sql.index(X_1:str, X_2:bit):bte ", "STRindex_bte;", "" ] [ "sql", "index", "command sql.index(X_1:str, X_2:bit):int ", "STRindex_int;", "" ] @@ -9477,6 +9485,8 @@ stdout of test 'MAL-signatures` in direc [ "sql", "transaction_rollback", "unsafe pattern sql.transaction_rollback(X_1:int, X_2:str):void ", "SQLtransaction_rollback;", "" ] [ "sql", "unionfunc", "pattern sql.unionfunc(X_1:str, X_2:str, X_3:any...):any... ", "SQLunionfunc;", "" ] [ "sql", "update", "pattern sql.update(X_1:int, X_2:str, X_3:str, X_4:str, X_5:any, X_6:any):int ", "mvc_update_wrap;", "" ] +[ "sql", "update_exec", "pattern sql.update_exec(X_1:ptr, X_2:bat[:oid], X_3:bat[:any_1]):ptr ", "mvc_update_exec_wrap;", "" ] +[ "sql", "update_prep", "pattern sql.update_prep(X_2:int, X_3:str, X_4:str, X_5:str...) (X_0:int, X_1:ptr...) ", "mvc_update_prep_wrap;", "" ] [ "sql", "update_schemas", "unsafe pattern sql.update_schemas():void ", "SYSupdate_schemas;", "" ] [ "sql", "update_tables", "unsafe pattern sql.update_tables():void ", "SYSupdate_tables;", "" ] [ "sql", "vacuum", "unsafe pattern sql.vacuum(X_1:str, X_2:str):void ", "SQLvacuum;", "" ] 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 @@ -734,8 +734,8 @@ stdout of test 'MAL-signatures` in direc [ "algebra", "ilike", "command algebra.ilike(X_1:str, X_2:str, X_3:str):bit ", "PCREilike3;", "" ] [ "algebra", "ilikejoin", "command algebra.ilikejoin(X_1:bat[:str], X_2:bat[:str], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:lng, X_7:bit):bat[:oid] ", "ILIKEjoin1;", "" ] [ "algebra", "ilikejoin", "command algebra.ilikejoin(X_2:bat[:str], X_3:bat[:str], X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:lng, X_8:bit) (X_0:bat[:oid], X_1:bat[:oid]) ", "ILIKEjoin;", "" ] -[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_1:bat[:str], X_2:bat[:str], X_3:str, X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:lng, X_8:bit):bat[:oid] ", "ILIKEjoin_esc1;", "" ] -[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_2:bat[:str], X_3:bat[:str], X_4:str, X_5:bat[:oid], X_6:bat[:oid], X_7:bit, X_8:lng, X_9:bit) (X_0:bat[:oid], X_1:bat[:oid]) ", "ILIKEjoin_esc;", "" ] +[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_1:bat[:str], X_2:bat[:str], X_3:bat[:str], X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:lng, X_8:bit):bat[:oid] ", "ILIKEjoin_esc1;", "" ] +[ "algebra", "ilikejoin", "command algebra.ilikejoin(X_2:bat[:str], X_3:bat[:str], X_4:bat[:str], X_5:bat[:oid], X_6:bat[:oid], X_7:bit, X_8:lng, X_9:bit) (X_0:bat[:oid], X_1:bat[:oid]) ", "ILIKEjoin_esc;", "" ] [ "algebra", "ilikeselect", "command algebra.ilikeselect(X_1:bat[:str], X_2:bat[:oid], X_3:str, X_4:str, X_5:bit):bat[:oid] ", "PCRElikeselect1;", "" ] [ "algebra", "ilikeselect", "command algebra.ilikeselect(X_1:bat[:str], X_2:bat[:oid], X_3:str, X_4:bit):bat[:oid] ", "PCRElikeselect4;", "" ] [ "algebra", "intersect", "command algebra.intersect(X_1:bat[:any_1], X_2:bat[:any_1], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:bit, X_7:lng):bat[:oid] ", "ALGintersect;", "" ] @@ -747,8 +747,8 @@ stdout of test 'MAL-signatures` in direc [ "algebra", "like", "command algebra.like(X_1:str, X_2:str, X_3:str):bit ", "PCRElike3;", "" ] [ "algebra", "likejoin", "command algebra.likejoin(X_1:bat[:str], X_2:bat[:str], X_3:bat[:oid], X_4:bat[:oid], X_5:bit, X_6:lng, X_7:bit):bat[:oid] ", "LIKEjoin1;", "" ] [ "algebra", "likejoin", "command algebra.likejoin(X_2:bat[:str], X_3:bat[:str], X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:lng, X_8:bit) (X_0:bat[:oid], X_1:bat[:oid]) ", "LIKEjoin;", "" ] -[ "algebra", "likejoin", "command algebra.likejoin(X_1:bat[:str], X_2:bat[:str], X_3:str, X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:lng, X_8:bit):bat[:oid] ", "LIKEjoin_esc1;", "" ] -[ "algebra", "likejoin", "command algebra.likejoin(X_2:bat[:str], X_3:bat[:str], X_4:str, X_5:bat[:oid], X_6:bat[:oid], X_7:bit, X_8:lng, X_9:bit) (X_0:bat[:oid], X_1:bat[:oid]) ", "LIKEjoin_esc;", "" ] +[ "algebra", "likejoin", "command algebra.likejoin(X_1:bat[:str], X_2:bat[:str], X_3:bat[:str], X_4:bat[:oid], X_5:bat[:oid], X_6:bit, X_7:lng, X_8:bit):bat[:oid] ", "LIKEjoin_esc1;", "" ] +[ "algebra", "likejoin", "command algebra.likejoin(X_2:bat[:str], X_3:bat[:str], X_4:bat[:str], X_5:bat[:oid], X_6:bat[:oid], X_7:bit, X_8:lng, X_9:bit) (X_0:bat[:oid], X_1:bat[:oid]) ", "LIKEjoin_esc;", "" ] [ "algebra", "likeselect", "command algebra.likeselect(X_1:bat[:str], X_2:bat[:oid], X_3:str, X_4:str, X_5:bit, X_6:bit):bat[:oid] ", "PCRElikeselect2;", "" ] [ "algebra", "likeselect", "command algebra.likeselect(X_1:bat[:str], X_2:bat[:oid], X_3:str, X_4:str, X_5:bit):bat[:oid] ", "PCRElikeselect3;", "" ] [ "algebra", "likeselect", "command algebra.likeselect(X_1:bat[:str], X_2:bat[:oid], X_3:str, X_4:bit):bat[:oid] ", "PCRElikeselect5;", "" ] @@ -12413,6 +12413,8 @@ stdout of test 'MAL-signatures` in direc [ "oltp", "table", "unsafe pattern oltp.table() (X_0:bat[:timestamp], X_1:bat[:str], X_2:bat[:int], X_3:bat[:int]) ", "OLTPtable;", "" ] [ "optimizer", "aliases", "pattern optimizer.aliases():str ", "OPTwrapper;", "" ] [ "optimizer", "aliases", "pattern optimizer.aliases(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] +[ "optimizer", "bincopyfrom", "pattern optimizer.bincopyfrom():str ", "OPTwrapper;", "" ] +[ "optimizer", "bincopyfrom", "pattern optimizer.bincopyfrom(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] [ "optimizer", "candidates", "pattern optimizer.candidates():str ", "OPTwrapper;", "" ] [ "optimizer", "candidates", "pattern optimizer.candidates(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] [ "optimizer", "coercions", "pattern optimizer.coercions():str ", "OPTwrapper;", "" ] @@ -12452,8 +12454,8 @@ stdout of test 'MAL-signatures` in direc [ "optimizer", "minimal_pipe", "function optimizer.minimal_pipe():void;", "", "" ] [ "optimizer", "mitosis", "pattern optimizer.mitosis():str ", "OPTwrapper;", "" ] [ "optimizer", "mitosis", "pattern optimizer.mitosis(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] -[ "optimizer", "multiplex", "pattern optimizer.multiplex():void ", "OPTwrapper;", "" ] -[ "optimizer", "multiplex", "pattern optimizer.multiplex(X_1:str, X_2:str):void ", "OPTwrapper;", "" ] +[ "optimizer", "multiplex", "pattern optimizer.multiplex():str ", "OPTwrapper;", "" ] +[ "optimizer", "multiplex", "pattern optimizer.multiplex(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] [ "optimizer", "no_mitosis_pipe", "function optimizer.no_mitosis_pipe():void;", "", "" ] [ "optimizer", "oltp", "pattern optimizer.oltp():str ", "OPTwrapper;", "" ] [ "optimizer", "oltp", "pattern optimizer.oltp(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] @@ -12461,6 +12463,8 @@ stdout of test 'MAL-signatures` in direc [ "optimizer", "optimize", "pattern optimizer.optimize(X_1:str, X_2:str):void ", "QOToptimize;", "" ] [ "optimizer", "orcam", "pattern optimizer.orcam(X_1:str, X_2:str):void ", "OPTorcam;", "" ] [ "optimizer", "orcam", "pattern optimizer.orcam(X_1:str, X_2:str, X_3:str, X_4:str):void ", "OPTorcam;", "" ] +[ "optimizer", "parappend", "pattern optimizer.parappend():str ", "OPTwrapper;", "" ] +[ "optimizer", "parappend", "pattern optimizer.parappend(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] [ "optimizer", "postfix", "pattern optimizer.postfix():str ", "OPTwrapper;", "" ] [ "optimizer", "postfix", "pattern optimizer.postfix(X_1:str, X_2:str):str ", "OPTwrapper;", "" ] [ "optimizer", "prelude", "pattern optimizer.prelude():void ", "optimizer_prelude;", "" ] @@ -12579,6 +12583,9 @@ stdout of test 'MAL-signatures` in direc [ "sql", "analyze", "unsafe pattern sql.analyze(X_1:int, X_2:lng, X_3:str, X_4:str, X_5:str):void ", "sql_analyze;", "" ] [ "sql", "any", "pattern sql.any(X_1:bit, X_2:bit, X_3:bit):bit ", "SQLany_cmp;", "" ] [ "sql", "append", "pattern sql.append(X_1:int, X_2:str, X_3:str, X_4:str, X_5:any):int ", "mvc_append_wrap;", "" ] +[ "sql", "append_exec", "pattern sql.append_exec(X_1:ptr, X_2:any_1):ptr ", "mvc_append_exec_wrap;", "" ] +[ "sql", "append_finish", "pattern sql.append_finish(X_1:int, X_2:ptr...):int ", "mvc_append_finish_wrap;", "" ] +[ "sql", "append_prep", "pattern sql.append_prep(X_2:int, X_3:str, X_4:str, X_5:str...) (X_0:int, X_1:ptr...) ", "mvc_append_prep_wrap;", "" ] [ "sql", "argRecord", "pattern sql.argRecord():str ", "SQLargRecord;", "" ] [ "sql", "argRecord", "pattern sql.argRecord(X_1:any...):str ", "SQLargRecord;", "" ] [ "sql", "assert", "pattern sql.assert(X_1:bit, X_2:str):void ", "SQLassert;", "" ] @@ -12679,7 +12686,8 @@ stdout of test 'MAL-signatures` in direc [ "sql", "grow", "pattern sql.grow(X_1:bat[:oid], X_2:any_1):int ", "mvc_grow_wrap;", "" ] [ "sql", "hot_snapshot", "unsafe command sql.hot_snapshot(X_1:str):void ", "SQLhot_snapshot;", "" ] [ "sql", "hot_snapshot", "unsafe pattern sql.hot_snapshot(X_1:str, X_2:bit):void ", "SQLhot_snapshot_wrap;", "" ] -[ "sql", "importTable", "unsafe pattern sql.importTable(X_1:str, X_2:str, X_3:int, X_4:str...):bat[:any]... ", "mvc_bin_import_table_wrap;", "" ] +[ "sql", "importColumn", "pattern sql.importColumn(X_2:str, X_3:bit, X_4:str, X_5:int, X_6:oid) (X_0:bat[:any], X_1:oid) ", "mvc_bin_import_column_wrap;", "" ] +[ "sql", "importTable", "unsafe pattern sql.importTable(X_1:str, X_2:str, X_3:int, X_4:bit, X_5:str...):bat[:any]... ", "mvc_bin_import_table_wrap;", "" ] [ "sql", "include", "pattern sql.include(X_1:str):void ", "SQLinclude;", "" ] [ "sql", "index", "command sql.index(X_1:str, X_2:bit):bte ", "STRindex_bte;", "" ] [ "sql", "index", "command sql.index(X_1:str, X_2:bit):int ", "STRindex_int;", "" ] @@ -12796,6 +12804,8 @@ stdout of test 'MAL-signatures` in direc [ "sql", "transaction_rollback", "unsafe pattern sql.transaction_rollback(X_1:int, X_2:str):void ", "SQLtransaction_rollback;", "" ] [ "sql", "unionfunc", "pattern sql.unionfunc(X_1:str, X_2:str, X_3:any...):any... ", "SQLunionfunc;", "" ] [ "sql", "update", "pattern sql.update(X_1:int, X_2:str, X_3:str, X_4:str, X_5:any, X_6:any):int ", "mvc_update_wrap;", "" ] +[ "sql", "update_exec", "pattern sql.update_exec(X_1:ptr, X_2:bat[:oid], X_3:bat[:any_1]):ptr ", "mvc_update_exec_wrap;", "" ] +[ "sql", "update_prep", "pattern sql.update_prep(X_2:int, X_3:str, X_4:str, X_5:str...) (X_0:int, X_1:ptr...) ", "mvc_update_prep_wrap;", "" ] [ "sql", "update_schemas", "unsafe pattern sql.update_schemas():void ", "SYSupdate_schemas;", "" ] [ "sql", "update_tables", "unsafe pattern sql.update_tables():void ", "SYSupdate_tables;", "" ] [ "sql", "vacuum", "unsafe pattern sql.vacuum(X_1:str, X_2:str):void ", "SQLvacuum;", "" ] 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 @@ -862,6 +862,7 @@ str OLTPreset(Client cntxt, MalBlkPtr mb str OLTPtable(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); void OPTaliasRemap(InstrPtr p, int *alias); str OPTaliasesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); +str OPTbincopyfromImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str OPTcandidatesImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str OPTcoercionImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str OPTcommonTermsImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); @@ -887,6 +888,7 @@ str OPTmultiplexSimple(Client cntxt, Mal str OPToltpImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci); str OPTorcam(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str OPTorcamImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); +str OPTparappendImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str OPTpostfixImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str OPTprofilerImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); str OPTprojectionpathImplementation(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr p); @@ -1061,6 +1063,9 @@ str alter_viewRef; str andRef; str appendBulkRef; str appendRef; +str append_execRef; +str append_finishRef; +str append_prepRef; str appendidxRef; str arrayRef; str assertRef; @@ -1285,6 +1290,7 @@ str ilikejoinRef; str ilikeselectRef; str ilikethetaselectRef; str ilikeuselectRef; +str importColumnRef; void initHeartbeat(void); void initNamespace(void); void initParser(void); @@ -1662,6 +1668,7 @@ str unpackRef; str unpinRef; str updateRef; void updateScenario(str scen, str nme, MALfcn fcn); +str update_execRef; Module userModule(void); str userRef; size_t usrstatscnt; @@ -1767,6 +1774,7 @@ stream *open_rstream(const char *filenam stream *open_urlstream(const char *url); stream *open_wastream(const char *filename); stream *open_wstream(const char *filename); +void set_prompting(stream *block_stream, const char *prompt, stream *prompt_stream); stream *socket_rstream(SOCKET socket, const char *name); stream *socket_wstream(SOCKET socket, const char *name); stream *stderr_wastream(void); diff --git a/clients/examples/C/CMakeLists.txt b/clients/examples/C/CMakeLists.txt --- a/clients/examples/C/CMakeLists.txt +++ b/clients/examples/C/CMakeLists.txt @@ -45,6 +45,29 @@ if(TESTING) monetdb_config_header stream) + add_executable(bincopydata + bincopydata.c + bincopydata.h + bincopytemporaldata.c + bincopyuuid.c + ) + + target_link_libraries(bincopydata + PRIVATE + monetdb_config_header + copybinary + ) + + add_executable(bincopyloops + bincopyloops.c + ) + + target_link_libraries(bincopyloops + PRIVATE + monetdb_config_header + copybinary + ) + install(TARGETS sample0 sample1 @@ -52,6 +75,7 @@ if(TESTING) smack00 smack01 streamcat + bincopydata RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} diff --git a/clients/examples/C/bincopydata.c b/clients/examples/C/bincopydata.c new file mode 100644 --- /dev/null +++ b/clients/examples/C/bincopydata.c @@ -0,0 +1,357 @@ +#include "bincopydata.h" + +static char *exe_name = "<to_be_filled_in>"; + +static struct gen { + char *name; + void (*gen)(FILE *f, bool byteswap, long nrecs); +} generators[]; + +_Noreturn static void croak(int status, const char *msg, ...) + __attribute__((__format__(__printf__, 2, 3))); + +/* Format the message and write it to stderr. Then exit with the given status. + * If status is 1, include USAGE in the message. + * Otherwise, if errno is set, include the error message. + */ +static void +croak(int status, const char *ctx, ...) +{ + va_list ap; + + fprintf(stderr, "Error: "); + if (ctx != NULL) { + fprintf(stderr, " "); + va_start(ap, ctx); + vfprintf(stderr, ctx, ap); + va_end(ap); + } + fprintf(stderr, "\n"); + if (errno) { + fprintf(stderr, "Possibly due to: %s\n", strerror(errno)); + } else if (status == 1) { + fprintf(stderr, "USAGE: %s TYPE NRECS DESTFILE\n", exe_name); + fprintf(stderr, "TYPE:\n"); + for (struct gen *g = generators; g->name != NULL; g++) { _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list