[ 
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)

Reply via email to