Skip to content

release-24.3.9-rc: sql: only re-use resolved routine type when flag is set#143635

Merged
DrewKimball merged 1 commit intorelease-24.3.9-rcfrom
blathers/backport-release-24.3.9-rc-143632
Mar 31, 2025
Merged

release-24.3.9-rc: sql: only re-use resolved routine type when flag is set#143635
DrewKimball merged 1 commit intorelease-24.3.9-rcfrom
blathers/backport-release-24.3.9-rc-143632

Conversation

@blathers-crl
Copy link

@blathers-crl blathers-crl bot commented Mar 28, 2025

Backport 1/1 commits from #143170.

/cc @cockroachdb/release


This commit adds a RoutineUseResolvedType flag to the SemaContext properties to indicate that type-checking for a routine that has already been resolved to a concrete type should short-circuit. This is used to determine the column type for a Values operator which depends on a RECORD-returning routine, which only determines its type after the body is built. This will prevent regressions in other code paths that do not desire this short-circuiting behavior.

Fixes #142615

Release note (bug fix): Fixed a bug in v24.1.14, v24.3.7, v24.3.8, and v25.1 which could cause a nil-pointer error when a column's default expression contained a volatile expression (like nextval) as a UDF argument.


Release justification: fix for regression due to previously backported fix

@blathers-crl blathers-crl bot requested a review from a team March 28, 2025 06:26
@blathers-crl blathers-crl bot requested a review from a team as a code owner March 28, 2025 06:26
@blathers-crl blathers-crl bot force-pushed the blathers/backport-release-24.3.9-rc-143632 branch from b33ed8b to 8866989 Compare March 28, 2025 06:26
@blathers-crl blathers-crl bot added blathers-backport This is a backport that Blathers created automatically. O-robot Originated from a bot. labels Mar 28, 2025
@blathers-crl blathers-crl bot requested review from mw5h and removed request for a team March 28, 2025 06:26
@blathers-crl
Copy link
Author

blathers-crl bot commented Mar 28, 2025

Thanks for opening a backport.

Please check the backport criteria before merging:

  • Backports should only be created for serious
    issues
    or test-only changes.
  • Backports should not break backwards-compatibility.
  • Backports should change as little code as possible.
  • Backports should not change on-disk formats or node communication protocols.
  • Backports should not add new functionality (except as defined
    here).
  • Backports must not add, edit, or otherwise modify cluster versions; or add version gates.
  • All backports must be reviewed by the owning areas TL. For more information as to how that review should be conducted, please consult the backport
    policy
    .
If your backport adds new functionality, please ensure that the following additional criteria are satisfied:
  • 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. State changes must be further protected such that nodes running old binaries will not be negatively impacted by the new state (with a mixed version test added).
  • The PM and TL on the team that owns the changed code have signed off that the change obeys the above rules.
  • Your backport must be accompanied by a post to the appropriate Slack
    channel (#db-backports-point-releases or #db-backports-XX-X-release) for awareness and discussion.

Also, please add a brief release justification to the body of your PR to justify this
backport.

@blathers-crl blathers-crl bot requested review from a team and mgartner March 28, 2025 06:26
@blathers-crl blathers-crl bot added the backport Label PR's that are backports to older release branches label Mar 28, 2025
@cockroach-teamcity
Copy link
Member

This change is Reviewable

@DrewKimball DrewKimball changed the title release-24.3.9-rc: release-25.1.3-rc: sql: only re-use resolved routine type when flag is set release-24.3.9-rc: sql: only re-use resolved routine type when flag is set Mar 28, 2025
@DrewKimball DrewKimball force-pushed the blathers/backport-release-24.3.9-rc-143632 branch from 8866989 to 515dae2 Compare March 29, 2025 21:09
This commit adds a `RoutineUseResolvedType` flag to the `SemaContext`
properties to indicate that type-checking for a routine that has already
been resolved to a concrete type should short-circuit. This is used to
determine the column type for a `Values` operator which depends on a
RECORD-returning routine, which only determines its type after the
body is built. This will prevent regressions in other code paths that
do not desire this short-circuiting behavior.

Fixes #142615

Release note (bug fix): Fixed a bug in `v24.1.14`, `v24.3.7`, `v24.3.8`,
and `v25.1` which could cause a nil-pointer error when a column's default
expression contained a volatile expression (like `nextval`) as a UDF
argument.
@DrewKimball DrewKimball force-pushed the blathers/backport-release-24.3.9-rc-143632 branch from 515dae2 to 7274c20 Compare March 31, 2025 14:54
@DrewKimball DrewKimball merged commit 4c8af21 into release-24.3.9-rc Mar 31, 2025
15 of 16 checks passed
@DrewKimball DrewKimball deleted the blathers/backport-release-24.3.9-rc-143632 branch March 31, 2025 15:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport Label PR's that are backports to older release branches blathers-backport This is a backport that Blathers created automatically. branch-release-24.3.9-rc O-robot Originated from a bot. T-sql-queries SQL Queries Team v24.3.9

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants