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) @@ -43,6 +43,7 @@ */ public ReadEntity() { super(); + this.parents = new HashSet(); } /** @@ -53,17 +54,17 @@ */ public ReadEntity(Table t) { super(t); + this.parents = new HashSet(); } private void initParent(ReadEntity parent) { if (parent != null) { - this.parents = new HashSet(); this.parents.add(parent); } } public ReadEntity(Table t, ReadEntity parent) { - super(t); + this(t); initParent(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