release-21.2: sql: enforce NOT NULL when adding a virtual computed column #83355
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.
Backport 1/1 commits from #81693.
/cc @cockroachdb/release
Before this change, we did not ever validate that newly added
virtual computed columns which were marked NOT NULL actually were
not NULL. This is because there historically, in the legacy schema changer,
we'd validate the
NULL
nature of the column when performing a columnbackfill. In the declarative schema changer, we don't do a column backfill,
so we have bugs aplenty related to the general failure to check the
NULL
disposition of the data (see #81679).
This change only affects the legacy schema changer so that it can be
backported. A separate issue (#81690) has been filed for parity in the
declarative schema changer.
Release note (bug fix): Before this change, not validation was performed
when adding a virtual computed column which was marked
NOT NULL
. This meantthat it was possible to have a virtual computed column with an active
NOT NULL
constraint despite having rows in the table for which the column was
NULL
.This has now been fixed.
Release justification: Fixes bug.