Changeset: 14dfc2a5855f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=14dfc2a5855f
Removed Files:
        documentation/old/HowToRelease.rst
        documentation/old/HowToStart.rst
        documentation/old/windowsbuild.rst
        sql/test/utf8/create.sql
        sql/test/utf8/load.sql
        sql/test/utf8/provĂ­ncial.dat
        sql/test/utf8/provĂ­ncial.fmt
        sql/test/utf8/query.sql
        sql/test/utf8/run.all
Branch: monetdbe-proxy
Log Message:

Merge with default.


diffs (truncated from 3922 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -783,3 +783,9 @@ bb157905ecb86908dcfb112d102a8c6152557b5d
 94231c85384d893701beeeb69996f57c70fade4d Oct2020_root
 017e44827765fb819d31faefcdf9066dfe593f04 Oct2020_1
 017e44827765fb819d31faefcdf9066dfe593f04 Oct2020_release
+cb4b3f021774b60ffd84c3004d341ec04de736f3 Oct2020_3
+017e44827765fb819d31faefcdf9066dfe593f04 Oct2020_release
+cb4b3f021774b60ffd84c3004d341ec04de736f3 Oct2020_release
+bd91504a03736565fb2dff13cd4c94c738e81aa0 Oct2020_5
+cb4b3f021774b60ffd84c3004d341ec04de736f3 Oct2020_release
+bd91504a03736565fb2dff13cd4c94c738e81aa0 Oct2020_release
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -860,6 +860,16 @@ fi
 %postun -p /sbin/ldconfig
 
 %changelog
+* Tue Oct 13 2020 Sjoerd Mullender <sjo...@acm.org> - 11.39.5-20201013
+- Rebuilt.
+
+* Mon Oct 12 2020 Sjoerd Mullender <sjo...@acm.org> - 11.39.5-20201013
+- clients: mclient and msqldump now also look in $XDG_CONFIG_HOME for the 
monetdb
+  configuration file.
+
+* Fri Oct 09 2020 Sjoerd Mullender <sjo...@acm.org> - 11.39.3-20201009
+- Rebuilt.
+
 * Tue Oct 06 2020 Sjoerd Mullender <sjo...@acm.org> - 11.39.1-20201006
 - Rebuilt.
 - BZ#3553: All schema access to ubiquitous functions
diff --git a/NT/mkodbcwxs.py b/NT/mkodbcwxs.py
--- a/NT/mkodbcwxs.py
+++ b/NT/mkodbcwxs.py
@@ -82,6 +82,7 @@ def main():
                r'bin\stream.dll', # r'lib\stream.pdb',
                vcpkg.format(r'bin\libiconv.dll'),
                vcpkg.format(r'bin\bz2.dll'),
+               vcpkg.format(r'bin\libcharset.dll'), # for libiconv.dll
                vcpkg.format(r'bin\libcrypto-1_1{}.dll'.format(libcrypto)),
                vcpkg.format(r'bin\zlib1.dll')])
     print(r'            </Directory>')
diff --git a/NT/mksqlwxs.py b/NT/mksqlwxs.py
--- a/NT/mksqlwxs.py
+++ b/NT/mksqlwxs.py
@@ -147,8 +147,12 @@ def main():
                r'bin\stream.dll',
                vcpkg.format(r'bin\libiconv.dll'),
                vcpkg.format(r'bin\bz2.dll'),
+               vcpkg.format(r'bin\getopt.dll'),
+               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')])
     # id = comp(debug, id, 14,
@@ -197,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/buildtools/conf/monetdbd.conf.in b/buildtools/conf/monetdbd.conf.in
--- a/buildtools/conf/monetdbd.conf.in
+++ b/buildtools/conf/monetdbd.conf.in
@@ -1,3 +1,3 @@
 # this file is for systemd
 # monetdbd needs a directory in /run that is owned by monetdb:monetdb
-d @RUNDIR@/monetdb 0775 monetdb monetdb -
+d @RUNDIR@ 0775 monetdb monetdb -
diff --git a/clients/ChangeLog-Archive b/clients/ChangeLog-Archive
--- a/clients/ChangeLog-Archive
+++ b/clients/ChangeLog-Archive
@@ -1,6 +1,10 @@
 # DO NOT EDIT THIS FILE -- MAINTAINED AUTOMATICALLY
 # This file contains past ChangeLog entries
 
+* Mon Oct 12 2020 Sjoerd Mullender <sjo...@acm.org> - 11.39.5-20201013
+- mclient and msqldump now also look in $XDG_CONFIG_HOME for the monetdb
+  configuration file.
+
 * Mon Apr 20 2020 Sjoerd Mullender <sjo...@acm.org> - 11.37.1-20200511
 - The monetdb-client-tools (Debian/Ubuntu) and MonetDB-client-tools
   (Fedora/RH) containing the stethoscope, tachograph, and tomograph has
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/clients/mapiclient/dotmonetdb.c b/clients/mapiclient/dotmonetdb.c
--- a/clients/mapiclient/dotmonetdb.c
+++ b/clients/mapiclient/dotmonetdb.c
@@ -19,33 +19,37 @@ parse_dotmonetdb(DotMonetdb *dotfile)
 
        if (dotfile == NULL)
                return;
+       /* if environment variable DOTMONETDBFILE is set, use it */
+       /* 1. use $DOTMONETDBFILE (if set but empty do not read config file);
+        * 2. use .monetdb;
+        * 3. use ${XDG_CONFIG_HOME-$HOME/.config}/monetdb;
+        * 4. use $HOME/.monetdb
+        * (3 is standard shell syntax: use XDG_CONFIG_HOME if set, else use
+        * $HOME/.config in its place)
+        */
        if ((cfile = getenv("DOTMONETDBFILE")) == NULL) {
                /* no environment variable: use a default */
-               if ((config = fopen(".monetdb", "r")) == NULL) {
-                       if ((cfile = getenv("HOME")) != NULL) {
-                               int len = snprintf(buf, sizeof(buf), 
"%s%c.monetdb", cfile, DIR_SEP);
-                               if (len == -1 || len >= FILENAME_MAX) {
-                                       cfile = NULL;
-                               } else {
-                                       config = fopen(buf, "r");
-                                       if (config)
-                                               cfile = strdup(buf);
-                                       else
-                                               cfile = NULL;
+               cfile = ".monetdb";
+               if ((config = fopen(cfile, "r")) == NULL) {
+                       const char *xdg = getenv("XDG_CONFIG_HOME");
+                       const char *home = getenv("HOME");
+                       int len = -1;
+                       cfile = buf;
+                       if (xdg != NULL)
+                               len = snprintf(buf, sizeof(buf), "%s%cmonetdb", 
xdg, DIR_SEP);
+                       else if (home != NULL)
+                               len = snprintf(buf, sizeof(buf), 
"%s%c.config%cmonetdb", home, DIR_SEP, DIR_SEP);
+                       if (len == -1 || len >= FILENAME_MAX || (config = 
fopen(buf, "r")) == NULL) {
+                               if (home) {
+                                       len = snprintf(buf, sizeof(buf), 
"%s%c.monetdb", home, DIR_SEP);
+                                       if (len >= 0 && len < FILENAME_MAX)
+                                               config = fopen(buf, "r");
                                }
                        }
-               } else {
-                       cfile = strdup(".monetdb");
                }
-       } else if (*cfile == 0) {
-               /* empty environment variable: skip the file */
-               cfile = NULL;
-       } else if ((config = fopen(cfile, "r")) == NULL) {
+       } else if (*cfile != 0 && (config = fopen(cfile, "r")) == NULL) {
                fprintf(stderr, "failed to open file '%s': %s\n",
                        cfile, strerror(errno));
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to