in modules/core/src/main/java/org/apache/fluo/core/impl/TransactionImpl.java [433:467]
private ConditionalFlutation prewrite(ConditionalFlutation cm, Bytes row, Column col, Bytes val,
Bytes primaryRow, Column primaryColumn, boolean isTriggerRow) {
IteratorSetting iterConf = new IteratorSetting(10, PrewriteIterator.class);
PrewriteIterator.setSnaptime(iterConf, startTs);
boolean isTrigger = isTriggerRow && col.equals(notification.getColumn());
if (isTrigger) {
PrewriteIterator.enableAckCheck(iterConf, notification.getTimestamp());
}
if (isReadLock(val)) {
PrewriteIterator.setReadlock(iterConf);
}
Condition cond = new FluoCondition(env, col).setIterators(iterConf);
if (cm == null) {
cm = new ConditionalFlutation(env, row, cond);
} else {
cm.addCondition(cond);
}
if (isWrite(val) && !isDelete(val)) {
cm.put(col, ColumnType.DATA.encode(startTs), val.toArray());
}
if (isReadLock(val)) {
cm.put(col, ColumnType.RLOCK.encode(ReadLockUtil.encodeTs(startTs, false)),
ReadLockValue.encode(primaryRow, primaryColumn, getTransactorID()));
} else {
cm.put(col, ColumnType.LOCK.encode(startTs), LockValue.encode(primaryRow, primaryColumn,
isWrite(val), isDelete(val), isTriggerRow, getTransactorID()));
}
return cm;
}