Class PlannerFactory
java.lang.Object
org.apache.druid.sql.calcite.planner.PlannerToolbox
org.apache.druid.sql.calcite.planner.PlannerFactory
-
Field Summary
Fields inherited from class org.apache.druid.sql.calcite.planner.PlannerToolbox
authConfig, authorizerMapper, calciteRuleManager, catalog, druidSchemaName, hookDispatcher, joinableFactoryWrapper, jsonMapper, macroTable, operatorTable, plannerConfig, policyEnforcer, rootSchema -
Constructor Summary
ConstructorsConstructorDescriptionPlannerFactory(DruidSchemaCatalog rootSchema, DruidOperatorTable operatorTable, ExprMacroTable macroTable, PlannerConfig plannerConfig, AuthorizerMapper authorizerMapper, com.fasterxml.jackson.databind.ObjectMapper jsonMapper, String druidSchemaName, CalciteRulesManager calciteRuleManager, JoinableFactoryWrapper joinableFactoryWrapper, CatalogResolver catalog, AuthConfig authConfig, PolicyEnforcer policyEnforcer, DruidHookDispatcher hookDispatcher) -
Method Summary
Modifier and TypeMethodDescriptioncreatePlanner(SqlEngine engine, String sql, org.apache.calcite.sql.SqlNode sqlNode, Set<String> authContextKeys, Map<String, Object> queryContext, PlannerHook hook) Create a Druid query planner from an initial query context.Not just visible for, but only for testing.Methods inherited from class org.apache.druid.sql.calcite.planner.PlannerToolbox
calciteRuleManager, catalogResolver, druidSchemaName, exprMacroTable, getAuthConfig, getHookDispatcher, getPolicyEnforcer, joinableFactoryWrapper, jsonMapper, operatorTable, plannerConfig, rootSchema
-
Constructor Details
-
PlannerFactory
@Inject public PlannerFactory(DruidSchemaCatalog rootSchema, DruidOperatorTable operatorTable, ExprMacroTable macroTable, PlannerConfig plannerConfig, AuthorizerMapper authorizerMapper, com.fasterxml.jackson.databind.ObjectMapper jsonMapper, String druidSchemaName, CalciteRulesManager calciteRuleManager, JoinableFactoryWrapper joinableFactoryWrapper, CatalogResolver catalog, AuthConfig authConfig, PolicyEnforcer policyEnforcer, DruidHookDispatcher hookDispatcher)
-
-
Method Details
-
createPlanner
public DruidPlanner createPlanner(SqlEngine engine, String sql, org.apache.calcite.sql.SqlNode sqlNode, Set<String> authContextKeys, Map<String, Object> queryContext, PlannerHook hook) Create a Druid query planner from an initial query context. If allowSetStatementsToBuildContext is set to true, the parser is allowed to parse multi-part SQL statements where all statements in the list except the last one are SET statements, for example 'SET x = 'y'; SET foo = 123; SELECT ...', where these values will be added to theQueryContextof the final statement.- Parameters:
engine- current SQL enginesql- sql query stringsqlNode- parsed sql query, fromDruidSqlParser.parse(String, boolean). This is the main statement fromStatementAndSetContext.getMainStatement().authContextKeys- an immutable set of context keys needed for authorization checks.queryContext- query context includingStatementAndSetContext.getSetContext()hook- calcite planner hook
-
createPlannerForTesting
public DruidPlanner createPlannerForTesting(SqlEngine engine, String sql, Map<String, Object> queryContext) Not just visible for, but only for testing. Create a planner pre-loaded with an escalated authentication result and ready to go authorization result. -
getAuthorizerMapper
-