Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sqlbase: add support for ON DELETE/UPDATE SET DEFAULT actions for FK …
…references This change follows the two that added ON DELETE SET NULL and ON UPDATE SET NULL and reuses the same code paths in the cascader. In this case, instead of creating a collection of NULLs for Column IDs, the default values are evaluated and use when creating the updated row. Again, most of the work was in adding in new tests to ensure that all strange edge cases were covered. The addition of SET NULL added the complication of possibly cascading a NULL value into NOT NULL column. For the addition of SET DEFAULT, a new complication arose, it is now possible to inadvertently break a UNIQUE constraint. Luckily, this was being handled correctly and failing the transaction's run batch, but the errors were left unconverted so by adding in the ConvertBatchError this edge case was correctly handled. Similar to with SET NULL, a restriction had to be added to prevent adding a SET DEFAULT action to a column that doesn't have a default value. While there I also updated the error produced by the similar SET NULL on a NOT NULL column's error message to use the tree.ErrString. Release note (sql change): ON DELETE SET DEFAULT and ON UPDATE SET DEFAULT foreign key constraints actions are now fully supported
- Loading branch information