yuzelin commented on code in PR #20401:
URL: https://github.com/apache/flink/pull/20401#discussion_r938500275


##########
flink-connectors/flink-connector-hive/src/main/java/org/apache/flink/table/endpoint/hive/HiveServer2Endpoint.java:
##########
@@ -422,7 +426,76 @@ public TGetCatalogsResp GetCatalogs(TGetCatalogsReq 
tGetCatalogsReq) throws TExc
 
     @Override
     public TGetSchemasResp GetSchemas(TGetSchemasReq tGetSchemasReq) throws 
TException {
-        throw new UnsupportedOperationException(ERROR_MESSAGE);
+        TGetSchemasResp resp = new TGetSchemasResp();
+        try {
+            SessionHandle sessionHandle = 
toSessionHandle(tGetSchemasReq.getSessionHandle());
+            OperationHandle operationHandle =
+                    service.submitOperation(
+                            sessionHandle,
+                            OperationType.LIST_SCHEMAS,
+                            () -> {
+                                Set<String> schemaNames =
+                                        service
+                                                .listDatabases(
+                                                        sessionHandle,
+                                                        
tGetSchemasReq.getCatalogName())
+                                                .stream()
+                                                .filter(
+                                                        name ->
+                                                                name.matches(
+                                                                        
convertNamePattern(
+                                                                               
 tGetSchemasReq
+                                                                               
         .getSchemaName())))
+                                                .collect(Collectors.toSet());
+
+                                return new ResultSet(
+                                        EOS,
+                                        null,
+                                        GET_SCHEMAS_SCHEMA,
+                                        schemaNames.stream()
+                                                .map(
+                                                        name ->
+                                                                
GenericRowData.of(
+                                                                        
StringData.fromString(name),
+                                                                        
StringData.fromString(
+                                                                               
 tGetSchemasReq
+                                                                               
         .getCatalogName())))
+                                                .collect(Collectors.toList()));
+                            });
+
+            // TODO: Remove this
+            while (!service.getOperationInfo(sessionHandle, operationHandle)
+                    .getStatus()
+                    .isTerminalStatus()) {
+                Thread.sleep(1000);
+            }
+            resp.setStatus(OK_STATUS);
+            resp.setOperationHandle(
+                    toTOperationHandle(sessionHandle, operationHandle, 
OperationType.LIST_SCHEMAS));
+        } catch (Throwable t) {
+            LOG.error("Failed to GetSchemas.", t);
+            resp.setStatus(toTStatus(t));
+        }
+        return resp;
+    }
+
+    /**
+     * Convert wildchars and escape sequence of schema pattern from JDBC 
format to
+     * datanucleous/regex. The schema pattern treats empty string also as 
wildchar. implementation
+     * refers to hive's convertSchemaPattern.
+     */

Review Comment:
   Changed.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to