gortiz commented on code in PR #13943: URL: https://github.com/apache/pinot/pull/13943#discussion_r1795369685
########## pinot-query-planner/src/main/java/org/apache/pinot/query/QueryEnvironment.java: ########## @@ -100,26 +111,58 @@ public class QueryEnvironment { private final FrameworkConfig _config; private final CalciteCatalogReader _catalogReader; private final HepProgram _optProgram; - private final HepProgram _traitProgram; - - // Pinot extensions - private final TableCache _tableCache; - private final WorkerManager _workerManager; + private final Config _envConfig; - public QueryEnvironment(String database, TableCache tableCache, @Nullable WorkerManager workerManager) { - PinotCatalog catalog = new PinotCatalog(tableCache, database); + public QueryEnvironment(Config config) { + _envConfig = config; + String database = config.getDatabase(); + PinotCatalog catalog = new PinotCatalog(config.getTableCache(), database); CalciteSchema rootSchema = CalciteSchema.createRootSchema(false, false, database, catalog); _config = Frameworks.newConfigBuilder().traitDefs().operatorTable(PinotOperatorTable.instance()) .defaultSchema(rootSchema.plus()).sqlToRelConverterConfig(PinotRuleUtils.PINOT_SQL_TO_REL_CONFIG).build(); _catalogReader = new CalciteCatalogReader(rootSchema, List.of(database), _typeFactory, CONNECTION_CONFIG); _optProgram = getOptProgram(); - _traitProgram = getTraitProgram(); - _tableCache = tableCache; - _workerManager = workerManager; } - private PlannerContext getPlannerContext() { - return new PlannerContext(_config, _catalogReader, _typeFactory, _optProgram, _traitProgram); + public QueryEnvironment(String database, TableCache tableCache, @Nullable WorkerManager workerManager) { + this(configBuilder() + .database(database) + .tableCache(tableCache) + .workerManager(workerManager) + .build()); + } + + /** + * Returns a planner context that can be used to either parse, explain or execute a query. + */ + private PlannerContext getPlannerContext(SqlNodeAndOptions sqlNodeAndOptions) { + boolean useImplicitColocated; + PinotImplicitTableHintRule.PartitionTableFinder ptf; + String useImplicitColocatedOptionValue = sqlNodeAndOptions.getOptions() Review Comment: That is not exactly the same. Specifically it doesn't fail when providing a value that is not `true` or `false` but instead assumes anything different than `true` is false. But you are right, that code is not easy to read. I've rewritten it to make it easier to read and keep the logic above. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org For additional commands, e-mail: commits-h...@pinot.apache.org