----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/18372/ -----------------------------------------------------------
(Updated March 20, 2014, 5:04 p.m.) Review request for drill, Jacques Nadeau and Jinfeng Ni. Changes ------- Rebased the patch to latest master. Converter ObjectInspectors and ObjectInspectorHelper into freemarker/CodeModel codegen. Repository: drill-git Description ------- Currently works with simple UDFs that implement GenericUDF and UDF interfaces. Not all column types are supported currently. Supported types are BIT, all INTs, FLOAT4/8, VARCHAR/VAR16CHAR. This patch also removes the FunctionDefnitions (and related code) and uses FunctionHolder for function resolution. There are few tests failing. Currently debugging those. Will update the patch once the failures are resolved. github branch: https://github.com/vkorukanti/incubator-drill/commits/func-rb Diffs (updated) ----- common/src/main/antlr3/org/apache/drill/common/expression/parser/ExprParser.g b5cf292 common/src/main/java/org/apache/drill/common/expression/Arg.java 0dd47ff common/src/main/java/org/apache/drill/common/expression/ArgumentValidator.java 18456b5 common/src/main/java/org/apache/drill/common/expression/ArgumentValidators.java da46645 common/src/main/java/org/apache/drill/common/expression/BasicArgumentValidator.java f6c94d9 common/src/main/java/org/apache/drill/common/expression/CallProvider.java 2339261 common/src/main/java/org/apache/drill/common/expression/ExpressionStringBuilder.java 69dd9b3 common/src/main/java/org/apache/drill/common/expression/ExpressionValidator.java 076c150 common/src/main/java/org/apache/drill/common/expression/FunctionCall.java e3ed4c5 common/src/main/java/org/apache/drill/common/expression/FunctionCallFactory.java PRE-CREATION common/src/main/java/org/apache/drill/common/expression/FunctionDefinition.java f9e408b common/src/main/java/org/apache/drill/common/expression/FunctionHolderExpression.java PRE-CREATION common/src/main/java/org/apache/drill/common/expression/FunctionInstance.java cda49e9 common/src/main/java/org/apache/drill/common/expression/FunctionRegistry.java 7cb386a common/src/main/java/org/apache/drill/common/expression/LogicalExpression.java 70c2617 common/src/main/java/org/apache/drill/common/expression/NoArgValidator.java eaabfeb common/src/main/java/org/apache/drill/common/expression/fn/AggregationFunctions.java 5b46b78 common/src/main/java/org/apache/drill/common/expression/fn/BooleanFunctions.java f21b750 common/src/main/java/org/apache/drill/common/expression/fn/CastFunctionDefs.java 4be3820 common/src/main/java/org/apache/drill/common/expression/fn/CastFunctions.java PRE-CREATION common/src/main/java/org/apache/drill/common/expression/fn/MathFunctions.java e1d3390 common/src/main/java/org/apache/drill/common/expression/fn/StringFunctions.java 1158115 common/src/main/java/org/apache/drill/common/expression/fn/TypeFunctions.java 23ca87c common/src/main/java/org/apache/drill/common/expression/fn/UnaryFunctions.java 0a678fd common/src/main/java/org/apache/drill/common/expression/visitors/AbstractExprVisitor.java 469cedd common/src/main/java/org/apache/drill/common/expression/visitors/AggregateChecker.java 36e6a52 common/src/main/java/org/apache/drill/common/expression/visitors/ConstantChecker.java a951a60 common/src/main/java/org/apache/drill/common/expression/visitors/ExprVisitor.java 87d146a common/src/main/java/org/apache/drill/common/expression/visitors/SimpleExprVisitor.java 71266f7 common/src/test/java/org/apache/drill/common/expression/parser/TreeTest.java 6833b69 contrib/storage-hive/src/main/resources/drill-module.conf PRE-CREATION exec/java-exec/src/main/codegen/config.fmpp fcf1f4d exec/java-exec/src/main/codegen/data/HiveTypes.tdd PRE-CREATION exec/java-exec/src/main/codegen/templates/CastFunctions.java af32a27 exec/java-exec/src/main/codegen/templates/CastFunctionsSrcVarLen.java 5855381 exec/java-exec/src/main/codegen/templates/CastFunctionsSrcVarLenTargetVarLen.java 8594d5a exec/java-exec/src/main/codegen/templates/CastFunctionsTargetVarLen.java c864e72 exec/java-exec/src/main/codegen/templates/ComparisonFunctions.java ba9da07 exec/java-exec/src/main/codegen/templates/MathFunctionTemplates.java 9ec2178 exec/java-exec/src/main/codegen/templates/MathFunctions.java c683261 exec/java-exec/src/main/codegen/templates/ObjectInspectorHelper.java PRE-CREATION exec/java-exec/src/main/codegen/templates/ObjectInspectors.java PRE-CREATION exec/java-exec/src/main/java/org/apache/drill/exec/compile/sig/ConstantExpressionIdentifier.java 83a5e6f exec/java-exec/src/main/java/org/apache/drill/exec/expr/DrillFuncHolderExpr.java PRE-CREATION exec/java-exec/src/main/java/org/apache/drill/exec/expr/EvaluationVisitor.java cac47b3 exec/java-exec/src/main/java/org/apache/drill/exec/expr/ExpressionTreeMaterializer.java c0f34f4 exec/java-exec/src/main/java/org/apache/drill/exec/expr/HiveFuncHolderExpr.java PRE-CREATION exec/java-exec/src/main/java/org/apache/drill/exec/expr/ImplicitCastBuilder.java 99c26f3 exec/java-exec/src/main/java/org/apache/drill/exec/expr/annotations/FunctionTemplate.java 2208e53 exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/DrillAggFuncHolder.java 5f1e358 exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/DrillFuncHolder.java d1619b2 exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/DrillFunctionImplementationRegistry.java PRE-CREATION exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/DrillSimpleFuncHolder.java de847df exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionConverter.java 3145240 exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionImplementationRegistry.java 93f1992 exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/HiveFuncHolder.java PRE-CREATION exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/HiveFunctionImplementationRegistry.java PRE-CREATION exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/agg/impl/CountFunctions.java b0939f1 exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/agg/impl/SumFunctions.java 57905fe exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/Alternator.java f65af3b exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/BitFunctions.java 41bb7c6 exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ByteSubstring.java 964e4af exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/CharSubstring.java 0b43028 exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ComparatorFunctions.java cd0eb21 exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ComparisonFunctionsNullable.java 9be620a exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/HashFunctions.java 3cc82b4 exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/IsNotNull.java 5ee5ccb exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/IsNull.java a1d3368 exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/MathFunctions.java 3fcf5c9 exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/SimpleRepeatedFunctions.java 2f838b1 exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/StringFunctions.java 9212867 exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/hive/AbstractPrimitiveObjectInspector.java PRE-CREATION exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/hive/DrillDeferredObject.java PRE-CREATION exec/java-exec/src/main/java/org/apache/drill/exec/ops/QueryContext.java 36cfb53 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/AggBatch.java ad60e8f exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java 6e98543 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java 8572085 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java 3413046 exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java 3364a45 exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillAggregateRel.java b4c1bf9 exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillOptiq.java 13f5494 exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillParseContext.java b82fef5 exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlWorker.java 0fdff3c exec/java-exec/src/main/java/org/apache/drill/exec/server/DrillbitContext.java 0e6b7bf exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/Foreman.java baecc3f exec/java-exec/src/test/java/org/apache/drill/exec/expr/ExpressionTest.java 0de64b4 exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/GeneratorFunctions.java 7ec7243 exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestHiveUDFs.java PRE-CREATION exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestSimpleFunctions.java 5bfe369 exec/java-exec/src/test/java/org/apache/drill/exec/record/ExpressionTreeMaterializerTest.java b3b7536 exec/java-exec/src/test/resources/functions/hive/GenericUDF.json PRE-CREATION exec/java-exec/src/test/resources/functions/hive/UDF.json PRE-CREATION Diff: https://reviews.apache.org/r/18372/diff/ Testing ------- GenericUDF.json and UDF.json contain the testcases for both types of UDFs. Thanks, Venki Korukanti
