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-24.1: sql: support DEFAULT expressions for routine parameters #121811

Merged
merged 2 commits into from
Apr 6, 2024

Commits on Apr 5, 2024

  1. schemachanger: remove FunctionParamDefaultExpression as separate element

    There is no advantage to tracking the DEFAULT expression of routine
    parameters as a separate element since this expression can only be
    changed when modifying the whole function (and cannot be dropped once
    added). Instead, we'll simply store the expressions in the serialized
    form within the function parameters.
    
    Release note: None
    yuzefovich committed Apr 5, 2024
    Configuration menu
    Copy the full SHA
    ec2ed16 View commit details
    Browse the repository at this point in the history
  2. sql: support DEFAULT expressions for routine parameters

    This commit adds support for DEFAULT expressions for routine parameters.
    Routines can be declared with default values for some or all input
    arguments. The default values are inserted whenever the routine is
    called with insufficiently many actual arguments. Since arguments can
    only be omitted from the end of the actual argument list, all
    parameters after a parameter with a default value have to have default
    values as well. For procedures additionally no OUT parameters are
    allowed after the first input parameter with the DEFAULT expression. The
    DEFAULT expression has to be coercible to the argument type of the
    parameter.
    
    Given that presence of DEFAULT expressions changes the overload
    resolution, we need to include these into `FunctionSignature` proto. The
    overload resolution logic has also been adjusted to try omitting some of
    the input types for comparison (when applicable). In particular, UDF
    dependency tracking for memo metadata has been extended to store the
    "invocation signature" in addition to the overload itself given that
    input types of the latter might now be different from the former.
    
    In order to correctly track dependencies during schema changes, we
    always serialize the DEFAULT expressions after having them type-checked.
    
    Release note (sql change): DEFAULT expressions for input parameters of
    user-defined functions and stored procedures are now supported.
    yuzefovich committed Apr 5, 2024
    Configuration menu
    Copy the full SHA
    0cc964d View commit details
    Browse the repository at this point in the history