Changeset: bc3b13d59fc0 for MonetDB URL: https://dev.monetdb.org/hg/MonetDB/rev/bc3b13d59fc0 Added Files: sql/test/BugTracker-2023/Tests/aggregate-vararg.Bug-7422.test Modified Files: sql/server/rel_select.c sql/test/BugTracker-2023/Tests/All sql/test/BugTracker-2023/Tests/SingleServer Branch: Dec2023 Log Message:
handle aggregates with variable number of arguments, fixes bug #7422 Also added a test diffs (51 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 @@ -4099,7 +4099,8 @@ static sql_exp * found = true; /* something was found */ } else { a = sf; - exps = nexps; + if (!sf->func->vararg) + exps = nexps; } } } else { diff --git a/sql/test/BugTracker-2023/Tests/All b/sql/test/BugTracker-2023/Tests/All --- a/sql/test/BugTracker-2023/Tests/All +++ b/sql/test/BugTracker-2023/Tests/All @@ -22,3 +22,4 @@ insert-delete-insert-crash-7415 orderby-debug-crash-7416 newurl-issue-7417 rel_order_by-assertion-7418 +HAVE_LIBPY3?aggregate-vararg.Bug-7422 diff --git a/sql/test/BugTracker-2023/Tests/SingleServer b/sql/test/BugTracker-2023/Tests/SingleServer --- a/sql/test/BugTracker-2023/Tests/SingleServer +++ b/sql/test/BugTracker-2023/Tests/SingleServer @@ -0,0 +1,1 @@ +--set embedded_py=3 diff --git a/sql/test/BugTracker-2023/Tests/aggregate-vararg.Bug-7422.test b/sql/test/BugTracker-2023/Tests/aggregate-vararg.Bug-7422.test new file mode 100644 --- /dev/null +++ b/sql/test/BugTracker-2023/Tests/aggregate-vararg.Bug-7422.test @@ -0,0 +1,20 @@ +statement ok +CREATE OR REPLACE AGGREGATE python_aggregate (*) +RETURNS INTEGER +LANGUAGE PYTHON +{ +try: + unique = numpy.unique(aggr_group) + x = numpy.zeros(shape=(unique.size)) + for i in range(0, unique.size): + x[i] = numpy.sum(val[aggr_group==unique[i]]) +except NameError: +# aggr_group doesn't exist. no groups, aggregate on all data + x = numpy.sum(arg2) +return (x) +} + +query I nosort +select python_aggregate(5,2); +---- +2 _______________________________________________ checkin-list mailing list -- checkin-list@monetdb.org To unsubscribe send an email to checkin-list-le...@monetdb.org