public static CompiledStatement inflateUpdate()

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));
    }