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

Julian Hyde commented on CALCITE-1772:
--------------------------------------

I'm looking into this... let's continue discussion on CALCITE-1769 since we're 
working on the test case for that issue.

> 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