With pleaseure. I'll try to fix it first to confirm that my assumption is correct.
Thanks, Gelbana On Tue, Jun 11, 2019 at 8:44 PM Haisheng Yuan <[email protected]> wrote: > Cool, can you create an issue for this bug? > > - Haisheng > > ------------------------------------------------------------------ > 发件人:Muhammad Gelbana<[email protected]> > 日 期:2019年06月12日 02:39:20 > 收件人:[email protected] ([email protected])<[email protected] > > > 抄 送:Haisheng Yuan<[email protected]> > 主 题:Re: How to avoid SUM0 or disable a rule ? > > I believe it's a bug because DoubleSum (Also LongSum and IntSum) are > initialized with a value of 0 [1] > > [1] > https://github.com/apache/calcite/blob/a3c56be7bccc58859524ba39e5b30b7078f97d00/core/src/main/java/org/apache/calcite/interpreter/AggregateNode.java#L459 > > Thanks, > Gelbana > > > On Tue, Jun 11, 2019 at 8:35 PM Vamshi Krishna <[email protected]> > wrote: > >> It's done in the SqlToRelConverter.java:5427. I don't think there is a >> way currently to disable it (i may be wrong). >> There should be a configurable option to disable this. >> >> >> -Vamshi >> >> On Tue, Jun 11, 2019 at 2:31 PM Muhammad Gelbana <[email protected]> >> wrote: >> > >> > I just cleared the reducible aggregate calls collection at runtime (to >> void >> > the rule) and I'm still facing the same problem. This onviously has >> nothing >> > to do with the rule. I'll investigate further. Thanks for your help. >> > >> > Thanks, >> > Gelbana >> > >> > >> > On Tue, Jun 11, 2019 at 8:16 PM Haisheng Yuan <[email protected]> >> > wrote: >> > >> > > Hi Gelbana, >> > > >> > > You can construct your own AggregateReduceFunctionsRule instance by >> > > specifying the functions you want to reduce: >> > > >> > > public AggregateReduceFunctionsRule(Class<? extends Aggregate> >> aggregateClass, >> > > RelBuilderFactory relBuilderFactory, EnumSet<SqlKind> >> functionsToReduce) { >> > > >> > > >> > > But I think the issue you described might be a bug, can you open a >> JIRA >> > > issue with a test case if possible? >> > > >> > > - Haisheng >> > > >> > > ------------------------------------------------------------------ >> > > 发件人:Muhammad Gelbana<[email protected]> >> > > 日 期:2019年06月12日 01:46:28 >> > > 收件人:<[email protected]> >> > > 主 题:How to avoid SUM0 or disable a rule ? >> > > >> > > Executing the following query produces unexpected results >> > > >> > > SELECT >> > > "Calcs"."key" AS "key", >> > > SUM("Calcs"."num2") AS "sum:num2:ok", >> > > SUM("Calcs"."num2") AS "$__alias__0" >> > > FROM "TestV1"."Calcs" "Calcs" >> > > GROUP BY 1 >> > > ORDER BY 3 ASC NULLS FIRST >> > > LIMIT 10 >> > > >> > > The returned results contains 0 instead of NULLs while running the >> query >> > > against a PostgreSQL instance returns NULLs as expected. >> > > >> > > >> > > The reason for that is that Calcite uses SUM0 implementation instead >> of SUM. >> > > I found that the AggregateReduceFunctionsRule rule is the one that >> converts >> > > the SUM aggregate call to SUM0, so is there a way to remove this rule >> > > before planning ? >> > > >> > > Thanks, >> > > Gelbana >> > > >> > > >> > >
