This is an automated email from the ASF dual-hosted git repository.

adelapena pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 98680e8708 Remove 3.x from the versions checked for prepared statement 
behaviour
98680e8708 is described below

commit 98680e8708e36e5120b08e1b8ad9f7622d3bd74b
Author: Andrés de la Peña <[email protected]>
AuthorDate: Wed Jul 26 12:49:28 2023 +0100

    Remove 3.x from the versions checked for prepared statement behaviour
    
    patch by Andrés de la Peña; reviewed by Mick Semb Wever for CASSANDRA-18695
---
 CHANGES.txt                                            |  1 +
 src/java/org/apache/cassandra/cql3/QueryProcessor.java | 17 ++++++-----------
 2 files changed, 7 insertions(+), 11 deletions(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index 3f78b9769e..7a60b6ae95 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 5.0
+ * Remove 3.x from the versions checked for prepared statement behaviour 
(CASSANDRA-18695)
  * Add vector similarity functions (CASSANDRA-18640)
  * Lift MessagingService.minimum_version to 40 (CASSANDRA-18314)
  * Introduce pluggable crypto providers and default to 
AmazonCorrettoCryptoProvider (CASSANDRA-18624)
diff --git a/src/java/org/apache/cassandra/cql3/QueryProcessor.java 
b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
index 479e35fe6c..02369f373a 100644
--- a/src/java/org/apache/cassandra/cql3/QueryProcessor.java
+++ b/src/java/org/apache/cassandra/cql3/QueryProcessor.java
@@ -82,8 +82,6 @@ public class QueryProcessor implements QueryHandler
     public static final CassandraVersion CQL_VERSION = new 
CassandraVersion("3.4.7");
 
     // See comments on QueryProcessor #prepare
-    public static final CassandraVersion 
NEW_PREPARED_STATEMENT_BEHAVIOUR_SINCE_30 = new CassandraVersion("3.0.26");
-    public static final CassandraVersion 
NEW_PREPARED_STATEMENT_BEHAVIOUR_SINCE_3X = new CassandraVersion("3.11.12");
     public static final CassandraVersion 
NEW_PREPARED_STATEMENT_BEHAVIOUR_SINCE_40 = new CassandraVersion("4.0.2");
 
     public static final QueryProcessor instance = new QueryProcessor();
@@ -644,10 +642,7 @@ public class QueryProcessor implements QueryHandler
         synchronized (this)
         {
             CassandraVersion minVersion = 
Gossiper.instance.getMinVersion(DatabaseDescriptor.getWriteRpcTimeout(TimeUnit.MILLISECONDS),
 TimeUnit.MILLISECONDS);
-            if (minVersion != null &&
-                ((minVersion.major == 3 && minVersion.minor == 0 && 
minVersion.compareTo(NEW_PREPARED_STATEMENT_BEHAVIOUR_SINCE_30) >= 0) ||
-                 (minVersion.major == 3 && minVersion.minor > 0 && 
minVersion.compareTo(NEW_PREPARED_STATEMENT_BEHAVIOUR_SINCE_3X) >= 0) ||
-                 
(minVersion.compareTo(NEW_PREPARED_STATEMENT_BEHAVIOUR_SINCE_40, true) >= 0)))
+            if (minVersion != null && 
minVersion.compareTo(NEW_PREPARED_STATEMENT_BEHAVIOUR_SINCE_40, true) >= 0)
             {
                 logger.info("Fully upgraded to at least {}", minVersion);
                 newPreparedStatementBehaviour = true;
@@ -661,17 +656,17 @@ public class QueryProcessor implements QueryHandler
      * This method got slightly out of hand, but this is with best intentions: 
to allow users to be upgraded from any
      * prior version, and help implementers avoid previous mistakes by clearly 
separating fully qualified and non-fully
      * qualified statement behaviour.
-     *
+     * <p>
      * Basically we need to handle 4 different hashes here;
      * 1. fully qualified query with keyspace
      * 2. fully qualified query without keyspace
      * 3. unqualified query with keyspace
      * 4. unqualified query without keyspace
-     *
-     * The correct combination to return is 2/3 - the problem is during 
upgrades (assuming upgrading from < 3.0.26)
+     * <p>
+     * The correct combination to return is 2/3 - the problem is during 
upgrades (assuming upgrading from < 4.0.2)
      * - Existing clients have hash 1 or 3
-     * - Query prepared on a 3.0.26/3.11.12/4.0.2 instance needs to return 
hash 1/3 to be able to execute it on a 3.0.25 instance
-     * - This is handled by the useNewPreparedStatementBehaviour flag - while 
there still are 3.0.25 instances in
+     * - Query prepared on a post-4.0.2 instance needs to return hash 1/3 to 
be able to execute it on a pre-4.0.2 instance
+     * - This is handled by the useNewPreparedStatementBehaviour flag - while 
there still are pre-4.0.2 instances in
      *   the cluster we always return hash 1/3
      * - Once fully upgraded we start returning hash 2/3, this will cause a 
prepared statement id mismatch for existing
      *   clients, but they will be able to continue using the old prepared 
statement id after that exception since we


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to