[
https://issues.jboss.org/browse/TEIID-3058?page=com.atlassian.jira.plugin...
]
Steven Hawkins commented on TEIID-3058:
---------------------------------------
I think the issue here is that the cassandra logic is simply assuming the default JDBC
format will work. Instead it looks like cassandra driver doesn't support the escape
sequence and just wants a string literal of the timestamp (more than likely this will be
true for date/time as well). The workaround is to instead model as a string type and use
a view to do the conversion to timestamp.
Cassandra: cannot compare timestamp field in where clause
----------------------------------------------------------
Key: TEIID-3058
URL:
https://issues.jboss.org/browse/TEIID-3058
Project: Teiid
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Misc. Connectors
Affects Versions: 8.7
Environment: Cassandra with Teiid 8.7
Reporter: Ivan Chan
Assignee: Steven Hawkins
Labels: Teiid
Fix For: 8.9
It seems like Teiid is having problem to compare translate CQL if there is timestamp
comparison in where clause:
ORIGINAL SQL:
select "cassandrads_sales"."product_family" as
"cassandrads_sales_product_family",
"cassandrads_sales"."product_family" as
"cassandrads_sales_product_family1"
from "cassandrads"."sales" "cassandrads_sales"
where "cassandrads_sales"."the_date" <= '2013-05-01
00:00:00'
limit 1000
TRANSLATED CQL:
SELECT cassandrads.sales.product_family FROM cassandrads.sales WHERE
cassandrads.sales.the_date <= {ts'2013-05-01 00:00:00.0'} LIMIT 1000
And I got this error:
Caused by: org.teiid.translator.TranslatorException: line 1:55 no viable alternative at
input '2013-05-01 00:00:0
at
org.teiid.translator.cassandra.CassandraQueryExecution.execute(CassandraQueryExecution.java:80)
at
org.teiid.translator.cassandra.CassandraQueryExecution.execute(CassandraQueryExecution.java:72)
at
org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:325)
at
org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298)
at
org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:135)
If it is not possible to do time/ data comparison for CQL, maybe you guys should consider
to do it in memory instead. Thanks.
--
This message was sent by Atlassian JIRA
(v6.2.6#6264)