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