[jira] [Updated] (HIVE-11617) Explain plan for multiple lateral views is very slow
[ https://issues.apache.org/jira/browse/HIVE-11617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jesus Camacho Rodriguez updated HIVE-11617: --- Affects Version/s: 2.0.0 > Explain plan for multiple lateral views is very slow > > > Key: HIVE-11617 > URL: https://issues.apache.org/jira/browse/HIVE-11617 > Project: Hive > Issue Type: Bug > Components: Logical Optimizer >Affects Versions: 2.0.0 >Reporter: Aihua Xu >Assignee: Aihua Xu > Fix For: 2.0.0 > > Attachments: HIVE-11617.2.patch, HIVE-11617.patch, HIVE-11617.patch > > > The following explain job will be very slow or never finish if there are many > lateral views involved. High CPU usage is also noticed. > {noformat} > CREATE TABLE `t1`(`pattern` array); > > explain select * from t1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1; > {noformat} > From jstack, the job is busy with preorder tree traverse. > {noformat} > at java.util.regex.Matcher.getTextLength(Matcher.java:1234) > at java.util.regex.Matcher.reset(Matcher.java:308) > at java.util.regex.Matcher.(Matcher.java:228) > at java.util.regex.Pattern.matcher(Pattern.java:1088) > at org.apache.hadoop.hive.ql.lib.RuleRegExp.cost(RuleRegExp.java:67) > at > org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:72) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:94) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:78) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:56) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.
[jira] [Updated] (HIVE-11617) Explain plan for multiple lateral views is very slow
[ https://issues.apache.org/jira/browse/HIVE-11617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jesus Camacho Rodriguez updated HIVE-11617: --- Issue Type: Improvement (was: Bug) > Explain plan for multiple lateral views is very slow > > > Key: HIVE-11617 > URL: https://issues.apache.org/jira/browse/HIVE-11617 > Project: Hive > Issue Type: Improvement > Components: Logical Optimizer >Affects Versions: 2.0.0 >Reporter: Aihua Xu >Assignee: Aihua Xu > Fix For: 2.0.0 > > Attachments: HIVE-11617.2.patch, HIVE-11617.patch, HIVE-11617.patch > > > The following explain job will be very slow or never finish if there are many > lateral views involved. High CPU usage is also noticed. > {noformat} > CREATE TABLE `t1`(`pattern` array); > > explain select * from t1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1; > {noformat} > From jstack, the job is busy with preorder tree traverse. > {noformat} > at java.util.regex.Matcher.getTextLength(Matcher.java:1234) > at java.util.regex.Matcher.reset(Matcher.java:308) > at java.util.regex.Matcher.(Matcher.java:228) > at java.util.regex.Pattern.matcher(Pattern.java:1088) > at org.apache.hadoop.hive.ql.lib.RuleRegExp.cost(RuleRegExp.java:67) > at > org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:72) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:94) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:78) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:56) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.
[jira] [Updated] (HIVE-11617) Explain plan for multiple lateral views is very slow
[ https://issues.apache.org/jira/browse/HIVE-11617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aihua Xu updated HIVE-11617: Attachment: HIVE-11617.2.patch Fixed the unit tests baseline. > Explain plan for multiple lateral views is very slow > > > Key: HIVE-11617 > URL: https://issues.apache.org/jira/browse/HIVE-11617 > Project: Hive > Issue Type: Bug > Components: Logical Optimizer >Reporter: Aihua Xu >Assignee: Aihua Xu > Attachments: HIVE-11617.2.patch, HIVE-11617.patch, HIVE-11617.patch > > > The following explain job will be very slow or never finish if there are many > lateral views involved. High CPU usage is also noticed. > {noformat} > CREATE TABLE `t1`(`pattern` array); > > explain select * from t1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1; > {noformat} > From jstack, the job is busy with preorder tree traverse. > {noformat} > at java.util.regex.Matcher.getTextLength(Matcher.java:1234) > at java.util.regex.Matcher.reset(Matcher.java:308) > at java.util.regex.Matcher.(Matcher.java:228) > at java.util.regex.Pattern.matcher(Pattern.java:1088) > at org.apache.hadoop.hive.ql.lib.RuleRegExp.cost(RuleRegExp.java:67) > at > org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:72) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:94) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:78) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:56) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) >
[jira] [Updated] (HIVE-11617) Explain plan for multiple lateral views is very slow
[ https://issues.apache.org/jira/browse/HIVE-11617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aihua Xu updated HIVE-11617: Attachment: HIVE-11617.patch Revert ExplainTask.java file since we can use "Explain logical" to avoid the output issue. > Explain plan for multiple lateral views is very slow > > > Key: HIVE-11617 > URL: https://issues.apache.org/jira/browse/HIVE-11617 > Project: Hive > Issue Type: Bug > Components: Logical Optimizer >Reporter: Aihua Xu >Assignee: Aihua Xu > Attachments: HIVE-11617.patch, HIVE-11617.patch > > > The following explain job will be very slow or never finish if there are many > lateral views involved. High CPU usage is also noticed. > {noformat} > CREATE TABLE `t1`(`pattern` array); > > explain select * from t1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1 > lateral view explode(pattern) tbl1 as col1; > {noformat} > From jstack, the job is busy with preorder tree traverse. > {noformat} > at java.util.regex.Matcher.getTextLength(Matcher.java:1234) > at java.util.regex.Matcher.reset(Matcher.java:308) > at java.util.regex.Matcher.(Matcher.java:228) > at java.util.regex.Pattern.matcher(Pattern.java:1088) > at org.apache.hadoop.hive.ql.lib.RuleRegExp.cost(RuleRegExp.java:67) > at > org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:72) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:94) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:78) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:56) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrd
[jira] [Updated] (HIVE-11617) Explain plan for multiple lateral views is very slow
[ https://issues.apache.org/jira/browse/HIVE-11617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aihua Xu updated HIVE-11617: Description: The following explain job will be very slow or never finish if there are many lateral views involved. High CPU usage is also noticed. {noformat} CREATE TABLE `t1`(`pattern` array); explain select * from t1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1; {noformat} >From jstack, the job is busy with preorder tree traverse. {noformat} at java.util.regex.Matcher.getTextLength(Matcher.java:1234) at java.util.regex.Matcher.reset(Matcher.java:308) at java.util.regex.Matcher.(Matcher.java:228) at java.util.regex.Pattern.matcher(Pattern.java:1088) at org.apache.hadoop.hive.ql.lib.RuleRegExp.cost(RuleRegExp.java:67) at org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:72) at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:94) at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:78) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:56) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61)
[jira] [Updated] (HIVE-11617) Explain plan for multiple lateral views is very slow
[ https://issues.apache.org/jira/browse/HIVE-11617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aihua Xu updated HIVE-11617: Description: The following explain job will be very slow or never finish if there are many lateral views involved. High CPU usage is also noticed. {noformat} CREATE TABLE `t1`(`pattern` array); explain select * from t1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1 lateral view explode(pattern) tbl1 as col1; {noformat} >From jstack, the job is busy with preorder tree traverse. {noformat} at java.util.regex.Matcher.getTextLength(Matcher.java:1234) at java.util.regex.Matcher.reset(Matcher.java:308) at java.util.regex.Matcher.(Matcher.java:228) at java.util.regex.Pattern.matcher(Pattern.java:1088) at org.apache.hadoop.hive.ql.lib.RuleRegExp.cost(RuleRegExp.java:67) at org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:72) at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:94) at org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:78) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:56) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) at org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61)
[jira] [Updated] (HIVE-11617) Explain plan for multiple lateral views is very slow
[ https://issues.apache.org/jira/browse/HIVE-11617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aihua Xu updated HIVE-11617: Attachment: HIVE-11617.patch > Explain plan for multiple lateral views is very slow > > > Key: HIVE-11617 > URL: https://issues.apache.org/jira/browse/HIVE-11617 > Project: Hive > Issue Type: Bug > Components: Logical Optimizer >Reporter: Aihua Xu >Assignee: Aihua Xu > Attachments: HIVE-11617.patch > > > The following explain job will be very slow or never finish if there are many > lateral views involved. High CPU usage is also noticed. > {noformat} > EXPLAIN > SELECT > * > from > ( > SELECT * FROM table1 > ) x > LATERAL VIEW json_tuple(...) x1 > LATERAL VIEW json_tuple(...) x2 > ... > {noformat} > From jstack, the job is busy with preorder tree traverse. > {noformat} > at java.util.regex.Matcher.getTextLength(Matcher.java:1234) > at java.util.regex.Matcher.reset(Matcher.java:308) > at java.util.regex.Matcher.(Matcher.java:228) > at java.util.regex.Pattern.matcher(Pattern.java:1088) > at org.apache.hadoop.hive.ql.lib.RuleRegExp.cost(RuleRegExp.java:67) > at > org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:72) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:94) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:78) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:56) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) >
[jira] [Updated] (HIVE-11617) Explain plan for multiple lateral views is very slow
[ https://issues.apache.org/jira/browse/HIVE-11617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aihua Xu updated HIVE-11617: Attachment: (was: HIVE-11617.patch) > Explain plan for multiple lateral views is very slow > > > Key: HIVE-11617 > URL: https://issues.apache.org/jira/browse/HIVE-11617 > Project: Hive > Issue Type: Bug > Components: Logical Optimizer >Reporter: Aihua Xu >Assignee: Aihua Xu > Attachments: HIVE-11617.patch > > > The following explain job will be very slow or never finish if there are many > lateral views involved. High CPU usage is also noticed. > {noformat} > EXPLAIN > SELECT > * > from > ( > SELECT * FROM table1 > ) x > LATERAL VIEW json_tuple(...) x1 > LATERAL VIEW json_tuple(...) x2 > ... > {noformat} > From jstack, the job is busy with preorder tree traverse. > {noformat} > at java.util.regex.Matcher.getTextLength(Matcher.java:1234) > at java.util.regex.Matcher.reset(Matcher.java:308) > at java.util.regex.Matcher.(Matcher.java:228) > at java.util.regex.Pattern.matcher(Pattern.java:1088) > at org.apache.hadoop.hive.ql.lib.RuleRegExp.cost(RuleRegExp.java:67) > at > org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:72) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:94) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:78) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:56) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker
[jira] [Updated] (HIVE-11617) Explain plan for multiple lateral views is very slow
[ https://issues.apache.org/jira/browse/HIVE-11617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aihua Xu updated HIVE-11617: Attachment: (was: HIVE-11617.patch) > Explain plan for multiple lateral views is very slow > > > Key: HIVE-11617 > URL: https://issues.apache.org/jira/browse/HIVE-11617 > Project: Hive > Issue Type: Bug > Components: Logical Optimizer >Reporter: Aihua Xu >Assignee: Aihua Xu > Attachments: HIVE-11617.patch > > > The following explain job will be very slow or never finish if there are many > lateral views involved. High CPU usage is also noticed. > {noformat} > EXPLAIN > SELECT > * > from > ( > SELECT * FROM table1 > ) x > LATERAL VIEW json_tuple(...) x1 > LATERAL VIEW json_tuple(...) x2 > ... > {noformat} > From jstack, the job is busy with preorder tree traverse. > {noformat} > at java.util.regex.Matcher.getTextLength(Matcher.java:1234) > at java.util.regex.Matcher.reset(Matcher.java:308) > at java.util.regex.Matcher.(Matcher.java:228) > at java.util.regex.Pattern.matcher(Pattern.java:1088) > at org.apache.hadoop.hive.ql.lib.RuleRegExp.cost(RuleRegExp.java:67) > at > org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:72) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:94) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:78) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:56) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker
[jira] [Updated] (HIVE-11617) Explain plan for multiple lateral views is very slow
[ https://issues.apache.org/jira/browse/HIVE-11617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aihua Xu updated HIVE-11617: Attachment: HIVE-11617.patch > Explain plan for multiple lateral views is very slow > > > Key: HIVE-11617 > URL: https://issues.apache.org/jira/browse/HIVE-11617 > Project: Hive > Issue Type: Bug > Components: Logical Optimizer >Reporter: Aihua Xu >Assignee: Aihua Xu > Attachments: HIVE-11617.patch > > > The following explain job will be very slow or never finish if there are many > lateral views involved. High CPU usage is also noticed. > {noformat} > EXPLAIN > SELECT > * > from > ( > SELECT * FROM table1 > ) x > LATERAL VIEW json_tuple(...) x1 > LATERAL VIEW json_tuple(...) x2 > ... > {noformat} > From jstack, the job is busy with preorder tree traverse. > {noformat} > at java.util.regex.Matcher.getTextLength(Matcher.java:1234) > at java.util.regex.Matcher.reset(Matcher.java:308) > at java.util.regex.Matcher.(Matcher.java:228) > at java.util.regex.Pattern.matcher(Pattern.java:1088) > at org.apache.hadoop.hive.ql.lib.RuleRegExp.cost(RuleRegExp.java:67) > at > org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:72) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:94) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:78) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:56) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) >
[jira] [Updated] (HIVE-11617) Explain plan for multiple lateral views is very slow
[ https://issues.apache.org/jira/browse/HIVE-11617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Aihua Xu updated HIVE-11617: Attachment: HIVE-11617.patch > Explain plan for multiple lateral views is very slow > > > Key: HIVE-11617 > URL: https://issues.apache.org/jira/browse/HIVE-11617 > Project: Hive > Issue Type: Bug > Components: Logical Optimizer >Reporter: Aihua Xu >Assignee: Aihua Xu > Attachments: HIVE-11617.patch > > > The following explain job will be very slow or never finish if there are many > lateral views involved. High CPU usage is also noticed. > {noformat} > EXPLAIN > SELECT > * > from > ( > SELECT * FROM table1 > ) x > LATERAL VIEW json_tuple(...) x1 > LATERAL VIEW json_tuple(...) x2 > ... > {noformat} > From jstack, the job is busy with preorder tree traverse. > {noformat} > at java.util.regex.Matcher.getTextLength(Matcher.java:1234) > at java.util.regex.Matcher.reset(Matcher.java:308) > at java.util.regex.Matcher.(Matcher.java:228) > at java.util.regex.Pattern.matcher(Pattern.java:1088) > at org.apache.hadoop.hive.ql.lib.RuleRegExp.cost(RuleRegExp.java:67) > at > org.apache.hadoop.hive.ql.lib.DefaultRuleDispatcher.dispatch(DefaultRuleDispatcher.java:72) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatchAndReturn(DefaultGraphWalker.java:94) > at > org.apache.hadoop.hive.ql.lib.DefaultGraphWalker.dispatch(DefaultGraphWalker.java:78) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:56) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) > at > org.apache.hadoop.hive.ql.lib.PreOrderWalker.walk(PreOrderWalker.java:61) >