@@ -411,8 +411,13 @@ delete_in_khepri(QueueName, OnlyDurable) ->
411411 rabbit_khepri :transaction (
412412 fun () ->
413413 Path = khepri_queue_path (QueueName ),
414+ TxApiVersion = rabbit_khepri :tx_api_version (),
414415 case khepri_tx_adv :delete (Path ) of
415- {ok , #{Path := #{data := _ }}} ->
416+ {ok , #{Path := #{data := _ }}} when TxApiVersion >= 1 ->
417+ % % we want to execute some things, as decided by rabbit_exchange,
418+ % % after the transaction.
419+ rabbit_db_binding :delete_for_destination_in_khepri (QueueName , OnlyDurable );
420+ {ok , #{data := _ }} when TxApiVersion =:= 0 ->
416421 % % we want to execute some things, as decided by rabbit_exchange,
417422 % % after the transaction.
418423 rabbit_db_binding :delete_for_destination_in_khepri (QueueName , OnlyDurable );
@@ -1139,20 +1144,26 @@ do_delete_transient_queues_in_khepri(Qs, FilterFun) ->
11391144do_delete_transient_queues_in_khepri_tx ([], Acc ) ->
11401145 {ok , Acc };
11411146do_delete_transient_queues_in_khepri_tx ([{Path , Vsn , QName } | Rest ], Acc ) ->
1142- % % Also see `delete_in_khepri/2'.
1143- VersionedPath = khepri_path :combine_with_conditions (
1144- Path , [# if_payload_version {version = Vsn }]),
1145- case khepri_tx_adv :delete (VersionedPath ) of
1146- {ok , #{Path := #{data := _ }}} ->
1147- Deletions = rabbit_db_binding :delete_for_destination_in_khepri (
1148- QName , false ),
1149- Acc1 = [{QName , Deletions } | Acc ],
1150- do_delete_transient_queues_in_khepri_tx (Rest , Acc1 );
1151- {ok , _ } ->
1152- do_delete_transient_queues_in_khepri_tx (Rest , Acc );
1153- {error , _ } = Error ->
1154- Error
1155- end .
1147+ % % Also see `delete_in_khepri/2'.
1148+ VersionedPath = khepri_path :combine_with_conditions (
1149+ Path , [# if_payload_version {version = Vsn }]),
1150+ TxApiVersion = rabbit_khepri :tx_api_version (),
1151+ case khepri_tx_adv :delete (VersionedPath ) of
1152+ {ok , #{Path := #{data := _ }}} when TxApiVersion >= 1 ->
1153+ Deletions = rabbit_db_binding :delete_for_destination_in_khepri (
1154+ QName , false ),
1155+ Acc1 = [{QName , Deletions } | Acc ],
1156+ do_delete_transient_queues_in_khepri_tx (Rest , Acc1 );
1157+ {ok , #{data := _ }} when TxApiVersion =:= 0 ->
1158+ Deletions = rabbit_db_binding :delete_for_destination_in_khepri (
1159+ QName , false ),
1160+ Acc1 = [{QName , Deletions } | Acc ],
1161+ do_delete_transient_queues_in_khepri_tx (Rest , Acc1 );
1162+ {ok , _ } ->
1163+ do_delete_transient_queues_in_khepri_tx (Rest , Acc );
1164+ {error , _ } = Error ->
1165+ Error
1166+ end .
11561167
11571168% % -------------------------------------------------------------------
11581169% % foreach_transient().
0 commit comments