@Override public <T> T unwrap(Class<T> iface) throws SQLException { if (iface == RelRunner.class) { return iface.cast((RelRunner) rel -> { try { return prepareStatement_(CalcitePrepare.Query.of(rel), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, getHoldability()); } catch (SQLException e) { throw new RuntimeException(e); } }); } return super.unwrap(iface); }
/** Wraps the SQL string in a * {@link org.apache.calcite.jdbc.CalcitePrepare.Query} object, giving the * {@link Hook#STRING_TO_QUERY} hook chance to override. */ private CalcitePrepare.Query<Object> toQuery( Context context, String sql) { final Holder<CalcitePrepare.Query<Object>> queryHolder = Holder.of(CalcitePrepare.Query.of(sql)); final FrameworkConfig config = Frameworks.newConfigBuilder() .parserConfig(SqlParser.Config.DEFAULT) .defaultSchema(context.getRootSchema().plus()) .build(); Hook.STRING_TO_QUERY.run(Pair.of(config, queryHolder)); return queryHolder.get(); }
public static <T> Query<T> of(String sql) { return new Query<>(sql, null, null); }
/** Wraps the SQL string in a * {@link org.apache.calcite.jdbc.CalcitePrepare.Query} object, giving the * {@link Hook#STRING_TO_QUERY} hook chance to override. */ private CalcitePrepare.Query<Object> toQuery( Context context, String sql) { final Holder<CalcitePrepare.Query<Object>> queryHolder = Holder.of(CalcitePrepare.Query.of(sql)); final FrameworkConfig config = Frameworks.newConfigBuilder() .parserConfig(SqlParser.Config.DEFAULT) .defaultSchema(context.getRootSchema().plus()) .build(); Hook.STRING_TO_QUERY.run(Pair.of(config, queryHolder)); return queryHolder.get(); }
/** Prepares a SQL query for execution. For use within Calcite only. */ public static CalcitePrepare.CalciteSignature<Object> prepare( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String sql, final ImmutableMap<CalciteConnectionProperty, String> map) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, null, map); CalcitePrepare.Dummy.push(context); try { return prepare.prepareSql(context, CalcitePrepare.Query.of(sql), Object[].class, -1); } finally { CalcitePrepare.Dummy.pop(context); } }
/** Prepares a SQL query for execution. For use within Calcite only. */ public static CalcitePrepare.CalciteSignature<Object> prepare( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String sql, final ImmutableMap<CalciteConnectionProperty, String> map) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, null, map); CalcitePrepare.Dummy.push(context); try { return prepare.prepareSql(context, CalcitePrepare.Query.of(sql), Object[].class, -1); } finally { CalcitePrepare.Dummy.pop(context); } }
public static <T> Query<T> of(RelNode rel) { return new Query<>(null, null, rel); } }
public static <T> Query<T> of(String sql) { return new Query<>(sql, null, null); }
public static <T> Query<T> of(Queryable<T> queryable) { return new Query<>(null, queryable, null); }
public static <T> Query<T> of(Queryable<T> queryable) { return new Query<>(null, queryable, null); }
@Override public CalcitePreparedStatement prepareStatement( String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException { final CalcitePrepare.Query<Object> query = CalcitePrepare.Query.of(sql); return prepareStatement_(query, resultSetType, resultSetConcurrency, resultSetHoldability); }
/** Adds a factory to create a {@link RelNode} query. This {@code RelNode} * will be used instead of the SQL string. */ public AssertQuery withRel(final Function<RelBuilder, RelNode> relFn) { return withHook(Hook.STRING_TO_QUERY, (Consumer<Pair<FrameworkConfig, Holder<CalcitePrepare.Query>>>) pair -> { final RelBuilder b = RelBuilder.create(pair.left); pair.right.set(CalcitePrepare.Query.of(relFn.apply(b))); }); } }
@Override public <T> T unwrap(Class<T> iface) throws SQLException { if (iface == RelRunner.class) { return iface.cast((RelRunner) rel -> { try { return prepareStatement_(CalcitePrepare.Query.of(rel), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, getHoldability()); } catch (SQLException e) { throw new RuntimeException(e); } }); } return super.unwrap(iface); }
public static <T> Query<T> of(RelNode rel) { return new Query<>(null, null, rel); } }
public <T> CalciteSignature<T> prepareQueryable( Context context, Queryable<T> queryable) { return prepare_(context, Query.of(queryable), queryable.getElementType(), -1); }
public <T> CalciteSignature<T> prepareQueryable( Context context, Queryable<T> queryable) { return prepare_(context, Query.of(queryable), queryable.getElementType(), -1); }
public <T> CalciteSignature<T> prepareQueryable( Context context, Queryable<T> queryable) { return prepare_(context, Query.of(queryable), queryable.getElementType(), -1); }
@Override public CalcitePreparedStatement prepareStatement( String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException { final CalcitePrepare.Query<Object> query = CalcitePrepare.Query.of(sql); return prepareStatement_(query, resultSetType, resultSetConcurrency, resultSetHoldability); }
/** Adds a factory to create a {@link RelNode} query. This {@code RelNode} * will be used instead of the SQL string. */ public AssertQuery withRel(final Function<RelBuilder, RelNode> relFn) { return withHook(Hook.STRING_TO_QUERY, (Consumer<Pair<FrameworkConfig, Holder<CalcitePrepare.Query>>>) pair -> { final RelBuilder b = RelBuilder.create(pair.left); pair.right.set(CalcitePrepare.Query.of(relFn.apply(b))); }); } }