in harry-core/src/harry/operations/WriteHelper.java [85:120]
public static CompiledStatement inflateUpdate(SchemaSpec schema,
long pd,
long cd,
long[] vds,
long[] sds,
long timestamp)
{
Object[] partitionKey = schema.inflatePartitionKey(pd);
Object[] clusteringKey = schema.inflateClusteringKey(cd);
Object[] staticColumns = sds == null ? null : schema.inflateStaticColumns(sds);
Object[] regularColumns = schema.inflateRegularColumns(vds);
Object[] bindings = new Object[schema.allColumns.size()];
StringBuilder b = new StringBuilder();
b.append("UPDATE ")
.append(schema.keyspace)
.append('.')
.append(schema.table)
.append(" USING TIMESTAMP ")
.append(timestamp)
.append(" SET ");
int bindingsCount = 0;
bindingsCount += addSetStatements(b, bindings, schema.regularColumns, regularColumns, bindingsCount);
if (staticColumns != null)
bindingsCount += addSetStatements(b, bindings, schema.staticColumns, staticColumns, bindingsCount);
assert bindingsCount > 0 : "Can not have an UPDATE statement without any updates";
b.append(" WHERE ");
bindingsCount += addWhereStatements(b, bindings, schema.partitionKeys, partitionKey, bindingsCount, true);
bindingsCount += addWhereStatements(b, bindings, schema.clusteringKeys, clusteringKey, bindingsCount, false);
b.append(";");
return new CompiledStatement(b.toString(), adjustArraySize(bindings, bindingsCount));
}