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