You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Benchao Li (Jira)" <ji...@apache.org> on 2023/03/30 10:09:00 UTC

[jira] [Commented] (CALCITE-5622) Cast is lost from plan to postgres statement

    [ https://issues.apache.org/jira/browse/CALCITE-5622?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17706812#comment-17706812 ] 

Benchao Li commented on CALCITE-5622:
-------------------------------------

You mean {{DATE '2023-03-27'}} should be {{CAST('2023-03-27' AS DATE)}}?

> Cast is lost from plan to postgres statement
> --------------------------------------------
>
>                 Key: CALCITE-5622
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5622
>             Project: Calcite
>          Issue Type: Bug
>          Components: jdbc-adapter
>    Affects Versions: 1.34.0
>            Reporter: Corvin Kuebler
>            Priority: Major
>
> Hey,
> I found an issue with translation from plan to postgres sql statement.
> Adding the following Test to `JdbcAdapterTests.java` exposes the bug:
> {code:java}
> @Test void testDateCastPlan() {
> final String sql = "SELECT CAST(T1.\"brand_name\" AS DATE)\n"
> + "FROM \"foodmart\".\"product\" AS T1\n"
> + "WHERE CAST(T1.\"brand_name\" AS DATE) = CAST('2023-03-27' AS DATE)";
> CalciteAssert.model(FoodmartSchema.FOODMART_MODEL)
> .query(sql)
> .explainContains("PLAN=JdbcToEnumerableConverter\n" +
> " JdbcProject(EXPR$0=[CAST($2):DATE])\n" +
> " JdbcFilter(condition=[=(CAST($2):DATE, 2023-03-27)])\n" +
> " JdbcTableScan(table=[[foodmart, product]])\n\n")
> .runs()
> .enable(CalciteAssert.DB == DatabaseInstance.POSTGRESQL)
> .planHasSql("SELECT CAST(\"brand_name\" AS DATE)\n" +
> "FROM \"foodmart\".\"product\"\n" +
> "CAST(\"brand_name\" AS DATE)= DATE '2023-03-27'");
> }{code}
>  
> The plan contains the cast of the column to DATE type. The resulting SQL Statement however does not contain the cast. 
> The test fails in run, as the column I'm trying to cast does not contain date values but the sql that is being sent to postgres is already wrong.
>  
> I'd be happy if you could take a look at it.
>  
> Best regards,
> Corvin
>  
>  



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