[ 
https://issues.apache.org/jira/browse/TAJO-906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14108072#comment-14108072
 ] 

Hudson commented on TAJO-906:
-----------------------------

SUCCESS: Integrated in Tajo-master-build #346 (See 
[https://builds.apache.org/job/Tajo-master-build/346/])
TAJO-906: Runtime code generation for evaluating expression trees. (hyunsik: 
rev 7603a3d4c9ebf1e98a9f2aba53ae1140cdd34497)
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/LocalVariableNode.java
* tajo-core/src/main/java/org/apache/tajo/engine/eval/EvalNode.java
* tajo-core/src/test/java/org/apache/tajo/worker/TestFetcher.java
* tajo-core/src/main/java/org/apache/tajo/master/querymaster/SubQuery.java
* tajo-storage/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/Textifier.java
* CHANGES
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/CodeSizeEvaluator.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/function/builtin/CoalesceLong.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/attrs/package.html
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/MethodOptimizer.java
* tajo-core/src/main/java/org/apache/tajo/engine/codegen/CaseWhenEmitter.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/codegen/ExecutorPreCompiler.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/ByteVector.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ProjectionExec.java
* tajo-core/src/main/java/org/apache/tajo/engine/eval/BinaryEval.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/xml/SAXClassAdapter.java
* tajo-dist/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/GeneratorAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/TraceAnnotationVisitor.java
* tajo-core/src/main/java/org/apache/tajo/engine/planner/logical/HavingNode.java
* tajo-yarn-pullserver/src/main/java/org/apache/tajo/storage/Tuple.java
* tajo-common/src/main/java/org/apache/tajo/SessionVars.java
* tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/Label.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/Opcodes.java
* tajo-common/src/main/java/org/apache/tajo/datum/DatumFactory.java
* tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/Type.java
* tajo-thirdparty/asm/pom.xml
* tajo-core/src/main/java/org/apache/tajo/worker/TajoWorkerManagerService.java
* tajo-jdbc/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/xml/ASMContentHandler.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/JSRInlinerAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/analysis/Subroutine.java
* 
tajo-core/src/test/java/org/apache/tajo/engine/function/TestPatternMatchingPredicates.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/ClassReader.java
* tajo-core/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java
* tajo-catalog/tajo-catalog-common/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/MultiANewArrayInsnNode.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/MethodWriter.java
* tajo-client/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/shrink-frames.properties
* tajo-common/src/main/java/org/apache/tajo/util/Pair.java
* tajo-core/src/main/java/org/apache/tajo/master/querymaster/QueryMaster.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/CheckAnnotationAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/Context.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/AnalyzerAdapter.java
* tajo-catalog/tajo-catalog-client/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/ASMifier.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/IincInsnNode.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/FieldVisitor.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/JumpInsnNode.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/shrink-annotations.properties
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/analysis/SourceInterpreter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/CheckFieldAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/SerialVersionUIDAdder.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/shrink-signatures.properties
* tajo-catalog/tajo-catalog-server/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/shrink-writer.properties
* tajo-core/src/main/java/org/apache/tajo/master/LaunchTaskRunnersEvent.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/ExternalSortExec.java
* tajo-dist/src/main/bin/tajo
* tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/Item.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/ConstantPool.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/signature/SignatureVisitor.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/package.html
* 
tajo-core/src/main/java/org/apache/tajo/engine/function/builtin/CoalesceString.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SeqScanExec.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/ClassOptimizer.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/InstructionAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/xml/SAXAnnotationAdapter.java
* tajo-rpc/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/CheckMethodAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/analysis/Frame.java
* tajo-docs/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/AnnotationConstantsCollector.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/NLLeftOuterJoinExec.java
* 
tajo-core/src/main/java/org/apache/tajo/worker/ExecutionBlockSharedResource.java
* tajo-core/src/test/java/org/apache/tajo/engine/eval/TestSQLExpression.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/shrink.properties
* tajo-core/src/main/java/org/apache/tajo/engine/eval/EvalTreeUtil.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/function/builtin/CoalesceTimestamp.java
* tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
* tajo-core/src/main/java/org/apache/tajo/worker/TajoWorker.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BasicPhysicalExecutorVisitor.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/FrameNode.java
* tajo-core/src/main/proto/TajoWorkerProtocol.proto
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/TryCatchBlockSorter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/analysis/BasicValue.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/MergeJoinExec.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/InsnNode.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/ClassConstantsCollector.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/codegen/VariablesPreBuilder.java
* tajo-core/src/main/java/org/apache/tajo/engine/codegen/EvalCodeGenContext.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/analysis/Value.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/Printer.java
* tajo-core/src/main/java/org/apache/tajo/engine/query/QueryUnitRequestImpl.java
* tajo-core/src/main/java/org/apache/tajo/engine/codegen/EvalCodeGenerator.java
* tajo-storage/src/main/java/org/apache/tajo/storage/FrameTuple.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/InnerClassNode.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/RemappingMethodAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/TableSwitchGenerator.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/MethodConstantsCollector.java
* tajo-core/src/test/java/org/apache/tajo/TajoTestingCluster.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/analysis/Analyzer.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/InsnList.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/analysis/AnalyzerException.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/JarOptimizer.java
* tajo-core/src/main/java/org/apache/tajo/master/TajoContainerProxy.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftSemiJoinExec.java
* tajo-maven-plugins/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/analysis/package.html
* tajo-core/src/main/java/org/apache/tajo/worker/TajoResourceAllocator.java
* tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/Edge.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/SelectionExec.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/PhysicalPlannerImpl.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/Shrinker.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/CheckSignatureAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/LookupSwitchInsnNode.java
* tajo-core/src/main/java/org/apache/tajo/engine/eval/LikePredicateEval.java
* tajo-core/src/main/java/org/apache/tajo/engine/planner/Projector.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BSTIndexScanExec.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/TraceFieldVisitor.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/function/builtin/CoalesceDouble.java
* 
tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestPhysicalPlanner.java
* tajo-core/src/main/java/org/apache/tajo/worker/Task.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/RightOuterMergeJoinExec.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/TryCatchBlockNode.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashJoinExec.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/ClassWriter.java
* tajo-algebra/pom.xml
* tajo-catalog/tajo-catalog-drivers/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/jdk1.3.1_19.txt.gz
* tajo-core/src/main/java/org/apache/tajo/engine/planner/logical/ScanNode.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/logical/SelectionNode.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/PhysicalPlanUtil.java
* tajo-core/src/main/java/org/apache/tajo/engine/codegen/TajoClassLoader.java
* tajo-storage/src/test/java/org/apache/tajo/storage/parquet/TestReadWrite.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/PhysicalPlanningException.java
* tajo-storage/src/main/java/org/apache/tajo/storage/VTuple.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/TraceSignatureVisitor.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/AdviceAdapter.java
* tajo-storage/src/main/java/org/apache/tajo/storage/Tuple.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BNLJoinExec.java
* tajo-core/src/test/java/org/apache/tajo/engine/eval/TestPredicates.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/RemappingClassAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/ASMifiable.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/xml/SAXAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/package.html
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/FieldConstantsCollector.java
* tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/xml/package.html
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/TraceClassVisitor.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/eval/SimilarToPredicateEval.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/PhysicalExec.java
* 
tajo-core/src/test/java/org/apache/tajo/engine/codegen/TestEvalCodeGenerator.java
* pom.xml
* tajo-catalog/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/TraceMethodVisitor.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/PartitionMergeScanExec.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/analysis/BasicVerifier.java
* tajo-yarn-pullserver/pom.xml
* tajo-jdbc/src/main/java/org/apache/tajo/jdbc/MetaDataTuple.java
* tajo-core/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/analysis/SmallSet.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/analysis/BasicInterpreter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/LabelNode.java
* tajo-core/src/test/resources/results/TestTajoCli/testHelpSessionVars.result
* 
tajo-core/src/main/java/org/apache/tajo/engine/eval/PatternMatchPredicateEval.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/CheckClassAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/ClassVisitor.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/Textifiable.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/RemappingFieldAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/FieldWriter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/SimpleRemapper.java
* tajo-project/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/StaticInitMerger.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/xml/SAXCodeAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/Remapper.java
* tajo-core/src/main/java/org/apache/tajo/master/GlobalEngine.java
* tajo-core/src/main/java/org/apache/tajo/engine/planner/ExprAnnotator.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/Handle.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/signature/SignatureReader.java
* tajo-common/src/main/java/org/apache/tajo/conf/TajoConf.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/codegen/CaseWhenSwitchGenerator.java
* tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/Frame.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/MethodInsnNode.java
* tajo-common/src/main/java/org/apache/tajo/datum/CharDatum.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/function/builtin/CoalesceTime.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/MethodVisitor.java
* tajo-common/src/main/java/org/apache/tajo/datum/Datum.java
* tajo-common/pom.xml
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashFullOuterJoinExec.java
* tajo-core/src/main/java/org/apache/tajo/engine/eval/EvalType.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/xml/Processor.java
* tajo-core/src/main/java/org/apache/tajo/engine/codegen/CodeGenUtils.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/TableSwitchInsnNode.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/Constant.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/RemappingSignatureAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/InvokeDynamicInsnNode.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/UnaryPhysicalExec.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/codegen/TajoGeneratorAdapter.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/function/builtin/CoalesceBoolean.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/RemappingAnnotationAdapter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/Attribute.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/analysis/SimpleVerifier.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/LocalVariablesSorter.java
* tajo-catalog/tajo-catalog-drivers/tajo-hcatalog/pom.xml
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/package.html
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/analysis/SourceValue.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/util/package.html
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/shrink-resize.properties
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/signature/package.html
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/AnnotationNode.java
* tajo-core/src/main/java/org/apache/tajo/engine/codegen/CompilationError.java
* 
tajo-core/src/test/java/org/apache/tajo/engine/codegen/TestGeneratorAdapter.java
* LICENSE
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/AnnotationWriter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/ClassNode.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/signature/SignatureWriter.java
* 
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/FunctionDesc.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/HashLeftOuterJoinExec.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/Handler.java
* tajo-core/src/main/java/org/apache/tajo/engine/codegen/EvalCodeEmitter.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/PhysicalExecutorVisitor.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/FieldNode.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/MethodNode.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/jdk1.2.2_017.txt.gz
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/LdcInsnNode.java
* 
tajo-storage/src/main/java/org/apache/tajo/storage/parquet/ParquetAppender.java
* tajo-common/src/main/java/org/apache/tajo/util/CommonTestingUtil.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/TypeInsnNode.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/function/builtin/CoalesceDate.java
* tajo-storage/src/main/java/org/apache/tajo/storage/LazyTuple.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/AbstractInsnNode.java
* tajo-core/src/main/java/org/apache/tajo/worker/TaskAttemptContext.java
* 
tajo-core/src/test/java/org/apache/tajo/engine/function/TestConditionalExpressions.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/NLJoinExec.java
* 
tajo-catalog/tajo-catalog-common/src/main/java/org/apache/tajo/catalog/CatalogUtil.java
* tajo-common/src/main/java/org/apache/tajo/util/datetime/DateTimeUtil.java
* tajo-common/src/main/java/org/apache/tajo/datum/Inet4Datum.java
* tajo-core/src/main/java/org/apache/tajo/engine/eval/FunctionEval.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/commons/Method.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/LineNumberNode.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/xml/asm-xml.dtd
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/AnnotationVisitor.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/analysis/Interpreter.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/IntInsnNode.java
* tajo-core/src/main/java/org/apache/tajo/engine/eval/SimpleEvalNodeVisitor.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/optimizer/NameMapping.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/xml/SAXFieldAdapter.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/MergeFullOuterJoinExec.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/VarInsnNode.java
* tajo-common/src/main/java/org/apache/tajo/datum/NullDatum.java
* 
tajo-thirdparty/asm/src/main/java/org/apache/tajo/org/objectweb/asm/tree/FieldInsnNode.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/physical/BinaryPhysicalExec.java
* 
tajo-core/src/main/java/org/apache/tajo/engine/planner/logical/SelectableNode.java


> Runtime code generation for evaluating expression trees
> -------------------------------------------------------
>
>                 Key: TAJO-906
>                 URL: https://issues.apache.org/jira/browse/TAJO-906
>             Project: Tajo
>          Issue Type: Improvement
>          Components: physical operator
>            Reporter: Hyunsik Choi
>            Assignee: Hyunsik Choi
>             Fix For: 0.9.0
>
>
> We have used EvalNode for two purposes:
>  * logical planning of expressions
>  * evaluation of expressions
> EvalNode still is very nice for the purpose of logical planning. But, each 
> EvalNode tree takes Datum included in a tuple and results in a Datum as a 
> evaluation result. 
> So, the current approach requires many object creations, and causes interpret 
> overheads, meaning that each one evaluation involves tree traverses and many 
> function calls. interpretation involves also many branches, and it is harmful 
> to CPU pipelining.
> I propose Java byte code generation for each expression, and I'll use ASM 
> (http://asm.ow2.org/) for it. This approach will write native java byte code, 
> eliminating many condition branches and function calls. In addition, it is 
> easier to deal with java primitive data types for expressions.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to