Prior art: T41470: Can't merge blocked users: Duplicate entry for key 'ipb_address'
The potential workflow if there are block_target for the source account:
Step 1: update bt_user and bt_user_text in block_target
- If there are previously no block_target row with the target account, we are done.
- If there are block_target row and no block row for the target account, drop the block_target row and we are done.
- If there are block_target row and block row for the target account, drop the block_target row and go to Step 2 to fix the block row.
Step 2: update block row
- First we change the bl_target to the new block row
- How to update block row depends on how many blocks are allowed (see T351508: Decide the limit of multiblocks)
- If we support arbitrary number of blocked: we may (or must, depends on T351511) remove redundant blocks.
- If we support a limited number of block: first we may (or must, depends on T351511) remove redundant blocks, then we need to sort the blocks somehow and drop some blocks.
- If we only support one block the current way for block seletion may be used.