Changeset: ce27c38f4256 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/ce27c38f4256
Modified Files:
        gdk/gdk_aggr.c
Branch: default
Log Message:

merged with aug2024


diffs (100 lines):

diff --git a/gdk/gdk_aggr.c b/gdk/gdk_aggr.c
--- a/gdk/gdk_aggr.c
+++ b/gdk/gdk_aggr.c
@@ -4066,8 +4066,15 @@ doBATgroupquantile(BAT *b, BAT *g, BAT *
                                if (!skip_nils && !bi.nonil)
                                        nils += (*atomcmp)(v, dnil) == 0;
                        }
+                       while (min < prev) {
+                               if (bunfastapp_nocheck(bn, dnil) != GDK_SUCCEED)
+                                       goto bunins_failed;
+                               min++;
+                               nils++;
+                       }
                        if (bunfastapp_nocheck(bn, v) != GDK_SUCCEED)
                                goto bunins_failed;
+                       min++;
                }
                bat_iterator_end(&bi);
                nils += ngrp - BATcount(bn);
diff --git a/monetdb5/modules/kernel/aggr.c b/monetdb5/modules/kernel/aggr.c
--- a/monetdb5/modules/kernel/aggr.c
+++ b/monetdb5/modules/kernel/aggr.c
@@ -29,7 +29,7 @@ AGGRgrouped_bat_or_val(bat *retval1, bat
                                                                                
         double, bool), const bat *quantile,
                                           const double *quantile_val, const 
char *malfunc)
 {
-       BAT *b, *g, *e, *s, *bn = NULL, *cnts = NULL, *q = NULL;
+       BAT *b, *g = NULL, *e = NULL, *s = NULL, *bn = NULL, *cnts = NULL, *q = 
NULL;
        double qvalue;
 
        /* exactly one of grpfunc1, grpfunc2 and quantilefunc is non-NULL */
@@ -41,16 +41,11 @@ AGGRgrouped_bat_or_val(bat *retval1, bat
        assert((quantilefunc == NULL) == (quantile == NULL && quantile_val == 
NULL));
 
        b = BATdescriptor(*bid);
-       g = gid ? BATdescriptor(*gid) : NULL;
-       e = eid ? BATdescriptor(*eid) : NULL;
-       s = sid ? BATdescriptor(*sid) : NULL;
-       q = quantile ? BATdescriptor(*quantile) : NULL;
-
        if (b == NULL ||
-               (gid != NULL && g == NULL) ||
-               (eid != NULL && e == NULL) ||
-               (sid != NULL && s == NULL) ||
-               ((quantile != NULL && quantile_val != NULL) && q == NULL)) {
+               (gid && !is_bat_nil(*gid) && (g = BATdescriptor(*gid)) == NULL) 
||
+               (eid && !is_bat_nil(*eid) && (e = BATdescriptor(*eid)) == NULL) 
||
+               (sid && !is_bat_nil(*sid) && (s = BATdescriptor(*sid)) == NULL) 
||
+               (quantile && !is_bat_nil(*quantile) && (q = 
BATdescriptor(*quantile)) == NULL)) {
                BBPreclaim(b);
                BBPreclaim(g);
                BBPreclaim(e);
diff --git a/sql/test/BugTracker-2024/Tests/7591-logical-expr.test 
b/sql/test/BugTracker-2024/Tests/7591-logical-expr.test
new file mode 100644
--- /dev/null
+++ b/sql/test/BugTracker-2024/Tests/7591-logical-expr.test
@@ -0,0 +1,35 @@
+statement error SELECT: no such unary operator 'sys'.'not'(decimal)
+SELECT (0.23314537804241876 OR NOT 0.23314537804241876 OR 0.23314537804241876 
IS NULL)
+
+query I nosort
+SELECT (0.23314537804241876 <> 0 OR NOT 0.23314537804241876 <> 0 OR 
0.23314537804241876 IS NULL)
+----
+1
+
+statement ok
+CREATE TABLE t7591 (c0 String)
+
+statement ok
+INSERT INTO t7591 (c0) VALUES (''), ('')
+
+query T nosort
+SELECT * FROM t7591 WHERE t7591.c0 = ''
+----
+(empty)
+(empty)
+
+statement error types decimal(18,17) and boolean(1,0) are not equal
+SELECT * FROM t7591 WHERE (t7591.c0 = '') AND (0.23314537804241876) UNION ALL
+SELECT * FROM t7591 WHERE (t7591.c0 = '') AND (NOT (0.23314537804241876)) 
UNION ALL
+SELECT * FROM t7591 WHERE (t7591.c0 = '') AND ((0.23314537804241876) IS NULL)
+
+query T nosort
+SELECT * FROM t7591 WHERE (t7591.c0 = '') AND (0.23314537804241876 <> 0) UNION 
ALL
+SELECT * FROM t7591 WHERE (t7591.c0 = '') AND (NOT (0.23314537804241876 <> 0)) 
UNION ALL
+SELECT * FROM t7591 WHERE (t7591.c0 = '') AND ((0.23314537804241876) IS NULL)
+----
+(empty)
+(empty)
+
+statement ok
+drop table t7591
diff --git a/sql/test/BugTracker-2024/Tests/All 
b/sql/test/BugTracker-2024/Tests/All
--- a/sql/test/BugTracker-2024/Tests/All
+++ b/sql/test/BugTracker-2024/Tests/All
@@ -93,3 +93,4 @@ 7574-startswith-bug
 7580-date-diff
 7582-ddl-exists
 7587-rejectmismatch
+7591-logical-expr
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to