[jira] [Updated] (HIVE-15331) Decimal multiplication with high precision/scale often returns NULL
[ https://issues.apache.org/jira/browse/HIVE-15331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jason Dere updated HIVE-15331: -- Resolution: Fixed Fix Version/s: 2.2.0 Release Note: The resulting precision/scale of decimal arithmetic has been changed in the case where the precision/scale exceeds the maximum precision of 38. When reducing the precision/scale down to the Hive limit of 38, the new behavior is to reduce the scale to preserve the integer portion of the precision, while leaving a minimum of 6 digits for the scale. The previous behavior was to always shrink the integer portion of the precision first before the scale. Status: Resolved (was: Patch Available) Committed to master > Decimal multiplication with high precision/scale often returns NULL > --- > > Key: HIVE-15331 > URL: https://issues.apache.org/jira/browse/HIVE-15331 > Project: Hive > Issue Type: Bug > Components: Types >Reporter: Jason Dere >Assignee: Jason Dere > Fix For: 2.2.0 > > Attachments: HIVE-15331.1.patch, HIVE-15331.2.patch, > HIVE-15331.3.patch > > > {noformat} > create temporary table dec (a decimal(38,18)); > insert into dec values(100.0); > hive> select a*a from dec; > OK > NULL > Time taken: 0.165 seconds, Fetched: 1 row(s) > {noformat} > Looks like the reason is because the result of decimal(38,18) * > decimal(38,18) only has 2 digits of precision for integers: > {noformat} > hive> set hive.explain.user=false; > hive> explain select a*a from dec; > OK > STAGE DEPENDENCIES: > Stage-0 is a root stage > STAGE PLANS: > Stage: Stage-0 > Fetch Operator > limit: -1 > Processor Tree: > TableScan > alias: dec > Select Operator > expressions: (a * a) (type: decimal(38,36)) > outputColumnNames: _col0 > ListSink > Time taken: 0.039 seconds, Fetched: 15 row(s) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HIVE-15331) Decimal multiplication with high precision/scale often returns NULL
[ https://issues.apache.org/jira/browse/HIVE-15331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jason Dere updated HIVE-15331: -- Attachment: HIVE-15331.3.patch Updating golden files. > Decimal multiplication with high precision/scale often returns NULL > --- > > Key: HIVE-15331 > URL: https://issues.apache.org/jira/browse/HIVE-15331 > Project: Hive > Issue Type: Bug > Components: Types >Reporter: Jason Dere >Assignee: Jason Dere > Attachments: HIVE-15331.1.patch, HIVE-15331.2.patch, > HIVE-15331.3.patch > > > {noformat} > create temporary table dec (a decimal(38,18)); > insert into dec values(100.0); > hive> select a*a from dec; > OK > NULL > Time taken: 0.165 seconds, Fetched: 1 row(s) > {noformat} > Looks like the reason is because the result of decimal(38,18) * > decimal(38,18) only has 2 digits of precision for integers: > {noformat} > hive> set hive.explain.user=false; > hive> explain select a*a from dec; > OK > STAGE DEPENDENCIES: > Stage-0 is a root stage > STAGE PLANS: > Stage: Stage-0 > Fetch Operator > limit: -1 > Processor Tree: > TableScan > alias: dec > Select Operator > expressions: (a * a) (type: decimal(38,36)) > outputColumnNames: _col0 > ListSink > Time taken: 0.039 seconds, Fetched: 15 row(s) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HIVE-15331) Decimal multiplication with high precision/scale often returns NULL
[ https://issues.apache.org/jira/browse/HIVE-15331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jason Dere updated HIVE-15331: -- Attachment: HIVE-15331.2.patch Looks like precommit tests never ran - re-uploading patch. > Decimal multiplication with high precision/scale often returns NULL > --- > > Key: HIVE-15331 > URL: https://issues.apache.org/jira/browse/HIVE-15331 > Project: Hive > Issue Type: Bug > Components: Types >Reporter: Jason Dere >Assignee: Jason Dere > Attachments: HIVE-15331.1.patch, HIVE-15331.2.patch > > > {noformat} > create temporary table dec (a decimal(38,18)); > insert into dec values(100.0); > hive> select a*a from dec; > OK > NULL > Time taken: 0.165 seconds, Fetched: 1 row(s) > {noformat} > Looks like the reason is because the result of decimal(38,18) * > decimal(38,18) only has 2 digits of precision for integers: > {noformat} > hive> set hive.explain.user=false; > hive> explain select a*a from dec; > OK > STAGE DEPENDENCIES: > Stage-0 is a root stage > STAGE PLANS: > Stage: Stage-0 > Fetch Operator > limit: -1 > Processor Tree: > TableScan > alias: dec > Select Operator > expressions: (a * a) (type: decimal(38,36)) > outputColumnNames: _col0 > ListSink > Time taken: 0.039 seconds, Fetched: 15 row(s) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HIVE-15331) Decimal multiplication with high precision/scale often returns NULL
[ https://issues.apache.org/jira/browse/HIVE-15331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jason Dere updated HIVE-15331: -- Attachment: HIVE-15331.1.patch Initial patch. Let's see what changes in the golden files. > Decimal multiplication with high precision/scale often returns NULL > --- > > Key: HIVE-15331 > URL: https://issues.apache.org/jira/browse/HIVE-15331 > Project: Hive > Issue Type: Bug > Components: Types >Reporter: Jason Dere >Assignee: Jason Dere > Attachments: HIVE-15331.1.patch > > > {noformat} > create temporary table dec (a decimal(38,18)); > insert into dec values(100.0); > hive> select a*a from dec; > OK > NULL > Time taken: 0.165 seconds, Fetched: 1 row(s) > {noformat} > Looks like the reason is because the result of decimal(38,18) * > decimal(38,18) only has 2 digits of precision for integers: > {noformat} > hive> set hive.explain.user=false; > hive> explain select a*a from dec; > OK > STAGE DEPENDENCIES: > Stage-0 is a root stage > STAGE PLANS: > Stage: Stage-0 > Fetch Operator > limit: -1 > Processor Tree: > TableScan > alias: dec > Select Operator > expressions: (a * a) (type: decimal(38,36)) > outputColumnNames: _col0 > ListSink > Time taken: 0.039 seconds, Fetched: 15 row(s) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (HIVE-15331) Decimal multiplication with high precision/scale often returns NULL
[ https://issues.apache.org/jira/browse/HIVE-15331?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jason Dere updated HIVE-15331: -- Status: Patch Available (was: Open) > Decimal multiplication with high precision/scale often returns NULL > --- > > Key: HIVE-15331 > URL: https://issues.apache.org/jira/browse/HIVE-15331 > Project: Hive > Issue Type: Bug > Components: Types >Reporter: Jason Dere >Assignee: Jason Dere > Attachments: HIVE-15331.1.patch > > > {noformat} > create temporary table dec (a decimal(38,18)); > insert into dec values(100.0); > hive> select a*a from dec; > OK > NULL > Time taken: 0.165 seconds, Fetched: 1 row(s) > {noformat} > Looks like the reason is because the result of decimal(38,18) * > decimal(38,18) only has 2 digits of precision for integers: > {noformat} > hive> set hive.explain.user=false; > hive> explain select a*a from dec; > OK > STAGE DEPENDENCIES: > Stage-0 is a root stage > STAGE PLANS: > Stage: Stage-0 > Fetch Operator > limit: -1 > Processor Tree: > TableScan > alias: dec > Select Operator > expressions: (a * a) (type: decimal(38,36)) > outputColumnNames: _col0 > ListSink > Time taken: 0.039 seconds, Fetched: 15 row(s) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)