Changeset: 2479817fcb9e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2479817fcb9e
Added Files:
        ChangeLog.Nov2019
        buildtools/ChangeLog.Nov2019
        clients/ChangeLog.Nov2019
        clients/mapilib/ChangeLog.Nov2019
        common/stream/ChangeLog.Nov2019
        gdk/ChangeLog.Nov2019
        geom/ChangeLog.Nov2019
        monetdb5/ChangeLog.Nov2019
        sql/ChangeLog.Nov2019
        sql/jdbc/tests/Tests/JdbcClient_create_tables.sql
        sql/jdbc/tests/Tests/JdbcClient_drop_tables.sql
        sql/jdbc/tests/Tests/JdbcClient_inserts_selects.sql
        sql/test/BugTracker-2019/Tests/alter_table_drop_column.Bug-6749.py
        
sql/test/BugTracker-2019/Tests/alter_table_drop_column.Bug-6749.stable.err
        
sql/test/BugTracker-2019/Tests/alter_table_drop_column.Bug-6749.stable.out
        sql/test/BugTracker-2019/Tests/cte-union.Bug-6755.sql
        sql/test/BugTracker-2019/Tests/cte-union.Bug-6755.stable.err
        sql/test/BugTracker-2019/Tests/cte-union.Bug-6755.stable.out
        sql/test/BugTracker-2019/Tests/merge-table-limit.Bug-6756.sql
        sql/test/BugTracker-2019/Tests/merge-table-limit.Bug-6756.stable.err
        sql/test/BugTracker-2019/Tests/merge-table-limit.Bug-6756.stable.out
        
sql/test/BugTracker-2019/Tests/remote-table-non-existent-column.Bug-6750.py
        testing/ChangeLog.Nov2019
        tools/merovingian/ChangeLog.Nov2019
Removed Files:
        sql/jdbc/tests/JdbcClient_create_tables.sql
        sql/jdbc/tests/JdbcClient_inserts_selects.sql
Modified Files:
        .hgtags
        MonetDB.spec
        NT/monetdb_config.h.in
        NT/rules.msc
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        clients/mapiclient/mclient.c
        clients/mapiclient/mhelp.c
        clients/mapilib/mapi.rc
        clients/odbc/driver/ODBCUtil.c
        clients/odbc/driver/driver.rc
        clients/odbc/winsetup/setup.rc
        common/utils/msabaoth.c
        common/utils/msabaoth.h
        configure.ag
        debian/changelog
        debian/fix-deb.sh
        gdk/ChangeLog
        gdk/gdk.h
        gdk/gdk_aggr.c
        gdk/gdk_align.c
        gdk/gdk_analytic_func.c
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_bbp.c
        gdk/gdk_calc.c
        gdk/gdk_calc.h
        gdk/gdk_calc_compare.h
        gdk/gdk_calc_private.h
        gdk/gdk_cand.c
        gdk/gdk_cand.h
        gdk/gdk_cross.c
        gdk/gdk_firstn.c
        gdk/gdk_group.c
        gdk/gdk_hash.c
        gdk/gdk_join.c
        gdk/gdk_logger.c
        gdk/gdk_posix.c
        gdk/gdk_posix.h
        gdk/gdk_private.h
        gdk/gdk_project.c
        gdk/gdk_search.c
        gdk/gdk_select.c
        gdk/gdk_string.c
        gdk/gdk_system.c
        gdk/gdk_unique.c
        gdk/gdk_utils.c
        gdk/libbat.rc
        libversions
        monetdb5/ChangeLog
        monetdb5/mal/Tests/tst670.stable.err
        monetdb5/mal/mal.c
        monetdb5/mal/mal_client.c
        monetdb5/mal/mal_debugger.c
        monetdb5/mal/mal_import.c
        monetdb5/mal/mal_interpreter.c
        monetdb5/modules/atoms/batxml.c
        monetdb5/modules/atoms/json.c
        monetdb5/modules/atoms/uuid.c
        monetdb5/modules/atoms/uuid.mal
        monetdb5/modules/atoms/xml.c
        monetdb5/modules/atoms/xml.h
        monetdb5/modules/atoms/xml.mal
        monetdb5/modules/kernel/algebra.c
        monetdb5/modules/kernel/batmmath.c
        monetdb5/modules/mal/00_batcalc_hge.mal
        monetdb5/modules/mal/00_batcalc_hge.mal.sh
        monetdb5/modules/mal/01_batcalc.mal
        monetdb5/modules/mal/01_batcalc.mal.sh
        monetdb5/modules/mal/01_calc.mal
        monetdb5/modules/mal/01_calc.mal.sh
        monetdb5/modules/mal/batcalc.c
        monetdb5/modules/mal/calc.c
        monetdb5/modules/mal/clients.c
        monetdb5/modules/mal/mal_io.c
        monetdb5/modules/mal/mal_mapi.c
        monetdb5/modules/mal/mat.c
        monetdb5/modules/mal/orderidx.c
        monetdb5/modules/mal/pcre.c
        monetdb5/modules/mal/projectionpath.c
        monetdb5/modules/mal/querylog.c
        monetdb5/modules/mal/remote.c
        monetdb5/modules/mal/sysmon.c
        monetdb5/modules/mal/tablet.c
        monetdb5/modules/mal/wlc.c
        monetdb5/modules/mal/wlc.h
        monetdb5/optimizer/opt_wlc.c
        monetdb5/tools/libmonetdb5.rc
        sql/ChangeLog
        sql/ChangeLog-Archive
        sql/ChangeLog.Apr2019
        sql/backends/monet5/generator/generator.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql.h
        sql/backends/monet5/sql.mal
        sql/backends/monet5/sql_result.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_statement.c
        sql/backends/monet5/sql_upgrades.c
        sql/backends/monet5/wlr.c
        sql/common/sql_types.c
        sql/jdbc/tests/Tests/Test_JdbcClient.SQL.bat
        sql/jdbc/tests/Tests/Test_JdbcClient.SQL.sh
        sql/jdbc/tests/Tests/Test_JdbcClient.stable.out
        sql/scripts/25_debug.sql
        sql/server/rel_dump.c
        sql/server/rel_optimizer.c
        sql/server/rel_propagate.c
        sql/server/rel_psm.c
        sql/server/rel_schema.c
        sql/server/rel_select.c
        sql/server/rel_updates.c
        sql/server/rel_updates.h
        sql/server/sql_mvc.c
        sql/storage/bat/bat_storage.c
        sql/storage/bat/bat_utils.c
        sql/storage/sql_storage.h
        sql/storage/store.c
        sql/test/BugDay_2005-10-06_2.9.3/Tests/not_null.SF-933194.stable.out
        sql/test/BugDay_2005-10-06_2.9.3/Tests/type_dump_test.SF-989257-src.sql
        
sql/test/BugDay_2005-10-06_2.9.3/Tests/type_dump_test.SF-989257.stable.out
        
sql/test/BugDay_2005-11-09_2.9.3/Tests/hang_on_copy_into.SF-1100504.stable.err
        
sql/test/BugTracker-2009/Tests/segfault_when_quitting_debugger.SF-2538837.stable.out
        
sql/test/BugTracker-2010/Tests/incomplete-utf8-sequence.Bug-2575.stable.err
        
sql/test/BugTracker-2015/Tests/backslash_predecing_separator.Bug-3775.stable.err
        
sql/test/BugTracker-2017/Tests/sqlitelogictest-comparisons-between-floating-points-and-NULL.Bug-6496.sql
        
sql/test/BugTracker-2017/Tests/sqlitelogictest-comparisons-between-floating-points-and-NULL.Bug-6496.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-algebra-rangejoin-undefined.Bug-6610.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-groupby-having-in-cast.Bug-6561.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.sql
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-having-not-null-not-in.Bug-6557.stable.out
        
sql/test/BugTracker-2018/Tests/sqlitelogictest-wrong-select-not-between.Bug-6511.stable.out
        sql/test/BugTracker-2019/Tests/All
        
sql/test/BugTracker-2019/Tests/duplicates-not-eliminated-long-CASE-stmt.Bug-6697.stable.out
        sql/test/BugTracker/Tests/authorization.SF-1430616.stable.out
        sql/test/SQLite_regress/sqllogictest/Tests/select3.test.stable.out
        
sql/test/SQLite_regress/sqllogictest/Tests/select3.test.stable.out.int128
        sql/test/analytics/Tests/analytics09.sql
        sql/test/analytics/Tests/analytics09.stable.out
        sql/test/copy/Tests/columns.stable.err
        sql/test/copy/Tests/incorrect_columns.stable.out
        sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
        
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.powerpc64.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.powerpc64
        sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.powerpc64.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.32bit
        sql/test/emptydb/Tests/check.stable.out.int128
        sql/test/mosaic/Tests/All
        sql/test/subquery/Tests/correlated.sql
        sql/test/subquery/Tests/correlated.stable.err
        sql/test/subquery/Tests/subquery.sql
        sql/test/subquery/Tests/subquery.stable.err
        sql/test/subquery/Tests/subquery.stable.out
        sql/test/sys-schema/Tests/systemfunctions.stable.out
        sql/test/sys-schema/Tests/systemfunctions.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/dump.stable.out.int128
        sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
        sql/test/testdb-upgrade/Tests/dump.stable.out
        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
        sql/test/wlcr/Tests/All
        sql/test/wlcr/Tests/wlc01.py
        sql/test/wlcr/Tests/wlc01.stable.out
        sql/test/wlcr/Tests/wlc100.py
        sql/test/wlcr/Tests/wlc100.stable.out
        sql/test/wlcr/Tests/wlc20.py
        sql/test/wlcr/Tests/wlc20.stable.out
        sql/test/wlcr/Tests/wlc21.py
        sql/test/wlcr/Tests/wlc21.stable.out
        sql/test/wlcr/Tests/wlc30.py
        sql/test/wlcr/Tests/wlc30.stable.out
        sql/test/wlcr/Tests/wlc40.py
        sql/test/wlcr/Tests/wlc40.stable.out
        sql/test/wlcr/Tests/wlc50.py
        sql/test/wlcr/Tests/wlc50.stable.out
        sql/test/wlcr/Tests/wlc70.py
        sql/test/wlcr/Tests/wlc70.stable.out
        sql/test/wlcr/Tests/wlr01.py
        sql/test/wlcr/Tests/wlr01.stable.out
        sql/test/wlcr/Tests/wlr100.py
        sql/test/wlcr/Tests/wlr100.stable.out
        sql/test/wlcr/Tests/wlr20.py
        sql/test/wlcr/Tests/wlr20.stable.out
        sql/test/wlcr/Tests/wlr30.py
        sql/test/wlcr/Tests/wlr30.stable.out
        sql/test/wlcr/Tests/wlr40.py
        sql/test/wlcr/Tests/wlr50.py
        sql/test/wlcr/Tests/wlr50.stable.out
        sql/test/wlcr/Tests/wlr70.py
        sql/test/wlcr/Tests/wlr70.stable.out
        testing/Mtest.py.in
        testing/exportutils.py
        tools/merovingian/ChangeLog
        tools/mserver/mserver5.c
        vertoo.data
Branch: mosaic
Log Message:

Merge with default.


diffs (truncated from 289215 to 300 lines):

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -730,3 +730,10 @@ 2366418b3d88b268117a6f981638c4da686497aa
 02147798590c5f9d7c837bec07277313c1fa29cc Apr2019_7
 2366418b3d88b268117a6f981638c4da686497aa Apr2019_SP1_release
 02147798590c5f9d7c837bec07277313c1fa29cc Apr2019_SP1_release
+a6674f7048a13fe7dc53995a4f723d33a34bce23 Apr2019_9
+02147798590c5f9d7c837bec07277313c1fa29cc Apr2019_SP1_release
+a6674f7048a13fe7dc53995a4f723d33a34bce23 Apr2019_SP1_release
+6566d90185b83ed95129db9ea68baf52f2de5cc7 Apr2019_11
+a6674f7048a13fe7dc53995a4f723d33a34bce23 Apr2019_SP1_release
+6566d90185b83ed95129db9ea68baf52f2de5cc7 Apr2019_SP1_release
+d4c1a8c3cbcd965169f1836eaa635101436db81c Nov2019_root
diff --git a/ChangeLog b/ChangeLog.Nov2019
copy from ChangeLog
copy to ChangeLog.Nov2019
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -1,5 +1,5 @@
 %global name MonetDB
-%global version 11.34.0
+%global version 11.36.0
 %{!?buildno: %global buildno %(date +%Y%m%d)}
 
 # Use bcond_with to add a --with option; i.e., "without" is default.
@@ -1061,6 +1061,26 @@ done
 %postun -p /sbin/ldconfig
 
 %changelog
+* Fri Aug 30 2019 Sjoerd Mullender <[email protected]> - 11.33.11-20190830
+- Rebuilt.
+- BZ#6749: mserver5 restart aborts/segfaults after dropping column
+  with constraint
+
+* Tue Aug 20 2019 Sjoerd Mullender <[email protected]> - 11.33.9-20190820
+- Rebuilt.
+- BZ#6571: Jdbc connection hangs
+- BZ#6693: mix of long and short queries make JDBC-driver hang
+- BZ#6741: report no such table when execute “alter table tb1 rename
+  to tb2” according to using mapi
+- BZ#6744: CREATE SEQUENCE seq;  fails
+- BZ#6748: MonetDB "forgets" columns after ALTER TABLE statements
+- BZ#6751: ODBC driver(11.33.3) Seg Faults when "fn ucase" is used in SQL
+
+* Tue Aug 20 2019 Sjoerd Mullender <[email protected]> - 11.33.9-20190820
+- sql: Many fixes for using the server in a highly concurrent setting with
+  many clients doing read-only queries mixed with clients doing updating
+  queries.
+
 * Wed Aug 07 2019 Panagiotis Koutsourakis <[email protected]> - 
11.33.7-20190807
 - Rebuilt.
 
diff --git a/NT/monetdb_config.h.in b/NT/monetdb_config.h.in
--- a/NT/monetdb_config.h.in
+++ b/NT/monetdb_config.h.in
@@ -662,7 +662,7 @@
 #define PACKAGE_URL "https://www.monetdb.org/";
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "11.34.0"
+#define PACKAGE_VERSION "11.36.0"
 
 /* Path separator */
 #define PATH_SEP ';'
diff --git a/NT/rules.msc b/NT/rules.msc
--- a/NT/rules.msc
+++ b/NT/rules.msc
@@ -6,7 +6,7 @@
 #
 # Copyright 1997 - July 2008 CWI, August 2008 - 2019 MonetDB B.V.
 
-VERSION=11.34.0
+VERSION=11.36.0
 #       ^^^^^^
 # Maintained via vertoo. Please don't modify by hand!
 # Contact [email protected] for details and/or 
assistance.
diff --git a/buildtools/ChangeLog b/buildtools/ChangeLog.Nov2019
copy from buildtools/ChangeLog
copy to buildtools/ChangeLog.Nov2019
diff --git a/clients/ChangeLog b/clients/ChangeLog.Nov2019
copy from clients/ChangeLog
copy to clients/ChangeLog.Nov2019
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
@@ -6117,14 +6117,14 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "avg",  "pattern batcalc.avg(b:bat[:sht], s:bat[:oid], 
scale:int):dbl ",        "CMDcalcavg;",  "average of non-nil values of B"       
 ]
 [ "batcalc",   "avg",  "pattern batcalc.avg(b:bat[:sht], scale:int) (X_0:dbl, 
X_1:lng) ",      "CMDcalcavg;",  "average and number of non-nil values of B"    
 ]
 [ "batcalc",   "avg",  "pattern batcalc.avg(b:bat[:sht], scale:int):dbl ",     
"CMDcalcavg;",  "average of non-nil values of B with candidates list"   ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:any_1, s:bat[:oid], sym:bit, linc:bit, hinc:bit, 
nils_false:bit):bat[:bit] ",      "CMDbatBETWEEN;",       "B between V1 and V2 
(or vice versa) with candidate list"       ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:any_1, sym:bit, linc:bit, hinc:bit, nils_false:bit):bat[:bit] ",   
"CMDbatBETWEEN;",       "B between V1 and V2 (or vice versa)"   ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:bat[:any_1], s:bat[:oid], sym:bit, linc:bit, hinc:bit, 
nils_false:bit):bat[:bit] ",        "CMDbatBETWEEN;",       "B between V1 and 
V2 (or vice versa) with candidate list"       ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:bat[:any_1], sym:bit, linc:bit, hinc:bit, 
nils_false:bit):bat[:bit] ",     "CMDbatBETWEEN;",       "B between V1 and V2 
(or vice versa)"   ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:any_1, s:bat[:oid], sym:bit, linc:bit, hinc:bit, 
nils_false:bit):bat[:bit] ",        "CMDbatBETWEEN;",       "B between V1 and 
V2 (or vice versa) with candidate list"       ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:any_1, sym:bit, linc:bit, hinc:bit, 
nils_false:bit):bat[:bit] ",     "CMDbatBETWEEN;",       "B between V1 and V2 
(or vice versa)"   ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:bat[:any_1], s:bat[:oid], sym:bit, linc:bit, hinc:bit, 
nils_false:bit):bat[:bit] ",  "CMDbatBETWEEN;",       "B between V1 and V2 (or 
vice versa) with candidate list"       ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:bat[:any_1], sym:bit, linc:bit, hinc:bit, 
nils_false:bit):bat[:bit] ",       "CMDbatBETWEEN;",       "B between V1 and V2 
(or vice versa)"   ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:any_1, s:bat[:oid], sym:bit, linc:bit, hinc:bit, nils_false:bit, 
anti:bit):bat[:bit] ",    "CMDbatBETWEEN;",       "B between V1 and V2 (or vice 
versa) with candidate list"       ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:any_1, sym:bit, linc:bit, hinc:bit, nils_false:bit, 
anti:bit):bat[:bit] ", "CMDbatBETWEEN;",       "B between V1 and V2 (or vice 
versa)"   ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:bat[:any_1], s:bat[:oid], sym:bit, linc:bit, hinc:bit, 
nils_false:bit, anti:bit):bat[:bit] ",      "CMDbatBETWEEN;",       "B between 
V1 and V2 (or vice versa) with candidate list"       ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:bat[:any_1], sym:bit, linc:bit, hinc:bit, nils_false:bit, 
anti:bit):bat[:bit] ",   "CMDbatBETWEEN;",       "B between V1 and V2 (or vice 
versa)"   ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:any_1, s:bat[:oid], sym:bit, linc:bit, hinc:bit, 
nils_false:bit, anti:bit):bat[:bit] ",      "CMDbatBETWEEN;",       "B between 
V1 and V2 (or vice versa) with candidate list"       ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:any_1, sym:bit, linc:bit, hinc:bit, nils_false:bit, 
anti:bit):bat[:bit] ",   "CMDbatBETWEEN;",       "B between V1 and V2 (or vice 
versa)"   ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:bat[:any_1], s:bat[:oid], sym:bit, linc:bit, hinc:bit, 
nils_false:bit, anti:bit):bat[:bit] ",        "CMDbatBETWEEN;",       "B 
between V1 and V2 (or vice versa) with candidate list"       ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:bat[:any_1], sym:bit, linc:bit, hinc:bit, nils_false:bit, 
anti:bit):bat[:bit] ",     "CMDbatBETWEEN;",       "B between V1 and V2 (or 
vice versa)"   ]
 [ "batcalc",   "bit",  "pattern batcalc.bit(b:bat[:bit]):bat[:bit] ",  
"CMDconvertsignal_bit;",        "cast from bit to bit, signal error on 
overflow"        ]
 [ "batcalc",   "bit",  "pattern batcalc.bit(b:bat[:bit], 
s:bat[:oid]):bat[:bit] ",     "CMDconvertsignal_bit;",        "cast from bit to 
bit with candidates list, signal error on overflow"   ]
 [ "batcalc",   "bit",  "pattern batcalc.bit(b:bat[:bte]):bat[:bit] ",  
"CMDconvertsignal_bit;",        "cast from bte to bit, signal error on 
overflow"        ]
@@ -10066,7 +10066,7 @@ stdout of test 'MAL-signatures` in direc
 [ "calc",      "and",  "pattern calc.and(v1:int, v2:int):int ",        
"CMDvarAND;",   "Return V1 AND V2"      ]
 [ "calc",      "and",  "pattern calc.and(v1:lng, v2:lng):lng ",        
"CMDvarAND;",   "Return V1 AND V2"      ]
 [ "calc",      "and",  "pattern calc.and(v1:sht, v2:sht):sht ",        
"CMDvarAND;",   "Return V1 AND V2"      ]
-[ "calc",      "between",      "pattern calc.between(b:any_1, lo:any_1, 
hi:any_1, sym:bit, linc:bit, hinc:bit, nils_false:bit):bit ",  
"CMDvarBETWEEN;",       "B between LO and HI inclusive" ]
+[ "calc",      "between",      "pattern calc.between(b:any_1, lo:any_1, 
hi:any_1, sym:bit, linc:bit, hinc:bit, nils_false:bit, anti:bit):bit ",        
"CMDvarBETWEEN;",       "B between LO and HI inclusive" ]
 [ "calc",      "bit",  "pattern calc.bit(v:bit):bit ", "CMDvarCONVERT;",       
"Cast VALUE to bit"     ]
 [ "calc",      "bit",  "pattern calc.bit(v:bte):bit ", "CMDvarCONVERT;",       
"Cast VALUE to bit"     ]
 [ "calc",      "bit",  "pattern calc.bit(v:dbl):bit ", "CMDvarCONVERT;",       
"Cast VALUE to bit"     ]
@@ -11797,6 +11797,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(tbl:bat[:str], 
attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], cols:any...):int 
", "mvc_row_result_wrap;", "Prepare a table result set for the client 
front-end"   ]
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(tbl:str, 
attr:str, tpe:str, len:int, scale:int, eclass:int, val:any):int ",       
"mvc_scalar_value_wrap;",       "Prepare a table result set for the client 
front-end."  ]
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(tbl:bat[:str], 
attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], 
cols:bat[:any]...):int ",   "mvc_table_result_wrap;",       "Prepare a table 
result set for the client in default CSV format"       ]
+[ "sql",       "resume_log_flushing",  "command sql.resume_log_flushing():void 
",      "SQLresume_log_flushing;",      "Resume WAL log flushing"       ]
 [ "sql",       "reuse",        "pattern sql.reuse(sch:str, tbl:str):void ",    
"SQLreuse;",    "Consolidate the deletion table over all columns reusing 
deleted slots" ]
 [ "sql",       "round",        "command sql.round(v:bte, d:int, s:int, 
r:bte):bte ",   "bte_round_wrap;",      "round off the decimal v(d,s) to r 
digits behind the dot (if r < 0, before the dot)"    ]
 [ "sql",       "round",        "command sql.round(v:dbl, r:bte):dbl ", 
"dbl_round_wrap;",      "round off the floating point v to r digits behind the 
dot (if r < 0, before the dot)"  ]
@@ -11832,6 +11833,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "sum",  "pattern sql.sum(b:int, s:lng, e:lng):lng ",    
"SQLsum;",      "return the sum of groups"      ]
 [ "sql",       "sum",  "pattern sql.sum(b:lng, s:lng, e:lng):lng ",    
"SQLsum;",      "return the sum of groups"      ]
 [ "sql",       "sum",  "pattern sql.sum(b:sht, s:lng, e:lng):lng ",    
"SQLsum;",      "return the sum of groups"      ]
+[ "sql",       "suspend_log_flushing", "command 
sql.suspend_log_flushing():void ",     "SQLsuspend_log_flushing;",     "Suspend 
WAL log flushing"      ]
 [ "sql",       "sysmon_pause", "pattern sql.sysmon_pause(tag:int):void ",      
"SYSMONpause;", ""      ]
 [ "sql",       "sysmon_pause", "pattern sql.sysmon_pause(tag:lng):void ",      
"SYSMONpause;", ""      ]
 [ "sql",       "sysmon_pause", "pattern sql.sysmon_pause(tag:sht):void ",      
"SYSMONpause;", ""      ]
@@ -12057,7 +12059,6 @@ stdout of test 'MAL-signatures` in direc
 [ "uuid",      "#read",        "command uuid.#read():void ",   "UUIDread;",    
""      ]
 [ "uuid",      "#tostr",       "command uuid.#tostr():void ",  
"UUIDtoString;",        ""      ]
 [ "uuid",      "#write",       "command uuid.#write():void ",  "UUIDwrite;",   
""      ]
-[ "uuid",      "epilogue",     "command uuid.epilogue():void ",        
"UUIDepilogue;",        "release the resources held by the uuid module" ]
 [ "uuid",      "isaUUID",      "command uuid.isaUUID(u:str):bit ",     
"UUIDisaUUID;", "Test a string for a UUID format"       ]
 [ "uuid",      "new",  "unsafe command uuid.new():uuid ",      
"UUIDgenerateUuid;",    "Generate a new uuid"   ]
 [ "uuid",      "new",  "unsafe command uuid.new(d:int):uuid ", 
"UUIDgenerateUuidInt;", "Generate a new uuid (dummy version for side effect 
free multiplex loop)"       ]
@@ -12229,7 +12230,6 @@ stdout of test 'MAL-signatures` in direc
 [ "xml",       "document",     "command xml.document(val:str):xml ",   
"XMLdocument;", "Check the value for compliance as XML document"        ]
 [ "xml",       "element",      "command xml.element(name:str, ns:xml, 
attr:xml, s:xml):xml ",  "XMLelement;",  "The basic building block for XML 
elements are namespaces, attributes and a sequence of xml elements. The name 
space and the attributes may be left unspecified(=nil:bat)."     ]
 [ "xml",       "element",      "command xml.element(name:str, s:xml):xml ",    
"XMLelementSmall;",     "The basic building block for XML elements are 
namespaces, attributes and a sequence of xml elements. The name space and the 
attributes may be left unspecified(=nil:bat)."     ]
-[ "xml",       "epilogue",     "command xml.epilogue():void ", "XMLepilogue;", 
"release the resources held by the xml module"  ]
 [ "xml",       "forest",       "pattern xml.forest(val:xml...):xml ",  
"XMLforest;",   "Construct an element list"     ]
 [ "xml",       "isdocument",   "command xml.isdocument(val:str):bit ", 
"XMLisdocument;",       "Validate the string as a document"     ]
 [ "xml",       "parse",        "command xml.parse(doccont:str, val:str, 
option:str):xml ",     "XMLparse;",    "Parse the XML document or element 
string values "      ]
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
@@ -8651,22 +8651,14 @@ stdout of test 'MAL-signatures` in direc
 [ "batcalc",   "avg",  "pattern batcalc.avg(b:bat[:sht], s:bat[:oid], 
scale:int):dbl ",        "CMDcalcavg;",  "average of non-nil values of B"       
 ]
 [ "batcalc",   "avg",  "pattern batcalc.avg(b:bat[:sht], scale:int) (X_0:dbl, 
X_1:lng) ",      "CMDcalcavg;",  "average and number of non-nil values of B"    
 ]
 [ "batcalc",   "avg",  "pattern batcalc.avg(b:bat[:sht], scale:int):dbl ",     
"CMDcalcavg;",  "average of non-nil values of B with candidates list"   ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:any_1, s:bat[:oid], sym:bit, linc:bit, hinc:bit, 
nils_false:bit):bat[:bit] ",      "CMDbatBETWEEN;",       "B between V1 and V2 
(or vice versa) with candidate list"       ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:any_1, sym:bit, linc:bit, hinc:bit, nils_false:bit):bat[:bit] ",   
"CMDbatBETWEEN;",       "B between V1 and V2 (or vice versa)"   ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:bat[:any_1], s:bat[:oid], sym:bit, linc:bit, hinc:bit, 
nils_false:bit):bat[:bit] ",        "CMDbatBETWEEN;",       "B between V1 and 
V2 (or vice versa) with candidate list"       ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:bat[:any_1], sym:bit, linc:bit, hinc:bit, 
nils_false:bit):bat[:bit] ",     "CMDbatBETWEEN;",       "B between V1 and V2 
(or vice versa)"   ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:any_1, s:bat[:oid], sym:bit, linc:bit, hinc:bit, 
nils_false:bit):bat[:bit] ",        "CMDbatBETWEEN;",       "B between V1 and 
V2 (or vice versa) with candidate list"       ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:any_1, sym:bit, linc:bit, hinc:bit, 
nils_false:bit):bat[:bit] ",     "CMDbatBETWEEN;",       "B between V1 and V2 
(or vice versa)"   ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:bat[:any_1], s:bat[:oid], sym:bit, linc:bit, hinc:bit, 
nils_false:bit):bat[:bit] ",  "CMDbatBETWEEN;",       "B between V1 and V2 (or 
vice versa) with candidate list"       ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:bat[:any_1], sym:bit, linc:bit, hinc:bit, 
nils_false:bit):bat[:bit] ",       "CMDbatBETWEEN;",       "B between V1 and V2 
(or vice versa)"   ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:hge], 
lo:bat[:hge], hi:bat[:hge]):bat[:bit] ",  "CMDbatBETWEEN;",       "B between LO 
and HI inclusive, nil border is (minus) infinity" ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:hge], 
lo:bat[:hge], hi:bat[:hge], s:bat[:oid]):bat[:bit] ",     "CMDbatBETWEEN;",     
  "B between LO and HI inclusive with candidates list, nil border is (minus) 
infinity"    ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:hge], 
lo:bat[:hge], hi:hge):bat[:bit] ",        "CMDbatBETWEEN;",       "B between LO 
and HI inclusive, nil border is (minus) infinity" ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:hge], 
lo:bat[:hge], hi:hge, s:bat[:oid]):bat[:bit] ",   "CMDbatBETWEEN;",       "B 
between LO and HI inclusive with candidates list, nil border is (minus) 
infinity"    ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:hge], lo:hge, 
hi:bat[:hge]):bat[:bit] ",        "CMDbatBETWEEN;",       "B between LO and HI 
inclusive, nil border is (minus) infinity" ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:hge], lo:hge, 
hi:bat[:hge], s:bat[:oid]):bat[:bit] ",   "CMDbatBETWEEN;",       "B between LO 
and HI inclusive with candidates list, nil border is (minus) infinity"    ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:hge], lo:hge, 
hi:hge):bat[:bit] ",      "CMDbatBETWEEN;",       "B between LO and HI 
inclusive, nil border is (minus) infinity" ]
-[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:hge], lo:hge, 
hi:hge, s:bat[:oid]):bat[:bit] ", "CMDbatBETWEEN;",       "B between LO and HI 
inclusive with candidates list, nil border is (minus) infinity"    ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:any_1, s:bat[:oid], sym:bit, linc:bit, hinc:bit, nils_false:bit, 
anti:bit):bat[:bit] ",    "CMDbatBETWEEN;",       "B between V1 and V2 (or vice 
versa) with candidate list"       ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:any_1, sym:bit, linc:bit, hinc:bit, nils_false:bit, 
anti:bit):bat[:bit] ", "CMDbatBETWEEN;",       "B between V1 and V2 (or vice 
versa)"   ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:bat[:any_1], s:bat[:oid], sym:bit, linc:bit, hinc:bit, 
nils_false:bit, anti:bit):bat[:bit] ",      "CMDbatBETWEEN;",       "B between 
V1 and V2 (or vice versa) with candidate list"       ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:any_1, v2:bat[:any_1], sym:bit, linc:bit, hinc:bit, nils_false:bit, 
anti:bit):bat[:bit] ",   "CMDbatBETWEEN;",       "B between V1 and V2 (or vice 
versa)"   ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:any_1, s:bat[:oid], sym:bit, linc:bit, hinc:bit, 
nils_false:bit, anti:bit):bat[:bit] ",      "CMDbatBETWEEN;",       "B between 
V1 and V2 (or vice versa) with candidate list"       ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:any_1, sym:bit, linc:bit, hinc:bit, nils_false:bit, 
anti:bit):bat[:bit] ",   "CMDbatBETWEEN;",       "B between V1 and V2 (or vice 
versa)"   ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:bat[:any_1], s:bat[:oid], sym:bit, linc:bit, hinc:bit, 
nils_false:bit, anti:bit):bat[:bit] ",        "CMDbatBETWEEN;",       "B 
between V1 and V2 (or vice versa) with candidate list"       ]
+[ "batcalc",   "between",      "pattern batcalc.between(b:bat[:any_1], 
v1:bat[:any_1], v2:bat[:any_1], sym:bit, linc:bit, hinc:bit, nils_false:bit, 
anti:bit):bat[:bit] ",     "CMDbatBETWEEN;",       "B between V1 and V2 (or 
vice versa)"   ]
 [ "batcalc",   "bit",  "pattern batcalc.bit(b:bat[:bit]):bat[:bit] ",  
"CMDconvertsignal_bit;",        "cast from bit to bit, signal error on 
overflow"        ]
 [ "batcalc",   "bit",  "pattern batcalc.bit(b:bat[:bit], 
s:bat[:oid]):bat[:bit] ",     "CMDconvertsignal_bit;",        "cast from bit to 
bit with candidates list, signal error on overflow"   ]
 [ "batcalc",   "bit",  "pattern batcalc.bit(b:bat[:bte]):bat[:bit] ",  
"CMDconvertsignal_bit;",        "cast from bte to bit, signal error on 
overflow"        ]
@@ -14218,7 +14210,7 @@ stdout of test 'MAL-signatures` in direc
 [ "calc",      "and",  "pattern calc.and(v1:int, v2:int):int ",        
"CMDvarAND;",   "Return V1 AND V2"      ]
 [ "calc",      "and",  "pattern calc.and(v1:lng, v2:lng):lng ",        
"CMDvarAND;",   "Return V1 AND V2"      ]
 [ "calc",      "and",  "pattern calc.and(v1:sht, v2:sht):sht ",        
"CMDvarAND;",   "Return V1 AND V2"      ]
-[ "calc",      "between",      "pattern calc.between(b:any_1, lo:any_1, 
hi:any_1, sym:bit, linc:bit, hinc:bit, nils_false:bit):bit ",  
"CMDvarBETWEEN;",       "B between LO and HI inclusive" ]
+[ "calc",      "between",      "pattern calc.between(b:any_1, lo:any_1, 
hi:any_1, sym:bit, linc:bit, hinc:bit, nils_false:bit, anti:bit):bit ",        
"CMDvarBETWEEN;",       "B between LO and HI inclusive" ]
 [ "calc",      "bit",  "pattern calc.bit(v:bit):bit ", "CMDvarCONVERT;",       
"Cast VALUE to bit"     ]
 [ "calc",      "bit",  "pattern calc.bit(v:bte):bit ", "CMDvarCONVERT;",       
"Cast VALUE to bit"     ]
 [ "calc",      "bit",  "pattern calc.bit(v:dbl):bit ", "CMDvarCONVERT;",       
"Cast VALUE to bit"     ]
@@ -16216,6 +16208,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(tbl:bat[:str], 
attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], cols:any...):int 
", "mvc_row_result_wrap;", "Prepare a table result set for the client 
front-end"   ]
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(tbl:str, 
attr:str, tpe:str, len:int, scale:int, eclass:int, val:any):int ",       
"mvc_scalar_value_wrap;",       "Prepare a table result set for the client 
front-end."  ]
 [ "sql",       "resultSet",    "unsafe pattern sql.resultSet(tbl:bat[:str], 
attr:bat[:str], tpe:bat[:str], len:bat[:int], scale:bat[:int], 
cols:bat[:any]...):int ",   "mvc_table_result_wrap;",       "Prepare a table 
result set for the client in default CSV format"       ]
+[ "sql",       "resume_log_flushing",  "command sql.resume_log_flushing():void 
",      "SQLresume_log_flushing;",      "Resume WAL log flushing"       ]
 [ "sql",       "reuse",        "pattern sql.reuse(sch:str, tbl:str):void ",    
"SQLreuse;",    "Consolidate the deletion table over all columns reusing 
deleted slots" ]
 [ "sql",       "round",        "command sql.round(v:bte, d:int, s:int, 
r:bte):bte ",   "bte_round_wrap;",      "round off the decimal v(d,s) to r 
digits behind the dot (if r < 0, before the dot)"    ]
 [ "sql",       "round",        "command sql.round(v:dbl, r:bte):dbl ", 
"dbl_round_wrap;",      "round off the floating point v to r digits behind the 
dot (if r < 0, before the dot)"  ]
@@ -16257,6 +16250,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",       "sum",  "pattern sql.sum(b:lng, s:lng, e:lng):lng ",    
"SQLsum;",      "return the sum of groups"      ]
 [ "sql",       "sum",  "pattern sql.sum(b:sht, s:lng, e:lng):hge ",    
"SQLsum;",      "return the sum of groups"      ]
 [ "sql",       "sum",  "pattern sql.sum(b:sht, s:lng, e:lng):lng ",    
"SQLsum;",      "return the sum of groups"      ]
+[ "sql",       "suspend_log_flushing", "command 
sql.suspend_log_flushing():void ",     "SQLsuspend_log_flushing;",     "Suspend 
WAL log flushing"      ]
 [ "sql",       "sysmon_pause", "pattern sql.sysmon_pause(tag:int):void ",      
"SYSMONpause;", ""      ]
 [ "sql",       "sysmon_pause", "pattern sql.sysmon_pause(tag:lng):void ",      
"SYSMONpause;", ""      ]
 [ "sql",       "sysmon_pause", "pattern sql.sysmon_pause(tag:sht):void ",      
"SYSMONpause;", ""      ]
@@ -16485,7 +16479,6 @@ stdout of test 'MAL-signatures` in direc
 [ "uuid",      "#read",        "command uuid.#read():void ",   "UUIDread;",    
""      ]
 [ "uuid",      "#tostr",       "command uuid.#tostr():void ",  
"UUIDtoString;",        ""      ]
 [ "uuid",      "#write",       "command uuid.#write():void ",  "UUIDwrite;",   
""      ]
-[ "uuid",      "epilogue",     "command uuid.epilogue():void ",        
"UUIDepilogue;",        "release the resources held by the uuid module" ]
 [ "uuid",      "isaUUID",      "command uuid.isaUUID(u:str):bit ",     
"UUIDisaUUID;", "Test a string for a UUID format"       ]
 [ "uuid",      "new",  "unsafe command uuid.new():uuid ",      
"UUIDgenerateUuid;",    "Generate a new uuid"   ]
 [ "uuid",      "new",  "unsafe command uuid.new(d:int):uuid ", 
"UUIDgenerateUuidInt;", "Generate a new uuid (dummy version for side effect 
free multiplex loop)"       ]
@@ -16657,7 +16650,6 @@ stdout of test 'MAL-signatures` in direc
 [ "xml",       "document",     "command xml.document(val:str):xml ",   
"XMLdocument;", "Check the value for compliance as XML document"        ]
 [ "xml",       "element",      "command xml.element(name:str, ns:xml, 
attr:xml, s:xml):xml ",  "XMLelement;",  "The basic building block for XML 
elements are namespaces, attributes and a sequence of xml elements. The name 
space and the attributes may be left unspecified(=nil:bat)."     ]
 [ "xml",       "element",      "command xml.element(name:str, s:xml):xml ",    
"XMLelementSmall;",     "The basic building block for XML elements are 
namespaces, attributes and a sequence of xml elements. The name space and the 
attributes may be left unspecified(=nil:bat)."     ]
-[ "xml",       "epilogue",     "command xml.epilogue():void ", "XMLepilogue;", 
"release the resources held by the xml module"  ]
 [ "xml",       "forest",       "pattern xml.forest(val:xml...):xml ",  
"XMLforest;",   "Construct an element list"     ]
 [ "xml",       "isdocument",   "command xml.isdocument(val:str):bit ", 
"XMLisdocument;",       "Validate the string as a document"     ]
 [ "xml",       "parse",        "command xml.parse(doccont:str, val:str, 
option:str):xml ",     "XMLparse;",    "Parse the XML document or element 
string values "      ]
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
@@ -27,10 +27,10 @@ BAT *BATcalcaddcst(BAT *b, const ValReco
 BAT *BATcalcand(BAT *b1, BAT *b2, BAT *s);
 BAT *BATcalcandcst(BAT *b, const ValRecord *v, BAT *s);
 gdk_return BATcalcavg(BAT *b, BAT *s, dbl *avg, BUN *vals, int scale);
-BAT *BATcalcbetween(BAT *b, BAT *lo, BAT *hi, BAT *s, bool symmetric, bool 
linc, bool hinc, bool nils_false);
-BAT *BATcalcbetweenbatcst(BAT *b, BAT *lo, const ValRecord *hi, BAT *s, bool 
symmetric, bool linc, bool hinc, bool nils_false);
-BAT *BATcalcbetweencstbat(BAT *b, const ValRecord *lo, BAT *hi, BAT *s, bool 
symmetric, bool linc, bool hinc, bool nils_false);
-BAT *BATcalcbetweencstcst(BAT *b, const ValRecord *lo, const ValRecord *hi, 
BAT *s, bool symmetric, bool linc, bool hinc, bool nils_false);
+BAT *BATcalcbetween(BAT *b, BAT *lo, BAT *hi, BAT *s, bool symmetric, bool 
linc, bool hinc, bool nils_false, bool anti);
+BAT *BATcalcbetweenbatcst(BAT *b, BAT *lo, const ValRecord *hi, BAT *s, bool 
symmetric, bool linc, bool hinc, bool nils_false, bool anti);
+BAT *BATcalcbetweencstbat(BAT *b, const ValRecord *lo, BAT *hi, BAT *s, bool 
symmetric, bool linc, bool hinc, bool nils_false, bool anti);
+BAT *BATcalcbetweencstcst(BAT *b, const ValRecord *lo, const ValRecord *hi, 
BAT *s, bool symmetric, bool linc, bool hinc, bool nils_false, bool anti);
 BAT *BATcalccmp(BAT *b1, BAT *b2, BAT *s);
 BAT *BATcalccmpcst(BAT *b, const ValRecord *v, BAT *s);
 BAT *BATcalccstadd(const ValRecord *v, BAT *b, BAT *s, int tp, bool 
abort_on_error);
@@ -106,8 +106,8 @@ dbl BATcalcvariance_population(dbl *avgp
 dbl BATcalcvariance_sample(dbl *avgp, BAT *b);
 BAT *BATcalcxor(BAT *b1, BAT *b2, BAT *s);
 BAT *BATcalcxorcst(BAT *b, const ValRecord *v, BAT *s);
-bool BATcandcontains(BAT *s, oid o);
 int BATcheckmosaic(BAT *b);
+bool BATcheckorderidx(BAT *b);
 gdk_return BATclear(BAT *b, bool force);
 void BATcommit(BAT *b);
 BAT *BATconstant(oid hseq, int tt, const void *val, BUN cnt, role_t role);
@@ -123,7 +123,7 @@ gdk_return BATfirstn(BAT **topn, BAT **g
 restrict_t BATgetaccess(BAT *b);
 PROPrec *BATgetprop(BAT *b, enum prop_t idx);
 gdk_return BATgroup(BAT **groups, BAT **extents, BAT **histo, BAT *b, BAT *s, 
BAT *g, BAT *e, BAT *h) __attribute__((__warn_unused_result__));
-const char *BATgroupaggrinit(BAT *b, BAT *g, BAT *e, BAT *s, oid *minp, oid 
*maxp, BUN *ngrpp, BUN *startp, BUN *endp, const oid **candp, const oid 
**candendp);
+const char *BATgroupaggrinit(BAT *b, BAT *g, BAT *e, BAT *s, oid *minp, oid 
*maxp, BUN *ngrpp, struct canditer *ci, BUN *ncand);
 gdk_return BATgroupavg(BAT **bnp, BAT **cntsp, BAT *b, BAT *g, BAT *e, BAT *s, 
int tp, bool skip_nils, bool abort_on_error, int scale);
 BAT *BATgroupcount(BAT *b, BAT *g, BAT *e, BAT *s, int tp, bool skip_nils, 
bool abort_on_error);
 BAT *BATgroupmax(BAT *b, BAT *g, BAT *e, BAT *s, int tp, bool skip_nils, bool 
abort_on_error);
@@ -156,6 +156,7 @@ void *BATmin_skipnil(BAT *b, void *aggr,
 gdk_return BATmode(BAT *b, bool transient);
 gdk_return BATmosaic(BAT *b, BUN cap);
 void BATmsync(BAT *b);
+gdk_return BATnegcands(BAT *cands, BAT *odels);
 bool BATordered(BAT *b);
 bool BATordered_rev(BAT *b);
 gdk_return BATorderidx(BAT *b, bool stable);
@@ -171,6 +172,7 @@ void BATrmprop(BAT *b, enum prop_t idx);
 gdk_return BATroles(BAT *b, const char *tnme);
 BAT *BATsample(BAT *b, BUN n);
 BAT *BATsample_with_seed(BAT *b, BUN n, unsigned seed);
+gdk_return BATsave(BAT *b) __attribute__((__warn_unused_result__));
 BAT *BATselect(BAT *b, BAT *s, const void *tl, const void *th, bool li, bool 
hi, bool anti);
 gdk_return BATsemijoin(BAT **r1p, BAT **r2p, BAT *l, BAT *r, BAT *sl, BAT *sr, 
bool nil_matches, BUN estimate) __attribute__((__warn_unused_result__));
 gdk_return BATsetaccess(BAT *b, restrict_t mode);
@@ -362,7 +364,7 @@ ValPtr VALset(ValPtr v, int t, void *p);
 gdk_return VARcalcabsolute(ValPtr ret, const ValRecord *v);
 gdk_return VARcalcadd(ValPtr ret, const ValRecord *lft, const ValRecord *rgt, 
bool abort_on_error);
 gdk_return VARcalcand(ValPtr ret, const ValRecord *lft, const ValRecord *rgt);
-gdk_return VARcalcbetween(ValPtr ret, const ValRecord *v, const ValRecord *lo, 
const ValRecord *hi, bool symmetric, bool linc, bool hinc, bool nils_false);
+gdk_return VARcalcbetween(ValPtr ret, const ValRecord *v, const ValRecord *lo, 
const ValRecord *hi, bool symmetric, bool linc, bool hinc, bool nils_false, 
bool anti);
 gdk_return VARcalccmp(ValPtr ret, const ValRecord *lft, const ValRecord *rgt);
 gdk_return VARcalcdecr(ValPtr ret, const ValRecord *v, bool abort_on_error);
 gdk_return VARcalcdiv(ValPtr ret, const ValRecord *lft, const ValRecord *rgt, 
bool abort_on_error);
@@ -400,6 +402,17 @@ ssize_t bitToStr(str *dst, size_t *len, 
 ssize_t bteFromStr(const char *src, size_t *len, bte **dst, bool external);
 ssize_t bteToStr(str *dst, size_t *len, const bte *src, bool external);
 const bte bte_nil;
+oid canditer_idx(struct canditer *ci, BUN p);
+BUN canditer_init(struct canditer *ci, BAT *b, BAT *s);
+oid canditer_last(struct canditer *ci);
+oid canditer_peek(struct canditer *ci);
+oid canditer_peekprev(struct canditer *ci);
+oid canditer_prev(struct canditer *ci);
+void canditer_reset(struct canditer *ci);
+BUN canditer_search(struct canditer *ci, oid o, bool next);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to