Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
0.13.0
-
None
Description
set hive.optimize.ppd=true; add file ./test.py; from (select transform(test.*) using 'python ./test.py' as id,name,state from test) t0 insert overwrite table test2 select * where state=1 insert overwrite table test3 select * where state=2;
In the above example, the select transform returns an extra column, and that column is used in where clause of the multi-insert selects. However, if optimize is on, the query plan is wrong:
filter (state=1 and state=2) //impossible
--> select, insert into test1
--> select, insert into test2
The correct query plan for hive.optimize.ppd=false is:
filter (state=1)
--> select, insert into test1
filter (state=2)
--> select, insert into test2
For reference
create table test (id int, name string) create table test2(id int, name string, state int) create table test3(id int, name string, state int)
Attachments
Attachments
Issue Links
- is duplicated by
-
HIVE-4293 Predicates following UDTF operator are removed by PPD
- Resolved
- links to