[
https://issues.apache.org/jira/browse/HIVE-15388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15852916#comment-15852916
]
Gunther Hagleitner commented on HIVE-15388:
-------------------------------------------
[~pxiong] Thanks for the clarification. When you say "1=1 in (true, false)" is
illegal, is it a semantic error or a parse error? What happens when you run:
"select true=true in (true, false)"? Can you add that to the tests.
Problem w/ saying 10k tests didn't find anything else is that I don't know how
many tests actually have an in clause with expressions. Probably not that many.
Can you make sure that you cover these expressions in "udf_in.q"?
For interval literals - the spec says:
{noformat}
<interval literal> ::= INTERVAL [ <sign> ] <interval string> <interval
qualifier>
<interval string> ::= <quote> <unquoted interval string> <quote>
{noformat}
The "unquoted interval string" is parsed elsewhere. So it sounds like
restricting it for now is fine, although I'm still looking at this. You are
throwing out more tests from "interval_alt.q" than needed, some statements in
there should still work, right?
> 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.02.patch,
> HIVE-15388.03.patch, HIVE-15388.04.patch, HIVE-15388.05.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.15#6346)