You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Evgeny Stanilovsky (Jira)" <ji...@apache.org> on 2023/04/27 16:34:00 UTC

[jira] [Comment Edited] (CALCITE-5678) Validate incorrect datetime string representation.

    [ 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)