[ 
https://issues.apache.org/jira/browse/DRILL-7931?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17373112#comment-17373112
 ] 

ASF GitHub Bot commented on DRILL-7931:
---------------------------------------

paul-rogers commented on pull request #2259:
URL: https://github.com/apache/drill/pull/2259#issuecomment-872627197


   Thanks @Leon-WTF for the very clear explanation: you clearly did your 
homework and understand Calcite. I agree that your fix is the correct one 
short-term. Given that Drill (incorrectly) makes the function nullable at 
times, it does make sense to include the type in the lookup check.
   
   It is true that there are times when the function can return a `NULL` 
result. The code is probably confusing the fact that the *output* can be 
nullable (if all inputs are `NULL`, say) vs. the fact that the calculation 
itself is not nullable. This seems like a rather complex mess to clean up, and 
is best left for later. There is little harm, for now, in having two copies of 
the function. Someone can fix the issue when they need to squeeze the ultimate 
performance out of the computation.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


> Rowtype mismatch in DrillReduceAggregatesRule
> ---------------------------------------------
>
>                 Key: DRILL-7931
>                 URL: https://issues.apache.org/jira/browse/DRILL-7931
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Query Planning & Optimization
>    Affects Versions: 1.18.0
>            Reporter: wtf
>            Assignee: wtf
>            Priority: Major
>
> It's work correct for example in case when there is only one aggregation:
> select col1, stddev(col2) FROM(values ('UA', 3), ('USA', 2), ('UA', 3), 
> ('USA', 5), ('USA', 1), ('UA', 9)) x(col1, col2) GROUP BY col1 LIMIT 6;
> Or when it's after other aggregations:
> select col1, SUM(col2), stddev(col2) FROM (values ('UA', 3), ('USA', 2), 
> ('UA', 3), ('USA', 5), ('USA', 1), ('UA', 9)) x(col1, col2) GROUP BY col1 
> LIMIT 6;
> But when we try to put it before an aggregation, like SUM:
> select col1, stddev(col2), SUM(col2) FROM (values ('UA', 3), ('USA', 2), 
> ('UA', 3), ('USA', 5), ('USA', 1), ('UA', 9)) x(col1, col2) GROUP BY col1 
> LIMIT 6;
> It's failed with error:
> SYSTEM ERROR: AssertionError: Type mismatch:
> rowtype of new rel:
> RecordType(CHAR(3) NOT NULL col1, BIGINT $f1, BIGINT $f2, BIGINT NOT NULL 
> $f3, BIGINT $f4) NOT NULL
> rowtype of set:
> RecordType(CHAR(3) NOT NULL col1, BIGINT $f1, BIGINT $f2, BIGINT NOT NULL 
> $f3, BIGINT NOT NULL $f4) NOT NULL
> Same for stddev_samp



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to