@@ -2228,28 +2228,35 @@ private BatchOperation buildBatchOperation(String tableName, List<? extends Row>
22282228 }
22292229 }
22302230 } else if (row instanceof Delete ) {
2231+ boolean disExec = obTableClient .getServerCapacity ().isSupportDistributedExecute ();
22312232 Delete delete = (Delete ) row ;
22322233 if (delete .isEmpty ()) {
22332234 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 ));
22452255 } 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 ));
22472259 }
2248- tableQuery .sethTableFilter (filter );
2249- tableQuery .addKeyRange (range );
2250-
2251- tableMutation .setTable (tableName );
2252- batch .addOperation (new QueryAndMutate (tableQuery , tableMutation ));
22532260 } else {
22542261 for (Map .Entry <byte [], List <KeyValue >> entry : delete .getFamilyMap ().entrySet ()) {
22552262 byte [] family = entry .getKey ();
@@ -2258,11 +2265,19 @@ private BatchOperation buildBatchOperation(String tableName, List<? extends Row>
22582265 singleOpResultNum ++;
22592266 if (isTableGroup ) {
22602267 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+ }
22642275 } 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+ }
22662281 }
22672282 }
22682283 }
0 commit comments