Changeset: c3dd0afe489a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=c3dd0afe489a
Modified Files:
        gdk/gdk_bbp.c
        sql/server/rel_psm.c
        sql/test/subquery/Tests/subquery4.sql
        sql/test/subquery/Tests/subquery4.stable.err
Branch: default
Log Message:

Merge with Jun2020 branch.


diffs (156 lines):

diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -997,8 +997,8 @@ BBPcheckbats(void)
                if (path == NULL)
                        return GDK_FAIL;
                if (stat(path, &statb) < 0) {
-                       GDKsyserror("BBPcheckbats: cannot stat file %s\n",
-                                   path);
+                       GDKsyserror("BBPcheckbats: cannot stat file %s 
(expected size %zu)\n",
+                                   path, b->theap.free);
                        GDKfree(path);
                        return GDK_FAIL;
                }
@@ -1460,7 +1460,7 @@ vheap_entry(FILE *fp, Heap *h)
 }
 
 static gdk_return
-new_bbpentry(FILE *fp, bat i, const char *prefix)
+new_bbpentry(FILE *fp, bat i)
 {
 #ifndef NDEBUG
        assert(i > 0);
@@ -1476,10 +1476,9 @@ new_bbpentry(FILE *fp, bat i, const char
        }
 #endif
 
-       if (fprintf(fp, "%s%zd %u %s %s %d " BUNFMT " "
-                   BUNFMT " " OIDFMT, prefix,
+       if (fprintf(fp, "%d %u %s %s %d " BUNFMT " " BUNFMT " " OIDFMT,
                    /* BAT info */
-                   (ssize_t) i,
+                   (int) i,
                    BBP_status(i) & BBPPERSISTENT,
                    BBP_logical(i),
                    BBP_physical(i),
@@ -1489,24 +1488,11 @@ new_bbpentry(FILE *fp, bat i, const char
                    BBP_desc(i)->hseqbase) < 0 ||
            heap_entry(fp, BBP_desc(i)) < 0 ||
            vheap_entry(fp, BBP_desc(i)->tvheap) < 0 ||
-           (BBP_options(i) &&
-            fprintf(fp, " %s", BBP_options(i)) < 0) ||
+           (BBP_options(i) && fprintf(fp, " %s", BBP_options(i)) < 0) ||
            fprintf(fp, "\n") < 0) {
                GDKsyserror("new_bbpentry: Writing BBP.dir entry failed\n");
                return GDK_FAIL;
        }
-       TRC_DEBUG(IO_, "%s%zd %u %s %s %d " BUNFMT " "
-                 BUNFMT " " OIDFMT " %s\n", prefix,
-                 /* BAT info */
-                 (ssize_t) i,
-                 BBP_status(i) & BBPPERSISTENT,
-                 BBP_logical(i),
-                 BBP_physical(i),
-                 BBP_desc(i)->batRestricted << 1,
-                 BBP_desc(i)->batCount,
-                 BBP_desc(i)->batCapacity,
-                 BBP_desc(i)->hseqbase,
-                 BBP_options(i) ? BBP_options(i) : "");
 
        return GDK_SUCCEED;
 }
@@ -1592,7 +1578,7 @@ BBPdir_subcommit(int cnt, bat *subcommit
                        bat i = subcommit[j];
                        /* BBP.dir consists of all persistent bats only */
                        if (BBP_status(i) & BBPPERSISTENT) {
-                               if (new_bbpentry(nbbpf, i, "") != GDK_SUCCEED) {
+                               if (new_bbpentry(nbbpf, i) != GDK_SUCCEED) {
                                        goto bailout;
                                }
                        }
@@ -1664,7 +1650,7 @@ BBPdir(int cnt, bat *subcommit)
                /* write the entry
                 * BBP.dir consists of all persistent bats */
                if (BBP_status(i) & BBPPERSISTENT) {
-                       if (new_bbpentry(fp, i, "") != GDK_SUCCEED) {
+                       if (new_bbpentry(fp, i) != GDK_SUCCEED) {
                                goto bailout;
                        }
                }
diff --git a/sql/server/rel_psm.c b/sql/server/rel_psm.c
--- a/sql/server/rel_psm.c
+++ b/sql/server/rel_psm.c
@@ -96,7 +96,7 @@ psm_set_exp(sql_query *query, dnode *n)
 
                res = exp_set(sql->sa, name, e, level);
        } else { /* multi assignment */
-               exp_kind ek = {type_value, card_relation, FALSE};
+               exp_kind ek = {type_relation, card_value, FALSE};
                sql_rel *rel_val = rel_subquery(query, NULL, val, ek);
                dlist *vars = n->data.lval;
                dnode *m;
@@ -547,7 +547,7 @@ rel_select_into( sql_query *query, symbo
 extern sql_rel *
 rel_select_with_into(sql_query *query, symbol *sq)
 {
-       exp_kind ek = {type_value, card_row, TRUE};
+       exp_kind ek = {type_relation, card_value, TRUE};
        list *reslist = rel_select_into(query, sq, ek);
        if (!reslist)
                return NULL;
diff --git a/sql/test/subquery/Tests/subquery4.sql 
b/sql/test/subquery/Tests/subquery4.sql
--- a/sql/test/subquery/Tests/subquery4.sql
+++ b/sql/test/subquery/Tests/subquery4.sql
@@ -192,6 +192,9 @@ SELECT i1.i, i2.i FROM integers i1, inte
 SELECT 1 IN ((SELECT MIN(col2)), (SELECT SUM(col4))) FROM another_t;
        -- False
 
+SELECT 1 FROM another_t WHERE (1,col1) IN ((SELECT MIN(i1.i), SUM(i1.i) FROM 
integers i1));
+       -- empty
+
 DECLARE myvar INT;
 SELECT (SELECT i) INTO myvar FROM integers; --error, one row max
 DECLARE ovar INT;
@@ -200,6 +203,9 @@ SET ovar = (SELECT (SELECT i) FROM integ
 DECLARE abc,def INT;
 SET (abc, def) = (SELECT 1, 2);
 SELECT abc, def;
+SET (abc, def) = (SELECT i, i from integers); --error, one row max
+DECLARE aa,bb INT;
+SELECT i, i INTO aa, bb FROM integers; --error, one row max
 
 UPDATE another_T SET col1 = MIN(col1); --error, aggregates not allowed in 
update set clause
 UPDATE another_T SET col2 = 1 WHERE col1 = SUM(col2); --error, aggregates not 
allowed in update set clause
@@ -308,6 +314,11 @@ CREATE FUNCTION upsme(input INT) RETURNS
 SELECT upsme(1);
 SELECT upsme(1);
 
+CREATE OR REPLACE FUNCTION upsme(input INT) RETURNS INT BEGIN RETURN (SELECT 
input); END;
+
+SELECT upsme(1);
+SELECT upsme(1);
+
 DROP FUNCTION upsme(INT);
 DROP FUNCTION evilfunction(INT);
 DROP FUNCTION evilfunction(INT, INT);
diff --git a/sql/test/subquery/Tests/subquery4.stable.err 
b/sql/test/subquery/Tests/subquery4.stable.err
--- a/sql/test/subquery/Tests/subquery4.stable.err
+++ b/sql/test/subquery/Tests/subquery4.stable.err
@@ -96,7 +96,15 @@ MAPI  = (monetdb) /var/tmp/mtest-260928/
 QUERY = SET ovar = (SELECT (SELECT i) FROM integers); --error, one row max
 ERROR = !Cardinality violation, scalar value expected
 CODE  = 21000
-MAPI  = (monetdb) /var/tmp/mtest-260928/.s.monetdb.34607
+MAPI  = (monetdb) /var/tmp/mtest-68349/.s.monetdb.35729
+QUERY = SET (abc, def) = (SELECT i, i from integers); --error, one row max
+ERROR = !Cardinality violation, scalar value expected
+CODE  = 21000
+MAPI  = (monetdb) /var/tmp/mtest-69236/.s.monetdb.37950
+QUERY = SELECT i, i INTO aa, bb FROM integers; --error, one row max
+ERROR = !Cardinality violation, scalar value expected
+CODE  = 21000
+MAPI  = (monetdb) /var/tmp/mtest-69236/.s.monetdb.37950
 QUERY = UPDATE another_T SET col1 = MIN(col1); --error, aggregates not allowed 
in update set clause
 ERROR = !MIN: aggregate functions not allowed in SET clause (use subquery)
 CODE  = 42000
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to