Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

release-22.2: sql/catalog/schemaexpr: fix bug when new column default has different… #95451

Merged
merged 1 commit into from
Jan 22, 2023

Conversation

ajwerner
Copy link
Contributor

@ajwerner ajwerner commented Jan 18, 2023

Backport 1/1 commits from #95398.

/cc @cockroachdb/release


… type

Since 22.2 we permit default expressions to contain types which are not exactly the same as the column type; it is valid to have an expression which can be cast to the column type in an assignment context. Generally, the optimizer handles inserting the assignment cast into the execution of the relevant mutations. Unfortunately, the cast was not present for backfills.

This PR detects the situation where a cast is needed and insert it directly into the plan of the backfill (or import).

Epic: None

Fixes: #93398

Release note (bug fix): Since 22.2, default expressions can have a type which differs from the type of the column so long as the expression's type can be cast in an assignment context. Unfortunately, this code had a bug when adding new columns. The code in the backfill logic was not sophisticated enough to know to add the cast; when such a default expression was added to a new column it would result in a panic during the backfill. This bug has now been fixed.

Release justification: Fixes a bug with newly introduced feature.

… type

Since 22.2 we permit default expressions to contain types which are not exactly
the same as the column type; it is valid to have an expression which can be
cast to the column type in an assignment context. Generally, the optimizer
handles inserting the assignment cast into the execution of the relevant
mutations. Unfortunately, the cast was not present for backfills.

This PR detects the situation where a cast is needed and insert it directly
into the plan of the backfill (or import).

Epic: None

Fixes: cockroachdb#93398

Release note (bug fix): Since 22.2, default expressions can have a type which
differs from the type of the column so long as the expression's type can be
cast in an assignment context. Unfortunately, this code had a bug when adding
new columns. The code in the backfill logic was not sophisticated enough to
know to add the cast; when such a default expression was added to a new column
it would result in a panic during the backfill. This bug has now been fixed.
@ajwerner ajwerner requested a review from a team January 18, 2023 18:17
@blathers-crl
Copy link

blathers-crl bot commented Jan 18, 2023

Thanks for opening a backport.

Please check the backport criteria before merging:

  • Patches should only be created for serious issues or test-only changes.
  • Patches should not break backwards-compatibility.
  • Patches should change as little code as possible.
  • Patches should not change on-disk formats or node communication protocols.
  • Patches should not add new functionality.
  • Patches must not add, edit, or otherwise modify cluster versions; or add version gates.
If some of the basic criteria cannot be satisfied, ensure that the exceptional criteria are satisfied within.
  • There is a high priority need for the functionality that cannot wait until the next release and is difficult to address in another way.
  • The new functionality is additive-only and only runs for clusters which have specifically “opted in” to it (e.g. by a cluster setting).
  • New code is protected by a conditional check that is trivial to verify and ensures that it only runs for opt-in clusters.
  • The PM and TL on the team that owns the changed code have signed off that the change obeys the above rules.

Add a brief release justification to the body of your PR to justify this backport.

Some other things to consider:

  • What did we do to ensure that a user that doesn’t know & care about this backport, has no idea that it happened?
  • Will this work in a cluster of mixed patch versions? Did we test that?
  • If a user upgrades a patch version, uses this feature, and then downgrades, what happens?

@cockroach-teamcity
Copy link
Member

This change is Reviewable

@mgartner
Copy link
Collaborator

Merging this so I can put the backport for #95459.

@mgartner mgartner merged commit 8b53260 into cockroachdb:release-22.2 Jan 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants