/** 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); } }
/** 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. 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); } }
/** 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 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); } }
/** 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); } }
/** * 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); } }