MonetDB: default - Bug fixed in changeset 89677.
Changeset: 759bbcc2f387 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/759bbcc2f387 Modified Files: sql/test/BugTracker-2023/Tests/misc-crashes-7390.test Branch: default Log Message: Bug fixed in changeset 89677. diffs (34 lines): diff --git a/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test b/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test --- a/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test +++ b/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test @@ -448,20 +448,20 @@ DROP TABLE v0 -- DROP TABLE v0 -- 36.sql --- statement ok --- CREATE TABLE v0(v2 INT, v1 FLOAT) +statement ok +CREATE TABLE v0(v2 INT, v1 FLOAT) --- statement ok --- INSERT INTO v0(v2) VALUES (10),(10),(9),(10) +statement ok +INSERT INTO v0(v2) VALUES (10),(10),(9),(10) --- statement ok --- INSERT INTO v0(v1) VALUES (10),(10),(NULL),(3) +statement ok +INSERT INTO v0(v1) VALUES (10),(10),(NULL),(3) --- statement ok --- SELECT DISTINCT group_concat(v0.v1, v1) FROM v0, v0 AS e, v0 AS c GROUP BY v0.v1 +statement ok +SELECT DISTINCT group_concat(v0.v1, v1) FROM v0, v0 AS e, v0 AS c GROUP BY v0.v1 --- statement ok --- DROP TABLE v0 +statement ok +DROP TABLE v0 -- 37.sql -- statement ok ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Merge with Jun2023 branch.
Changeset: f1deb321bc1b for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/f1deb321bc1b Branch: default Log Message: Merge with Jun2023 branch. diffs (65 lines): diff --git a/gdk/gdk_string.c b/gdk/gdk_string.c --- a/gdk/gdk_string.c +++ b/gdk/gdk_string.c @@ -765,7 +765,7 @@ concat_strings(BAT **bnp, ValPtr pt, BAT { oid gid; BUN i, p, nils = 0; - size_t *restrict lengths = NULL, *restrict lastseplength = NULL, separator_length = 0, next_length; + size_t *restrict lengths = NULL, separator_length = 0, next_length; str *restrict astrings = NULL; BATiter bi, bis = (BATiter) {0}; BAT *bn = NULL; @@ -926,9 +926,7 @@ concat_strings(BAT **bnp, ValPtr pt, BAT * each group, then the the total offset */ lengths = GDKzalloc(ngrp * sizeof(*lengths)); astrings = GDKmalloc(ngrp * sizeof(str)); - if (sep) - lastseplength = GDKzalloc(ngrp * sizeof(*lastseplength)); - if (lengths == NULL || astrings == NULL || (sep && lastseplength == NULL)) { + if (lengths == NULL || astrings == NULL) { goto finish; } /* at first, set astrings[i] to str_nil, then for each @@ -970,14 +968,11 @@ concat_strings(BAT **bnp, ValPtr pt, BAT if (!strNil(sl)) { next_length = strlen(sl); lengths[gid] += next_length; - lastseplength[gid] = next_length; - } else - lastseplength[gid] = 0; + } astrings[gid] = NULL; } else if (!skip_nils) { nils++; lengths[gid] = (size_t) -1; - lastseplength[gid] = 0; astrings[gid] = (char *) str_nil; } } @@ -988,7 +983,7 @@ concat_strings(BAT **bnp, ValPtr pt, BAT if (separator) { for (i = 0; i < ngrp; i++) { if (astrings[i] == NULL) { - if ((astrings[i] = GDKmalloc(lengths[i] + 1 - separator_length)) == NULL) { + if ((astrings[i] = GDKmalloc(lengths[i] + 1)) == NULL) { goto finish; } astrings[i][0] = 0; @@ -1000,7 +995,7 @@ concat_strings(BAT **bnp, ValPtr pt, BAT assert(sep != NULL); for (i = 0; i < ngrp; i++) { if (astrings[i] == NULL) { - if ((astrings[i] = GDKmalloc(lengths[i] + 1 - lastseplength[i])) == NULL) { + if ((astrings[i] = GDKmalloc(lengths[i] + 1)) == NULL) { goto finish; } astrings[i][0] = 0; @@ -1076,7 +1071,6 @@ concat_strings(BAT **bnp, ValPtr pt, BAT if (has_nils) *has_nils = nils; GDKfree(lengths); - GDKfree(lastseplength); if (astrings) { for (i = 0; i < ngrp; i++) { if (astrings[i] != str_nil) ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: new_rmt_opt - Merges with default
Changeset: 976d2e9fa417 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/976d2e9fa417 Branch: new_rmt_opt Log Message: Merges with default diffs (truncated from 6612 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -813,3 +813,4 @@ ce63ebe9a78c52ef0cbe8fd6f2159d2637f0387c 1efa83c6409769d13b2ee30e497d5f7ab42fa955 Jun2023_9 6f88424ebfd9d82c072cf21d89070e04321983da Jun2023_11 6f88424ebfd9d82c072cf21d89070e04321983da Jun2023_SP2_release +e6eb06773c17035954ac5d001cfe1f09ff3425cc Jun2023_13 diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -89,7 +89,7 @@ Group: Applications/Databases License: MPL-2.0 URL: https://www.monetdb.org/ BugURL: https://github.com/MonetDB/MonetDB/issues -Source: https://www.monetdb.org/downloads/sources/Jun2023-SP2/%{name}-%{version}.tar.bz2 +Source: https://www.monetdb.org/downloads/sources/Jun2023-SP3/%{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 @@ -867,6 +867,26 @@ fi %endif %changelog +* Fri Nov 03 2023 Sjoerd Mullender - 11.47.13-20231103 +- Rebuilt. +- GH#7300: Implement missing standard SQL DATE and TIMESTAMP functions +- GH#7324: string_distance('method',str1, str2) as a generic distance + function +- GH#7409: Numpy table returning UDFs with variadic arguments + +* Thu Nov 2 2023 Sjoerd Mullender - 11.47.13-20231103 +- sql: Added a missing interface function sys.timestamp_to_str with + a TIMESTAMP (as opposed to TIMESTAMP WITH TIME ZONE) argument. + The missing interface caused error messages being produced when the + function was called with a TIMESTAMP argument, although it did give + the correct result. + +* Tue Oct 31 2023 Sjoerd Mullender - 11.47.13-20231103 +- gdk: A bug was fixed where the administration of which bats were in use was + interpreted incorrectly during startup, causing problems later. One + symptom that has been observed was failure to startup with a message + that the catalog tables could not be loaded. + * Fri Sep 29 2023 Sjoerd Mullender - 11.47.11-20230929 - Rebuilt. diff --git a/clients/Tests/MAL-signatures-hge.test b/clients/Tests/MAL-signatures-hge.test --- a/clients/Tests/MAL-signatures-hge.test +++ b/clients/Tests/MAL-signatures-hge.test @@ -30330,11 +30330,6 @@ nil_2time_timestamp; cast to timestamp and check for overflow batcalc timestamp -pattern batcalc.timestamp(X_0:bat[:oid], X_1:int, X_2:bat[:BAT]):bat[:timestamp] -nil_2time_timestamp; -cast to timestamp and check for overflow -batcalc -timestamp pattern batcalc.timestamp(X_0:bat[:timestamp], X_1:bat[:oid], X_2:int):bat[:timestamp] timestamp_2time_timestamp; cast timestamp to timestamp and check for overflow diff --git a/clients/Tests/MAL-signatures.test b/clients/Tests/MAL-signatures.test --- a/clients/Tests/MAL-signatures.test +++ b/clients/Tests/MAL-signatures.test @@ -21555,11 +21555,6 @@ nil_2time_timestamp; cast to timestamp and check for overflow batcalc timestamp -pattern batcalc.timestamp(X_0:bat[:oid], X_1:int, X_2:bat[:BAT]):bat[:timestamp] -nil_2time_timestamp; -cast to timestamp and check for overflow -batcalc -timestamp pattern batcalc.timestamp(X_0:bat[:timestamp], X_1:bat[:oid], X_2:int):bat[:timestamp] timestamp_2time_timestamp; cast timestamp to timestamp and check for overflow 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 @@ -357,6 +357,7 @@ size_t HEAPvmsize(Heap *h); void IMPSdestroy(BAT *b); lng IMPSimprintsize(BAT *b); int MT_access(const char *pathname, int mode); +gdk_return MT_alloc_tls(MT_TLS_t *newkey); int MT_check_nr_cores(void); void MT_cond_broadcast(MT_Cond *cond); void MT_cond_destroy(MT_Cond *cond); @@ -393,6 +394,8 @@ void MT_thread_setdata(void *data); void MT_thread_setlockwait(MT_Lock *lock); void MT_thread_setsemawait(MT_Sema *sema); void MT_thread_setworking(const char *work); +void *MT_tls_get(MT_TLS_t key); +void MT_tls_set(MT_TLS_t key, void *val); 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); diff --git a/clients/odbc/driver/SQLGetInfo.c b/clients/odbc/driver/SQLGetInfo.c --- a/clients/odbc/driver/SQLGetInfo.c +++ b/clients/odbc/driver/SQLGetInfo.c @@ -590,12 +590,14 @@ MNDBGetInfo(ODBCDbc *dbc, break; case SQL_INFO_SCHEMA_VIEWS: nValue = SQL_ISV_CHARACTER_SETS | + SQL_ISV_CHECK_CONSTRAINTS | SQL_ISV_COLUMNS | + SQL_ISV_REFERENTIAL_CONSTRAINTS | SQL_ISV_SCHEMATA | + SQL_ISV_TABLE_CONSTRAINTS | SQL_ISV_TABLES | SQL_ISV_VIEWS; /* SQL_ISV_ASSERTIONS
MonetDB: monetdburl - Exports
Changeset: 236fce70e19f for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/236fce70e19f Modified Files: clients/Tests/exports.stable.out Branch: monetdburl Log Message: Exports diffs (12 lines): 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 @@ -722,6 +722,8 @@ msettings_error msetting_set_named(msett const char *msetting_string(const msettings *mp, mparm parm); long msettings_connect_binary(const msettings *mp); const char *msettings_connect_certhash_digits(const msettings *mp); +const char *msettings_connect_clientcert(const msettings *mp); +const char *msettings_connect_clientkey(const msettings *mp); long msettings_connect_port(const msettings *mp); bool msettings_connect_scan(const msettings *mp); const char *msettings_connect_tcp(const msettings *mp); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: monetdburl - Assert that this Python version has TLS1.3.
Changeset: 91411eed0664 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/91411eed0664 Modified Files: clients/mapilib/Tests/tlstester.py Branch: monetdburl Log Message: Assert that this Python version has TLS1.3. If it doesn't we cannot use it to test our TLS implementation. diffs (12 lines): diff --git a/clients/mapilib/Tests/tlstester.py b/clients/mapilib/Tests/tlstester.py --- a/clients/mapilib/Tests/tlstester.py +++ b/clients/mapilib/Tests/tlstester.py @@ -26,6 +26,8 @@ from threading import Thread import threading from typing import Any, Callable, Dict, List, Optional, Tuple, Union +# Our TLS implementation never uses anything less than TLSv1.3. +assert ssl.HAS_TLSv1_3 import warnings with warnings.catch_warnings(): ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: monetdburl - Roll back intentional test failure
Changeset: 1d7a98754988 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/1d7a98754988 Modified Files: clients/mapilib/Tests/systemcertificates.py Branch: monetdburl Log Message: Roll back intentional test failure diffs (24 lines): diff --git a/clients/mapilib/Tests/systemcertificates.py b/clients/mapilib/Tests/systemcertificates.py --- a/clients/mapilib/Tests/systemcertificates.py +++ b/clients/mapilib/Tests/systemcertificates.py @@ -27,12 +27,15 @@ cmd = ['mclient', '-L-', '-d', f"monetdb proc = subprocess.run(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE) assert proc.returncode == 2, f"mclient is supposed to exit with status 2, not {proc.returncode}" -# We expect the server to send something like 'HTTP/1.1 400 Bad Request' -# libmapi will interpret the first two bytes as a block header. +# After the TLS handshake succeeds we expect the server to send something like +# 'HTTP/1.1 400 Bad Request' because we're sending \x00\x00 instead of an HTTP +# request. libmapi will interpret the first two bytes 'H' and 'T' as an invalid +# block header. # -# In ASCII, 'H' + 256 * 'T' is 21576. -ok = b'21576' not in proc.stderr -if ok or True: +# In ASCII, 'H' + 256 * 'T' == 72 + 256 * 84 == 21576. +tls_works_but_mapi_fails = b'21576' in proc.stderr + +if not tls_works_but_mapi_fails: msg = str(proc.stderr, 'utf-8') print(f"Expected mclient to print an error message containing the number 21576, got:\n--- stderr ---\n{msg}\n---end stderr ---", file=sys.stderr) exit(1) ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: new_rmt_opt - Visitor state with REMOTE prop saves rel ...
Changeset: 9cfe448baa07 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/9cfe448baa07 Modified Files: sql/server/rel_distribute.c Branch: new_rmt_opt Log Message: Visitor state with REMOTE prop saves rel of origin in case of cleanup diffs (51 lines): diff --git a/sql/server/rel_distribute.c b/sql/server/rel_distribute.c --- a/sql/server/rel_distribute.c +++ b/sql/server/rel_distribute.c @@ -18,6 +18,7 @@ typedef struct rmt_prop_state { int depth; prop* rmt; + sql_rel* orig; } rps; static int @@ -118,9 +119,9 @@ static sql_rel * replica_rewrite(visitor *v, sql_table *t, list *exps) { sql_rel *res = NULL; - prop *p = ((rps*)v->data)->rmt; - sqlid tid = p->id; - list *uris = p->value.pval; + prop *rp = ((rps*)v->data)->rmt; + sqlid tid = rp->id; + list *uris = rp->value.pval; if (mvc_highwater(v->sql)) return sql_error(v->sql, 10, SQLSTATE(42000) "Query too complex: running out of stack space"); @@ -156,6 +157,10 @@ replica_rewrite(visitor *v, sql_table *t if (!isRemote(next) && ((!isReplicaTable(next) && !isMergeTable(next)) || !list_empty(next->members))) { pt = next; remote = 0; + /* if we resolved the replica to a local table we have to +* go and remove the remote property from the subtree */ + sql_rel *r = ((rps*)v->data)->orig; + r->p = prop_remove(r->p, rp); break; } } @@ -208,6 +213,7 @@ rel_rewrite_replica_(visitor *v, sql_rel rps *rp = SA_NEW(v->sql->sa, rps); rp->depth = v->depth; rp->rmt = p; + rp->orig = rel; v->data = rp; } } else { @@ -220,6 +226,7 @@ rel_rewrite_replica_(visitor *v, sql_rel rps *rp = SA_NEW(v->sql->sa, rps); rp->depth = v->depth; rp->rmt = p; + rp->orig = rel; v->data = rp; } ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: monetdburl - Verify the host name in the server certifi...
Changeset: 10dbea2f77bb for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/10dbea2f77bb Modified Files: clients/mapilib/connect_openssl.c Branch: monetdburl Log Message: Verify the host name in the server certificate diffs (101 lines): diff --git a/clients/mapilib/connect_openssl.c b/clients/mapilib/connect_openssl.c --- a/clients/mapilib/connect_openssl.c +++ b/clients/mapilib/connect_openssl.c @@ -24,6 +24,7 @@ #include #include #include +#include MapiMsg croak_openssl(Mapi mid, const char *action, const char *fmt, ...) @@ -121,7 +122,7 @@ make_ssl_context(Mapi mid, SSL_CTX **ctx } static MapiMsg -verify_server_certificate_hash(Mapi mid, SSL *ssl, const char *required_prefix) +verify_server_certificate_hash(Mapi mid, X509 *x509, const char *required_prefix) { mapi_log_record(mid, "CONN", "verifying certificate hash against prefix '%s'", required_prefix); @@ -129,10 +130,6 @@ verify_server_certificate_hash(Mapi mid, if (prefix_len > 2 * SHA256_DIGEST_LENGTH) return mapi_setError(mid, "value of certhash= is longer than a sha256 digest", __func__, MERROR); - X509 *x509 = SSL_get_peer_certificate(ssl); - if (x509 == NULL) - return mapi_printError(mid, __func__, MERROR, "Server did not send a TLS certificate"); - // Convert to DER unsigned char *buf = NULL; int buflen = i2d_X509(x509, ); @@ -175,8 +172,6 @@ verify_server_certificate_hash(Mapi mid, mapi_log_record(mid, "CONN", "server certificate matches certhash"); return MOK; } - - MapiMsg wrap_tls(Mapi mid, SOCKET sock) { @@ -264,6 +259,17 @@ wrap_tls(Mapi mid, SOCKET sock) return croak_openssl(mid, __func__, "SSL_set_tlsext_host_name"); } + X509_VERIFY_PARAM *param = SSL_get0_param(ssl); + if (param == NULL) { + BIO_free_all(bio); + return croak_openssl(mid, __func__, "SSL_get0_param"); + } + X509_VERIFY_PARAM_set_hostflags(param, X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS); + if (1 != X509_VERIFY_PARAM_set1_host(param, host, strlen(host))) { + BIO_free_all(bio); + return croak_openssl(mid, __func__, "X509_VERIFY_PARAM_set1_host"); + } + // Temporarily disable the ALPN header. // TODO re-enable it when test systemcertificates.py no longer relies // on connecting to an HTTPS server. (Which is an ugly hack in the first place!) @@ -289,19 +295,32 @@ wrap_tls(Mapi mid, SOCKET sock) } } - // handshake + // Handshake. if (1 != SSL_connect(ssl)) { BIO_free_all(bio); return croak_openssl(mid, __func__, "SSL_connect handshake"); } + // Verify the server certificate + X509 *server_cert = SSL_get_peer_certificate(ssl); + if (server_cert == NULL) { + BIO_free_all(bio); + return croak_openssl(mid, __func__, "Server did not send a certificate"); + } if (verify_method == verify_hash) { const char *required_prefix = msettings_connect_certhash_digits(settings); - msg = verify_server_certificate_hash(mid, ssl, required_prefix); + msg = verify_server_certificate_hash(mid, server_cert, required_prefix); if (msg != MOK) { BIO_free_all(bio); return msg; } + } else { + long verify_result = SSL_get_verify_result(ssl); + if (verify_result != X509_V_OK) { + BIO_free_all(bio); + const char *error_message = X509_verify_cert_error_string(verify_result); + return croak_openssl(mid, __func__, "Invalid server certificate: %s", error_message); + } } / @@ -341,6 +360,7 @@ wrap_tls(Mapi mid, SOCKET sock) } // 'rstream' and 'wstream' are part of 'mid' now. + mapi_log_record(mid, "CONN", "TLS handshake succeeded"); return MOK; } ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: monetdburl - Switch back to "ROOT" certificate store on...
Changeset: 68582346a109 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/68582346a109 Modified Files: clients/mapilib/openssl_windows.c Branch: monetdburl Log Message: Switch back to "ROOT" certificate store on Windows. Also be less verbose. diffs (30 lines): diff --git a/clients/mapilib/openssl_windows.c b/clients/mapilib/openssl_windows.c --- a/clients/mapilib/openssl_windows.c +++ b/clients/mapilib/openssl_windows.c @@ -32,7 +32,7 @@ process_sysstore_item(Mapi mid, X509_STO bool is_x509 = (typ & X509_ASN_ENCODING); bool is_pkcs7 = (typ & PKCS_7_ASN_ENCODING); - mapi_log_data(mid, "CERT", (char*)data, size); + // mapi_log_data(mid, "CERT", (char*)data, size); if (!is_x509) return mapi_printError(mid, __func__, MERROR, "sys store certificate #%d must be in X509 format", nr); @@ -62,7 +62,7 @@ add_system_certificates(Mapi mid, SSL_CT mapi_log_record(mid, "CONN", "Enumerating system certificates"); - sysstore = CertOpenSystemStoreW(0, L"CA"); + sysstore = CertOpenSystemStoreW(0, L"ROOT"); if (!sysstore) return croak_win32(mid, __func__, GetLastError()); @@ -89,7 +89,7 @@ add_system_certificates(Mapi mid, SSL_CT case ERROR_NO_MORE_FILES: // Normal exit codes according to the documentation at // https://learn.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-certenumcertificatesinstore - mapi_log_record(mid, "CONN", "Added %d certificates", count); + mapi_log_record(mid, "CONN", "Found %d certificates", count); return MOK; default: // Anything else is problematic ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: monetdburl - Make clientkey and clientcert connect_ par...
Changeset: c01fb9636ab2 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/c01fb9636ab2 Modified Files: clients/examples/C/testsfile.c clients/mapilib/Tests/tests.md clients/mapilib/connect_openssl.c clients/mapilib/msettings.c clients/mapilib/msettings.h Branch: monetdburl Log Message: Make clientkey and clientcert connect_ parameters diffs (126 lines): diff --git a/clients/examples/C/testsfile.c b/clients/examples/C/testsfile.c --- a/clients/examples/C/testsfile.c +++ b/clients/examples/C/testsfile.c @@ -235,6 +235,10 @@ handle_expect_command(const char *locati return expect_string(location, MP_UNKNOWN, msettings_connect_certhash_digits, value); if (strcmp("connect_binary", key) == 0) return expect_long(location, MP_UNKNOWN, msettings_connect_binary, value); + if (strcmp("connect_clientkey", key) == 0) + return expect_string(location, MP_UNKNOWN, msettings_connect_clientkey, value); + if (strcmp("connect_clientcert", key) == 0) + return expect_string(location, MP_UNKNOWN, msettings_connect_clientcert, value); const mparm parm = mparm_parse(key); if (parm == MP_UNKNOWN) { diff --git a/clients/mapilib/Tests/tests.md b/clients/mapilib/Tests/tests.md --- a/clients/mapilib/Tests/tests.md +++ b/clients/mapilib/Tests/tests.md @@ -331,15 +331,40 @@ REJECT monetdbs:///?certhash={sha99}X ```test EXPECT clientkey= +EXPECT clientcert= ACCEPT monetdbs:///?clientkey=/tmp/clientkey.pem EXPECT clientkey=/tmp/clientkey.pem ACCEPT monetdbs:///?clientkey=C:\TEMP\clientkey.pem EXPECT clientkey=C:\TEMP\clientkey.pem ``` -### clientcert +```test +EXPECT connect_clientkey= +EXPECT connect_clientcert= +``` + +```test +SET clientkey=/tmp/key.pem +SET clientcert=/tmp/cert.pem +EXPECT valid=true +EXPECT connect_clientkey=/tmp/key.pem +EXPECT connect_clientcert=/tmp/cert.pem +``` ```test +SET clientkey=/tmp/key.pem +EXPECT valid=true +EXPECT connect_clientkey=/tmp/key.pem +EXPECT connect_clientcert=/tmp/key.pem +``` + +```test +SET clientcert=/tmp/cert.pem +EXPECT valid=false +``` + +```test +SET clientkey=dummy EXPECT clientcert= ACCEPT monetdbs:///?clientcert=/tmp/clientcert.pem EXPECT clientcert=/tmp/clientcert.pem diff --git a/clients/mapilib/connect_openssl.c b/clients/mapilib/connect_openssl.c --- a/clients/mapilib/connect_openssl.c +++ b/clients/mapilib/connect_openssl.c @@ -193,10 +193,8 @@ wrap_tls(Mapi mid, SOCKET sock) size_t hostlen = strlen(host); size_t hostportlen = hostlen + 1 + 20; - const char *clientkey = msetting_string(settings, MP_CLIENTKEY); - const char *clientcert = msetting_string(settings, MP_CLIENTCERT); - if (!clientcert[0]) - clientcert = clientkey; // this logic should be virtual parameters in the spec! + const char *clientkey = msettings_connect_clientkey(settings); + const char *clientcert = msettings_connect_clientcert(settings); enum msetting_tls_verify verify_method = msettings_connect_tls_verify(settings); // Clear any earlier errrors diff --git a/clients/mapilib/msettings.c b/clients/mapilib/msettings.c --- a/clients/mapilib/msettings.c +++ b/clients/mapilib/msettings.c @@ -672,6 +672,12 @@ msettings_validate(msettings *mp, char * return false; } + // 9. If **clientcert** is set, **clientkey** must also be set. + if (nonempty(mp, MP_CLIENTCERT) && empty(mp, MP_CLIENTKEY)) { + *errmsg = allocprintf("clientcert can only be set together with clientkey"); + return false; + } + // compute this here so the getter function can take const msettings* const char *sockdir = msetting_string(mp, MP_SOCKDIR); long effective_port = msettings_connect_port(mp); @@ -767,6 +773,22 @@ msettings_connect_tls_verify(const msett } const char* +msettings_connect_clientkey(const msettings *mp) +{ + return msetting_string(mp, MP_CLIENTKEY); +} + +const char* +msettings_connect_clientcert(const msettings *mp) +{ + const char *cert = msetting_string(mp, MP_CLIENTCERT); + if (*cert) + return cert; + else + return msetting_string(mp, MP_CLIENTKEY); +} + +const char* msettings_connect_certhash_digits(const msettings *mp) { return mp->certhash_digits_buffer; diff --git a/clients/mapilib/msettings.h b/clients/mapilib/msettings.h --- a/clients/mapilib/msettings.h +++ b/clients/mapilib/msettings.h @@ -146,6 +146,8 @@ mapi_export long msettings_connect_port( mapi_export const char *msettings_connect_certhash_digits(const msettings *mp); mapi_export long msettings_connect_binary(const msettings *mp); mapi_export enum msetting_tls_verify msettings_connect_tls_verify(const msettings *mp); +mapi_export const char *msettings_connect_clientkey(const msettings *mp); +mapi_export const char *msettings_connect_clientcert(const
MonetDB: monetdburl - Allow msetting strings to be non-malloc'ed...
Changeset: 27f48e7ab297 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/27f48e7ab297 Modified Files: clients/Tests/exports.stable.out clients/mapilib/Tests/tests.md clients/mapilib/connect_unix.c clients/mapilib/msettings.c clients/mapilib/msettings.h Branch: monetdburl Log Message: Allow msetting strings to be non-malloc'ed to enable default values Use this for sockdir and binary diffs (truncated from 302 to 300 lines): 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 @@ -724,7 +724,6 @@ long msettings_connect_binary(const mset const char *msettings_connect_certhash_digits(const msettings *mp); long msettings_connect_port(const msettings *mp); bool msettings_connect_scan(const msettings *mp); -const char *msettings_connect_sockdir(const msettings *mp); const char *msettings_connect_tcp(const msettings *mp); enum msetting_tls_verify msettings_connect_tls_verify(const msettings *mp); const char *msettings_connect_unix(const msettings *mp); diff --git a/clients/mapilib/Tests/tests.md b/clients/mapilib/Tests/tests.md --- a/clients/mapilib/Tests/tests.md +++ b/clients/mapilib/Tests/tests.md @@ -258,6 +258,7 @@ EXPECT port=-1 EXPECT database= EXPECT tableschema= EXPECT table= +EXPECT binary=on ``` ### sock @@ -272,6 +273,15 @@ ACCEPT monetdb:///?sock=C:\TEMP\sock EXPECT sock=C:\TEMP\sock ``` +### sockdir + +```test +EXPECT sockdir=/tmp +ACCEPT monetdb:///demo?sockdir=/tmp/nonstandard +EXPECT sockdir=/tmp/nonstandard +EXPECT connect_unix=/tmp/nonstandard/.s.monetdb.5 +``` + ### cert ```test @@ -471,14 +481,8 @@ ACCEPT monetdb:///?binary=0100 EXPECT connect_binary=100 ``` -We take empty to be 'on' - ```test -ACCEPT monetdb:///?binary= -EXPECT connect_binary=65535 -``` - -```test +REJECT monetdb:///?binary= REJECT monetdb:///?binary=-1 REJECT monetdb:///?binary=1.0 REJECT monetdb:///?binary=banana @@ -1129,6 +1133,21 @@ EXPECT connect_tcp=not.localhost REJECT monetdbs://not.localhost/?sock=/a/path ``` +### sock and sockdir + +Sockdir only applies to implicit Unix domain sockets, +not to ones that are given explicitly + +```test +EXPECT sockdir=/tmp +EXPECT port=-1 +EXPECT host= +EXPECT connect_unix=/tmp/.s.monetdb.5 +SET sockdir=/somewhere/else +EXPECT connect_unix=/somewhere/else/.s.monetdb.5 +SET port=12345 +EXPECT connect_unix=/somewhere/else/.s.monetdb.12345 +``` ## Legacy URL's diff --git a/clients/mapilib/connect_unix.c b/clients/mapilib/connect_unix.c --- a/clients/mapilib/connect_unix.c +++ b/clients/mapilib/connect_unix.c @@ -34,7 +34,7 @@ scan_unix_sockets(Mapi mid) DIR *dir = NULL; struct dirent *entry; - const char *sockdir = msettings_connect_sockdir(mid->settings); + const char *sockdir = msetting_string(mid->settings, MP_SOCKDIR); size_t len = strlen(sockdir); char *namebuf = malloc(len + 50); if (namebuf == NULL) diff --git a/clients/mapilib/msettings.c b/clients/mapilib/msettings.c --- a/clients/mapilib/msettings.c +++ b/clients/mapilib/msettings.c @@ -153,6 +153,11 @@ mparm_is_core(mparm parm) } } +struct string { + char *str; + bool must_free; +}; + struct msettings { // Must match EXACTLY the order of enum mparm bool dummy_start_bool; @@ -168,23 +173,23 @@ struct msettings { long dummy_end_long; // Must match EXACTLY the order of enum mparm - char *dummy_start_string; - char *sock; - char *sockdir; - char *cert; - char *clientkey; - char *clientcert; - char *host; - char *database; - char *tableschema; - char *table; - char *certhash; - char *user; - char *password; - char *language; - char *schema; - char *binary; - char *dummy_end_string; + struct string dummy_start_string; + struct string sock; + struct string sockdir; + struct string cert; + struct string clientkey; + struct string clientcert; + struct string host; + struct string database; + struct string tableschema; + struct string table; + struct string certhash; + struct string user; + struct string password; + struct string language; + struct string schema; + struct string binary; + struct string dummy_end_string; char **unknown_parameters; size_t nr_unknown; @@ -207,20 +212,8 @@ const msettings msettings_default_values .timezone = 0, .replysize = 100, - .sock = NULL, - .cert = NULL, - .clientkey = NULL, - .clientcert = NULL, - .host = NULL, - .database = NULL, - .tableschema = NULL, - .table = NULL, - .certhash = NULL, - .user = NULL, - .password = NULL, - .language = NULL, - .schema = NULL, -
MonetDB: Jun2023 - Fix an out-of-bounds write by making sure eno...
Changeset: c729ee7c51ff for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/c729ee7c51ff Modified Files: gdk/gdk_string.c Branch: Jun2023 Log Message: Fix an out-of-bounds write by making sure enough bytes are allocated. diffs (65 lines): diff --git a/gdk/gdk_string.c b/gdk/gdk_string.c --- a/gdk/gdk_string.c +++ b/gdk/gdk_string.c @@ -765,7 +765,7 @@ concat_strings(BAT **bnp, ValPtr pt, BAT { oid gid; BUN i, p, nils = 0; - size_t *restrict lengths = NULL, *restrict lastseplength = NULL, separator_length = 0, next_length; + size_t *restrict lengths = NULL, separator_length = 0, next_length; str *restrict astrings = NULL; BATiter bi, bis = (BATiter) {0}; BAT *bn = NULL; @@ -926,9 +926,7 @@ concat_strings(BAT **bnp, ValPtr pt, BAT * each group, then the the total offset */ lengths = GDKzalloc(ngrp * sizeof(*lengths)); astrings = GDKmalloc(ngrp * sizeof(str)); - if (sep) - lastseplength = GDKzalloc(ngrp * sizeof(*lastseplength)); - if (lengths == NULL || astrings == NULL || (sep && lastseplength == NULL)) { + if (lengths == NULL || astrings == NULL) { goto finish; } /* at first, set astrings[i] to str_nil, then for each @@ -970,14 +968,11 @@ concat_strings(BAT **bnp, ValPtr pt, BAT if (!strNil(sl)) { next_length = strlen(sl); lengths[gid] += next_length; - lastseplength[gid] = next_length; - } else - lastseplength[gid] = 0; + } astrings[gid] = NULL; } else if (!skip_nils) { nils++; lengths[gid] = (size_t) -1; - lastseplength[gid] = 0; astrings[gid] = (char *) str_nil; } } @@ -988,7 +983,7 @@ concat_strings(BAT **bnp, ValPtr pt, BAT if (separator) { for (i = 0; i < ngrp; i++) { if (astrings[i] == NULL) { - if ((astrings[i] = GDKmalloc(lengths[i] + 1 - separator_length)) == NULL) { + if ((astrings[i] = GDKmalloc(lengths[i] + 1)) == NULL) { goto finish; } astrings[i][0] = 0; @@ -1000,7 +995,7 @@ concat_strings(BAT **bnp, ValPtr pt, BAT assert(sep != NULL); for (i = 0; i < ngrp; i++) { if (astrings[i] == NULL) { - if ((astrings[i] = GDKmalloc(lengths[i] + 1 - lastseplength[i])) == NULL) { + if ((astrings[i] = GDKmalloc(lengths[i] + 1)) == NULL) { goto finish; } astrings[i][0] = 0; @@ -1076,7 +1071,6 @@ concat_strings(BAT **bnp, ValPtr pt, BAT if (has_nils) *has_nils = nils; GDKfree(lengths); - GDKfree(lastseplength); if (astrings) { for (i = 0; i < ngrp; i++) { if (astrings[i] != str_nil) ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: balanced_union - initialize r variable
Changeset: 0232c6129e97 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/0232c6129e97 Modified Files: sql/server/rel_rel.c Branch: balanced_union Log Message: initialize r variable diffs (12 lines): diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c --- a/sql/server/rel_rel.c +++ b/sql/server/rel_rel.c @@ -1271,7 +1271,7 @@ list * _rel_projections(mvc *sql, sql_rel *rel, const char *tname, int settname, int intern, int basecol /* basecol only */ ) { list *lexps, *rexps = NULL, *exps = NULL, *rels; - sql_rel *r; + sql_rel *r = NULL; if (mvc_highwater(sql)) return sql_error(sql, 10, SQLSTATE(42000) "Query too complex: running out of stack space"); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Window functions partition by clause subqueri...
Changeset: 44096ae7c955 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/44096ae7c955 Modified Files: sql/server/rel_select.c Branch: default Log Message: Window functions partition by clause subqueries are not allowed atm. diffs (20 lines): diff --git a/sql/server/rel_select.c b/sql/server/rel_select.c --- a/sql/server/rel_select.c +++ b/sql/server/rel_select.c @@ -4662,12 +4662,15 @@ rel_partition_groupings(sql_query *query return NULL; } } - if (exp_is_rel(e)) + + if (exp_has_rel(e)) return sql_error(sql, 02, SQLSTATE(42000) "PARTITION BY: subqueries not allowed in PARTITION BY clause"); + if (e->type != e_column) { /* store group by expressions in the stack */ if (!frame_push_groupby_expression(sql, grp, e)) return NULL; } + if (e->card > CARD_AGGR) e->card = CARD_AGGR; append(exps, e); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - GH7390 full queries examples. Not fixed are c...
Changeset: 2e8937b7049e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/2e8937b7049e Modified Files: sql/test/BugTracker-2023/Tests/misc-crashes-7390.test Branch: default Log Message: GH7390 full queries examples. Not fixed are commented. (wip) diffs (truncated from 435 to 300 lines): diff --git a/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test b/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test --- a/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test +++ b/sql/test/BugTracker-2023/Tests/misc-crashes-7390.test @@ -1,6 +1,3 @@ -statement ok -drop table if exists v0 - -- 01.sql statement ok CREATE TABLE v0 (v1 SMALLINT) @@ -12,7 +9,7 @@ statement ok SELECT NULL, v1 FROM v0 v0 ORDER BY v1+v1, v1, -1 LIMIT 2147483645 statement ok -drop table v0 +DROP TABLE v0 -- 02.sql statement ok @@ -22,8 +19,9 @@ query TTI SELECT DISTINCT v1 v1, v1, abs(v1)=10 FROM v0 WHERE lower (v1) IS NOT NULL + statement ok -drop table v0 +DROP TABLE v0 -- 03.sql statement ok @@ -47,7 +45,7 @@ 1 .125e+3 statement ok -drop view v0 +DROP VIEW v0 -- 04.sql statement ok @@ -77,7 +75,7 @@ 122500 5 statement ok -drop table v0; +DROP TABLE v0; -- 05.sql statement ok @@ -106,21 +104,18 @@ SELECT distinct FIRST_VALUE ( v1 ) OVER 10 statement ok -drop table v0 +DROP TABLE v0 -- 06.sql statement error HY013!Could not allocate space CREATE TEMP TABLE Table0 (Col0 INT, PRIMARY KEY(Col0), FOREIGN KEY (Col0) REFERENCES Table0) -statement ok -drop table if exists Table0 - -- 07.sql statement ok CREATE VIEW v0 AS SELECT CAST (NULL AS INT) EXCEPT SELECT CAST (NULL AS INT) GROUP BY NULL statement ok -drop view if exists v0 +DROP VIEW v0 -- 08.sql statement ok @@ -144,7 +139,7 @@ statement ok SELECT v1, row_number() OVER (ORDER BY v1 * 3 NULLS LAST, NULL*0 DESC NULLS FIRST), 3 FROM v0 LIMIT 30 statement ok -drop table v0 +DROP TABLE v0 -- 09.sql statement ok @@ -160,16 +155,350 @@ query IR SELECT * FROM v0 ORDER BY (SELECT -1) + statement ok -drop table v0 +DROP TABLE v0 -- 10.sql statement ok -CREATE TABLE v0 (v1 INT PRIMARY KEY) +CREATE TABLE v0(v1 INT PRIMARY KEY) query I SELECT DISTINCT (SELECT v1 WHERE (5)) >= ANY(9223372036854775807) FROM v0 --- TODO: add remaining 11.sql to 40.sql tests and fix bugs +statement ok +DROP TABLE v0 + +-- 11.sql +statement ok +CREATE TABLE v0(v1 BIGINT UNIQUE PRIMARY KEY); + +statement error 42000!PARTITION BY: subqueries not allowed in PARTITION BY clause +UPDATE v0 SET v1 = v1 * 73 WHERE v1 = (SELECT SUM(v1) OVER (PARTITION BY 52, (NOT EXISTS (SELECT 0 + (SELECT v1 WHERE v1 * v1 * v1 GROUP BY v1) AS v3 WHERE v1 = 'x' OR 'x' OR v1)), v1, 37 ORDER BY v1 NULLS LAST) IS NOT NULL AS v2 GROUP BY v1 HAVING v1 > 'x') AND NOT ((v1 = 66 AND v1 < 'x') AND v1 = 50) AND 35 >= 65; + +statement ok +DROP TABLE v0 + +-- 12.sql +-- statement ok +-- CREATE TABLE v0 (v1 VARCHAR(255) NULL) + +-- statement ok +-- INSERT INTO v0 (v1) VALUES (2),(10),(99),(1.10),(3) + +-- statement ok +-- UPDATE v0 SET v1 = (SELECT MIN(v1) OVER (ROWS 10 PRECEDING) WHERE (10 = v1 OR v1 = ((3 - 10.10))) AND 3 NOT LIKE v1); + +-- statement ok +-- DROP TABLE v0 + +-- -- 13.sql +-- statement ok +-- CREATE TABLE v0 (v1 SMALLINT) + +-- statement ok +-- UPDATE v0 SET v1 = CASE WHEN v1 > 37 THEN (SELECT ALL AVG (v1) AS v2 FROM (SELECT SUM(v1) OVER (ORDER BY v1 RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)) AS v3 WHERE v1 = v1 AND v1 = v1) / 99 ELSE 8 END ^ 16 + 1 ^ -32768 + +-- statement ok +-- DROP TABLE v0 + +-- -- 14.sql +-- statement ok +-- CREATE TABLE v0(v1 INT) + +-- statement ok +-- INSERT INTO v0 VALUES (-1),(NULL),(57),(NULL),(NULL) + +-- statement ok +-- UPDATE v0 SET v1 = v1 % (WITH v0 (v1) AS (SELECT -2147483648 WHERE (v1 < -1 OR v1 = 37 % 127) AND v1 - 85 = 45 AND v1 IS NOT NULL) SELECT DISTINCT -1 FROM v0) + v1; + +-- statement ok +-- DROP TABLE v0 + +-- -- 15.sql +-- statement ok +-- CREATE TABLE v0(v1 SMALLINT) + +-- statement ok +-- UPDATE v0 SET v1 = v1 <= (WITH v0 (v1) AS (SELECT (CASE WHEN 59 THEN (0 * (('x' < v1 = 255 > v1 - v1))) END)) SELECT v1 > 16 OR v1 > 2147483647 AND v1 >= 27 AS v4 FROM v0 ORDER BY v1 > v1 % v1 % (v1) NULLS LAST) OR v1 > -1 + +-- statement ok +-- DROP TABLE v0 + +-- -- 16.sql +-- statement ok +-- CREATE TABLE v0(v1 FLOAT) + +-- statement ok +-- INSERT INTO v0 VALUES (82),((SELECT 0 FROM v0 AS v2 GROUP BY (SELECT -128))),(15255709.00),(12) + +-- statement ok +-- SELECT v1 = 2147483647 - v1 ^ v1 AS v4 FROM v0 AS v3, v0, v0 AS v6,v0 AS v5, v0 AS v7 ORDER BY 35 >= (SELECT VAR_SAMP(v1 >= 72 ) OVER (ROWS BETWEEN v1 + -128 * -32768 PRECEDING AND CURRENT ROW) IS NOT NULL) ASC + +-- statement ok +-- DROP TABLE v0 + +-- -- 17.sql +-- statement ok +-- CREATE TABLE v0(v1 INT) + +-- statement ok +-- UPDATE v0 SET v1 = (WITH v0 AS (SELECT 42039652.00) SELECT STDDEV_POP (96) OVER (ORDER BY v1) FROM v0, v0 LIMIT 37 OFFSET 62) = 8 + +-- statement ok +--
MonetDB: balanced_union - fixed compilation issue (initialize var)
Changeset: 942024b380a4 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/942024b380a4 Modified Files: sql/server/rel_rel.c Branch: balanced_union Log Message: fixed compilation issue (initialize var) diffs (42 lines): diff --git a/sql/server/rel_rel.c b/sql/server/rel_rel.c --- a/sql/server/rel_rel.c +++ b/sql/server/rel_rel.c @@ -1270,7 +1270,7 @@ exps_reset_props(list *exps, bool setnil list * _rel_projections(mvc *sql, sql_rel *rel, const char *tname, int settname, int intern, int basecol /* basecol only */ ) { - list *lexps, *rexps = NULL, *exps, *rels; + list *lexps, *rexps = NULL, *exps = NULL, *rels; sql_rel *r; if (mvc_highwater(sql)) @@ -1361,10 +1361,12 @@ list * exps = _rel_projections(sql, r, tname, settname, intern, basecol); /* for every other relation in the list */ // TODO: do we need the assertion here? for no-assert the loop is no-op + /* for (node *n = rels->h->next; n; n = n->next) { rexps = _rel_projections(sql, n->data, tname, settname, intern, basecol); assert(list_length(exps) == list_length(rexps)); } + */ /* it's a multi-union (expressions have to be the same in all the operands) * so we are ok only with the expressions of the first operand */ @@ -1387,13 +1389,13 @@ list * /* I only expect set relations to hit here */ assert(is_set(rel->op)); lexps = _rel_projections(sql, rel->l, tname, settname, intern, basecol); - rexps = _rel_projections(sql, rel->r, tname, settname, intern, basecol); - if (lexps && rexps) { + //rexps = _rel_projections(sql, rel->r, tname, settname, intern, basecol); + if (lexps/* && rexps*/) { int label = 0; if (!settname) label = ++sql->label; - assert(list_length(lexps) == list_length(rexps)); + //assert(list_length(lexps) == list_length(rexps)); for (node *en = lexps->h; en; en = en->next) { sql_exp *e = en->data; ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: balanced_union - merged with default
Changeset: e78b85d11f15 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e78b85d11f15 Branch: balanced_union Log Message: merged with default diffs (truncated from 3933 to 300 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -813,3 +813,4 @@ ce63ebe9a78c52ef0cbe8fd6f2159d2637f0387c 1efa83c6409769d13b2ee30e497d5f7ab42fa955 Jun2023_9 6f88424ebfd9d82c072cf21d89070e04321983da Jun2023_11 6f88424ebfd9d82c072cf21d89070e04321983da Jun2023_SP2_release +e6eb06773c17035954ac5d001cfe1f09ff3425cc Jun2023_13 diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -89,7 +89,7 @@ Group: Applications/Databases License: MPL-2.0 URL: https://www.monetdb.org/ BugURL: https://github.com/MonetDB/MonetDB/issues -Source: https://www.monetdb.org/downloads/sources/Jun2023-SP2/%{name}-%{version}.tar.bz2 +Source: https://www.monetdb.org/downloads/sources/Jun2023-SP3/%{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 @@ -867,6 +867,26 @@ fi %endif %changelog +* Fri Nov 03 2023 Sjoerd Mullender - 11.47.13-20231103 +- Rebuilt. +- GH#7300: Implement missing standard SQL DATE and TIMESTAMP functions +- GH#7324: string_distance('method',str1, str2) as a generic distance + function +- GH#7409: Numpy table returning UDFs with variadic arguments + +* Thu Nov 2 2023 Sjoerd Mullender - 11.47.13-20231103 +- sql: Added a missing interface function sys.timestamp_to_str with + a TIMESTAMP (as opposed to TIMESTAMP WITH TIME ZONE) argument. + The missing interface caused error messages being produced when the + function was called with a TIMESTAMP argument, although it did give + the correct result. + +* Tue Oct 31 2023 Sjoerd Mullender - 11.47.13-20231103 +- gdk: A bug was fixed where the administration of which bats were in use was + interpreted incorrectly during startup, causing problems later. One + symptom that has been observed was failure to startup with a message + that the catalog tables could not be loaded. + * Fri Sep 29 2023 Sjoerd Mullender - 11.47.11-20230929 - Rebuilt. diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake --- a/cmake/monetdb-versions.cmake +++ b/cmake/monetdb-versions.cmake @@ -42,7 +42,7 @@ set(MONETDB_VERSION "${MONETDB_VERSION_M # common/options and common/utils) set(GDK_VERSION_MAJOR "27") set(GDK_VERSION_MINOR "0") -set(GDK_VERSION_PATCH "4") +set(GDK_VERSION_PATCH "5") set(GDK_VERSION "${GDK_VERSION_MAJOR}.${GDK_VERSION_MINOR}.${GDK_VERSION_PATCH}") # version of the MAPI library (subdirectory clients/mapilib) @@ -54,7 +54,7 @@ set(MAPI_VERSION "${MAPI_VERSION_MAJOR}. # version of the MONETDB5 library (subdirectory monetdb5, not including extras or sql) set(MONETDB5_VERSION_MAJOR "34") set(MONETDB5_VERSION_MINOR "0") -set(MONETDB5_VERSION_PATCH "3") +set(MONETDB5_VERSION_PATCH "4") set(MONETDB5_VERSION "${MONETDB5_VERSION_MAJOR}.${MONETDB5_VERSION_MINOR}.${MONETDB5_VERSION_PATCH}") # version of the MONETDBE library (subdirectory tools/monetdbe) @@ -72,5 +72,5 @@ set(STREAM_VERSION "${STREAM_VERSION_MAJ # version of the SQL library (subdirectory sql) set(SQL_VERSION_MAJOR "14") set(SQL_VERSION_MINOR "0") -set(SQL_VERSION_PATCH "4") +set(SQL_VERSION_PATCH "5") set(SQL_VERSION "${SQL_VERSION_MAJOR}.${SQL_VERSION_MINOR}.${SQL_VERSION_PATCH}") diff --git a/debian/changelog b/debian/changelog --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,32 @@ +monetdb (11.47.13) unstable; urgency=low + + * Rebuilt. + * GH#7300: Implement missing standard SQL DATE and TIMESTAMP functions + * GH#7324: string_distance('method',str1, str2) as a generic distance +function + * GH#7409: Numpy table returning UDFs with variadic arguments + + -- Sjoerd Mullender Fri, 03 Nov 2023 10:48:08 +0100 + +monetdb (11.47.13) unstable; urgency=low + + * sql: Added a missing interface function sys.timestamp_to_str with +a TIMESTAMP (as opposed to TIMESTAMP WITH TIME ZONE) argument. +The missing interface caused error messages being produced when the +function was called with a TIMESTAMP argument, although it did give +the correct result. + + -- Sjoerd Mullender Thu, 2 Nov 2023 10:48:08 +0100 + +monetdb (11.47.13) unstable; urgency=low + + * gdk: A bug was fixed where the administration of which bats were in use was +interpreted incorrectly during startup, causing problems later. One +symptom that has been observed was failure to startup with a message +that the catalog tables could not be loaded. + + -- Sjoerd Mullender Tue, 31 Oct 2023 10:48:08 +0100 + monetdb (11.47.11) unstable; urgency=low * Rebuilt. diff --git a/gdk/ChangeLog-Archive b/gdk/ChangeLog-Archive --- a/gdk/ChangeLog-Archiv
MonetDB: balanced_union - add more munion optimization.
Changeset: 9c05fb077c54 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/9c05fb077c54 Modified Files: sql/server/rel_optimize_proj.c sql/server/rel_optimize_sel.c Branch: balanced_union Log Message: add more munion optimization. diffs (24 lines): diff --git a/sql/server/rel_optimize_proj.c b/sql/server/rel_optimize_proj.c --- a/sql/server/rel_optimize_proj.c +++ b/sql/server/rel_optimize_proj.c @@ -2984,7 +2984,7 @@ run_optimizer bind_optimize_projections(visitor *v, global_props *gp) { int flag = v->sql->sql_optimizer; - return gp->opt_level == 1 && (gp->cnt[op_groupby] || gp->cnt[op_project] || gp->cnt[op_union] + return gp->opt_level == 1 && (gp->cnt[op_groupby] || gp->cnt[op_project] || gp->cnt[op_union] || gp->cnt[op_munion] || gp->cnt[op_inter] || gp->cnt[op_except]) && (flag & optimize_projections) ? rel_optimize_projections : NULL; } diff --git a/sql/server/rel_optimize_sel.c b/sql/server/rel_optimize_sel.c --- a/sql/server/rel_optimize_sel.c +++ b/sql/server/rel_optimize_sel.c @@ -2242,7 +2242,7 @@ order_joins(visitor *v, list *rels, list static int rel_neg_in_size(sql_rel *r) { - if (is_union(r->op) && r->nrcols == 0) + if ((is_union(r->op) /*|| is_munion(r->op)*/) && r->nrcols == 0) return -1 + rel_neg_in_size(r->l); if (is_project(r->op) && r->nrcols == 0) return -1; ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: default - Fix and approve information_schema upgrade code.
Changeset: 7432d4b9ec97 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/7432d4b9ec97 Modified Files: sql/backends/monet5/sql_upgrades.c sql/test/emptydb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out sql/test/emptydb-previous-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/emptydb-previous-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out sql/test/emptydb-previous-upgrade/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64.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.int128 sql/test/testdb-previous-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out sql/test/testdb-previous-upgrade-chain/Tests/upgrade.stable.out.int128 sql/test/testdb-previous-upgrade-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out sql/test/testdb-previous-upgrade/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.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.int128 Branch: default Log Message: Fix and approve information_schema upgrade code. diffs (truncated from 3699 to 300 lines): diff --git a/sql/backends/monet5/sql_upgrades.c b/sql/backends/monet5/sql_upgrades.c --- a/sql/backends/monet5/sql_upgrades.c +++ b/sql/backends/monet5/sql_upgrades.c @@ -6301,9 +6301,9 @@ sql_update_default(Client c, mvc *sql, s " cast(NULL AS varchar(1)) AS SCOPE_NAME,\n" " cast(NULL AS int) AS MAXIMUM_CARDINALITY,\n" " cast(NULL AS int) AS DTD_IDENTIFIER,\n" - " cast(sys.\"ifthenelse\"(sys.\"locate\"('begin',f.\"func\") > 0, sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'), sys.\"substring\"(f.\"func\", sys.\"locate\"('begin',f.\"func\"), sys.\"length\"(sys.\"substring\"(f.\"func\", sys.\"locate\"('begin',f.\"func\")))-1), sys.\"substring\"(f.\"func\", sys.\"locate\"('begin',f.\"func\"))), NULL) AS varchar(8196) AS ROUTINE_BODY,\n" + " cast(sys.\"ifthenelse\"(sys.\"locate\"('begin',f.\"func\") > 0, sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'), sys.\"substring\"(f.\"func\", sys.\"locate\"('begin',f.\"func\"), sys.\"length\"(sys.\"substring\"(f.\"func\", sys.\"locate\"('begin',f.\"func\")))-1), sys.\"substring\"(f.\"func\", sys.\"locate\"('begin',f.\"func\"))), NULL) AS varchar(8196)) AS ROUTINE_BODY,\n" " f.\"func\" AS ROUTINE_DEFINITION,\n" - " cast(sys.\"ifthenelse\"(sys.\"locate\"('external name',f.\"func\") > 0, sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'), sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external name',f.\"func\"), sys.\"length\"(sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external name',f.\"func\")))-1), sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external name',f.\"func\"))), NULL) AS varchar(1024) AS EXTERNAL_NAME,\n" + " cast(sys.\"ifthenelse\"(sys.\"locate\"('external name',f.\"func\") > 0, sys.\"ifthenelse\"(sys.\"endswith\"(f.\"func\",';'), sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external name',f.\"func\"), sys.\"length\"(sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external name',f.\"func\")))-1), sys.\"substring\"(f.\"func\", 14 + sys.\"locate\"('external name',f.\"func\"))), NULL) AS varchar(1024)) AS EXTERNAL_NAME,\n" " fl.\"language_keyword\" AS EXTERNAL_LANGUAGE,\n" " 'GENERAL' AS PARAMETER_STYLE,\n" " 'YES' AS IS_DETERMINISTIC,\n" @@ -6374,7 +6374,7 @@ sql_update_default(Client c, mvc *sql, s " cast(NULL AS varchar(1)) AS SEQUENCE_CATALOG,\n" " s.\"name\" AS SEQUENCE_SCHEMA,\n" " sq.\"name\" AS SEQUENCE_NAME,\n" - " cast('bigint' AS varchar(16)) AS DATA_TYPE,\n" + " cast('BIGINT' AS varchar(16)) AS DATA_TYPE,\n" " cast(64 AS SMALLINT) AS NUMERIC_PRECISION,\n" " cast(2 AS SMALLINT) AS NUMERIC_PRECISION_RADIX,\n" " cast(0 AS SMALLINT) AS NUMERIC_SCALE,\n" diff --git
MonetDB: default - Merge with Jun2023 branch, not changing any f...
Changeset: b5cad503588a for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/b5cad503588a Modified Files: .bumpversion.cfg MonetDB.spec clients/mapilib/mapi.rc clients/odbc/driver/driver.rc clients/odbc/winsetup/setup.rc cmake/monetdb-versions.cmake gdk/libbat.rc monetdb5/tools/libmonetdb5.rc Branch: default Log Message: Merge with Jun2023 branch, not changing any files.. ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Jun2023 - Post release build.
Changeset: bdfb3e98be81 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/bdfb3e98be81 Modified Files: .bumpversion.cfg MonetDB.spec clients/mapilib/mapi.rc clients/odbc/driver/driver.rc clients/odbc/winsetup/setup.rc cmake/monetdb-versions.cmake gdk/libbat.rc monetdb5/tools/libmonetdb5.rc Branch: Jun2023 Log Message: Post release build. diffs (191 lines): diff --git a/.bumpversion.cfg b/.bumpversion.cfg --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 11.47.13 +current_version = 11.47.14 commit = False tag = False diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -7,7 +7,7 @@ # Copyright 1997 - July 2008 CWI, August 2008 - 2023 MonetDB B.V. %global name MonetDB -%global version 11.47.13 +%global version 11.47.14 %{!?buildno: %global buildno %(date +%Y%m%d)} # Use bcond_with to add a --with option; i.e., "without" is default. diff --git a/clients/mapilib/mapi.rc b/clients/mapilib/mapi.rc --- a/clients/mapilib/mapi.rc +++ b/clients/mapilib/mapi.rc @@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_U #define sversion(major,minor,patch)#major "." #minor "." #patch "\0" 1 VERSIONINFO - FILEVERSION version(11,47,13) - PRODUCTVERSION version(11,47,13) + FILEVERSION version(11,47,14) + PRODUCTVERSION version(11,47,14) FILEFLAGSMASK 0x3fL FILEFLAGS 0 FILEOS VOS_NT_WINDOWS32 @@ -21,14 +21,14 @@ BEGIN VALUE "Comments", "\0" VALUE "CompanyName", "MonetDB B.V.\0" VALUE "FileDescription", "MonetDB Application Interface DLL\0" - VALUE "FileVersion", sversion(11,47,13) + VALUE "FileVersion", sversion(11,47,14) VALUE "InternalName", "Mapi\0" VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2023\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "Mapi.dll\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "MonetDB Client Libraries\0" - VALUE "ProductVersion", sversion(11,47,13) + VALUE "ProductVersion", sversion(11,47,14) VALUE "SpecialBuild", "\0" END END diff --git a/clients/odbc/driver/driver.rc b/clients/odbc/driver/driver.rc --- a/clients/odbc/driver/driver.rc +++ b/clients/odbc/driver/driver.rc @@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_U #define sversion(major,minor,patch)#major "." #minor "." #patch "\0" 1 VERSIONINFO - FILEVERSION version(11,47,13) - PRODUCTVERSION version(11,47,13) + FILEVERSION version(11,47,14) + PRODUCTVERSION version(11,47,14) FILEFLAGSMASK 0x3fL FILEFLAGS 0 FILEOS VOS_NT_WINDOWS32 @@ -21,14 +21,14 @@ BEGIN VALUE "Comments", "\0" VALUE "CompanyName", "MonetDB B.V.\0" VALUE "FileDescription", "MonetDB ODBC Driver DLL\0" - VALUE "FileVersion", sversion(11,47,13) + VALUE "FileVersion", sversion(11,47,14) VALUE "InternalName", "MonetODBC\0" VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2023\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "MonetODBC.dll\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "MonetDB SQL Server\0" - VALUE "ProductVersion", sversion(11,47,13) + VALUE "ProductVersion", sversion(11,47,14) VALUE "SpecialBuild", "\0" END END diff --git a/clients/odbc/winsetup/setup.rc b/clients/odbc/winsetup/setup.rc --- a/clients/odbc/winsetup/setup.rc +++ b/clients/odbc/winsetup/setup.rc @@ -65,8 +65,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION version(11,47,13) - PRODUCTVERSION version(11,47,13) + FILEVERSION version(11,47,14) + PRODUCTVERSION version(11,47,14) FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -83,12 +83,12 @@ BEGIN BEGIN VALUE "CompanyName", "MonetDB B.V." VALUE "FileDescription", "MonetDB ODBC Setup DLL" -VALUE "FileVersion", sversion(11,47,13) +VALUE "FileVersion", sversion(11,47,14) VALUE "InternalName", "MonetODBCs.dll" VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2023" VALUE "OriginalFilename", "MonetODBCs.dll" VALUE "ProductName", "MonetDB SQL Server" -VALUE "ProductVersion", sversion(11,47,13) +VALUE "ProductVersion", sversion(11,47,14) END END BLOCK "VarFileInfo" diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake --- a/cmake/monetdb-versions.cmake +++ b/cmake/monetdb-versions.cmake @@ -10,10 +10,10 @@ set(MONETDB_VERSION_MAJOR "11") set(MONETDB_VERSION_MINOR "47") -set(MONETDB_VERSION_PATCH "13") +set(MONETDB_VERSION_PATCH "14") if(RELEASE_VERSION) - set(MONETDB_RELEASE "Jun2023-SP3") + set(MONETDB_RELEASE "unreleased") endif() set(MONETDB_VERSION "${MONETDB_VERSION_MAJOR}.${MONETDB_VERSION_MINOR}.${MONETDB_VERSION_PATCH}") diff --git a/gdk/libbat.rc b/gdk/libbat.rc --- a/gdk/libbat.rc +++
MonetDB: default - Merge with Jun2023 branch.
Changeset: 55c86dd2f722 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/55c86dd2f722 Modified Files: .hgtags MonetDB.spec cmake/monetdb-versions.cmake debian/changelog misc/packages/deb/changelog misc/packages/rpm/changelog Branch: default Log Message: Merge with Jun2023 branch. diffs (234 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -813,3 +813,4 @@ ce63ebe9a78c52ef0cbe8fd6f2159d2637f0387c 1efa83c6409769d13b2ee30e497d5f7ab42fa955 Jun2023_9 6f88424ebfd9d82c072cf21d89070e04321983da Jun2023_11 6f88424ebfd9d82c072cf21d89070e04321983da Jun2023_SP2_release +e6eb06773c17035954ac5d001cfe1f09ff3425cc Jun2023_13 diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -89,7 +89,7 @@ Group: Applications/Databases License: MPL-2.0 URL: https://www.monetdb.org/ BugURL: https://github.com/MonetDB/MonetDB/issues -Source: https://www.monetdb.org/downloads/sources/Jun2023-SP2/%{name}-%{version}.tar.bz2 +Source: https://www.monetdb.org/downloads/sources/Jun2023-SP3/%{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 @@ -867,6 +867,26 @@ fi %endif %changelog +* Fri Nov 03 2023 Sjoerd Mullender - 11.47.13-20231103 +- Rebuilt. +- GH#7300: Implement missing standard SQL DATE and TIMESTAMP functions +- GH#7324: string_distance('method',str1, str2) as a generic distance + function +- GH#7409: Numpy table returning UDFs with variadic arguments + +* Thu Nov 2 2023 Sjoerd Mullender - 11.47.13-20231103 +- sql: Added a missing interface function sys.timestamp_to_str with + a TIMESTAMP (as opposed to TIMESTAMP WITH TIME ZONE) argument. + The missing interface caused error messages being produced when the + function was called with a TIMESTAMP argument, although it did give + the correct result. + +* Tue Oct 31 2023 Sjoerd Mullender - 11.47.13-20231103 +- gdk: A bug was fixed where the administration of which bats were in use was + interpreted incorrectly during startup, causing problems later. One + symptom that has been observed was failure to startup with a message + that the catalog tables could not be loaded. + * Fri Sep 29 2023 Sjoerd Mullender - 11.47.11-20230929 - Rebuilt. diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake --- a/cmake/monetdb-versions.cmake +++ b/cmake/monetdb-versions.cmake @@ -42,7 +42,7 @@ set(MONETDB_VERSION "${MONETDB_VERSION_M # common/options and common/utils) set(GDK_VERSION_MAJOR "27") set(GDK_VERSION_MINOR "0") -set(GDK_VERSION_PATCH "4") +set(GDK_VERSION_PATCH "5") set(GDK_VERSION "${GDK_VERSION_MAJOR}.${GDK_VERSION_MINOR}.${GDK_VERSION_PATCH}") # version of the MAPI library (subdirectory clients/mapilib) @@ -54,7 +54,7 @@ set(MAPI_VERSION "${MAPI_VERSION_MAJOR}. # version of the MONETDB5 library (subdirectory monetdb5, not including extras or sql) set(MONETDB5_VERSION_MAJOR "34") set(MONETDB5_VERSION_MINOR "0") -set(MONETDB5_VERSION_PATCH "3") +set(MONETDB5_VERSION_PATCH "4") set(MONETDB5_VERSION "${MONETDB5_VERSION_MAJOR}.${MONETDB5_VERSION_MINOR}.${MONETDB5_VERSION_PATCH}") # version of the MONETDBE library (subdirectory tools/monetdbe) @@ -72,5 +72,5 @@ set(STREAM_VERSION "${STREAM_VERSION_MAJ # version of the SQL library (subdirectory sql) set(SQL_VERSION_MAJOR "14") set(SQL_VERSION_MINOR "0") -set(SQL_VERSION_PATCH "4") +set(SQL_VERSION_PATCH "5") set(SQL_VERSION "${SQL_VERSION_MAJOR}.${SQL_VERSION_MINOR}.${SQL_VERSION_PATCH}") diff --git a/debian/changelog b/debian/changelog --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,32 @@ +monetdb (11.47.13) unstable; urgency=low + + * Rebuilt. + * GH#7300: Implement missing standard SQL DATE and TIMESTAMP functions + * GH#7324: string_distance('method',str1, str2) as a generic distance +function + * GH#7409: Numpy table returning UDFs with variadic arguments + + -- Sjoerd Mullender Fri, 03 Nov 2023 10:48:08 +0100 + +monetdb (11.47.13) unstable; urgency=low + + * sql: Added a missing interface function sys.timestamp_to_str with +a TIMESTAMP (as opposed to TIMESTAMP WITH TIME ZONE) argument. +The missing interface caused error messages being produced when the +function was called with a TIMESTAMP argument, although it did give +the correct result. + + -- Sjoerd Mullender Thu, 2 Nov 2023 10:48:08 +0100 + +monetdb (11.47.13) unstable; urgency=low + + * gdk: A bug was fixed where the administration of which bats were in use was +interpreted incorrectly during startup, causing problems later. One +symptom that has been observed was failure to startup with a message +that the catalog tables could not be loaded. + + -- Sjoerd Mullender Tue, 31 Oct 2
MonetDB: Jun2023 - Setting tag Jun2023_13 for the release build.
Changeset: 4f0d7e054d28 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/4f0d7e054d28 Modified Files: .hgtags Branch: Jun2023 Log Message: Setting tag Jun2023_13 for the release build. diffs (8 lines): diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -813,3 +813,4 @@ ce63ebe9a78c52ef0cbe8fd6f2159d2637f0387c 1efa83c6409769d13b2ee30e497d5f7ab42fa955 Jun2023_9 6f88424ebfd9d82c072cf21d89070e04321983da Jun2023_11 6f88424ebfd9d82c072cf21d89070e04321983da Jun2023_SP2_release +e6eb06773c17035954ac5d001cfe1f09ff3425cc Jun2023_13 ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Jun2023 - Moved contents of ChangeLog.Jun2023 to MonetD...
Changeset: e6eb06773c17 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/e6eb06773c17 Modified Files: MonetDB.spec debian/changelog gdk/ChangeLog-Archive gdk/ChangeLog.Jun2023 misc/packages/deb/changelog misc/packages/rpm/changelog sql/ChangeLog-Archive sql/ChangeLog.Jun2023 Branch: Jun2023 Log Message: Moved contents of ChangeLog.Jun2023 to MonetDB.spec, debian/changelog and ChangeLog-Archive. diffs (198 lines): diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -89,7 +89,7 @@ Group: Applications/Databases License: MPL-2.0 URL: https://www.monetdb.org/ BugURL: https://github.com/MonetDB/MonetDB/issues -Source: https://www.monetdb.org/downloads/sources/Jun2023-SP2/%{name}-%{version}.tar.bz2 +Source: https://www.monetdb.org/downloads/sources/Jun2023-SP3/%{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 @@ -860,6 +860,26 @@ fi %endif %changelog +* Fri Nov 03 2023 Sjoerd Mullender - 11.47.13-20231103 +- Rebuilt. +- GH#7300: Implement missing standard SQL DATE and TIMESTAMP functions +- GH#7324: string_distance('method',str1, str2) as a generic distance + function +- GH#7409: Numpy table returning UDFs with variadic arguments + +* Thu Nov 2 2023 Sjoerd Mullender - 11.47.13-20231103 +- sql: Added a missing interface function sys.timestamp_to_str with + a TIMESTAMP (as opposed to TIMESTAMP WITH TIME ZONE) argument. + The missing interface caused error messages being produced when the + function was called with a TIMESTAMP argument, although it did give + the correct result. + +* Tue Oct 31 2023 Sjoerd Mullender - 11.47.13-20231103 +- gdk: A bug was fixed where the administration of which bats were in use was + interpreted incorrectly during startup, causing problems later. One + symptom that has been observed was failure to startup with a message + that the catalog tables could not be loaded. + * Fri Sep 29 2023 Sjoerd Mullender - 11.47.11-20230929 - Rebuilt. diff --git a/debian/changelog b/debian/changelog --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,32 @@ +monetdb (11.47.13) unstable; urgency=low + + * Rebuilt. + * GH#7300: Implement missing standard SQL DATE and TIMESTAMP functions + * GH#7324: string_distance('method',str1, str2) as a generic distance +function + * GH#7409: Numpy table returning UDFs with variadic arguments + + -- Sjoerd Mullender Fri, 03 Nov 2023 10:48:08 +0100 + +monetdb (11.47.13) unstable; urgency=low + + * sql: Added a missing interface function sys.timestamp_to_str with +a TIMESTAMP (as opposed to TIMESTAMP WITH TIME ZONE) argument. +The missing interface caused error messages being produced when the +function was called with a TIMESTAMP argument, although it did give +the correct result. + + -- Sjoerd Mullender Thu, 2 Nov 2023 10:48:08 +0100 + +monetdb (11.47.13) unstable; urgency=low + + * gdk: A bug was fixed where the administration of which bats were in use was +interpreted incorrectly during startup, causing problems later. One +symptom that has been observed was failure to startup with a message +that the catalog tables could not be loaded. + + -- Sjoerd Mullender Tue, 31 Oct 2023 10:48:08 +0100 + monetdb (11.47.11) unstable; urgency=low * Rebuilt. diff --git a/gdk/ChangeLog-Archive b/gdk/ChangeLog-Archive --- a/gdk/ChangeLog-Archive +++ b/gdk/ChangeLog-Archive @@ -1,6 +1,12 @@ # DO NOT EDIT THIS FILE -- MAINTAINED AUTOMATICALLY # This file contains past ChangeLog entries +* Tue Oct 31 2023 Sjoerd Mullender - 11.47.13-20231103 +- A bug was fixed where the administration of which bats were in use was + interpreted incorrectly during startup, causing problems later. One + symptom that has been observed was failure to startup with a message + that the catalog tables could not be loaded. + * Fri Sep 22 2023 Sjoerd Mullender - 11.47.7-20230925 - Fixed a number of data races (race conditions). diff --git a/gdk/ChangeLog.Jun2023 b/gdk/ChangeLog.Jun2023 --- a/gdk/ChangeLog.Jun2023 +++ b/gdk/ChangeLog.Jun2023 @@ -1,9 +1,3 @@ # ChangeLog file for GDK # This file is updated with Maddlog -* Tue Oct 31 2023 Sjoerd Mullender -- A bug was fixed where the administration of which bats were in use was - interpreted incorrectly during startup, causing problems later. One - symptom that has been observed was failure to startup with a message - that the catalog tables could not be loaded. - diff --git a/misc/packages/deb/changelog b/misc/packages/deb/changelog --- a/misc/packages/deb/changelog +++ b/misc/packages/deb/changelog @@ -1,3 +1,32 @@ +monetdb (11.47.13) unstable; urgency=low + + * Rebuilt. + * GH#7300: Implement missing standard SQL DATE and TIMESTAMP functions + * GH#7324: string_distance('method',str1, str2) as a generic distance +function + * GH
MonetDB: default - Merge with Jun2023 branch, not changing any f...
Changeset: 4dff56632d32 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/4dff56632d32 Modified Files: .bumpversion.cfg MonetDB.spec clients/mapilib/mapi.rc clients/odbc/driver/driver.rc clients/odbc/winsetup/setup.rc cmake/monetdb-versions.cmake gdk/libbat.rc monetdb5/tools/libmonetdb5.rc Branch: default Log Message: Merge with Jun2023 branch, not changing any files. ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Jun2023 - Updated library versions.
Changeset: 5826d931fb14 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/5826d931fb14 Modified Files: cmake/monetdb-versions.cmake Branch: Jun2023 Log Message: Updated library versions. diffs (28 lines): diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake --- a/cmake/monetdb-versions.cmake +++ b/cmake/monetdb-versions.cmake @@ -42,7 +42,7 @@ set(MONETDB_VERSION "${MONETDB_VERSION_M # common/options and common/utils) set(GDK_VERSION_MAJOR "27") set(GDK_VERSION_MINOR "0") -set(GDK_VERSION_PATCH "4") +set(GDK_VERSION_PATCH "5") set(GDK_VERSION "${GDK_VERSION_MAJOR}.${GDK_VERSION_MINOR}.${GDK_VERSION_PATCH}") # version of the MAPI library (subdirectory clients/mapilib) @@ -54,7 +54,7 @@ set(MAPI_VERSION "${MAPI_VERSION_MAJOR}. # version of the MONETDB5 library (subdirectory monetdb5, not including extras or sql) set(MONETDB5_VERSION_MAJOR "34") set(MONETDB5_VERSION_MINOR "0") -set(MONETDB5_VERSION_PATCH "3") +set(MONETDB5_VERSION_PATCH "4") set(MONETDB5_VERSION "${MONETDB5_VERSION_MAJOR}.${MONETDB5_VERSION_MINOR}.${MONETDB5_VERSION_PATCH}") # version of the MONETDBE library (subdirectory tools/monetdbe) @@ -72,5 +72,5 @@ set(STREAM_VERSION "${STREAM_VERSION_MAJ # version of the SQL library (subdirectory sql) set(SQL_VERSION_MAJOR "14") set(SQL_VERSION_MINOR "0") -set(SQL_VERSION_PATCH "4") +set(SQL_VERSION_PATCH "5") set(SQL_VERSION "${SQL_VERSION_MAJOR}.${SQL_VERSION_MINOR}.${SQL_VERSION_PATCH}") ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: Jun2023 - Pre-release version number update.
Changeset: c7ec4c48e135 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/c7ec4c48e135 Modified Files: .bumpversion.cfg MonetDB.spec clients/mapilib/mapi.rc clients/odbc/driver/driver.rc clients/odbc/winsetup/setup.rc cmake/monetdb-versions.cmake gdk/libbat.rc monetdb5/tools/libmonetdb5.rc Branch: Jun2023 Log Message: Pre-release version number update. diffs (191 lines): diff --git a/.bumpversion.cfg b/.bumpversion.cfg --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 11.47.12 +current_version = 11.47.13 commit = False tag = False diff --git a/MonetDB.spec b/MonetDB.spec --- a/MonetDB.spec +++ b/MonetDB.spec @@ -7,7 +7,7 @@ # Copyright 1997 - July 2008 CWI, August 2008 - 2023 MonetDB B.V. %global name MonetDB -%global version 11.47.12 +%global version 11.47.13 %{!?buildno: %global buildno %(date +%Y%m%d)} # Use bcond_with to add a --with option; i.e., "without" is default. diff --git a/clients/mapilib/mapi.rc b/clients/mapilib/mapi.rc --- a/clients/mapilib/mapi.rc +++ b/clients/mapilib/mapi.rc @@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_U #define sversion(major,minor,patch)#major "." #minor "." #patch "\0" 1 VERSIONINFO - FILEVERSION version(11,47,12) - PRODUCTVERSION version(11,47,12) + FILEVERSION version(11,47,13) + PRODUCTVERSION version(11,47,13) FILEFLAGSMASK 0x3fL FILEFLAGS 0 FILEOS VOS_NT_WINDOWS32 @@ -21,14 +21,14 @@ BEGIN VALUE "Comments", "\0" VALUE "CompanyName", "MonetDB B.V.\0" VALUE "FileDescription", "MonetDB Application Interface DLL\0" - VALUE "FileVersion", sversion(11,47,12) + VALUE "FileVersion", sversion(11,47,13) VALUE "InternalName", "Mapi\0" VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2023\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "Mapi.dll\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "MonetDB Client Libraries\0" - VALUE "ProductVersion", sversion(11,47,12) + VALUE "ProductVersion", sversion(11,47,13) VALUE "SpecialBuild", "\0" END END diff --git a/clients/odbc/driver/driver.rc b/clients/odbc/driver/driver.rc --- a/clients/odbc/driver/driver.rc +++ b/clients/odbc/driver/driver.rc @@ -6,8 +6,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_U #define sversion(major,minor,patch)#major "." #minor "." #patch "\0" 1 VERSIONINFO - FILEVERSION version(11,47,12) - PRODUCTVERSION version(11,47,12) + FILEVERSION version(11,47,13) + PRODUCTVERSION version(11,47,13) FILEFLAGSMASK 0x3fL FILEFLAGS 0 FILEOS VOS_NT_WINDOWS32 @@ -21,14 +21,14 @@ BEGIN VALUE "Comments", "\0" VALUE "CompanyName", "MonetDB B.V.\0" VALUE "FileDescription", "MonetDB ODBC Driver DLL\0" - VALUE "FileVersion", sversion(11,47,12) + VALUE "FileVersion", sversion(11,47,13) VALUE "InternalName", "MonetODBC\0" VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2023\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "MonetODBC.dll\0" VALUE "PrivateBuild", "\0" VALUE "ProductName", "MonetDB SQL Server\0" - VALUE "ProductVersion", sversion(11,47,12) + VALUE "ProductVersion", sversion(11,47,13) VALUE "SpecialBuild", "\0" END END diff --git a/clients/odbc/winsetup/setup.rc b/clients/odbc/winsetup/setup.rc --- a/clients/odbc/winsetup/setup.rc +++ b/clients/odbc/winsetup/setup.rc @@ -65,8 +65,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION version(11,47,12) - PRODUCTVERSION version(11,47,12) + FILEVERSION version(11,47,13) + PRODUCTVERSION version(11,47,13) FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -83,12 +83,12 @@ BEGIN BEGIN VALUE "CompanyName", "MonetDB B.V." VALUE "FileDescription", "MonetDB ODBC Setup DLL" -VALUE "FileVersion", sversion(11,47,12) +VALUE "FileVersion", sversion(11,47,13) VALUE "InternalName", "MonetODBCs.dll" VALUE "LegalCopyright", "Copyright (c) MonetDB B.V. 2008-2023" VALUE "OriginalFilename", "MonetODBCs.dll" VALUE "ProductName", "MonetDB SQL Server" -VALUE "ProductVersion", sversion(11,47,12) +VALUE "ProductVersion", sversion(11,47,13) END END BLOCK "VarFileInfo" diff --git a/cmake/monetdb-versions.cmake b/cmake/monetdb-versions.cmake --- a/cmake/monetdb-versions.cmake +++ b/cmake/monetdb-versions.cmake @@ -10,10 +10,10 @@ set(MONETDB_VERSION_MAJOR "11") set(MONETDB_VERSION_MINOR "47") -set(MONETDB_VERSION_PATCH "12") +set(MONETDB_VERSION_PATCH "13") if(RELEASE_VERSION) - set(MONETDB_RELEASE "unreleased") + set(MONETDB_RELEASE "Jun2023-SP3") endif() set(MONETDB_VERSION "${MONETDB_VERSION_MAJOR}.${MONETDB_VERSION_MINOR}.${MONETDB_VERSION_PATCH}") diff --git a/gdk/libbat.rc b/gdk/libbat.rc ---
MonetDB: balanced_union - add statistics for munion
Changeset: 3da49a645bba for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/3da49a645bba Modified Files: sql/server/rel_statistics.c Branch: balanced_union Log Message: add statistics for munion diffs (144 lines): diff --git a/sql/server/rel_statistics.c b/sql/server/rel_statistics.c --- a/sql/server/rel_statistics.c +++ b/sql/server/rel_statistics.c @@ -285,7 +285,7 @@ rel_setop_get_statistics(mvc *sql, sql_r set_minmax_property(sql, e, PROP_MIN, lval_min); } - if (is_union(rel->op)) { + if (is_union(rel->op) || is_munion(rel->op)) { if (!has_nil(le) && !has_nil(re)) set_has_no_nil(e); if (need_distinct(rel) && list_length(rel->exps) == 1) @@ -310,6 +310,42 @@ rel_setop_get_statistics(mvc *sql, sql_r return false; } + +static void +rel_munion_get_statistics(mvc *sql, sql_rel *rel, list *rels, sql_exp *e, int i) +{ + assert(is_munion(rel->op)); + + sql_rel *l = rels->h->data; + sql_exp *le = list_fetch(l->exps, i); + atom *lval_min = find_prop_and_get(le->p, PROP_MIN), *lval_max = find_prop_and_get(le->p, PROP_MAX); + bool has_nonil = !has_nil(le); + + for(node *n = rels->h->next; n; n = n->next) { + sql_rel *r = n->data; + sql_exp *re = list_fetch(r->exps, i); + atom *rval_min = find_prop_and_get(re->p, PROP_MIN), *rval_max = find_prop_and_get(re->p, PROP_MAX); + + if (lval_max && rval_max) { + set_minmax_property(sql, e, PROP_MAX, statistics_atom_max(sql, lval_max, rval_max)); /* for union the new max will be the max of the two */ + lval_max = find_prop_and_get(e->p, PROP_MAX); + } + if (lval_min && rval_min) { + set_minmax_property(sql, e, PROP_MIN, statistics_atom_min(sql, lval_min, rval_min)); /* for union the new min will be the min of the two */ + lval_min = find_prop_and_get(e->p, PROP_MIN); + } + has_nonil &= !has_nil(re); + + } + + if (has_nonil) + set_has_no_nil(e); + + if (need_distinct(rel) && list_length(rel->exps) == 1) + set_unique(e); +} + + static sql_exp * rel_propagate_statistics(visitor *v, sql_rel *rel, sql_exp *e, int depth) { @@ -789,9 +825,86 @@ rel_get_statistics_(visitor *v, sql_rel } break; } - case op_munion: - // TODO: munion statistis + case op_munion: { + list *l = rel->l, *nrels = sa_list(v->sql->sa); + BUN cnt = 0; + bool needs_pruning = false; + + for (node *n = l->h; n; n = n->next) { + sql_rel *r = n->data, *pl = r; + + while (is_sample(pl->op) || is_topn(pl->op)) /* skip topN and sample relations in the middle */ + pl = pl->l; + /* if it's not a projection, then project and propagate statistics */ + if (!is_project(pl->op) && !is_base(pl->op)) { + pl = rel_project(v->sql->sa, pl, rel_projections(v->sql, pl, NULL, 0, 1)); + set_count_prop(v->sql->sa, pl, get_rel_count(pl->l)); + pl->exps = exps_exp_visitor_bottomup(v, pl, pl->exps, 0, _propagate_statistics, false); + } + nrels = append(nrels, pl); + /* we need new munion statistics */ + /* propagate row count */ + BUN rv = need_distinct(rel) ? rel_calc_nuniques(v->sql, r, r->exps) : get_rel_count(r); + if (!rv && can_be_pruned) + needs_pruning = true; + if (rv > (BUN_MAX - cnt)) /* overflow check */ + rv = BUN_MAX; + else + cnt += rv; + } + int i = 0; + for (node *n = rel->exps->h ; n ; n = n->next, i++) + rel_munion_get_statistics(v->sql, rel, nrels, n->data, i); + + if (needs_pruning) { + v->changes++; + list *nl = sa_list(l->sa); + + for (node *n = nrels->h; n; n = n->next) { + sql_rel *r = n->data; + BUN rv = need_distinct(rel) ? rel_calc_nuniques(v->sql, r, r->exps) : get_rel_count(r); + + if (!rv) { /* keep last for now */ + rel_destroy(r); + continue; + } + nl = append(nl, r); + } + rel->l =
MonetDB: balanced_union - add ',' between parts of munion
Changeset: 8e36316d79ce for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/8e36316d79ce Modified Files: sql/server/rel_dump.c Branch: balanced_union Log Message: add ',' between parts of munion diffs (12 lines): diff --git a/sql/server/rel_dump.c b/sql/server/rel_dump.c --- a/sql/server/rel_dump.c +++ b/sql/server/rel_dump.c @@ -523,6 +523,8 @@ rel_print_rel(mvc *sql, stream *fout, s } else { rel_print_rel(sql, fout, n->data, depth+1, refs, decorate); } + if (n->next) + mnstr_printf(fout, ","); } print_indent(sql, fout, depth, decorate); mnstr_printf(fout, ")"); ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: balanced_union - merged with default
Changeset: 897a7ff2336e for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/897a7ff2336e Branch: balanced_union Log Message: merged with default diffs (40 lines): diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake --- a/cmake/monetdb-defines.cmake +++ b/cmake/monetdb-defines.cmake @@ -124,6 +124,7 @@ function(monetdb_configure_defines) check_function_exists("pthread_setname_np" HAVE_PTHREAD_SETNAME_NP) check_function_exists("pthread_sigmask" HAVE_PTHREAD_SIGMASK) cmake_pop_check_state() + check_function_exists("SetThreadDescription" HAVE_SETTHREADDESCRIPTION) check_symbol_exists("regcomp" "regex.h" HAVE_POSIX_REGEX) endfunction() diff --git a/gdk/gdk_system.c b/gdk/gdk_system.c --- a/gdk/gdk_system.c +++ b/gdk/gdk_system.c @@ -708,12 +708,14 @@ thread_starter(void *arg) } #endif #else +#ifdef HAVE_SETTHREADDESCRIPTION wchar_t *wname = utf8towchar(self->threadname); if (wname != NULL) { SetThreadDescription(GetCurrentThread(), wname); free(wname); } #endif +#endif self->data = NULL; self->sp = THRsp(); thread_setself(self); diff --git a/monetdb_config.h.in b/monetdb_config.h.in --- a/monetdb_config.h.in +++ b/monetdb_config.h.in @@ -154,6 +154,7 @@ #cmakedefine HAVE_POSIX_FALLOCATE 1 #cmakedefine HAVE_POSIX_MADVISE 1 #cmakedefine HAVE_PUTENV 1 +#cmakedefine HAVE_SETTHREADDESCRIPTION 1 #cmakedefine HAVE_SETSID 1 #cmakedefine HAVE_SHUTDOWN 1 #cmakedefine HAVE_SIGACTION 1 ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: balanced_union - approved output
Changeset: 33c5d46c8711 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/33c5d46c8711 Modified Files: sql/test/miscellaneous/Tests/simple_plans.test Branch: balanced_union Log Message: approved output diffs (12 lines): diff --git a/sql/test/miscellaneous/Tests/simple_plans.test b/sql/test/miscellaneous/Tests/simple_plans.test --- a/sql/test/miscellaneous/Tests/simple_plans.test +++ b/sql/test/miscellaneous/Tests/simple_plans.test @@ -562,7 +562,7 @@ query T nosort plan select x, y from (select a as b, a / 3 as c from t1 union distinct select a as z, a / 5 as d from t2) x(x,y) where x > 2 project ( -| distinct union ( +| distinct munion ( | | project ( | | | group by ( | | | | project ( ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: balanced_union - approve munion output
Changeset: 41e86c7b297b for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/41e86c7b297b Modified Files: sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test Branch: balanced_union Log Message: approve munion output diffs (21 lines): diff --git a/sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test b/sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test --- a/sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test +++ b/sql/test/BugTracker-2021/Tests/plan-not-optimal-view.Bug-7140.test @@ -58,7 +58,7 @@ id_r asc project ( | project ( | | group by ( -| | | union ( +| | | munion ( | | | | group by ( | | | | | project ( | | | | | | select ( @@ -118,7 +118,7 @@ id_r asc project ( | project ( | | group by ( -| | | union ( +| | | munion ( | | | | group by ( | | | | | project ( | | | | | | project ( ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: balanced_union - added unnest of munion's
Changeset: 70fc84f8e50b for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/70fc84f8e50b Modified Files: sql/backends/monet5/rel_bin.c sql/include/sql_relation.h sql/server/rel_optimizer.c sql/server/rel_rel.c sql/server/rel_unnest.c sql/test/BugTracker-2010/Tests/ORDER_BY_over_UNION_EXCEPT_INTERSECT.Bug-2606.test Branch: balanced_union Log Message: added unnest of munion's introduced is_mset. handle reduced unions (in number of cols) diffs (truncated from 340 to 300 lines): diff --git a/sql/backends/monet5/rel_bin.c b/sql/backends/monet5/rel_bin.c --- a/sql/backends/monet5/rel_bin.c +++ b/sql/backends/monet5/rel_bin.c @@ -3810,7 +3810,7 @@ rel2bin_munion(backend *be, sql_rel *rel list *l, *rstmts; node *n, *m; stmt *rel_stmt = NULL, *sub; - int i, len; + int i, len = 0; /* convert to stmt and store the munion operands in rstmts list */ rstmts = sa_list(sql->sa); @@ -3820,13 +3820,15 @@ rel2bin_munion(backend *be, sql_rel *rel if (!rel_stmt) return NULL; list_append(rstmts, rel_stmt); + if (!len || len > list_length(rel_stmt->op4.lval)) + len = list_length(rel_stmt->op4.lval); } /* construct relation */ l = sa_list(sql->sa); /* for every op4 lval node */ - len = list_length(((stmt*)rstmts->h->data)->op4.lval); + //len = list_length(((stmt*)rstmts->h->data)->op4.lval); for (i = 0; i < len; i++) { /* extract t and c name from the first stmt */ stmt *s = list_fetch(((stmt*)rstmts->h->data)->op4.lval, i); @@ -3845,7 +3847,6 @@ rel2bin_munion(backend *be, sql_rel *rel if (s == NULL) return NULL; } - // TODO: do we maybe need the alias after every append? s = stmt_alias(be, s, rnme, nme); if (s == NULL) return NULL; diff --git a/sql/include/sql_relation.h b/sql/include/sql_relation.h --- a/sql/include/sql_relation.h +++ b/sql/include/sql_relation.h @@ -198,6 +198,7 @@ typedef enum operator_type { #define is_joinop(op) (is_join(op) || is_semi(op)) #define is_select(op) (op == op_select) #define is_set(op) (op == op_union || op == op_inter || op == op_except) +#define is_mset(op)(op == op_munion || op == op_inter || op == op_except) #define is_union(op) (op == op_union) #define is_inter(op) (op == op_inter) #define is_except(op) (op == op_except) diff --git a/sql/server/rel_optimizer.c b/sql/server/rel_optimizer.c --- a/sql/server/rel_optimizer.c +++ b/sql/server/rel_optimizer.c @@ -73,6 +73,7 @@ rel_wrap_select_around_table(visitor *v, return t; } +#if 0 static sql_rel * rel_unionize_mt_tables_balanced(visitor *v, sql_rel* mt, list* tables, merge_table_prune_info *info) { @@ -101,6 +102,7 @@ rel_unionize_mt_tables_balanced(visitor } return rel_unionize_mt_tables_balanced(v, mt, tables, info); } +#endif static sql_rel * rel_unionize_mt_tables_munion(visitor *v, sql_rel* mt, list* tables, merge_table_prune_info *info) @@ -420,9 +422,16 @@ merge_table_prune_and_unionize(visitor * if (tables->cnt == 1) { nrel = rel_wrap_select_around_table(v, tables->h->data, info); } else { - nrel = rel_unionize_mt_tables_balanced(v, mt_rel, tables, info); + //nrel = rel_unionize_mt_tables_balanced(v, mt_rel, tables, info); + nrel = rel_setop_n_ary(v->sql->sa, tables, op_munion); } } else if (mvc_debug_on(v->sql, 32)) { + if (tables->cnt == 1) { + nrel = rel_wrap_select_around_table(v, tables->h->data, info); + } else { + nrel = rel_unionize_mt_tables_munion(v, mt_rel, tables, info); + } + } else { for (node *n = tables->h; n ; n = n->next) { sql_rel *next = n->data; sql_table *subt = (sql_table *) next->l; @@ -444,12 +453,6 @@ merge_table_prune_and_unionize(visitor * nrel = next; } } - } else { - if (tables->cnt == 1) { - nrel = rel_wrap_select_around_table(v, tables->h->data, info); - } else { - nrel = rel_unionize_mt_tables_munion(v, mt_rel, tables, info); - } } } return nrel; diff
MonetDB: default - Add check for SetThreadDescription function.
Changeset: f353cd142601 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/f353cd142601 Modified Files: cmake/monetdb-defines.cmake gdk/gdk_system.c monetdb_config.h.in Branch: default Log Message: Add check for SetThreadDescription function. diffs (40 lines): diff --git a/cmake/monetdb-defines.cmake b/cmake/monetdb-defines.cmake --- a/cmake/monetdb-defines.cmake +++ b/cmake/monetdb-defines.cmake @@ -124,6 +124,7 @@ function(monetdb_configure_defines) check_function_exists("pthread_setname_np" HAVE_PTHREAD_SETNAME_NP) check_function_exists("pthread_sigmask" HAVE_PTHREAD_SIGMASK) cmake_pop_check_state() + check_function_exists("SetThreadDescription" HAVE_SETTHREADDESCRIPTION) check_symbol_exists("regcomp" "regex.h" HAVE_POSIX_REGEX) endfunction() diff --git a/gdk/gdk_system.c b/gdk/gdk_system.c --- a/gdk/gdk_system.c +++ b/gdk/gdk_system.c @@ -708,12 +708,14 @@ thread_starter(void *arg) } #endif #else +#ifdef HAVE_SETTHREADDESCRIPTION wchar_t *wname = utf8towchar(self->threadname); if (wname != NULL) { SetThreadDescription(GetCurrentThread(), wname); free(wname); } #endif +#endif self->data = NULL; self->sp = THRsp(); thread_setself(self); diff --git a/monetdb_config.h.in b/monetdb_config.h.in --- a/monetdb_config.h.in +++ b/monetdb_config.h.in @@ -154,6 +154,7 @@ #cmakedefine HAVE_POSIX_FALLOCATE 1 #cmakedefine HAVE_POSIX_MADVISE 1 #cmakedefine HAVE_PUTENV 1 +#cmakedefine HAVE_SETTHREADDESCRIPTION 1 #cmakedefine HAVE_SETSID 1 #cmakedefine HAVE_SHUTDOWN 1 #cmakedefine HAVE_SIGACTION 1 ___ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org
MonetDB: balanced_union - small fixes for munion and dce optimizer
Changeset: fe884f686c1d for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/fe884f686c1d Modified Files: sql/server/rel_optimize_others.c sql/server/rel_optimize_sel.c Branch: balanced_union Log Message: small fixes for munion and dce optimizer push munion down select diffs (94 lines): diff --git a/sql/server/rel_optimize_others.c b/sql/server/rel_optimize_others.c --- a/sql/server/rel_optimize_others.c +++ b/sql/server/rel_optimize_others.c @@ -491,6 +491,10 @@ rel_used(sql_rel *rel) if (is_join(rel->op) || is_set(rel->op) || is_semi(rel->op) || is_modify(rel->op)) { rel_used(rel->l); rel_used(rel->r); + } else if (rel->op == op_munion) { + list *l = rel->l; + for(node *n = l->h; n; n = n->next) + rel_used(n->data); } else if (is_topn(rel->op) || is_select(rel->op) || is_sample(rel->op)) { rel_used(rel->l); rel = rel->l; @@ -629,26 +633,27 @@ rel_mark_used(mvc *sql, sql_rel *rel, in case op_munion: assert(rel->l); - for (node *n = ((list*)rel->l)->h; n; n = n->next) { - // TODO: here we blindly follow the same logic as op_union. RE-evaluate - if (proj && (need_distinct(rel) || !rel->exps)) { - rel_used(rel); - if (!rel->exps) { + // TODO: here we blindly follow the same logic as op_union. RE-evaluate + if (proj && (need_distinct(rel) || !rel->exps)) { + rel_used(rel); + if (!rel->exps) { + for (node *n = ((list*)rel->l)->h; n; n = n->next) { rel_used(n->data); + rel_mark_used(sql, n->data, 0); } - rel_mark_used(sql, n->data, 0); - } else if (proj && !need_distinct(rel)) { + } + } else if (proj && !need_distinct(rel)) { + bool first = true; + for (node *n = ((list*)rel->l)->h; n; n = n->next) { sql_rel *l = n->data; positional_exps_mark_used(rel, l); rel_exps_mark_used(sql->sa, rel, l); rel_mark_used(sql, rel->l, 0); /* based on child check set expression list */ - if (is_project(l->op) && need_distinct(l)) + if (first && is_project(l->op) && need_distinct(l)) positional_exps_mark_used(l, rel); - positional_exps_mark_used(rel, n->data); - rel_exps_mark_used(sql->sa, rel, n->data); - rel_mark_used(sql, n->data, 0); + first = false; } } break; @@ -1038,6 +1043,7 @@ rel_add_projects(mvc *sql, sql_rel *rel) if (!is_project(r->op) && !need_distinct(rel)) r = rel_project(sql->sa, r, rel_projections(sql, r, NULL, 1, 1)); r = rel_add_projects(sql, r); + n->data = r; } return rel; case op_topn: diff --git a/sql/server/rel_optimize_sel.c b/sql/server/rel_optimize_sel.c --- a/sql/server/rel_optimize_sel.c +++ b/sql/server/rel_optimize_sel.c @@ -3468,6 +3468,29 @@ rel_push_select_down(visitor *v, sql_rel set_distinct(rel); v->changes++; } + if (is_select(rel->op) && r && is_munion(r->op) && !list_empty(r->exps) && !rel_is_ref(r) && !is_single(r) && !list_empty(exps)) { + sql_rel *u = r; + list *rels = u->l, *nrels = sa_list(v->sql->sa); + for(node *n = rels->h; n; n = n->next) { + sql_rel *ul = n->data; + ul = rel_dup(ul); + if (!is_project(ul->op)) + ul = rel_project(v->sql->sa, ul, + rel_projections(v->sql, ul, NULL, 1, 1)); + rel_rename_exps(v->sql, u->exps, ul->exps); + + /* introduce selects under the set */ + ul = rel_select(v->sql->sa, ul, NULL); + ul->exps = exps_copy(v->sql, exps); + set_processed(ul); + nrels = append(nrels, ul); + } + + rel = rel_inplace_setop_n_ary(v->sql, rel, nrels, u->op, rel_projections(v->sql, rel, NULL, 1, 1)); + if (need_distinct(u)) +
MonetDB: balanced_union - merged with default
Changeset: b768717b7023 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/b768717b7023 Branch: balanced_union Log Message: merged with default diffs (truncated from 976 to 300 lines): diff --git a/sql/ChangeLog b/sql/ChangeLog --- a/sql/ChangeLog +++ b/sql/ChangeLog @@ -11,6 +11,7 @@ information_schema.check_constraints information_schema.table_constraints information_schema.referential_constraints + information_schema.routines information_schema.sequences Most views have been extended (after the standard columns) with MonetDB diff --git a/sql/backends/monet5/sql_upgrades.c b/sql/backends/monet5/sql_upgrades.c --- a/sql/backends/monet5/sql_upgrades.c +++ b/sql/backends/monet5/sql_upgrades.c @@ -5938,7 +5938,7 @@ sql_update_default(Client c, mvc *sql, s " JOIN sys.schemas ON tables.schema_id = schemas.id\n" " JOIN sys.privilege_codes pc ON p.privileges = pc.privilege_code_id\n" " WHERE roles.name = current_role;\n" - "GRANT SELECT ON sys.describe_accessible_tables TO PUBLIC;\n" + "GRANT SELECT ON sys.describe_accessible_tables TO PUBLIC;\n" "update sys._tables set system = true where system <> true and schema_id = 2000 and name = 'describe_accessible_tables';\n" /* PYTHON_MAP and PYTHON3_MAP have been removed */ @@ -6142,12 +6142,12 @@ sql_update_default(Client c, mvc *sql, s " s.\"name\" AS TABLE_SCHEMA,\n" " t.\"name\" AS TABLE_NAME,\n" " c.\"name\" AS COLUMN_NAME,\n" - " cast(c.\"number\" +1 AS int) AS ORDINAL_POSITION,\n" + " cast(1 + c.\"number\" AS int) AS ORDINAL_POSITION,\n" " c.\"default\" AS COLUMN_DEFAULT,\n" " cast(sys.ifthenelse(c.\"null\", 'YES', 'NO') AS varchar(3)) AS IS_NULLABLE,\n" - " CASE c.\"type\" WHEN 'day_interval' THEN 'interval day' WHEN 'month_interval' THEN 'interval month' WHEN 'sec_interval' THEN 'interval second' ELSE c.\"type\" END AS DATA_TYPE,\n" - " cast(sys.ifthenelse(c.\"type\" IN ('varchar','clob','char','json','url','xml'), c.\"type_digits\", NULL) AS int) AS CHARACTER_MAXIMUM_LENGTH,\n" - " cast(sys.ifthenelse(c.\"type\" IN ('varchar','clob','char','json','url','xml'), c.\"type_digits\" * 3, NULL) AS int) AS CHARACTER_OCTET_LENGTH,\n" + " cast(sys.\"describe_type\"(c.\"type\", c.\"type_digits\", c.\"type_scale\") AS varchar(1024)) AS DATA_TYPE,\n" + " cast(sys.ifthenelse(c.\"type\" IN ('varchar','clob','char','json','url','xml') AND c.\"type_digits\" > 0, c.\"type_digits\", NULL) AS int) AS CHARACTER_MAXIMUM_LENGTH,\n" + " cast(sys.ifthenelse(c.\"type\" IN ('varchar','clob','char','json','url','xml') AND c.\"type_digits\" > 0, c.\"type_digits\" * 4, NULL) AS int) AS CHARACTER_OCTET_LENGTH,\n" " cast(sys.ifthenelse(c.\"type\" IN ('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'), c.\"type_digits\", NULL) AS int) AS NUMERIC_PRECISION,\n" " cast(sys.ifthenelse(c.\"type\" IN ('int','smallint','tinyint','bigint','hugeint','float','real','double','oid'), 2, sys.ifthenelse(c.\"type\" IN ('decimal','numeric'), 10, NULL)) AS int) AS NUMERIC_PRECISION_RADIX,\n" " cast(sys.ifthenelse(c.\"type\" IN ('int','smallint','tinyint','bigint','hugeint','float','real','double','decimal','numeric','oid'), c.\"type_scale\", NULL) AS int) AS NUMERIC_SCALE,\n" @@ -6264,6 +6264,112 @@ sql_update_default(Client c, mvc *sql, s " ORDER BY s.\"name\", t.\"name\", fk.\"name\";\n" "GRANT SELECT ON TABLE INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS TO PUBLIC WITH GRANT OPTION;\n" + "CREATE VIEW INFORMATION_SCHEMA.ROUTINES AS SELECT\n" + " cast(NULL AS varchar(1)) AS SPECIFIC_CATALOG,\n" + " s.\"name\" AS SPECIFIC_SCHEMA,\n" + " cast(f.\"id\" as varchar(10)) AS SPECIFIC_NAME,\n" + " cast(NULL AS varchar(1)) AS ROUTINE_CATALOG,\n" + " s.\"name\" AS ROUTINE_SCHEMA,\n" + " f.\"name\" AS ROUTINE_NAME,\n" + " ft.\"function_type_keyword\" AS ROUTINE_TYPE,\n" + " cast(NULL AS varchar(1)) AS MODULE_CATALOG,\n" + " cast(NULL AS varchar(1)) AS MODULE_SCHEMA,\n" + " cast(f.\"mod\" AS varchar(128)) AS MODULE_NAME,\n" + " cast(NULL AS varchar(1)) AS UDT_CATALOG,\n" + " cast(NULL AS varchar(1)) AS UDT_SCHEMA,\n" + " cast(NULL AS varchar(1)) AS UDT_NAME,\n" + " cast(CASE f.\"type\" WHEN 1 THEN sys.\"describe_type\"(a.\"type\", a.\"type_digits\", a.\"type_scale\") WHEN 2 THEN NULL WHEN 5 THEN 'TABLE' WHEN 7 THEN 'TABLE' ELSE NULL END AS varchar(1024)) AS DATA_TYPE,\n" + "