[ https://issues.apache.org/jira/browse/DRILL-2830?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Victoria Markman updated DRILL-2830: ------------------------------------ Description: Create a view by: {code} create view v1(x, y) as select n_regionkey, n_nationkey from cp.`tpch/nation.parquet`; {code} And join this view with the file which created the view with condition t.n_nationkey = v1.y (where 'y' is n_nationkey) {code} select t.n_nationkey from cp.`tpch/nation.parquet` t inner join v1 on t.n_nationkey = v1.y; +-------------+ | n_nationkey | +-------------+ | 0 | | 1 | | 1 | | 1 | | 4 | | 0 | | 3 | | 3 | | 2 | | 2 | | 4 | | 4 | | 2 | | 4 | | 0 | | 0 | | 0 | | 1 | | 2 | | 3 | | 4 | | 2 | | 3 | | 3 | | 1 | +-------------+ 25 rows selected (0.153 seconds) {code} After investigating the plan, I found out that the result was produced as if the join condition was t.n_nationkey = v1.x (where x is 'n_regionkey') was: Create a view by: {code} create view v1(x, y) as select n_regionkey, n_nationkey from cp.`tpch/nation.parquet`; {code} And join this view with the file which created the view with condition t.n_nationkey = v1.y (where 'y' is n_nationkey) {code} select t.n_nationkey from cp.`tpch/nation.parquet` t inner join v1 on t.n_nationkey = v1.y; {code} +-------------+ | n_nationkey | +-------------+ | 0 | | 1 | | 1 | | 1 | | 4 | | 0 | | 3 | | 3 | | 2 | | 2 | | 4 | | 4 | | 2 | | 4 | | 0 | | 0 | | 0 | | 1 | | 2 | | 3 | | 4 | | 2 | | 3 | | 3 | | 1 | +-------------+ 25 rows selected (0.153 seconds) {code} After investigating the plan, I found out that the result was produced as if the join condition was t.n_nationkey = v1.x (where x is 'n_regionkey') > Self-Join via view gives wrong results > -------------------------------------- > > Key: DRILL-2830 > URL: https://issues.apache.org/jira/browse/DRILL-2830 > Project: Apache Drill > Issue Type: Bug > Components: Query Planning & Optimization > Reporter: Sean Hsuan-Yi Chu > Assignee: Sean Hsuan-Yi Chu > Priority: Critical > Fix For: 1.2.0 > > > Create a view by: > {code} > create view v1(x, y) as select n_regionkey, n_nationkey from > cp.`tpch/nation.parquet`; > {code} > And join this view with the file which created the view with condition > t.n_nationkey = v1.y (where 'y' is n_nationkey) > {code} > select t.n_nationkey from cp.`tpch/nation.parquet` t inner join v1 on > t.n_nationkey = v1.y; > +-------------+ > | n_nationkey | > +-------------+ > | 0 | > | 1 | > | 1 | > | 1 | > | 4 | > | 0 | > | 3 | > | 3 | > | 2 | > | 2 | > | 4 | > | 4 | > | 2 | > | 4 | > | 0 | > | 0 | > | 0 | > | 1 | > | 2 | > | 3 | > | 4 | > | 2 | > | 3 | > | 3 | > | 1 | > +-------------+ > 25 rows selected (0.153 seconds) > {code} > After investigating the plan, I found out that the result was produced as if > the join condition was t.n_nationkey = v1.x (where x is 'n_regionkey') -- This message was sent by Atlassian JIRA (v6.3.4#6332)