Changeset: 12f96719f26c for MonetDB URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=12f96719f26c Modified Files: clients/Tests/MAL-signatures.stable.out clients/Tests/MAL-signatures.stable.out.int128 sql/backends/monet5/sql.c Branch: default Log Message:
Merge with octbugs branch. diffs (truncated from 698 to 300 lines): diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py --- a/NT/mksqlwxs.py +++ b/NT/mksqlwxs.py @@ -151,6 +151,7 @@ def main(): vcpkg.format(r'bin\libcharset.dll'), # for libiconv.dll vcpkg.format(r'bin\libcrypto-1_1{}.dll'.format(libcrypto)), vcpkg.format(r'bin\libxml2.dll'), + vcpkg.format(r'bin\lz4.dll'), vcpkg.format(r'bin\lzma.dll'), vcpkg.format(r'bin\pcre.dll'), vcpkg.format(r'bin\zlib1.dll')]) @@ -200,8 +201,12 @@ def main(): r'lib\stream.lib', vcpkg.format(r'lib\libiconv.lib'), vcpkg.format(r'lib\bz2.lib'), + vcpkg.format(r'lib\getopt.lib'), + vcpkg.format(r'lib\libcharset.lib'), vcpkg.format(r'lib\libcrypto.lib'), vcpkg.format(r'lib\libxml2.lib'), + vcpkg.format(r'lib\lz4.lib'), + vcpkg.format(r'lib\lzma.lib'), vcpkg.format(r'lib\pcre.lib'), vcpkg.format(r'lib\zlib.lib')]) print(r' </Directory>') 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 @@ -4717,9 +4717,6 @@ stdout of test 'MAL-signatures` in direc [ "batcalc", "ifthenelse", "pattern batcalc.ifthenelse(X_1:bit, X_2:any_1, X_3:bat[:any_1]):bat[:any_1] ", "CMDifthen;", "" ] [ "batcalc", "ifthenelse", "pattern batcalc.ifthenelse(X_1:bit, X_2:bat[:any_1], X_3:any_1):bat[:any_1] ", "CMDifthen;", "" ] [ "batcalc", "ifthenelse", "pattern batcalc.ifthenelse(X_1:bit, X_2:bat[:any_1], X_3:bat[:any_1]):bat[:any_1] ", "CMDifthen;", "" ] -[ "batcalc", "index", "command batcalc.index(X_1:bat[:str], X_2:bit):bat[:bte] ", "BATSTRindex_bte;", "" ] -[ "batcalc", "index", "command batcalc.index(X_1:bat[:str], X_2:bit):bat[:int] ", "BATSTRindex_int;", "" ] -[ "batcalc", "index", "command batcalc.index(X_1:bat[:str], X_2:bit):bat[:sht] ", "BATSTRindex_sht;", "" ] [ "batcalc", "int", "pattern batcalc.int(X_1:bat[:bit]):bat[:int] ", "CMDconvertsignal_int;", "" ] [ "batcalc", "int", "pattern batcalc.int(X_1:bat[:bit], X_2:bat[:oid]):bat[:int] ", "CMDconvertsignal_int;", "" ] [ "batcalc", "int", "pattern batcalc.int(X_1:bat[:bte]):bat[:int] ", "CMDconvertsignal_int;", "" ] @@ -5750,7 +5747,6 @@ stdout of test 'MAL-signatures` in direc [ "batcalc", "str", "pattern batcalc.str(X_1:int, X_2:int, X_3:int, X_4:int, X_5:bat[:any_1], X_6:int):bat[:str] ", "SQLbatstr_cast;", "" ] [ "batcalc", "str_noerror", "pattern batcalc.str_noerror(X_1:bat[:any]):bat[:str] ", "CMDconvert_str;", "" ] [ "batcalc", "str_noerror", "pattern batcalc.str_noerror(X_1:bat[:any], X_2:bat[:oid]):bat[:str] ", "CMDconvert_str;", "" ] -[ "batcalc", "strings", "command batcalc.strings(X_1:bat[:str]):bat[:str] ", "BATSTRstrings;", "" ] [ "batcalc", "sub_noerror", "pattern batcalc.sub_noerror(X_1:bat[:bte], X_2:bat[:bte], X_3:bat[:oid], X_4:bat[:oid]):bat[:bte] ", "CMDbatSUB;", "" ] [ "batcalc", "sub_noerror", "pattern batcalc.sub_noerror(X_1:bat[:bte], X_2:bat[:dbl], X_3:bat[:oid], X_4:bat[:oid]):bat[:dbl] ", "CMDbatSUB;", "" ] [ "batcalc", "sub_noerror", "pattern batcalc.sub_noerror(X_1:bat[:bte], X_2:bat[:flt], X_3:bat[:oid], X_4:bat[:oid]):bat[:flt] ", "CMDbatSUB;", "" ] @@ -6340,6 +6336,9 @@ stdout of test 'MAL-signatures` in direc [ "batsql", "get_value", "pattern batsql.get_value(X_1:bat[:str], X_2:bat[:str]):bat[:lng] ", "mvc_bat_get_value;", "" ] [ "batsql", "get_value", "pattern batsql.get_value(X_1:bat[:str], X_2:str):bat[:lng] ", "mvc_bat_get_value;", "" ] [ "batsql", "get_value", "pattern batsql.get_value(X_1:str, X_2:bat[:str]):bat[:lng] ", "mvc_bat_get_value;", "" ] +[ "batsql", "index", "command batsql.index(X_1:bat[:str], X_2:bit):bat[:bte] ", "BATSTRindex_bte;", "" ] +[ "batsql", "index", "command batsql.index(X_1:bat[:str], X_2:bit):bat[:int] ", "BATSTRindex_int;", "" ] +[ "batsql", "index", "command batsql.index(X_1:bat[:str], X_2:bit):bat[:sht] ", "BATSTRindex_sht;", "" ] [ "batsql", "lag", "pattern batsql.lag(X_1:any_1, X_2:any, X_3:bat[:any_1], X_4:any_2, X_5:any_3):bat[:any_1] ", "SQLlag;", "" ] [ "batsql", "lag", "pattern batsql.lag(X_1:any_1, X_2:bat[:any], X_3:any_1, X_4:any_2, X_5:any_3):bat[:any_1] ", "SQLlag;", "" ] [ "batsql", "lag", "pattern batsql.lag(X_1:any_1, X_2:bat[:any], X_3:any_2, X_4:any_3):bat[:any_1] ", "SQLlag;", "" ] @@ -6414,6 +6413,7 @@ stdout of test 'MAL-signatures` in direc [ "batsql", "str_group_concat", "pattern batsql.str_group_concat(X_1:bat[:str], X_2:bat[:str], X_3:bat[:lng], X_4:bat[:lng]):bat[:str] ", "SQLstrgroup_concat;", "" ] [ "batsql", "str_group_concat", "pattern batsql.str_group_concat(X_1:bat[:str], X_2:str, X_3:bat[:lng], X_4:bat[:lng]):bat[:str] ", "SQLstrgroup_concat;", "" ] [ "batsql", "str_group_concat", "pattern batsql.str_group_concat(X_1:str, X_2:bat[:str], X_3:lng, X_4:lng):bat[:str] ", "SQLstrgroup_concat;", "" ] +[ "batsql", "strings", "command batsql.strings(X_1:bat[:str]):bat[:str] ", "BATSTRstrings;", "" ] [ "batsql", "sum", "pattern batsql.sum(X_1:bat[:bte], X_2:bat[:lng], X_3:bat[:lng]):bat[:lng] ", "SQLsum;", "" ] [ "batsql", "sum", "pattern batsql.sum(X_1:bat[:dbl], X_2:bat[:lng], X_3:bat[:lng]):bat[:dbl] ", "SQLsum;", "" ] [ "batsql", "sum", "pattern batsql.sum(X_1:bat[:flt], X_2:bat[:lng], X_3:bat[:lng]):bat[:dbl] ", "SQLsum;", "" ] @@ -7863,9 +7863,6 @@ stdout of test 'MAL-signatures` in direc [ "calc", "hash", "pattern calc.hash(X_1:sht):lng ", "MKEYhash;", "" ] [ "calc", "identity", "command calc.identity(X_1:any):oid ", "SQLidentity;", "" ] [ "calc", "ifthenelse", "pattern calc.ifthenelse(X_1:bit, X_2:any_1, X_3:any_1):any_1 ", "CALCswitchbit;", "" ] -[ "calc", "index", "command calc.index(X_1:str, X_2:bit):bte ", "STRindex_bte;", "" ] -[ "calc", "index", "command calc.index(X_1:str, X_2:bit):int ", "STRindex_int;", "" ] -[ "calc", "index", "command calc.index(X_1:str, X_2:bit):sht ", "STRindex_sht;", "" ] [ "calc", "inet", "command calc.inet(X_1:str):inet ", "INET_fromstr;", "" ] [ "calc", "inet", "command calc.inet(X_1:inet):inet ", "INET_inet;", "" ] [ "calc", "int", "pattern calc.int(X_1:bit):int ", "CMDvarCONVERT;", "" ] @@ -8212,7 +8209,6 @@ stdout of test 'MAL-signatures` in direc [ "calc", "str", "pattern calc.str(X_1:any):str ", "CMDvarCONVERT;", "" ] [ "calc", "str", "pattern calc.str(X_1:int, X_2:int, X_3:int, X_4:int, X_5:any_1, X_6:int):str ", "SQLstr_cast;", "" ] [ "calc", "str", "command calc.str(X_1:uuid):str ", "UUIDuuid2str;", "" ] -[ "calc", "strings", "command calc.strings(X_1:str):str ", "STRstrings;", "" ] [ "calc", "sub_noerror", "pattern calc.sub_noerror(X_1:bte, X_2:bte):bte ", "CMDvarSUB;", "" ] [ "calc", "sub_noerror", "pattern calc.sub_noerror(X_1:bte, X_2:dbl):dbl ", "CMDvarSUB;", "" ] [ "calc", "sub_noerror", "pattern calc.sub_noerror(X_1:bte, X_2:flt):flt ", "CMDvarSUB;", "" ] @@ -9259,6 +9255,9 @@ stdout of test 'MAL-signatures` in direc [ "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", "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;", "" ] +[ "sql", "index", "command sql.index(X_1:str, X_2:bit):sht ", "STRindex_sht;", "" ] [ "sql", "lag", "pattern sql.lag(X_1:any_1, X_2:any, X_3:any_1, X_4:bit, X_5:bit):any_1 ", "SQLlag;", "" ] [ "sql", "lag", "pattern sql.lag(X_1:any_1, X_2:any, X_3:bit, X_4:bit):any_1 ", "SQLlag;", "" ] [ "sql", "lag", "pattern sql.lag(X_1:any_1, X_2:bit, X_3:bit):any_1 ", "SQLlag;", "" ] @@ -9358,6 +9357,7 @@ stdout of test 'MAL-signatures` in direc [ "sql", "storage", "pattern sql.storage(X_17:str, X_18:str, X_19:str) (X_0:bat[:str], X_1:bat[:str], X_2:bat[:str], X_3:bat[:str], X_4:bat[:str], X_5:bat[:str], X_6:bat[:lng], X_7:bat[:int], X_8:bat[:lng], X_9:bat[:lng], X_10:bat[:lng], X_11:bat[:bit], X_12:bat[:lng], X_13:bat[:bit], X_14:bat[:bit], X_15:bat[:bit], X_16:bat[:lng]) ", "sql_storage;", "" ] [ "sql", "str_group_concat", "pattern sql.str_group_concat(X_1:str, X_2:lng, X_3:lng):str ", "SQLstrgroup_concat;", "" ] [ "sql", "str_group_concat", "pattern sql.str_group_concat(X_1:str, X_2:str, X_3:lng, X_4:lng):str ", "SQLstrgroup_concat;", "" ] +[ "sql", "strings", "command sql.strings(X_1:str):str ", "STRstrings;", "" ] [ "sql", "subdelta", "command sql.subdelta(X_1:bat[:oid], X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid]):bat[:oid] ", "DELTAsub2;", "" ] [ "sql", "subdelta", "command sql.subdelta(X_1:bat[:oid], X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid], X_5:bat[:oid]):bat[:oid] ", "DELTAsub;", "" ] [ "sql", "sum", "pattern sql.sum(X_1:bte, X_2:lng, X_3:lng):lng ", "SQLsum;", "" ] 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 @@ -6793,9 +6793,6 @@ stdout of test 'MAL-signatures` in direc [ "batcalc", "ifthenelse", "pattern batcalc.ifthenelse(X_1:bit, X_2:any_1, X_3:bat[:any_1]):bat[:any_1] ", "CMDifthen;", "" ] [ "batcalc", "ifthenelse", "pattern batcalc.ifthenelse(X_1:bit, X_2:bat[:any_1], X_3:any_1):bat[:any_1] ", "CMDifthen;", "" ] [ "batcalc", "ifthenelse", "pattern batcalc.ifthenelse(X_1:bit, X_2:bat[:any_1], X_3:bat[:any_1]):bat[:any_1] ", "CMDifthen;", "" ] -[ "batcalc", "index", "command batcalc.index(X_1:bat[:str], X_2:bit):bat[:bte] ", "BATSTRindex_bte;", "" ] -[ "batcalc", "index", "command batcalc.index(X_1:bat[:str], X_2:bit):bat[:int] ", "BATSTRindex_int;", "" ] -[ "batcalc", "index", "command batcalc.index(X_1:bat[:str], X_2:bit):bat[:sht] ", "BATSTRindex_sht;", "" ] [ "batcalc", "int", "pattern batcalc.int(X_1:bat[:bit]):bat[:int] ", "CMDconvertsignal_int;", "" ] [ "batcalc", "int", "pattern batcalc.int(X_1:bat[:bit], X_2:bat[:oid]):bat[:int] ", "CMDconvertsignal_int;", "" ] [ "batcalc", "int", "pattern batcalc.int(X_1:bat[:bte]):bat[:int] ", "CMDconvertsignal_int;", "" ] @@ -8274,7 +8271,6 @@ stdout of test 'MAL-signatures` in direc [ "batcalc", "str", "pattern batcalc.str(X_1:int, X_2:int, X_3:int, X_4:int, X_5:bat[:any_1], X_6:int):bat[:str] ", "SQLbatstr_cast;", "" ] [ "batcalc", "str_noerror", "pattern batcalc.str_noerror(X_1:bat[:any]):bat[:str] ", "CMDconvert_str;", "" ] [ "batcalc", "str_noerror", "pattern batcalc.str_noerror(X_1:bat[:any], X_2:bat[:oid]):bat[:str] ", "CMDconvert_str;", "" ] -[ "batcalc", "strings", "command batcalc.strings(X_1:bat[:str]):bat[:str] ", "BATSTRstrings;", "" ] [ "batcalc", "sub_noerror", "pattern batcalc.sub_noerror(X_1:bat[:bte], X_2:bat[:bte], X_3:bat[:oid], X_4:bat[:oid]):bat[:bte] ", "CMDbatSUB;", "" ] [ "batcalc", "sub_noerror", "pattern batcalc.sub_noerror(X_1:bat[:bte], X_2:bat[:dbl], X_3:bat[:oid], X_4:bat[:oid]):bat[:dbl] ", "CMDbatSUB;", "" ] [ "batcalc", "sub_noerror", "pattern batcalc.sub_noerror(X_1:bat[:bte], X_2:bat[:flt], X_3:bat[:oid], X_4:bat[:oid]):bat[:flt] ", "CMDbatSUB;", "" ] @@ -8921,6 +8917,9 @@ stdout of test 'MAL-signatures` in direc [ "batsql", "get_value", "pattern batsql.get_value(X_1:bat[:str], X_2:bat[:str]):bat[:lng] ", "mvc_bat_get_value;", "" ] [ "batsql", "get_value", "pattern batsql.get_value(X_1:bat[:str], X_2:str):bat[:lng] ", "mvc_bat_get_value;", "" ] [ "batsql", "get_value", "pattern batsql.get_value(X_1:str, X_2:bat[:str]):bat[:lng] ", "mvc_bat_get_value;", "" ] +[ "batsql", "index", "command batsql.index(X_1:bat[:str], X_2:bit):bat[:bte] ", "BATSTRindex_bte;", "" ] +[ "batsql", "index", "command batsql.index(X_1:bat[:str], X_2:bit):bat[:int] ", "BATSTRindex_int;", "" ] +[ "batsql", "index", "command batsql.index(X_1:bat[:str], X_2:bit):bat[:sht] ", "BATSTRindex_sht;", "" ] [ "batsql", "lag", "pattern batsql.lag(X_1:any_1, X_2:any, X_3:bat[:any_1], X_4:any_2, X_5:any_3):bat[:any_1] ", "SQLlag;", "" ] [ "batsql", "lag", "pattern batsql.lag(X_1:any_1, X_2:bat[:any], X_3:any_1, X_4:any_2, X_5:any_3):bat[:any_1] ", "SQLlag;", "" ] [ "batsql", "lag", "pattern batsql.lag(X_1:any_1, X_2:bat[:any], X_3:any_2, X_4:any_3):bat[:any_1] ", "SQLlag;", "" ] @@ -9003,6 +9002,7 @@ stdout of test 'MAL-signatures` in direc [ "batsql", "str_group_concat", "pattern batsql.str_group_concat(X_1:bat[:str], X_2:bat[:str], X_3:bat[:lng], X_4:bat[:lng]):bat[:str] ", "SQLstrgroup_concat;", "" ] [ "batsql", "str_group_concat", "pattern batsql.str_group_concat(X_1:bat[:str], X_2:str, X_3:bat[:lng], X_4:bat[:lng]):bat[:str] ", "SQLstrgroup_concat;", "" ] [ "batsql", "str_group_concat", "pattern batsql.str_group_concat(X_1:str, X_2:bat[:str], X_3:lng, X_4:lng):bat[:str] ", "SQLstrgroup_concat;", "" ] +[ "batsql", "strings", "command batsql.strings(X_1:bat[:str]):bat[:str] ", "BATSTRstrings;", "" ] [ "batsql", "sum", "pattern batsql.sum(X_1:bat[:bte], X_2:bat[:lng], X_3:bat[:lng]):bat[:hge] ", "SQLsum;", "" ] [ "batsql", "sum", "pattern batsql.sum(X_1:bat[:bte], X_2:bat[:lng], X_3:bat[:lng]):bat[:lng] ", "SQLsum;", "" ] [ "batsql", "sum", "pattern batsql.sum(X_1:bat[:dbl], X_2:bat[:lng], X_3:bat[:lng]):bat[:dbl] ", "SQLsum;", "" ] @@ -11037,9 +11037,6 @@ stdout of test 'MAL-signatures` in direc [ "calc", "hge", "command calc.hge(X_1:str, X_2:int, X_3:int):hge ", "str_2dec_hge;", "" ] [ "calc", "identity", "command calc.identity(X_1:any):oid ", "SQLidentity;", "" ] [ "calc", "ifthenelse", "pattern calc.ifthenelse(X_1:bit, X_2:any_1, X_3:any_1):any_1 ", "CALCswitchbit;", "" ] -[ "calc", "index", "command calc.index(X_1:str, X_2:bit):bte ", "STRindex_bte;", "" ] -[ "calc", "index", "command calc.index(X_1:str, X_2:bit):int ", "STRindex_int;", "" ] -[ "calc", "index", "command calc.index(X_1:str, X_2:bit):sht ", "STRindex_sht;", "" ] [ "calc", "inet", "command calc.inet(X_1:str):inet ", "INET_fromstr;", "" ] [ "calc", "inet", "command calc.inet(X_1:inet):inet ", "INET_inet;", "" ] [ "calc", "int", "pattern calc.int(X_1:bit):int ", "CMDvarCONVERT;", "" ] @@ -11522,7 +11519,6 @@ stdout of test 'MAL-signatures` in direc [ "calc", "str", "pattern calc.str(X_1:any):str ", "CMDvarCONVERT;", "" ] [ "calc", "str", "pattern calc.str(X_1:int, X_2:int, X_3:int, X_4:int, X_5:any_1, X_6:int):str ", "SQLstr_cast;", "" ] [ "calc", "str", "command calc.str(X_1:uuid):str ", "UUIDuuid2str;", "" ] -[ "calc", "strings", "command calc.strings(X_1:str):str ", "STRstrings;", "" ] [ "calc", "sub_noerror", "pattern calc.sub_noerror(X_1:bte, X_2:bte):bte ", "CMDvarSUB;", "" ] [ "calc", "sub_noerror", "pattern calc.sub_noerror(X_1:bte, X_2:dbl):dbl ", "CMDvarSUB;", "" ] [ "calc", "sub_noerror", "pattern calc.sub_noerror(X_1:bte, X_2:flt):flt ", "CMDvarSUB;", "" ] @@ -12606,6 +12602,9 @@ stdout of test 'MAL-signatures` in direc [ "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", "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;", "" ] +[ "sql", "index", "command sql.index(X_1:str, X_2:bit):sht ", "STRindex_sht;", "" ] [ "sql", "lag", "pattern sql.lag(X_1:any_1, X_2:any, X_3:any_1, X_4:bit, X_5:bit):any_1 ", "SQLlag;", "" ] [ "sql", "lag", "pattern sql.lag(X_1:any_1, X_2:any, X_3:bit, X_4:bit):any_1 ", "SQLlag;", "" ] [ "sql", "lag", "pattern sql.lag(X_1:any_1, X_2:bit, X_3:bit):any_1 ", "SQLlag;", "" ] @@ -12713,6 +12712,7 @@ stdout of test 'MAL-signatures` in direc [ "sql", "storage", "pattern sql.storage(X_17:str, X_18:str, X_19:str) (X_0:bat[:str], X_1:bat[:str], X_2:bat[:str], X_3:bat[:str], X_4:bat[:str], X_5:bat[:str], X_6:bat[:lng], X_7:bat[:int], X_8:bat[:lng], X_9:bat[:lng], X_10:bat[:lng], X_11:bat[:bit], X_12:bat[:lng], X_13:bat[:bit], X_14:bat[:bit], X_15:bat[:bit], X_16:bat[:lng]) ", "sql_storage;", "" ] [ "sql", "str_group_concat", "pattern sql.str_group_concat(X_1:str, X_2:lng, X_3:lng):str ", "SQLstrgroup_concat;", "" ] [ "sql", "str_group_concat", "pattern sql.str_group_concat(X_1:str, X_2:str, X_3:lng, X_4:lng):str ", "SQLstrgroup_concat;", "" ] +[ "sql", "strings", "command sql.strings(X_1:str):str ", "STRstrings;", "" ] [ "sql", "subdelta", "command sql.subdelta(X_1:bat[:oid], X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid]):bat[:oid] ", "DELTAsub2;", "" ] [ "sql", "subdelta", "command sql.subdelta(X_1:bat[:oid], X_2:bat[:oid], X_3:bat[:oid], X_4:bat[:oid], X_5:bat[:oid]):bat[:oid] ", "DELTAsub;", "" ] [ "sql", "sum", "pattern sql.sum(X_1:bte, X_2:lng, X_3:lng):hge ", "SQLsum;", "" ] diff --git a/common/stream/stdio_stream.c b/common/stream/stdio_stream.c --- a/common/stream/stdio_stream.c +++ b/common/stream/stdio_stream.c @@ -165,6 +165,7 @@ file_fsetpos(stream *restrict s, fpos_t /* convert a string from UTF-8 to wide characters; the return value is * freshly allocated */ +#ifdef HAVE__WFOPEN static wchar_t * utf8towchar(const char *src) { @@ -246,6 +247,8 @@ utf8towchar(const char *src) return dest; } +#else + static char * cvfilename(const char *filename) { @@ -281,6 +284,7 @@ cvfilename(const char *filename) * locale's encoding is not UTF-8) */ return strdup(filename); } +#endif stream * @@ -297,7 +301,6 @@ open_stream(const char *restrict filenam { wchar_t *wfname = utf8towchar(filename); wchar_t *wflags = utf8towchar(flags); - (void)cvfilename; if (wfname != NULL && wflags != NULL) fp = _wfopen(wfname, wflags); else @@ -310,7 +313,6 @@ open_stream(const char *restrict filenam #else { char *fname = cvfilename(filename); - (void)utf8towchar; if (fname) { fp = fopen(fname, flags); free(fname); @@ -498,3 +500,24 @@ getFileSize(stream *s) return (size_t) stb.st_size; return 0; /* unknown */ } + +int +file_remove(const char *filename) +{ + int rc = -1; + +#ifdef HAVE__WFOPEN + wchar_t *wfname = utf8towchar(filename); + if (wfname != NULL) { + rc = _wremove(wfname); + free(wfname); + } +#else + char *fname = cvfilename(filename); + if (fname) { + rc = remove(fname); + free(fname); + } +#endif + return rc; +} diff --git a/common/stream/stream.c b/common/stream/stream.c --- a/common/stream/stream.c +++ b/common/stream/stream.c @@ -851,7 +851,7 @@ open_rstream(const char *filename) stream *c = compressed_stream(s, 0); if (c == NULL) - mnstr_close(s); + mnstr_destroy(s); return c; } @@ -870,8 +870,10 @@ open_wstream(const char *filename) return NULL; stream *c = compressed_stream(s, 0); - if (c == NULL) - mnstr_close(s); + if (c == NULL) { + mnstr_destroy(s); + file_remove(filename); + } return c; } @@ -890,7 +892,7 @@ open_rastream(const char *filename) stream *t = create_text_stream(s); if (t == NULL) - mnstr_close(s); + mnstr_destroy(s); return t; } @@ -908,8 +910,10 @@ open_wastream(const char *filename) return NULL; stream *t = create_text_stream(s); - if (t == NULL) - mnstr_close(s); + if (t == NULL) { + mnstr_destroy(s); + file_remove(filename); + } return t; } diff --git a/common/stream/stream_internal.h b/common/stream/stream_internal.h --- a/common/stream/stream_internal.h +++ b/common/stream/stream_internal.h @@ -207,6 +207,9 @@ stream *open_stream(const char *restrict stream *file_stream(const char *name) __attribute__((__visibility__("hidden"))); +int file_remove(const char *filename) + __attribute__((__visibility__("hidden"))); + _______________________________________________ checkin-list mailing list checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list