This is an automated email from the ASF dual-hosted git repository. mck pushed a commit to branch cassandra-3.11 in repository https://gitbox.apache.org/repos/asf/cassandra.git
commit 8c38b203437d554df58bad0efb00527d9a58cce2 Merge: a82603a 4a70a9a Author: Mick Semb Wever <[email protected]> AuthorDate: Wed Apr 10 21:13:24 2019 +1000 Merge branch 'cassandra-3.0' into cassandra-3.11 CHANGES.txt | 1 + tools/stress/src/org/apache/cassandra/stress/StressProfile.java | 5 +++++ 2 files changed, 6 insertions(+) diff --cc CHANGES.txt index 1d3ff85,8ee7e06..9fecc40 --- a/CHANGES.txt +++ b/CHANGES.txt @@@ -1,6 -1,6 +1,7 @@@ -3.0.19 +3.11.5 + * Add flag to disable SASI indexes, and warnings on creation (CASSANDRA-14866) +Merged from 3.0: + * cassandra-stress works with frozen collections: list and set (CASSANDRA-14907) - * For nodetool listsnapshots output, put spaces between columns, and increase snapshot padding (CASSANDRA-14876) * Fix handling FS errors on writing and reading flat files - LogTransaction and hints (CASSANDRA-15053) * Avoid double closing the iterator to avoid overcounting the number of requests (CASSANDRA-15058) * Improve `nodetool status -r` speed (CASSANDRA-14847) diff --cc tools/stress/src/org/apache/cassandra/stress/StressProfile.java index 9c0be4e,0b0d4e9..ad10499 --- a/tools/stress/src/org/apache/cassandra/stress/StressProfile.java +++ b/tools/stress/src/org/apache/cassandra/stress/StressProfile.java @@@ -506,54 -374,50 +506,59 @@@ public class StressProfile implements S maybeLoadSchemaInfo(settings); Set<ColumnMetadata> keyColumns = com.google.common.collect.Sets.newHashSet(tableMetaData.getPrimaryKey()); - - //Non PK Columns - StringBuilder sb = new StringBuilder(); - - sb.append("UPDATE \"").append(tableName).append("\" SET "); - - //PK Columns - StringBuilder pred = new StringBuilder(); - pred.append(" WHERE "); - - boolean firstCol = true; - boolean firstPred = true; - for (ColumnMetadata c : tableMetaData.getColumns()) + Set<ColumnMetadata> allColumns = com.google.common.collect.Sets.newHashSet(tableMetaData.getColumns()); + boolean isKeyOnlyTable = (keyColumns.size() == allColumns.size()); + //With compact storage + if (!isKeyOnlyTable && (keyColumns.size() == (allColumns.size() - 1))) { - - if (keyColumns.contains(c)) + com.google.common.collect.Sets.SetView diff = com.google.common.collect.Sets.difference(allColumns, keyColumns); + for (Object obj : diff) { - if (firstPred) - firstPred = false; - else - pred.append(" AND "); - - pred.append(c.getName()).append(" = ?"); + ColumnMetadata col = (ColumnMetadata)obj; + isKeyOnlyTable = col.getName().isEmpty(); + break; } - else - { - if (firstCol) - firstCol = false; - else - sb.append(","); - - sb.append(c.getName()).append(" = "); + } - switch (c.getType().getName()) - { + //Non PK Columns + StringBuilder sb = new StringBuilder(); + if (!isKeyOnlyTable) + { + sb.append("UPDATE ").append(quoteIdentifier(tableName)).append(" SET "); + //PK Columns + StringBuilder pred = new StringBuilder(); + pred.append(" WHERE "); + + boolean firstCol = true; + boolean firstPred = true; + for (ColumnMetadata c : tableMetaData.getColumns()) { + + if (keyColumns.contains(c)) { + if (firstPred) + firstPred = false; + else + pred.append(" AND "); + + pred.append(quoteIdentifier(c.getName())).append(" = ?"); + } else { + if (firstCol) + firstCol = false; + else + sb.append(','); + + sb.append(quoteIdentifier(c.getName())).append(" = "); + + switch (c.getType().getName()) + { case SET: case LIST: + if (c.getType().isFrozen()) + { + sb.append("?"); + break; + } case COUNTER: - sb.append(c.getName()).append(" + ?"); + sb.append(quoteIdentifier(c.getName())).append(" + ?"); break; default: sb.append("?"); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
