MonetDB: unlock - Implemented extra flag for algebra.outerjoin t...

2020-10-05 Thread Sjoerd Mullender
Changeset: 626f65a1893e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=626f65a1893e
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/Tests/exports.stable.out
gdk/gdk.h
gdk/gdk_join.c
monetdb5/modules/kernel/algebra.c
Branch: unlock
Log Message:

Implemented extra flag for algebra.outerjoin to match exactly one.


diffs (truncated from 538 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -676,12 +676,12 @@ stdout of test 'MAL-signatures` in direc
 [ "algebra",   "not_like", "command algebra.not_like(X_1:str, X_2:str):bit 
",  "PCREnotlike2;",""  ]
 [ "algebra",   "not_like", "command algebra.not_like(X_1:str, X_2:str, 
X_3:str):bit ", "PCREnotlike3;",""  ]
 [ "algebra",   "orderidx", "command algebra.orderidx(X_1:bat[:any_1], 
X_2:bit):bat[:any_1] ",  "OIDXorderidx;",""  ]
-[ "algebra",   "outerjoin","command algebra.outerjoin(X_1:bat[:any_1], 
X_2:bat[:any_1], X_3:bat[:cnd], X_4:bat[:cnd], X_5:bit, X_6:lng):bat[:oid] ",   
"ALGouterjoin1;",   ""  ]
-[ "algebra",   "outerjoin","command algebra.outerjoin(X_1:bat[:any_1], 
X_2:bat[:msk], X_3:bat[:cnd], X_4:bat[:cnd], X_5:bit, X_6:lng):bat[:oid] ", 
"ALGouterjoin1;",   ""  ]
-[ "algebra",   "outerjoin","command algebra.outerjoin(X_1:bat[:msk], 
X_2:bat[:any_1], X_3:bat[:cnd], X_4:bat[:cnd], X_5:bit, X_6:lng):bat[:oid] ", 
"ALGouterjoin1;",   ""  ]
-[ "algebra",   "outerjoin","command algebra.outerjoin(X_2:bat[:any_1], 
X_3:bat[:any_1], X_4:bat[:cnd], X_5:bat[:cnd], X_6:bit, X_7:lng) 
(X_0:bat[:oid], X_1:bat[:oid]) ",  "ALGouterjoin;",""  ]
-[ "algebra",   "outerjoin","command algebra.outerjoin(X_2:bat[:any_1], 
X_3:bat[:msk], X_4:bat[:cnd], X_5:bat[:cnd], X_6:bit, X_7:lng) (X_0:bat[:oid], 
X_1:bat[:oid]) ","ALGouterjoin;",""  ]
-[ "algebra",   "outerjoin","command algebra.outerjoin(X_2:bat[:msk], 
X_3:bat[:any_1], X_4:bat[:cnd], X_5:bat[:cnd], X_6:bit, X_7:lng) 
(X_0:bat[:oid], X_1:bat[:oid]) ","ALGouterjoin;",""  ]
+[ "algebra",   "outerjoin","command algebra.outerjoin(X_1:bat[:any_1], 
X_2:bat[:any_1], X_3:bat[:cnd], X_4:bat[:cnd], X_5:bit, X_6:bit, 
X_7:lng):bat[:oid] ",  "ALGouterjoin1;",   ""  ]
+[ "algebra",   "outerjoin","command algebra.outerjoin(X_1:bat[:any_1], 
X_2:bat[:msk], X_3:bat[:cnd], X_4:bat[:cnd], X_5:bit, X_6:bit, 
X_7:lng):bat[:oid] ","ALGouterjoin1;",   ""  ]
+[ "algebra",   "outerjoin","command algebra.outerjoin(X_1:bat[:msk], 
X_2:bat[:any_1], X_3:bat[:cnd], X_4:bat[:cnd], X_5:bit, X_6:bit, 
X_7:lng):bat[:oid] ","ALGouterjoin1;",   ""  ]
+[ "algebra",   "outerjoin","command algebra.outerjoin(X_2:bat[:any_1], 
X_3:bat[:any_1], X_4:bat[:cnd], X_5:bat[:cnd], X_6:bit, X_7:bit, X_8:lng) 
(X_0:bat[:oid], X_1:bat[:oid]) ", "ALGouterjoin;",""  ]
+[ "algebra",   "outerjoin","command algebra.outerjoin(X_2:bat[:any_1], 
X_3:bat[:msk], X_4:bat[:cnd], X_5:bat[:cnd], X_6:bit, X_7:bit, X_8:lng) 
(X_0:bat[:oid], X_1:bat[:oid]) ",   "ALGouterjoin;",""  ]
+[ "algebra",   "outerjoin","command algebra.outerjoin(X_2:bat[:msk], 
X_3:bat[:any_1], X_4:bat[:cnd], X_5:bat[:cnd], X_6:bit, X_7:bit, X_8:lng) 
(X_0:bat[:oid], X_1:bat[:oid]) ",   "ALGouterjoin;",""  ]
 [ "algebra",   "project",  "pattern algebra.project(X_1:bat[:any_1], 
X_2:any_3):bat[:any_3] ", "ALGprojecttail;",  ""  ]
 [ "algebra",   "projection",   "command algebra.projection(X_1:bat[:msk], 
X_2:bat[:any_3], X_3:bat[:any_3]):bat[:any_3] ", "ALGprojection2;",  "" 
 ]
 [ "algebra",   "projection",   "command algebra.projection(X_1:bat[:oid], 
X_2:bat[:any_3], X_3:bat[:any_3]):bat[:any_3] ", "ALGprojection2;",  "" 
 ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -793,12 +793,12 @@ stdout of test 'MAL-signatures` in direc
 [ "algebra",   "not_like", "command algebra.not_like(X_1:str, X_2:str):bit 
",  "PCREnotlike2;",""  ]
 [ "algebra",   "not_like", "command algebra.not_like(X_1:str, X_2:str, 
X_3:str):bit ", "PCREnotlike3;",""  ]
 [ "algebra",   "orderidx", "command algebra.orderidx(X_1:bat[:any_1], 
X_2:bit):bat[:any_1] ",  "OIDXorderidx;",""  ]
-[ "algebra",   "outerjoin","command algebra.outerjoin(X_1:bat[:any_1], 
X_2:bat[:any_1], X_3:bat[:cnd], X_4:bat[:cnd], X_5:bit, X_6:lng):bat[:oid] ",   
"ALGouterjoin1;",   ""  ]
-[ "algebra",   "outerjoin","command algebra.

MonetDB: Oct2020 - Merge with Jun2020 branch.

2020-10-05 Thread Sjoerd Mullender
Changeset: 70eacab62cb9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=70eacab62cb9
Modified Files:
tools/merovingian/daemon/controlrunner.c
tools/merovingian/daemon/forkmserver.c
tools/merovingian/daemon/merovingian.c
tools/merovingian/daemon/merovingian.h
Branch: Oct2020
Log Message:

Merge with Jun2020 branch.


diffs (196 lines):

diff --git a/tools/merovingian/daemon/controlrunner.c 
b/tools/merovingian/daemon/controlrunner.c
--- a/tools/merovingian/daemon/controlrunner.c
+++ b/tools/merovingian/daemon/controlrunner.c
@@ -351,6 +351,7 @@ static void ctl_handle_client(
{
mtype mtype = 0;
pid_t pid = 0;
+   bool terminated = false;
 
// First look for something started by ourself.
pthread_mutex_lock(&_mero_topdp_lock);
@@ -408,18 +409,27 @@ static void ctl_handle_client(
/* then kill it */
if (dp)

pthread_mutex_lock(&dp->fork_lock);
-   terminateProcess(q, pid, mtype);
+   terminated = terminateProcess(q, pid, 
mtype);
if (dp)

pthread_mutex_unlock(&dp->fork_lock);
Mfprintf(_mero_ctlout, "%s: stopped "
"database '%s'\n", 
origin, q);
} else {
-   kill(pid, SIGKILL);
+   terminated = kill(pid, SIGKILL) == 0;
Mfprintf(_mero_ctlout, "%s: killed "
"database '%s'\n", 
origin, q);
}
-   len = snprintf(buf2, sizeof(buf2), "OK\n");
-   send_client("=");
+   if (terminated) {
+   len = snprintf(buf2, sizeof(buf2), 
"OK\n");
+   send_client("=");
+   } else {
+   Mfprintf(_mero_ctlerr, "%s: received 
stop signal for "
+   "non running database: 
%s\n", origin, q);
+   len = snprintf(buf2, sizeof(buf2),
+   "database is not 
running: %s\n", q);
+   send_client("!");
+   break;
+   }
} else if (strcmp(p, "create") == 0 ||
strncmp(p, "create password=", 
strlen("create password=")) == 0) {
err e;
diff --git a/tools/merovingian/daemon/forkmserver.c 
b/tools/merovingian/daemon/forkmserver.c
--- a/tools/merovingian/daemon/forkmserver.c
+++ b/tools/merovingian/daemon/forkmserver.c
@@ -35,7 +35,7 @@
  * shut down gracefully within a given time-out.  If that fails, it
  * sends the deadly SIGKILL signal to the mserver process and returns.
  */
-void
+bool
 terminateProcess(char *dbname, pid_t pid, mtype type)
 {
sabdb *stats;
@@ -48,13 +48,13 @@ terminateProcess(char *dbname, pid_t pid
Mfprintf(stderr, "cannot terminate process %lld: %s\n",
 (long long int)pid, er);
free(er);
-   return;
+   return false;
}
 
if (stats == NULL) {
Mfprintf(stderr, "strange, process %lld serves database '%s' "
 "which does not exist\n", (long long int)pid, 
dbname);
-   return;
+   return false;
}
 
if (stats->pid != pid) {
@@ -65,7 +65,7 @@ terminateProcess(char *dbname, pid_t pid
dbname,
(long long int)pid
);
-   return;
+   return false;
}
assert(stats->pid == pid);
 
@@ -78,13 +78,13 @@ terminateProcess(char *dbname, pid_t pid
 "(pid %lld) has crashed\n",
 dbname, (long long int)pid);
msab_freeStatus(&stats);
-   return;
+   return false;
case SABdbInactive:
Mfprintf(stdout, "database '%s' appears to have shut down 
already\n",
 dbname);
fflush(stdout);
msab_freeStatus(&stats);
-   return;
+   return false;
case SABdbStarting:
  

MonetDB: Oct2020 - Backed out changeset b16621c82dbc

2020-10-05 Thread Sjoerd Mullender
Changeset: 79fa7856d349 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=79fa7856d349
Modified Files:
tools/merovingian/daemon/controlrunner.c
tools/merovingian/daemon/forkmserver.c
tools/merovingian/daemon/merovingian.c
tools/merovingian/daemon/merovingian.h
Branch: Oct2020
Log Message:

Backed out changeset b16621c82dbc


diffs (189 lines):

diff --git a/tools/merovingian/daemon/controlrunner.c 
b/tools/merovingian/daemon/controlrunner.c
--- a/tools/merovingian/daemon/controlrunner.c
+++ b/tools/merovingian/daemon/controlrunner.c
@@ -400,7 +400,6 @@ static void ctl_handle_client(
 
// Kill it appropriately
if (strcmp(p, "stop") == 0) {
-   bool terminated;
/* make an attempt to shut down the 
profiler first. */
if ((e = shutdown_profiler(q, &stats)) 
!= NULL) {
free(e);
@@ -409,13 +408,9 @@ static void ctl_handle_client(
/* then kill it */
if (dp)

pthread_mutex_lock(&dp->fork_lock);
-   if (pid != -1)
-   terminated = 
terminateProcess(q, pid, mtype);
-   if (dp) {
-   if (terminated)
-   dp->pid = -1;
+   terminateProcess(q, pid, mtype);
+   if (dp)

pthread_mutex_unlock(&dp->fork_lock);
-   }
Mfprintf(_mero_ctlout, "%s: stopped "
"database '%s'\n", 
origin, q);
} else {
diff --git a/tools/merovingian/daemon/forkmserver.c 
b/tools/merovingian/daemon/forkmserver.c
--- a/tools/merovingian/daemon/forkmserver.c
+++ b/tools/merovingian/daemon/forkmserver.c
@@ -34,15 +34,13 @@
  * The terminateProcess function tries to let the given mserver process
  * shut down gracefully within a given time-out.  If that fails, it
  * sends the deadly SIGKILL signal to the mserver process and returns.
- * 
- * Returns a boolean indicating if the process was shutdown succesfuly.
  */
-bool
+void
 terminateProcess(char *dbname, pid_t pid, mtype type)
 {
sabdb *stats;
char *er;
-   int i, killed, e;
+   int i;
confkeyval *kv;
 
er = msab_getStatus(&stats, dbname);
@@ -50,13 +48,13 @@ terminateProcess(char *dbname, pid_t pid
Mfprintf(stderr, "cannot terminate process %lld: %s\n",
 (long long int)pid, er);
free(er);
-   return false;
+   return;
}
 
if (stats == NULL) {
Mfprintf(stderr, "strange, process %lld serves database '%s' "
 "which does not exist\n", (long long int)pid, 
dbname);
-   return false;
+   return;
}
 
if (stats->pid != pid) {
@@ -67,7 +65,7 @@ terminateProcess(char *dbname, pid_t pid
dbname,
(long long int)pid
);
-   return false;
+   return;
}
assert(stats->pid == pid);
 
@@ -80,13 +78,13 @@ terminateProcess(char *dbname, pid_t pid
 "(pid %lld) has crashed\n",
 dbname, (long long int)pid);
msab_freeStatus(&stats);
-   return false;
+   return;
case SABdbInactive:
Mfprintf(stdout, "database '%s' appears to have shut down 
already\n",
 dbname);
fflush(stdout);
msab_freeStatus(&stats);
-   return false;
+   return;
case SABdbStarting:
Mfprintf(stderr, "database '%s' appears to be starting up\n",
 dbname);
@@ -95,19 +93,19 @@ terminateProcess(char *dbname, pid_t pid
default:
Mfprintf(stderr, "unknown state: %d\n", (int)stats->state);
msab_freeStatus(&stats);
-   return false;
+   return;
}
 
if (type == MEROFUN) {
multiplexDestroy(dbname);
msab_freeStatus(&stats);
-   return true;
+   return;
} else if (type != MERODB) {
/* barf */
Mfprintf(stderr, "cannot stop merovingian process role: %s\n",
 dbname);
msa

MonetDB: Oct2020 - Backed out changeset ba8f682ad6f4

2020-10-05 Thread Sjoerd Mullender
Changeset: e29836092719 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=e29836092719
Modified Files:
tools/merovingian/daemon/controlrunner.c
Branch: Oct2020
Log Message:

Backed out changeset ba8f682ad6f4


diffs (12 lines):

diff --git a/tools/merovingian/daemon/controlrunner.c 
b/tools/merovingian/daemon/controlrunner.c
--- a/tools/merovingian/daemon/controlrunner.c
+++ b/tools/merovingian/daemon/controlrunner.c
@@ -400,7 +400,7 @@ static void ctl_handle_client(
 
// Kill it appropriately
if (strcmp(p, "stop") == 0) {
-   bool terminated = false;
+   bool terminated;
/* make an attempt to shut down the 
profiler first. */
if ((e = shutdown_profiler(q, &stats)) 
!= NULL) {
free(e);
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jun2020 - Check kill return value.

2020-10-05 Thread Sjoerd Mullender
Changeset: 977e78ce5ef6 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=977e78ce5ef6
Modified Files:
tools/merovingian/daemon/forkmserver.c
Branch: Jun2020
Log Message:

Check kill return value.


diffs (18 lines):

diff --git a/tools/merovingian/daemon/forkmserver.c 
b/tools/merovingian/daemon/forkmserver.c
--- a/tools/merovingian/daemon/forkmserver.c
+++ b/tools/merovingian/daemon/forkmserver.c
@@ -95,7 +95,13 @@ terminateProcess(dpair dp, mtype type)
/* ok, once we get here, we'll be shutting down the server */
Mfprintf(stdout, "sending process %lld (database '%s') the "
 "TERM signal\n", (long long int)dp->pid, dp->dbname);
-   kill(dp->pid, SIGTERM);
+   if (kill(dp->pid, SIGTERM) < 0) {
+   /* barf */
+   Mfprintf(stderr, "cannot send TERM signal to process (database 
'%s')\n",
+dp->dbname);
+   msab_freeStatus(&stats);
+   return false;
+   }
kv = findConfKey(_mero_props, "exittimeout");
for (i = 0; i < atoi(kv->val) * 2; i++) {
if (stats != NULL)
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Jun2020 - Produce message that database is stopped even...

2020-10-05 Thread Sjoerd Mullender
Changeset: 33ddb0146799 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=33ddb0146799
Modified Files:
tools/merovingian/daemon/controlrunner.c
tools/merovingian/daemon/forkmserver.c
tools/merovingian/daemon/merovingian.c
tools/merovingian/daemon/merovingian.h
Branch: Jun2020
Log Message:

Produce message that database is stopped even when not yet waited for.


diffs (186 lines):

diff --git a/tools/merovingian/daemon/controlrunner.c 
b/tools/merovingian/daemon/controlrunner.c
--- a/tools/merovingian/daemon/controlrunner.c
+++ b/tools/merovingian/daemon/controlrunner.c
@@ -355,6 +355,7 @@ static void ctl_handle_client(
dp = _mero_topdp->next; /* don't need the 
console/log */
while (dp != NULL) {
if (dp->type == MERODB && 
strcmp(dp->dbname, q) == 0) {
+   bool terminated = false;
if (dp->pid <= 0) {
dp = NULL;
/* unlock happens below 
*/
@@ -374,24 +375,28 @@ static void ctl_handle_client(
} else if (stats != 
NULL)

msab_freeStatus(&stats);

pthread_mutex_lock(&dp->fork_lock);
-   terminateProcess(dp, 
type);
+   terminated = 
terminateProcess(dp, type);

pthread_mutex_unlock(&dp->fork_lock);
Mfprintf(_mero_ctlout, 
"%s: stopped "

"database '%s'\n", origin, q);
} else {
-   kill(dp->pid, SIGKILL);
-   
pthread_mutex_unlock(&_mero_topdp_lock);
+   terminated = 
kill(dp->pid, SIGKILL) == 0;
Mfprintf(_mero_ctlout, 
"%s: killed "

"database '%s'\n", origin, q);
}
-   len = snprintf(buf2, 
sizeof(buf2), "OK\n");
-   send_client("=");
+   if (terminated) {
+   len = snprintf(buf2, 
sizeof(buf2), "OK\n");
+   send_client("=");
+   } else {
+   dp = NULL; /* message 
generated below */
+   }
break;
} else if (dp->type == MEROFUN && 
strcmp(dp->dbname, q) == 0) {
/* multiplexDestroy needs topdp 
lock to remove itself */
char *dbname = 
strdup(dp->dbname);

pthread_mutex_unlock(&_mero_topdp_lock);
multiplexDestroy(dbname);
+   
pthread_mutex_lock(&_mero_topdp_lock);
free(dbname);
len = snprintf(buf2, 
sizeof(buf2), "OK\n");
send_client("=");
@@ -400,8 +405,8 @@ static void ctl_handle_client(
 
dp = dp->next;
}
+   pthread_mutex_unlock(&_mero_topdp_lock);
if (dp == NULL) {
-   pthread_mutex_unlock(&_mero_topdp_lock);
Mfprintf(_mero_ctlerr, "%s: received 
stop signal for "
"non running database: 
%s\n", origin, q);
len = snprintf(buf2, sizeof(buf2),
diff --git a/tools/merovingian/daemon/forkmserver.c 
b/tools/merovingian/daemon/forkmserver.c
--- a/tools/merovingian/daemon/forkmserver.c
+++ b/tools/merovingian/daemon/forkmserver.c
@@ -31,7 +31,7 @@
  * shut down gracefully within a given time-out.  If that fails, it
  * sends the deadly SIGKILL signal to the mserver process and returns.
  */
-void
+bool
 term

MonetDB: Jun2020 - Backed out changeset 8ff1b50c3204: fixes are ...

2020-10-05 Thread Sjoerd Mullender
Changeset: 1414b12e44f8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1414b12e44f8
Modified Files:
tools/merovingian/daemon/controlrunner.c
tools/merovingian/daemon/forkmserver.c
tools/merovingian/daemon/merovingian.c
tools/merovingian/daemon/merovingian.h
Branch: Jun2020
Log Message:

Backed out changeset 8ff1b50c3204: fixes are not correct.


diffs (163 lines):

diff --git a/tools/merovingian/daemon/controlrunner.c 
b/tools/merovingian/daemon/controlrunner.c
--- a/tools/merovingian/daemon/controlrunner.c
+++ b/tools/merovingian/daemon/controlrunner.c
@@ -374,8 +374,7 @@ static void ctl_handle_client(
} else if (stats != 
NULL)

msab_freeStatus(&stats);

pthread_mutex_lock(&dp->fork_lock);
-   if 
(terminateProcess(dp, type))
-   dp->pid = -1;
+   terminateProcess(dp, 
type);

pthread_mutex_unlock(&dp->fork_lock);
Mfprintf(_mero_ctlout, 
"%s: stopped "

"database '%s'\n", origin, q);
diff --git a/tools/merovingian/daemon/forkmserver.c 
b/tools/merovingian/daemon/forkmserver.c
--- a/tools/merovingian/daemon/forkmserver.c
+++ b/tools/merovingian/daemon/forkmserver.c
@@ -31,12 +31,12 @@
  * shut down gracefully within a given time-out.  If that fails, it
  * sends the deadly SIGKILL signal to the mserver process and returns.
  */
-bool
+void
 terminateProcess(dpair dp, mtype type)
 {
sabdb *stats;
char *er;
-   int i, e, killed;
+   int i;
confkeyval *kv;
 
er = msab_getStatus(&stats, dp->dbname);
@@ -44,13 +44,13 @@ terminateProcess(dpair dp, mtype type)
Mfprintf(stderr, "cannot terminate process %lld: %s\n",
 (long long int)dp->pid, er);
free(er);
-   return false;
+   return;
}
 
if (stats == NULL) {
Mfprintf(stderr, "strange, process %lld serves database '%s' "
 "which does not exist\n", (long long 
int)dp->pid, dp->dbname);
-   return false;
+   return;
}
 
switch (stats->state) {
@@ -62,13 +62,13 @@ terminateProcess(dpair dp, mtype type)
 "(pid %lld) has crashed\n",
 dp->dbname, (long long int)dp->pid);
msab_freeStatus(&stats);
-   return false;
+   return;
case SABdbInactive:
Mfprintf(stdout, "database '%s' appears to have shut down 
already\n",
 dp->dbname);
fflush(stdout);
msab_freeStatus(&stats);
-   return false;
+   return;
case SABdbStarting:
Mfprintf(stderr, "database '%s' appears to be starting up\n",
 dp->dbname);
@@ -77,19 +77,19 @@ terminateProcess(dpair dp, mtype type)
default:
Mfprintf(stderr, "unknown state: %d\n", (int)stats->state);
msab_freeStatus(&stats);
-   return false;
+   return;
}
 
if (type == MEROFUN) {
multiplexDestroy(dp->dbname);
msab_freeStatus(&stats);
-   return true;
+   return;
} else if (type != MERODB) {
/* barf */
Mfprintf(stderr, "cannot stop merovingian process role: %s\n",
 dp->dbname);
msab_freeStatus(&stats);
-   return false;
+   return;
}
 
/* ok, once we get here, we'll be shutting down the server */
@@ -119,12 +119,12 @@ terminateProcess(dpair dp, mtype type)
Mfprintf (stderr, "database '%s' crashed after 
SIGTERM\n",
  dp->dbname);
msab_freeStatus(&stats);
-   return true;
+   return;
case SABdbInactive:
Mfprintf(stdout, "database '%s' has shut 
down\n", dp->dbname);
fflush(stdout);
msab_freeStatus(&stats);
-   return true;
+   return;
default:
Mfprintf(stderr, "unknown state: %d\n", 
(int)stats->state);
brea

MonetDB: clean-candidates - Merged with default

2020-10-05 Thread Pedro Ferreira
Changeset: 90aac855f1ea for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=90aac855f1ea
Modified Files:
monetdb5/modules/atoms/mtime.c
sql/backends/monet5/sql.c
Branch: clean-candidates
Log Message:

Merged with default


diffs (truncated from 32607 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -6175,6 +6175,10 @@ stdout of test 'MAL-signatures` in direc
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:timestamp]):bat[:int] ",   
"MTIMEseconds_since_epoch_bulk;",   ""  ]
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:lng]):bat[:timestamp] ",   
"MTIMEtimestamp_frommsec_bulk;",""  ]
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:int]):bat[:timestamp] ",   
"MTIMEtimestamp_fromsecond_bulk;",  ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:date]):bat[:lng] ", 
"MTIMEdate_extract_epoch_ms_bulk;", ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:daytime]):bat[:lng] ",  
"MTIMEdaytime_extract_epoch_ms_bulk;",  ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:lng]):bat[:lng] ",  
"MTIMEmsec_extract_epoch_ms_bulk;", ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:timestamp]):bat[:lng] ",
"MTIMEtimestamp_extract_epoch_ms_bulk;",""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_hours_bulk;", ""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:lng]):bat[:int] ", "MTIMEsql_hours_bulk;", ""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:timestamp]):bat[:int] ",   
"MTIMEtimestamp_hours_bulk;",   ""  ]
@@ -8939,6 +8943,10 @@ stdout of test 'MAL-signatures` in direc
 [ "mtime", "epoch","command mtime.epoch(X_1:timestamp):int ",  
"MTIMEseconds_since_epoch;",""  ]
 [ "mtime", "epoch","command mtime.epoch(X_1:lng):timestamp ",  
"MTIMEtimestamp_frommsec;", ""  ]
 [ "mtime", "epoch","command mtime.epoch(X_1:int):timestamp ",  
"MTIMEtimestamp_fromsecond;",   ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:date):lng ",
"MTIMEdate_extract_epoch_ms;",  ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:daytime):lng ", 
"MTIMEdaytime_extract_epoch_ms;",   ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:lng):lng ", 
"MTIMEmsec_extract_epoch_ms;",  ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:timestamp):lng ",   
"MTIMEtimestamp_extract_epoch_ms;", ""  ]
 [ "mtime", "hours","command mtime.hours(X_1:daytime):int ",
"MTIMEdaytime_extract_hours;",  ""  ]
 [ "mtime", "hours","command mtime.hours(X_1:lng):int ",
"MTIMEsql_hours;",  ""  ]
 [ "mtime", "hours","command mtime.hours(X_1:timestamp):int ",  
"MTIMEtimestamp_hours;",""  ]
@@ -9114,13 +9122,14 @@ stdout of test 'MAL-signatures` in direc
 [ "remote","batbincopy",   "pattern remote.batbincopy(X_1:bat[:any]):void 
",   "RMTbincopyto;",""  ]
 [ "remote","batload",  "pattern remote.batload(X_1:any_1, 
X_2:int):bat[:any_1] ",  "RMTbatload;",  ""  ]
 [ "remote","bintype",  "pattern remote.bintype():void ",   
"RMTbintype;",  ""  ]
-[ "remote","connect",  "command remote.connect(X_1:str, X_2:str, 
X_3:str):str ",   "RMTconnect;",  ""  ]
-[ "remote","connect",  "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str):str ",  "RMTconnectScen;",  ""  ]
+[ "remote","connect",  "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str):str ",  "RMTconnect;",  ""  ]
+[ "remote","connect",  "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str, X_5:bit):str ", "RMTconnectScen;",  ""  ]
 [ "remote","connect",  "pattern remote.connect(X_1:str, X_2:str):str 
","RMTconnectTable;", ""  ]
 [ "remote","disconnect",   "command remote.disconnect(X_1:str):void ", 
"RMTdisconnect;",   ""  ]
 [ "remote","epilogue", "command remote.epilogue():void ",  
"RMTepilogue;", ""  ]
 [ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str):str ",  
"RMTexec;", ""  ]
 [ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str):str... 
",   "RMTexec;", ""  ]
+[ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, 
X_4:ptr, X_5:str...):void ","RMTexec;", ""  ]
 [ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, 
X_4:str...):str

MonetDB: Oct2020 - Don't forget to test for pyapi3map module

2020-10-05 Thread Pedro Ferreira
Changeset: 29fda038d989 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=29fda038d989
Modified Files:
monetdb5/mal/mal_linker.c
Branch: Oct2020
Log Message:

Don't forget to test for pyapi3map module


diffs (21 lines):

diff --git a/monetdb5/mal/mal_linker.c b/monetdb5/mal/mal_linker.c
--- a/monetdb5/mal/mal_linker.c
+++ b/monetdb5/mal/mal_linker.c
@@ -485,7 +485,7 @@ MSP_locate_sqlscript(const char *filenam
 int
 malLibraryEnabled(str name)
 {
-   if (strcmp(name, "pyapi3") == 0) {
+   if (strcmp(name, "pyapi3") == 0 || strcmp(name, "pyapi3map") == 0) {
const char *val = GDKgetenv("embedded_py");
return val && (strcmp(val, "3") == 0 ||
   strcasecmp(val, "true") == 0 ||
@@ -510,7 +510,7 @@ malLibraryEnabled(str name)
 char *
 malLibraryHowToEnable(str name)
 {
-   if (strcmp(name, "pyapi3") == 0) {
+   if (strcmp(name, "pyapi3") == 0 || strcmp(name, "pyapi3map") == 0) {
HOW_TO_ENABLE_ERROR("Python 3", "embedded_py=3")
} else if (strcmp(name, "rapi") == 0) {
HOW_TO_ENABLE_ERROR("R", "embedded_r=true")
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: default - Merged with Oct2020

2020-10-05 Thread Pedro Ferreira
Changeset: 151ce470cc85 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=151ce470cc85
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
monetdb5/modules/atoms/mtime.c
Branch: default
Log Message:

Merged with Oct2020


diffs (truncated from 29018 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -6175,6 +6175,10 @@ stdout of test 'MAL-signatures` in direc
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:timestamp]):bat[:int] ",   
"MTIMEseconds_since_epoch_bulk;",   ""  ]
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:lng]):bat[:timestamp] ",   
"MTIMEtimestamp_frommsec_bulk;",""  ]
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:int]):bat[:timestamp] ",   
"MTIMEtimestamp_fromsecond_bulk;",  ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:date]):bat[:lng] ", 
"MTIMEdate_extract_epoch_ms_bulk;", ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:daytime]):bat[:lng] ",  
"MTIMEdaytime_extract_epoch_ms_bulk;",  ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:lng]):bat[:lng] ",  
"MTIMEmsec_extract_epoch_ms_bulk;", ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:timestamp]):bat[:lng] ",
"MTIMEtimestamp_extract_epoch_ms_bulk;",""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_hours_bulk;", ""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:lng]):bat[:int] ", "MTIMEsql_hours_bulk;", ""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:timestamp]):bat[:int] ",   
"MTIMEtimestamp_hours_bulk;",   ""  ]
@@ -8939,6 +8943,10 @@ stdout of test 'MAL-signatures` in direc
 [ "mtime", "epoch","command mtime.epoch(X_1:timestamp):int ",  
"MTIMEseconds_since_epoch;",""  ]
 [ "mtime", "epoch","command mtime.epoch(X_1:lng):timestamp ",  
"MTIMEtimestamp_frommsec;", ""  ]
 [ "mtime", "epoch","command mtime.epoch(X_1:int):timestamp ",  
"MTIMEtimestamp_fromsecond;",   ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:date):lng ",
"MTIMEdate_extract_epoch_ms;",  ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:daytime):lng ", 
"MTIMEdaytime_extract_epoch_ms;",   ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:lng):lng ", 
"MTIMEmsec_extract_epoch_ms;",  ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:timestamp):lng ",   
"MTIMEtimestamp_extract_epoch_ms;", ""  ]
 [ "mtime", "hours","command mtime.hours(X_1:daytime):int ",
"MTIMEdaytime_extract_hours;",  ""  ]
 [ "mtime", "hours","command mtime.hours(X_1:lng):int ",
"MTIMEsql_hours;",  ""  ]
 [ "mtime", "hours","command mtime.hours(X_1:timestamp):int ",  
"MTIMEtimestamp_hours;",""  ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -8744,6 +8744,10 @@ stdout of test 'MAL-signatures` in direc
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:timestamp]):bat[:int] ",   
"MTIMEseconds_since_epoch_bulk;",   ""  ]
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:lng]):bat[:timestamp] ",   
"MTIMEtimestamp_frommsec_bulk;",""  ]
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:int]):bat[:timestamp] ",   
"MTIMEtimestamp_fromsecond_bulk;",  ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:date]):bat[:lng] ", 
"MTIMEdate_extract_epoch_ms_bulk;", ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:daytime]):bat[:lng] ",  
"MTIMEdaytime_extract_epoch_ms_bulk;",  ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:lng]):bat[:lng] ",  
"MTIMEmsec_extract_epoch_ms_bulk;", ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:timestamp]):bat[:lng] ",
"MTIMEtimestamp_extract_epoch_ms_bulk;",""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_hours_bulk;", ""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:lng]):bat[:int] ", "MTIMEsql_hours_bulk;", ""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:timestamp]):bat[:int] ",   

MonetDB: octbugs - Merged with Oct2020

2020-10-05 Thread Pedro Ferreira
Changeset: 17fa2fc84053 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=17fa2fc84053
Modified Files:
sql/server/rel_select.c
sql/server/rel_select.h
sql/test/BugTracker-2020/Tests/All
Branch: octbugs
Log Message:

Merged with Oct2020


diffs (truncated from 29018 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -6175,6 +6175,10 @@ stdout of test 'MAL-signatures` in direc
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:timestamp]):bat[:int] ",   
"MTIMEseconds_since_epoch_bulk;",   ""  ]
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:lng]):bat[:timestamp] ",   
"MTIMEtimestamp_frommsec_bulk;",""  ]
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:int]):bat[:timestamp] ",   
"MTIMEtimestamp_fromsecond_bulk;",  ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:date]):bat[:lng] ", 
"MTIMEdate_extract_epoch_ms_bulk;", ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:daytime]):bat[:lng] ",  
"MTIMEdaytime_extract_epoch_ms_bulk;",  ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:lng]):bat[:lng] ",  
"MTIMEmsec_extract_epoch_ms_bulk;", ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:timestamp]):bat[:lng] ",
"MTIMEtimestamp_extract_epoch_ms_bulk;",""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_hours_bulk;", ""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:lng]):bat[:int] ", "MTIMEsql_hours_bulk;", ""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:timestamp]):bat[:int] ",   
"MTIMEtimestamp_hours_bulk;",   ""  ]
@@ -8930,6 +8934,10 @@ stdout of test 'MAL-signatures` in direc
 [ "mtime", "epoch","command mtime.epoch(X_1:timestamp):int ",  
"MTIMEseconds_since_epoch;",""  ]
 [ "mtime", "epoch","command mtime.epoch(X_1:lng):timestamp ",  
"MTIMEtimestamp_frommsec;", ""  ]
 [ "mtime", "epoch","command mtime.epoch(X_1:int):timestamp ",  
"MTIMEtimestamp_fromsecond;",   ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:date):lng ",
"MTIMEdate_extract_epoch_ms;",  ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:daytime):lng ", 
"MTIMEdaytime_extract_epoch_ms;",   ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:lng):lng ", 
"MTIMEmsec_extract_epoch_ms;",  ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:timestamp):lng ",   
"MTIMEtimestamp_extract_epoch_ms;", ""  ]
 [ "mtime", "hours","command mtime.hours(X_1:daytime):int ",
"MTIMEdaytime_extract_hours;",  ""  ]
 [ "mtime", "hours","command mtime.hours(X_1:lng):int ",
"MTIMEsql_hours;",  ""  ]
 [ "mtime", "hours","command mtime.hours(X_1:timestamp):int ",  
"MTIMEtimestamp_hours;",""  ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -8744,6 +8744,10 @@ stdout of test 'MAL-signatures` in direc
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:timestamp]):bat[:int] ",   
"MTIMEseconds_since_epoch_bulk;",   ""  ]
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:lng]):bat[:timestamp] ",   
"MTIMEtimestamp_frommsec_bulk;",""  ]
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:int]):bat[:timestamp] ",   
"MTIMEtimestamp_fromsecond_bulk;",  ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:date]):bat[:lng] ", 
"MTIMEdate_extract_epoch_ms_bulk;", ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:daytime]):bat[:lng] ",  
"MTIMEdaytime_extract_epoch_ms_bulk;",  ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:lng]):bat[:lng] ",  
"MTIMEmsec_extract_epoch_ms_bulk;", ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:timestamp]):bat[:lng] ",
"MTIMEtimestamp_extract_epoch_ms_bulk;",""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_hours_bulk;", ""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:lng]):bat[:int] ", "MTIMEsql_hours_bulk;", ""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:timestamp]):bat[:int] ",   
"MTIMEtimestamp_hours_bulk;",   ""

MonetDB: Oct2020 - More scalable solution for sqlancer07 issue. ...

2020-10-05 Thread Pedro Ferreira
Changeset: 73a544cd77f8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=73a544cd77f8
Modified Files:
sql/server/rel_select.c
sql/server/rel_select.h
sql/server/rel_updates.c
sql/test/miscellaneous/Tests/update_delete_aliases.stable.err
Branch: Oct2020
Log Message:

More scalable solution for sqlancer07 issue. Instead of calculating the 
distinct relation names, pass the existing list of table references under 
table_ref. Later at the end of possible sub-relation build, test for a 
duplicate name on the list


diffs (truncated from 478 to 300 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
@@ -153,11 +153,11 @@ rel_orderby(mvc *sql, sql_rel *l)
 
 /* forward refs */
 static sql_rel * rel_setquery(sql_query *query, symbol *sq);
-static sql_rel * rel_joinquery(sql_query *query, sql_rel *rel, symbol *sq);
-static sql_rel * rel_crossquery(sql_query *query, sql_rel *rel, symbol *q);
+static sql_rel * rel_joinquery(sql_query *query, sql_rel *rel, symbol *sq, 
list *refs);
+static sql_rel * rel_crossquery(sql_query *query, sql_rel *rel, symbol *q, 
list *refs);
 
 static sql_rel *
-rel_table_optname(mvc *sql, sql_rel *sq, symbol *optname)
+rel_table_optname(mvc *sql, sql_rel *sq, symbol *optname, list *refs)
 {
sql_rel *osq = sq;
node *ne;
@@ -206,6 +206,11 @@ rel_table_optname(mvc *sql, sql_rel *sq,
}
}
}
+   if (refs) { /* if this relation is under a FROM clause, check 
for duplicate names */
+   if (list_find(refs, tname, (fcmp) &strcmp))
+   return sql_error(sql, 02, SQLSTATE(42000) 
"SELECT: relation name \"%s\" specified more than once", tname);
+   list_append(refs, tname);
+   }
} else {
if (!is_project(sq->op) || is_topn(sq->op) || is_sample(sq->op) 
|| ((is_simple_project(sq->op) || is_groupby(sq->op)) && sq->r)) {
sq = rel_project(sql->sa, sq, rel_projections(sql, sq, 
NULL, 1, 1));
@@ -222,7 +227,7 @@ rel_table_optname(mvc *sql, sql_rel *sq,
 }
 
 static sql_rel *
-rel_subquery_optname(sql_query *query, sql_rel *rel, symbol *ast)
+rel_subquery_optname(sql_query *query, sql_rel *rel, symbol *ast, list *refs)
 {
mvc *sql = query->sql;
SelectNode *sn = (SelectNode *) ast;
@@ -233,7 +238,7 @@ rel_subquery_optname(sql_query *query, s
if (!sq)
return NULL;
 
-   return rel_table_optname(sql, sq, sn->name);
+   return rel_table_optname(sql, sq, sn->name, refs);
 }
 
 sql_rel *
@@ -297,7 +302,7 @@ rel_with_query(sql_query *query, symbol 
 }
 
 static sql_rel *
-query_exp_optname(sql_query *query, sql_rel *r, symbol *q)
+query_exp_optname(sql_query *query, sql_rel *r, symbol *q, list *refs)
 {
mvc *sql = query->sql;
switch (q->token) {
@@ -308,34 +313,35 @@ query_exp_optname(sql_query *query, sql_
if (!tq)
return NULL;
if (q->data.lval->t->type == type_symbol)
-   return rel_table_optname(sql, tq, 
q->data.lval->t->data.sym);
+   return rel_table_optname(sql, tq, 
q->data.lval->t->data.sym, refs);
return tq;
}
case SQL_UNION:
case SQL_EXCEPT:
case SQL_INTERSECT:
{
+   /* subqueries will be called, ie no need to test for duplicate 
references */
sql_rel *tq = rel_setquery(query, q);
 
if (!tq)
return NULL;
-   return rel_table_optname(sql, tq, q->data.lval->t->data.sym);
+   return rel_table_optname(sql, tq, q->data.lval->t->data.sym, 
NULL);
}
case SQL_JOIN:
{
-   sql_rel *tq = rel_joinquery(query, r, q);
+   sql_rel *tq = rel_joinquery(query, r, q, refs);
 
if (!tq)
return NULL;
-   return rel_table_optname(sql, tq, q->data.lval->t->data.sym);
+   return rel_table_optname(sql, tq, q->data.lval->t->data.sym, 
NULL);
}
case SQL_CROSS:
{
-   sql_rel *tq = rel_crossquery(query, r, q);
+   sql_rel *tq = rel_crossquery(query, r, q, refs);
 
if (!tq)
return NULL;
-   return rel_table_optname(sql, tq, q->data.lval->t->data.sym);
+   return rel_table_optname(sql, tq, q->data.lval->t->data.sym, 
NULL);
}
default:
(void) sql_error(sql, 02, SQLSTATE(42000) "case %d %s", (int) 
q->token, token2string(q->token));
@@ -532,7 +538,7 @@ find_table_function(mvc *sql, sql_schema
 }
 
 static sql_rel *
-rel_named_table_function(sql_query *query, sql_rel *rel, symbol *ast, int 
lateral)
+rel_named_table_function(sql_qu

MonetDB: Oct2020 - Approved output

2020-10-05 Thread Pedro Ferreira
Changeset: 5b0867026492 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=5b0867026492
Modified Files:
sql/test/pg_regress/Tests/date.stable.err
sql/test/pg_regress/Tests/date.stable.out
sql/test/pg_regress/Tests/time.sql
sql/test/pg_regress/Tests/time.stable.out
sql/test/pg_regress/Tests/timestamp.stable.err
sql/test/pg_regress/Tests/timestamp.stable.out
sql/test/pg_regress/Tests/timestamptz.stable.err
sql/test/pg_regress/Tests/timestamptz.stable.out
sql/test/pg_regress/Tests/timetz.sql
sql/test/pg_regress/Tests/timetz.stable.out
Branch: Oct2020
Log Message:

Approved output


diffs (200 lines):

diff --git a/sql/test/pg_regress/Tests/date.stable.err 
b/sql/test/pg_regress/Tests/date.stable.err
--- a/sql/test/pg_regress/Tests/date.stable.err
+++ b/sql/test/pg_regress/Tests/date.stable.err
@@ -53,11 +53,7 @@ MAPI  = (monetdb) /var/tmp/mtest-11056/.
 QUERY = SELECT f1, extract(millennium from f1) FROM DATE_TBL;
 ERROR = !syntax error, unexpected IDENT in: "select f1, extract(millennium"
 CODE  = 42000
-MAPI  = (monetdb) /var/tmp/mtest-30274/.s.monetdb.37685
-QUERY = SELECT f1, extract(epoch from f1) FROM DATE_TBL;
-ERROR = !syntax error, unexpected IDENT in: "select f1, extract(epoch"
-CODE  = 42000
-MAPI  = (monetdb) /var/tmp/mtest-30274/.s.monetdb.37685
+MAPI  = (monetdb) /var/tmp/mtest-57906/.s.monetdb.30461
 QUERY = SELECT f1, hour(f1) FROM DATE_TBL;
 ERROR = !syntax error, unexpected HOUR in: "select f1, hour"
 CODE  = 42000
diff --git a/sql/test/pg_regress/Tests/date.stable.out 
b/sql/test/pg_regress/Tests/date.stable.out
--- a/sql/test/pg_regress/Tests/date.stable.out
+++ b/sql/test/pg_regress/Tests/date.stable.out
@@ -292,6 +292,27 @@ stdout of test 'date` in directory 'sql/
 [ 2039-04-09,  21  ]
 [ 2040-04-10,  21  ]
 [ NULL,NULL]
+#SELECT f1, extract(epoch from f1) FROM DATE_TBL;
+% sys.date_tbl,sys.%1 # table_name
+% f1,  %1 # name
+% date,bigint # type
+% 10,  13 # length
+[ 1957-04-09,  -40176000   ]
+[ 1957-06-13,  -39614400   ]
+[ 1996-02-28,  82546560]
+[ 1996-02-29,  82555200]
+[ 1996-03-01,  82563840]
+[ 1996-03-02,  82572480]
+[ 1997-02-28,  85708800]
+[ 1997-03-01,  85717440]
+[ 1997-03-02,  85726080]
+[ 2000-04-01,  95454720]
+[ 2000-04-02,  95463360]
+[ 2000-04-03,  95472000]
+[ 2038-04-08,  215429760   ]
+[ 2039-04-09,  218592000   ]
+[ 2040-04-10,  221762880   ]
+[ NULL,NULL]
 #SELECT f1, week(f1) FROM DATE_TBL;
 % sys.date_tbl,sys.%1 # table_name
 % f1,  %1 # name
diff --git a/sql/test/pg_regress/Tests/time.sql 
b/sql/test/pg_regress/Tests/time.sql
--- a/sql/test/pg_regress/Tests/time.sql
+++ b/sql/test/pg_regress/Tests/time.sql
@@ -59,6 +59,7 @@ SELECT f1, extract(day from f1) FROM TIM
 SELECT f1, extract(hour from f1) FROM TIME_TBL;
 SELECT f1, extract(minute from f1) FROM TIME_TBL;
 SELECT f1, extract(second from f1) FROM TIME_TBL;
+SELECT f1, extract(epoch from f1) FROM TIME_TBL;
 
 SELECT f1, sql_add(f1, 12*60*60.0 + 66) FROM TIME_TBL;
 SELECT f1, sql_add(f1, cast(2*60*60 as interval second)) FROM TIME_TBL;
diff --git a/sql/test/pg_regress/Tests/time.stable.out 
b/sql/test/pg_regress/Tests/time.stable.out
--- a/sql/test/pg_regress/Tests/time.stable.out
+++ b/sql/test/pg_regress/Tests/time.stable.out
@@ -145,9 +145,20 @@ stdout of test 'time` in directory 'sql/
 [ 12:01:00.00, 0.00]
 [ 23:59:00.00, 0.00]
 [ NULL,NULL]
+#SELECT f1, extract(epoch from f1) FROM TIME_TBL;
+% sys.time_tbl,sys.%1 # table_name
+% f1,  %1 # name
+% time,bigint # type
+% 11,  8 # length
+[ 00:00:00.00, 0   ]
+[ 01:00:00.00, 360 ]
+[ 12:00:00.00, 4320]
+[ 12:01:00.00, 4326]
+[ 23:59:00.00, 8634]
+[ NULL,NULL]
 #SELECT f1, sql_sub(f1, cast('23:22:21' as time)) FROM TIME_TBL;
-% sys.time_tbl,sys.%2 # table_name
-% f1,  %2 # name
+% sys.time_tbl,sys.%1 # table_name
+% f1,  %1 # name
 % time,sec_interval # type
 % 11,  10 # length
 [ 00:00:00.00, -84141.000  ]
@@ -157,8 +168,8 @@ stdout of test 'time` in directory 'sql/
 [ 23:59:00.00, 2199.000]
 [ NULL,NULL]
 #SELECT f1, sql_sub(cast('23:22:21' as time), f1) FROM TIME_TBL;
-% sys.time_tbl,.%2 # table_name
-% f1,  %2 # name
+% sys.time_tbl,.%1 # table_name
+% f1,  %1 # name
 % time,sec_interval # type
 % 11,  9 # length
 [ 00:00:00.00, 84141.000   ]
diff --git a/sql/test/pg_regress/Tests/timestamp.stable.err 
b/sql/test/pg_regress/Tests/timestamp.stable.err
--- a/sql/test/pg_regress/Tests/timestamp.stable.err
+++ b/sql/test/pg_regress/Tests/timestamp.stable.err
@@ -403,11 +403,7 @@ MAPI  = (monetdb) /var/tmp/mtest-11056/.
 QUERY = SELECT d1, extract(millennium from d1) FROM TIMESTAMP_TBL;
 ERROR = !syntax error, unexpected IDE

MonetDB: Oct2020 - Updated ChangeLog

2020-10-05 Thread Pedro Ferreira
Changeset: 839203059d83 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=839203059d83
Modified Files:
sql/ChangeLog.Oct2020
Branch: Oct2020
Log Message:

Updated ChangeLog


diffs (26 lines):

diff --git a/sql/ChangeLog.Oct2020 b/sql/ChangeLog.Oct2020
--- a/sql/ChangeLog.Oct2020
+++ b/sql/ChangeLog.Oct2020
@@ -56,9 +56,20 @@
   Instead do SET current_timezone = interval '1' hour;
   Casting between interval and other numeric types is no longer possible
   as well, because they are not compatible.
-  
+- Because of incompatibilities this change may create, if an user intents
+  to convert a numeric value to an interval, the multiplication function
+  can be used in the form:  * interval '1' 
+  e.g. 10 * interval '1' second = interval '10' second.
+  As for the other way around, the 'EPOCH' option was added to the extract
+  syntax. This option returns the number of milliseconds since the UNIX
+  epoch 1970-01-01 00:00:00 UTC for date, timestamp and time values (it
+  can be negative). Meanwhile, for day and second intervals, it returns the
+  total number of milliseconds on the interval. As a side note, the 'EPOCH'
+  option is not available for month intervals, because this conversion is
+  not transparent for this type.
+
 * Mon Aug 31 2020 Pedro Ferreira 
 - Made general logarithm function log(x,base) compliant with the SQL 
   standard, by swapping the input parameters.
   Instead of log(x,base), now is log(base,x).
-  
+
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Oct2020 - Approved 32-bit outputs

2020-10-05 Thread Pedro Ferreira
Changeset: 65cb235531d4 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=65cb235531d4
Modified Files:
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/emptydb-upgrade/Tests/upgrade.stable.out
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.32bit
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/testdb-upgrade/Tests/upgrade.stable.out
sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
Branch: Oct2020
Log Message:

Approved 32-bit outputs


diffs (truncated from 13736 to 300 lines):

diff --git a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out 
b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
--- a/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
+++ b/sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
@@ -2814,865 +2814,886 @@ insert into sys.args values (32924, 736,
 insert into sys.functions values (737, 'week', 'weekofyear', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
 insert into sys.args values (32925, 737, 'res_0', 'int', 32, 0, 0, 0);
 insert into sys.args values (32926, 737, 'arg_1', 'date', 0, 0, 1, 1);
-insert into sys.functions values (738, 'hour', 'hours', 'mtime', 0, 1, false, 
false, false, 2000, true, false);
-insert into sys.args values (32927, 738, 'res_0', 'int', 32, 0, 0, 0);
-insert into sys.args values (32928, 738, 'arg_1', 'time', 7, 0, 1, 1);
-insert into sys.functions values (739, 'minute', 'minutes', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
+insert into sys.functions values (738, 'epoch_ms', 'epoch_ms', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
+insert into sys.args values (32927, 738, 'res_0', 'bigint', 64, 0, 0, 0);
+insert into sys.args values (32928, 738, 'arg_1', 'date', 0, 0, 1, 1);
+insert into sys.functions values (739, 'hour', 'hours', 'mtime', 0, 1, false, 
false, false, 2000, true, false);
 insert into sys.args values (32929, 739, 'res_0', 'int', 32, 0, 0, 0);
 insert into sys.args values (32930, 739, 'arg_1', 'time', 7, 0, 1, 1);
-insert into sys.functions values (740, 'second', 'sql_seconds', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
-insert into sys.args values (32931, 740, 'res_0', 'decimal', 9, 6, 0, 0);
+insert into sys.functions values (740, 'minute', 'minutes', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
+insert into sys.args values (32931, 740, 'res_0', 'int', 32, 0, 0, 0);
 insert into sys.args values (32932, 740, 'arg_1', 'time', 7, 0, 1, 1);
-insert into sys.functions values (741, 'hour', 'hours', 'mtime', 0, 1, false, 
false, false, 2000, true, false);
-insert into sys.args values (32933, 741, 'res_0', 'int', 32, 0, 0, 0);
-insert into sys.args values (32934, 741, 'arg_1', 'timetz', 7, 0, 1, 1);
-insert into sys.functions values (742, 'minute', 'minutes', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
-insert into sys.args values (32935, 742, 'res_0', 'int', 32, 0, 0, 0);
-insert into sys.args values (32936, 742, 'arg_1', 'timetz', 7, 0, 1, 1);
-insert into sys.functions values (743, 'second', 'sql_seconds', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
-insert into sys.args values (32937, 743, 'res_0', 'decimal', 9, 6, 0, 0);
+insert into sys.functions values (741, 'second', 'sql_seconds', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
+insert into sys.args values (32933, 741, 'res_0', 'decimal', 9, 6, 0, 0);
+insert into sys.args values (32934, 741, 'arg_1', 'time', 7, 0, 1, 1);
+insert into sys.functions values (742, 'epoch_ms', 'epoch_ms', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
+insert into sys.args values (32935, 742, 'res_0', 'bigint', 64, 0, 0, 0);
+insert into sys.args values (32936, 742, 'arg_1', 'time', 7, 0, 1, 1);
+insert into sys.functions values (743, 'hour', 'hours', 'mtime', 0, 1, false, 
false, false, 2000, true, false);
+insert into sys.args values (32937, 743, 'res_0', 'int', 32, 0, 0, 0);
 insert into sys.args values (32938, 743, 'arg_1', 'timetz', 7, 0, 1, 1);
-insert into sys.functions values (744, 'century', 'century', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
+insert into sys.functions values (744, 'minute', 'minutes', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
 insert into sys.args values (32939, 744, 'res_0', 'int', 32, 0, 0, 0);
-insert into sys.args values (32940, 744, 'arg_1', 'timestamp', 7, 0, 1, 1);
-insert into sys.functions values (745, 'decade', 'decade', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
-insert into sys.args values (32941, 745, 'res_0', 'int', 32, 0, 0, 0);
-insert into sys.args values (32942, 745, 'arg_1', 'timestamp', 7, 0, 1, 1);
-insert into sys.functions values (746, 'year', 'year', 'mtime', 0, 1, false, 
false, false, 2000, true, false);
-insert into sys.args values (32943, 746,

MonetDB: Oct2020 - Approved upgrade

2020-10-05 Thread Pedro Ferreira
Changeset: ef76e9701106 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ef76e9701106
Modified Files:
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.ppc64.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/emptydb-upgrade-chain/Tests/upgrade.stable.out.ppc64
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.32bit
sql/test/emptydb-upgrade/Tests/upgrade.stable.out.int128
sql/test/emptydb/Tests/check.stable.out
sql/test/emptydb/Tests/check.stable.out.32bit
sql/test/emptydb/Tests/check.stable.out.int128
sql/test/testdb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.32bit
sql/test/testdb-upgrade-chain/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade-hge/Tests/upgrade.stable.out.int128
sql/test/testdb-upgrade/Tests/upgrade.stable.out
sql/test/testdb-upgrade/Tests/upgrade.stable.out.32bit
sql/test/testdb-upgrade/Tests/upgrade.stable.out.int128
Branch: Oct2020
Log Message:

Approved upgrade


diffs (truncated from 14153 to 300 lines):

diff --git a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128 
b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
--- a/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
+++ b/sql/test/emptydb-upgrade-chain-hge/Tests/upgrade.stable.out.int128
@@ -3447,865 +3447,886 @@ insert into sys.args values (37304, 894,
 insert into sys.functions values (895, 'week', 'weekofyear', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
 insert into sys.args values (37305, 895, 'res_0', 'int', 32, 0, 0, 0);
 insert into sys.args values (37306, 895, 'arg_1', 'date', 0, 0, 1, 1);
-insert into sys.functions values (896, 'hour', 'hours', 'mtime', 0, 1, false, 
false, false, 2000, true, false);
-insert into sys.args values (37307, 896, 'res_0', 'int', 32, 0, 0, 0);
-insert into sys.args values (37308, 896, 'arg_1', 'time', 7, 0, 1, 1);
-insert into sys.functions values (897, 'minute', 'minutes', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
+insert into sys.functions values (896, 'epoch_ms', 'epoch_ms', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
+insert into sys.args values (37307, 896, 'res_0', 'bigint', 64, 0, 0, 0);
+insert into sys.args values (37308, 896, 'arg_1', 'date', 0, 0, 1, 1);
+insert into sys.functions values (897, 'hour', 'hours', 'mtime', 0, 1, false, 
false, false, 2000, true, false);
 insert into sys.args values (37309, 897, 'res_0', 'int', 32, 0, 0, 0);
 insert into sys.args values (37310, 897, 'arg_1', 'time', 7, 0, 1, 1);
-insert into sys.functions values (898, 'second', 'sql_seconds', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
-insert into sys.args values (37311, 898, 'res_0', 'decimal', 9, 6, 0, 0);
+insert into sys.functions values (898, 'minute', 'minutes', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
+insert into sys.args values (37311, 898, 'res_0', 'int', 32, 0, 0, 0);
 insert into sys.args values (37312, 898, 'arg_1', 'time', 7, 0, 1, 1);
-insert into sys.functions values (899, 'hour', 'hours', 'mtime', 0, 1, false, 
false, false, 2000, true, false);
-insert into sys.args values (37313, 899, 'res_0', 'int', 32, 0, 0, 0);
-insert into sys.args values (37314, 899, 'arg_1', 'timetz', 7, 0, 1, 1);
-insert into sys.functions values (900, 'minute', 'minutes', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
-insert into sys.args values (37315, 900, 'res_0', 'int', 32, 0, 0, 0);
-insert into sys.args values (37316, 900, 'arg_1', 'timetz', 7, 0, 1, 1);
-insert into sys.functions values (901, 'second', 'sql_seconds', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
-insert into sys.args values (37317, 901, 'res_0', 'decimal', 9, 6, 0, 0);
+insert into sys.functions values (899, 'second', 'sql_seconds', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
+insert into sys.args values (37313, 899, 'res_0', 'decimal', 9, 6, 0, 0);
+insert into sys.args values (37314, 899, 'arg_1', 'time', 7, 0, 1, 1);
+insert into sys.functions values (900, 'epoch_ms', 'epoch_ms', 'mtime', 0, 1, 
false, false, false, 2000, true, false);
+insert into sys.args values (37315, 900, 'res_0', 'bigint', 64, 0, 0, 0);
+insert into sys.args values (37316, 900, 'arg_1', 'time', 7, 0, 1, 1);
+insert into sys.functions values (901, 'hour', 'hours', 'mtime', 0, 1, false, 
false, f

MonetDB: Oct2020 - Fix upgrade

2020-10-05 Thread Pedro Ferreira
Changeset: ca97f68a31d0 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=ca97f68a31d0
Modified Files:
sql/backends/monet5/sql_upgrades.c
Branch: Oct2020
Log Message:

Fix upgrade


diffs (11 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
@@ -2480,6 +2480,7 @@ sql_update_oct2020(Client c, mvc *sql, c
"ALTER TABLE sys.keywords SET READ 
WRITE;\n"
"insert into sys.keywords values 
('EPOCH');\n");
 
+   pos += snprintf(buf + pos, bufsize - pos, "commit;\n");
pos += snprintf(buf + pos, bufsize - pos, "set schema 
\"%s\";\n", prev_schema);
 
assert(pos < bufsize);
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Oct2020 - Approved output

2020-10-05 Thread Pedro Ferreira
Changeset: 217ecad7119e for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=217ecad7119e
Added Files:
sql/test/BugTracker-2020/Tests/integers-intervals.Bug-6979.sql
sql/test/BugTracker-2020/Tests/integers-intervals.Bug-6979.stable.err
sql/test/BugTracker-2020/Tests/integers-intervals.Bug-6979.stable.out
Modified Files:
sql/test/BugTracker-2020/Tests/All
Branch: Oct2020
Log Message:

Approved output


diffs (53 lines):

diff --git a/sql/test/BugTracker-2020/Tests/All 
b/sql/test/BugTracker-2020/Tests/All
--- a/sql/test/BugTracker-2020/Tests/All
+++ b/sql/test/BugTracker-2020/Tests/All
@@ -24,3 +24,4 @@ round.Bug-6955
 log.Bug-6960
 table-udf-column-descriptor.Bug-6964
 table-udf-distinct.Bug-6965
+integers-intervals.Bug-6979
diff --git a/sql/test/BugTracker-2020/Tests/integers-intervals.Bug-6979.sql 
b/sql/test/BugTracker-2020/Tests/integers-intervals.Bug-6979.sql
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2020/Tests/integers-intervals.Bug-6979.sql
@@ -0,0 +1,1 @@
+select extract(second from interval '3600' second), extract(hour from interval 
'3600' second), extract(epoch from interval '3600' second), extract(epoch from 
now() - now());
diff --git 
a/sql/test/BugTracker-2020/Tests/integers-intervals.Bug-6979.stable.err 
b/sql/test/BugTracker-2020/Tests/integers-intervals.Bug-6979.stable.err
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2020/Tests/integers-intervals.Bug-6979.stable.err
@@ -0,0 +1,11 @@
+stderr of test 'integers-intervals.Bug-6979` in directory 
'sql/test/BugTracker-2020` itself:
+
+
+# 10:15:28 >  
+# 10:15:28 >  "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-19606" "--port=33099"
+# 10:15:28 >  
+
+# 10:15:28 >  
+# 10:15:28 >  "Done."
+# 10:15:28 >  
+
diff --git 
a/sql/test/BugTracker-2020/Tests/integers-intervals.Bug-6979.stable.out 
b/sql/test/BugTracker-2020/Tests/integers-intervals.Bug-6979.stable.out
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2020/Tests/integers-intervals.Bug-6979.stable.out
@@ -0,0 +1,18 @@
+stdout of test 'integers-intervals.Bug-6979` in directory 
'sql/test/BugTracker-2020` itself:
+
+
+# 10:15:28 >  
+# 10:15:28 >  "mclient" "-lsql" "-ftest" "-tnone" "-Eutf-8" "-i" "-e" 
"--host=/var/tmp/mtest-19606" "--port=33099"
+# 10:15:28 >  
+
+#select extract(second from interval '3600' second), extract(hour from 
interval '3600' second), extract(epoch from interval '3600' second), 
extract(epoch from now() - now());
+% .%2, .%3,.%4,.%5 # table_name
+% %2,  %3, %4, %5 # name
+% int, int,bigint, bigint # type
+% 1,   1,  7,  1 # length
+[ 0,   1,  360,0   ]
+
+# 10:15:28 >  
+# 10:15:28 >  "Done."
+# 10:15:28 >  
+
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: Oct2020 - Added 'epoch' extract function to datetime re...

2020-10-05 Thread Pedro Ferreira
Changeset: 22f0b6b230c9 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=22f0b6b230c9
Modified Files:
clients/Tests/MAL-signatures.stable.out
clients/Tests/MAL-signatures.stable.out.int128
clients/mapiclient/mhelp.c
monetdb5/modules/atoms/mtime.c
sql/backends/monet5/sql_upgrades.c
sql/common/sql_types.c
sql/scripts/51_sys_schema_extension.sql
sql/server/sql_datetime.c
sql/server/sql_datetime.h
sql/server/sql_parser.y
sql/server/sql_scan.c
sql/test/sys-schema/Tests/systemfunctions.stable.out
sql/test/sys-schema/Tests/systemfunctions.stable.out.int128
Branch: Oct2020
Log Message:

Added 'epoch' extract function to datetime related types. This allows to 
convert an interval value into an integer as a regular cast is not possible as 
mentioned in bug 6979


diffs (truncated from 395 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -6175,6 +6175,10 @@ stdout of test 'MAL-signatures` in direc
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:timestamp]):bat[:int] ",   
"MTIMEseconds_since_epoch_bulk;",   ""  ]
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:lng]):bat[:timestamp] ",   
"MTIMEtimestamp_frommsec_bulk;",""  ]
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:int]):bat[:timestamp] ",   
"MTIMEtimestamp_fromsecond_bulk;",  ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:date]):bat[:lng] ", 
"MTIMEdate_extract_epoch_ms_bulk;", ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:daytime]):bat[:lng] ",  
"MTIMEdaytime_extract_epoch_ms_bulk;",  ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:lng]):bat[:lng] ",  
"MTIMEmsec_extract_epoch_ms_bulk;", ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:timestamp]):bat[:lng] ",
"MTIMEtimestamp_extract_epoch_ms_bulk;",""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:daytime]):bat[:int] ", 
"MTIMEdaytime_extract_hours_bulk;", ""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:lng]):bat[:int] ", "MTIMEsql_hours_bulk;", ""  ]
 [ "batmtime",  "hours","command 
batmtime.hours(X_1:bat[:timestamp]):bat[:int] ",   
"MTIMEtimestamp_hours_bulk;",   ""  ]
@@ -8930,6 +8934,10 @@ stdout of test 'MAL-signatures` in direc
 [ "mtime", "epoch","command mtime.epoch(X_1:timestamp):int ",  
"MTIMEseconds_since_epoch;",""  ]
 [ "mtime", "epoch","command mtime.epoch(X_1:lng):timestamp ",  
"MTIMEtimestamp_frommsec;", ""  ]
 [ "mtime", "epoch","command mtime.epoch(X_1:int):timestamp ",  
"MTIMEtimestamp_fromsecond;",   ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:date):lng ",
"MTIMEdate_extract_epoch_ms;",  ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:daytime):lng ", 
"MTIMEdaytime_extract_epoch_ms;",   ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:lng):lng ", 
"MTIMEmsec_extract_epoch_ms;",  ""  ]
+[ "mtime", "epoch_ms", "command mtime.epoch_ms(X_1:timestamp):lng ",   
"MTIMEtimestamp_extract_epoch_ms;", ""  ]
 [ "mtime", "hours","command mtime.hours(X_1:daytime):int ",
"MTIMEdaytime_extract_hours;",  ""  ]
 [ "mtime", "hours","command mtime.hours(X_1:lng):int ",
"MTIMEsql_hours;",  ""  ]
 [ "mtime", "hours","command mtime.hours(X_1:timestamp):int ",  
"MTIMEtimestamp_hours;",""  ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -8744,6 +8744,10 @@ stdout of test 'MAL-signatures` in direc
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:timestamp]):bat[:int] ",   
"MTIMEseconds_since_epoch_bulk;",   ""  ]
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:lng]):bat[:timestamp] ",   
"MTIMEtimestamp_frommsec_bulk;",""  ]
 [ "batmtime",  "epoch","command 
batmtime.epoch(X_1:bat[:int]):bat[:timestamp] ",   
"MTIMEtimestamp_fromsecond_bulk;",  ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:date]):bat[:lng] ", 
"MTIMEdate_extract_epoch_ms_bulk;", ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:daytime]):bat[:lng] ",  
"MTIMEdaytime_extract_epoch_ms_bulk;",  ""  ]
+[ "batmtime",  "epoch_ms", "command 
batmtime.epoch_ms(X_1:bat[:lng]):bat[:lng] "

MonetDB: default - Merge with monetdbe-proxy.

2020-10-05 Thread Aris Koning
Changeset: 2e0a466bf36c for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=2e0a466bf36c
Branch: default
Log Message:

Merge with monetdbe-proxy.


diffs (truncated from 3257 to 300 lines):

diff --git a/clients/Tests/MAL-signatures.stable.out 
b/clients/Tests/MAL-signatures.stable.out
--- a/clients/Tests/MAL-signatures.stable.out
+++ b/clients/Tests/MAL-signatures.stable.out
@@ -9114,13 +9114,14 @@ stdout of test 'MAL-signatures` in direc
 [ "remote","batbincopy",   "pattern remote.batbincopy(X_1:bat[:any]):void 
",   "RMTbincopyto;",""  ]
 [ "remote","batload",  "pattern remote.batload(X_1:any_1, 
X_2:int):bat[:any_1] ",  "RMTbatload;",  ""  ]
 [ "remote","bintype",  "pattern remote.bintype():void ",   
"RMTbintype;",  ""  ]
-[ "remote","connect",  "command remote.connect(X_1:str, X_2:str, 
X_3:str):str ",   "RMTconnect;",  ""  ]
-[ "remote","connect",  "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str):str ",  "RMTconnectScen;",  ""  ]
+[ "remote","connect",  "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str):str ",  "RMTconnect;",  ""  ]
+[ "remote","connect",  "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str, X_5:bit):str ", "RMTconnectScen;",  ""  ]
 [ "remote","connect",  "pattern remote.connect(X_1:str, X_2:str):str 
","RMTconnectTable;", ""  ]
 [ "remote","disconnect",   "command remote.disconnect(X_1:str):void ", 
"RMTdisconnect;",   ""  ]
 [ "remote","epilogue", "command remote.epilogue():void ",  
"RMTepilogue;", ""  ]
 [ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str):str ",  
"RMTexec;", ""  ]
 [ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str):str... 
",   "RMTexec;", ""  ]
+[ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, 
X_4:ptr, X_5:str...):void ","RMTexec;", ""  ]
 [ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, 
X_4:str...):str ",  "RMTexec;", ""  ]
 [ "remote","exec", "pattern remote.exec(X_1:str, X_2:str, X_3:str, 
X_4:str...):str... ",   "RMTexec;", ""  ]
 [ "remote","get",  "pattern remote.get(X_1:str, X_2:str):any ",
"RMTget;",  ""  ]
@@ -9308,6 +9309,7 @@ stdout of test 'MAL-signatures` in direc
 [ "sql",   "rt_credentials",   "pattern sql.rt_credentials(X_3:str) 
(X_0:bat[:str], X_1:bat[:str], X_2:bat[:str]) ",   "sql_rt_credentials_wrap;",  
   ""  ]
 [ "sql",   "sessions", "pattern sql.sessions() (X_0:bat[:int], 
X_1:bat[:str], X_2:bat[:timestamp], X_3:bat[:timestamp], X_4:bat[:str], 
X_5:bat[:int], X_6:bat[:int], X_7:bat[:int], X_8:bat[:int]) ",  
"sql_sessions_wrap;",   ""  ]
 [ "sql",   "setVariable",  "unsafe pattern sql.setVariable(X_1:int, 
X_2:str, X_3:str, X_4:any_1):int ","setVariable;", ""  ]
+[ "sql",   "set_protocol", "unsafe pattern sql.set_protocol(X_1:int):int 
","SQLset_protocol;", ""  ]
 [ "sql",   "setmemorylimit",   "unsafe pattern 
sql.setmemorylimit(X_1:int):void ", "SQLsetmemorylimit;",   ""  ]
 [ "sql",   "setmemorylimit",   "unsafe pattern 
sql.setmemorylimit(X_1:sht, X_2:int):void ","SQLsetmemorylimit;",   ""  
]
 [ "sql",   "setoptimizer", "unsafe pattern sql.setoptimizer(X_1:int, 
X_2:str):void ",  "SQLsetoptimizer;", ""  ]
diff --git a/clients/Tests/MAL-signatures.stable.out.int128 
b/clients/Tests/MAL-signatures.stable.out.int128
--- a/clients/Tests/MAL-signatures.stable.out.int128
+++ b/clients/Tests/MAL-signatures.stable.out.int128
@@ -12455,13 +12455,14 @@ stdout of test 'MAL-signatures` in direc
 [ "remote","batbincopy",   "pattern remote.batbincopy(X_1:bat[:any]):void 
",   "RMTbincopyto;",""  ]
 [ "remote","batload",  "pattern remote.batload(X_1:any_1, 
X_2:int):bat[:any_1] ",  "RMTbatload;",  ""  ]
 [ "remote","bintype",  "pattern remote.bintype():void ",   
"RMTbintype;",  ""  ]
-[ "remote","connect",  "command remote.connect(X_1:str, X_2:str, 
X_3:str):str ",   "RMTconnect;",  ""  ]
-[ "remote","connect",  "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str):str ",  "RMTconnectScen;",  ""  ]
+[ "remote","connect",  "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str):str ",  "RMTconnect;",  ""  ]
+[ "remote","connect",  "command remote.connect(X_1:str, X_2:str, 
X_3:str, X_4:str, X_5:bit):str ", "RMTconnectScen;",  ""  ]
 [ "remote","connect",  "pattern remote.connect(X_1:str, X_2:str):str 
","RMTconnectTable;", ""  ]
 [ "remote","disconnect",   "command remote.disconnect(X_1:str):void ", 
"RMTdisconnect;",   ""  ]
 [ "remote","epilogue", "command remote.epilogue():void ",

MonetDB: monetdbe-proxy - Fix another casting issue.

2020-10-05 Thread Aris Koning
Changeset: 0002115dd140 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0002115dd140
Modified Files:
sql/backends/monet5/sql.c
Branch: monetdbe-proxy
Log Message:

Fix another casting issue.


diffs (12 lines):

diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -298,7 +298,7 @@ SQLset_protocol(Client cntxt, MalBlkPtr 
return createException(SQL, "sql.set_protocol", "unknown 
protocol: %d", protocol);
}
 
-   *getArgReference_int(stk, pci, 0) = (cntxt->protocol = protocol);
+   *getArgReference_int(stk, pci, 0) = (cntxt->protocol = 
(protocol_version) protocol);
 
return MAL_SUCCEED;
 }
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list


MonetDB: octbugs - Related query to fix later

2020-10-05 Thread Pedro Ferreira
Changeset: 0c445c967fd8 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=0c445c967fd8
Modified Files:
sql/test/SQLancer/Tests/sqlancer07.sql
Branch: octbugs
Log Message:

Related query to fix later


diffs (12 lines):

diff --git a/sql/test/SQLancer/Tests/sqlancer07.sql 
b/sql/test/SQLancer/Tests/sqlancer07.sql
--- a/sql/test/SQLancer/Tests/sqlancer07.sql
+++ b/sql/test/SQLancer/Tests/sqlancer07.sql
@@ -314,6 +314,8 @@ SELECT 1 FROM (SELECT 2) v4(vc0) WHERE (
-- empty
 SELECT 1 FROM (SELECT 1) as v3(c0) RIGHT JOIN (SELECT 2) as v4(c0) ON (0.6) 
NOT IN (0.5, (SELECT 0.2));
-- 1
+SELECT * FROM (SELECT 1) as v3(c0) LEFT JOIN (SELECT 2) as v4(c0) ON (0.6) NOT 
IN ((SELECT v4.c0), 0.5);
+   -- 1 2
 SELECT FALSE FROM v3, v0 FULL OUTER JOIN v4 ON sql_max(FALSE, (0.6902854) NOT 
IN (0.5854332103580835, CASE WHEN v4.vc0 THEN (SELECT 0.023816515 WHERE TRUE) 
END));
-- False
 ROLLBACK;
___
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list