[
https://issues.apache.org/jira/browse/CASSANDRA-18495?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Brandon Williams updated CASSANDRA-18495:
-----------------------------------------
Resolution: Duplicate
Status: Resolved (was: Triage Needed)
I believe this is a duplicate of CASSANDRA-18322, only in this case preparing a
"USE" statement doesn't make sense.
> Warnings when using the perl driver to connect to Cassandra
> -----------------------------------------------------------
>
> Key: CASSANDRA-18495
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18495
> Project: Cassandra
> Issue Type: Bug
> Reporter: Aswin Karthik
> Priority: Normal
>
> When I use the [perl driver|https://github.com/TvdW/perl-DBD-Cassandra] to
> connect to Cassandra 4.0.3 and onwards, I get the following error just for
> initialization of a connection.
> The error I get is
> {noformat}
> `USE <keyspace>` with prepared statements is considered to be an anti-pattern
> due to ambiguity in non-qualified table names. Please consider removing
> instances of `Session#setKeyspace(<keyspace>)`, `Session#execute("USE
> <keyspace>")` and `cluster.newSession(<keyspace>)` from your code, and always
> use fully qualified table names (e.g. <keyspace>.<table>). Keyspace used:
> null, statement keyspace: null, statement id: <id> at
> Cassandra/Client/Connection.pm line 957.
> {noformat}
>
> This is just from initialization of the perl driver connection while choosing
> the keyspace.
> [https://github.com/TvdW/perl-DBD-Cassandra/blob/master/Cassandra-Client/lib/Cassandra/Client/Connection.pm#L562]
> before running any queries. It is emitted even if I use qualified prepared
> statement.
> The same warning does not pop up in Datastax java driver initialization.
> On debugging, I found that this warning does not emit for all unqualified
> prepared statements. It only emits for unqualified prepared "USE ks"
> statement. But the "USE ks" can never be qualified. So the warning is a bit
> vague on what is the recommended approach.
> And from the perspective of the driver, it is setting the keyspace of the
> connection for the first time. The same warning does not happen on the
> datastax java driver and that is because it uses QUERY to set the keyspace on
> connection. (I tried to follow the same approach on the perl driver -
> https://github.com/TvdW/perl-DBD-Cassandra/pull/35 )
> The warnings are not very clear on what is deprecated and what is not. Does
> it deprecate only the use of prepared statement of "USE ks"? or does it
> deprecate "USE ks" completely? And it is not being emitted for other
> unqualified prepared statements but only for a USE statement which cannot be
> qualified at all.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]