Index: ql/src/java/org/apache/hadoop/hive/ql/hooks/ReadEntity.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/hooks/ReadEntity.java (revision 1466697) +++ ql/src/java/org/apache/hadoop/hive/ql/hooks/ReadEntity.java (working copy) @@ -36,7 +36,7 @@ // The inputs will contain V and T (parent: V) // For views, the entities can be nested - by default, entities are at the top level - private Set parents = null; + private final Set parents = new HashSet(); /** * For serialization only. @@ -57,7 +57,6 @@ private void initParent(ReadEntity parent) { if (parent != null) { - this.parents = new HashSet(); this.parents.add(parent); } } Index: ql/src/test/queries/clientpositive/view_inputs.q =================================================================== --- ql/src/test/queries/clientpositive/view_inputs.q (revision 0) +++ ql/src/test/queries/clientpositive/view_inputs.q (working copy) @@ -0,0 +1,7 @@ +-- Tests that selecting from a view and another view that selects from that same view + +CREATE VIEW test_view1 AS SELECT * FROM src; + +CREATE VIEW test_view2 AS SELECT * FROM test_view1; + +SELECT COUNT(*) FROM test_view1 a JOIN test_view2 b ON a.key = b.key; Index: ql/src/test/results/clientpositive/view_inputs.q.out =================================================================== --- ql/src/test/results/clientpositive/view_inputs.q.out (revision 0) +++ ql/src/test/results/clientpositive/view_inputs.q.out (working copy) @@ -0,0 +1,29 @@ +PREHOOK: query: -- Tests that selecting from a view and another view that selects from that same view + +CREATE VIEW test_view1 AS SELECT * FROM src +PREHOOK: type: CREATEVIEW +POSTHOOK: query: -- Tests that selecting from a view and another view that selects from that same view + +CREATE VIEW test_view1 AS SELECT * FROM src +POSTHOOK: type: CREATEVIEW +POSTHOOK: Output: default@test_view1 +PREHOOK: query: CREATE VIEW test_view2 AS SELECT * FROM test_view1 +PREHOOK: type: CREATEVIEW +PREHOOK: Input: default@test_view1 +POSTHOOK: query: CREATE VIEW test_view2 AS SELECT * FROM test_view1 +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: default@test_view1 +POSTHOOK: Output: default@test_view2 +PREHOOK: query: SELECT COUNT(*) FROM test_view1 a JOIN test_view2 b ON a.key = b.key +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Input: default@test_view1 +PREHOOK: Input: default@test_view2 +#### A masked pattern was here #### +POSTHOOK: query: SELECT COUNT(*) FROM test_view1 a JOIN test_view2 b ON a.key = b.key +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Input: default@test_view1 +POSTHOOK: Input: default@test_view2 +#### A masked pattern was here #### +1028