This is an automated email from the ASF dual-hosted git repository.
adelapena pushed a commit to branch cassandra-3.0
in repository https://gitbox.apache.org/repos/asf/cassandra.git
The following commit(s) were added to refs/heads/cassandra-3.0 by this push:
new 0700dfa Check SSTables for latest version before dropping compact
storage
0700dfa is described below
commit 0700dfa0bc26d0758df898101bb595d3ec8d7def
Author: Ekaterina Dimitrova <[email protected]>
AuthorDate: Tue Oct 13 15:42:51 2020 +0100
Check SSTables for latest version before dropping compact storage
patch by Ekaterina Dimitrova; reviewed by Andrés de la Peña and Sylvain
Lebresne for CASSANDRA-16063
---
CHANGES.txt | 1 +
.../apache/cassandra/cql3/statements/AlterTableStatement.java | 9 +++++++++
2 files changed, 10 insertions(+)
diff --git a/CHANGES.txt b/CHANGES.txt
index 1dd52c2..0f9694e 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
3.0.23:
+ * Check SSTables for latest version before dropping compact storage
(CASSANDRA-16063)
* Handle unexpected columns due to schema races (CASSANDRA-15899)
* Avoid failing compactions with very large partitions (CASSANDRA-15164)
* Use IF NOT EXISTS for index and UDT create statements in snapshot schema
files (CASSANDRA-13935)
diff --git
a/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java
b/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java
index 193c24c..31c8e8f 100644
--- a/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java
+++ b/src/java/org/apache/cassandra/cql3/statements/AlterTableStatement.java
@@ -34,6 +34,7 @@ import org.apache.cassandra.db.marshal.BytesType;
import org.apache.cassandra.db.marshal.EmptyType;
import org.apache.cassandra.db.view.View;
import org.apache.cassandra.exceptions.*;
+import org.apache.cassandra.io.sstable.format.SSTableReader;
import org.apache.cassandra.schema.IndexMetadata;
import org.apache.cassandra.schema.Indexes;
import org.apache.cassandra.schema.TableParams;
@@ -277,6 +278,14 @@ public class AlterTableStatement extends
SchemaAlteringStatement
if (!meta.isCompactTable())
throw new InvalidRequestException("Cannot DROP COMPACT
STORAGE on table without COMPACT STORAGE");
+ // TODO: Global check of the sstables to be added as part of
CASSANDRA-15897.
+ // Currently this is only a local check of the SSTables
versions
+ for (SSTableReader ssTableReader :
Keyspace.open(keyspace()).getColumnFamilyStore(columnFamily()).getLiveSSTables())
+ {
+ if (!ssTableReader.descriptor.version.isLatestVersion())
+ throw new InvalidRequestException("Cannot DROP COMPACT
STORAGE until all SSTables are upgraded, please run `nodetool upgradesstables`
first.");
+ }
+
cfm = meta.asNonCompact();
break;
case OPTS:
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]