lirui-apache commented on a change in pull request #13017:
URL: https://github.com/apache/flink/pull/13017#discussion_r466346668



##########
File path: 
flink-connectors/flink-connector-hive/src/test/java/org/apache/flink/connectors/hive/HiveDialectITCase.java
##########
@@ -465,6 +465,49 @@ public void testAddDropPartitions() throws Exception {
                assertEquals(1, hiveCatalog.listPartitions(tablePath).size());
        }
 
+       @Test
+       public void testShowPartitions() throws Exception {
+               tableEnv.executeSql("create table tbl (x int,y binary) 
partitioned by (dt date,country string)");
+               tableEnv.executeSql("alter table tbl add partition 
(dt='2020-04-30',country='china') partition (dt='2020-04-30',country='us')");
+
+               ObjectPath tablePath = new ObjectPath("default", "tbl");
+               assertEquals(2, hiveCatalog.listPartitions(tablePath).size());
+
+               List<Row> partitions = 
Lists.newArrayList(tableEnv.executeSql("show partitions tbl").collect());
+               assertEquals(2, partitions.size());
+               
assertTrue(partitions.toString().contains("dt=2020-04-30/country=china"));
+               
assertTrue(partitions.toString().contains("dt=2020-04-30/country=us"));
+               partitions = Lists.newArrayList(tableEnv.executeSql("show 
partitions tbl partition (dt='2020-04-30')").collect());

Review comment:
       Also add a test case where the partition spec only contains `country`

##########
File path: 
flink-connectors/flink-connector-hive/src/test/java/org/apache/flink/connectors/hive/HiveDialectITCase.java
##########
@@ -465,6 +465,49 @@ public void testAddDropPartitions() throws Exception {
                assertEquals(1, hiveCatalog.listPartitions(tablePath).size());
        }
 
+       @Test
+       public void testShowPartitions() throws Exception {
+               tableEnv.executeSql("create table tbl (x int,y binary) 
partitioned by (dt date,country string)");
+               tableEnv.executeSql("alter table tbl add partition 
(dt='2020-04-30',country='china') partition (dt='2020-04-30',country='us')");
+
+               ObjectPath tablePath = new ObjectPath("default", "tbl");
+               assertEquals(2, hiveCatalog.listPartitions(tablePath).size());
+
+               List<Row> partitions = 
Lists.newArrayList(tableEnv.executeSql("show partitions tbl").collect());
+               assertEquals(2, partitions.size());
+               
assertTrue(partitions.toString().contains("dt=2020-04-30/country=china"));
+               
assertTrue(partitions.toString().contains("dt=2020-04-30/country=us"));
+               partitions = Lists.newArrayList(tableEnv.executeSql("show 
partitions tbl partition (dt='2020-04-30')").collect());
+               assertEquals(2, partitions.size());
+               
assertTrue(partitions.toString().contains("dt=2020-04-30/country=china"));
+               
assertTrue(partitions.toString().contains("dt=2020-04-30/country=us"));
+               partitions = Lists.newArrayList(tableEnv.executeSql("show 
partitions tbl partition (dt='2020-04-30',country='china')").collect());
+               assertEquals(1, partitions.size());
+               
assertTrue(partitions.toString().contains("dt=2020-04-30/country=china"));
+
+               tableEnv.executeSql("alter table tbl drop partition 
(dt='2020-04-30',country='china'),partition (dt='2020-04-30',country='us')");
+               assertEquals(0, hiveCatalog.listPartitions(tablePath).size());
+
+               tableEnv.executeSql("alter table tbl add partition 
(dt='2020-04-30 01:02:03',country='china') partition (dt='2020-04-30 
04:05:06',country='us')");
+
+               partitions = Lists.newArrayList(tableEnv.executeSql("show 
partitions tbl").collect());
+               assertEquals(2, partitions.size());
+               assertTrue(partitions.toString().contains("dt=2020-04-30 
01:02:03/country=china"));
+               assertTrue(partitions.toString().contains("dt=2020-04-30 
04:05:06/country=us"));
+               partitions = Lists.newArrayList(tableEnv.executeSql("show 
partitions tbl partition (dt='2020-04-30 01:02:03')").collect());
+               assertEquals(1, partitions.size());
+               assertTrue(partitions.toString().contains("dt=2020-04-30 
01:02:03/country=china"));
+               partitions = Lists.newArrayList(tableEnv.executeSql("show 
partitions tbl partition (dt='2020-04-30 04:05:06')").collect());
+               assertEquals(1, partitions.size());
+               assertTrue(partitions.toString().contains("dt=2020-04-30 
04:05:06/country=us"));
+               partitions = Lists.newArrayList(tableEnv.executeSql("show 
partitions tbl partition (dt='2020-04-30 
01:02:03',country='china')").collect());
+               assertEquals(1, partitions.size());
+               assertTrue(partitions.toString().contains("dt=2020-04-30 
01:02:03/country=china"));
+
+               tableEnv.executeSql("alter table tbl drop partition 
(dt='2020-04-30 01:02:03',country='china'),partition (dt='2020-04-30 
04:05:06',country='us')");
+               assertEquals(1, hiveCatalog.listPartitions(tablePath).size());

Review comment:
       I don't this is necessary. We're not testing add/drop partitions here.

##########
File path: 
flink-table/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliClient.java
##########
@@ -532,6 +535,14 @@ private void callShowFunctions() {
                                .collect(Collectors.toList());
        }
 
+       private List<String> getShowResult(String objectToShow, SqlCommandCall 
cmdCall) {
+               TableResult tableResult = executor.executeSql(sessionId, "SHOW 
" + objectToShow + " " + cmdCall.operands[0]);

Review comment:
       I think `cmdCall.operands[0]` contains the whole SQL statement, no?

##########
File path: 
flink-connectors/flink-connector-hive/src/test/java/org/apache/flink/connectors/hive/HiveDialectITCase.java
##########
@@ -465,6 +465,49 @@ public void testAddDropPartitions() throws Exception {
                assertEquals(1, hiveCatalog.listPartitions(tablePath).size());
        }
 
+       @Test
+       public void testShowPartitions() throws Exception {
+               tableEnv.executeSql("create table tbl (x int,y binary) 
partitioned by (dt date,country string)");
+               tableEnv.executeSql("alter table tbl add partition 
(dt='2020-04-30',country='china') partition (dt='2020-04-30',country='us')");
+
+               ObjectPath tablePath = new ObjectPath("default", "tbl");
+               assertEquals(2, hiveCatalog.listPartitions(tablePath).size());
+
+               List<Row> partitions = 
Lists.newArrayList(tableEnv.executeSql("show partitions tbl").collect());
+               assertEquals(2, partitions.size());
+               
assertTrue(partitions.toString().contains("dt=2020-04-30/country=china"));
+               
assertTrue(partitions.toString().contains("dt=2020-04-30/country=us"));
+               partitions = Lists.newArrayList(tableEnv.executeSql("show 
partitions tbl partition (dt='2020-04-30')").collect());
+               assertEquals(2, partitions.size());
+               
assertTrue(partitions.toString().contains("dt=2020-04-30/country=china"));
+               
assertTrue(partitions.toString().contains("dt=2020-04-30/country=us"));
+               partitions = Lists.newArrayList(tableEnv.executeSql("show 
partitions tbl partition (dt='2020-04-30',country='china')").collect());
+               assertEquals(1, partitions.size());
+               
assertTrue(partitions.toString().contains("dt=2020-04-30/country=china"));
+
+               tableEnv.executeSql("alter table tbl drop partition 
(dt='2020-04-30',country='china'),partition (dt='2020-04-30',country='us')");
+               assertEquals(0, hiveCatalog.listPartitions(tablePath).size());
+
+               tableEnv.executeSql("alter table tbl add partition 
(dt='2020-04-30 01:02:03',country='china') partition (dt='2020-04-30 
04:05:06',country='us')");

Review comment:
       Does a DATE column accept values like `'2020-04-30 01:02:03'`?

##########
File path: 
flink-table/flink-sql-client/src/test/java/org/apache/flink/table/client/cli/SqlCommandParserTest.java
##########
@@ -299,6 +300,20 @@ public void testCommands() throws Exception {
                }
        }
 
+       @Test
+       public void testHiveCommands() throws Exception {
+               SqlParserHelper helper = new SqlParserHelper(SqlDialect.HIVE);
+               parser = helper.getSqlParser();

Review comment:
       Do we still need these?




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

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


Reply via email to