MonetDB: default - Bug fixed in changeset 89677.

2023-11-03 Thread Lucas Pereira via checkin-list
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.

2023-11-03 Thread Sjoerd Mullender via checkin-list
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

2023-11-03 Thread stefanos mavros via checkin-list
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

2023-11-03 Thread Joeri van Ruth via checkin-list
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.

2023-11-03 Thread Joeri van Ruth via checkin-list
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

2023-11-03 Thread Joeri van Ruth via checkin-list
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 ...

2023-11-03 Thread stefanos mavros via checkin-list
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...

2023-11-03 Thread Joeri van Ruth via checkin-list
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...

2023-11-03 Thread Joeri van Ruth via checkin-list
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...

2023-11-03 Thread Joeri van Ruth via checkin-list
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...

2023-11-03 Thread Joeri van Ruth via checkin-list
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...

2023-11-03 Thread Sjoerd Mullender via checkin-list
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

2023-11-03 Thread Niels Nes via checkin-list
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...

2023-11-03 Thread Lucas Pereira via checkin-list
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...

2023-11-03 Thread Lucas Pereira via checkin-list
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)

2023-11-03 Thread Niels Nes via checkin-list
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

2023-11-03 Thread Niels Nes via checkin-list
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.

2023-11-03 Thread Niels Nes via checkin-list
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.

2023-11-03 Thread Sjoerd Mullender via checkin-list
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...

2023-11-03 Thread Sjoerd Mullender via checkin-list
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.

2023-11-03 Thread Sjoerd Mullender via checkin-list
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.

2023-11-03 Thread Sjoerd Mullender via checkin-list
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.

2023-11-03 Thread Sjoerd Mullender via checkin-list
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...

2023-11-03 Thread Sjoerd Mullender via checkin-list
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...

2023-11-03 Thread Sjoerd Mullender via checkin-list
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.

2023-11-03 Thread Sjoerd Mullender via checkin-list
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.

2023-11-03 Thread Sjoerd Mullender via checkin-list
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

2023-11-03 Thread Niels Nes via checkin-list
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

2023-11-03 Thread Niels Nes via checkin-list
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

2023-11-03 Thread Niels Nes via checkin-list
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

2023-11-03 Thread Niels Nes via checkin-list
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

2023-11-03 Thread Niels Nes via checkin-list
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

2023-11-03 Thread Niels Nes via checkin-list
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.

2023-11-03 Thread Sjoerd Mullender via checkin-list
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

2023-11-03 Thread Niels Nes via checkin-list
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

2023-11-03 Thread Niels Nes via checkin-list
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"
+   "