Changeset: c8cf0a85f81c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/c8cf0a85f81c
Modified Files:
        gdk/gdk.h
        gdk/gdk_batop.c
        gdk/gdk_bbp.c
        gdk/gdk_private.h
        sql/backends/monet5/rel_bin.c
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_cat.c
        sql/backends/monet5/sql_upgrades.c
        sql/server/rel_exp.c
        sql/server/rel_optimizer.c
        sql/server/rel_rel.c
        sql/server/rel_rewriter.c
        sql/server/rel_rewriter.h
        sql/server/rel_select.c
        sql/server/rel_updates.c
        sql/storage/bat/bat_storage.c
        sql/storage/sql_storage.h
        sql/storage/store.c
        tools/monetdbe/monetdbe.c
Branch: properties
Log Message:

Merged with default


diffs (truncated from 93381 to 300 lines):

diff --git a/.github/ISSUE_TEMPLATE/bug_report.md 
b/.github/ISSUE_TEMPLATE/bug_report.md
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -11,9 +11,9 @@ assignees: ''
 A clear and concise description of what the bug is.
 
 **To Reproduce**
-Create a setting with minimal input for an external user to demonstrate him 
the buggy behavior.
-This includes the relevant part of the database  schema description.
-Performance trace of the roque query (using the TRACE command)
+Create a setting with minimal input for an external user to demonstrate the 
buggy behavior.
+This includes the relevant part of the database schema description.
+Performance trace of the rogue query (using the TRACE command)
 
 **Expected behavior**
 A clear and concise description of what you expected to happen.
diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -798,3 +798,5 @@ 929f5e280bc1532a2bfaab127ca7915dc3b69a33
 742b7847cfdcea39a6c19ab29eb35471d46bb2bb Oct2020_SP2_release
 17d27ad30941c81e4bc700300912e84e9b9a8c37 Oct2020_13
 17d27ad30941c81e4bc700300912e84e9b9a8c37 Oct2020_SP3_release
+6b71a8cc3498561815ac88d6c652922359efd13a Oct2020_15
+6b71a8cc3498561815ac88d6c652922359efd13a Oct2020_SP4_release
diff --git a/MonetDB.spec b/MonetDB.spec
--- a/MonetDB.spec
+++ b/MonetDB.spec
@@ -84,7 +84,7 @@ Group: Applications/Databases
 License: MPLv2.0
 URL: https://www.monetdb.org/
 BugURL: https://bugs.monetdb.org/
-Source: 
https://www.monetdb.org/downloads/sources/Oct2020-SP3/%{name}-%{version}.tar.bz2
+Source: 
https://www.monetdb.org/downloads/sources/Oct2020-SP4/%{name}-%{version}.tar.bz2
 
 # The Fedora packaging document says we need systemd-rpm-macros for
 # the _unitdir and _tmpfilesdir macros to exist; however on RHEL 7
@@ -302,8 +302,8 @@ This package contains the files needed t
 Summary: MonetDB ODBC driver
 Group: Applications/Databases
 Requires: %{name}-client%{?_isa} = %{version}-%{release}
-Requires(post): unixODBC
-Requires(postun): unixODBC
+Requires(post): %{_bindir}/odbcinst
+Requires(postun): %{_bindir}/odbcinst
 
 %description client-odbc
 MonetDB is a database management system that is developed from a
@@ -828,6 +828,48 @@ else
 fi
 
 %changelog
+* Fri Apr 02 2021 Sjoerd Mullender <sjo...@acm.org> - 11.39.15-20210402
+- Rebuilt.
+- GH#6786: function json.isvalid(js json) is not useful, could be removed
+- GH#7016: Database crashes when use similarity function on a table with
+  more than 200k records
+- GH#7037: Clearer err msg for ALTER USER with insufficient privileges
+- GH#7042: AddressSanitizer:DEADLYSIGNAL in Oct2020/gdk/gdk_tracer.c:494
+- GH#7050: file descriptor leak when forward=redirect
+- GH#7057: ODBC driver installer on Windows is missing some DLLs
+- GH#7058: MonetDBe: COPY INTO csv file does not produce any output
+- GH#7059: MonetDBe: 'reverse' C UDF crashes
+- GH#7061: Have bulk load support combined gzip files
+- GH#7064: Temporary hashes created in hash and unique logic should try to
+  use transient data farm first
+- GH#7066: percent_rank function with wrong results
+- GH#7070: double free error when running MonetDBe Example
+- GH#7076: mserver5 ignores memory.low from cgroups v2
+- GH#7077: Oct2020: new default privileges not effectively communicated
+- GH#7083: MonetDBe C++ Compiling Error
+- GH#7085: Mitosis and filter functions
+- GH#7087: SIGSEGV caused by error in subquery's function being ignored by
+  top-level query
+- GH#7089: Data consistency problem of query results in the latest release
+  of Monetdb (Remote Table)
+
+* Wed Mar 31 2021 Sjoerd Mullender <sjo...@acm.org> - 11.39.15-20210402
+- odbc: When connecting using a DSN (Data Source Name), information about the
+  data source is retrieved from the ODBC.INI file.  Now we also get the
+  location of the LOGFILE from this file.  The logfile can be used to
+  log all calls to the MonetDB ODBC driver to a file which can be used
+  for debugging.
+
+* Thu Mar 25 2021 Sjoerd Mullender <sjo...@acm.org> - 11.39.15-20210402
+- odbc: The ODBC driver now only passes on information about HUGEINT columns
+  as HUGEINT when the application has indicated interest by querying
+  about the SQL_HUGEINT extension type using the SQLGetTypeInfo
+  function or by specifying the type in a call to SQLSetDescField.
+  Otherwise the driver silently translates the HUGEINT type to BIGINT.
+  This means that most application will see BIGINT columns when the
+  server produced a HUGEINT column and only give an error if the value
+  in the HUGEINT column didn't fit into a BIGINT.
+
 * Thu Feb 11 2021 Sjoerd Mullender <sjo...@acm.org> - 11.39.13-20210211
 - Rebuilt.
 - GH#7049: Implement DISTINCT for GROUP_CONCAT
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
@@ -146,6 +146,7 @@ BAT *BATgroupsum(BAT *b, BAT *g, BAT *e,
 BAT *BATgroupvariance_population(BAT *b, BAT *g, BAT *e, BAT *s, int tp, bool 
skip_nils, bool abort_on_error);
 BAT *BATgroupvariance_sample(BAT *b, BAT *g, BAT *e, BAT *s, int tp, bool 
skip_nils, bool abort_on_error);
 BUN BATgrows(BAT *b);
+BUN BATguess_uniques(BAT *b, struct canditer *ci);
 gdk_return BAThash(BAT *b);
 void BAThseqbase(BAT *b, oid o);
 gdk_return BATimprints(BAT *b);
@@ -181,7 +182,7 @@ gdk_return BATrangejoin(BAT **r1p, BAT *
 gdk_return BATreplace(BAT *b, BAT *p, BAT *n, bool force) 
__attribute__((__warn_unused_result__));
 gdk_return BATroles(BAT *b, const char *tnme);
 BAT *BATsample(BAT *b, BUN n);
-BAT *BATsample_with_seed(BAT *b, BUN n, unsigned seed);
+BAT *BATsample_with_seed(BAT *b, BUN n, uint64_t 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, bool max_one, BUN estimate) 
__attribute__((__warn_unused_result__));
@@ -224,8 +225,9 @@ gdk_return BUNappend(BAT *b, const void 
 gdk_return BUNappendmulti(BAT *b, const void *values, BUN count, bool force) 
__attribute__((__warn_unused_result__));
 gdk_return BUNdelete(BAT *b, oid o) __attribute__((__warn_unused_result__));
 BUN BUNfnd(BAT *b, const void *right);
-gdk_return BUNinplace(BAT *b, BUN p, const void *right, bool force) 
__attribute__((__warn_unused_result__));
 gdk_return BUNreplace(BAT *b, oid left, const void *right, bool force) 
__attribute__((__warn_unused_result__));
+gdk_return BUNreplacemulti(BAT *b, const oid *positions, const void *values, 
BUN count, bool force) __attribute__((__warn_unused_result__));
+gdk_return BUNreplacemultiincr(BAT *b, oid position, const void *values, BUN 
count, bool force) __attribute__((__warn_unused_result__));
 BAT *COLcopy(BAT *b, int tt, bool writable, role_t role);
 BAT *COLnew(oid hseq, int tltype, BUN capacity, role_t role) 
__attribute__((__warn_unused_result__));
 size_t GDK_mem_maxsize;
@@ -241,7 +243,7 @@ gdk_return GDKanalytical_variance_samp(B
 gdk_return GDKanalyticalavg(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, 
int tpe, int frame_type);
 gdk_return GDKanalyticalavginteger(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT 
*e, int tpe, int frame_type);
 gdk_return GDKanalyticalcount(BAT *r, BAT *p, BAT *o, BAT *b, BAT *s, BAT *e, 
bit ignore_nils, int tpe, int frame_type);
-gdk_return GDKanalyticaldiff(BAT *r, BAT *b, BAT *p, int tpe);
+gdk_return GDKanalyticaldiff(BAT *r, BAT *b, BAT *p, const bit *restrict 
npbit, int tpe);
 gdk_return GDKanalyticalfirst(BAT *r, BAT *b, BAT *s, BAT *e, int tpe);
 gdk_return GDKanalyticallag(BAT *r, BAT *b, BAT *p, BUN lag, const void 
*restrict default_value, int tpe);
 gdk_return GDKanalyticallast(BAT *r, BAT *b, BAT *s, BAT *e, int tpe);
@@ -1451,7 +1453,7 @@ int mnstr_fsetpos(stream *restrict s, fp
 int mnstr_fsync(stream *s);
 buffer *mnstr_get_buffer(stream *s);
 bool mnstr_get_swapbytes(const stream *s);
-int mnstr_init(bool embedded);
+int mnstr_init(void);
 int mnstr_isalive(const stream *s);
 bool mnstr_isbinary(const stream *s);
 char *mnstr_name(const stream *s);
diff --git a/clients/examples/C/streamcat.c b/clients/examples/C/streamcat.c
--- a/clients/examples/C/streamcat.c
+++ b/clients/examples/C/streamcat.c
@@ -92,7 +92,7 @@ croak(int status, const char *msg, ...)
 int
 main(int argc, char *argv[])
 {
-       if (mnstr_init(false) < 0)
+       if (mnstr_init() < 0)
                croak(2, "Could not initialize streams library");
 
        if (argc < 2)
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -3178,7 +3178,7 @@ main(int argc, char **argv)
                perror("sigaction");
 #endif
 
-       if (mnstr_init(false) < 0) {
+       if (mnstr_init() < 0) {
                fprintf(stderr, "error: could not initialize streams library");
                exit(2);
        }
diff --git a/clients/mapilib/mapi.c b/clients/mapilib/mapi.c
--- a/clients/mapilib/mapi.c
+++ b/clients/mapilib/mapi.c
@@ -2039,7 +2039,7 @@ mapi_mapiuri(const char *url, const char
        char *query;
 
        if (!ATOMIC_TAS(&mapi_initialized)) {
-               if (mnstr_init(false) < 0)
+               if (mnstr_init() < 0)
                        return NULL;
        }
 
@@ -2161,7 +2161,7 @@ mapi_mapi(const char *host, int port, co
        Mapi mid;
 
        if (!ATOMIC_TAS(&mapi_initialized)) {
-               if (mnstr_init(false) < 0)
+               if (mnstr_init() < 0)
                        return NULL;
        }
 
diff --git a/clients/odbc/ChangeLog b/clients/odbc/ChangeLog
--- a/clients/odbc/ChangeLog
+++ b/clients/odbc/ChangeLog
@@ -1,13 +1,3 @@
 # ChangeLog file for odbc
 # This file is updated with Maddlog
 
-* Thu Mar 25 2021 Sjoerd Mullender <sjo...@acm.org>
-- The ODBC driver now only passes on information about HUGEINT columns
-  as HUGEINT when the application has indicated interest by querying
-  about the SQL_HUGEINT extension type using the SQLGetTypeInfo
-  function or by specifying the type in a call to SQLSetDescField.
-  Otherwise the driver silently translates the HUGEINT type to BIGINT.
-  This means that most application will see BIGINT columns when the
-  server produced a HUGEINT column and only give an error if the value
-  in the HUGEINT column didn't fit into a BIGINT.
-
diff --git a/clients/odbc/ChangeLog-Archive b/clients/odbc/ChangeLog-Archive
--- a/clients/odbc/ChangeLog-Archive
+++ b/clients/odbc/ChangeLog-Archive
@@ -1,6 +1,23 @@
 # DO NOT EDIT THIS FILE -- MAINTAINED AUTOMATICALLY
 # This file contains past ChangeLog entries
 
+* Wed Mar 31 2021 Sjoerd Mullender <sjo...@acm.org> - 11.39.15-20210402
+- When connecting using a DSN (Data Source Name), information about the
+  data source is retrieved from the ODBC.INI file.  Now we also get the
+  location of the LOGFILE from this file.  The logfile can be used to
+  log all calls to the MonetDB ODBC driver to a file which can be used
+  for debugging.
+
+* Thu Mar 25 2021 Sjoerd Mullender <sjo...@acm.org> - 11.39.15-20210402
+- The ODBC driver now only passes on information about HUGEINT columns
+  as HUGEINT when the application has indicated interest by querying
+  about the SQL_HUGEINT extension type using the SQLGetTypeInfo
+  function or by specifying the type in a call to SQLSetDescField.
+  Otherwise the driver silently translates the HUGEINT type to BIGINT.
+  This means that most application will see BIGINT columns when the
+  server produced a HUGEINT column and only give an error if the value
+  in the HUGEINT column didn't fit into a BIGINT.
+
 * Mon Apr 20 2020 Sjoerd Mullender <sjo...@acm.org> - 11.37.1-20200511
 - The NUMERIC and FLOAT types are now handled fully.  Before only DECIMAL,
   FLOAT, and DOUBLE were handled fully.
diff --git a/clients/odbc/ChangeLog.Oct2020 b/clients/odbc/ChangeLog.Oct2020
new file mode 100644
--- /dev/null
+++ b/clients/odbc/ChangeLog.Oct2020
@@ -0,0 +1,3 @@
+# ChangeLog file for odbc
+# This file is updated with Maddlog
+
diff --git a/clients/odbc/driver/SQLConnect.c b/clients/odbc/driver/SQLConnect.c
--- a/clients/odbc/driver/SQLConnect.c
+++ b/clients/odbc/driver/SQLConnect.c
@@ -141,6 +141,20 @@ MNDBConnect(ODBCDbc *dbc,
                }
        }
 
+#ifdef ODBCDEBUG
+       if ((ODBCdebug == NULL || *ODBCdebug == 0) && dsn && *dsn) {
+               char logfile[2048];
+               n = SQLGetPrivateProfileString(dsn, "logfile", "",
+                                              logfile, sizeof(logfile),
+                                              "odbc.ini");
+               if (n > 0) {
+                       if (ODBCdebug)
+                               free((void *) ODBCdebug); /* discard const */
+                       ODBCdebug = strdup(logfile);
+               }
+       }
+#endif
+
        if (dsn && *dsn)
                n = SQLGetPrivateProfileString(dsn, "uid", "monetdb",
                                               uid, sizeof(uid), "odbc.ini");
diff --git a/clients/odbc/driver/SQLGetTypeInfo.c 
b/clients/odbc/driver/SQLGetTypeInfo.c
--- a/clients/odbc/driver/SQLGetTypeInfo.c
+++ b/clients/odbc/driver/SQLGetTypeInfo.c
@@ -1148,6 +1148,10 @@ MNDBGetTypeInfo(ODBCStmt *stmt,
                assert(t == types || t->data_type >= (t-1)->data_type);
                if (DataType != SQL_ALL_TYPES && DataType != t->data_type)
                        continue;
+               if (DataType == SQL_ALL_TYPES &&
+                   t->data_type == SQL_HUGEINT &&
+                   !stmt->Dbc->allow_hugeint)
+                       continue;
                if (first) {
                        /* specify column types in first set of values */
                        i += snprintf(query + i, sizeof(query) - i,
diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake
--- a/cmake/monetdb-versions.cmake
+++ b/cmake/monetdb-versions.cmake
@@ -50,7 +50,7 @@ set(MONETDB_VERSION "${MONETDB_VERSION_M
 # version of the GDK library (subdirectory gdk; also includes
 # common/options and common/utils)
 set(GDK_VERSION_CURRENT "22")
-set(GDK_VERSION_REVISION "2")
+set(GDK_VERSION_REVISION "3")
 set(GDK_VERSION_AGE "1")
 math(EXPR GDK_VERSION_MAJOR "${GDK_VERSION_CURRENT} - ${GDK_VERSION_AGE}")
 set(GDK_VERSION 
"${GDK_VERSION_MAJOR}.${GDK_VERSION_AGE}.${GDK_VERSION_REVISION}")
@@ -64,7 +64,7 @@ set(MAPI_VERSION "${MAPI_VERSION_MAJOR}.
 
 # version of the MONETDB5 library (subdirectory monetdb5, not including extras 
or sql)
 set(MONETDB5_VERSION_CURRENT "30")
-set(MONETDB5_VERSION_REVISION "5")
+set(MONETDB5_VERSION_REVISION "6")
 set(MONETDB5_VERSION_AGE "0")
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to