Vladimir Steshin created IGNITE-24797:
-----------------------------------------

             Summary: Calcite. Unable to process default date literal on DDL.
                 Key: IGNITE-24797
                 URL: https://issues.apache.org/jira/browse/IGNITE-24797
             Project: Ignite
          Issue Type: Bug
            Reporter: Vladimir Steshin


*Reproducer:*
{code:java}
public class DateTimeTest extends AbstractBasicIntegrationTransactionalTest {
@Test
    public void testDefaultTemporalValues() throws Exception {
        sql(client, "CREATE TABLE TBL(ID INTEGER, DT DATE DEFAULT '2020-07-07', 
TT TIME DEFAULT '14:30:43', " +
            "TS TIMESTAMP DEFAULT '2023-07-05 01:02:03.456')");

        sql("INSERT INTO TBL(ID) VALUES(1)");

        assertQuery("SELECT * FROM TBL")
            .returns(1, sqlDate("2020-07-07"), sqlTime("14:30:43"), 
sqlTimestamp("2023-07-05 01:02:03.456'"))
            .check();
    }
}
{code}

*Result:*
{code:java}
java.lang.ClassCastException: class org.apache.calcite.sql.SqlCharStringLiteral 
cannot be cast to class org.apache.calcite.sql.SqlUnknownLiteral 
(org.apache.calcite.sql.SqlCharStringLiteral and 
org.apache.calcite.sql.SqlUnknownLiteral are in unnamed module of loader 'app')
        at 
org.apache.ignite.internal.processors.query.calcite.util.TypeUtils.fromLiteral(TypeUtils.java:476)
        at 
org.apache.ignite.internal.processors.query.calcite.prepare.ddl.DdlSqlToCommandConverter.convertCreateTable(DdlSqlToCommandConverter.java:236)
        at 
org.apache.ignite.internal.processors.query.calcite.prepare.ddl.DdlSqlToCommandConverter.convert(DdlSqlToCommandConverter.java:158)
        at 
org.apache.ignite.internal.processors.query.calcite.prepare.PrepareServiceImpl.prepareDdl(PrepareServiceImpl.java:132)
{code}

Same for TIME and TIMESTAMP. 

*Reason:*
We cast SqlCharStringLiteral to SqlUnknownLiteral. Different types.




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

Reply via email to