[
https://issues.apache.org/jira/browse/CASSANDRA-11456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15218661#comment-15218661
]
Pavel Yaskevich commented on CASSANDRA-11456:
---------------------------------------------
This is actually going to be pretty tough to implement since actual type of
LIKE operator (LIKE_\{PREFIX, SUFFIX, ...\}) is determined by the value and we
can't get a value while building restrictions which means we can't say if
restriction matches index etc. until it's too late already.
I guess we could cheat in LikeRestriction\#isSupportedBy(Index) method and just
accept purely based on the column definition and fail once query is actually
executed since that's only when we will be able to properly determine a type of
LIKE statement.
Or, as an alternative, we could support something like {{SELECT * FROM X WHERE
user_name LIKE '?%'}} so only values of the LIKE could be bind, but I'm not
sure if that's even is currently feasible in CQL.
WDYT, [~beobal]?
> support for PreparedStatement with LIKE
> ---------------------------------------
>
> Key: CASSANDRA-11456
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11456
> Project: Cassandra
> Issue Type: Bug
> Components: CQL
> Reporter: Pavel Yaskevich
> Assignee: Pavel Yaskevich
> Priority: Minor
> Fix For: 3.5
>
>
> Using the Java driver for example:
> {code}
> PreparedStatement pst = session.prepare("select * from test.users where
> first_name LIKE ?");
> BoundStatement bs = pst.bind("Jon%");
> {code}
> The first line fails with {{SyntaxError: line 1:47 mismatched input '?'
> expecting STRING_LITERAL}} (which makes sense since it's how it's declared in
> the grammar). Other operators declare the right-hand side value as a
> {{Term.Raw}}, which can also be a bind marker.
> I think users will expect to be able to bind the argument this way.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)