diff --git a/CHANGES.txt b/CHANGES.txt index 422f66e306..0eb07517cd 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,6 @@ 2.1.6 + * 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 17fd6fd553..5c4e9e2308 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;