Changeset: 9ca74cc1cd10 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=9ca74cc1cd10
Branch: Oct2020
Log Message:

merged


diffs (179 lines):

diff --git a/sql/test/SQLancer/Tests/sqlancer05.stable.out 
b/sql/test/SQLancer/Tests/sqlancer05.stable.out
--- a/sql/test/SQLancer/Tests/sqlancer05.stable.out
+++ b/sql/test/SQLancer/Tests/sqlancer05.stable.out
@@ -218,6 +218,22 @@ stdout of test 'sqlancer05` in directory
 #-1804793562
 [ 4    ]
 #create view v0(c0, c1) as (select distinct t0.c0, t0.c2 from t2, t0 where 
t0.c1);
+#SELECT 1 FROM v0, t0 JOIN t1 ON t0.c1 WHERE (CASE CASE t0.c0 WHEN t0.c0 THEN 
t1.c1 END WHEN t1.c1 THEN v0.c1 END) BETWEEN (v0.c1) AND (t0.c2);
+% .%3 # table_name
+% %3 # name
+% tinyint # type
+% 1 # length
+#SELECT count(agg0) FROM (
+#SELECT ALL sum(ALL t1.c1) as agg0 FROM v0, t0 JOIN t1 ON t0.c1 CROSS JOIN t2 
WHERE (CASE CASE t0.c0 WHEN t0.c0 THEN t1.c1 END WHEN t1.c1 THEN v0.c1 END) NOT 
 BETWEEN ASYMMETRIC (v0.c1) AND (t0.c2)
+#UNION ALL
+#SELECT ALL sum(ALL t1.c1) as agg0 FROM v0, t0 JOIN t1 ON t0.c1 CROSS JOIN t2 
WHERE NOT ((CASE CASE t0.c0 WHEN t0.c0 THEN t1.c1 END WHEN t1.c1 THEN v0.c1 
END) NOT  BETWEEN ASYMMETRIC (v0.c1) AND (t0.c2))
+#UNION ALL
+#SELECT ALL sum(ALL t1.c1) as agg0 FROM v0, t0 JOIN t1 ON t0.c1 CROSS JOIN t2 
WHERE ((CASE CASE t0.c0 WHEN t0.c0 THEN t1.c1 END WHEN t1.c1 THEN v0.c1 END) 
NOT  BETWEEN ASYMMETRIC (v0.c1) AND (t0.c2)) IS NULL
+% .%32 # table_name
+% %32 # name
+% bigint # type
+% 1 # length
+[ 0    ]
 #ROLLBACK;
 
 # 12:00:38 >  
diff --git a/tools/merovingian/client/monetdb.c 
b/tools/merovingian/client/monetdb.c
--- a/tools/merovingian/client/monetdb.c
+++ b/tools/merovingian/client/monetdb.c
@@ -609,7 +609,6 @@ simple_argv_cmd(char *cmd, sabdb *dbs, c
                                printf("FAILED\n");
                        fprintf(stderr, "%s: %s\n",
                                        cmd, ret);
-                       free(out);
                        free(ret);
                        exit(2);
                }
@@ -1680,7 +1679,8 @@ command_destroy(int argc, char *argv[])
                                                stats->dbname, "stop", 0, 
mero_pass);
                                if (ret != NULL)
                                        free(ret);
-                               free(out);
+                               else
+                                       free(out);
                        }
                }
        }
@@ -1963,6 +1963,7 @@ snapshot_destroy_file(char *path)
 
        if (strcmp(out, "OK") != 0) {
                fprintf(stderr, "snapshot destroy %s: %s\n", path, out);
+               free(out);
                exit(2);
        }
 
diff --git a/tools/merovingian/daemon/merovingian.c 
b/tools/merovingian/daemon/merovingian.c
--- a/tools/merovingian/daemon/merovingian.c
+++ b/tools/merovingian/daemon/merovingian.c
@@ -193,10 +193,6 @@ logListener(void *x)
        do {
                /* wait max 1 second, tradeoff between performance and being
                 * able to catch up new logger streams */
-#ifndef HAVE_POLL
-               tv = (struct timeval) {.tv_sec = 1};
-               FD_ZERO(&readfds);
-#endif
                nfds = 0;
 
                /* make sure noone is killing or adding entries here */
@@ -218,6 +214,8 @@ logListener(void *x)
                        w->flag |= 1;
                }
 #else
+               tv = (struct timeval) {.tv_sec = 1};
+               FD_ZERO(&readfds);
                for (w = d; w != NULL; w = w->next) {
                        if (w->pid <= 0)
                                continue;
@@ -351,7 +349,7 @@ main(int argc, char *argv[])
        struct stat sb;
        FILE *oerr = NULL;
        int thret;
-       char merodontfork = 0;
+       bool merodontfork = false;
        bool use_ipv6 = false;
        confkeyval ckv[] = {
                {"logfile",       strdup("merovingian.log"), 0,                
STR},
@@ -476,7 +474,7 @@ main(int argc, char *argv[])
                        exit(command_set(ckv, argc - 1, &argv[1]));
                } else if (strcmp(argv[1], "start") == 0) {
                        if (argc > 3 && strcmp(argv[2], "-n") == 0)
-                               merodontfork = 1;
+                               merodontfork = true;
                        if (argc == 3 + merodontfork) {
                                int len;
                                len = snprintf(dbfarm, sizeof(dbfarm), "%s",
@@ -730,12 +728,11 @@ main(int argc, char *argv[])
                MERO_EXIT_CLEAN(1);
        }
 
+       dpcons = (struct _dpair) {
+               .type = MERO,
+               .fork_lock = PTHREAD_MUTEX_INITIALIZER,
+       };
        _mero_topdp = &dpcons;
-       _mero_topdp->pid = 0;
-       _mero_topdp->type = MERO;
-       _mero_topdp->dbname = NULL;
-       _mero_topdp->flag = 0;
-       pthread_mutex_init(&_mero_topdp->fork_lock, NULL);
 
        /* where should our msg output go to? */
        p = getConfVal(_mero_props, "logfile");
@@ -758,8 +755,13 @@ main(int argc, char *argv[])
                MERO_EXIT(1);
        }
 
+       dpmero = (struct _dpair) {
+               .fork_lock = PTHREAD_MUTEX_INITIALIZER,
+               .pid = getpid(),
+               .type = MERO,
+               .dbname = "merovingian",
+       };
        d = _mero_topdp->next = &dpmero;
-       pthread_mutex_init(&d->fork_lock, NULL);
 
        /* redirect stdout */
        if (pipe2(pfd, O_CLOEXEC) == -1) {
@@ -813,12 +815,13 @@ main(int argc, char *argv[])
                MERO_EXIT(1);
        }
 
-       d->pid = getpid();
-       d->type = MERO;
-       d->dbname = "merovingian";
-       d->flag = 0;
-
        /* separate entry for the neighbour discovery service */
+       dpdisc = (struct _dpair) {
+               .fork_lock = PTHREAD_MUTEX_INITIALIZER,
+               .pid = getpid(),
+               .type = MERO,
+               .dbname = "discovery",
+       };
        d = d->next = &dpdisc;
        pthread_mutex_init(&d->fork_lock, NULL);
        if (pipe2(pfd, O_CLOEXEC) == -1) {
@@ -851,13 +854,14 @@ main(int argc, char *argv[])
                                 strerror(errno));
                MERO_EXIT(1);
        }
-       d->pid = getpid();
-       d->type = MERO;
-       d->dbname = "discovery";
-       d->next = NULL;
-       d->flag = 0;
 
        /* separate entry for the control runner */
+       dpcont = (struct _dpair) {
+               .fork_lock = PTHREAD_MUTEX_INITIALIZER,
+               .pid = getpid(),
+               .type = MERO,
+               .dbname = "control",
+       };
        d = d->next = &dpcont;
        pthread_mutex_init(&d->fork_lock, NULL);
        if (pipe2(pfd, O_CLOEXEC) == -1) {
@@ -890,11 +894,6 @@ main(int argc, char *argv[])
                                 strerror(errno));
                MERO_EXIT(1);
        }
-       d->pid = getpid();
-       d->type = MERO;
-       d->dbname = "control";
-       d->next = NULL;
-       d->flag = 0;
 
        if ((thret = pthread_create(&tid, NULL, logListener, NULL)) != 0) {
                Mfprintf(oerr, "%s: FATAL: unable to create logthread: %s\n",
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to