[ https://issues.apache.org/jira/browse/FLINK-16366?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kurt Young closed FLINK-16366. ------------------------------ Resolution: Fixed master: e0d2db7e2015aad73a1eda092a600cf92c78bb43 > Introduce executeSql method in TableEnvironment > ----------------------------------------------- > > Key: FLINK-16366 > URL: https://issues.apache.org/jira/browse/FLINK-16366 > Project: Flink > Issue Type: Sub-task > Components: Table SQL / API > Reporter: godfrey he > Assignee: godfrey he > Priority: Major > Labels: pull-request-available > Fix For: 1.11.0 > > Time Spent: 20m > Remaining Estimate: 0h > > 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. > {code:java} > 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 > } > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)