[
https://issues.apache.org/jira/browse/CALCITE-5678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17717291#comment-17717291
]
Evgeny Stanilovsky edited comment on CALCITE-5678 at 4/27/23 4:33 PM:
----------------------------------------------------------------------
Sql 99 standard defines :
{noformat}
The <primary datetime field>s other than SECOND contain non-negative integer
values, con-
strained by the natural rules for dates using the _Gregorian_ calendar. SECOND,
however, can be
defined to have a <time fractional seconds precision> that indicates the number
of decimal digits
maintained following the decimal point in the seconds value, a _non-negative_
exact numeric value.
{noformat}
but it still possible in calcite:
{noformat}
insert into t values (1, '2013-20-14 00:00:00.-1');
insert into t values (1, '2023-02-35 01:00:00.0');{noformat}
Of course, this seems a broken change, thus i suggest a fix with minimal harm
of code.
was (Author: zstan):
Sql 99 standard defines :
{noformat}
The <primary datetime field>s other than SECOND contain non-negative integer
values, con-
strained by the natural rules for dates using the _Gregorian_ calendar. SECOND,
however, can be
defined to have a <time fractional seconds precision> that indicates the number
of decimal digits
maintained following the decimal point in the seconds value, a _non-negative_
exact numeric value.
{noformat}
but it still possible in calcite:
{noformat}
insert into t values (1, '2013-20-14 00:00:00.-1');
insert into t values (1, '2023-02-35 01:00:00.0');{noformat}
> Validate incorrect datetime string representation.
> --------------------------------------------------
>
> Key: CALCITE-5678
> URL: https://issues.apache.org/jira/browse/CALCITE-5678
> Project: Calcite
> Issue Type: Improvement
> Components: avatica
> Affects Versions: 1.34.0
> Reporter: Evgeny Stanilovsky
> Assignee: Evgeny Stanilovsky
> Priority: Major
> Labels: patch-available
>
> RexToLixTranslator now process datetime input string representation through
> org.apache.calcite.avatica.util.DateTimeUtils#timestampStringToUnixDate ,
> thus no exception is raised if incorrect string is passed.
> {noformat}
> create table t (i int not null, j timestamp);
> insert into t values (1, '2013-20-14 00:00:00');
> select * from t;
> > +---+---------------------+
> > | I | J |
> > +---+---------------------+
> > | 1 | 2014-08-16 00:00:00 |
> > +---+---------------------+{noformat}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)