hive-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kgyrtk...@apache.org
Subject hive git commit: HIVE-17526: Disable conversion to ACID if table has _copy_N files on branch-1 (Daniel Voros via Zoltan Haindrich)
Date Thu, 19 Oct 2017 09:19:21 GMT
Repository: hive
Updated Branches:
  refs/heads/branch-1 d4bbcfd82 -> cd08cd6d3


HIVE-17526: Disable conversion to ACID if table has _copy_N files on branch-1 (Daniel Voros
via Zoltan Haindrich)

Signed-off-by: Zoltan Haindrich <kirk@rxd.hu>


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

Branch: refs/heads/branch-1
Commit: cd08cd6d3103ed70a8da4cce7eaaad251eb2a12f
Parents: d4bbcfd
Author: Daniel Voros <daniel.voros@gmail.com>
Authored: Thu Oct 19 11:12:43 2017 +0200
Committer: Zoltan Haindrich <kirk@rxd.hu>
Committed: Thu Oct 19 11:13:12 2017 +0200

----------------------------------------------------------------------
 .../TransactionalValidationListener.java        | 56 +++++++++++++-
 .../test/queries/clientnegative/acid_copy_n1.q  |  8 ++
 .../test/queries/clientnegative/acid_copy_n2.q  | 11 +++
 .../test/queries/clientnegative/acid_copy_n3.q  | 12 +++
 .../results/clientnegative/acid_copy_n1.q.out   | 59 ++++++++++++++
 .../results/clientnegative/acid_copy_n2.q.out   | 71 +++++++++++++++++
 .../results/clientnegative/acid_copy_n3.q.out   | 81 ++++++++++++++++++++
 7 files changed, 296 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/cd08cd6d/metastore/src/java/org/apache/hadoop/hive/metastore/TransactionalValidationListener.java
----------------------------------------------------------------------
diff --git a/metastore/src/java/org/apache/hadoop/hive/metastore/TransactionalValidationListener.java
b/metastore/src/java/org/apache/hadoop/hive/metastore/TransactionalValidationListener.java
index 3e74675..78c0eb9 100644
--- a/metastore/src/java/org/apache/hadoop/hive/metastore/TransactionalValidationListener.java
+++ b/metastore/src/java/org/apache/hadoop/hive/metastore/TransactionalValidationListener.java
@@ -18,6 +18,10 @@
 package org.apache.hadoop.hive.metastore;
 
 import org.apache.hadoop.conf.Configuration;
+import org.apache.hadoop.fs.FileSystem;
+import org.apache.hadoop.fs.LocatedFileStatus;
+import org.apache.hadoop.fs.Path;
+import org.apache.hadoop.fs.RemoteIterator;
 import org.apache.hadoop.hive.metastore.api.*;
 import org.apache.hadoop.hive.metastore.events.PreAlterTableEvent;
 import org.apache.hadoop.hive.metastore.events.PreCreateTableEvent;
@@ -25,13 +29,18 @@ import org.apache.hadoop.hive.metastore.events.PreEventContext;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.IOException;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.regex.Pattern;
 
 final class TransactionalValidationListener extends MetaStorePreEventListener {
   public static final Logger LOG = LoggerFactory.getLogger(TransactionalValidationListener.class);
 
+  public static final Pattern COPY_N_PATTERN =
+          Pattern.compile("[0-9]+_[0-9]+" + "_copy_" + "[0-9]+");
+
   TransactionalValidationListener(Configuration conf) {
     super(conf);
   }
@@ -89,7 +98,12 @@ final class TransactionalValidationListener extends MetaStorePreEventListener
{
 
       if (newTable.getTableType().equals(TableType.EXTERNAL_TABLE.toString())) {
         throw new MetaException(newTable.getDbName() + "." + newTable.getTableName() +
-            " cannot be declared transactional because it's an external table");
+                " cannot be declared transactional because it's an external table");
+      }
+
+      if (containsCopyNFiles(context.getHandler().getMS(), newTable)) {
+        throw new MetaException(newTable.getDbName() + "." + newTable.getTableName() +
+                " cannot be declared transactional because it has _COPY_N files.");
       }
 
       return;
@@ -187,4 +201,42 @@ final class TransactionalValidationListener extends MetaStorePreEventListener
{
 
     return true;
   }
-}
\ No newline at end of file
+
+  /**
+   * Check if table contains *_copy_N files. The table can't be converted to ACID if it does.
+   * See HIVE-16177 for details.
+   * @param table
+   * @return True if table contains files named *_copy_N. False otherwise.
+   * @throws MetaException
+   */
+  boolean containsCopyNFiles(RawStore ms, Table table) throws MetaException {
+    Warehouse wh = new Warehouse(getConf());
+
+    try {
+      Path tablePath;
+      if (table.getSd().getLocation() == null
+              || table.getSd().getLocation().isEmpty()) {
+        tablePath = wh.getDefaultTablePath(
+                ms.getDatabase(table.getDbName()), table.getTableName());
+      } else {
+        tablePath = wh.getDnsPath(new Path(table.getSd().getLocation()));
+      }
+      FileSystem fs = wh.getFs(tablePath);
+      RemoteIterator<LocatedFileStatus> iterator = fs.listFiles(tablePath, true);
+      while (iterator.hasNext()) {
+        LocatedFileStatus fileStatus = iterator.next();
+        if (COPY_N_PATTERN.matcher(fileStatus.getPath().getName()).matches()) {
+          return true;
+        }
+      }
+    } catch (IOException e) {
+      throw new MetaException("Unable to list files for " + table.getDbName() + "."+
+              table.getTableName());
+    } catch (NoSuchObjectException e) {
+      throw new MetaException("Unable to get location for " + table.getDbName() + "."+
+              table.getTableName());
+    }
+
+    return false;
+  }
+}

http://git-wip-us.apache.org/repos/asf/hive/blob/cd08cd6d/ql/src/test/queries/clientnegative/acid_copy_n1.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/acid_copy_n1.q b/ql/src/test/queries/clientnegative/acid_copy_n1.q
new file mode 100644
index 0000000..2ae5380
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/acid_copy_n1.q
@@ -0,0 +1,8 @@
+create table nocopyfiles(a int, b int) clustered by (a)  into 2 buckets stored as orc TBLPROPERTIES('transactional'='false');
+insert into nocopyfiles(a,b) values(1,2);
+alter table nocopyfiles SET TBLPROPERTIES ('transactional'='true');
+
+create table withcopyfiles(a int, b int) clustered by (a)  into 2 buckets stored as orc TBLPROPERTIES('transactional'='false');
+insert into withcopyfiles(a,b) values(1,2);
+insert into withcopyfiles(a,b) values(1,3);
+alter table withcopyfiles SET TBLPROPERTIES ('transactional'='true');

http://git-wip-us.apache.org/repos/asf/hive/blob/cd08cd6d/ql/src/test/queries/clientnegative/acid_copy_n2.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/acid_copy_n2.q b/ql/src/test/queries/clientnegative/acid_copy_n2.q
new file mode 100644
index 0000000..d72eb4f
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/acid_copy_n2.q
@@ -0,0 +1,11 @@
+create database acidtestdb;
+use acidtestdb;
+
+create table nocopyfiles(a int, b int) clustered by (a)  into 2 buckets stored as orc TBLPROPERTIES('transactional'='false');
+insert into nocopyfiles(a,b) values(1,2);
+alter table nocopyfiles SET TBLPROPERTIES ('transactional'='true');
+
+create table withcopyfiles(a int, b int) clustered by (a)  into 2 buckets stored as orc TBLPROPERTIES('transactional'='false');
+insert into withcopyfiles(a,b) values(1,2);
+insert into withcopyfiles(a,b) values(1,3);
+alter table withcopyfiles SET TBLPROPERTIES ('transactional'='true');

http://git-wip-us.apache.org/repos/asf/hive/blob/cd08cd6d/ql/src/test/queries/clientnegative/acid_copy_n3.q
----------------------------------------------------------------------
diff --git a/ql/src/test/queries/clientnegative/acid_copy_n3.q b/ql/src/test/queries/clientnegative/acid_copy_n3.q
new file mode 100644
index 0000000..674dc57
--- /dev/null
+++ b/ql/src/test/queries/clientnegative/acid_copy_n3.q
@@ -0,0 +1,12 @@
+create database acidtestdb;
+use acidtestdb;
+
+create table nocopyfiles(a int, b int) partitioned by (c int) clustered by (a) into 2 buckets
stored as orc TBLPROPERTIES('transactional'='false');
+insert into table nocopyfiles partition (c=1) values(1, 1);
+alter table nocopyfiles SET TBLPROPERTIES ('transactional'='true');
+
+create table withcopyfiles(a int, b int) partitioned by (c int) clustered by (a) into 2 buckets
stored as orc TBLPROPERTIES('transactional'='false');
+insert into table withcopyfiles partition (c=1) values (1, 1);
+insert into table withcopyfiles partition (c=1) values (1, 1);
+insert into table withcopyfiles partition (c=2) values (2, 2);
+alter table withcopyfiles SET TBLPROPERTIES ('transactional'='true');

http://git-wip-us.apache.org/repos/asf/hive/blob/cd08cd6d/ql/src/test/results/clientnegative/acid_copy_n1.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/acid_copy_n1.q.out b/ql/src/test/results/clientnegative/acid_copy_n1.q.out
new file mode 100644
index 0000000..1ff1090
--- /dev/null
+++ b/ql/src/test/results/clientnegative/acid_copy_n1.q.out
@@ -0,0 +1,59 @@
+PREHOOK: query: create table nocopyfiles(a int, b int) clustered by (a)  into 2 buckets stored
as orc TBLPROPERTIES('transactional'='false')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@nocopyfiles
+POSTHOOK: query: create table nocopyfiles(a int, b int) clustered by (a)  into 2 buckets
stored as orc TBLPROPERTIES('transactional'='false')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@nocopyfiles
+PREHOOK: query: insert into nocopyfiles(a,b) values(1,2)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__1
+PREHOOK: Output: default@nocopyfiles
+POSTHOOK: query: insert into nocopyfiles(a,b) values(1,2)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__1
+POSTHOOK: Output: default@nocopyfiles
+POSTHOOK: Lineage: nocopyfiles.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1,
type:string, comment:), ]
+POSTHOOK: Lineage: nocopyfiles.b EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2,
type:string, comment:), ]
+PREHOOK: query: alter table nocopyfiles SET TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: ALTERTABLE_PROPERTIES
+PREHOOK: Input: default@nocopyfiles
+PREHOOK: Output: default@nocopyfiles
+POSTHOOK: query: alter table nocopyfiles SET TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: ALTERTABLE_PROPERTIES
+POSTHOOK: Input: default@nocopyfiles
+POSTHOOK: Output: default@nocopyfiles
+PREHOOK: query: create table withcopyfiles(a int, b int) clustered by (a)  into 2 buckets
stored as orc TBLPROPERTIES('transactional'='false')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@withcopyfiles
+POSTHOOK: query: create table withcopyfiles(a int, b int) clustered by (a)  into 2 buckets
stored as orc TBLPROPERTIES('transactional'='false')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@withcopyfiles
+PREHOOK: query: insert into withcopyfiles(a,b) values(1,2)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__2
+PREHOOK: Output: default@withcopyfiles
+POSTHOOK: query: insert into withcopyfiles(a,b) values(1,2)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__2
+POSTHOOK: Output: default@withcopyfiles
+POSTHOOK: Lineage: withcopyfiles.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1,
type:string, comment:), ]
+POSTHOOK: Lineage: withcopyfiles.b EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2,
type:string, comment:), ]
+PREHOOK: query: insert into withcopyfiles(a,b) values(1,3)
+PREHOOK: type: QUERY
+PREHOOK: Input: default@values__tmp__table__3
+PREHOOK: Output: default@withcopyfiles
+POSTHOOK: query: insert into withcopyfiles(a,b) values(1,3)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@values__tmp__table__3
+POSTHOOK: Output: default@withcopyfiles
+POSTHOOK: Lineage: withcopyfiles.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1,
type:string, comment:), ]
+POSTHOOK: Lineage: withcopyfiles.b EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2,
type:string, comment:), ]
+PREHOOK: query: alter table withcopyfiles SET TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: ALTERTABLE_PROPERTIES
+PREHOOK: Input: default@withcopyfiles
+PREHOOK: Output: default@withcopyfiles
+FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable
to alter table. default.withcopyfiles cannot be declared transactional because it has _COPY_N
files.

http://git-wip-us.apache.org/repos/asf/hive/blob/cd08cd6d/ql/src/test/results/clientnegative/acid_copy_n2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/acid_copy_n2.q.out b/ql/src/test/results/clientnegative/acid_copy_n2.q.out
new file mode 100644
index 0000000..aa610ec
--- /dev/null
+++ b/ql/src/test/results/clientnegative/acid_copy_n2.q.out
@@ -0,0 +1,71 @@
+PREHOOK: query: create database acidtestdb
+PREHOOK: type: CREATEDATABASE
+PREHOOK: Output: database:acidtestdb
+POSTHOOK: query: create database acidtestdb
+POSTHOOK: type: CREATEDATABASE
+POSTHOOK: Output: database:acidtestdb
+PREHOOK: query: use acidtestdb
+PREHOOK: type: SWITCHDATABASE
+PREHOOK: Input: database:acidtestdb
+POSTHOOK: query: use acidtestdb
+POSTHOOK: type: SWITCHDATABASE
+POSTHOOK: Input: database:acidtestdb
+PREHOOK: query: create table nocopyfiles(a int, b int) clustered by (a)  into 2 buckets stored
as orc TBLPROPERTIES('transactional'='false')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: acidtestdb@nocopyfiles
+PREHOOK: Output: database:acidtestdb
+POSTHOOK: query: create table nocopyfiles(a int, b int) clustered by (a)  into 2 buckets
stored as orc TBLPROPERTIES('transactional'='false')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: acidtestdb@nocopyfiles
+POSTHOOK: Output: database:acidtestdb
+PREHOOK: query: insert into nocopyfiles(a,b) values(1,2)
+PREHOOK: type: QUERY
+PREHOOK: Input: acidtestdb@values__tmp__table__1
+PREHOOK: Output: acidtestdb@nocopyfiles
+POSTHOOK: query: insert into nocopyfiles(a,b) values(1,2)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: acidtestdb@values__tmp__table__1
+POSTHOOK: Output: acidtestdb@nocopyfiles
+POSTHOOK: Lineage: nocopyfiles.a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1,
type:string, comment:), ]
+POSTHOOK: Lineage: nocopyfiles.b EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2,
type:string, comment:), ]
+PREHOOK: query: alter table nocopyfiles SET TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: ALTERTABLE_PROPERTIES
+PREHOOK: Input: acidtestdb@nocopyfiles
+PREHOOK: Output: acidtestdb@nocopyfiles
+POSTHOOK: query: alter table nocopyfiles SET TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: ALTERTABLE_PROPERTIES
+POSTHOOK: Input: acidtestdb@nocopyfiles
+POSTHOOK: Output: acidtestdb@nocopyfiles
+PREHOOK: query: create table withcopyfiles(a int, b int) clustered by (a)  into 2 buckets
stored as orc TBLPROPERTIES('transactional'='false')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: acidtestdb@withcopyfiles
+PREHOOK: Output: database:acidtestdb
+POSTHOOK: query: create table withcopyfiles(a int, b int) clustered by (a)  into 2 buckets
stored as orc TBLPROPERTIES('transactional'='false')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: acidtestdb@withcopyfiles
+POSTHOOK: Output: database:acidtestdb
+PREHOOK: query: insert into withcopyfiles(a,b) values(1,2)
+PREHOOK: type: QUERY
+PREHOOK: Input: acidtestdb@values__tmp__table__2
+PREHOOK: Output: acidtestdb@withcopyfiles
+POSTHOOK: query: insert into withcopyfiles(a,b) values(1,2)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: acidtestdb@values__tmp__table__2
+POSTHOOK: Output: acidtestdb@withcopyfiles
+POSTHOOK: Lineage: withcopyfiles.a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1,
type:string, comment:), ]
+POSTHOOK: Lineage: withcopyfiles.b EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2,
type:string, comment:), ]
+PREHOOK: query: insert into withcopyfiles(a,b) values(1,3)
+PREHOOK: type: QUERY
+PREHOOK: Input: acidtestdb@values__tmp__table__3
+PREHOOK: Output: acidtestdb@withcopyfiles
+POSTHOOK: query: insert into withcopyfiles(a,b) values(1,3)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: acidtestdb@values__tmp__table__3
+POSTHOOK: Output: acidtestdb@withcopyfiles
+POSTHOOK: Lineage: withcopyfiles.a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1,
type:string, comment:), ]
+POSTHOOK: Lineage: withcopyfiles.b EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2,
type:string, comment:), ]
+PREHOOK: query: alter table withcopyfiles SET TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: ALTERTABLE_PROPERTIES
+PREHOOK: Input: acidtestdb@withcopyfiles
+PREHOOK: Output: acidtestdb@withcopyfiles
+FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable
to alter table. acidtestdb.withcopyfiles cannot be declared transactional because it has _COPY_N
files.

http://git-wip-us.apache.org/repos/asf/hive/blob/cd08cd6d/ql/src/test/results/clientnegative/acid_copy_n3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientnegative/acid_copy_n3.q.out b/ql/src/test/results/clientnegative/acid_copy_n3.q.out
new file mode 100644
index 0000000..6878013
--- /dev/null
+++ b/ql/src/test/results/clientnegative/acid_copy_n3.q.out
@@ -0,0 +1,81 @@
+PREHOOK: query: create database acidtestdb
+PREHOOK: type: CREATEDATABASE
+PREHOOK: Output: database:acidtestdb
+POSTHOOK: query: create database acidtestdb
+POSTHOOK: type: CREATEDATABASE
+POSTHOOK: Output: database:acidtestdb
+PREHOOK: query: use acidtestdb
+PREHOOK: type: SWITCHDATABASE
+PREHOOK: Input: database:acidtestdb
+POSTHOOK: query: use acidtestdb
+POSTHOOK: type: SWITCHDATABASE
+POSTHOOK: Input: database:acidtestdb
+PREHOOK: query: create table nocopyfiles(a int, b int) partitioned by (c int) clustered by
(a) into 2 buckets stored as orc TBLPROPERTIES('transactional'='false')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: acidtestdb@nocopyfiles
+PREHOOK: Output: database:acidtestdb
+POSTHOOK: query: create table nocopyfiles(a int, b int) partitioned by (c int) clustered
by (a) into 2 buckets stored as orc TBLPROPERTIES('transactional'='false')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: acidtestdb@nocopyfiles
+POSTHOOK: Output: database:acidtestdb
+PREHOOK: query: insert into table nocopyfiles partition (c=1) values(1, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: acidtestdb@values__tmp__table__1
+PREHOOK: Output: acidtestdb@nocopyfiles@c=1
+POSTHOOK: query: insert into table nocopyfiles partition (c=1) values(1, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: acidtestdb@values__tmp__table__1
+POSTHOOK: Output: acidtestdb@nocopyfiles@c=1
+POSTHOOK: Lineage: nocopyfiles PARTITION(c=1).a EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1,
type:string, comment:), ]
+POSTHOOK: Lineage: nocopyfiles PARTITION(c=1).b EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2,
type:string, comment:), ]
+PREHOOK: query: alter table nocopyfiles SET TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: ALTERTABLE_PROPERTIES
+PREHOOK: Input: acidtestdb@nocopyfiles
+PREHOOK: Output: acidtestdb@nocopyfiles
+POSTHOOK: query: alter table nocopyfiles SET TBLPROPERTIES ('transactional'='true')
+POSTHOOK: type: ALTERTABLE_PROPERTIES
+POSTHOOK: Input: acidtestdb@nocopyfiles
+POSTHOOK: Output: acidtestdb@nocopyfiles
+PREHOOK: query: create table withcopyfiles(a int, b int) partitioned by (c int) clustered
by (a) into 2 buckets stored as orc TBLPROPERTIES('transactional'='false')
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: acidtestdb@withcopyfiles
+PREHOOK: Output: database:acidtestdb
+POSTHOOK: query: create table withcopyfiles(a int, b int) partitioned by (c int) clustered
by (a) into 2 buckets stored as orc TBLPROPERTIES('transactional'='false')
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: acidtestdb@withcopyfiles
+POSTHOOK: Output: database:acidtestdb
+PREHOOK: query: insert into table withcopyfiles partition (c=1) values (1, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: acidtestdb@values__tmp__table__2
+PREHOOK: Output: acidtestdb@withcopyfiles@c=1
+POSTHOOK: query: insert into table withcopyfiles partition (c=1) values (1, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: acidtestdb@values__tmp__table__2
+POSTHOOK: Output: acidtestdb@withcopyfiles@c=1
+POSTHOOK: Lineage: withcopyfiles PARTITION(c=1).a EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col1,
type:string, comment:), ]
+POSTHOOK: Lineage: withcopyfiles PARTITION(c=1).b EXPRESSION [(values__tmp__table__2)values__tmp__table__2.FieldSchema(name:tmp_values_col2,
type:string, comment:), ]
+PREHOOK: query: insert into table withcopyfiles partition (c=1) values (1, 1)
+PREHOOK: type: QUERY
+PREHOOK: Input: acidtestdb@values__tmp__table__3
+PREHOOK: Output: acidtestdb@withcopyfiles@c=1
+POSTHOOK: query: insert into table withcopyfiles partition (c=1) values (1, 1)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: acidtestdb@values__tmp__table__3
+POSTHOOK: Output: acidtestdb@withcopyfiles@c=1
+POSTHOOK: Lineage: withcopyfiles PARTITION(c=1).a EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col1,
type:string, comment:), ]
+POSTHOOK: Lineage: withcopyfiles PARTITION(c=1).b EXPRESSION [(values__tmp__table__3)values__tmp__table__3.FieldSchema(name:tmp_values_col2,
type:string, comment:), ]
+PREHOOK: query: insert into table withcopyfiles partition (c=2) values (2, 2)
+PREHOOK: type: QUERY
+PREHOOK: Input: acidtestdb@values__tmp__table__4
+PREHOOK: Output: acidtestdb@withcopyfiles@c=2
+POSTHOOK: query: insert into table withcopyfiles partition (c=2) values (2, 2)
+POSTHOOK: type: QUERY
+POSTHOOK: Input: acidtestdb@values__tmp__table__4
+POSTHOOK: Output: acidtestdb@withcopyfiles@c=2
+POSTHOOK: Lineage: withcopyfiles PARTITION(c=2).a EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col1,
type:string, comment:), ]
+POSTHOOK: Lineage: withcopyfiles PARTITION(c=2).b EXPRESSION [(values__tmp__table__4)values__tmp__table__4.FieldSchema(name:tmp_values_col2,
type:string, comment:), ]
+PREHOOK: query: alter table withcopyfiles SET TBLPROPERTIES ('transactional'='true')
+PREHOOK: type: ALTERTABLE_PROPERTIES
+PREHOOK: Input: acidtestdb@withcopyfiles
+PREHOOK: Output: acidtestdb@withcopyfiles
+FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable
to alter table. acidtestdb.withcopyfiles cannot be declared transactional because it has _COPY_N
files.


Mime
View raw message