Class ClientTxBatchUpdateAllRequest
Wire layout:
int tableId
long txId // resource id of the caller's explicit transaction (nil is rejected)
int partitionId
int schemaId
int count
BitSet? deleted // one bit per row; set means DELETE (key-only tuple)
BitSet? merged // one bit per row; set means MERGE (partial row)
// neither bit set means UPSERT of the full row
count x (BitSet noValueSet, bytes binaryTuple)
Semantics: an UPSERT is a blind insert-or-replace; a DELETE removes the row (a missing key is a server-side no-op); a MERGE applies only the columns the row actually carries and leaves every other column at its stored value (a missing key is a no-op here too, so a merge cannot stage a new row).
A merge names its columns through noValueSet: the protocol already distinguishes "no value
supplied" from "explicitly null", and the former is exactly the "leave the stored value alone" case. So the
merge mask is the complement of that row's noValueSet, which means the mask cannot contradict the
tuple it came from. Key columns must carry values, since the row is resolved by its key.
The batch is applied atomically inside the caller's explicit transaction — the client is responsible for committing or rolling back the tx. Implicit transactions are not supported by this op; the C++ client and any other thin client must begin an explicit RW transaction before calling.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic CompletableFuture<ResponseWriter>process(org.apache.ignite.internal.client.proto.ClientMessageUnpacker in, org.apache.ignite.internal.table.IgniteTablesInternal tables, ClientResourceRegistry resources, ClientHandlerMetricSource metrics, org.apache.ignite.internal.tx.TxManager txManager, org.apache.ignite.internal.hlc.ClockService clockService, org.gridgain.internal.license.LicenseFeatureChecker licenseFeatureChecker, NotificationSender notificationSender, org.apache.ignite.internal.hlc.HybridTimestampTracker tsTracker, long requestId, Map<Long, Long> reqToTxMap) Processes the request.
-
Constructor Details
-
ClientTxBatchUpdateAllRequest
public ClientTxBatchUpdateAllRequest()
-
-
Method Details
-
process
public static CompletableFuture<ResponseWriter> process(org.apache.ignite.internal.client.proto.ClientMessageUnpacker in, org.apache.ignite.internal.table.IgniteTablesInternal tables, ClientResourceRegistry resources, ClientHandlerMetricSource metrics, org.apache.ignite.internal.tx.TxManager txManager, org.apache.ignite.internal.hlc.ClockService clockService, org.gridgain.internal.license.LicenseFeatureChecker licenseFeatureChecker, NotificationSender notificationSender, org.apache.ignite.internal.hlc.HybridTimestampTracker tsTracker, long requestId, Map<Long, Long> reqToTxMap) Processes the request.- Returns:
- Response future.
-