Details
-
Sub-task
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
Description
This issue aims to introduce executeSql which can execute the given single statement, and returns the execution result.
This method only supports executing a single statement which can be DDL, DML, DQL, SHOW, DESCRIBE, EXPLAIN and USE. For DML and DQL, this method returns TableResult once the job has been submitted. For DDL and DCL statements, TableResult is returned once the operation has finished.
interface TableEnvironment { /** * Execute the given single statement and * the statement can be DDL/DML/DQL/SHOW/DESCRIBE/EXPLAIN/USE. * * If the statement is translated to a Flink job (DML/DQL), * the TableResult will be returned until the job is submitted, and * contains a JobClient instance to associate the job. * Else, the TableResult will be returned until the statement * execution is finished, does not contain a JobClient instance. * * @return result for DQL/SHOW/DESCRIBE/EXPLAIN, the affected row count * for `DML` (-1 means unknown),or a string message ("OK") for other * statements. */ TableResult executeSql(String statement); } /** * A TableResult is the representation of the statement execution result. */ interface TableResult { /** * return JobClient if a Flink job is submitted * (for DML/DQL statement), else return empty (e.g. DDL). */ Optional<JobClient> getJobClient(); /** * Get the schema of result. */ TableSchema getTableSchema(); /** * return the ResultKind which can avoid custom parsing of * an "OK" row in programming */ ResultKind getResultKind(); /** * Get the result contents as an iterable rows. */ Iterator<Row> collect(); /** * Print the result contents. */ void print(); } /** * ResultKind defines the types of the result. */ public enum ResultKind { // for DDL, DCL and statements with a simple "OK" SUCCESS, // rows with important content are available (DML, DQL) SUCCESS_WITH_CONTENT }
Attachments
Issue Links
- relates to
-
FLINK-16282 Wrong exception using DESCRIBE SQL command
- Closed
-
FLINK-17303 Return TableResult for Python TableEnvironment
- Closed
- links to