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]

Reply via email to