Jark Wu created FLINK-31450:
-------------------------------
Summary: Introduce ExecutableOperation for operations to execute
Key: FLINK-31450
URL: https://issues.apache.org/jira/browse/FLINK-31450
Project: Flink
Issue Type: Sub-task
Components: Table SQL / Planner
Reporter: Jark Wu
Assignee: Jark Wu
Colocating the execution logic within the Operation, just like how
RunnableCommand and V2CommandExec do in Spark. We can introduce a class like:
{code:java}
public interface ExecutableOperation {
TableResultInternal execute(Context ctx);
interface Context {
CatalogManager getCatalogManager();
FunctionCatalog getFunctionCatalog();
ResourceManager getResourceManager();
Configuration getConfiguration();
}
}
{code}
Many base interfaces can extend it (AlterOperation, CreateOperation,
DropOperation, etc.). This approach improves code readability (not spread code
across different classes) and make supporting a new statement by just adding an
Operation class instead of 3 classes (Operation class, Executor class, and the
mapping class).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)