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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list