[
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)