[mysql] collect foreign key delete and update rule #19797
Merged
+37
−13
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.
What does this PR do?
This PR enhances MySQL foreign key metadata collection by including delete and update rules from
INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
. These rules define the referential behavior enforced when a referenced row is deleted or updated. Capturing this information is essential for understanding the impact of foreign key constraints on cascading operations. The possible values for delete and update actions are:CASCADE
,SET NULL
,SET DEFAULT
,RESTRICT
,NO ACTION
.Note: On MariaDB 10.5 or above, the
REFERENCES
privilege at the table scope is required to view delete_rule and update_rule fromINFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS
.Motivation
https://datadoghq.atlassian.net/browse/DBMON-5083
The delete and update rules dictate how changes propagate when modifications occurs for a foreign key. Without this information, users reviewing foreign key definitions lack critical context on cascading behaviors. This PR ensures that these actions are captured.
Review checklist (to be filled by reviewers)
qa/skip-qa
label if the PR doesn't need to be tested during QA.backport/<branch-name>
label to the PR and it will automatically open a backport PR once this one is merged