RequestHandler¶
Creating Instance¶
RequestHandler
takes the following to be created:
- CustomExecutors
- DistributingExecutor
- KsqlEngine
-
CommandQueueSync
RequestHandler
is created when:
KsqlResource
is requested to configure
KsqlEngine¶
RequestHandler
is given a KsqlEngine when created.
The KsqlEngine
is used for executing SQL Statements (to execute a Statement and isVariableSubstitutionEnabled).
DistributingExecutor¶
RequestHandler
is given a DistributingExecutor when created.
The DistributingExecutor
is used for executing KSQL statements.
Executing KSQL Statements¶
KsqlEntityList execute(
KsqlSecurityContext securityContext,
List<ParsedStatement> statements,
SessionProperties sessionProperties)
For every SQL statement (in the given statements
), execute
requests the KsqlEngine to prepare it for execution (possibly with variable substitution) and then executes it.
execute
is used when:
KsqlResource
is requested to handle a REST request to execute SQL statements and terminate the cluster
Executing KSQL Statement¶
<T extends Statement> Optional<KsqlEntity> executeStatement(
KsqlSecurityContext securityContext,
PreparedStatement<T> prepared,
SessionProperties sessionProperties,
KsqlEntityList entities)
executeStatement
requests the given PreparedStatement
for the Statement and its Java class that is used to request the CommandQueueSync to waitFor
.
executeStatement
creates a ConfiguredStatement
for the given PreparedStatement
(with a new SessionConfig
).
executeStatement
looks up the StatementExecutor for the Statement
class in the CustomExecutors registry (or defaults to the DistributingExecutor to execute the statement).
executeStatement
requests the StatementExecutor
to execute the statement.
Unless handled, executeStatement
requests the DistributingExecutor to execute the statement.
isVariableSubstitutionEnabled¶
boolean isVariableSubstitutionEnabled(
SessionProperties sessionProperties)
isVariableSubstitutionEnabled
is positive (true
) when ksql.variable.substitution.enable is true
in the given SessionProperties
or the KsqlConfig (of the KsqlEngine).