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]