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

Julian Hyde resolved CALCITE-1772.
----------------------------------
       Resolution: Fixed
    Fix Version/s: 1.13.0

Fixed in http://git-wip-us.apache.org/repos/asf/calcite/commit/9c10c3da.

> Add a hook to allow RelNode expressions to be executed by JDBC driver
> ---------------------------------------------------------------------
>
>                 Key: CALCITE-1772
>                 URL: https://issues.apache.org/jira/browse/CALCITE-1772
>             Project: Calcite
>          Issue Type: Bug
>            Reporter: Julian Hyde
>            Assignee: Julian Hyde
>             Fix For: 1.13.0
>
>
> Add a hook to allow RelNode expressions to be executed by JDBC driver in the 
> same way that SQL would.
> If you set Hook.STRING_TO_QUERY you can provide a function that creates a 
> [CalcitePrepare.Query|https://calcite.apache.org/apidocs/org/apache/calcite/jdbc/CalcitePrepare.Query.html]
>  object; this can wrap a String (SQL query), RelNode tree or Queryable.
> In tests, you can call convenience method {{AssertQuery.withRel}}, whose 
> implementation sets the hook. For example,
> {code}
>     sql("?")
>         .withRel(new Function<RelBuilder, RelNode>() {
>           public RelNode apply(RelBuilder b) {
>             // select count(*) as c
>             // from foodmart.foodmart
>             // where product_id < cast(10 as varchar)
>             return b.scan("foodmart", "foodmart")
>                 .filter(
>                     b.call(SqlStdOperatorTable.LESS_THAN,
>                         b.field("product_id"),
>                         b.getRexBuilder().makeCall(
>                             
> b.getTypeFactory().createSqlType(SqlTypeName.INTEGER),
>                             SqlStdOperatorTable.CAST,
>                             ImmutableList.<RexNode>of(b.literal("10")))))
>                 .aggregate(b.groupKey(), b.countStar("c"))
>                 .build();
>           }
>         })
>     .returns("c=45");
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to