[
https://issues.apache.org/jira/browse/CALCITE-6248?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17817544#comment-17817544
]
Julian Hyde commented on CALCITE-6248:
--------------------------------------
I think we should remain reasonably liberal in the format we accept. Parsing a
string into year / month / date fields is one thing, and verifying whether
those fields represent a valid ISO 8601 date is another. This case is just
about the latter question.
Reviewing the above commit, I was surprised that there were no tests that
{{cast('1945-02-32' as DATE)}} gives an error (at validate time or run time)
and that {{select cast(d as date) from (values '1945-02-32') as t (d)}} gives
an error at run time.
> Illegal dates are accepted by casts
> -----------------------------------
>
> Key: CALCITE-6248
> URL: https://issues.apache.org/jira/browse/CALCITE-6248
> Project: Calcite
> Issue Type: Bug
> Components: avatica, core
> Affects Versions: 1.36.0
> Reporter: Mihai Budiu
> Priority: Minor
> Labels: pull-request-available
> Time Spent: 20m
> Remaining Estimate: 0h
>
> The following test passes in SqlOperatorTest:
> {code:java}
> @Test public void testIllegalDate() {
> final SqlOperatorFixture f = fixture();
> f.checkScalar("cast('1945-02-32' as DATE)",
> "1945-03-04", "DATE NOT NULL");
> }
> {code}
> There is no February 32, I suspect that this expression should produce an
> error.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)