[ 
https://issues.apache.org/jira/browse/HIVE-21437?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Attila Magyar updated HIVE-21437:
---------------------------------
    Status: Patch Available  (was: Open)

> Vectorization: Decimal64 division with integer columns
> ------------------------------------------------------
>
>                 Key: HIVE-21437
>                 URL: https://issues.apache.org/jira/browse/HIVE-21437
>             Project: Hive
>          Issue Type: Bug
>          Components: Vectorization
>    Affects Versions: 4.0.0
>            Reporter: Gopal V
>            Assignee: Attila Magyar
>            Priority: Major
>              Labels: pull-request-available
>         Attachments: HIVE-21437.1.patch, HIVE-21437.2.patch, 
> HIVE-21437.3.patch, HIVE-21437.4.patch
>
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> Vectorizer fails for
> {code}
> CREATE temporary TABLE `catalog_Sales`(
>   `cs_quantity` int, 
>   `cs_wholesale_cost` decimal(7,2), 
>   `cs_list_price` decimal(7,2), 
>   `cs_sales_price` decimal(7,2), 
>   `cs_ext_discount_amt` decimal(7,2), 
>   `cs_ext_sales_price` decimal(7,2), 
>   `cs_ext_wholesale_cost` decimal(7,2), 
>   `cs_ext_list_price` decimal(7,2), 
>   `cs_ext_tax` decimal(7,2), 
>   `cs_coupon_amt` decimal(7,2), 
>   `cs_ext_ship_cost` decimal(7,2), 
>   `cs_net_paid` decimal(7,2), 
>   `cs_net_paid_inc_tax` decimal(7,2), 
>   `cs_net_paid_inc_ship` decimal(7,2), 
>   `cs_net_paid_inc_ship_tax` decimal(7,2), 
>   `cs_net_profit` decimal(7,2))
>  ;
> explain vectorization detail select max((((cs_ext_list_price - 
> cs_ext_wholesale_cost) - cs_ext_discount_amt) + cs_ext_sales_price) / 2) from 
> catalog_sales;
> {code}
> {code}
> '            Map Vectorization:'
> '                enabled: true'
> '                enabledConditionsMet: 
> hive.vectorized.use.vectorized.input.format IS true'
> '                inputFileFormats: 
> org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
> '                notVectorizedReason: SELECT operator: Could not instantiate 
> DecimalColDivideDecimalScalar with arguments arguments: [21, 20, 22], 
> argument classes: [Integer, Integer, Integer], exception: 
> java.lang.IllegalArgumentException: java.lang.ClassCastException@63b56be0 
> stack trace: 
> sun.reflect.GeneratedConstructorAccessor<omitted>.newInstance(Unknown 
> Source), 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45),
>  java.lang.reflect.Constructor.newInstance(Constructor.java:423), 
> org.apache.hadoop.hive.ql.exec.vector.VectorizationContext.instantiateExpression(VectorizationContext.java:2088),
>  
> org.apache.hadoop.hive.ql.optimizer.physical.Vectorizer.fixDecimalDataTypePhysicalVariations(Vectorizer.java:4662),
>  
> org.apache.hadoop.hive.ql.optimizer.physical.Vectorizer.fixDecimalDataTypePhysicalVariations(Vectorizer.java:4602),
>  
> org.apache.hadoop.hive.ql.optimizer.physical.Vectorizer.vectorizeSelectOperator(Vectorizer.java:4584),
>  
> org.apache.hadoop.hive.ql.optimizer.physical.Vectorizer.validateAndVectorizeOperator(Vectorizer.java:5171),
>  
> org.apache.hadoop.hive.ql.optimizer.physical.Vectorizer.doProcessChild(Vectorizer.java:923),
>  
> org.apache.hadoop.hive.ql.optimizer.physical.Vectorizer.doProcessChildren(Vectorizer.java:809),
>  
> org.apache.hadoop.hive.ql.optimizer.physical.Vectorizer.validateAndVectorizeOperatorTree(Vectorizer.java:776),
>  
> org.apache.hadoop.hive.ql.optimizer.physical.Vectorizer.access$2400(Vectorizer.java:240),
>  
> org.apache.hadoop.hive.ql.optimizer.physical.Vectorizer$VectorizationDispatcher.validateAndVectorizeMapOperators(Vectorizer.java:2038),
>  
> org.apache.hadoop.hive.ql.optimizer.physical.Vectorizer$VectorizationDispatcher.validateAndVectorizeMapOperators(Vectorizer.java:1990),
>  
> org.apache.hadoop.hive.ql.optimizer.physical.Vectorizer$VectorizationDispatcher.validateAndVectorizeMapWork(Vectorizer.java:1963),
>  ...'
> '                vectorized: false'
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to