You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by sp...@apache.org on 2017/03/22 22:32:35 UTC
[2/2] hive git commit: HIVE-15867: Add blobstore tests for import/export (Juan Rodríguez Hortalá, reviewed by Sergio Pena)
HIVE-15867: Add blobstore tests for import/export (Juan Rodr�guez Hortal�, reviewed by Sergio Pena)
Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/9c692a5c
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/9c692a5c
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/9c692a5c
Branch: refs/heads/master
Commit: 9c692a5c48f699d4a01a539093bc51cb4c03107d
Parents: e434f83
Author: Juan Rodr�guez Hortal� <ho...@amazon.com>
Authored: Wed Mar 22 17:32:02 2017 -0500
Committer: Sergio Pena <se...@cloudera.com>
Committed: Wed Mar 22 17:32:02 2017 -0500
----------------------------------------------------------------------
.../org/apache/hadoop/hive/conf/HiveConf.java | 2 +-
...import_addpartition_blobstore_to_blobstore.q | 45 +++
.../import_addpartition_blobstore_to_local.q | 44 +++
...import_addpartition_blobstore_to_warehouse.q | 41 +++
.../import_addpartition_local_to_blobstore.q | 44 +++
.../import_blobstore_to_blobstore.q | 30 ++
.../import_blobstore_to_blobstore_nonpart.q | 25 ++
.../clientpositive/import_blobstore_to_local.q | 30 ++
.../import_blobstore_to_warehouse.q | 28 ++
.../import_blobstore_to_warehouse_nonpart.q | 23 ++
.../clientpositive/import_local_to_blobstore.q | 31 ++
.../src/test/resources/hive-site.xml | 5 +
...rt_addpartition_blobstore_to_blobstore.q.out | 283 +++++++++++++++++++
...import_addpartition_blobstore_to_local.q.out | 283 +++++++++++++++++++
...rt_addpartition_blobstore_to_warehouse.q.out | 271 ++++++++++++++++++
...import_addpartition_local_to_blobstore.q.out | 277 ++++++++++++++++++
.../import_blobstore_to_blobstore.q.out | 161 +++++++++++
.../import_blobstore_to_blobstore_nonpart.q.out | 103 +++++++
.../import_blobstore_to_local.q.out | 161 +++++++++++
.../import_blobstore_to_warehouse.q.out | 157 ++++++++++
.../import_blobstore_to_warehouse_nonpart.q.out | 99 +++++++
.../import_local_to_blobstore.q.out | 159 +++++++++++
22 files changed, 2301 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
----------------------------------------------------------------------
diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
index 1b186f7..d4a0b2e 100644
--- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
+++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java
@@ -2133,7 +2133,7 @@ public class HiveConf extends Configuration {
"When true the HDFS location stored in the index file will be ignored at runtime.\n" +
"If the data got moved or the name of the cluster got changed, the index data should still be usable."),
- HIVE_EXIM_URI_SCHEME_WL("hive.exim.uri.scheme.whitelist", "hdfs,pfile,file",
+ HIVE_EXIM_URI_SCHEME_WL("hive.exim.uri.scheme.whitelist", "hdfs,pfile,file,s3,s3a",
"A comma separated list of acceptable URI schemes for import and export."),
// temporary variable for testing. This is added just to turn off this feature in case of a bug in
// deployment. It has not been documented in hive-default.xml intentionally, this should be removed
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_blobstore_to_blobstore.q
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_blobstore_to_blobstore.q b/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_blobstore_to_blobstore.q
new file mode 100644
index 0000000..8fee8ed
--- /dev/null
+++ b/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_blobstore_to_blobstore.q
@@ -0,0 +1,45 @@
+-- Check we can create a partitioned table in the warehouse,
+-- export it to a blobstore, and then import its different partitions
+-- using the blobstore as target location
+DROP TABLE exim_employee;
+CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE;
+
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz");
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+dfs -rm -r -f ${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_blobstore/export/exim_employee;
+EXPORT TABLE exim_employee
+TO '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_blobstore/export/exim_employee';
+
+DROP TABLE exim_employee;
+dfs -rm -r -f ${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_blobstore/import/exim_employee;
+IMPORT TABLE exim_employee PARTITION (emp_country='us')
+FROM '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_blobstore/export/exim_employee'
+LOCATION '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_blobstore/import/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+IMPORT TABLE exim_employee PARTITION (emp_country='cz')
+FROM '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_blobstore/export/exim_employee'
+LOCATION '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_blobstore/import/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+IMPORT TABLE exim_employee PARTITION (emp_country='in')
+FROM '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_blobstore/export/exim_employee'
+LOCATION '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_blobstore/import/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_blobstore_to_local.q
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_blobstore_to_local.q b/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_blobstore_to_local.q
new file mode 100644
index 0000000..28bc399
--- /dev/null
+++ b/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_blobstore_to_local.q
@@ -0,0 +1,44 @@
+-- Check we can create a partitioned table in the warehouse,
+-- export it to a blobstore, and then import its different partitions
+-- using the local filesystem as target location
+DROP TABLE exim_employee;
+CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE;
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz");
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+dfs -rm -r -f ${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_local/export/exim_employee;
+EXPORT TABLE exim_employee
+TO '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_local/export/exim_employee';
+
+DROP TABLE exim_employee;
+dfs -rm -r -f ${system:build.test.dir}/import_addpartition_blobstore_to_local/import/exim_employee;
+IMPORT TABLE exim_employee PARTITION (emp_country='us')
+FROM '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_local/export/exim_employee'
+LOCATION 'file://${system:build.test.dir}/import_addpartition_blobstore_to_local/import/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+IMPORT TABLE exim_employee PARTITION (emp_country='cz')
+FROM '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_local/export/exim_employee'
+LOCATION 'file://${system:build.test.dir}/import_addpartition_blobstore_to_local/import/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+IMPORT TABLE exim_employee PARTITION (emp_country='in')
+FROM '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_local/export/exim_employee'
+LOCATION 'file://${system:build.test.dir}/import_addpartition_blobstore_to_local/import/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_blobstore_to_warehouse.q
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_blobstore_to_warehouse.q b/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_blobstore_to_warehouse.q
new file mode 100644
index 0000000..987dacf
--- /dev/null
+++ b/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_blobstore_to_warehouse.q
@@ -0,0 +1,41 @@
+-- Check we can create a partitioned table in the warehouse,
+-- export it to a blobstore, and then import its different partitions
+-- using the warehouse as target location
+DROP TABLE exim_employee;
+CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE;
+
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz");
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+dfs -rm -r -f ${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_warehouse/export/exim_employee;
+EXPORT TABLE exim_employee
+TO '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_warehouse/export/exim_employee';
+
+DROP TABLE exim_employee;
+IMPORT TABLE exim_employee PARTITION (emp_country='us')
+FROM '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_warehouse/export/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+IMPORT TABLE exim_employee PARTITION (emp_country='cz')
+FROM '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_warehouse/export/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+IMPORT TABLE exim_employee PARTITION (emp_country='in')
+FROM '${hiveconf:test.blobstore.path.unique}/import_addpartition_blobstore_to_warehouse/export/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_local_to_blobstore.q
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_local_to_blobstore.q b/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_local_to_blobstore.q
new file mode 100644
index 0000000..8fde250
--- /dev/null
+++ b/itests/hive-blobstore/src/test/queries/clientpositive/import_addpartition_local_to_blobstore.q
@@ -0,0 +1,44 @@
+-- Check we can create a partitioned table in the warehouse,
+-- export it to the local filesystem, and then import its
+-- different partitions using a blobstore as target location
+DROP TABLE exim_employee;
+CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE;
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz");
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+dfs -rm -r -f ${system:build.test.dir}/import_addpartition_local_to_blobstore/export/exim_employee;
+EXPORT TABLE exim_employee
+TO 'file://${system:build.test.dir}/import_addpartition_local_to_blobstore/export/exim_employee';
+
+DROP TABLE exim_employee;
+dfs -rm -r -f ${hiveconf:test.blobstore.path.unique}/import_addpartition_local_to_blobstore/import/exim_employee;
+IMPORT TABLE exim_employee PARTITION (emp_country='us')
+FROM 'file://${system:build.test.dir}/import_addpartition_local_to_blobstore/export/exim_employee'
+LOCATION '${hiveconf:test.blobstore.path.unique}/import_addpartition_local_to_blobstore/import/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+IMPORT TABLE exim_employee PARTITION (emp_country='cz')
+FROM 'file://${system:build.test.dir}/import_addpartition_local_to_blobstore/export/exim_employee'
+LOCATION '${hiveconf:test.blobstore.path.unique}/import_addpartition_local_to_blobstore/import/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+IMPORT TABLE exim_employee PARTITION (emp_country='in')
+FROM 'file://${system:build.test.dir}/import_addpartition_local_to_blobstore/export/exim_employee'
+LOCATION '${hiveconf:test.blobstore.path.unique}/import_addpartition_local_to_blobstore/import/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_blobstore.q
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_blobstore.q b/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_blobstore.q
new file mode 100644
index 0000000..a9f9a8f
--- /dev/null
+++ b/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_blobstore.q
@@ -0,0 +1,30 @@
+-- Check we can create a partitioned table in the warehouse,
+-- export it to a blobstore, and then import the
+-- whole table using the blobstore as target location
+DROP TABLE exim_employee;
+CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE;
+
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz");
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+dfs -rm -r -f ${hiveconf:test.blobstore.path.unique}/import_blobstore_to_blobstore/export/exim_employee;
+EXPORT TABLE exim_employee PARTITION (emp_country='us')
+TO '${hiveconf:test.blobstore.path.unique}/import_blobstore_to_blobstore/export/exim_employee';
+
+DROP TABLE exim_employee;
+dfs -rm -r -f ${hiveconf:test.blobstore.path.unique}/import_blobstore_to_blobstore/import/exim_employee;
+IMPORT FROM '${hiveconf:test.blobstore.path.unique}/import_blobstore_to_blobstore/export/exim_employee'
+LOCATION '${hiveconf:test.blobstore.path.unique}/import_blobstore_to_blobstore/import/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_blobstore_nonpart.q
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_blobstore_nonpart.q b/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_blobstore_nonpart.q
new file mode 100644
index 0000000..7b3f0a3
--- /dev/null
+++ b/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_blobstore_nonpart.q
@@ -0,0 +1,25 @@
+-- Check we can create a non partitioned table in the warehouse,
+-- export it to a blobstore, and then import the
+-- table using the blobstore as target location
+DROP TABLE exim_employee;
+CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+STORED AS TEXTFILE;
+
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee;
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+dfs -rm -r -f ${hiveconf:test.blobstore.path.unique}/import_blobstore_to_blobstore_nonpart/export/exim_employee;
+EXPORT TABLE exim_employee
+TO '${hiveconf:test.blobstore.path.unique}/import_blobstore_to_blobstore_nonpart/export/exim_employee';
+
+DROP TABLE exim_employee;
+dfs -rm -r -f ${hiveconf:test.blobstore.path.unique}/import_blobstore_to_blobstore_nonpart/import/exim_employee;
+IMPORT FROM '${hiveconf:test.blobstore.path.unique}/import_blobstore_to_blobstore_nonpart/export/exim_employee'
+LOCATION '${hiveconf:test.blobstore.path.unique}/import_blobstore_to_blobstore_nonpart/import/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_local.q
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_local.q b/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_local.q
new file mode 100644
index 0000000..ac3c451
--- /dev/null
+++ b/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_local.q
@@ -0,0 +1,30 @@
+-- Check we can create a partitioned table in the warehouse,
+-- export it to a blobstore, and then import the
+-- whole table using the local filesystem as target location
+DROP TABLE exim_employee;
+CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE;
+
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz");
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+dfs -rm -r -f ${hiveconf:test.blobstore.path.unique}/import_blobstore_to_local/export/exim_employee;
+EXPORT TABLE exim_employee PARTITION (emp_country='us')
+TO '${hiveconf:test.blobstore.path.unique}/import_blobstore_to_local/export/exim_employee';
+
+DROP TABLE exim_employee;
+dfs -rm -r -f ${system:build.test.dir}/import_blobstore_to_local/import/exim_employee;
+IMPORT FROM '${hiveconf:test.blobstore.path.unique}/import_blobstore_to_local/export/exim_employee'
+LOCATION "file://${system:build.test.dir}/import_blobstore_to_local/import/exim_employee";
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_warehouse.q
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_warehouse.q b/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_warehouse.q
new file mode 100644
index 0000000..9f6fc54
--- /dev/null
+++ b/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_warehouse.q
@@ -0,0 +1,28 @@
+-- Check we can create a partitioned table in the warehouse,
+-- export it to a blobstore, and then import the
+-- whole table using the warehouse as target location
+DROP TABLE exim_employee;
+CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE;
+
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz");
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+dfs -rm -r -f ${hiveconf:test.blobstore.path.unique}/import_blobstore_to_warehouse/export/exim_employee;
+EXPORT TABLE exim_employee PARTITION (emp_country='us')
+TO '${hiveconf:test.blobstore.path.unique}/import_blobstore_to_warehouse/export/exim_employee';
+
+DROP TABLE exim_employee;
+IMPORT FROM '${hiveconf:test.blobstore.path.unique}/import_blobstore_to_warehouse/export/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_warehouse_nonpart.q
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_warehouse_nonpart.q b/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_warehouse_nonpart.q
new file mode 100644
index 0000000..6f28a51
--- /dev/null
+++ b/itests/hive-blobstore/src/test/queries/clientpositive/import_blobstore_to_warehouse_nonpart.q
@@ -0,0 +1,23 @@
+-- Check we can create a non partitioned table in the warehouse,
+-- export it to a blobstore, and then import the
+-- table using the warehouse as target location
+DROP TABLE exim_employee;
+CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+STORED AS TEXTFILE;
+
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee;
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+dfs -rm -r -f ${hiveconf:test.blobstore.path.unique}/import_blobstore_to_warehouse_nonpart/export/exim_employee;
+EXPORT TABLE exim_employee
+TO '${hiveconf:test.blobstore.path.unique}/import_blobstore_to_warehouse_nonpart/export/exim_employee';
+
+DROP TABLE exim_employee;
+IMPORT FROM '${hiveconf:test.blobstore.path.unique}/import_blobstore_to_warehouse_nonpart/export/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/queries/clientpositive/import_local_to_blobstore.q
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/queries/clientpositive/import_local_to_blobstore.q b/itests/hive-blobstore/src/test/queries/clientpositive/import_local_to_blobstore.q
new file mode 100644
index 0000000..0412d3c
--- /dev/null
+++ b/itests/hive-blobstore/src/test/queries/clientpositive/import_local_to_blobstore.q
@@ -0,0 +1,31 @@
+-- Check we can create a partitioned table in the warehouse,
+-- export it to the local filesystem, and then import the
+-- whole table using a blobstore as target location
+DROP TABLE exim_employee;
+CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE;
+
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us");
+LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz");
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
+
+dfs -rm -r -f ${system:build.test.dir}/import_local_to_blobstore/export/exim_employee;
+
+EXPORT TABLE exim_employee PARTITION (emp_country='us')
+TO 'file://${system:build.test.dir}/import_local_to_blobstore/export/exim_employee';
+
+DROP TABLE exim_employee;
+dfs -rm -r -f ${hiveconf:test.blobstore.path.unique}/import_local_to_blobstore/import/exim_employee;
+IMPORT FROM "file://${system:build.test.dir}/import_local_to_blobstore/export/exim_employee"
+LOCATION '${hiveconf:test.blobstore.path.unique}/import_local_to_blobstore/import/exim_employee';
+
+DESCRIBE EXTENDED exim_employee;
+SELECT * FROM exim_employee;
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/resources/hive-site.xml
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/resources/hive-site.xml b/itests/hive-blobstore/src/test/resources/hive-site.xml
index 406b3b8..038db0d 100644
--- a/itests/hive-blobstore/src/test/resources/hive-site.xml
+++ b/itests/hive-blobstore/src/test/resources/hive-site.xml
@@ -279,6 +279,11 @@
<value>pblob:${system:test.tmp.dir}/bucket</value>
</property>
+ <property>
+ <name>hive.exim.uri.scheme.whitelist</name>
+ <value>hdfs,pfile,file,s3,s3a,pblob</value>
+ </property>
+
<!--
To run these tests:
# Create a file blobstore-conf.xml - DO NOT ADD TO REVISION CONTROL
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_blobstore_to_blobstore.q.out
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_blobstore_to_blobstore.q.out b/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_blobstore_to_blobstore.q.out
new file mode 100644
index 0000000..c1e57ee
--- /dev/null
+++ b/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_blobstore_to_blobstore.q.out
@@ -0,0 +1,283 @@
+PREHOOK: query: DROP TABLE exim_employee
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE exim_employee
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=in
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=us
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=cz
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=in
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=in
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 cz
+2 cz
+3 cz
+4 cz
+5 cz
+6 cz
+1 in
+2 in
+3 in
+4 in
+5 in
+6 in
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
+PREHOOK: query: EXPORT TABLE exim_employee
+TO '### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee'
+PREHOOK: type: EXPORT
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=in
+PREHOOK: Input: default@exim_employee@emp_country=us
+PREHOOK: Output: ### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee
+POSTHOOK: query: EXPORT TABLE exim_employee
+TO '### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee'
+POSTHOOK: type: EXPORT
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=in
+POSTHOOK: Input: default@exim_employee@emp_country=us
+POSTHOOK: Output: ### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee
+PREHOOK: query: DROP TABLE exim_employee
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: DROP TABLE exim_employee
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='us')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee'
+#### A masked pattern was here ####
+PREHOOK: type: IMPORT
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/import/exim_employee
+PREHOOK: Output: database:default
+POSTHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='us')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee'
+#### A masked pattern was here ####
+POSTHOOK: type: IMPORT
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/import/exim_employee
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=us
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
+PREHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='cz')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee'
+#### A masked pattern was here ####
+PREHOOK: type: IMPORT
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/import/exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='cz')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee'
+#### A masked pattern was here ####
+POSTHOOK: type: IMPORT
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/import/exim_employee
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=cz
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 cz
+2 cz
+3 cz
+4 cz
+5 cz
+6 cz
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
+PREHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='in')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee'
+#### A masked pattern was here ####
+PREHOOK: type: IMPORT
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/import/exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='in')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee'
+#### A masked pattern was here ####
+POSTHOOK: type: IMPORT
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/export/exim_employee
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_blobstore/import/exim_employee
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=in
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=in
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=in
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 cz
+2 cz
+3 cz
+4 cz
+5 cz
+6 cz
+1 in
+2 in
+3 in
+4 in
+5 in
+6 in
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_blobstore_to_local.q.out
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_blobstore_to_local.q.out b/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_blobstore_to_local.q.out
new file mode 100644
index 0000000..4d296da
--- /dev/null
+++ b/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_blobstore_to_local.q.out
@@ -0,0 +1,283 @@
+PREHOOK: query: DROP TABLE exim_employee
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE exim_employee
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=in
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=us
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=cz
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=in
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=in
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 cz
+2 cz
+3 cz
+4 cz
+5 cz
+6 cz
+1 in
+2 in
+3 in
+4 in
+5 in
+6 in
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
+PREHOOK: query: EXPORT TABLE exim_employee
+TO '### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee'
+PREHOOK: type: EXPORT
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=in
+PREHOOK: Input: default@exim_employee@emp_country=us
+PREHOOK: Output: ### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee
+POSTHOOK: query: EXPORT TABLE exim_employee
+TO '### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee'
+POSTHOOK: type: EXPORT
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=in
+POSTHOOK: Input: default@exim_employee@emp_country=us
+POSTHOOK: Output: ### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee
+PREHOOK: query: DROP TABLE exim_employee
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: DROP TABLE exim_employee
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='us')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee'
+#### A masked pattern was here ####
+PREHOOK: type: IMPORT
+#### A masked pattern was here ####
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee
+PREHOOK: Output: database:default
+POSTHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='us')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee'
+#### A masked pattern was here ####
+POSTHOOK: type: IMPORT
+#### A masked pattern was here ####
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=us
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
+PREHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='cz')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee'
+#### A masked pattern was here ####
+PREHOOK: type: IMPORT
+#### A masked pattern was here ####
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='cz')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee'
+#### A masked pattern was here ####
+POSTHOOK: type: IMPORT
+#### A masked pattern was here ####
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=cz
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 cz
+2 cz
+3 cz
+4 cz
+5 cz
+6 cz
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
+PREHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='in')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee'
+#### A masked pattern was here ####
+PREHOOK: type: IMPORT
+#### A masked pattern was here ####
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='in')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee'
+#### A masked pattern was here ####
+POSTHOOK: type: IMPORT
+#### A masked pattern was here ####
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_local/export/exim_employee
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=in
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=in
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=in
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 cz
+2 cz
+3 cz
+4 cz
+5 cz
+6 cz
+1 in
+2 in
+3 in
+4 in
+5 in
+6 in
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_blobstore_to_warehouse.q.out
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_blobstore_to_warehouse.q.out b/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_blobstore_to_warehouse.q.out
new file mode 100644
index 0000000..fce5ffe
--- /dev/null
+++ b/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_blobstore_to_warehouse.q.out
@@ -0,0 +1,271 @@
+PREHOOK: query: DROP TABLE exim_employee
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE exim_employee
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=in
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=us
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=cz
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=in
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=in
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 cz
+2 cz
+3 cz
+4 cz
+5 cz
+6 cz
+1 in
+2 in
+3 in
+4 in
+5 in
+6 in
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
+PREHOOK: query: EXPORT TABLE exim_employee
+TO '### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee'
+PREHOOK: type: EXPORT
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=in
+PREHOOK: Input: default@exim_employee@emp_country=us
+PREHOOK: Output: ### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee
+POSTHOOK: query: EXPORT TABLE exim_employee
+TO '### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee'
+POSTHOOK: type: EXPORT
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=in
+POSTHOOK: Input: default@exim_employee@emp_country=us
+POSTHOOK: Output: ### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee
+PREHOOK: query: DROP TABLE exim_employee
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: DROP TABLE exim_employee
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='us')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee'
+PREHOOK: type: IMPORT
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee
+PREHOOK: Output: database:default
+POSTHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='us')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee'
+POSTHOOK: type: IMPORT
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=us
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
+PREHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='cz')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee'
+PREHOOK: type: IMPORT
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='cz')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee'
+POSTHOOK: type: IMPORT
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=cz
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 cz
+2 cz
+3 cz
+4 cz
+5 cz
+6 cz
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
+PREHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='in')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee'
+PREHOOK: type: IMPORT
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='in')
+FROM '### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee'
+POSTHOOK: type: IMPORT
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_blobstore_to_warehouse/export/exim_employee
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=in
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=in
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=in
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 cz
+2 cz
+3 cz
+4 cz
+5 cz
+6 cz
+1 in
+2 in
+3 in
+4 in
+5 in
+6 in
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_local_to_blobstore.q.out
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_local_to_blobstore.q.out b/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_local_to_blobstore.q.out
new file mode 100644
index 0000000..72068c5
--- /dev/null
+++ b/itests/hive-blobstore/src/test/results/clientpositive/import_addpartition_local_to_blobstore.q.out
@@ -0,0 +1,277 @@
+PREHOOK: query: DROP TABLE exim_employee
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE exim_employee
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=in
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=us
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=cz
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=in
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=in
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 cz
+2 cz
+3 cz
+4 cz
+5 cz
+6 cz
+1 in
+2 in
+3 in
+4 in
+5 in
+6 in
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
+PREHOOK: query: EXPORT TABLE exim_employee
+#### A masked pattern was here ####
+PREHOOK: type: EXPORT
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=in
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: EXPORT TABLE exim_employee
+#### A masked pattern was here ####
+POSTHOOK: type: EXPORT
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=in
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+PREHOOK: query: DROP TABLE exim_employee
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: DROP TABLE exim_employee
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='us')
+#### A masked pattern was here ####
+PREHOOK: type: IMPORT
+#### A masked pattern was here ####
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_local_to_blobstore/import/exim_employee
+PREHOOK: Output: database:default
+POSTHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='us')
+#### A masked pattern was here ####
+POSTHOOK: type: IMPORT
+#### A masked pattern was here ####
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_local_to_blobstore/import/exim_employee
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=us
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
+PREHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='cz')
+#### A masked pattern was here ####
+PREHOOK: type: IMPORT
+#### A masked pattern was here ####
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_local_to_blobstore/import/exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='cz')
+#### A masked pattern was here ####
+POSTHOOK: type: IMPORT
+#### A masked pattern was here ####
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_local_to_blobstore/import/exim_employee
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=cz
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 cz
+2 cz
+3 cz
+4 cz
+5 cz
+6 cz
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
+PREHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='in')
+#### A masked pattern was here ####
+PREHOOK: type: IMPORT
+#### A masked pattern was here ####
+PREHOOK: Input: ### test.blobstore.path ###/import_addpartition_local_to_blobstore/import/exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: IMPORT TABLE exim_employee PARTITION (emp_country='in')
+#### A masked pattern was here ####
+POSTHOOK: type: IMPORT
+#### A masked pattern was here ####
+POSTHOOK: Input: ### test.blobstore.path ###/import_addpartition_local_to_blobstore/import/exim_employee
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=in
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=in
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=in
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 cz
+2 cz
+3 cz
+4 cz
+5 cz
+6 cz
+1 in
+2 in
+3 in
+4 in
+5 in
+6 in
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/results/clientpositive/import_blobstore_to_blobstore.q.out
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/results/clientpositive/import_blobstore_to_blobstore.q.out b/itests/hive-blobstore/src/test/results/clientpositive/import_blobstore_to_blobstore.q.out
new file mode 100644
index 0000000..b15a22f
--- /dev/null
+++ b/itests/hive-blobstore/src/test/results/clientpositive/import_blobstore_to_blobstore.q.out
@@ -0,0 +1,161 @@
+PREHOOK: query: DROP TABLE exim_employee
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE exim_employee
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=in
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=us
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=cz
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=in
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=in
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 cz
+2 cz
+3 cz
+4 cz
+5 cz
+6 cz
+1 in
+2 in
+3 in
+4 in
+5 in
+6 in
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
+PREHOOK: query: EXPORT TABLE exim_employee PARTITION (emp_country='us')
+TO '### test.blobstore.path ###/import_blobstore_to_blobstore/export/exim_employee'
+PREHOOK: type: EXPORT
+PREHOOK: Input: default@exim_employee@emp_country=us
+PREHOOK: Output: ### test.blobstore.path ###/import_blobstore_to_blobstore/export/exim_employee
+POSTHOOK: query: EXPORT TABLE exim_employee PARTITION (emp_country='us')
+TO '### test.blobstore.path ###/import_blobstore_to_blobstore/export/exim_employee'
+POSTHOOK: type: EXPORT
+POSTHOOK: Input: default@exim_employee@emp_country=us
+POSTHOOK: Output: ### test.blobstore.path ###/import_blobstore_to_blobstore/export/exim_employee
+PREHOOK: query: DROP TABLE exim_employee
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: DROP TABLE exim_employee
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: IMPORT FROM '### test.blobstore.path ###/import_blobstore_to_blobstore/export/exim_employee'
+#### A masked pattern was here ####
+PREHOOK: type: IMPORT
+PREHOOK: Input: ### test.blobstore.path ###/import_blobstore_to_blobstore/export/exim_employee
+PREHOOK: Input: ### test.blobstore.path ###/import_blobstore_to_blobstore/import/exim_employee
+PREHOOK: Output: database:default
+POSTHOOK: query: IMPORT FROM '### test.blobstore.path ###/import_blobstore_to_blobstore/export/exim_employee'
+#### A masked pattern was here ####
+POSTHOOK: type: IMPORT
+POSTHOOK: Input: ### test.blobstore.path ###/import_blobstore_to_blobstore/export/exim_employee
+POSTHOOK: Input: ### test.blobstore.path ###/import_blobstore_to_blobstore/import/exim_employee
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=us
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/results/clientpositive/import_blobstore_to_blobstore_nonpart.q.out
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/results/clientpositive/import_blobstore_to_blobstore_nonpart.q.out b/itests/hive-blobstore/src/test/results/clientpositive/import_blobstore_to_blobstore_nonpart.q.out
new file mode 100644
index 0000000..d92b6c1
--- /dev/null
+++ b/itests/hive-blobstore/src/test/results/clientpositive/import_blobstore_to_blobstore_nonpart.q.out
@@ -0,0 +1,103 @@
+PREHOOK: query: DROP TABLE exim_employee
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE exim_employee
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+#### A masked pattern was here ####
+1
+2
+3
+4
+5
+6
+PREHOOK: query: EXPORT TABLE exim_employee
+TO '### test.blobstore.path ###/import_blobstore_to_blobstore_nonpart/export/exim_employee'
+PREHOOK: type: EXPORT
+PREHOOK: Input: default@exim_employee
+PREHOOK: Output: ### test.blobstore.path ###/import_blobstore_to_blobstore_nonpart/export/exim_employee
+POSTHOOK: query: EXPORT TABLE exim_employee
+TO '### test.blobstore.path ###/import_blobstore_to_blobstore_nonpart/export/exim_employee'
+POSTHOOK: type: EXPORT
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Output: ### test.blobstore.path ###/import_blobstore_to_blobstore_nonpart/export/exim_employee
+PREHOOK: query: DROP TABLE exim_employee
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: DROP TABLE exim_employee
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: IMPORT FROM '### test.blobstore.path ###/import_blobstore_to_blobstore_nonpart/export/exim_employee'
+#### A masked pattern was here ####
+PREHOOK: type: IMPORT
+PREHOOK: Input: ### test.blobstore.path ###/import_blobstore_to_blobstore_nonpart/export/exim_employee
+PREHOOK: Input: ### test.blobstore.path ###/import_blobstore_to_blobstore_nonpart/import/exim_employee
+PREHOOK: Output: database:default
+POSTHOOK: query: IMPORT FROM '### test.blobstore.path ###/import_blobstore_to_blobstore_nonpart/export/exim_employee'
+#### A masked pattern was here ####
+POSTHOOK: type: IMPORT
+POSTHOOK: Input: ### test.blobstore.path ###/import_blobstore_to_blobstore_nonpart/export/exim_employee
+POSTHOOK: Input: ### test.blobstore.path ###/import_blobstore_to_blobstore_nonpart/import/exim_employee
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+#### A masked pattern was here ####
+1
+2
+3
+4
+5
+6
http://git-wip-us.apache.org/repos/asf/hive/blob/9c692a5c/itests/hive-blobstore/src/test/results/clientpositive/import_blobstore_to_local.q.out
----------------------------------------------------------------------
diff --git a/itests/hive-blobstore/src/test/results/clientpositive/import_blobstore_to_local.q.out b/itests/hive-blobstore/src/test/results/clientpositive/import_blobstore_to_local.q.out
new file mode 100644
index 0000000..4d2eeb0
--- /dev/null
+++ b/itests/hive-blobstore/src/test/results/clientpositive/import_blobstore_to_local.q.out
@@ -0,0 +1,161 @@
+PREHOOK: query: DROP TABLE exim_employee
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE exim_employee
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: CREATE TABLE exim_employee (emp_id int COMMENT "employee id")
+COMMENT "employee table"
+PARTITIONED BY (emp_country string COMMENT "two char iso code")
+STORED AS TEXTFILE
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="in")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=in
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="us")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=us
+PREHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz")
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: LOAD DATA LOCAL INPATH "../../data/files/test.dat"
+INTO TABLE exim_employee PARTITION (emp_country="cz")
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=cz
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=cz
+PREHOOK: Input: default@exim_employee@emp_country=in
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=cz
+POSTHOOK: Input: default@exim_employee@emp_country=in
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 cz
+2 cz
+3 cz
+4 cz
+5 cz
+6 cz
+1 in
+2 in
+3 in
+4 in
+5 in
+6 in
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us
+PREHOOK: query: EXPORT TABLE exim_employee PARTITION (emp_country='us')
+TO '### test.blobstore.path ###/import_blobstore_to_local/export/exim_employee'
+PREHOOK: type: EXPORT
+PREHOOK: Input: default@exim_employee@emp_country=us
+PREHOOK: Output: ### test.blobstore.path ###/import_blobstore_to_local/export/exim_employee
+POSTHOOK: query: EXPORT TABLE exim_employee PARTITION (emp_country='us')
+TO '### test.blobstore.path ###/import_blobstore_to_local/export/exim_employee'
+POSTHOOK: type: EXPORT
+POSTHOOK: Input: default@exim_employee@emp_country=us
+POSTHOOK: Output: ### test.blobstore.path ###/import_blobstore_to_local/export/exim_employee
+PREHOOK: query: DROP TABLE exim_employee
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@exim_employee
+PREHOOK: Output: default@exim_employee
+POSTHOOK: query: DROP TABLE exim_employee
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Output: default@exim_employee
+PREHOOK: query: IMPORT FROM '### test.blobstore.path ###/import_blobstore_to_local/export/exim_employee'
+#### A masked pattern was here ####
+PREHOOK: type: IMPORT
+#### A masked pattern was here ####
+PREHOOK: Input: ### test.blobstore.path ###/import_blobstore_to_local/export/exim_employee
+PREHOOK: Output: database:default
+POSTHOOK: query: IMPORT FROM '### test.blobstore.path ###/import_blobstore_to_local/export/exim_employee'
+#### A masked pattern was here ####
+POSTHOOK: type: IMPORT
+#### A masked pattern was here ####
+POSTHOOK: Input: ### test.blobstore.path ###/import_blobstore_to_local/export/exim_employee
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@exim_employee
+POSTHOOK: Output: default@exim_employee@emp_country=us
+PREHOOK: query: DESCRIBE EXTENDED exim_employee
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@exim_employee
+POSTHOOK: query: DESCRIBE EXTENDED exim_employee
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@exim_employee
+emp_id int employee id
+emp_country string two char iso code
+
+# Partition Information
+# col_name data_type comment
+
+emp_country string two char iso code
+
+#### A masked pattern was here ####
+PREHOOK: query: SELECT * FROM exim_employee
+PREHOOK: type: QUERY
+PREHOOK: Input: default@exim_employee
+PREHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM exim_employee
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@exim_employee
+POSTHOOK: Input: default@exim_employee@emp_country=us
+#### A masked pattern was here ####
+1 us
+2 us
+3 us
+4 us
+5 us
+6 us