diff --git ql/pom.xml ql/pom.xml
index afdaa19..71daa26 100644
--- ql/pom.xml
+++ ql/pom.xml
@@ -381,14 +381,6 @@
${hadoop-23.version}
true
-
-
- org.apache.hadoop
- hadoop-mapreduce-client-common
- ${hadoop-23.version}
- true
- test
-
diff --git ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeFieldDesc.java ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeFieldDesc.java
index 2e375bb..9bda2ad 100755
--- ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeFieldDesc.java
+++ ql/src/java/org/apache/hadoop/hive/ql/plan/ExprNodeFieldDesc.java
@@ -103,7 +103,7 @@ public String getExprString() {
@Override
public ExprNodeDesc clone() {
- return new ExprNodeFieldDesc(typeInfo, desc, fieldName, isList);
+ return new ExprNodeFieldDesc(typeInfo, desc.clone(), fieldName, isList);
}
@Override
diff --git ql/src/test/queries/clientpositive/ppd_field_garbage.q ql/src/test/queries/clientpositive/ppd_field_garbage.q
new file mode 100644
index 0000000..23e0778
--- /dev/null
+++ ql/src/test/queries/clientpositive/ppd_field_garbage.q
@@ -0,0 +1,8 @@
+-- ppd leaves invalid expr in field expr
+CREATE TABLE test_issue (fileid int, infos ARRAY>, test_c STRUCT>);
+CREATE VIEW v_test_issue AS SELECT fileid, i.user, test_c.user_c.age FROM test_issue LATERAL VIEW explode(infos) info AS i;
+
+-- dummy data
+LOAD DATA LOCAL INPATH '../../data/files/kv1.txt' INTO TABLE test_issue;
+
+SELECT * FROM v_test_issue WHERE age = 25;
diff --git ql/src/test/results/clientpositive/ppd_field_garbage.q.out ql/src/test/results/clientpositive/ppd_field_garbage.q.out
new file mode 100644
index 0000000..0b74a41
--- /dev/null
+++ ql/src/test/results/clientpositive/ppd_field_garbage.q.out
@@ -0,0 +1,36 @@
+PREHOOK: query: -- ppd leaves invalid expr in field expr
+CREATE TABLE test_issue (fileid int, infos ARRAY>, test_c STRUCT>)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+POSTHOOK: query: -- ppd leaves invalid expr in field expr
+CREATE TABLE test_issue (fileid int, infos ARRAY>, test_c STRUCT>)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@test_issue
+PREHOOK: query: CREATE VIEW v_test_issue AS SELECT fileid, i.user, test_c.user_c.age FROM test_issue LATERAL VIEW explode(infos) info AS i
+PREHOOK: type: CREATEVIEW
+PREHOOK: Input: default@test_issue
+POSTHOOK: query: CREATE VIEW v_test_issue AS SELECT fileid, i.user, test_c.user_c.age FROM test_issue LATERAL VIEW explode(infos) info AS i
+POSTHOOK: type: CREATEVIEW
+POSTHOOK: Input: default@test_issue
+POSTHOOK: Output: default@v_test_issue
+PREHOOK: query: -- dummy data
+LOAD DATA LOCAL INPATH '../../data/files/kv1.txt' INTO TABLE test_issue
+PREHOOK: type: LOAD
+#### A masked pattern was here ####
+PREHOOK: Output: default@test_issue
+POSTHOOK: query: -- dummy data
+LOAD DATA LOCAL INPATH '../../data/files/kv1.txt' INTO TABLE test_issue
+POSTHOOK: type: LOAD
+#### A masked pattern was here ####
+POSTHOOK: Output: default@test_issue
+PREHOOK: query: SELECT * FROM v_test_issue WHERE age = 25
+PREHOOK: type: QUERY
+PREHOOK: Input: default@test_issue
+PREHOOK: Input: default@v_test_issue
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM v_test_issue WHERE age = 25
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@test_issue
+POSTHOOK: Input: default@v_test_issue
+#### A masked pattern was here ####