public void deleteColumns()

in harry-core/src/harry/reconciler/PartitionState.java [178:201]


    public void deleteColumns(long lts, Reconciler.RowState state, int columnOffset, harry.util.BitSet columns, BitSet mask)
    {
        if (state == null)
            return;

        //TODO: optimise by iterating over the columns that were removed by this deletion
        //TODO: optimise final decision to fully remove the column by counting a number of set/unset columns
        boolean allNil = true;
        for (int i = 0; i < state.vds.length; i++)
        {
            if (columns.isSet(columnOffset + i, mask))
            {
                state.vds[i] = NIL_DESCR;
                state.lts[i] = NO_TIMESTAMP;
            }
            else if (state.vds[i] != NIL_DESCR)
            {
                allNil = false;
            }
        }

        if (state.cd != Reconciler.STATIC_CLUSTERING && allNil & !state.hasPrimaryKeyLivenessInfo)
            delete(state.cd, lts);
    }