[ https://issues.apache.org/jira/browse/PHOENIX-1698?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Samarth Jain reassigned PHOENIX-1698: ------------------------------------- Assignee: Samarth Jain > NULL in UNSIGNED_TIMESTAMP raises 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 > > 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)