/** Parses and validates a SQL query and converts to relational algebra. For * use within Calcite only. */ public static CalcitePrepare.ConvertResult convert( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String sql) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final ImmutableMap<CalciteConnectionProperty, String> propValues = ImmutableMap.of(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, null, propValues); CalcitePrepare.Dummy.push(context); try { return prepare.convert(context, sql); } finally { CalcitePrepare.Dummy.pop(context); } }
/** * Creates a context for the purposes of preparing a statement. * * @param connection Connection * @param schema Schema * @param schemaPath Path wherein to look for functions * @param objectPath Path of the object being analyzed (usually a view), * or null * @param propValues Connection properties * @return Context */ private static CalcitePrepare.Context makeContext( CalciteConnection connection, CalciteSchema schema, List<String> schemaPath, List<String> objectPath, final ImmutableMap<CalciteConnectionProperty, String> propValues) { if (connection == null) { final CalcitePrepare.Context context0 = CalcitePrepare.Dummy.peek(); final CalciteConnectionConfig config = mutate(context0.config(), propValues); return makeContext(config, context0.getTypeFactory(), context0.getDataContext(), schema, schemaPath, objectPath); } else { final CalciteConnectionConfig config = mutate(connection.config(), propValues); return makeContext(config, connection.getTypeFactory(), createDataContext(connection, schema.root().plus()), schema, schemaPath, objectPath); } }
/** * Creates a context for the purposes of preparing a statement. * * @param connection Connection * @param schema Schema * @param schemaPath Path wherein to look for functions * @param objectPath Path of the object being analyzed (usually a view), * or null * @param propValues Connection properties * @return Context */ private static CalcitePrepare.Context makeContext( CalciteConnection connection, CalciteSchema schema, List<String> schemaPath, List<String> objectPath, final ImmutableMap<CalciteConnectionProperty, String> propValues) { if (connection == null) { final CalcitePrepare.Context context0 = CalcitePrepare.Dummy.peek(); final CalciteConnectionConfig config = mutate(context0.config(), propValues); return makeContext(config, context0.getTypeFactory(), context0.getDataContext(), schema, schemaPath, objectPath); } else { final CalciteConnectionConfig config = mutate(connection.config(), propValues); return makeContext(config, connection.getTypeFactory(), createDataContext(connection, schema.root().plus()), schema, schemaPath, objectPath); } }
/** Analyzes a view. For use within Calcite only. */ public static CalcitePrepare.AnalyzeViewResult analyzeView( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String viewSql, List<String> viewPath, boolean fail) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final ImmutableMap<CalciteConnectionProperty, String> propValues = ImmutableMap.of(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, viewPath, propValues); CalcitePrepare.Dummy.push(context); try { return prepare.analyzeView(context, viewSql, fail); } finally { CalcitePrepare.Dummy.pop(context); } }
/** Parses and validates a SQL query. For use within Calcite only. */ public static CalcitePrepare.ParseResult parse( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String sql) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final ImmutableMap<CalciteConnectionProperty, String> propValues = ImmutableMap.of(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, null, propValues); CalcitePrepare.Dummy.push(context); try { return prepare.parse(context, sql); } finally { CalcitePrepare.Dummy.pop(context); } }
/** Parses and validates a SQL query and converts to relational algebra. For * use within Calcite only. */ public static CalcitePrepare.ConvertResult convert( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String sql) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final ImmutableMap<CalciteConnectionProperty, String> propValues = ImmutableMap.of(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, null, propValues); CalcitePrepare.Dummy.push(context); try { return prepare.convert(context, sql); } finally { CalcitePrepare.Dummy.pop(context); } }
/** Parses and validates a SQL query. For use within Calcite only. */ public static CalcitePrepare.ParseResult parse( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String sql) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final ImmutableMap<CalciteConnectionProperty, String> propValues = ImmutableMap.of(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, null, propValues); CalcitePrepare.Dummy.push(context); try { return prepare.parse(context, sql); } 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); } }
/** 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); } }
/** Analyzes a view. For use within Calcite only. */ public static CalcitePrepare.AnalyzeViewResult analyzeView( final CalciteConnection connection, final CalciteSchema schema, final List<String> schemaPath, final String viewSql, List<String> viewPath, boolean fail) { final CalcitePrepare prepare = CalcitePrepare.DEFAULT_FACTORY.apply(); final ImmutableMap<CalciteConnectionProperty, String> propValues = ImmutableMap.of(); final CalcitePrepare.Context context = makeContext(connection, schema, schemaPath, viewPath, propValues); CalcitePrepare.Dummy.push(context); try { return prepare.analyzeView(context, viewSql, fail); } finally { CalcitePrepare.Dummy.pop(context); } }
@Override public CalcitePrepare.SparkHandler spark() { return CalcitePrepare.Dummy.getSparkHandler(false); }
public CalcitePrepare.SparkHandler spark() { final boolean enable = config().spark(); return CalcitePrepare.Dummy.getSparkHandler(enable); } }
/** Returns a spark handler. Returns a trivial handler, for which * {@link SparkHandler#enabled()} returns {@code false}, if {@code enable} * is {@code false} or if Spark is not on the class path. Never returns * null. */ public static synchronized SparkHandler getSparkHandler(boolean enable) { if (sparkHandler == null) { sparkHandler = enable ? createHandler() : new TrivialSparkHandler(); } return sparkHandler; }
<T> CalcitePrepare.CalciteSignature<T> parseQuery( CalcitePrepare.Query<T> query, CalcitePrepare.Context prepareContext, long maxRowCount) { CalcitePrepare.Dummy.push(prepareContext); try { final CalcitePrepare prepare = prepareFactory.apply(); return prepare.prepareSql(prepareContext, query, Object[].class, maxRowCount); } finally { CalcitePrepare.Dummy.pop(prepareContext); } }
<T> CalcitePrepare.CalciteSignature<T> parseQuery( CalcitePrepare.Query<T> query, CalcitePrepare.Context prepareContext, long maxRowCount) { CalcitePrepare.Dummy.push(prepareContext); try { final CalcitePrepare prepare = prepareFactory.apply(); return prepare.prepareSql(prepareContext, query, Object[].class, maxRowCount); } finally { CalcitePrepare.Dummy.pop(prepareContext); } }
public CalcitePrepare.SparkHandler spark() { final boolean enable = config().spark(); return CalcitePrepare.Dummy.getSparkHandler(enable); } }
public CalcitePrepare.SparkHandler spark() { final boolean enable = config().spark(); return CalcitePrepare.Dummy.getSparkHandler(enable); } };
public CalcitePrepare.SparkHandler spark() { final boolean enable = config().spark(); return CalcitePrepare.Dummy.getSparkHandler(enable); } };
/** Returns a spark handler. Returns a trivial handler, for which * {@link SparkHandler#enabled()} returns {@code false}, if {@code enable} * is {@code false} or if Spark is not on the class path. Never returns * null. */ public static synchronized SparkHandler getSparkHandler(boolean enable) { if (sparkHandler == null) { sparkHandler = enable ? createHandler() : new TrivialSparkHandler(); } return sparkHandler; }