@@ -2228,28 +2228,35 @@ private BatchOperation buildBatchOperation(String tableName, List<? extends Row>
2228
2228
}
2229
2229
}
2230
2230
} else if (row instanceof Delete ) {
2231
+ boolean disExec = obTableClient .getServerCapacity ().isSupportDistributedExecute ();
2231
2232
Delete delete = (Delete ) row ;
2232
2233
if (delete .isEmpty ()) {
2233
2234
singleOpResultNum ++;
2234
- KeyValue kv = new KeyValue (delete .getRow (), delete .getTimeStamp (),
2235
- KeyValue .Type .Maximum );
2236
- com .alipay .oceanbase .rpc .mutation .Mutation tableMutation = buildMutation (kv , DEL , isTableGroup , Long .MAX_VALUE );
2237
- ObNewRange range = new ObNewRange ();
2238
- ObTableQuery tableQuery = new ObTableQuery ();
2239
- ObHTableFilter filter = null ;
2240
- tableQuery .setObKVParams (buildOBKVParams ((Scan )null ));
2241
- range .setStartKey (ObRowKey .getInstance (kv .getRow (), ObObj .getMin (), ObObj .getMin ()));
2242
- range .setEndKey (ObRowKey .getInstance (kv .getRow (), ObObj .getMax (), ObObj .getMax ()));
2243
- if (kv .getTimestamp () == Long .MAX_VALUE ) {
2244
- filter = buildObHTableFilter (null , null , Integer .MAX_VALUE );
2235
+ if (disExec ) {
2236
+ KeyValue kv = new KeyValue (delete .getRow (), delete .getTimeStamp (),
2237
+ KeyValue .Type .Maximum );
2238
+ com .alipay .oceanbase .rpc .mutation .Mutation tableMutation = buildMutation (kv , DEL , isTableGroup , Long .MAX_VALUE );
2239
+ ObNewRange range = new ObNewRange ();
2240
+ ObTableQuery tableQuery = new ObTableQuery ();
2241
+ ObHTableFilter filter ;
2242
+ tableQuery .setObKVParams (buildOBKVParams ((Scan ) null ));
2243
+ range .setStartKey (ObRowKey .getInstance (kv .getRow (), ObObj .getMin (), ObObj .getMin ()));
2244
+ range .setEndKey (ObRowKey .getInstance (kv .getRow (), ObObj .getMax (), ObObj .getMax ()));
2245
+ if (kv .getTimestamp () == Long .MAX_VALUE ) {
2246
+ filter = buildObHTableFilter (null , null , Integer .MAX_VALUE );
2247
+ } else {
2248
+ filter = buildObHTableFilter (null , new TimeRange (0 , kv .getTimestamp () + 1 ), Integer .MAX_VALUE );
2249
+ }
2250
+ tableQuery .sethTableFilter (filter );
2251
+ tableQuery .addKeyRange (range );
2252
+
2253
+ tableMutation .setTable (tableName );
2254
+ batch .addOperation (new QueryAndMutate (tableQuery , tableMutation ));
2245
2255
} else {
2246
- filter = buildObHTableFilter (null , new TimeRange (0 , kv .getTimestamp () + 1 ), Integer .MAX_VALUE );
2256
+ KeyValue kv = new KeyValue (delete .getRow (), delete .getTimeStamp (),
2257
+ KeyValue .Type .Maximum );
2258
+ batch .addOperation (buildMutation (kv , DEL , isTableGroup , Long .MAX_VALUE ));
2247
2259
}
2248
- tableQuery .sethTableFilter (filter );
2249
- tableQuery .addKeyRange (range );
2250
-
2251
- tableMutation .setTable (tableName );
2252
- batch .addOperation (new QueryAndMutate (tableQuery , tableMutation ));
2253
2260
} else {
2254
2261
for (Map .Entry <byte [], List <KeyValue >> entry : delete .getFamilyMap ().entrySet ()) {
2255
2262
byte [] family = entry .getKey ();
@@ -2258,11 +2265,19 @@ private BatchOperation buildBatchOperation(String tableName, List<? extends Row>
2258
2265
singleOpResultNum ++;
2259
2266
if (isTableGroup ) {
2260
2267
KeyValue new_kv = modifyQualifier (kv ,
2261
- (Bytes .toString (family ) + "." + Bytes .toString (kv
2262
- .getQualifier ())).getBytes ());
2263
- batch .addOperation (buildDeleteQueryAndMutate (new_kv , DEL , true , Long .MAX_VALUE ));
2268
+ (Bytes .toString (family ) + "." + Bytes .toString (kv
2269
+ .getQualifier ())).getBytes ());
2270
+ if (disExec ) {
2271
+ batch .addOperation (buildDeleteQueryAndMutate (new_kv , DEL , true , Long .MAX_VALUE ));
2272
+ } else {
2273
+ batch .addOperation (buildMutation (new_kv , DEL , true , Long .MAX_VALUE ));
2274
+ }
2264
2275
} else {
2265
- batch .addOperation (buildDeleteQueryAndMutate (kv , DEL , false , Long .MAX_VALUE ));
2276
+ if (disExec ) {
2277
+ batch .addOperation (buildDeleteQueryAndMutate (kv , DEL , false , Long .MAX_VALUE ));
2278
+ } else {
2279
+ batch .addOperation (buildMutation (kv , DEL , false , Long .MAX_VALUE ));
2280
+ }
2266
2281
}
2267
2282
}
2268
2283
}
0 commit comments