public SqlConverter(QueryContext context) { this.settings = context.getPlannerSettings(); this.util = context; this.functions = context.getFunctionRegistry(); this.parserConfig = new DrillParserConfig(settings); this.sqlToRelConverterConfig = new SqlToRelConverterConfig(); this.isInnerQuery = false; this.typeFactory = new JavaTypeFactoryImpl(DRILL_TYPE_SYSTEM); this.defaultSchema = context.getNewDefaultSchema(); this.rootSchema = rootSchema(defaultSchema); this.temporarySchema = context.getConfig().getString(ExecConstants.DEFAULT_TEMPORARY_WORKSPACE); this.session = context.getSession(); this.drillConfig = context.getConfig(); this.catalog = new DrillCalciteCatalogReader( rootSchema, parserConfig.caseSensitive(), DynamicSchema.from(defaultSchema).path(null), typeFactory, drillConfig, session); this.opTab = new ChainedSqlOperatorTable(Arrays.asList(context.getDrillOperatorTable(), catalog)); this.costFactory = (settings.useDefaultCosting()) ? null : new DrillCostBase.DrillCostFactory(); this.validator = new DrillValidator(opTab, catalog, typeFactory, parserConfig.conformance()); validator.setIdentifierExpansion(true); cluster = null; }
private SqlConverter(SqlConverter parent, SchemaPlus defaultSchema, SchemaPlus rootSchema, DrillCalciteCatalogReader catalog) { this.parserConfig = parent.parserConfig; this.sqlToRelConverterConfig = parent.sqlToRelConverterConfig; this.defaultSchema = defaultSchema; this.functions = parent.functions; this.util = parent.util; this.isInnerQuery = true; this.typeFactory = parent.typeFactory; this.costFactory = parent.costFactory; this.settings = parent.settings; this.rootSchema = rootSchema; this.catalog = catalog; this.opTab = parent.opTab; this.planner = parent.planner; this.validator = new DrillValidator(opTab, catalog, typeFactory, parserConfig.conformance()); this.temporarySchema = parent.temporarySchema; this.session = parent.session; this.drillConfig = parent.drillConfig; validator.setIdentifierExpansion(true); this.cluster = parent.cluster; }
private SqlParser(String s, SqlAbstractParserImpl parser, Config config) { this.originalInput = s; this.parser = parser; parser.setOriginalSql(s); parser.setTabSize(1); parser.setQuotedCasing(config.quotedCasing()); parser.setUnquotedCasing(config.unquotedCasing()); parser.setIdentifierMaxLength(config.identifierMaxLength()); parser.setConformance(config.conformance()); switch (config.quoting()) { case DOUBLE_QUOTE: parser.switchTo("DQID"); break; case BACK_TICK: parser.switchTo("BTID"); break; case BRACKET: parser.switchTo("DEFAULT"); break; } }
private SqlParser(SqlAbstractParserImpl parser, Config config) { this.parser = parser; parser.setTabSize(1); parser.setQuotedCasing(config.quotedCasing()); parser.setUnquotedCasing(config.unquotedCasing()); parser.setIdentifierMaxLength(config.identifierMaxLength()); parser.setConformance(config.conformance()); switch (config.quoting()) { case DOUBLE_QUOTE: parser.switchTo("DQID"); break; case BACK_TICK: parser.switchTo("BTID"); break; case BRACKET: parser.switchTo("DEFAULT"); break; } }
/** Sets configuration identical to a given {@link Config}. */ public ConfigBuilder setConfig(Config config) { this.quotedCasing = config.quotedCasing(); this.unquotedCasing = config.unquotedCasing(); this.quoting = config.quoting(); this.identifierMaxLength = config.identifierMaxLength(); this.conformance = config.conformance(); this.parserFactory = config.parserFactory(); return this; }
private SqlConformance conformance() { final Context context = config.getContext(); if (context != null) { final CalciteConnectionConfig connectionConfig = context.unwrap(CalciteConnectionConfig.class); if (connectionConfig != null) { return connectionConfig.conformance(); } } return config.getParserConfig().conformance(); }
/** Sets configuration identical to a given {@link Config}. */ public ConfigBuilder setConfig(Config config) { this.quotedCasing = config.quotedCasing(); this.unquotedCasing = config.unquotedCasing(); this.quoting = config.quoting(); this.identifierMaxLength = config.identifierMaxLength(); this.conformance = config.conformance(); this.parserFactory = config.parserFactory(); return this; }