public static SqlParser.Config createParserConfig(ImmutableMap<String, Object> options) { return SqlParser.configBuilder() .setQuoting((Quoting) options.get("quoting")) .setUnquotedCasing((Casing) options.get("unquotedCasing")) .setQuotedCasing((Casing) options.get("quotedCasing")) .setConformance((SqlConformance) options.get("conformance")) .setCaseSensitive((boolean) options.get("caseSensitive")) .build(); }
public static SqlParser.Config createParserConfig(ImmutableMap<String, Object> options) { return SqlParser.configBuilder() .setQuoting((Quoting) options.get("quoting")) .setUnquotedCasing((Casing) options.get("unquotedCasing")) .setQuotedCasing((Casing) options.get("quotedCasing")) .setConformance((SqlConformance) options.get("conformance")) .setCaseSensitive((boolean) options.get("caseSensitive")) .build(); }
private SqlAdvisor getSqlAdvisor() { final CalciteConnectionImpl con = (CalciteConnectionImpl) queryProvider; final String schemaName; try { schemaName = con.getSchema(); } catch (SQLException e) { throw new RuntimeException(e); } final List<String> schemaPath = schemaName == null ? ImmutableList.of() : ImmutableList.of(schemaName); final SqlValidatorWithHints validator = new SqlAdvisorValidator(SqlStdOperatorTable.instance(), new CalciteCatalogReader(rootSchema, schemaPath, typeFactory, con.config()), typeFactory, SqlConformanceEnum.DEFAULT); final CalciteConnectionConfig config = con.config(); // This duplicates org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_ final SqlParser.Config parserConfig = SqlParser.configBuilder() .setQuotedCasing(config.quotedCasing()) .setUnquotedCasing(config.unquotedCasing()) .setQuoting(config.quoting()) .setConformance(config.conformance()) .setCaseSensitive(config.caseSensitive()) .build(); return new SqlAdvisor(validator, parserConfig); }
.setQuoting(config.quoting()) .setConformance(config.conformance()) .setCaseSensitive(config.caseSensitive()); final SqlParserImplFactory parserFactory = config.parserFactory(SqlParserImplFactory.class, null);
.setQuoting(config.quoting()) .setConformance(config.conformance()) .setCaseSensitive(config.caseSensitive()); final SqlParserImplFactory parserFactory = config.parserFactory(SqlParserImplFactory.class, null);
private SqlAdvisor getSqlAdvisor() { final CalciteConnectionImpl con = (CalciteConnectionImpl) queryProvider; final String schemaName; try { schemaName = con.getSchema(); } catch (SQLException e) { throw new RuntimeException(e); } final List<String> schemaPath = schemaName == null ? ImmutableList.of() : ImmutableList.of(schemaName); final SqlValidatorWithHints validator = new SqlAdvisorValidator(SqlStdOperatorTable.instance(), new CalciteCatalogReader(rootSchema, schemaPath, typeFactory, con.config()), typeFactory, SqlConformanceEnum.DEFAULT); final CalciteConnectionConfig config = con.config(); // This duplicates org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_ final SqlParser.Config parserConfig = SqlParser.configBuilder() .setQuotedCasing(config.quotedCasing()) .setUnquotedCasing(config.unquotedCasing()) .setQuoting(config.quoting()) .setConformance(config.conformance()) .setCaseSensitive(config.caseSensitive()) .build(); return new SqlAdvisor(validator, parserConfig); }
/** Test case for * <a href="https://issues.apache.org/jira/browse/CALCITE-2039">[CALCITE-2039] * AssertionError when pushing project to ProjectableFilterableTable</a> * using UPDATE via {@link Frameworks}. */ @Test public void testUpdate() throws Exception { Table table = new TableImpl(); final SchemaPlus rootSchema = Frameworks.createRootSchema(true); SchemaPlus schema = rootSchema.add("x", new AbstractSchema()); schema.add("MYTABLE", table); List<RelTraitDef> traitDefs = new ArrayList<>(); traitDefs.add(ConventionTraitDef.INSTANCE); traitDefs.add(RelDistributionTraitDef.INSTANCE); SqlParser.Config parserConfig = SqlParser.configBuilder(SqlParser.Config.DEFAULT) .setCaseSensitive(false) .build(); final FrameworkConfig config = Frameworks.newConfigBuilder() .parserConfig(parserConfig) .defaultSchema(schema) .traitDefs(traitDefs) // define the rules you want to apply .ruleSets( RuleSets.ofList(AbstractConverter.ExpandConversionRule.INSTANCE)) .programs(Programs.ofRules(Programs.RULE_SET)) .build(); executeQuery(config, " UPDATE MYTABLE set id=7 where id=1", CalcitePrepareImpl.DEBUG); }
/** Test case for * <a href="https://issues.apache.org/jira/browse/CALCITE-2039">[CALCITE-2039] * AssertionError when pushing project to ProjectableFilterableTable</a> * using UPDATE via {@link Frameworks}. */ @Test public void testUpdate() throws Exception { Table table = new TableImpl(); final SchemaPlus rootSchema = Frameworks.createRootSchema(true); SchemaPlus schema = rootSchema.add("x", new AbstractSchema()); schema.add("MYTABLE", table); List<RelTraitDef> traitDefs = new ArrayList<>(); traitDefs.add(ConventionTraitDef.INSTANCE); traitDefs.add(RelDistributionTraitDef.INSTANCE); SqlParser.Config parserConfig = SqlParser.configBuilder(SqlParser.Config.DEFAULT) .setCaseSensitive(false) .build(); final FrameworkConfig config = Frameworks.newConfigBuilder() .parserConfig(parserConfig) .defaultSchema(schema) .traitDefs(traitDefs) // define the rules you want to apply .ruleSets( RuleSets.ofList(AbstractConverter.ExpandConversionRule.INSTANCE)) .programs(Programs.ofRules(Programs.RULE_SET)) .build(); executeQuery(config, " UPDATE MYTABLE set id=7 where id=1", CalcitePrepareImpl.DEBUG); }
private void initPlannerConfig(String jsonPath) throws IOException { final SchemaPlus rootSchema = Frameworks.createRootSchema(true); new ModelHandler(rootSchema, jsonPath); final SqlToRelConverter.Config convertConfig = SqlToRelConverter.configBuilder() .withTrimUnusedFields(false) .withConvertTableAccess(false) .withExpand(false) .build(); final SqlParser.Config parserConfig = SqlParser.configBuilder() .setConformance(SqlConformanceEnum.MYSQL_5) .setQuoting(Quoting.BACK_TICK) .setUnquotedCasing(Casing.UNCHANGED) // .setUnquotedCasing(Casing.UNCHANGED) .setCaseSensitive(true) .build(); this.config = Frameworks.newConfigBuilder() .parserConfig(parserConfig) .defaultSchema(rootSchema) .traitDefs((List<RelTraitDef>) null) .sqlToRelConverterConfig(convertConfig) .build(); }
private void initPlannerConfig(String jsonPath) throws IOException { final SchemaPlus rootSchema = Frameworks.createRootSchema(true); new ModelHandler(rootSchema, jsonPath); final SqlToRelConverter.Config convertConfig = SqlToRelConverter.configBuilder() .withTrimUnusedFields(false) .withConvertTableAccess(false) .withExpand(false) .build(); final SqlParser.Config parserConfig = SqlParser.configBuilder() .setConformance(SqlConformanceEnum.MYSQL_5) .setQuoting(Quoting.BACK_TICK) .setCaseSensitive(true) .setUnquotedCasing(Casing.UNCHANGED) .build(); this.config = Frameworks.newConfigBuilder() .parserConfig(parserConfig) .defaultSchema(rootSchema) .traitDefs((List<RelTraitDef>) null) .sqlToRelConverterConfig(convertConfig) .build(); }
public ConfigBuilder setLex(Lex lex) { setCaseSensitive(lex.caseSensitive); setUnquotedCasing(lex.unquotedCasing); setQuotedCasing(lex.quotedCasing); setQuoting(lex.quoting); return this; }
public ConfigBuilder setLex(Lex lex) { setCaseSensitive(lex.caseSensitive); setUnquotedCasing(lex.unquotedCasing); setQuotedCasing(lex.quotedCasing); setQuoting(lex.quoting); return this; }