Changeset: 70f26194695f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/70f26194695f
Modified Files:
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        gdk/gdk_batop.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_upgrades.c
        sql/storage/bat/bat_storage.c
        sql/storage/sql_storage.h
        sql/storage/store.c
        
sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.int128
        sql/test/emptydb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit
        sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
        sql/test/emptydb/Tests/check.stable.out
        sql/test/emptydb/Tests/check.stable.out.int128
        
sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
        sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/upgrade.stable.out
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: analyze-fix
Log Message:

Merged with Jan2022


diffs (truncated from 81809 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -820,3 +820,5 @@ 65065954ca086d01254a20cc145695fa8b9a3db2
 4b353b1f914e3c9c7493117284f9cc06677e4c71 Jul2021_SP1_release
 65065954ca086d01254a20cc145695fa8b9a3db2 Jul2021_SP1_release
 014b82412e664a306d2f5d3a2a2d49d75a6f8da5 Jan2022_root
+1cc77329e40543d12dd9de04cbeec50d442520e9 Jul2021_13
+1cc77329e40543d12dd9de04cbeec50d442520e9 Jul2021_SP2_release
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -81,7 +81,7 @@ Group: Applications/Databases
 License: MPLv2.0
 URL: https://www.monetdb.org/
 BugURL: https://bugs.monetdb.org/
-Source: 
https://www.monetdb.org/downloads/sources/Jul2021-SP1/%{name}-%{version}.tar.bz2
+Source: 
https://www.monetdb.org/downloads/sources/Jul2021-SP2/%{name}-%{version}.tar.bz2
 
 # The Fedora packaging document says we need systemd-rpm-macros for
 # the _unitdir and _tmpfilesdir macros to exist; however on RHEL 7
@@ -848,6 +848,40 @@ fi
 %endif
 
 %changelog
+* Mon Dec 13 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.13-20211213
+- Rebuilt.
+- GH#7163: Multiple sql.mvc() invocations in the same query
+- GH#7167: sys.shutdown() problems
+- GH#7184: Insert into query blocks all other queries
+- GH#7185: GROUPING SETS on groups with aliases provided in the SELECT
+  returns empty result
+- GH#7186: data files created with COPY SELECT .. INTO 'file.csv' fail to
+  be loaded using COPY INTO .. FROM 'file.csv' when double quoted string
+  data contains the field values delimiter character
+- GH#7191: [MonetDBe] monetdbe_cleanup_statement() with bound NULLs on
+  variable-sized types bug
+- GH#7196: BATproject2: does not match always
+- GH#7198: Suboptimal query plan for query containing JSON access filter
+  and two negative string comparisons
+- GH#7200: PRIMARY KEY unique constraint is violated with concurrent
+  inserts
+- GH#7206: Python UDF fails when returning an empty table as a dictionary
+
+* Mon Dec 13 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.13-20211213
+- clients: Dumping the database now also dumps the read-only and insert-only
+  states of tables.
+
+* Mon Dec 13 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.13-20211213
+- gdk: Sometimes when the server was restarted, it wouldn't start anymore due
+  to an error from BBPcheckbats.  We finally found and fixed a (hopefully
+  "the") cause of this problem.
+
+* Thu Oct 28 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.13-20211213
+- sql: Number parsing for SQL was fixed.  If a number was immediately followed
+  by letters (i.e. without a space), the number was accepted and the
+  alphanumeric string starting with the letter was interpreted as an alias
+  (if aliases were allowed in that position).
+
 * Thu Sep 30 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.11-20210930
 - Rebuilt.
 
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 Dec 13 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.13-20211213
+- Dumping the database now also dumps the read-only and insert-only
+  states of tables.
+
 * Tue Jul 20 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.1-20210723
 - The MonetDB stethoscope has been removed.  There is now a separate
   package available with PIP (monetdb_stethoscope) or as an RPM or DEB
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
@@ -6350,6 +6350,8 @@
 [ "batsql",    "diff", "pattern batsql.diff(X_0:bat[:bit], 
X_1:bat[:any_1]):bat[:bit] ",       "SQLdiff;",     "return true if cur != prev 
row"        ]
 [ "batsql",    "diff", "pattern batsql.diff(X_0:bit, 
X_1:bat[:any_1]):bat[:bit] ",     "SQLdiff;",     "return true if cur != prev 
row"        ]
 [ "batsql",    "first_value",  "pattern batsql.first_value(X_0:bat[:any_1], 
X_1:any, X_2:any, X_3:int, X_4:any, X_5:any):bat[:any_1] ",        
"SQLfirst_value;",      "return the first value of groups"      ]
+[ "batsql",    "get_value",    "pattern batsql.get_value(X_0:bat[:str], 
X_1:bat[:str]):bat[:lng] ",    "mvc_get_value_bulk;",  "return the current 
value of the sequence (ie the next to be used value)"       ]
+[ "batsql",    "get_value",    "pattern batsql.get_value(X_0:bat[:str], 
X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng] ",      
"mvc_get_value_bulk;",  "return the current value of the sequence (ie the next 
to be used value)"       
 [ "batsql",    "index",        "command batsql.index(X_0:bat[:str], 
X_1:bit):bat[:bte] ",      "BATSTRindex_bte;",     "Return the offsets as an 
index bat"    ]
 [ "batsql",    "index",        "command batsql.index(X_0:bat[:str], 
X_1:bit):bat[:int] ",      "BATSTRindex_int;",     "Return the offsets as an 
index bat"    ]
 [ "batsql",    "index",        "command batsql.index(X_0:bat[:str], 
X_1:bit):bat[:sht] ",      "BATSTRindex_sht;",     "Return the offsets as an 
index bat"    ]
@@ -6386,8 +6388,6 @@
 [ "batsql",    "ntile",        "pattern batsql.ntile(X_0:bat[:any], X_1:any_1, 
X_2:any_2, X_3:any_3):bat[:any_1] ",    "SQLntile;",    "return the groups 
divided as equally as possible"      ]
 [ "batsql",    "ntile",        "pattern batsql.ntile(X_0:bat[:any], 
X_1:bat[:any_1], X_2:any_2, X_3:any_3):bat[:any_1] ",      "SQLntile;",    
"return the groups divided as equally as possible"      ]
 [ "batsql",    "password",     "pattern 
batsql.password(X_0:bat[:str]):bat[:str] ",    "db_password_wrap;",    "Return 
password hash of user"  ]
-[ "batsql",    "peak_next_value",      "pattern 
batsql.peak_next_value(X_0:bat[:str], X_1:bat[:str]):bat[:lng] ",      
"mvc_peak_next_value_bulk;",    "Peaks at the next value of the sequence"       
]
-[ "batsql",    "peak_next_value",      "pattern 
batsql.peak_next_value(X_0:bat[:str], X_1:bat[:str], X_2:bat[:oid], 
X_3:bat[:oid]):bat[:lng] ",        "mvc_peak_next_value_bulk;",    "Peaks at 
the next value of the sequence"       ]
 [ "batsql",    "percent_rank", "pattern batsql.percent_rank(X_0:bat[:any_1], 
X_1:any_2, X_2:any_3):bat[:dbl] ",        "SQLpercent_rank;",     "return the 
percentage into the total number of groups for each row"    ]
 [ "batsql",    "prod", "pattern batsql.prod(X_0:bat[:bte], X_1:any, X_2:any, 
X_3:int, X_4:any, X_5:any):bat[:lng] ",   "SQLprod;",     "return the product 
of groups"  ]
 [ "batsql",    "prod", "pattern batsql.prod(X_0:bat[:dbl], X_1:any, X_2:any, 
X_3:int, X_4:any, X_5:any):bat[:dbl] ",   "SQLprod;",     "return the product 
of groups"  ]
@@ -9077,6 +9077,7 @@
 [ "netcdf",    "importvar",    "unsafe command netcdf.importvar(X_0:str, 
X_1:int):str ",       "NCDFimportVarStmt;",   "Import variable: compose create 
array string"  ]
 [ "netcdf",    "importvariable",       "unsafe pattern 
netcdf.importvariable(X_0:int, X_1:str):void ", "NCDFimportVariable;",  "Import 
variable: create array and load data from variable varname of file fileid"      
]
 [ "netcdf",    "test", "command netcdf.test(X_0:str):int ",    "NCDFtest;",    
"Returns number of variables in a given NetCDF dataset (file)"  ]
+[ "oltp",      "assert",       "pattern oltp.assert(X_0:bit, X_1:str):void ",  
"OLTPassert;",  "Generate an exception when b==true"    ]
 [ "oltp",      "disable",      "unsafe pattern oltp.disable():void ",  
"OLTPdisable;", "Disable the OLTP delay monitor"        ]
 [ "oltp",      "enable",       "unsafe pattern oltp.enable():void ",   
"OLTPenable;",  "Enable the OLTP delay monitor" ]
 [ "oltp",      "init", "unsafe pattern oltp.init():void ",     "OLTPinit;",    
"Initialize the lock table"     ]
@@ -9361,7 +9362,7 @@
 [ "sql",       "first_value",  "pattern sql.first_value(X_0:any_1, X_1:bit, 
X_2:bit, X_3:int, X_4:oid, X_5:oid):any_1 ",       "SQLfirst_value;",      
"return the first value of groups"      ]
 [ "sql",       "getVariable",  "pattern sql.getVariable(X_0:int, X_1:str, 
X_2:str):any_1 ",    "getVariable;", "Get the value of a session variable"   ]
 [ "sql",       "getVersion",   "command sql.getVersion(X_0:int):lng ", 
"mvc_getVersion;",      "Return the database version identifier for a client."  
]
-[ "sql",       "get_value",    "pattern sql.get_value(X_0:str, X_1:str):lng ", 
"mvc_get_value;",       "return the current value of the sequence"      ]
+[ "sql",       "get_value",    "pattern sql.get_value(X_0:str, X_1:str):lng ", 
"mvc_get_value;",       "return the current value of the sequence (ie the next 
to be used value)"       ]
 [ "sql",       "grow", "pattern sql.grow(X_0:bat[:oid], X_1:any_1):int ",      
"mvc_grow_wrap;",       "Resize the tid column of a declared table."    ]
 [ "sql",       "hot_snapshot", "unsafe pattern sql.hot_snapshot(X_0:str):void 
",       "SQLhot_snapshot;",     "Write db snapshot to the given tar(.gz) file" 
 ]
 [ "sql",       "hot_snapshot", "unsafe pattern sql.hot_snapshot(X_0:str, 
X_1:bit):void ",      "SQLhot_snapshot_wrap;",        "Write db snapshot to the 
given tar(.gz/.lz4/.bz/.xz) file on either server or client"  ]
@@ -9390,7 +9391,6 @@
 [ "sql",       "optimizer_updates",    "pattern sql.optimizer_updates():void 
",        "SQLoptimizersUpdate;", ""      ]
 [ "sql",       "optimizers",   "command sql.optimizers() (X_0:bat[:str], 
X_1:bat[:str], X_2:bat[:str]) ",      "getPipeCatalog;",      ""      ]
 [ "sql",       "password",     "pattern sql.password(X_0:str):str ",   
"db_password_wrap;",    "Return password hash of user"  ]
-[ "sql",       "peak_next_value",      "pattern sql.peak_next_value(X_0:str, 
X_1:str):lng ",   "mvc_peak_next_value;", "Peaks at the next value of the 
sequence"       ]
 [ "sql",       "percent_rank", "pattern sql.percent_rank(X_0:any_1, X_1:bit, 
X_2:bit):dbl ",   "SQLpercent_rank;",     "return the percentage into the total 
number of groups for each row"    ]
 [ "sql",       "prelude",      "pattern sql.prelude():void ",  "SQLprelude;",  
""      ]
 [ "sql",       "prepared_statements",  "pattern sql.prepared_statements() 
(X_0:bat[:int], X_1:bat[:str], X_2:bat[:int], X_3:bat[:str], 
X_4:bat[:timestamp]) ", "SQLsession_prepared_statements;",      "Available 
prepared statements in the current session"  ]
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
@@ -8891,6 +8891,8 @@
 [ "batsql",    "diff", "pattern batsql.diff(X_0:bat[:bit], 
X_1:bat[:any_1]):bat[:bit] ",       "SQLdiff;",     "return true if cur != prev 
row"        ]
 [ "batsql",    "diff", "pattern batsql.diff(X_0:bit, 
X_1:bat[:any_1]):bat[:bit] ",     "SQLdiff;",     "return true if cur != prev 
row"        ]
 [ "batsql",    "first_value",  "pattern batsql.first_value(X_0:bat[:any_1], 
X_1:any, X_2:any, X_3:int, X_4:any, X_5:any):bat[:any_1] ",        
"SQLfirst_value;",      "return the first value of groups"      ]
+[ "batsql",    "get_value",    "pattern batsql.get_value(X_0:bat[:str], 
X_1:bat[:str]):bat[:lng] ",    "mvc_get_value_bulk;",  "return the current 
value of the sequence (ie the next to be used value)"       ]
+[ "batsql",    "get_value",    "pattern batsql.get_value(X_0:bat[:str], 
X_1:bat[:str], X_2:bat[:oid], X_3:bat[:oid]):bat[:lng] ",      
"mvc_get_value_bulk;",  "return the current value of the sequence (ie the next 
to be used value)"       ]
 [ "batsql",    "index",        "command batsql.index(X_0:bat[:str], 
X_1:bit):bat[:bte] ",      "BATSTRindex_bte;",     "Return the offsets as an 
index bat"    ]
 [ "batsql",    "index",        "command batsql.index(X_0:bat[:str], 
X_1:bit):bat[:int] ",      "BATSTRindex_int;",     "Return the offsets as an 
index bat"    ]
 [ "batsql",    "index",        "command batsql.index(X_0:bat[:str], 
X_1:bit):bat[:sht] ",      "BATSTRindex_sht;",     "Return the offsets as an 
index bat"    ]
@@ -8927,8 +8929,6 @@
 [ "batsql",    "ntile",        "pattern batsql.ntile(X_0:bat[:any], X_1:any_1, 
X_2:any_2, X_3:any_3):bat[:any_1] ",    "SQLntile;",    "return the groups 
divided as equally as possible"      ]
 [ "batsql",    "ntile",        "pattern batsql.ntile(X_0:bat[:any], 
X_1:bat[:any_1], X_2:any_2, X_3:any_3):bat[:any_1] ",      "SQLntile;",    
"return the groups divided as equally as possible"      ]
 [ "batsql",    "password",     "pattern 
batsql.password(X_0:bat[:str]):bat[:str] ",    "db_password_wrap;",    "Return 
password hash of user"  ]
-[ "batsql",    "peak_next_value",      "pattern 
batsql.peak_next_value(X_0:bat[:str], X_1:bat[:str]):bat[:lng] ",      
"mvc_peak_next_value_bulk;",    "Peaks at the next value of the sequence"       
]
-[ "batsql",    "peak_next_value",      "pattern 
batsql.peak_next_value(X_0:bat[:str], X_1:bat[:str], X_2:bat[:oid], 
X_3:bat[:oid]):bat[:lng] ",        "mvc_peak_next_value_bulk;",    "Peaks at 
the next value of the sequence"       ]
 [ "batsql",    "percent_rank", "pattern batsql.percent_rank(X_0:bat[:any_1], 
X_1:any_2, X_2:any_3):bat[:dbl] ",        "SQLpercent_rank;",     "return the 
percentage into the total number of groups for each row"    ]
 [ "batsql",    "prod", "pattern batsql.prod(X_0:bat[:bte], X_1:any, X_2:any, 
X_3:int, X_4:any, X_5:any):bat[:hge] ",   "SQLprod;",     "return the product 
of groups"  ]
 [ "batsql",    "prod", "pattern batsql.prod(X_0:bat[:bte], X_1:any, X_2:any, 
X_3:int, X_4:any, X_5:any):bat[:lng] ",   "SQLprod;",     "return the product 
of groups"  ]
@@ -12377,6 +12377,7 @@
 [ "netcdf",    "importvar",    "unsafe command netcdf.importvar(X_0:str, 
X_1:int):str ",       "NCDFimportVarStmt;",   "Import variable: compose create 
array string"  ]
 [ "netcdf",    "importvariable",       "unsafe pattern 
netcdf.importvariable(X_0:int, X_1:str):void ", "NCDFimportVariable;",  "Import 
variable: create array and load data from variable varname of file fileid"      
]
 [ "netcdf",    "test", "command netcdf.test(X_0:str):int ",    "NCDFtest;",    
"Returns number of variables in a given NetCDF dataset (file)"  ]
+[ "oltp",      "assert",       "pattern oltp.assert(X_0:bit, X_1:str):void ",  
"OLTPassert;",  "Generate an exception when b==true"    ]
 [ "oltp",      "disable",      "unsafe pattern oltp.disable():void ",  
"OLTPdisable;", "Disable the OLTP delay monitor"        ]
 [ "oltp",      "enable",       "unsafe pattern oltp.enable():void ",   
"OLTPenable;",  "Enable the OLTP delay monitor" ]
 [ "oltp",      "init", "unsafe pattern oltp.init():void ",     "OLTPinit;",    
"Initialize the lock table"     ]
@@ -12666,7 +12667,7 @@
 [ "sql",       "first_value",  "pattern sql.first_value(X_0:any_1, X_1:bit, 
X_2:bit, X_3:int, X_4:oid, X_5:oid):any_1 ",       "SQLfirst_value;",      
"return the first value of groups"      ]
 [ "sql",       "getVariable",  "pattern sql.getVariable(X_0:int, X_1:str, 
X_2:str):any_1 ",    "getVariable;", "Get the value of a session variable"   ]
 [ "sql",       "getVersion",   "command sql.getVersion(X_0:int):lng ", 
"mvc_getVersion;",      "Return the database version identifier for a client."  
]
-[ "sql",       "get_value",    "pattern sql.get_value(X_0:str, X_1:str):lng ", 
"mvc_get_value;",       "return the current value of the sequence"      ]
+[ "sql",       "get_value",    "pattern sql.get_value(X_0:str, X_1:str):lng ", 
"mvc_get_value;",       "return the current value of the sequence (ie the next 
to be used value)"       ]
 [ "sql",       "grow", "pattern sql.grow(X_0:bat[:oid], X_1:any_1):int ",      
"mvc_grow_wrap;",       "Resize the tid column of a declared table."    ]
 [ "sql",       "hot_snapshot", "unsafe pattern sql.hot_snapshot(X_0:str):void 
",       "SQLhot_snapshot;",     "Write db snapshot to the given tar(.gz) file" 
 ]
 [ "sql",       "hot_snapshot", "unsafe pattern sql.hot_snapshot(X_0:str, 
X_1:bit):void ",      "SQLhot_snapshot_wrap;",        "Write db snapshot to the 
given tar(.gz/.lz4/.bz/.xz) file on either server or client"  ]
@@ -12695,7 +12696,6 @@
 [ "sql",       "optimizer_updates",    "pattern sql.optimizer_updates():void 
",        "SQLoptimizersUpdate;", ""      ]
 [ "sql",       "optimizers",   "command sql.optimizers() (X_0:bat[:str], 
X_1:bat[:str], X_2:bat[:str]) ",      "getPipeCatalog;",      ""      ]
 [ "sql",       "password",     "pattern sql.password(X_0:str):str ",   
"db_password_wrap;",    "Return password hash of user"  ]
-[ "sql",       "peak_next_value",      "pattern sql.peak_next_value(X_0:str, 
X_1:str):lng ",   "mvc_peak_next_value;", "Peaks at the next value of the 
sequence"       ]
 [ "sql",       "percent_rank", "pattern sql.percent_rank(X_0:any_1, X_1:bit, 
X_2:bit):dbl ",   "SQLpercent_rank;",     "return the percentage into the total 
number of groups for each row"    ]
 [ "sql",       "prelude",      "pattern sql.prelude():void ",  "SQLprelude;",  
""      ]
 [ "sql",       "prepared_statements",  "pattern sql.prepared_statements() 
(X_0:bat[:int], X_1:bat[:str], X_2:bat[:int], X_3:bat[:str], 
X_4:bat[:timestamp]) ", "SQLsession_prepared_statements;",      "Available 
prepared statements in the current session"  ]
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
@@ -260,8 +260,8 @@ gdk_return GDKanalyticalprod(BAT *r, BAT
 gdk_return GDKanalyticalsum(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, 
int tp1, int tp2, int frame_type);
 gdk_return GDKanalyticalwindowbounds(BAT *r, BAT *b, BAT *p, BAT *l, const 
void *restrict bound, int tp1, int tp2, int unit, bool preceding, oid 
first_half);
 int GDKatomcnt;
-size_t GDKbatcopy(char *dest, BAT *bat, str colname);
-size_t GDKbatcopysize(BAT *bat, str colname);
+size_t GDKbatcopy(char *dest, BAT *bat, const char *colname);
+size_t GDKbatcopysize(BAT *bat, const char *colname);
 size_t GDKbatread(char *src, BAT **bat, str *colname);
 gdk_return GDKchangesemval(int sem_id, int number, int change);
 gdk_return GDKchangesemval_timeout(int sem_id, int number, int change, int 
timeout_mseconds, bool *succeed);
@@ -393,9 +393,9 @@ BUN ORDERfndlast(BAT *b, Heap *oidxh, co
 BUN SORTfnd(BAT *b, const void *v);
 BUN SORTfndfirst(BAT *b, const void *v);
 BUN SORTfndlast(BAT *b, const void *v);
-gdk_return STRMPappendBitstring(BAT *b, const str s);
+gdk_return STRMPappendBitstring(BAT *b, const char *s);
 gdk_return STRMPcreate(BAT *b, BAT *s);
-BAT *STRMPfilter(BAT *b, BAT *s, const str q);
+BAT *STRMPfilter(BAT *b, BAT *s, const char *q);
 MT_Id THRcreate(void (*f)(void *), void *arg, enum MT_thr_detach d, const char 
*name);
 void *THRdata[THREADDATA];
 void THRdel(Thread t);
diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake
--- a/cmake/monetdb-versions.cmake
+++ b/cmake/monetdb-versions.cmake
@@ -53,7 +53,7 @@ set(MONETDB_VERSION "${MONETDB_VERSION_M
 # common/options and common/utils)
 set(GDK_VERSION_CURRENT "23")
 set(GDK_VERSION_MINOR "0")
-set(GDK_VERSION_PATCH "3")
+set(GDK_VERSION_PATCH "4")
 math(EXPR GDK_VERSION_MAJOR "${GDK_VERSION_CURRENT} - ${GDK_VERSION_MINOR}")
 set(GDK_VERSION 
"${GDK_VERSION_MAJOR}.${GDK_VERSION_MINOR}.${GDK_VERSION_PATCH}")
 
@@ -67,14 +67,14 @@ set(MAPI_VERSION "${MAPI_VERSION_MAJOR}.
 # version of the MONETDB5 library (subdirectory monetdb5, not including extras 
or sql)
 set(MONETDB5_VERSION_CURRENT "31")
 set(MONETDB5_VERSION_MINOR "0")
-set(MONETDB5_VERSION_PATCH "3")
+set(MONETDB5_VERSION_PATCH "4")
 math(EXPR MONETDB5_VERSION_MAJOR "${MONETDB5_VERSION_CURRENT} - 
${MONETDB5_VERSION_MINOR}")
 set(MONETDB5_VERSION 
"${MONETDB5_VERSION_MAJOR}.${MONETDB5_VERSION_MINOR}.${MONETDB5_VERSION_PATCH}")
 
 # version of the MONETDBE library (subdirectory tools/monetdbe)
 set(MONETDBE_VERSION_CURRENT "2")
 set(MONETDBE_VERSION_MINOR "0")
-set(MONETDBE_VERSION_PATCH "1")
+set(MONETDBE_VERSION_PATCH "2")
 math(EXPR MONETDBE_VERSION_MAJOR "${MONETDBE_VERSION_CURRENT} - 
${MONETDBE_VERSION_MINOR}")
 set(MONETDBE_VERSION 
"${MONETDBE_VERSION_MAJOR}.${MONETDBE_VERSION_MINOR}.${MONETDBE_VERSION_PATCH}")
 
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,49 @@
+monetdb (11.41.13) unstable; urgency=low
+
+  * Rebuilt.
+  * GH#7163: Multiple sql.mvc() invocations in the same query
+  * GH#7167: sys.shutdown() problems
+  * GH#7184: Insert into query blocks all other queries
+  * GH#7185: GROUPING SETS on groups with aliases provided in the SELECT
+    returns empty result
+  * GH#7186: data files created with COPY SELECT .. INTO 'file.csv' fail to
+    be loaded using COPY INTO .. FROM 'file.csv' when double quoted string
+    data contains the field values delimiter character
+  * GH#7191: [MonetDBe] monetdbe_cleanup_statement() with bound NULLs on
+    variable-sized types bug
+  * GH#7196: BATproject2: does not match always
+  * GH#7198: Suboptimal query plan for query containing JSON access filter
+    and two negative string comparisons
+  * GH#7200: PRIMARY KEY unique constraint is violated with concurrent
+    inserts
+  * GH#7206: Python UDF fails when returning an empty table as a dictionary
+
+ -- Sjoerd Mullender <sjo...@acm.org>  Mon, 13 Dec 2021 10:01:08 +0100
+
+monetdb (11.41.13) unstable; urgency=low
+
+  * clients: Dumping the database now also dumps the read-only and insert-only
+    states of tables.
+
+ -- Sjoerd Mullender <sjo...@acm.org>  Mon, 13 Dec 2021 10:01:08 +0100
+
+monetdb (11.41.13) unstable; urgency=low
+
+  * gdk: Sometimes when the server was restarted, it wouldn't start anymore due
+    to an error from BBPcheckbats.  We finally found and fixed a (hopefully
+    "the") cause of this problem.
+
+ -- Sjoerd Mullender <sjo...@acm.org>  Mon, 13 Dec 2021 10:01:08 +0100
+
+monetdb (11.41.13) unstable; urgency=low
+
+  * sql: Number parsing for SQL was fixed.  If a number was immediately 
followed
+    by letters (i.e. without a space), the number was accepted and the
+    alphanumeric string starting with the letter was interpreted as an alias
+    (if aliases were allowed in that position).
+
+ -- Sjoerd Mullender <sjo...@acm.org>  Thu, 28 Oct 2021 10:01:08 +0100
+
 monetdb (11.41.11) unstable; urgency=low
 
   * Rebuilt.
diff --git a/gdk/ChangeLog-Archive b/gdk/ChangeLog-Archive
--- a/gdk/ChangeLog-Archive
+++ b/gdk/ChangeLog-Archive
@@ -1,6 +1,11 @@
 # DO NOT EDIT THIS FILE -- MAINTAINED AUTOMATICALLY
 # This file contains past ChangeLog entries
 
+* Mon Dec 13 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.13-20211213
+- Sometimes when the server was restarted, it wouldn't start anymore due
+  to an error from BBPcheckbats.  We finally found and fixed a (hopefully
+  "the") cause of this problem.
+
 * Wed Sep 22 2021 Sjoerd Mullender <sjo...@acm.org> - 11.41.7-20210927
 - Some deadlock and race condition issues were fixed.
 - Handling of the list of free bats has been improved, leading to less
diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -1163,15 +1163,13 @@ BUNappendmulti(BAT *b, const void *value
                int (*atomcmp) (const void *, const void *) = 
ATOMcompare(b->ttype);
                const void *atomnil = ATOMnilptr(b->ttype);
                MT_lock_set(&b->theaplock);
-               BUN minpos = b->tminpos;
-               BUN maxpos = b->tmaxpos;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to