This is an automated email from the ASF dual-hosted git repository.

sankarh pushed a commit to branch branch-3
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/branch-3 by this push:
     new dd9a71423d1 HIVE-27571:  Backport of HIVE-18702: INSERT OVERWRITE 
TABLE doesn't clean the table directory before overwriting (Ivan Suller via 
Ashutosh Chauhan, Zoltan Haindrich)
dd9a71423d1 is described below

commit dd9a71423d1a4f748eedb6ca9f6972537e8ff796
Author: Shefali Singh <31477542+shefali...@users.noreply.github.com>
AuthorDate: Mon Aug 21 11:43:51 2023 +0530

    HIVE-27571:  Backport of HIVE-18702: INSERT OVERWRITE TABLE doesn't clean 
the table directory before overwriting (Ivan Suller via Ashutosh Chauhan, 
Zoltan Haindrich)
    
    Signed-off-by: Sankar Hariappan <sank...@apache.org>
    Closes (#4554)
---
 .../test/resources/testconfiguration.properties    |   1 +
 .../org/apache/hadoop/hive/ql/metadata/Hive.java   |  18 +-
 .../test/queries/clientpositive/insert_overwrite.q |  77 +++++
 .../clientpositive/llap/insert_overwrite.q.out     | 375 +++++++++++++++++++++
 4 files changed, 463 insertions(+), 8 deletions(-)

diff --git a/itests/src/test/resources/testconfiguration.properties 
b/itests/src/test/resources/testconfiguration.properties
index 88f74354c9e..4145b500574 100644
--- a/itests/src/test/resources/testconfiguration.properties
+++ b/itests/src/test/resources/testconfiguration.properties
@@ -543,6 +543,7 @@ minillaplocal.query.files=\
   insert_dir_distcp.q,\
   insert_into_default_keyword.q,\
   insert_into_with_schema.q,\
+  insert_overwrite.q,\
   insert_values_orig_table.q,\
   insert_values_orig_table_use_metadata.q,\
   insert1_overwrite_partitions.q,\
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java 
b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
index faeeb864a69..024fc64d924 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/metadata/Hive.java
@@ -1861,7 +1861,7 @@ public class Hive {
           boolean needRecycle = !tbl.isTemporary()
                   && 
ReplChangeManager.isSourceOfReplication(Hive.get().getDatabase(tbl.getDbName()));
           replaceFiles(tbl.getPath(), loadPath, destPath, oldPartPath, 
getConf(), isSrcLocal,
-              isAutoPurge, newFiles, FileUtils.HIDDEN_FILES_PATH_FILTER, 
needRecycle, isManaged);
+              isAutoPurge, newFiles, FileUtils.HIDDEN_FILES_PATH_FILTER, 
needRecycle, isManaged, isInsertOverwrite);
         } else {
           FileSystem fs = tbl.getDataLocation().getFileSystem(conf);
           copyFiles(conf, loadPath, destPath, fs, isSrcLocal, 
isAcidIUDoperation,
@@ -2449,7 +2449,7 @@ private void constructOneLBLocationMap(FileStatus fSta,
         boolean needRecycle = !tbl.isTemporary()
                 && 
ReplChangeManager.isSourceOfReplication(Hive.get().getDatabase(tbl.getDbName()));
         replaceFiles(tblPath, loadPath, destPath, tblPath, conf, isSrcLocal, 
isAutopurge,
-            newFiles, FileUtils.HIDDEN_FILES_PATH_FILTER, needRecycle, 
isManaged);
+            newFiles, FileUtils.HIDDEN_FILES_PATH_FILTER, needRecycle, 
isManaged, isInsertOverwrite);
       } else {
         try {
           FileSystem fs = tbl.getDataLocation().getFileSystem(conf);
@@ -4197,9 +4197,9 @@ private void constructOneLBLocationMap(FileStatus fSta,
    * @param isManaged
    *          If the table is managed.
    */
-  protected void replaceFiles(Path tablePath, Path srcf, Path destf, Path 
oldPath, HiveConf conf,
+  private void replaceFiles(Path tablePath, Path srcf, Path destf, Path 
oldPath, HiveConf conf,
           boolean isSrcLocal, boolean purge, List<Path> newFiles, PathFilter 
deletePathFilter,
-          boolean isNeedRecycle, boolean isManaged) throws HiveException {
+      boolean isNeedRecycle, boolean isManaged, boolean isInsertOverwrite) 
throws HiveException {
     try {
 
       FileSystem destFs = destf.getFileSystem(conf);
@@ -4212,15 +4212,17 @@ private void constructOneLBLocationMap(FileStatus fSta,
       } catch (IOException e) {
         throw new HiveException("Getting globStatus " + srcf.toString(), e);
       }
+
+      // the extra check is required to make ALTER TABLE ... CONCATENATE work
+      if (oldPath != null && (srcs != null || isInsertOverwrite)) {
+        deleteOldPathForReplace(destf, oldPath, conf, purge, deletePathFilter, 
isNeedRecycle);
+      }
+
       if (srcs == null) {
         LOG.info("No sources specified to move: " + srcf);
         return;
       }
 
-      if (oldPath != null) {
-        deleteOldPathForReplace(destf, oldPath, conf, purge, deletePathFilter, 
isNeedRecycle);
-      }
-
       // first call FileUtils.mkdir to make sure that destf directory exists, 
if not, it creates
       // destf
       boolean destfExist = FileUtils.mkdir(destFs, destf, conf);
diff --git a/ql/src/test/queries/clientpositive/insert_overwrite.q 
b/ql/src/test/queries/clientpositive/insert_overwrite.q
new file mode 100644
index 00000000000..12dd1b57a28
--- /dev/null
+++ b/ql/src/test/queries/clientpositive/insert_overwrite.q
@@ -0,0 +1,77 @@
+set hive.exec.dynamic.partition.mode=nonstrict;
+set hive.stats.column.autogather=false;
+set hive.stats.autogather=false;
+set hive.compute.query.using.stats=false;
+
+CREATE EXTERNAL TABLE ext_non_part (col string);
+INSERT INTO ext_non_part VALUES ('first'), ('second');
+CREATE TABLE b LIKE ext_non_part;
+
+INSERT OVERWRITE TABLE ext_non_part SELECT * FROM b;
+
+-- should be 0
+SELECT count(*) FROM ext_non_part;
+
+drop table ext_non_part;
+
+CREATE TABLE int_non_part (col string);
+INSERT INTO int_non_part VALUES ('first'), ('second');
+
+INSERT OVERWRITE TABLE int_non_part SELECT * FROM b;
+
+-- should be 0
+SELECT count(*) FROM int_non_part;
+
+drop table int_non_part;
+drop table b;
+
+
+CREATE EXTERNAL TABLE ext_part (col string) partitioned by (par string);
+INSERT INTO ext_part PARTITION (par='1') VALUES ('first'), ('second');
+INSERT INTO ext_part PARTITION (par='2') VALUES ('first'), ('second');
+CREATE TABLE b (par string, col string);
+
+INSERT OVERWRITE TABLE ext_part PARTITION (par) SELECT * FROM b;
+
+-- should be 4
+SELECT count(*) FROM ext_part;
+
+INSERT INTO b VALUES ('third', '1');
+
+INSERT OVERWRITE TABLE ext_part PARTITION (par) SELECT * FROM b;
+
+-- should be 3
+SELECT count(*) FROM ext_part;
+
+SELECT * FROM ext_part ORDER BY par, col;
+
+drop table ext_part;
+drop table b;
+
+CREATE TABLE int_part (col string) partitioned by (par string);
+INSERT INTO int_part PARTITION (par='1') VALUES ('first'), ('second');
+INSERT INTO int_part PARTITION (par='2') VALUES ('first'), ('second');
+INSERT INTO int_part PARTITION (par='3') VALUES ('first'), ('second');
+CREATE TABLE b (par string, col string);
+
+INSERT OVERWRITE TABLE int_part PARTITION (par) SELECT * FROM b;
+
+-- should be 6
+SELECT count(*) FROM int_part;
+
+INSERT OVERWRITE TABLE int_part PARTITION (par='3') SELECT col FROM b;
+
+-- should be 4
+SELECT count(*) FROM int_part;
+
+INSERT INTO b VALUES ('third', '1');
+
+INSERT OVERWRITE TABLE int_part PARTITION (par) SELECT * FROM b;
+
+-- should be 3
+SELECT count(*) FROM int_part;
+
+SELECT * FROM int_part ORDER BY par, col;
+
+drop table int_part;
+drop table b;
diff --git a/ql/src/test/results/clientpositive/llap/insert_overwrite.q.out 
b/ql/src/test/results/clientpositive/llap/insert_overwrite.q.out
new file mode 100644
index 00000000000..68f7cc895db
--- /dev/null
+++ b/ql/src/test/results/clientpositive/llap/insert_overwrite.q.out
@@ -0,0 +1,375 @@
+PREHOOK: query: CREATE EXTERNAL TABLE ext_non_part (col string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@ext_non_part
+POSTHOOK: query: CREATE EXTERNAL TABLE ext_non_part (col string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@ext_non_part
+PREHOOK: query: INSERT INTO ext_non_part VALUES ('first'), ('second')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@ext_non_part
+POSTHOOK: query: INSERT INTO ext_non_part VALUES ('first'), ('second')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@ext_non_part
+POSTHOOK: Lineage: ext_non_part.col SCRIPT []
+PREHOOK: query: CREATE TABLE b LIKE ext_non_part
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@b
+POSTHOOK: query: CREATE TABLE b LIKE ext_non_part
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@b
+PREHOOK: query: INSERT OVERWRITE TABLE ext_non_part SELECT * FROM b
+PREHOOK: type: QUERY
+PREHOOK: Input: default@b
+PREHOOK: Output: default@ext_non_part
+POSTHOOK: query: INSERT OVERWRITE TABLE ext_non_part SELECT * FROM b
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@b
+POSTHOOK: Output: default@ext_non_part
+POSTHOOK: Lineage: ext_non_part.col SIMPLE [(b)b.FieldSchema(name:col, 
type:string, comment:null), ]
+PREHOOK: query: SELECT count(*) FROM ext_non_part
+PREHOOK: type: QUERY
+PREHOOK: Input: default@ext_non_part
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT count(*) FROM ext_non_part
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@ext_non_part
+#### A masked pattern was here ####
+0
+PREHOOK: query: drop table ext_non_part
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@ext_non_part
+PREHOOK: Output: default@ext_non_part
+POSTHOOK: query: drop table ext_non_part
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@ext_non_part
+POSTHOOK: Output: default@ext_non_part
+PREHOOK: query: CREATE TABLE int_non_part (col string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@int_non_part
+POSTHOOK: query: CREATE TABLE int_non_part (col string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@int_non_part
+PREHOOK: query: INSERT INTO int_non_part VALUES ('first'), ('second')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@int_non_part
+POSTHOOK: query: INSERT INTO int_non_part VALUES ('first'), ('second')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@int_non_part
+POSTHOOK: Lineage: int_non_part.col SCRIPT []
+PREHOOK: query: INSERT OVERWRITE TABLE int_non_part SELECT * FROM b
+PREHOOK: type: QUERY
+PREHOOK: Input: default@b
+PREHOOK: Output: default@int_non_part
+POSTHOOK: query: INSERT OVERWRITE TABLE int_non_part SELECT * FROM b
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@b
+POSTHOOK: Output: default@int_non_part
+POSTHOOK: Lineage: int_non_part.col SIMPLE [(b)b.FieldSchema(name:col, 
type:string, comment:null), ]
+PREHOOK: query: SELECT count(*) FROM int_non_part
+PREHOOK: type: QUERY
+PREHOOK: Input: default@int_non_part
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT count(*) FROM int_non_part
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@int_non_part
+#### A masked pattern was here ####
+0
+PREHOOK: query: drop table int_non_part
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@int_non_part
+PREHOOK: Output: default@int_non_part
+POSTHOOK: query: drop table int_non_part
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@int_non_part
+POSTHOOK: Output: default@int_non_part
+PREHOOK: query: drop table b
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@b
+PREHOOK: Output: default@b
+POSTHOOK: query: drop table b
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@b
+POSTHOOK: Output: default@b
+PREHOOK: query: CREATE EXTERNAL TABLE ext_part (col string) partitioned by 
(par string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@ext_part
+POSTHOOK: query: CREATE EXTERNAL TABLE ext_part (col string) partitioned by 
(par string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@ext_part
+PREHOOK: query: INSERT INTO ext_part PARTITION (par='1') VALUES ('first'), 
('second')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@ext_part@par=1
+POSTHOOK: query: INSERT INTO ext_part PARTITION (par='1') VALUES ('first'), 
('second')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@ext_part@par=1
+POSTHOOK: Lineage: ext_part PARTITION(par=1).col SCRIPT []
+PREHOOK: query: INSERT INTO ext_part PARTITION (par='2') VALUES ('first'), 
('second')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@ext_part@par=2
+POSTHOOK: query: INSERT INTO ext_part PARTITION (par='2') VALUES ('first'), 
('second')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@ext_part@par=2
+POSTHOOK: Lineage: ext_part PARTITION(par=2).col SCRIPT []
+PREHOOK: query: CREATE TABLE b (par string, col string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@b
+POSTHOOK: query: CREATE TABLE b (par string, col string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@b
+PREHOOK: query: INSERT OVERWRITE TABLE ext_part PARTITION (par) SELECT * FROM b
+PREHOOK: type: QUERY
+PREHOOK: Input: default@b
+PREHOOK: Output: default@ext_part
+POSTHOOK: query: INSERT OVERWRITE TABLE ext_part PARTITION (par) SELECT * FROM 
b
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@b
+PREHOOK: query: SELECT count(*) FROM ext_part
+PREHOOK: type: QUERY
+PREHOOK: Input: default@ext_part
+PREHOOK: Input: default@ext_part@par=1
+PREHOOK: Input: default@ext_part@par=2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT count(*) FROM ext_part
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@ext_part
+POSTHOOK: Input: default@ext_part@par=1
+POSTHOOK: Input: default@ext_part@par=2
+#### A masked pattern was here ####
+4
+PREHOOK: query: INSERT INTO b VALUES ('third', '1')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@b
+POSTHOOK: query: INSERT INTO b VALUES ('third', '1')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@b
+POSTHOOK: Lineage: b.col SCRIPT []
+POSTHOOK: Lineage: b.par SCRIPT []
+PREHOOK: query: INSERT OVERWRITE TABLE ext_part PARTITION (par) SELECT * FROM b
+PREHOOK: type: QUERY
+PREHOOK: Input: default@b
+PREHOOK: Output: default@ext_part
+POSTHOOK: query: INSERT OVERWRITE TABLE ext_part PARTITION (par) SELECT * FROM 
b
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@b
+POSTHOOK: Output: default@ext_part@par=1
+POSTHOOK: Lineage: ext_part PARTITION(par=1).col SIMPLE 
[(b)b.FieldSchema(name:par, type:string, comment:null), ]
+PREHOOK: query: SELECT count(*) FROM ext_part
+PREHOOK: type: QUERY
+PREHOOK: Input: default@ext_part
+PREHOOK: Input: default@ext_part@par=1
+PREHOOK: Input: default@ext_part@par=2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT count(*) FROM ext_part
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@ext_part
+POSTHOOK: Input: default@ext_part@par=1
+POSTHOOK: Input: default@ext_part@par=2
+#### A masked pattern was here ####
+3
+PREHOOK: query: SELECT * FROM ext_part ORDER BY par, col
+PREHOOK: type: QUERY
+PREHOOK: Input: default@ext_part
+PREHOOK: Input: default@ext_part@par=1
+PREHOOK: Input: default@ext_part@par=2
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM ext_part ORDER BY par, col
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@ext_part
+POSTHOOK: Input: default@ext_part@par=1
+POSTHOOK: Input: default@ext_part@par=2
+#### A masked pattern was here ####
+third  1
+first  2
+second 2
+PREHOOK: query: drop table ext_part
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@ext_part
+PREHOOK: Output: default@ext_part
+POSTHOOK: query: drop table ext_part
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@ext_part
+POSTHOOK: Output: default@ext_part
+PREHOOK: query: drop table b
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@b
+PREHOOK: Output: default@b
+POSTHOOK: query: drop table b
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@b
+POSTHOOK: Output: default@b
+PREHOOK: query: CREATE TABLE int_part (col string) partitioned by (par string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@int_part
+POSTHOOK: query: CREATE TABLE int_part (col string) partitioned by (par string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@int_part
+PREHOOK: query: INSERT INTO int_part PARTITION (par='1') VALUES ('first'), 
('second')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@int_part@par=1
+POSTHOOK: query: INSERT INTO int_part PARTITION (par='1') VALUES ('first'), 
('second')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@int_part@par=1
+POSTHOOK: Lineage: int_part PARTITION(par=1).col SCRIPT []
+PREHOOK: query: INSERT INTO int_part PARTITION (par='2') VALUES ('first'), 
('second')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@int_part@par=2
+POSTHOOK: query: INSERT INTO int_part PARTITION (par='2') VALUES ('first'), 
('second')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@int_part@par=2
+POSTHOOK: Lineage: int_part PARTITION(par=2).col SCRIPT []
+PREHOOK: query: INSERT INTO int_part PARTITION (par='3') VALUES ('first'), 
('second')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@int_part@par=3
+POSTHOOK: query: INSERT INTO int_part PARTITION (par='3') VALUES ('first'), 
('second')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@int_part@par=3
+POSTHOOK: Lineage: int_part PARTITION(par=3).col SCRIPT []
+PREHOOK: query: CREATE TABLE b (par string, col string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@b
+POSTHOOK: query: CREATE TABLE b (par string, col string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@b
+PREHOOK: query: INSERT OVERWRITE TABLE int_part PARTITION (par) SELECT * FROM b
+PREHOOK: type: QUERY
+PREHOOK: Input: default@b
+PREHOOK: Output: default@int_part
+POSTHOOK: query: INSERT OVERWRITE TABLE int_part PARTITION (par) SELECT * FROM 
b
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@b
+PREHOOK: query: SELECT count(*) FROM int_part
+PREHOOK: type: QUERY
+PREHOOK: Input: default@int_part
+PREHOOK: Input: default@int_part@par=1
+PREHOOK: Input: default@int_part@par=2
+PREHOOK: Input: default@int_part@par=3
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT count(*) FROM int_part
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@int_part
+POSTHOOK: Input: default@int_part@par=1
+POSTHOOK: Input: default@int_part@par=2
+POSTHOOK: Input: default@int_part@par=3
+#### A masked pattern was here ####
+6
+PREHOOK: query: INSERT OVERWRITE TABLE int_part PARTITION (par='3') SELECT col 
FROM b
+PREHOOK: type: QUERY
+PREHOOK: Input: default@b
+PREHOOK: Output: default@int_part@par=3
+POSTHOOK: query: INSERT OVERWRITE TABLE int_part PARTITION (par='3') SELECT 
col FROM b
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@b
+POSTHOOK: Output: default@int_part@par=3
+POSTHOOK: Lineage: int_part PARTITION(par=3).col SIMPLE 
[(b)b.FieldSchema(name:col, type:string, comment:null), ]
+PREHOOK: query: SELECT count(*) FROM int_part
+PREHOOK: type: QUERY
+PREHOOK: Input: default@int_part
+PREHOOK: Input: default@int_part@par=1
+PREHOOK: Input: default@int_part@par=2
+PREHOOK: Input: default@int_part@par=3
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT count(*) FROM int_part
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@int_part
+POSTHOOK: Input: default@int_part@par=1
+POSTHOOK: Input: default@int_part@par=2
+POSTHOOK: Input: default@int_part@par=3
+#### A masked pattern was here ####
+4
+PREHOOK: query: INSERT INTO b VALUES ('third', '1')
+PREHOOK: type: QUERY
+PREHOOK: Input: _dummy_database@_dummy_table
+PREHOOK: Output: default@b
+POSTHOOK: query: INSERT INTO b VALUES ('third', '1')
+POSTHOOK: type: QUERY
+POSTHOOK: Input: _dummy_database@_dummy_table
+POSTHOOK: Output: default@b
+POSTHOOK: Lineage: b.col SCRIPT []
+POSTHOOK: Lineage: b.par SCRIPT []
+PREHOOK: query: INSERT OVERWRITE TABLE int_part PARTITION (par) SELECT * FROM b
+PREHOOK: type: QUERY
+PREHOOK: Input: default@b
+PREHOOK: Output: default@int_part
+POSTHOOK: query: INSERT OVERWRITE TABLE int_part PARTITION (par) SELECT * FROM 
b
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@b
+POSTHOOK: Output: default@int_part@par=1
+POSTHOOK: Lineage: int_part PARTITION(par=1).col SIMPLE 
[(b)b.FieldSchema(name:par, type:string, comment:null), ]
+PREHOOK: query: SELECT count(*) FROM int_part
+PREHOOK: type: QUERY
+PREHOOK: Input: default@int_part
+PREHOOK: Input: default@int_part@par=1
+PREHOOK: Input: default@int_part@par=2
+PREHOOK: Input: default@int_part@par=3
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT count(*) FROM int_part
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@int_part
+POSTHOOK: Input: default@int_part@par=1
+POSTHOOK: Input: default@int_part@par=2
+POSTHOOK: Input: default@int_part@par=3
+#### A masked pattern was here ####
+3
+PREHOOK: query: SELECT * FROM int_part ORDER BY par, col
+PREHOOK: type: QUERY
+PREHOOK: Input: default@int_part
+PREHOOK: Input: default@int_part@par=1
+PREHOOK: Input: default@int_part@par=2
+PREHOOK: Input: default@int_part@par=3
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM int_part ORDER BY par, col
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@int_part
+POSTHOOK: Input: default@int_part@par=1
+POSTHOOK: Input: default@int_part@par=2
+POSTHOOK: Input: default@int_part@par=3
+#### A masked pattern was here ####
+third  1
+first  2
+second 2
+PREHOOK: query: drop table int_part
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@int_part
+PREHOOK: Output: default@int_part
+POSTHOOK: query: drop table int_part
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@int_part
+POSTHOOK: Output: default@int_part
+PREHOOK: query: drop table b
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@b
+PREHOOK: Output: default@b
+POSTHOOK: query: drop table b
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@b
+POSTHOOK: Output: default@b

Reply via email to