This is an automated email from the ASF dual-hosted git repository.
shengkai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push:
new 129da74af5c [FLINK-36756][sql-gateway] Bump up the sql gateway rest
version (#25705)
129da74af5c is described below
commit 129da74af5cc934551ca66c353254a5fba5091d1
Author: Shengkai <[email protected]>
AuthorDate: Tue Dec 3 13:49:20 2024 +0800
[FLINK-36756][sql-gateway] Bump up the sql gateway rest version (#25705)
---
.../header/session/ConfigureSessionHeaders.java | 7 +-
.../header/statement/CompleteStatementHeaders.java | 3 +-
.../rest/util/SqlGatewayRestAPIVersion.java | 14 +-
.../resources/sql_gateway_rest_api_v4.snapshot | 385 +++++++++++++++++++++
4 files changed, 403 insertions(+), 6 deletions(-)
diff --git
a/flink-table/flink-sql-gateway/src/main/java/org/apache/flink/table/gateway/rest/header/session/ConfigureSessionHeaders.java
b/flink-table/flink-sql-gateway/src/main/java/org/apache/flink/table/gateway/rest/header/session/ConfigureSessionHeaders.java
index a5885a54943..5f91230eaa3 100644
---
a/flink-table/flink-sql-gateway/src/main/java/org/apache/flink/table/gateway/rest/header/session/ConfigureSessionHeaders.java
+++
b/flink-table/flink-sql-gateway/src/main/java/org/apache/flink/table/gateway/rest/header/session/ConfigureSessionHeaders.java
@@ -25,13 +25,14 @@ import
org.apache.flink.table.gateway.rest.header.SqlGatewayMessageHeaders;
import
org.apache.flink.table.gateway.rest.message.session.ConfigureSessionRequestBody;
import
org.apache.flink.table.gateway.rest.message.session.SessionHandleIdPathParameter;
import
org.apache.flink.table.gateway.rest.message.session.SessionMessageParameters;
-import org.apache.flink.table.gateway.rest.util.SqlGatewayRestAPIVersion;
import
org.apache.flink.shaded.netty4.io.netty.handler.codec.http.HttpResponseStatus;
-import java.util.Arrays;
import java.util.Collection;
+import static
org.apache.flink.table.gateway.rest.util.SqlGatewayRestAPIVersion.V1;
+import static
org.apache.flink.table.gateway.rest.util.SqlGatewayRestAPIVersion.getHigherVersions;
+
/** Message headers for configuring a session. */
public class ConfigureSessionHeaders
implements SqlGatewayMessageHeaders<
@@ -87,7 +88,7 @@ public class ConfigureSessionHeaders
@Override
public Collection<? extends RestAPIVersion<?>> getSupportedAPIVersions() {
- return Arrays.asList(SqlGatewayRestAPIVersion.V2,
SqlGatewayRestAPIVersion.V3);
+ return getHigherVersions(V1);
}
public static ConfigureSessionHeaders getInstance() {
diff --git
a/flink-table/flink-sql-gateway/src/main/java/org/apache/flink/table/gateway/rest/header/statement/CompleteStatementHeaders.java
b/flink-table/flink-sql-gateway/src/main/java/org/apache/flink/table/gateway/rest/header/statement/CompleteStatementHeaders.java
index 466b8f27209..09c68ce9930 100644
---
a/flink-table/flink-sql-gateway/src/main/java/org/apache/flink/table/gateway/rest/header/statement/CompleteStatementHeaders.java
+++
b/flink-table/flink-sql-gateway/src/main/java/org/apache/flink/table/gateway/rest/header/statement/CompleteStatementHeaders.java
@@ -29,7 +29,6 @@ import
org.apache.flink.table.gateway.rest.util.SqlGatewayRestAPIVersion;
import
org.apache.flink.shaded.netty4.io.netty.handler.codec.http.HttpResponseStatus;
-import java.util.Arrays;
import java.util.Collection;
/** Message headers for completing a statement. */
@@ -81,7 +80,7 @@ public class CompleteStatementHeaders
@Override
public Collection<? extends RestAPIVersion<?>> getSupportedAPIVersions() {
- return Arrays.asList(SqlGatewayRestAPIVersion.V2,
SqlGatewayRestAPIVersion.V3);
+ return
SqlGatewayRestAPIVersion.getHigherVersions(SqlGatewayRestAPIVersion.V1);
}
public static CompleteStatementHeaders getInstance() {
diff --git
a/flink-table/flink-sql-gateway/src/main/java/org/apache/flink/table/gateway/rest/util/SqlGatewayRestAPIVersion.java
b/flink-table/flink-sql-gateway/src/main/java/org/apache/flink/table/gateway/rest/util/SqlGatewayRestAPIVersion.java
index 3c5e3165422..2f721a048e4 100644
---
a/flink-table/flink-sql-gateway/src/main/java/org/apache/flink/table/gateway/rest/util/SqlGatewayRestAPIVersion.java
+++
b/flink-table/flink-sql-gateway/src/main/java/org/apache/flink/table/gateway/rest/util/SqlGatewayRestAPIVersion.java
@@ -51,7 +51,10 @@ public enum SqlGatewayRestAPIVersion
V2(false, true),
// V3 introduces materialized table related APIs
- V3(true, true);
+ V3(false, true),
+
+ // V4 supports to deploy script to application cluster
+ V4(true, true);
private final boolean isDefaultVersion;
@@ -139,4 +142,13 @@ public enum SqlGatewayRestAPIVersion
return versions.get(0);
}
+
+ /** Get higher versions comparing to the input version. */
+ public static List<SqlGatewayRestAPIVersion> getHigherVersions(
+ SqlGatewayRestAPIVersion version) {
+ return Arrays.stream(SqlGatewayRestAPIVersion.values())
+ .filter(SqlGatewayRestAPIVersion::isStableVersion)
+ .filter(v -> v.compareTo(version) > 0)
+ .collect(Collectors.toList());
+ }
}
diff --git
a/flink-table/flink-sql-gateway/src/test/resources/sql_gateway_rest_api_v4.snapshot
b/flink-table/flink-sql-gateway/src/test/resources/sql_gateway_rest_api_v4.snapshot
new file mode 100644
index 00000000000..f4d14c6089f
--- /dev/null
+++
b/flink-table/flink-sql-gateway/src/test/resources/sql_gateway_rest_api_v4.snapshot
@@ -0,0 +1,385 @@
+{
+ "calls" : [ {
+ "url" : "/api_versions",
+ "method" : "GET",
+ "status-code" : "200 OK",
+ "file-upload" : false,
+ "path-parameters" : {
+ "pathParameters" : [ ]
+ },
+ "query-parameters" : {
+ "queryParameters" : [ ]
+ },
+ "request" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:runtime:rest:messages:EmptyRequestBody"
+ },
+ "response" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:table:gateway:rest:message:util:GetApiVersionResponseBody",
+ "properties" : {
+ "versions" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ }, {
+ "url" : "/info",
+ "method" : "GET",
+ "status-code" : "200 OK",
+ "file-upload" : false,
+ "path-parameters" : {
+ "pathParameters" : [ ]
+ },
+ "query-parameters" : {
+ "queryParameters" : [ ]
+ },
+ "request" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:runtime:rest:messages:EmptyRequestBody"
+ },
+ "response" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:table:gateway:rest:message:util:GetInfoResponseBody",
+ "properties" : {
+ "productName" : {
+ "type" : "string"
+ },
+ "version" : {
+ "type" : "string"
+ }
+ }
+ }
+ }, {
+ "url" : "/sessions",
+ "method" : "POST",
+ "status-code" : "200 OK",
+ "file-upload" : false,
+ "path-parameters" : {
+ "pathParameters" : [ ]
+ },
+ "query-parameters" : {
+ "queryParameters" : [ ]
+ },
+ "request" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:table:gateway:rest:message:session:OpenSessionRequestBody",
+ "properties" : {
+ "sessionName" : {
+ "type" : "string"
+ },
+ "properties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "response" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:table:gateway:rest:message:session:OpenSessionResponseBody",
+ "properties" : {
+ "sessionHandle" : {
+ "type" : "string"
+ }
+ }
+ }
+ }, {
+ "url" : "/sessions/:session_handle",
+ "method" : "DELETE",
+ "status-code" : "200 OK",
+ "file-upload" : false,
+ "path-parameters" : {
+ "pathParameters" : [ {
+ "key" : "session_handle"
+ } ]
+ },
+ "query-parameters" : {
+ "queryParameters" : [ ]
+ },
+ "request" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:runtime:rest:messages:EmptyRequestBody"
+ },
+ "response" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:table:gateway:rest:message:session:CloseSessionResponseBody",
+ "properties" : {
+ "status" : {
+ "type" : "string"
+ }
+ }
+ }
+ }, {
+ "url" : "/sessions/:session_handle",
+ "method" : "GET",
+ "status-code" : "200 OK",
+ "file-upload" : false,
+ "path-parameters" : {
+ "pathParameters" : [ {
+ "key" : "session_handle"
+ } ]
+ },
+ "query-parameters" : {
+ "queryParameters" : [ ]
+ },
+ "request" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:runtime:rest:messages:EmptyRequestBody"
+ },
+ "response" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:table:gateway:rest:message:session:GetSessionConfigResponseBody",
+ "properties" : {
+ "properties" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ }, {
+ "url" : "/sessions/:session_handle/complete-statement",
+ "method" : "GET",
+ "status-code" : "200 OK",
+ "file-upload" : false,
+ "path-parameters" : {
+ "pathParameters" : [ {
+ "key" : "session_handle"
+ } ]
+ },
+ "query-parameters" : {
+ "queryParameters" : [ ]
+ },
+ "request" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:table:gateway:rest:message:statement:CompleteStatementRequestBody",
+ "properties" : {
+ "statement" : {
+ "type" : "string"
+ },
+ "position" : {
+ "type" : "integer"
+ }
+ }
+ },
+ "response" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:table:gateway:rest:message:statement:CompleteStatementResponseBody",
+ "properties" : {
+ "candidates" : {
+ "type" : "array",
+ "items" : {
+ "type" : "string"
+ }
+ }
+ }
+ }
+ }, {
+ "url" : "/sessions/:session_handle/configure-session",
+ "method" : "POST",
+ "status-code" : "200 OK",
+ "file-upload" : false,
+ "path-parameters" : {
+ "pathParameters" : [ {
+ "key" : "session_handle"
+ } ]
+ },
+ "query-parameters" : {
+ "queryParameters" : [ ]
+ },
+ "request" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:table:gateway:rest:message:session:ConfigureSessionRequestBody",
+ "properties" : {
+ "statement" : {
+ "type" : "string"
+ },
+ "executionTimeout" : {
+ "type" : "integer"
+ }
+ }
+ },
+ "response" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:runtime:rest:messages:EmptyResponseBody"
+ }
+ }, {
+ "url" : "/sessions/:session_handle/heartbeat",
+ "method" : "POST",
+ "status-code" : "200 OK",
+ "file-upload" : false,
+ "path-parameters" : {
+ "pathParameters" : [ {
+ "key" : "session_handle"
+ } ]
+ },
+ "query-parameters" : {
+ "queryParameters" : [ ]
+ },
+ "request" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:runtime:rest:messages:EmptyRequestBody"
+ },
+ "response" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:runtime:rest:messages:EmptyResponseBody"
+ }
+ }, {
+ "url" : "/sessions/:session_handle/operations/:operation_handle/cancel",
+ "method" : "POST",
+ "status-code" : "200 OK",
+ "file-upload" : false,
+ "path-parameters" : {
+ "pathParameters" : [ {
+ "key" : "session_handle"
+ }, {
+ "key" : "operation_handle"
+ } ]
+ },
+ "query-parameters" : {
+ "queryParameters" : [ ]
+ },
+ "request" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:runtime:rest:messages:EmptyRequestBody"
+ },
+ "response" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:table:gateway:rest:message:operation:OperationStatusResponseBody",
+ "properties" : {
+ "status" : {
+ "type" : "string"
+ }
+ }
+ }
+ }, {
+ "url" : "/sessions/:session_handle/operations/:operation_handle/close",
+ "method" : "DELETE",
+ "status-code" : "200 OK",
+ "file-upload" : false,
+ "path-parameters" : {
+ "pathParameters" : [ {
+ "key" : "session_handle"
+ }, {
+ "key" : "operation_handle"
+ } ]
+ },
+ "query-parameters" : {
+ "queryParameters" : [ ]
+ },
+ "request" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:runtime:rest:messages:EmptyRequestBody"
+ },
+ "response" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:table:gateway:rest:message:operation:OperationStatusResponseBody",
+ "properties" : {
+ "status" : {
+ "type" : "string"
+ }
+ }
+ }
+ }, {
+ "url" :
"/sessions/:session_handle/operations/:operation_handle/result/:token",
+ "method" : "GET",
+ "status-code" : "200 OK",
+ "file-upload" : false,
+ "path-parameters" : {
+ "pathParameters" : [ {
+ "key" : "session_handle"
+ }, {
+ "key" : "operation_handle"
+ }, {
+ "key" : "token"
+ } ]
+ },
+ "query-parameters" : {
+ "queryParameters" : [ {
+ "key" : "rowFormat",
+ "mandatory" : true
+ } ]
+ },
+ "request" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:runtime:rest:messages:EmptyRequestBody"
+ },
+ "response" : {
+ "type" : "any"
+ }
+ }, {
+ "url" : "/sessions/:session_handle/operations/:operation_handle/status",
+ "method" : "GET",
+ "status-code" : "200 OK",
+ "file-upload" : false,
+ "path-parameters" : {
+ "pathParameters" : [ {
+ "key" : "session_handle"
+ }, {
+ "key" : "operation_handle"
+ } ]
+ },
+ "query-parameters" : {
+ "queryParameters" : [ ]
+ },
+ "request" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:runtime:rest:messages:EmptyRequestBody"
+ },
+ "response" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:table:gateway:rest:message:operation:OperationStatusResponseBody",
+ "properties" : {
+ "status" : {
+ "type" : "string"
+ }
+ }
+ }
+ }, {
+ "url" : "/sessions/:session_handle/statements",
+ "method" : "POST",
+ "status-code" : "200 OK",
+ "file-upload" : false,
+ "path-parameters" : {
+ "pathParameters" : [ {
+ "key" : "session_handle"
+ } ]
+ },
+ "query-parameters" : {
+ "queryParameters" : [ ]
+ },
+ "request" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:table:gateway:rest:message:statement:ExecuteStatementRequestBody",
+ "properties" : {
+ "statement" : {
+ "type" : "string"
+ },
+ "executionTimeout" : {
+ "type" : "integer"
+ },
+ "executionConfig" : {
+ "type" : "object",
+ "additionalProperties" : {
+ "type" : "string"
+ }
+ }
+ }
+ },
+ "response" : {
+ "type" : "object",
+ "id" :
"urn:jsonschema:org:apache:flink:table:gateway:rest:message:statement:ExecuteStatementResponseBody",
+ "properties" : {
+ "operationHandle" : {
+ "type" : "string"
+ }
+ }
+ }
+ } ]
+}
\ No newline at end of file