[ https://issues.apache.org/jira/browse/HIVE-21465?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16811516#comment-16811516 ]
Laszlo Bodor commented on HIVE-21465: ------------------------------------- [~kgyrtkirk]: thanks for the pointer, there were some vectorization related benchmarks, which I could have used unfortunately bad news, with a new level in the inheritance, classes seem to work much worse, I have to dig deeper in this ([^HIVE-21465.benchmark.patch]) {code} Benchmark Mode Cnt Score Error Units VectorizedExpressionBench.CastLongToDecimalBench.bench avgt 2 8504.868 ms/op VectorizedExpressionBench.CastLongToDecimalBenchOld.bench avgt 2 4769.341 ms/op {code} > Introduce a base abstract VectorExpression to eliminate further code > duplications > --------------------------------------------------------------------------------- > > Key: HIVE-21465 > URL: https://issues.apache.org/jira/browse/HIVE-21465 > Project: Hive > Issue Type: Bug > Reporter: Laszlo Bodor > Assignee: Laszlo Bodor > Priority: Major > Attachments: HIVE-21465.01.patch, HIVE-21465.02.patch, > HIVE-21465.benchmark.patch > > > In vectorized expressions, from time to time, I see a similar/same logic to > be repeated, which always consists of some stuff like: > 1. some inner loops (even the comments are the same) > {code} > grep -iRH "Set isNull before call in case it changes it mind" | grep > "ql/src/java/org/apache/hadoop/hive/ql/exec/vector/expressions/" > {code} > 2. call to an actual "business logic" function ==> 1 line which could be > abstracted... and it has been abstracted in hive codebase in n different > cases. > However, an abstract BaseVectorExpression would not force anybody to extend > it instead of VectorExpression and not copy the code again, but it could be a > good start and an example. -- This message was sent by Atlassian JIRA (v7.6.3#76005)