Gabriel Reid created PHOENIX-1546:
-------------------------------------

             Summary: Calling getParameterMetaData on prepared statement where 
TO_NUMBER is used throws NPE
                 Key: PHOENIX-1546
                 URL: https://issues.apache.org/jira/browse/PHOENIX-1546
             Project: Phoenix
          Issue Type: Bug
            Reporter: Gabriel Reid


There are some issues calling {{PhoenixPreparedStatement.getParameterMetaData}} 
on a prepared statement that uses function calls on its input parameters. 

For example, the following test code:
{code}
PreparedStatement stmt = conn.prepareStatement(
                "UPSERT INTO " + ATABLE + " (organization_id, entity_id, 
a_date) " +
                        "VALUES (?,?,TO_NUMBER(?))");

        ParameterMetaData parameterMetaData = stmt.getParameterMetaData();
{code}

results in the following stack trace:

{code}
java.lang.NullPointerException
        at 
org.apache.phoenix.parse.ToNumberParseNode.create(ToNumberParseNode.java:49)
        at 
org.apache.phoenix.parse.ToNumberParseNode.create(ToNumberParseNode.java:35)
        at 
org.apache.phoenix.compile.ExpressionCompiler.visitLeave(ExpressionCompiler.java:309)
        at 
org.apache.phoenix.compile.ExpressionCompiler.visitLeave(ExpressionCompiler.java:132)
        at 
org.apache.phoenix.parse.FunctionParseNode.accept(FunctionParseNode.java:83)
        at 
org.apache.phoenix.compile.UpsertCompiler.compile(UpsertCompiler.java:726)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:479)
        at 
org.apache.phoenix.jdbc.PhoenixStatement$ExecutableUpsertStatement.compilePlan(PhoenixStatement.java:470)
        at 
org.apache.phoenix.jdbc.PhoenixPreparedStatement.getParameterMetaData(PhoenixPreparedStatement.java:248)

{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to