You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by da...@apache.org on 2019/01/17 06:22:14 UTC

hive git commit: HIVE-21124: HPL/SQL does not support the CREATE TABLE LIKE statement (Baoning He, reviewed by Daniel Dai)

Repository: hive
Updated Branches:
  refs/heads/master 4d5d80609 -> 8e7c3b340


HIVE-21124: HPL/SQL does not support the CREATE TABLE LIKE statement (Baoning He, reviewed by Daniel Dai)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/8e7c3b34
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/8e7c3b34
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/8e7c3b34

Branch: refs/heads/master
Commit: 8e7c3b340f36a3b76453338b04b8cda360eeaa70
Parents: 4d5d806
Author: Daniel Dai <da...@gmail.com>
Authored: Wed Jan 16 22:21:57 2019 -0800
Committer: Daniel Dai <da...@gmail.com>
Committed: Wed Jan 16 22:21:57 2019 -0800

----------------------------------------------------------------------
 hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4         | 2 +-
 hplsql/src/main/java/org/apache/hive/hplsql/Stmt.java           | 3 +++
 .../src/test/java/org/apache/hive/hplsql/TestHplsqlOffline.java | 5 +++++
 hplsql/src/test/queries/offline/create_table.sql                | 1 +
 hplsql/src/test/results/offline/create_table.out.txt            | 2 ++
 5 files changed, 12 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/8e7c3b34/hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4
----------------------------------------------------------------------
diff --git a/hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4 b/hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4
index 186b617..77c2e2c 100644
--- a/hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4
+++ b/hplsql/src/main/antlr4/org/apache/hive/hplsql/Hplsql.g4
@@ -227,7 +227,7 @@ create_local_temp_table_stmt :
      ;
      
 create_table_definition :
-      (T_AS? T_OPEN_P select_stmt T_CLOSE_P | T_AS? select_stmt | T_OPEN_P create_table_columns T_CLOSE_P) create_table_options?
+      (T_AS? T_OPEN_P select_stmt T_CLOSE_P | T_AS? select_stmt | T_OPEN_P create_table_columns T_CLOSE_P | T_LIKE table_name) create_table_options?
      ;
      
 create_table_columns :         

http://git-wip-us.apache.org/repos/asf/hive/blob/8e7c3b34/hplsql/src/main/java/org/apache/hive/hplsql/Stmt.java
----------------------------------------------------------------------
diff --git a/hplsql/src/main/java/org/apache/hive/hplsql/Stmt.java b/hplsql/src/main/java/org/apache/hive/hplsql/Stmt.java
index 0094e82..eabb9fa 100644
--- a/hplsql/src/main/java/org/apache/hive/hplsql/Stmt.java
+++ b/hplsql/src/main/java/org/apache/hive/hplsql/Stmt.java
@@ -172,6 +172,9 @@ public class Stmt {
       }
       exec.append(sql, ctx.T_CLOSE_P().getText(), last, ctx.T_CLOSE_P().getSymbol());
     }
+    else if (ctx.T_LIKE() != null) {
+      sql.append(" ").append(ctx.T_LIKE().getText()).append(" ").append(evalPop(ctx.table_name()));
+    }
     // CREATE TABLE AS SELECT statement
     else {
       exec.append(sql, evalPop(ctx.select_stmt()).toString(), last, ctx.select_stmt().getStart());

http://git-wip-us.apache.org/repos/asf/hive/blob/8e7c3b34/hplsql/src/test/java/org/apache/hive/hplsql/TestHplsqlOffline.java
----------------------------------------------------------------------
diff --git a/hplsql/src/test/java/org/apache/hive/hplsql/TestHplsqlOffline.java b/hplsql/src/test/java/org/apache/hive/hplsql/TestHplsqlOffline.java
index c908191..b48c8c5 100644
--- a/hplsql/src/test/java/org/apache/hive/hplsql/TestHplsqlOffline.java
+++ b/hplsql/src/test/java/org/apache/hive/hplsql/TestHplsqlOffline.java
@@ -34,6 +34,11 @@ public class TestHplsqlOffline {
   private final ByteArrayOutputStream out = new ByteArrayOutputStream();
 
   @Test
+  public void testCreateTable() throws Exception {
+    run("create_table");
+  }
+
+  @Test
   public void testCreateTableDb2() throws Exception {
     run("create_table_db2");
   }

http://git-wip-us.apache.org/repos/asf/hive/blob/8e7c3b34/hplsql/src/test/queries/offline/create_table.sql
----------------------------------------------------------------------
diff --git a/hplsql/src/test/queries/offline/create_table.sql b/hplsql/src/test/queries/offline/create_table.sql
new file mode 100644
index 0000000..9fde50f
--- /dev/null
+++ b/hplsql/src/test/queries/offline/create_table.sql
@@ -0,0 +1 @@
+CREATE TABLE tbl LIKE tbl2;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/hive/blob/8e7c3b34/hplsql/src/test/results/offline/create_table.out.txt
----------------------------------------------------------------------
diff --git a/hplsql/src/test/results/offline/create_table.out.txt b/hplsql/src/test/results/offline/create_table.out.txt
new file mode 100644
index 0000000..fac30ed
--- /dev/null
+++ b/hplsql/src/test/results/offline/create_table.out.txt
@@ -0,0 +1,2 @@
+Ln:1 CREATE TABLE
+Ln:1 CREATE TABLE tbl LIKE tbl2
\ No newline at end of file