[
https://issues.apache.org/jira/browse/DRILL-550?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mehant Baid updated DRILL-550:
------------------------------
Attachment: DRILL-550.patch
> NPE while using custom Drill functions
> --------------------------------------
>
> Key: DRILL-550
> URL: https://issues.apache.org/jira/browse/DRILL-550
> Project: Apache Drill
> Issue Type: New Feature
> Reporter: Mehant Baid
> Assignee: Mehant Baid
> Attachments: DRILL-550.patch
>
>
> Following is the stack trace for the query:
> "select repeated_count(A) from dfs.`/tmp/input.json`; "
> java.lang.NullPointerException
> at
> org.eigenbase.sql.util.ReflectiveSqlOperatorTable.lookupOperatorOverloads(ReflectiveSqlOperatorTable.java:88)
> ~[optiq-core-0.6.jar:na]
> at
> org.apache.drill.exec.planner.sql.DrillOperatorTable.lookupOperatorOverloads(DrillOperatorTable.java:76)
>
> ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
> at org.eigenbase.sql.validate.AggFinder.visit(AggFinder.java:92)
> ~[optiq-core-0.6.jar:na]
> at org.eigenbase.sql.validate.AggFinder.visit(AggFinder.java:32)
> ~[optiq-core-0.6.jar:na]
> at org.eigenbase.sql.SqlCall.accept(SqlCall.java:133) ~[optiq-core-0.6.jar:na]
> at org.eigenbase.sql.util.SqlBasicVisitor.visit(SqlBasicVisitor.java:44)
> ~[optiq-core-0.6.jar:na]
> at org.eigenbase.sql.SqlNodeList.accept(SqlNodeList.java:149)
> ~[optiq-core-0.6.jar:na]
> at org.eigenbase.sql.validate.AggFinder.findAgg(AggFinder.java:62)
> ~[optiq-core-0.6.jar:na]
> at
> org.eigenbase.sql.validate.SqlValidatorImpl.getAgg(SqlValidatorImpl.java:2316)
> ~[optiq-core-0.6.jar:na]
> at
> org.eigenbase.sql.validate.SqlValidatorImpl.isAggregate(SqlValidatorImpl.java:2303)
> ~[optiq-core-0.6.jar:na]
> at
> org.eigenbase.sql.validate.SqlValidatorImpl.registerQuery(SqlValidatorImpl.java:1997)
> ~[optiq-core-0.6.jar:na]
> at
> org.eigenbase.sql.validate.SqlValidatorImpl.registerQuery(SqlValidatorImpl.java:1921)
> ~[optiq-core-0.6.jar:na]
> at
> org.eigenbase.sql.validate.SqlValidatorImpl.validateScopedExpression(SqlValidatorImpl.java:708)
> ~[optiq-core-0.6.jar:na]
> at
> org.eigenbase.sql.validate.SqlValidatorImpl.validate(SqlValidatorImpl.java:426)
> ~[optiq-core-0.6.jar:na]
> at net.hydromatic.optiq.prepare.PlannerImpl.validate(PlannerImpl.java:170)
> ~[optiq-core-0.6.jar:na]
> at
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.validateNode(DefaultSqlHandler.java:101)
>
> ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
> at
> org.apache.drill.exec.planner.sql.handlers.DefaultSqlHandler.getPlan(DefaultSqlHandler.java:86)
>
> ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
> at
> org.apache.drill.exec.planner.sql.DrillSqlWorker.getPlan(DrillSqlWorker.java:85)
>
> ~[drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
> at org.apache.drill.exec.work.foreman.Foreman.runSQL(Foreman.java:323)
> [drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
> at org.apache.drill.exec.work.foreman.Foreman.run(Foreman.java:175)
> [drill-java-exec-1.0.0-m2-incubating-SNAPSHOT-rebuffed.jar:1.0.0-m2-incubating-SNAPSHOT]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> [na:1.7.0_51]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> [na:1.7.0_51]
> at java.lang.Thread.run(Thread.java:744) [na:1.7.0_51]
> In DrillOperatorTable while looking up a given operator we hit NPE because
> the SqlIdentifier passed in is NULL. While registering Drill functions as
> Optiq's SqlFunction we need to use the constructor for user defined
> functions. Currently we use the same constructor as used for built-in
> functions where the SqlIdentifier is not set.
--
This message was sent by Atlassian JIRA
(v6.2#6252)