1
0
Fork 0

Merging upstream version 21.1.2.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-13 21:28:36 +01:00
parent d59261cf1f
commit 472d4a62ba
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
103 changed files with 18237 additions and 17794 deletions

View file

@ -67,8 +67,8 @@ class Expression(metaclass=_Expression):
Attributes:
key: a unique key for each class in the Expression hierarchy. This is useful for hashing
and representing expressions as strings.
arg_types: determines what arguments (child nodes) are supported by an expression. It
maps arg keys to booleans that indicate whether the corresponding args are optional.
arg_types: determines the arguments (child nodes) supported by an expression. It maps
arg keys to booleans that indicate whether the corresponding args are optional.
parent: a reference to the parent expression (or None, in case of root expressions).
arg_key: the arg key an expression is associated with, i.e. the name its parent expression
uses to refer to it.
@ -680,7 +680,7 @@ class Expression(metaclass=_Expression):
*expressions: the SQL code strings to parse.
If an `Expression` instance is passed, it will be used as-is.
dialect: the dialect used to parse the input expression.
copy: whether or not to copy the involved expressions (only applies to Expressions).
copy: whether to copy the involved expressions (only applies to Expressions).
opts: other options to use to parse the input expressions.
Returns:
@ -706,7 +706,7 @@ class Expression(metaclass=_Expression):
*expressions: the SQL code strings to parse.
If an `Expression` instance is passed, it will be used as-is.
dialect: the dialect used to parse the input expression.
copy: whether or not to copy the involved expressions (only applies to Expressions).
copy: whether to copy the involved expressions (only applies to Expressions).
opts: other options to use to parse the input expressions.
Returns:
@ -723,7 +723,7 @@ class Expression(metaclass=_Expression):
'NOT x = 1'
Args:
copy: whether or not to copy this object.
copy: whether to copy this object.
Returns:
The new Not instance.
@ -3820,7 +3820,7 @@ class DataType(Expression):
dialect: the dialect to use for parsing `dtype`, in case it's a string.
udt: when set to True, `dtype` will be used as-is if it can't be parsed into a
DataType, thus creating a user-defined type.
copy: whether or not to copy the data type.
copy: whether to copy the data type.
kwargs: additional arguments to pass in the constructor of DataType.
Returns:
@ -4309,9 +4309,9 @@ class Func(Condition):
Attributes:
is_var_len_args (bool): if set to True the last argument defined in arg_types will be
treated as a variable length argument and the argument's value will be stored as a list.
_sql_names (list): determines the SQL name (1st item in the list) and aliases (subsequent items)
for this function expression. These values are used to map this node to a name during parsing
as well as to provide the function's name during SQL string generation. By default the SQL
_sql_names (list): the SQL name (1st item in the list) and aliases (subsequent items) for this
function expression. These values are used to map this node to a name during parsing as
well as to provide the function's name during SQL string generation. By default the SQL
name is set to the expression's class name transformed to snake case.
"""
@ -4449,6 +4449,7 @@ class ArrayAll(Func):
arg_types = {"this": True, "expression": True}
# Represents Python's `any(f(x) for x in array)`, where `array` is `this` and `f` is `expression`
class ArrayAny(Func):
arg_types = {"this": True, "expression": True}
@ -4482,6 +4483,7 @@ class ArrayOverlaps(Binary, Func):
class ArraySize(Func):
arg_types = {"this": True, "expression": False}
_sql_names = ["ARRAY_SIZE", "ARRAY_LENGTH"]
class ArraySort(Func):
@ -5033,7 +5035,7 @@ class JSONBContains(Binary):
class JSONExtract(Binary, Func):
arg_types = {"this": True, "expression": True, "expressions": False}
arg_types = {"this": True, "expression": True, "only_json_types": False, "expressions": False}
_sql_names = ["JSON_EXTRACT"]
is_var_len_args = True
@ -5043,7 +5045,7 @@ class JSONExtract(Binary, Func):
class JSONExtractScalar(Binary, Func):
arg_types = {"this": True, "expression": True, "expressions": False}
arg_types = {"this": True, "expression": True, "only_json_types": False, "expressions": False}
_sql_names = ["JSON_EXTRACT_SCALAR"]
is_var_len_args = True
@ -5626,7 +5628,7 @@ def maybe_parse(
input expression is a SQL string).
prefix: a string to prefix the sql with before it gets parsed
(automatically includes a space)
copy: whether or not to copy the expression.
copy: whether to copy the expression.
**opts: other options to use to parse the input expressions (again, in the case
that an input expression is a SQL string).
@ -5897,7 +5899,7 @@ def union(
If an `Expression` instance is passed, it will be used as-is.
distinct: set the DISTINCT flag if and only if this is true.
dialect: the dialect used to parse the input expression.
copy: whether or not to copy the expression.
copy: whether to copy the expression.
opts: other options to use to parse the input expressions.
Returns:
@ -5931,7 +5933,7 @@ def intersect(
If an `Expression` instance is passed, it will be used as-is.
distinct: set the DISTINCT flag if and only if this is true.
dialect: the dialect used to parse the input expression.
copy: whether or not to copy the expression.
copy: whether to copy the expression.
opts: other options to use to parse the input expressions.
Returns:
@ -5965,7 +5967,7 @@ def except_(
If an `Expression` instance is passed, it will be used as-is.
distinct: set the DISTINCT flag if and only if this is true.
dialect: the dialect used to parse the input expression.
copy: whether or not to copy the expression.
copy: whether to copy the expression.
opts: other options to use to parse the input expressions.
Returns:
@ -6127,7 +6129,7 @@ def insert(
overwrite: whether to INSERT OVERWRITE or not.
returning: sql conditional parsed into a RETURNING statement
dialect: the dialect used to parse the input expressions.
copy: whether or not to copy the expression.
copy: whether to copy the expression.
**opts: other options to use to parse the input expressions.
Returns:
@ -6168,7 +6170,7 @@ def condition(
If an Expression instance is passed, this is used as-is.
dialect: the dialect used to parse the input expression (in the case that the
input expression is a SQL string).
copy: Whether or not to copy `expression` (only applies to expressions).
copy: Whether to copy `expression` (only applies to expressions).
**opts: other options to use to parse the input expressions (again, in the case
that the input expression is a SQL string).
@ -6198,7 +6200,7 @@ def and_(
*expressions: the SQL code strings to parse.
If an Expression instance is passed, this is used as-is.
dialect: the dialect used to parse the input expression.
copy: whether or not to copy `expressions` (only applies to Expressions).
copy: whether to copy `expressions` (only applies to Expressions).
**opts: other options to use to parse the input expressions.
Returns:
@ -6221,7 +6223,7 @@ def or_(
*expressions: the SQL code strings to parse.
If an Expression instance is passed, this is used as-is.
dialect: the dialect used to parse the input expression.
copy: whether or not to copy `expressions` (only applies to Expressions).
copy: whether to copy `expressions` (only applies to Expressions).
**opts: other options to use to parse the input expressions.
Returns:
@ -6296,8 +6298,8 @@ def to_identifier(name, quoted=None, copy=True):
Args:
name: The name to turn into an identifier.
quoted: Whether or not force quote the identifier.
copy: Whether or not to copy name if it's an Identifier.
quoted: Whether to force quote the identifier.
copy: Whether to copy name if it's an Identifier.
Returns:
The identifier ast node.
@ -6379,7 +6381,7 @@ def to_table(
Args:
sql_path: a `[catalog].[schema].[table]` string.
dialect: the source dialect according to which the table name will be parsed.
copy: Whether or not to copy a table if it is passed in.
copy: Whether to copy a table if it is passed in.
kwargs: the kwargs to instantiate the resulting `Table` expression with.
Returns:
@ -6418,7 +6420,7 @@ def to_column(sql_path: str | Column, **kwargs) -> Column:
def alias_(
expression: ExpOrStr,
alias: str | Identifier,
alias: t.Optional[str | Identifier],
table: bool | t.Sequence[str | Identifier] = False,
quoted: t.Optional[bool] = None,
dialect: DialectType = None,
@ -6439,10 +6441,10 @@ def alias_(
If an Expression instance is passed, this is used as-is.
alias: the alias name to use. If the name has
special characters it is quoted.
table: Whether or not to create a table alias, can also be a list of columns.
quoted: whether or not to quote the alias
table: Whether to create a table alias, can also be a list of columns.
quoted: whether to quote the alias
dialect: the dialect used to parse the input expression.
copy: Whether or not to copy the expression.
copy: Whether to copy the expression.
**opts: other options to use to parse the input expressions.
Returns:
@ -6549,7 +6551,7 @@ def column(
catalog: Catalog name.
fields: Additional fields using dots.
quoted: Whether to force quotes on the column's identifiers.
copy: Whether or not to copy identifiers if passed in.
copy: Whether to copy identifiers if passed in.
Returns:
The new Column instance.
@ -6576,7 +6578,7 @@ def cast(expression: ExpOrStr, to: DATA_TYPE, copy: bool = True, **opts) -> Cast
Args:
expression: The expression to cast.
to: The datatype to cast to.
copy: Whether or not to copy the supplied expressions.
copy: Whether to copy the supplied expressions.
Returns:
The new Cast instance.
@ -6704,7 +6706,7 @@ def rename_column(
table_name: Name of the table
old_column: The old name of the column
new_column: The new name of the column
exists: Whether or not to add the `IF EXISTS` clause
exists: Whether to add the `IF EXISTS` clause
Returns:
Alter table expression
@ -6727,7 +6729,7 @@ def convert(value: t.Any, copy: bool = False) -> Expression:
Args:
value: A python object.
copy: Whether or not to copy `value` (only applies to Expressions and collections).
copy: Whether to copy `value` (only applies to Expressions and collections).
Returns:
Expression: the equivalent expression object.
@ -6847,7 +6849,7 @@ def normalize_table_name(table: str | Table, dialect: DialectType = None, copy:
Args:
table: the table to normalize
dialect: the dialect to use for normalization rules
copy: whether or not to copy the expression.
copy: whether to copy the expression.
Examples:
>>> normalize_table_name("`A-B`.c", dialect="bigquery")
@ -6872,7 +6874,7 @@ def replace_tables(
expression: expression node to be transformed and replaced.
mapping: mapping of table names.
dialect: the dialect of the mapping table
copy: whether or not to copy the expression.
copy: whether to copy the expression.
Examples:
>>> from sqlglot import exp, parse_one
@ -6959,7 +6961,7 @@ def expand(
expression: The expression to expand.
sources: A dictionary of name to Subqueryables.
dialect: The dialect of the sources dict.
copy: Whether or not to copy the expression during transformation. Defaults to True.
copy: Whether to copy the expression during transformation. Defaults to True.
Returns:
The transformed expression.
@ -6993,7 +6995,7 @@ def func(name: str, *args, copy: bool = True, dialect: DialectType = None, **kwa
Args:
name: the name of the function to build.
args: the args used to instantiate the function of interest.
copy: whether or not to copy the argument expressions.
copy: whether to copy the argument expressions.
dialect: the source dialect.
kwargs: the kwargs used to instantiate the function of interest.
@ -7096,7 +7098,7 @@ def array(
Args:
expressions: the expressions to add to the array.
copy: whether or not to copy the argument expressions.
copy: whether to copy the argument expressions.
dialect: the source dialect.
kwargs: the kwargs used to instantiate the function of interest.
@ -7123,7 +7125,7 @@ def tuple_(
Args:
expressions: the expressions to add to the tuple.
copy: whether or not to copy the argument expressions.
copy: whether to copy the argument expressions.
dialect: the source dialect.
kwargs: the kwargs used to instantiate the function of interest.