[jira] [Updated] (PHOENIX-5388) Incorrect current_date()/now() when query involves subquery
[ https://issues.apache.org/jira/browse/PHOENIX-5388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Rajeshbabu Chintaguntla updated PHOENIX-5388: - Fix Version/s: 4.15.0 > Incorrect current_date()/now() when query involves subquery > --- > > Key: PHOENIX-5388 > URL: https://issues.apache.org/jira/browse/PHOENIX-5388 > Project: Phoenix > Issue Type: Bug >Reporter: Ankit Singhal >Assignee: Ankit Singhal >Priority: Major > Fix For: 4.15.0, 5.1.0 > > Attachments: PHOENIX-5388.patch, PHOENIX-5388_v2.patch > > > Following query fails in the month of December:- > {code} > select NOW(), MONTH(NOW()) m, > CASE > WHEN MONTH(NOW()) = 12 THEN TO_TIME(YEAR(NOW()) || '-12-31 23:59:59.999') > ELSE TO_TIME(YEAR(NOW()) || '-' || ( MONTH(NOW()) + 1 ) || '-01 > 23:59:59.999') - 1 > END AS this_month_end > {code} > It is due to an optimization we have during compilation where we evaluate the > expression if they result in to constant so that we don't need to do it for > every row. > Currently parsing stack evaluates every expression if possible without > considering any condition, resulting in evaluation of all three expression > for CASE node, MONTH(NOW()) = 12 , TO_TIME(YEAR(NOW()) || '-12-31 > 23:59:59.999') ,TO_TIME(YEAR(NOW()) || '-' || ( MONTH(NOW()) + 1 ) || '-01 > 23:59:59.999') - 1) but evaluation of 3rd one will fail because of invalid > month. > Workaround: For the particular use-case , Following query though help in > preventing the expressions of WHEN CASE to be evaluated to a constant at > compile time. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Updated] (PHOENIX-5388) Incorrect current_date()/now() when query involves subquery
[ https://issues.apache.org/jira/browse/PHOENIX-5388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Rajeshbabu Chintaguntla updated PHOENIX-5388: - Attachment: PHOENIX-5388_v2.patch > Incorrect current_date()/now() when query involves subquery > --- > > Key: PHOENIX-5388 > URL: https://issues.apache.org/jira/browse/PHOENIX-5388 > Project: Phoenix > Issue Type: Bug >Reporter: Ankit Singhal >Assignee: Ankit Singhal >Priority: Major > Fix For: 5.1.0 > > Attachments: PHOENIX-5388.patch, PHOENIX-5388_v2.patch > > > Following query fails in the month of December:- > {code} > select NOW(), MONTH(NOW()) m, > CASE > WHEN MONTH(NOW()) = 12 THEN TO_TIME(YEAR(NOW()) || '-12-31 23:59:59.999') > ELSE TO_TIME(YEAR(NOW()) || '-' || ( MONTH(NOW()) + 1 ) || '-01 > 23:59:59.999') - 1 > END AS this_month_end > {code} > It is due to an optimization we have during compilation where we evaluate the > expression if they result in to constant so that we don't need to do it for > every row. > Currently parsing stack evaluates every expression if possible without > considering any condition, resulting in evaluation of all three expression > for CASE node, MONTH(NOW()) = 12 , TO_TIME(YEAR(NOW()) || '-12-31 > 23:59:59.999') ,TO_TIME(YEAR(NOW()) || '-' || ( MONTH(NOW()) + 1 ) || '-01 > 23:59:59.999') - 1) but evaluation of 3rd one will fail because of invalid > month. > Workaround: For the particular use-case , Following query though help in > preventing the expressions of WHEN CASE to be evaluated to a constant at > compile time. -- This message was sent by Atlassian JIRA (v7.6.14#76016)
[jira] [Updated] (PHOENIX-5388) Incorrect current_date()/now() when query involves subquery
[ https://issues.apache.org/jira/browse/PHOENIX-5388?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ankit Singhal updated PHOENIX-5388: --- Attachment: PHOENIX-5388.patch > Incorrect current_date()/now() when query involves subquery > --- > > Key: PHOENIX-5388 > URL: https://issues.apache.org/jira/browse/PHOENIX-5388 > Project: Phoenix > Issue Type: Bug >Reporter: Ankit Singhal >Assignee: Ankit Singhal >Priority: Major > Attachments: PHOENIX-5388.patch > > > Following query fails in the month of December:- > {code} > select NOW(), MONTH(NOW()) m, > CASE > WHEN MONTH(NOW()) = 12 THEN TO_TIME(YEAR(NOW()) || '-12-31 23:59:59.999') > ELSE TO_TIME(YEAR(NOW()) || '-' || ( MONTH(NOW()) + 1 ) || '-01 > 23:59:59.999') - 1 > END AS this_month_end > {code} > It is due to an optimization we have during compilation where we evaluate the > expression if they result in to constant so that we don't need to do it for > every row. > Currently parsing stack evaluates every expression if possible without > considering any condition, resulting in evaluation of all three expression > for CASE node, MONTH(NOW()) = 12 , TO_TIME(YEAR(NOW()) || '-12-31 > 23:59:59.999') ,TO_TIME(YEAR(NOW()) || '-' || ( MONTH(NOW()) + 1 ) || '-01 > 23:59:59.999') - 1) but evaluation of 3rd one will fail because of invalid > month. > Workaround: For the particular use-case , Following query though help in > preventing the expressions of WHEN CASE to be evaluated to a constant at > compile time. -- This message was sent by Atlassian JIRA (v7.6.3#76005)