[ 
https://issues.apache.org/jira/browse/CALCITE-3423?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wang Yanlin updated CALCITE-3423:
---------------------------------
    Description: 
Currently, using bool type or cast operation in table macro, got exception.

Add the code snippet below in *JdbcTest* to reproduce.
 
{code:java}
// check for cast
    resultSet = connection.createStatement().executeQuery(
        "select * from table(\"s\".\"Str\"(MAP['a', 1, 'baz', 2], cast(1 as 
bigint))) as t(n)");
    assertThat(CalciteAssert.toString(resultSet),
        equalTo("N={'a'=1, 'baz'=2}\n"
            + "N=1               \n"));
    // check for bool type
    resultSet = connection.createStatement().executeQuery(
        "select * from table(\"s\".\"Str\"(MAP['a', 1, 'baz', 2], true)) as 
t(n)");
    assertThat(CalciteAssert.toString(resultSet),
        equalTo("N={'a'=1, 'baz'=2}\n"
            + "N=true            \n"));
    // check for nested cast
    resultSet = connection.createStatement().executeQuery(
        "select * from table(\"s\".\"Str\"(MAP['a', 1, 'baz', 2],"
            + "cast(cast(1 as int) as varchar(1)))) as t(n)");
    assertThat(CalciteAssert.toString(resultSet),
        equalTo("N={'a'=1, 'baz'=2}\n"
            + "N=1               \n"));
{code}

  was:
Currently, using bool type or cast operation in table macro, got exception.

Add the code snippet in *JdbcTest* to reproduce.
 
{code:java}
// check for cast
    resultSet = connection.createStatement().executeQuery(
        "select * from table(\"s\".\"Str\"(MAP['a', 1, 'baz', 2], cast(1 as 
bigint))) as t(n)");
    assertThat(CalciteAssert.toString(resultSet),
        equalTo("N={'a'=1, 'baz'=2}\n"
            + "N=1               \n"));
    // check for bool type
    resultSet = connection.createStatement().executeQuery(
        "select * from table(\"s\".\"Str\"(MAP['a', 1, 'baz', 2], true)) as 
t(n)");
    assertThat(CalciteAssert.toString(resultSet),
        equalTo("N={'a'=1, 'baz'=2}\n"
            + "N=true            \n"));
    // check for nested cast
    resultSet = connection.createStatement().executeQuery(
        "select * from table(\"s\".\"Str\"(MAP['a', 1, 'baz', 2],"
            + "cast(cast(1 as int) as varchar(1)))) as t(n)");
    assertThat(CalciteAssert.toString(resultSet),
        equalTo("N={'a'=1, 'baz'=2}\n"
            + "N=1               \n"));
{code}


> Support using CAST operation and bool type value in table macro
> ---------------------------------------------------------------
>
>                 Key: CALCITE-3423
>                 URL: https://issues.apache.org/jira/browse/CALCITE-3423
>             Project: Calcite
>          Issue Type: New Feature
>            Reporter: Wang Yanlin
>            Priority: Major
>
> Currently, using bool type or cast operation in table macro, got exception.
> Add the code snippet below in *JdbcTest* to reproduce.
>  
> {code:java}
> // check for cast
>     resultSet = connection.createStatement().executeQuery(
>         "select * from table(\"s\".\"Str\"(MAP['a', 1, 'baz', 2], cast(1 as 
> bigint))) as t(n)");
>     assertThat(CalciteAssert.toString(resultSet),
>         equalTo("N={'a'=1, 'baz'=2}\n"
>             + "N=1               \n"));
>     // check for bool type
>     resultSet = connection.createStatement().executeQuery(
>         "select * from table(\"s\".\"Str\"(MAP['a', 1, 'baz', 2], true)) as 
> t(n)");
>     assertThat(CalciteAssert.toString(resultSet),
>         equalTo("N={'a'=1, 'baz'=2}\n"
>             + "N=true            \n"));
>     // check for nested cast
>     resultSet = connection.createStatement().executeQuery(
>         "select * from table(\"s\".\"Str\"(MAP['a', 1, 'baz', 2],"
>             + "cast(cast(1 as int) as varchar(1)))) as t(n)");
>     assertThat(CalciteAssert.toString(resultSet),
>         equalTo("N={'a'=1, 'baz'=2}\n"
>             + "N=1               \n"));
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to