libenchao commented on code in PR #22832:
URL: https://github.com/apache/flink/pull/22832#discussion_r1242159866


##########
flink-table/flink-sql-gateway-api/src/main/java/org/apache/flink/table/gateway/api/results/ResultSetImpl.java:
##########
@@ -92,6 +117,10 @@ public RowDataToStringConverter getConverter() {
         return converter;
     }
 
+    public ZoneId getZoneId() {

Review Comment:
   Adding public method to implementation class is usually not good practice, 
even more, `ResultSetImpl` is marked as `Internal`, I'm not sure it's suitable 
to put it in `flink-sql-gateway-api` module.



##########
flink-table/flink-sql-jdbc-driver/src/main/java/org/apache/flink/table/jdbc/utils/DatabaseMetaDataUtils.java:
##########
@@ -66,7 +67,8 @@ public static FlinkResultSet createCatalogsResultSet(
         return new FlinkResultSet(
                 statement,
                 new CollectionResultIterator(catalogs.iterator()),
-                ResolvedSchema.of(TABLE_CAT_COLUMN));
+                ResolvedSchema.of(TABLE_CAT_COLUMN),
+                ZoneId.systemDefault());

Review Comment:
   For `createCatalogsResultSet` and `createSchemasResultSet`, if it's no need 
to set the zone id (I guess there is no `timestamp` type for these two cases, 
right?), it's better to add a comment to say it. 



##########
flink-table/flink-sql-gateway/src/main/java/org/apache/flink/table/gateway/rest/serde/ResultInfo.java:
##########
@@ -57,19 +58,24 @@ public class ResultInfo {
     private final List<ColumnInfo> columnInfos;
     private final List<RowData> data;
     private final RowFormat rowFormat;
+    private final ZoneId zoneId;
 
-    ResultInfo(List<ColumnInfo> columnInfos, List<RowData> data, RowFormat 
rowFormat) {
+    ResultInfo(
+            List<ColumnInfo> columnInfos, List<RowData> data, RowFormat 
rowFormat, ZoneId zoneId) {
         this.columnInfos = columnInfos;
         this.data = data;
         this.rowFormat = rowFormat;
+        this.zoneId = zoneId;
     }
 
     public static ResultInfo createResultInfo(ResultSet resultSet, RowFormat 
rowFormat) {
         Preconditions.checkArgument(resultSet.getResultType() != 
ResultSet.ResultType.NOT_READY);
         List<RowData> data = resultSet.getData();
+        ZoneId zoneId = ZoneId.systemDefault();
 
         switch (rowFormat) {
             case JSON:
+                zoneId = ((ResultSetImpl) resultSet).getZoneId();

Review Comment:
   Why `PLAIN_TEXT` does not need to care about zone id?



##########
flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/gateway/StatementResult.java:
##########
@@ -110,4 +117,8 @@ public boolean hasNext() {
     public RowData next() {
         return resultProvider.next();
     }
+
+    public ZoneId getZoneId() {

Review Comment:
   Looking at this I realized that we are using `flink-sql-client` module which 
is not designed to be used as a maven dependency, do you think it's possible to 
get rid of this module for `flink-jdbc-driver` in the future?



-- 
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