[ https://issues.apache.org/jira/browse/HIVE-21465?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16795201#comment-16795201 ]
Laszlo Bodor edited comment on HIVE-21465 at 3/18/19 4:51 PM: -------------------------------------------------------------- uploaded an initial version into review board https://reviews.apache.org/r/70231/ this introduces generic BaseVectorExpression, which can ensure correct input / output columnvector types at compile time beforeLoop is an example for an optionally extendable method (which should be optimized by JIT in case it's a noop I guess) was (Author: abstractdog): uploaded an initial version into review board https://reviews.apache.org/r/70231/ this introduces generic BaseVectorExpression, which can ensure correct input / output columnvector types at compile time > 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 > > > 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)