public void merge(UTF8Row other) {
        assert creator.hasDims;
        assert creator.indexAggTypes != null;
        assert dimDataSize == other.dimDataSize;
        if (rowDataAddr == 0) {
            throw new IllegalStateException("illegal row");
        }

        for (int index = creator.dimCount; index < creator.columnCount; index++) {
            byte type = creator.indexTypes[index].dataType;
            int aggType = creator.indexAggTypes[index];
            int metricIndex = index - creator.dimCount;
            long offset = dimDataSize + (metricIndex << 3);
            long value1 = MemoryUtil.getLong(rowDataAddr + offset);
            long value2 = MemoryUtil.getLong(other.rowDataAddr + offset);
            long newValue = AggType.agg(aggType, type, value1, value2);
            MemoryUtil.setLong(rowDataAddr + offset, newValue);
        }
    }
The aproximately memeory usage of this object. Currently only return the raw row data size.
indexr-segment/src/main/java/io/indexr/segment/rt/UTF8Row.java