You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@phoenix.apache.org by "Marwa Saleh (JIRA)" <ji...@apache.org> on 2019/02/14 09:29:00 UTC

[jira] [Comment Edited] (PHOENIX-5086) Prepare statement fails: Lost Bound parameter in TO_TIMESTAMP function

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

Marwa Saleh edited comment on PHOENIX-5086 at 2/14/19 9:28 AM:
---------------------------------------------------------------

[~karanmehta93] I was checking on this ticket and just saw your comment. Never got the Jira notification but maybe it landed in junk. Anyway, I'm not sure if I'm experienced enough to answer about the JDBS contract, yet I do expect that at any point a call to getParameterMetaData returns the bound values. So caching sounds more of a choice to me.
 Please take in mind that I did see many other defects on Phoenix regarding other sql functions that may have the same root cause like here. Example, https://issues.apache.org/jira/browse/PHOENIX-4450. And i am pretty sure i saw a couple more but I don't have the time to browse Jira now.
Eventually I would suggest caching the parameter data.


was (Author: paranoidy):
[~karanmehta93] I was checking on this ticket and just saw your comment. Never got the Jira notification but maybe it landed in junk. Anyway, I'm not sure if I'm experienced enough to answer about the JDBS contract, yet I do expect that at any point a call to getParameterMetaData returns the bound values. So caching sounds more of a choice to me.
Please take in mind that I did see many other defects on Phoenix regarding other sql functions that may have the same root cause like here. Example, https://issues.apache.org/jira/browse/PHOENIX-4450. And i am pretty sure i saw a couple more but I don't have the time to browse Jira now.

> Prepare statement fails: Lost Bound parameter in TO_TIMESTAMP function
> ----------------------------------------------------------------------
>
>                 Key: PHOENIX-5086
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5086
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 5.0.0
>            Reporter: Marwa Saleh
>            Priority: Critical
>              Labels: preparedstatements
>
> Please note the issue happens in case of SELECT and works fine in case of UPSERT. 
> Prepared Statement SQL: 
> {noformat}
> SELECT "DOC_KEY" FROM XYZ WHERE  "DOC_MODIFY_DATE" >= TO_TIMESTAMP(?,'yyyy-MM-dd HH:mm:ss.SSS','UTC'); {noformat}
>  
> {code:java}
> preparedStatement.setString(1, "2018-12-30 14:38:24.208"); {code}
>  
> {code:java}
> Stack trace: 
> Caused by: org.apache.calcite.avatica.AvaticaSqlException: Error -1 (00000) : Remote driver error: RuntimeException: java.sql.SQLException: ERROR 2004 (INT05): Parameter value unbound. Parameter at index 1 is unbound -> SQLException: ERROR 2004 (INT05): Parameter value unbound. Parameter at index 1 is unbound 
>         at org.apache.calcite.avatica.Helper.createException(Helper.java:54) 
>         at org.apache.calcite.avatica.Helper.createException(Helper.java:41) 
>         at org.apache.calcite.avatica.AvaticaConnection.executeQueryInternal(AvaticaConnection.java:520) 
>         at org.apache.calcite.avatica.AvaticaPreparedStatement.executeQuery(AvaticaPreparedStatement.java:133) {code}
>  
> Possible to be patched?



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)