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

Julian Hyde commented on CALCITE-6324:
--------------------------------------

You can't say the type is 'incorrect' when the standard leaves it 
implementation-defined, and other implementations are inconsistent.

The reasoning is similar to AVG. By default, AVG applied to an INTEGER column 
yields an INTEGER result. That is probably too few decimal digits in most 
cases. But at least the rules are simple: the result type equals the argument 
type. So it you want 3 digits to the right of the decimal from AVG, you can 
simply apply a cast to its argument.

Your point that STDDEV's internal accumulator overflows seems to be somewhat 
separate from the complaints about the return type. Because STDDEV's formula 
sums the squares its arguments and then takes the square root, it makes sense 
that the accumulator would have twice as many digits of precision as the result.

> Type inferred for result of STDDEV, VAR_SAMP, etc. is incorrect
> ---------------------------------------------------------------
>
>                 Key: CALCITE-6324
>                 URL: https://issues.apache.org/jira/browse/CALCITE-6324
>             Project: Calcite
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 1.36.0
>            Reporter: Mihai Budiu
>            Assignee: Mihai Budiu
>            Priority: Minor
>              Labels: pull-request-available
>             Fix For: 1.37.0
>
>
> These functions are all use the same type inference algorithm, essentially 
> the algorithm used by AVG.
> But if the values processed are decimal, STDDEV (and others) need much higher 
> precision to represent the result. (I am not sure that the inference is right 
> for integer types either, btw.)
> This surfaced during the implementation of a fix for [CALCITE-6322]: if we 
> use the type inferred for these functions, the result overflows and causes a 
> runtime exception.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to