[ 
https://issues.apache.org/jira/browse/HIVE-15388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pengcheng Xiong updated HIVE-15388:
-----------------------------------
    Status: Patch Available  (was: Open)

> HiveParser spends lots of time in parsing queries with lots of "("
> ------------------------------------------------------------------
>
>                 Key: HIVE-15388
>                 URL: https://issues.apache.org/jira/browse/HIVE-15388
>             Project: Hive
>          Issue Type: Improvement
>    Affects Versions: 2.2.0
>            Reporter: Rajesh Balamohan
>            Assignee: Pengcheng Xiong
>         Attachments: HIVE-15388.01.patch, hive-15388.stacktrace.txt
>
>
> Branch: apache-master (applicable with previous releases as well)
> Queries generated via tools can have lots of "(" for "AND/OR" conditions. 
> This causes huge delays in parsing phase when the number of expressions are 
> high.
> e.g
> {noformat}
> SELECT `iata`,
>        `airport`,
>        `city`,
>        `state`,
>        `country`,
>        `lat`,
>        `lon`
> FROM airports
> WHERE 
> ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((`airports`.`airport`
>  = "Thigpen"
>                                                                               
>   OR `airports`.`airport` = "Astoria Regional")
>                                                                               
>  OR `airports`.`airport` = "Warsaw Municipal")
>                                                                               
> OR `airports`.`airport` = "John F Kennedy Memorial")
>                                                                              
> OR `airports`.`airport` = "Hall-Miller Municipal")
>                                                                             
> OR `airports`.`airport` = "Atqasuk")
>                                                                            OR 
> `airports`.`airport` = "William B Hartsfield-Atlanta Intl")
>                                                                           OR 
> `airports`.`airport` = "Artesia Municipal")
>                                                                          OR 
> `airports`.`airport` = "Outagamie County Regional")
>                                                                         OR 
> `airports`.`airport` = "Watertown Municipal")
>                                                                        OR 
> `airports`.`airport` = "Augusta State")
>                                                                       OR 
> `airports`.`airport` = "Aurora Municipal")
>                                                                      OR 
> `airports`.`airport` = "Alakanuk")
>                                                                     OR 
> `airports`.`airport` = "Austin Municipal")
>                                                                    OR 
> `airports`.`airport` = "Auburn Municipal")
>                                                                   OR 
> `airports`.`airport` = "Auburn-Opelik")
>                                                                  OR 
> `airports`.`airport` = "Austin-Bergstrom International")
>                                                                 OR 
> `airports`.`airport` = "Wausau Municipal")
>                                                                OR 
> `airports`.`airport` = "Mecklenburg-Brunswick Regional")
>                                                               OR 
> `airports`.`airport` = "Alva Regional")
>                                                              OR 
> `airports`.`airport` = "Asheville Regional")
>                                                             OR 
> `airports`.`airport` = "Avon Park Municipal")
>                                                            OR 
> `airports`.`airport` = "Wilkes-Barre/Scranton Intl")
>                                                           OR 
> `airports`.`airport` = "Marana Northwest Regional")
>                                                          OR 
> `airports`.`airport` = "Catalina")
>                                                         OR 
> `airports`.`airport` = "Washington Municipal")
>                                                        OR 
> `airports`.`airport` = "Wainwright")
>                                                       OR `airports`.`airport` 
> = "West Memphis Municipal")
>                                                      OR `airports`.`airport` 
> = "Arlington Municipal")
>                                                     OR `airports`.`airport` = 
> "Algona Municipal")
>                                                    OR `airports`.`airport` = 
> "Chandler")
>                                                   OR `airports`.`airport` = 
> "Altus Municipal")
>                                                  OR `airports`.`airport` = 
> "Neil Armstrong")
>                                                 OR `airports`.`airport` = 
> "Angel Fire")
>                                                OR `airports`.`airport` = 
> "Waycross-Ware County")
>                                               OR `airports`.`airport` = 
> "Colorado City Municipal")
>                                              OR `airports`.`airport` = 
> "Hazelhurst")
>                                             OR `airports`.`airport` = 
> "Kalamazoo County")
>                                            OR `airports`.`airport` = 
> "Granville")
>                                           OR `airports`.`airport` = "Silver 
> Springs")
>                                          OR `airports`.`airport` = "Whitford")
>                                         OR `airports`.`airport` = "Biddeford 
> Municipal")
>                                        OR `airports`.`airport` = "Sugarloaf 
> Regional")
>                                       OR `airports`.`airport` = "Barnes 
> Municipal")
>                                      OR `airports`.`airport` = "Columbus 
> Municipal")
>                                     OR `airports`.`airport` = "Battle 
> Mountain")
>                                    OR `airports`.`airport` = "Huron County 
> Memorial")
>                                   OR `airports`.`airport` = "New Braunfels 
> Municipal")
>                                  OR `airports`.`airport` = "Benson Municipal")
>                                 OR `airports`.`airport` = "Curtis")
>                                OR `airports`.`airport` = "Marlboro County")
>                               OR `airports`.`airport` = "Broken Bow 
> Municipal")
>                              OR `airports`.`airport` = "Virginia Tech")
>                             OR `airports`.`airport` = "Bryce Canyon")
>                            OR `airports`.`airport` = "Black River Falls Area")
>                           OR `airports`.`airport` = "Boca Raton")
>                          OR `airports`.`airport` = "Birchwood")
>                         OR `airports`.`airport` = "Baudette International")
>                        OR `airports`.`airport` = "Blanding Muni")
>                       OR `airports`.`airport` = "Bradley International")
>                      OR `airports`.`airport` = "Morrilton Municipal")
>                     OR `airports`.`airport` = "Igor I Sikorsky Memorial")
>                    OR `airports`.`airport` = "Broadus")
>                   OR `airports`.`airport` = "Laurence G Hanscom")
>                  OR `airports`.`airport` = "Southwest Michigan Regional")
>                 OR `airports`.`airport` = "Bethel")
>                OR `airports`.`airport` = "Bradford Reg")
>               OR `airports`.`airport` = "Scotts Bluff County")
>              OR `airports`.`airport` = "Boeing Field/King County Intl")
>             OR `airports`.`airport` = "Buffalo Municipal")
>            OR `airports`.`airport` = "Meadows")
>           OR `airports`.`airport` = "Mobile Downtown")
>          OR `airports`.`airport` = "Virgil I Grissom Municipal")
>         OR `airports`.`airport` = "Silver Bay Municipal");
> {noformat}
> This query would take more than minutes to parse and compile.  
> Temp Workaround: If all "("s in "where" condition are removed manually, this 
> query would complete in 2-3 seconds.
> Problem exists in older versions as well (but in older versions this can make 
> HS2 unresponsive for large amount of time, as Driver ends up taking global 
> compiler lock in this phase). 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to