[ 
https://issues.apache.org/jira/browse/CALCITE-6115?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated CALCITE-6115:
------------------------------------
    Labels: pull-request-available  (was: )

> Interval type specifier with zero fractional second precision does not pass 
> validation
> --------------------------------------------------------------------------------------
>
>                 Key: CALCITE-6115
>                 URL: https://issues.apache.org/jira/browse/CALCITE-6115
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Leonid Chistov
>            Assignee: Leonid Chistov
>            Priority: Major
>              Labels: pull-request-available
>
> Consider interval expression 
> {code:java}
> interval '1' second(1, 0) {code}
> Calcite SQL validator considers it as not correct, since it uses following 
> lower bound for fractional seconds precision:
> {code:java}
> public static final int MIN_INTERVAL_FRACTIONAL_SECOND_PRECISION = 1;{code}
> In order to reproduce this issue one can add following test cast to 
> SqlValidatorTest.java:
> {code:java}
> @Test void testSecondIntervalExpression() {
>   expr("interval '1' second(1, 0)").columnType("INTERVAL SECOND(1, 0) NOT 
> NULL");
> } {code}
> and get an error:
> {code:java}
> Interval fractional second precision '0' out of range for INTERVAL SECOND(1, 
> 0) {code}
> However, SQL standard say:
> {code:java}
> An <interval fractional seconds precision>, if specified, shall be greater 
> than or equal to 0 (zero)
> and shall not be greater than the implementation-defined maximum. If SECOND 
> is specified
> and <interval fractional seconds precision> is not specified, then an 
> <interval fractional seconds
> precision> of 6 is implicit. {code}
> Consequently, MIN_INTERVAL_FRACTIONAL_SECOND_PRECISION should be equal to 0 
> to make Calcite behavior consistent with SQL specification.



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

Reply via email to