Remove unique constraint from order_key to prevent empty key conflict. #37594
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Submission Review Guidelines:
Changes proposed in this Pull Request:
While order_key is generally expected to be unique per order, it looks like it's not necessarily true, and orders can have no keys at all. In this case, wpdb->prepare converts a null value to an empty string, which conflicts with existing orders that also don't have any order key.
This PR removes the unique constraint and makes it consistent with the post store. Note that migration for existing orders will be tackled in a different PR.
How to test the changes in this Pull Request:
Using the WooCommerce Testing Instructions Guide, include your detailed testing instructions:
Delete the orders table by going to WooCommerce > Status > Tools. Create the tables again, verify that unique constraint is removed.