diff --git a/CHANGES.txt b/CHANGES.txt index dc13bea2bc..c73a1887a3 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -12,6 +12,8 @@ * Add ability to stop compaction by ID (CASSANDRA-7207) * Let CassandraVersion handle SNAPSHOT version (CASSANDRA-9438) Merged from 2.1: + * Consistent error message when a table mixes counter and non-counter + columns (CASSANDRA-9492) * Avoid getting unreadable keys during anticompaction (CASSANDRA-9508) * (cqlsh) Better float precision by default (CASSANDRA-9224) * Improve estimated row count (CASSANDRA-9107) diff --git a/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java b/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java index 3be20a678e..b3591a22b4 100644 --- a/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/CreateTableStatement.java @@ -53,7 +53,14 @@ public class CreateTableStatement extends SchemaAlteringStatement private boolean isDense; - private final Map columns = new HashMap(); + // use a TreeMap to preserve ordering across JDK versions (see CASSANDRA-9492) + private final Map columns = new TreeMap<>(new Comparator() + { + public int compare(ColumnIdentifier o1, ColumnIdentifier o2) + { + return o1.bytes.compareTo(o2.bytes); + } + }); private final Set staticColumns; private final CFPropDefs properties; private final boolean ifNotExists;