You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "James Taylor (JIRA)" <ji...@apache.org> on 2016/01/24 04:07:39 UTC

[jira] [Resolved] (PHOENIX-1698) NULL in UNSIGNED_TIMESTAMP lead Illegal data/IllegalArgumentException

     [ https://issues.apache.org/jira/browse/PHOENIX-1698?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

James Taylor resolved PHOENIX-1698.
-----------------------------------
    Resolution: Cannot Reproduce

> NULL in UNSIGNED_TIMESTAMP lead Illegal data/IllegalArgumentException
> ---------------------------------------------------------------------
>
>                 Key: PHOENIX-1698
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1698
>             Project: Phoenix
>          Issue Type: Bug
>         Environment: phoenix 4.3, hbase 0.98
>            Reporter: Lavrenty Eskin
>            Assignee: Samarth Jain
>            Priority: Critical
>         Attachments: PHOENIX-1698_test.patch
>
>
> any function implementation, f.e. TRUNC or TO_CHAR for NULL value in UNSIGNED_TIMESTAMP column raised error:
> STORE_NULLS=false: "ERROR 201 (22000): Illegal data. Expected length of at least 8 bytes, but had 0"
> STORE_NULLS=true: "java.lang.IllegalArgumentException: Unknown class: <null>"
> How-to-reproduce:
> select ALARMRAISEDTIME from Alarms;
> +---------------------------------+
> |   ALARMRAISEDTIME       |
> +---------------------------------+
> | null                                    |
> | 2001-02-03 06:05:06.0     |
> | 2015-03-04 19:45:36.412 |
> +---------------------------------+
> 3 rows selected (0.046 seconds)
> select TRUNC(ALARMRAISEDTIME, 'HOUR') from Alarms;    <<== (STORE_NULLS=false)
> +---------------------------------------------------------------------------------------------------------------+
> |  FLOOR(TO_UNSIGNED_DATE(TO_UNSIGNED_TIMESTAMP(ALARMRAISEDTIME))) |
> +---------------------------------------------------------------------------------------------------------------+
> java.lang.RuntimeException: java.sql.SQLException: ERROR 201 (22000): Illegal data. Expected length of at least 8 bytes, but had 0
>         at sqlline.SqlLine$IncrementalRows.hasNext(SqlLine.java:2514)
>         at sqlline.SqlLine$TableOutputFormat.print(SqlLine.java:2148)
>         at sqlline.SqlLine.print(SqlLine.java:1809)
>         at sqlline.SqlLine$Commands.execute(SqlLine.java:3766)
>         at sqlline.SqlLine$Commands.sql(SqlLine.java:3663)
>         at sqlline.SqlLine.dispatch(SqlLine.java:889)
>         at sqlline.SqlLine.begin(SqlLine.java:763)
>         at sqlline.SqlLine.start(SqlLine.java:498)
>         at sqlline.SqlLine.main(SqlLine.java:460)
> select  to_char(ALARMRAISEDTIME, 'yyyy-MM-dd HH:mm') from  Alarms;    <<== (STORE_NULLS=true)
> +---------------------------------------------------------------------------------------------------------------+
> |  FLOOR(TO_UNSIGNED_DATE(TO_UNSIGNED_TIMESTAMP(ALARMRAISEDTIME))) |
> +---------------------------------------------------------------------------------------------------------------+
> java.lang.IllegalArgumentException: Unknown class: <null>
>         at org.apache.commons.lang.time.FastDateFormat.format(FastDateFormat.java:796)
>         at java.text.Format.format(Format.java:157)
>         at org.apache.phoenix.expression.function.ToCharFunction.evaluate(ToCharFunction.java:97)
>         at org.apache.phoenix.compile.ExpressionProjector.getValue(ExpressionProjector.java:69)
>         at org.apache.phoenix.jdbc.PhoenixResultSet.getObject(PhoenixResultSet.java:506)
>         at sqlline.SqlLine$Rows$Row.<init>(SqlLine.java:2388)
>         at sqlline.SqlLine$IncrementalRows.hasNext(SqlLine.java:2504)
>         at sqlline.SqlLine$TableOutputFormat.print(SqlLine.java:2148)
>         at sqlline.SqlLine.print(SqlLine.java:1809)
>         at sqlline.SqlLine$Commands.execute(SqlLine.java:3766)
>         at sqlline.SqlLine$Commands.sql(SqlLine.java:3663)
>         at sqlline.SqlLine.dispatch(SqlLine.java:889)
>         at sqlline.SqlLine.begin(SqlLine.java:763)
>         at sqlline.SqlLine.start(SqlLine.java:498)
>         at sqlline.SqlLine.main(SqlLine.java:460)



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