Changeset: bf9c2a1d385f for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=bf9c2a1d385f
Added Files:
        sql/test/BugTracker-2018/Tests/truncate_geom_tables.Bug-6543.sql
        sql/test/BugTracker-2018/Tests/truncate_geom_tables.Bug-6543.stable.err
        sql/test/BugTracker-2018/Tests/truncate_geom_tables.Bug-6543.stable.out
        sql/test/BugTracker-2019/Tests/insert-replica-table.Bug-6684.stable.out
        sql/test/BugTracker-2019/Tests/subselect-count.Bug-6686.sql
        sql/test/BugTracker-2019/Tests/subselect-count.Bug-6686.stable.err
        sql/test/BugTracker-2019/Tests/subselect-count.Bug-6686.stable.out
        sql/test/merge-partitions/Tests/mergepart29.py
        sql/test/merge-partitions/Tests/mergepart29.stable.err
        sql/test/merge-partitions/Tests/mergepart29.stable.out
Removed Files:
        sql/test/BugTracker-2016/Tests/querylog.stable.err
        sql/test/BugTracker-2016/Tests/querylog.stable.out
        
sql/test/BugTracker-2017/Tests/cleanup_statistics.Bug-6439.stable.out.FreeBSD
        
sql/test/BugTracker-2017/Tests/cleanup_statistics.Bug-6439.stable.out.Windows
Modified Files:
        MonetDB.spec
        clients/Tests/MAL-signatures.stable.out
        clients/Tests/MAL-signatures.stable.out.int128
        clients/Tests/exports.stable.out
        clients/mapiclient/dump.c
        clients/mapiclient/mhelp.c
        clients/mapilib/mapi.c
        clients/odbc/driver/ODBCConvert.c
        clients/odbc/driver/ODBCDesc.h
        clients/odbc/driver/ODBCUtil.c
        clients/odbc/driver/README
        clients/odbc/driver/SQLFetch.c
        clients/odbc/driver/SQLGetInfo.c
        clients/odbc/driver/SQLParamData.c
        clients/odbc/driver/SQLPutData.c
        common/stream/stream.c
        configure.ag
        gdk/gdk.h
        gdk/gdk_atomic.h
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_bbp.c
        gdk/gdk_hash.c
        gdk/gdk_hash.h
        gdk/gdk_imprints.c
        gdk/gdk_orderidx.c
        gdk/gdk_posix.h
        gdk/gdk_private.h
        gdk/gdk_sample.c
        gdk/gdk_storage.c
        gdk/gdk_system.c
        gdk/gdk_system.h
        gdk/gdk_utils.c
        gdk/gdk_utils.h
        monetdb5/NT/M5server.bat
        monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out
        
monetdb5/extras/mal_optimizer_template/Tests/opt_sql_append.stable.out.Windows
        monetdb5/extras/rapi/rapi.c
        monetdb5/mal/mal.c
        monetdb5/mal/mal.h
        monetdb5/mal/mal_client.c
        monetdb5/mal/mal_client.h
        monetdb5/mal/mal_dataflow.c
        monetdb5/mal/mal_private.h
        monetdb5/mal/mal_profiler.c
        monetdb5/mal/mal_readline.c
        monetdb5/mal/mal_resource.c
        monetdb5/mal/mal_runtime.c
        monetdb5/mal/mal_scenario.c
        monetdb5/mal/mal_scenario.h
        monetdb5/mal/mal_session.c
        monetdb5/mal/mal_session.h
        monetdb5/modules/atoms/xml.c
        monetdb5/modules/kernel/mmath.c
        monetdb5/modules/mal/mal_mapi.c
        monetdb5/modules/mal/remote.c
        monetdb5/modules/mal/tablet.c
        monetdb5/modules/mal/tablet.h
        monetdb5/modules/mal/wlc.c
        monetdb5/modules/mal/wlc.mal
        monetdb5/optimizer/Tests/inlineFunction.malC
        monetdb5/optimizer/Tests/inlineFunction.stable.out
        monetdb5/optimizer/Tests/inlineFunction1.malC
        monetdb5/optimizer/Tests/inlineFunction1.stable.out
        monetdb5/optimizer/Tests/inlineFunction4.malC
        monetdb5/optimizer/Tests/inlineFunction4.stable.out
        monetdb5/optimizer/opt_aliases.c
        monetdb5/optimizer/opt_coercion.c
        monetdb5/optimizer/opt_commonTerms.c
        monetdb5/optimizer/opt_garbageCollector.c
        monetdb5/optimizer/opt_pipes.c
        monetdb5/optimizer/opt_prelude.c
        monetdb5/optimizer/opt_prelude.h
        monetdb5/optimizer/opt_remap.c
        monetdb5/optimizer/optimizer.c
        monetdb5/optimizer/optimizer_private.h
        sql/ChangeLog.Apr2019
        sql/backends/monet5/UDF/capi/capi.c
        sql/backends/monet5/UDF/pyapi/pyapi.c
        sql/backends/monet5/sql_cat.c
        sql/backends/monet5/sql_gencode.c
        sql/backends/monet5/sql_gencode.h
        sql/backends/monet5/sql_result.c
        sql/backends/monet5/sql_scenario.c
        sql/backends/monet5/sql_upgrades.c
        sql/backends/monet5/vaults/lidar/lidar.c
        sql/backends/monet5/vaults/lidar/lidar.h
        sql/backends/monet5/vaults/lidar/lidar.mal
        sql/backends/monet5/wlr.c
        sql/common/sql_list.c
        sql/scripts/15_querylog.sql
        sql/server/rel_optimizer.c
        sql/server/rel_propagate.c
        sql/server/rel_schema.c
        sql/server/rel_updates.c
        sql/server/sql_mvc.c
        sql/server/sql_parser.y
        sql/server/sql_partition.c
        sql/server/sql_privileges.c
        sql/server/sql_scan.c
        sql/storage/bat/bat_storage.c
        sql/storage/sql_catalog.c
        sql/storage/sql_storage.h
        sql/storage/store.c
        
sql/test/BugDay_2005-11-09_2.9.3/Tests/grant_public.SF-1114580.stable.err
        
sql/test/BugDay_2005-11-09_2.9.3/Tests/schema_change_grant_crash.SF-963620.stable.err
        sql/test/BugTracker-2010/Tests/crashonschema.Bug-2547.stable.err
        
sql/test/BugTracker-2012/Tests/aggregate_incorrect_precision_scale.Bug-3182.stable.out
        
sql/test/BugTracker-2012/Tests/aggregate_incorrect_precision_scale.Bug-3182.stable.out.int128
        sql/test/BugTracker-2012/Tests/algebra_find.Bug-2728.stable.out
        
sql/test/BugTracker-2012/Tests/cast_varchar_to_double.Bug-3071.stable.out
        
sql/test/BugTracker-2012/Tests/correlated_groupby_in_selection.Bug-3011.stable.out
        
sql/test/BugTracker-2012/Tests/fixed_limit_for_prepare.Bug-3208.stable.out
        
sql/test/BugTracker-2012/Tests/many-columns-truncated.Bug-3161.stable.out
        
sql/test/BugTracker-2012/Tests/rewrite_like_into_likesubselect.Bug-3179.stable.out
        
sql/test/BugTracker-2012/Tests/row_number_does_not_work_in_complex_query.Bug-2805.stable.out
        sql/test/BugTracker-2012/Tests/server-crash.Bug-3046.stable.out
        sql/test/BugTracker-2012/Tests/set_operation.Bug-3059.stable.out
        sql/test/BugTracker-2012/Tests/simple_select.Bug-2988.stable.out
        
sql/test/BugTracker-2012/Tests/tuples_INTERSECT_vs_count_intersect_differs.Bug-2659.stable.out
        sql/test/BugTracker-2012/Tests/with_and_exists.Bug-3099.stable.out
        sql/test/BugTracker-2016/Tests/All
        sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out
        
sql/test/BugTracker-2016/Tests/convert-function-test.Bug-3460.stable.out.int128
        
sql/test/BugTracker-2016/Tests/create_merge_table_withdata.Bug-4041.stable.err
        sql/test/BugTracker-2017/Tests/All
        sql/test/BugTracker-2017/Tests/cleanup_statistics.Bug-6439.stable.out
        sql/test/BugTracker-2017/Tests/side-effect.Bug-6397.stable.out
        sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.sql
        
sql/test/BugTracker-2017/Tests/statistics_nils_not_eq_zero.Bug-6331.stable.out
        sql/test/BugTracker-2018/Tests/All
        sql/test/BugTracker-2018/Tests/truncate_sys_tables.Bug-6543.sql
        sql/test/BugTracker-2018/Tests/truncate_sys_tables.Bug-6543.stable.err
        sql/test/BugTracker-2018/Tests/truncate_sys_tables.Bug-6543.stable.out
        sql/test/BugTracker-2019/Tests/All
        sql/test/BugTracker-2019/Tests/insert-replica-table.Bug-6684.sql
        sql/test/BugTracker-2019/Tests/insert-replica-table.Bug-6684.stable.err
        sql/test/BugTracker/Tests/auto_increment.SF-1834820.stable.out
        sql/test/BugTracker/Tests/bug_in_selection.SF-1892413.stable.out
        sql/test/BugTracker/Tests/case_in_aggr_bug.SF-1506545.stable.out
        sql/test/BugTracker/Tests/case_with_aggr.SF-1876779.stable.out.int128
        sql/test/BugTracker/Tests/count_crash.SF-1918780.stable.out
        sql/test/BugTracker/Tests/crash_on_delete.SF-1639108.stable.out
        sql/test/BugTracker/Tests/explain.SF-1739353.stable.out
        
sql/test/BugTracker/Tests/groupby_with_alias.SF-1520575.stable.out.int128
        sql/test/BugTracker/Tests/insert_not_exists.SF-1380287.stable.out
        sql/test/BugTracker/Tests/jdbc_no_debug.SF-1739356.stable.out
        sql/test/BugTracker/Tests/large_prepare_2.SF-1363729.stable.out
        sql/test/BugTracker/Tests/proc_insert_into.SF-1958572.stable.out
        
sql/test/BugTracker/Tests/rand_not_executed_for_every_row.SF-1723791.stable.out
        sql/test/Tests/setoptimizer.stable.out
        sql/test/Users/Tests/grantPrivilegesNonDefaultRole.Bug-3365.stable.err
        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/merge-partitions/Tests/All
        sql/test/merge-partitions/Tests/mergepart01.sql
        sql/test/merge-partitions/Tests/mergepart01.stable.err
        sql/test/merge-partitions/Tests/mergepart01.stable.out
        sql/test/merge-partitions/Tests/mergepart02.sql
        sql/test/merge-partitions/Tests/mergepart02.stable.err
        sql/test/merge-partitions/Tests/mergepart03.sql
        sql/test/merge-partitions/Tests/mergepart03.stable.err
        sql/test/merge-partitions/Tests/mergepart03.stable.out
        sql/test/merge-partitions/Tests/mergepart05.sql
        sql/test/merge-partitions/Tests/mergepart05.stable.err
        sql/test/merge-partitions/Tests/mergepart05.stable.out
        sql/test/merge-partitions/Tests/mergepart06.sql
        sql/test/merge-partitions/Tests/mergepart06.stable.err
        sql/test/merge-partitions/Tests/mergepart06.stable.out
        sql/test/merge-partitions/Tests/mergepart07.sql
        sql/test/merge-partitions/Tests/mergepart07.stable.err
        sql/test/merge-partitions/Tests/mergepart07.stable.out
        sql/test/merge-partitions/Tests/mergepart08.sql
        sql/test/merge-partitions/Tests/mergepart08.stable.out
        sql/test/merge-partitions/Tests/mergepart09.sql
        sql/test/merge-partitions/Tests/mergepart09.stable.err
        sql/test/merge-partitions/Tests/mergepart11.sql
        sql/test/merge-partitions/Tests/mergepart11.stable.out
        sql/test/merge-partitions/Tests/mergepart12.sql
        sql/test/merge-partitions/Tests/mergepart12.stable.out
        sql/test/merge-partitions/Tests/mergepart13.sql
        sql/test/merge-partitions/Tests/mergepart13.stable.err
        sql/test/merge-partitions/Tests/mergepart13.stable.out
        sql/test/merge-partitions/Tests/mergepart15.sql
        sql/test/merge-partitions/Tests/mergepart15.stable.err
        sql/test/merge-partitions/Tests/mergepart15.stable.out
        sql/test/merge-partitions/Tests/mergepart16.sql
        sql/test/merge-partitions/Tests/mergepart16.stable.err
        sql/test/merge-partitions/Tests/mergepart17.sql
        sql/test/merge-partitions/Tests/mergepart17.stable.err
        sql/test/merge-partitions/Tests/mergepart17.stable.out
        sql/test/merge-partitions/Tests/mergepart18.sql
        sql/test/merge-partitions/Tests/mergepart18.stable.err
        sql/test/merge-partitions/Tests/mergepart18.stable.out
        sql/test/merge-partitions/Tests/mergepart20.sql
        sql/test/merge-partitions/Tests/mergepart20.stable.err
        sql/test/merge-partitions/Tests/mergepart20.stable.out
        sql/test/merge-partitions/Tests/mergepart21.sql
        sql/test/merge-partitions/Tests/mergepart21.stable.err
        sql/test/merge-partitions/Tests/mergepart21.stable.out
        sql/test/merge-partitions/Tests/mergepart23.py
        sql/test/merge-partitions/Tests/mergepart23.stable.err
        sql/test/merge-partitions/Tests/mergepart23.stable.out
        sql/test/merge-partitions/Tests/mergepart24.sql
        sql/test/merge-partitions/Tests/mergepart24.stable.err
        sql/test/merge-partitions/Tests/mergepart24.stable.out
        sql/test/merge-partitions/Tests/mergepart25.sql
        sql/test/merge-partitions/Tests/mergepart25.stable.out
        sql/test/merge-partitions/Tests/mergepart26.sql
        sql/test/merge-partitions/Tests/mergepart26.stable.err
        sql/test/merge-partitions/Tests/mergepart26.stable.out
        sql/test/merge-partitions/Tests/mergepart27.sql
        sql/test/merge-partitions/Tests/mergepart27.stable.err
        sql/test/merge-partitions/Tests/mergepart27.stable.out
        sql/test/merge-partitions/Tests/mergepart28.sql.in
        sql/test/merge-partitions/Tests/mergepart28.stable.err
        sql/test/merge-partitions/Tests/mergepart28.stable.out
        sql/test/merge-statements/Tests/mergestmt01.stable.err
        sql/test/merge-statements/Tests/mergestmt03.sql
        sql/test/merge-statements/Tests/mergestmt03.stable.out
        sql/test/mergetables/Tests/mergeinit.sql
        sql/test/mergetables/Tests/mergeinit.stable.err
        sql/test/remote/Tests/partition_elim.stable.out
        sql/test/remote/Tests/ssbm.stable.out.int128
        sql/test/testdb-reload/Tests/reload.stable.out
        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
        sql/test/testdb-upgrade/Tests/upgrade.stable.out.powerpc64.int128
        sql/test/testdb/Tests/dump.stable.out
        sql/test/testdb/Tests/load.sql
        sql/test/testdb/Tests/load.stable.out
        testing/Mtest.py.in
        tools/mserver/mserver5.1.in
        tools/mserver/mserver5.c
Branch: ipv6
Log Message:

Merge with default.


diffs (truncated from 13717 to 300 lines):

diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -141,8 +141,10 @@ BuildRequires: geos-devel >= 3.4.0
 BuildRequires: liblas-devel >= 1.8.0
 BuildRequires: pkgconfig(gdal)
 %endif
-%if %{?rhel:0}%{!?rhel:1} || 0%{?rhel} >= 7
-# RHEL >= 7, and all current Fedora
+%if 0%{?rhel} >= 7
+# On RHEL 7, use the atomic_ops package for atomic operation.
+# On RHEL 6 the package is not available.
+# On Fedora, we use <stdatomic.h> from C11.
 BuildRequires: pkgconfig(atomic_ops)
 %endif
 BuildRequires: pkgconfig(libcurl)
@@ -211,7 +213,10 @@ Summary: MonetDB development files
 Group: Applications/Databases
 Requires: %{name}%{?_isa} = %{version}-%{release}
 Requires: %{name}-stream-devel%{?_isa} = %{version}-%{release}
+%if 0%{?rhel} >= 7
+# RHEL >= 7
 Requires: libatomic_ops-devel
+%endif
 
 %description devel
 MonetDB is a database management system that is developed from a
@@ -995,7 +1000,7 @@ export CFLAGS
        --with-proj=no \
        --with-pthread=yes \
        --with-python2=yes \
-       --with-python3=yes \
+       --with-python3=%{?with_py3integration:yes}%{!?with_py3integration:no} \
        --with-readline=yes \
        --with-regex=%{?with_pcre:PCRE}%{!?with_pcre:POSIX} \
        --with-samtools=%{?with_samtools:yes}%{!?with_samtools:no} \
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
@@ -11187,7 +11187,6 @@ Ready.
 [ "lidar",     "attach",       "pattern lidar.attach(fname:str):void ",        
"LIDARattach;", "Open a LIDAR file and return catalog of the table HDUs"        
]
 [ "lidar",     "export",       "pattern lidar.export(tablename:str, fname:str, 
type:str):void ",       "LIDARexportTable;",    "Exporta LIDAR table to a 
LAS/LAZ file" ]
 [ "lidar",     "load", "pattern lidar.load(tablename:str):void ",      
"LIDARloadTable;",      "Load a LIDAR table from an attached file"      ]
-[ "lidar",     "prelude",      "command lidar.prelude():void ",        
"LIDARprelude;",        ""      ]
 [ "mal",       "manifold",     "pattern mal.manifold(mod:str, fcn:str, 
a:any...):bat[:any] ",  "MANIFOLDevaluate;",    ""      ]
 [ "mal",       "multiplex",    "pattern mal.multiplex(mod:str, fcn:str, 
a:any...):any... ",    "MANIFOLDremapMultiplex;",      ""      ]
 [ "manual",    "functions",    "pattern manual.functions() (mod:bat[:str], 
fcn:bat[:str], sig:bat[:str], adr:bat[:str], com:bat[:str]) ",      
"MANUALcreateOverview;",        "Produces a table with all MAL functions known" 
]
@@ -11518,6 +11517,7 @@ Ready.
 [ "optimizer", "no_mitosis_pipe",      "function 
optimizer.no_mitosis_pipe():void;",   "",     ""      ]
 [ "optimizer", "oltp", "pattern optimizer.oltp():str ",        "OPTwrapper;",  
""      ]
 [ "optimizer", "oltp", "pattern optimizer.oltp(mod:str, fcn:str):str ",        
"OPTwrapper;",  "Inject the OLTP locking primitives."   ]
+[ "optimizer", "oltp_pipe",    "function optimizer.oltp_pipe():void;", "",     
""      ]
 [ "optimizer", "optimize",     "pattern optimizer.optimize(mod:str, 
fcn:str):void ",   "QOToptimize;", "Optimize a specific operation" ]
 [ "optimizer", "orcam",        "pattern optimizer.orcam(mod:str, fcn:str, 
targetmod:str, targetfcn:str):void ",        "OPTorcam;",    "Inverse macro, 
find pattern and replace with a function call." ]
 [ "optimizer", "orcam",        "pattern optimizer.orcam(targetmod:str, 
targetfcn:str):void ",  "OPTorcam;",    "Inverse macro processor for current 
function"  ]
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
@@ -15597,7 +15597,6 @@ Ready.
 [ "lidar",     "attach",       "pattern lidar.attach(fname:str):void ",        
"LIDARattach;", "Open a LIDAR file and return catalog of the table HDUs"        
]
 [ "lidar",     "export",       "pattern lidar.export(tablename:str, fname:str, 
type:str):void ",       "LIDARexportTable;",    "Exporta LIDAR table to a 
LAS/LAZ file" ]
 [ "lidar",     "load", "pattern lidar.load(tablename:str):void ",      
"LIDARloadTable;",      "Load a LIDAR table from an attached file"      ]
-[ "lidar",     "prelude",      "command lidar.prelude():void ",        
"LIDARprelude;",        ""      ]
 [ "mal",       "manifold",     "pattern mal.manifold(mod:str, fcn:str, 
a:any...):bat[:any] ",  "MANIFOLDevaluate;",    ""      ]
 [ "mal",       "multiplex",    "pattern mal.multiplex(mod:str, fcn:str, 
a:any...):any... ",    "MANIFOLDremapMultiplex;",      ""      ]
 [ "manual",    "functions",    "pattern manual.functions() (mod:bat[:str], 
fcn:bat[:str], sig:bat[:str], adr:bat[:str], com:bat[:str]) ",      
"MANUALcreateOverview;",        "Produces a table with all MAL functions known" 
]
@@ -15930,6 +15929,7 @@ Ready.
 [ "optimizer", "no_mitosis_pipe",      "function 
optimizer.no_mitosis_pipe():void;",   "",     ""      ]
 [ "optimizer", "oltp", "pattern optimizer.oltp():str ",        "OPTwrapper;",  
""      ]
 [ "optimizer", "oltp", "pattern optimizer.oltp(mod:str, fcn:str):str ",        
"OPTwrapper;",  "Inject the OLTP locking primitives."   ]
+[ "optimizer", "oltp_pipe",    "function optimizer.oltp_pipe():void;", "",     
""      ]
 [ "optimizer", "optimize",     "pattern optimizer.optimize(mod:str, 
fcn:str):void ",   "QOToptimize;", "Optimize a specific operation" ]
 [ "optimizer", "orcam",        "pattern optimizer.orcam(mod:str, fcn:str, 
targetmod:str, targetfcn:str):void ",        "OPTorcam;",    "Inverse macro, 
find pattern and replace with a function call." ]
 [ "optimizer", "orcam",        "pattern optimizer.orcam(targetmod:str, 
targetfcn:str):void ",  "OPTorcam;",    "Inverse macro processor for current 
function"  ]
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
@@ -238,7 +238,6 @@ void GDKerror(_In_z_ _Printf_format_stri
 void GDKexit(int status) __attribute__((__noreturn__));
 void GDKexit(int status);
 bool GDKexiting(void);
-gdk_return GDKextractParentAndLastDirFromPath(const char *path, char 
*last_dir_parent, char *last_dir);
 void GDKfatal(_In_z_ _Printf_format_string_ const char *format, ...) 
__attribute__((__format__(__printf__, 1, 2))) __attribute__((__noreturn__));
 void GDKfatal(_In_z_ _Printf_format_string_ const char *format, ...) 
__attribute__((__format__(__printf__, 1, 2)));
 jmp_buf GDKfataljump;
@@ -255,11 +254,11 @@ gdk_return GDKgetsem(int sem_id, int cou
 gdk_return GDKgetsemval(int sem_id, int number, int *semval);
 gdk_return GDKinit(opt *set, int setlen);
 void *GDKinitmmap(size_t id, size_t size, size_t *return_size);
-ATOMIC_TYPE volatile GDKlockcnt;
-ATOMIC_TYPE volatile GDKlockcontentioncnt;
+ATOMIC_TYPE GDKlockcnt;
+ATOMIC_TYPE GDKlockcontentioncnt;
 MT_Lock *volatile GDKlocklist;
-ATOMIC_FLAG volatile GDKlocklistlock;
-ATOMIC_TYPE volatile GDKlocksleepcnt;
+ATOMIC_FLAG GDKlocklistlock;
+ATOMIC_TYPE GDKlocksleepcnt;
 void GDKlockstatistics(int);
 void *GDKmalloc(size_t size) __attribute__((__malloc__)) 
__attribute__((__alloc_size__(1))) __attribute__((__warn_unused_result__));
 size_t GDKmem_cursize(void);
@@ -317,7 +316,8 @@ void *MT_thread_getdata(void);
 const char *MT_thread_getname(void);
 bool MT_thread_init(void);
 void MT_thread_setdata(void *data);
-void MT_thread_setname(const char *name);
+void MT_thread_setlockwait(MT_Lock *lock);
+void MT_thread_setsemawait(MT_Sema *sema);
 void OIDXdestroy(BAT *b);
 ssize_t OIDfromStr(const char *src, size_t *len, oid **dst, bool external);
 ssize_t OIDtoStr(str *dst, size_t *len, const oid *src, bool external);
@@ -335,8 +335,6 @@ Thread THRget(int tid);
 void *THRgetdata(int);
 int THRgettid(void);
 int THRhighwater(void);
-Thread THRnew(const char *name);
-int THRprintf(stream *s, _In_z_ _Printf_format_string_ const char *format, 
...) __attribute__((__format__(__printf__, 2, 3)));
 void THRsetdata(int, void *);
 void TMabort(void);
 gdk_return TMcommit(void);
@@ -459,19 +457,6 @@ int mo_system_config(opt **Set, int setl
 const oid oid_nil;
 DIR *opendir(const char *dirname);
 void print_trace(void);
-void pthread_mutex_destroy(pthread_mutex_t *);
-void pthread_mutex_init(pthread_mutex_t *, const pthread_mutexattr_t *);
-int pthread_mutex_lock(pthread_mutex_t *);
-int pthread_mutex_trylock(pthread_mutex_t *);
-int pthread_mutex_unlock(pthread_mutex_t *);
-void pthread_sema_destroy(pthread_sema_t *s);
-void pthread_sema_destroy(pthread_sema_t *s);
-void pthread_sema_down(pthread_sema_t *s);
-void pthread_sema_down(pthread_sema_t *s);
-void pthread_sema_init(pthread_sema_t *s, int flag, int nresources);
-void pthread_sema_init(pthread_sema_t *s, int flag, int nresources);
-void pthread_sema_up(pthread_sema_t *s);
-void pthread_sema_up(pthread_sema_t *s);
 ssize_t ptrFromStr(const char *src, size_t *len, ptr **dst, bool external);
 ssize_t ptrToStr(str *dst, size_t *len, const ptr *src, bool external);
 const ptr ptr_nil;
@@ -1440,7 +1425,6 @@ Client MCforkClient(Client father);
 Client MCgetClient(int id);
 void MCinit(void);
 Client MCinitClient(oid user, bstream *fin, stream *fout);
-Client MCinitClientRecord(Client c, oid user, bstream *fin, stream *fout);
 int MCinitClientThread(Client c);
 int MCpushClientInput(Client c, bstream *new_input, int listing, char *prompt);
 int MCshutdowninprogress(void);
@@ -1488,7 +1472,7 @@ str MSinitClientPrg(Client cntxt, str mo
 void MSresetInstructions(MalBlkPtr mb, int start);
 void MSresetVariables(Client cntxt, MalBlkPtr mb, MalStkPtr glb, int start);
 void MSscheduleClient(str command, str challenge, bstream *fin, stream *fout, 
protocol_version protocol, size_t blocksize);
-str MSserveClient(void *dummy);
+str MSserveClient(Client cntxt);
 str MTIMEanalyticalrangebounds(BAT *r, BAT *b, BAT *p, BAT *l, const void 
*restrict bound, int tp1, int tp2, bool preceding, lng first_half);
 str MTIMEcompute_rule_foryear(date *ret, const rule *val, const int *year);
 str MTIMEcurrent_date(date *d);
@@ -1809,7 +1793,7 @@ str SERVERsetAlias(void *ret, int *mid, 
 str SERVERstop(void *ret);
 str SERVERsuspend(void *ret);
 str SERVERtrace(void *ret, int *mid, int *flag);
-BUN SQLload_file(Client cntxt, Tablet *as, bstream *b, stream *out, const char 
*csep, const char *rsep, char quote, lng skip, lng maxrow, int best, bool 
from_stdin);
+BUN SQLload_file(Client cntxt, Tablet *as, bstream *b, stream *out, const char 
*csep, const char *rsep, char quote, lng skip, lng maxrow, int best, bool 
from_stdin, const char *tabnam);
 str STRBytes(int *res, const str *arg1);
 str STRConcat(str *res, const str *val1, const str *val2);
 str STRFromWChr(str *res, const int *at);
@@ -2655,7 +2639,6 @@ str startRef;
 str startTrace(str path);
 str starttraceRef;
 str stopProfiler(void);
-str stopRef;
 str stopTrace(str path);
 str stoptraceRef;
 void strAfterCall(ValPtr v, ValPtr bak);
diff --git a/clients/mapiclient/dump.c b/clients/mapiclient/dump.c
--- a/clients/mapiclient/dump.c
+++ b/clients/mapiclient/dump.c
@@ -2677,7 +2677,7 @@ dump_database(Mapi mid, stream *toConsol
                                        mnstr_printf(toConsole, ")");
                                }
                                if (found_nil) {
-                                       mnstr_printf(toConsole, " WITH NULL");
+                                       mnstr_printf(toConsole, " %s NULL 
VALUES", (i == 0) ? "FOR" : "WITH");
                                }
                        } else { /* by range */
                                char *minv = NULL, *maxv = NULL, *wnulls = NULL;
@@ -2704,13 +2704,13 @@ dump_database(Mapi mid, stream *toConsol
                                        wnulls = mapi_fetch_field(shdl, 2);
                                }
                                if (minv && maxv) {
-                                       mnstr_printf(toConsole, " BETWEEN ");
+                                       mnstr_printf(toConsole, " FROM ");
                                        squoted_print(toConsole, minv, '\'');
-                                       mnstr_printf(toConsole, " AND ");
+                                       mnstr_printf(toConsole, " TO ");
                                        squoted_print(toConsole, maxv, '\'');
                                }
                                if (strcmp(wnulls, "true") == 0) {
-                                       mnstr_printf(toConsole, " WITH NULL");
+                                       mnstr_printf(toConsole, " %s NULL 
VALUES", (minv && maxv) ? "WITH" : "FOR");
                                }
                                mapi_close_handle(shdl);
                        }
diff --git a/clients/mapiclient/mhelp.c b/clients/mapiclient/mhelp.c
--- a/clients/mapiclient/mhelp.c
+++ b/clients/mapiclient/mhelp.c
@@ -392,11 +392,11 @@ SQLhelp sqlhelp1[] = {
         "Define access privileges",
         "GRANT privileges TO grantee [',' ...] [ WITH GRANT OPTION ]\n"
         "GRANT role [',' ...] TO grantee [',' ...] [ WITH ADMIN OPTION]",
-        "privileges,role,grantee",
+        "privileges,table_privileges,global_privileges,role,grantee",
         "See also 
https://www.monetdb.org/Documentation/SQLreference/Permissions"},
        {"MERGE",
         "",
-        "[ WITH with_list ] MERGE INTO qname [ [AS] ident ] USING table_ref ON 
search_condition merge_list",
+        "[ WITH with_list ] MERGE INTO qname [ [AS] ident ] USING table_ref [ 
[AS] ident ] ON search_condition merge_list",
         "with_list,table_ref,search_condition,merge_list",
         NULL},
        {"RELEASE SAVEPOINT",
@@ -413,7 +413,7 @@ SQLhelp sqlhelp1[] = {
         "Remove some privileges",
         "REVOKE [GRANT OPTION FOR] privileges FROM { grantee [',' ...] | 
CURRENT_USER | CURRENT_ROLE }\n"
         "REVOKE [ADMIN OPTION FOR] role [',' ...] FROM { grantee [',' ...] | 
CURRENT_USER | CURRENT_ROLE }",
-        "privileges,grantee,role",
+        "privileges,table_privileges,global_privileges,grantee,role",
         "See also 
https://www.monetdb.org/Documentation/SQLreference/Permissions"},
        {"ROLLBACK",
         "Rollback the current transaction",
@@ -678,7 +678,7 @@ SQLhelp sqlhelp2[] = {
         NULL},
        {"merge_list",
         NULL,
-        "merge_clause [ ',' ... ]",
+        "merge_clause [ ... ]",
         "merge_clause",
         NULL},
        {"nrofrecords",
@@ -698,9 +698,9 @@ SQLhelp sqlhelp2[] = {
         NULL},
        {"opt_partition_spec",
         NULL,
-        "IN '(' partition_list ')' [ WITH NULL ]\n"
-        "BETWEEN partition_range_from AND partition_range_to [ WITH NULL ]\n"
-        "WITH NULL",
+        "IN '(' partition_list ')' [ WITH NULL VALUES ]\n"
+        "FROM partition_range_from TO partition_range_to [ WITH NULL VALUES 
]\n"
+        "FOR NULL VALUES",
         "partition_list,partition_range_from,partition_range_to",
         NULL},
        {"param",
diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c
--- a/clients/mapilib/mapi.c
+++ b/clients/mapilib/mapi.c
@@ -733,6 +733,9 @@
 
 #define MAPIBLKSIZE    256     /* minimum buffer shipped */
 
+/* number of elements in an array */
+#define NELEM(arr)     (sizeof(arr) / sizeof(arr[0]))
+
 /* information about the columns in a result set */
 struct MapiColumn {
        char *tablename;
@@ -1138,7 +1141,7 @@ wsaerror(int err)
 {
        int i;
 
-       for (i = 0; i < sizeof(wsaerrlist) / sizeof(wsaerrlist[0]); i++)
+       for (i = 0; i < NELEM(wsaerrlist); i++)
                if (wsaerrlist[i].e == err)
                        return wsaerrlist[i].m;
        return "Unknown error";
@@ -2244,7 +2247,7 @@ mapi_reconnect(Mapi mid)
                                                        socks[i].owner = 
st.st_uid;
                                                        socks[i++].port = 
atoi(e->d_name + 11);
                                                }
-                                               if (i == sizeof(socks) / 
sizeof(socks[0]))
+                                               if (i == NELEM(socks))
                                                        break;
                                        }
                                        closedir(d);
@@ -2782,7 +2785,7 @@ mapi_reconnect(Mapi mid)
                                        break;
                                case '^':
                                        r = mid->redirects;
-                                       m = sizeof(mid->redirects) / 
sizeof(mid->redirects[0]) - 1;
+                                       m = NELEM(mid->redirects) - 1;
                                        while (*r != NULL && m > 0) {
                                                m--;
                                                r++;
diff --git a/clients/odbc/driver/ODBCConvert.c 
b/clients/odbc/driver/ODBCConvert.c
--- a/clients/odbc/driver/ODBCConvert.c
+++ b/clients/odbc/driver/ODBCConvert.c
@@ -1282,14 +1282,16 @@ ODBCFetch(ODBCStmt *stmt,
                case SQL_WVARCHAR:
                case SQL_WLONGVARCHAR:
                case SQL_GUID:
-                       if (irdrec->already_returned >= datalen) {
+                       if (irdrec->already_returned < 0)
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to