public static CompiledStatement inflateInsert()

in harry-core/src/harry/operations/WriteHelper.java [30:72]


    public static CompiledStatement inflateInsert(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("INSERT INTO ")
         .append(schema.keyspace)
         .append('.')
         .append(schema.table)
         .append(" (");

        int bindingsCount = 0;
        bindingsCount += appendStatements(b, bindings, schema.partitionKeys, partitionKey, bindingsCount, true, ",", "%s");
        bindingsCount += appendStatements(b, bindings, schema.clusteringKeys, clusteringKey, bindingsCount, false, ",", "%s");
        bindingsCount += appendStatements(b, bindings, schema.regularColumns, regularColumns, bindingsCount, false, ",", "%s");
        if (staticColumns != null)
            bindingsCount += appendStatements(b, bindings, schema.staticColumns, staticColumns, bindingsCount, false, ",", "%s");

        b.append(") VALUES (");

        for (int i = 0; i < bindingsCount; i++)
        {
            if (i > 0)
                b.append(", ");
            b.append("?");
        }

        b.append(") USING TIMESTAMP ")
         .append(timestamp)
         .append(";");

        return new CompiledStatement(b.toString(), adjustArraySize(bindings, bindingsCount));
    }