Rajesh Balamohan created HIVE-15388:
---------------------------------------

             Summary: HiveParser spends lots of time in parsing queries with 
lots "("
                 Key: HIVE-15388
                 URL: https://issues.apache.org/jira/browse/HIVE-15388
             Project: Hive
          Issue Type: Improvement
            Reporter: Rajesh Balamohan


Branch: apache-master (applicable with previous releases as well)

Queries generated via tools can have lots "(" 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.  If the "(" are 
removed manually, it gets completed in 2-3 seconds.



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

Reply via email to