From 6531aa3a8909072f5151b0c62d7e5b392c2ebe57 Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Thu, 9 Oct 2025 16:41:07 -0400 Subject: [PATCH 01/18] feat: uri -> urn grep replace + regen protos from v0.77.0 Note, this is not passing any of the tests, and more work is necessary. --- examples/builder_example.py | 8 +- src/substrait/__init__.py | 4 +- src/substrait/builders/extended_expression.py | 98 +-- src/substrait/builders/plan.py | 4 +- src/substrait/extension_registry.py | 52 +- src/substrait/extensions/extension_types.yaml | 1 + .../functions_aggregate_approx.yaml | 1 + .../functions_aggregate_decimal_output.yaml | 1 + .../functions_aggregate_generic.yaml | 1 + .../extensions/functions_arithmetic.yaml | 1 + .../functions_arithmetic_decimal.yaml | 1 + .../extensions/functions_boolean.yaml | 1 + .../extensions/functions_comparison.yaml | 1 + .../extensions/functions_datetime.yaml | 1 + .../extensions/functions_geometry.yaml | 1 + .../extensions/functions_logarithmic.yaml | 1 + .../extensions/functions_rounding.yaml | 1 + .../functions_rounding_decimal.yaml | 1 + src/substrait/extensions/functions_set.yaml | 1 + .../extensions/functions_string.yaml | 1 + src/substrait/extensions/type_variations.yaml | 1 + src/substrait/extensions/unknown.yaml | 1 + src/substrait/gen/proto/algebra_pb2.py | 681 +++++++++--------- src/substrait/gen/proto/algebra_pb2.pyi | 24 +- src/substrait/gen/proto/capabilities_pb2.py | 23 +- .../gen/proto/extended_expression_pb2.py | 27 +- .../gen/proto/extended_expression_pb2.pyi | 15 +- .../gen/proto/extensions/extensions_pb2.py | 51 +- .../gen/proto/extensions/extensions_pb2.pyi | 47 +- src/substrait/gen/proto/function_pb2.py | 75 +- .../gen/proto/parameterized_types_pb2.py | 107 ++- src/substrait/gen/proto/plan_pb2.py | 40 +- src/substrait/gen/proto/plan_pb2.pyi | 25 +- .../gen/proto/type_expressions_pb2.py | 119 ++- src/substrait/gen/proto/type_pb2.py | 161 +++-- src/substrait/gen/proto/type_pb2.pyi | 57 +- src/substrait/utils/__init__.py | 18 +- .../test_aggregate_function.py | 8 +- .../test_scalar_function.py | 20 +- .../test_window_function.py | 8 +- tests/builders/plan/test_aggregate.py | 8 +- tests/test_extension_registry.py | 42 +- tests/test_proto.py | 2 +- third_party/substrait | 2 +- 44 files changed, 938 insertions(+), 805 deletions(-) diff --git a/examples/builder_example.py b/examples/builder_example.py index ced6e7e..1641d07 100644 --- a/examples/builder_example.py +++ b/examples/builder_example.py @@ -40,13 +40,13 @@ def basic_example(): pretty_print_plan(table(registry), use_colors=True) """ - extension_uris { - extension_uri_anchor: 13 - uri: "functions_comparison.yaml" + extension_urns { + extension_urn_anchor: 13 + urn: "functions_comparison.yaml" } extensions { extension_function { - extension_uri_reference: 13 + extension_urn_reference: 13 function_anchor: 495 name: "lt" } diff --git a/src/substrait/__init__.py b/src/substrait/__init__.py index 26ec2ec..5d1a625 100644 --- a/src/substrait/__init__.py +++ b/src/substrait/__init__.py @@ -3,6 +3,6 @@ except ImportError: pass -__substrait_version__ = "0.74.0" -__substrait_hash__ = "793c64b" +__substrait_version__ = "0.77.0" +__substrait_hash__ = "3c25b1b" __minimum_substrait_version__ = "0.30.0" diff --git a/src/substrait/builders/extended_expression.py b/src/substrait/builders/extended_expression.py index 98ac445..84e2c11 100644 --- a/src/substrait/builders/extended_expression.py +++ b/src/substrait/builders/extended_expression.py @@ -7,7 +7,7 @@ from substrait.extension_registry import ExtensionRegistry from substrait.utils import ( type_num_names, - merge_extension_uris, + merge_extension_urns, merge_extension_declarations, ) from substrait.type_inference import infer_extended_expression_schema @@ -204,7 +204,7 @@ def resolve( def scalar_function( - uri: str, + urn: str, function: str, expressions: Iterable[ExtendedExpressionOrUnbound], alias: Union[Iterable[str], str] = None, @@ -224,29 +224,29 @@ def resolve( signature = [typ for es in expression_schemas for typ in es.types] - func = registry.lookup_function(uri, function, signature) + func = registry.lookup_function(urn, function, signature) if not func: raise Exception(f"Unknown function {function} for {signature}") - func_extension_uris = [ - ste.SimpleExtensionURI( - extension_uri_anchor=registry.lookup_uri(uri), uri=uri + func_extension_urns = [ + ste.SimpleExtensionURN( + extension_urn_anchor=registry.lookup_urn(urn), urn=urn ) ] func_extensions = [ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_uri_reference=registry.lookup_uri(uri), + extension_urn_reference=registry.lookup_urn(urn), function_anchor=func[0].anchor, name=str(func[0]), ) ) ] - extension_uris = merge_extension_uris( - func_extension_uris, *[b.extension_uris for b in bound_expressions] + extension_urns = merge_extension_urns( + func_extension_urns, *[b.extension_urns for b in bound_expressions] ) extensions = merge_extension_declarations( @@ -276,7 +276,7 @@ def resolve( ) ], base_schema=base_schema, - extension_uris=extension_uris, + extension_urns=extension_urns, extensions=extensions, ) @@ -284,7 +284,7 @@ def resolve( def aggregate_function( - uri: str, + urn: str, function: str, expressions: Iterable[ExtendedExpressionOrUnbound], alias: Union[Iterable[str], str] = None, @@ -304,29 +304,29 @@ def resolve( signature = [typ for es in expression_schemas for typ in es.types] - func = registry.lookup_function(uri, function, signature) + func = registry.lookup_function(urn, function, signature) if not func: raise Exception(f"Unknown function {function} for {signature}") - func_extension_uris = [ - ste.SimpleExtensionURI( - extension_uri_anchor=registry.lookup_uri(uri), uri=uri + func_extension_urns = [ + ste.SimpleExtensionURN( + extension_urn_anchor=registry.lookup_urn(urn), urn=urn ) ] func_extensions = [ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_uri_reference=registry.lookup_uri(uri), + extension_urn_reference=registry.lookup_urn(urn), function_anchor=func[0].anchor, name=str(func[0]), ) ) ] - extension_uris = merge_extension_uris( - func_extension_uris, *[b.extension_uris for b in bound_expressions] + extension_urns = merge_extension_urns( + func_extension_urns, *[b.extension_urns for b in bound_expressions] ) extensions = merge_extension_declarations( @@ -352,7 +352,7 @@ def resolve( ) ], base_schema=base_schema, - extension_uris=extension_uris, + extension_urns=extension_urns, extensions=extensions, ) @@ -361,7 +361,7 @@ def resolve( # TODO bounds, sorts def window_function( - uri: str, + urn: str, function: str, expressions: Iterable[ExtendedExpressionOrUnbound], partitions: Iterable[ExtendedExpressionOrUnbound] = [], @@ -386,31 +386,31 @@ def resolve( signature = [typ for es in expression_schemas for typ in es.types] - func = registry.lookup_function(uri, function, signature) + func = registry.lookup_function(urn, function, signature) if not func: raise Exception(f"Unknown function {function} for {signature}") - func_extension_uris = [ - ste.SimpleExtensionURI( - extension_uri_anchor=registry.lookup_uri(uri), uri=uri + func_extension_urns = [ + ste.SimpleExtensionURN( + extension_urn_anchor=registry.lookup_urn(urn), urn=urn ) ] func_extensions = [ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_uri_reference=registry.lookup_uri(uri), + extension_urn_reference=registry.lookup_urn(urn), function_anchor=func[0].anchor, name=str(func[0]), ) ) ] - extension_uris = merge_extension_uris( - func_extension_uris, - *[b.extension_uris for b in bound_expressions], - *[b.extension_uris for b in bound_partitions], + extension_urns = merge_extension_urns( + func_extension_urns, + *[b.extension_urns for b in bound_expressions], + *[b.extension_urns for b in bound_partitions], ) extensions = merge_extension_declarations( @@ -445,7 +445,7 @@ def resolve( ) ], base_schema=base_schema, - extension_uris=extension_uris, + extension_urns=extension_urns, extensions=extensions, ) @@ -472,10 +472,10 @@ def resolve( bound_else = resolve_expression(_else, base_schema, registry) - extension_uris = merge_extension_uris( - *[b[0].extension_uris for b in bound_ifs], - *[b[1].extension_uris for b in bound_ifs], - bound_else.extension_uris, + extension_urns = merge_extension_urns( + *[b[0].extension_urns for b in bound_ifs], + *[b[1].extension_urns for b in bound_ifs], + bound_else.extension_urns, ) extensions = merge_extension_declarations( @@ -523,7 +523,7 @@ def resolve( ) ], base_schema=base_schema, - extension_uris=extension_uris, + extension_urns=extension_urns, extensions=extensions, ) @@ -550,10 +550,10 @@ def resolve( ] bound_else = resolve_expression(_else, base_schema, registry) - extension_uris = merge_extension_uris( - bound_match.extension_uris, - *[b.extension_uris for _, b in bound_ifs], - bound_else.extension_uris, + extension_urns = merge_extension_urns( + bound_match.extension_urns, + *[b.extension_urns for _, b in bound_ifs], + bound_else.extension_urns, ) extensions = merge_extension_declarations( @@ -584,7 +584,7 @@ def resolve( ) ], base_schema=base_schema, - extension_uris=extension_uris, + extension_urns=extension_urns, extensions=extensions, ) @@ -602,8 +602,8 @@ def resolve( bound_value = resolve_expression(value, base_schema, registry) bound_options = [resolve_expression(o, base_schema, registry) for o in options] - extension_uris = merge_extension_uris( - bound_value.extension_uris, *[b.extension_uris for b in bound_options] + extension_urns = merge_extension_urns( + bound_value.extension_urns, *[b.extension_urns for b in bound_options] ) extensions = merge_extension_declarations( @@ -627,7 +627,7 @@ def resolve( ) ], base_schema=base_schema, - extension_uris=extension_uris, + extension_urns=extension_urns, extensions=extensions, ) @@ -648,12 +648,12 @@ def resolve( [resolve_expression(e, base_schema, registry) for e in o] for o in options ] - extension_uris = merge_extension_uris( - *[b.extension_uris for b in bound_value], - *[e.extension_uris for b in bound_options for e in b], + extension_urns = merge_extension_urns( + *[b.extension_urns for b in bound_value], + *[e.extension_urns for b in bound_options for e in b], ) - extensions = merge_extension_uris( + extensions = merge_extension_urns( *[b.extensions for b in bound_value], *[e.extensions for b in bound_options for e in b], ) @@ -678,7 +678,7 @@ def resolve( ) ], base_schema=base_schema, - extension_uris=extension_uris, + extension_urns=extension_urns, extensions=extensions, ) @@ -707,7 +707,7 @@ def resolve( ) ], base_schema=base_schema, - extension_uris=bound_input.extension_uris, + extension_urns=bound_input.extension_urns, extensions=bound_input.extensions, ) diff --git a/src/substrait/builders/plan.py b/src/substrait/builders/plan.py index 9f852eb..8a9e15f 100644 --- a/src/substrait/builders/plan.py +++ b/src/substrait/builders/plan.py @@ -18,7 +18,7 @@ resolve_expression, ) from substrait.type_inference import infer_plan_schema -from substrait.utils import merge_extension_declarations, merge_extension_uris +from substrait.utils import merge_extension_declarations, merge_extension_urns UnboundPlan = Callable[[ExtensionRegistry], stp.Plan] @@ -27,7 +27,7 @@ def _merge_extensions(*objs): return { - "extension_uris": merge_extension_uris(*[b.extension_uris for b in objs if b]), + "extension_urns": merge_extension_urns(*[b.extension_urns for b in objs if b]), "extensions": merge_extension_declarations(*[b.extensions for b in objs if b]), } diff --git a/src/substrait/extension_registry.py b/src/substrait/extension_registry.py index 0e90bf3..9651a55 100644 --- a/src/substrait/extension_registry.py +++ b/src/substrait/extension_registry.py @@ -11,7 +11,7 @@ from substrait.simple_extension_utils import build_simple_extensions -DEFAULT_URI_PREFIX = "https://github.com/substrait-io/substrait/blob/main/extensions" +DEFAULT_URN_PREFIX = "https://github.com/substrait-io/substrait/blob/main/extensions" # mapping from argument types to shortened signature names: https://substrait.io/extensions/#function-signature-compound-names @@ -167,12 +167,12 @@ def covers( class FunctionEntry: def __init__( - self, uri: str, name: str, impl: Union[se.Impl, se.Impl1, se.Impl2], anchor: int + self, urn: str, name: str, impl: Union[se.Impl, se.Impl1, se.Impl2], anchor: int ) -> None: self.name = name self.impl = impl self.normalized_inputs: list = [] - self.uri: str = uri + self.urn: str = urn self.anchor = anchor self.arguments = [] self.nullability = ( @@ -244,35 +244,35 @@ def satisfies_signature(self, signature: tuple) -> Optional[str]: class ExtensionRegistry: def __init__(self, load_default_extensions=True) -> None: - self._uri_mapping: dict = defaultdict(dict) - self._uri_id_generator = itertools.count(1) + self._urn_mapping: dict = defaultdict(dict) + self._urn_id_generator = itertools.count(1) self._function_mapping: dict = defaultdict(dict) self._id_generator = itertools.count(1) - self._uri_aliases = {} + self._urn_aliases = {} if load_default_extensions: for fpath in importlib_files("substrait.extensions").glob( # type: ignore "functions*.yaml" ): - uri = f"{DEFAULT_URI_PREFIX}/{fpath.name}" - self._uri_aliases[fpath.name] = uri - self.register_extension_yaml(fpath, uri) + urn = f"{DEFAULT_URN_PREFIX}/{fpath.name}" + self._urn_aliases[fpath.name] = urn + self.register_extension_yaml(fpath, urn) def register_extension_yaml( self, fname: Union[str, Path], - uri: str, + urn: str, ) -> None: fname = Path(fname) with open(fname) as f: # type: ignore extension_definitions = yaml.safe_load(f) - self.register_extension_dict(extension_definitions, uri) + self.register_extension_dict(extension_definitions, urn) - def register_extension_dict(self, definitions: dict, uri: str) -> None: - self._uri_mapping[uri] = next(self._uri_id_generator) + def register_extension_dict(self, definitions: dict, urn: str) -> None: + self._urn_mapping[urn] = next(self._urn_id_generator) simple_extensions = build_simple_extensions(definitions) @@ -286,28 +286,28 @@ def register_extension_dict(self, definitions: dict, uri: str) -> None: for function in functions: for impl in function.impls: func = FunctionEntry( - uri, function.name, impl, next(self._id_generator) + urn, function.name, impl, next(self._id_generator) ) if ( - func.uri in self._function_mapping - and function.name in self._function_mapping[func.uri] + func.urn in self._function_mapping + and function.name in self._function_mapping[func.urn] ): - self._function_mapping[func.uri][function.name].append(func) + self._function_mapping[func.urn][function.name].append(func) else: - self._function_mapping[func.uri][function.name] = [func] + self._function_mapping[func.urn][function.name] = [func] # TODO add an optional return type check def lookup_function( - self, uri: str, function_name: str, signature: tuple + self, urn: str, function_name: str, signature: tuple ) -> Optional[tuple[FunctionEntry, Type]]: - uri = self._uri_aliases.get(uri, uri) + urn = self._urn_aliases.get(urn, urn) if ( - uri not in self._function_mapping - or function_name not in self._function_mapping[uri] + urn not in self._function_mapping + or function_name not in self._function_mapping[urn] ): return None - functions = self._function_mapping[uri][function_name] + functions = self._function_mapping[urn][function_name] for f in functions: assert isinstance(f, FunctionEntry) rtn = f.satisfies_signature(signature) @@ -316,6 +316,6 @@ def lookup_function( return None - def lookup_uri(self, uri: str) -> Optional[int]: - uri = self._uri_aliases.get(uri, uri) - return self._uri_mapping.get(uri, None) + def lookup_urn(self, urn: str) -> Optional[int]: + urn = self._urn_aliases.get(urn, urn) + return self._urn_mapping.get(urn, None) diff --git a/src/substrait/extensions/extension_types.yaml b/src/substrait/extensions/extension_types.yaml index e03073c..5360992 100644 --- a/src/substrait/extensions/extension_types.yaml +++ b/src/substrait/extensions/extension_types.yaml @@ -1,4 +1,5 @@ --- +urn: extension:io.substrait:extension_types types: - name: point structure: diff --git a/src/substrait/extensions/functions_aggregate_approx.yaml b/src/substrait/extensions/functions_aggregate_approx.yaml index c77caec..d858acc 100644 --- a/src/substrait/extensions/functions_aggregate_approx.yaml +++ b/src/substrait/extensions/functions_aggregate_approx.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:functions_aggregate_approx aggregate_functions: - name: "approx_count_distinct" description: >- diff --git a/src/substrait/extensions/functions_aggregate_decimal_output.yaml b/src/substrait/extensions/functions_aggregate_decimal_output.yaml index 13a3b2e..85a1959 100644 --- a/src/substrait/extensions/functions_aggregate_decimal_output.yaml +++ b/src/substrait/extensions/functions_aggregate_decimal_output.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:functions_aggregate_decimal_output aggregate_functions: - name: "count" description: Count a set of values. Result is returned as a decimal instead of i64. diff --git a/src/substrait/extensions/functions_aggregate_generic.yaml b/src/substrait/extensions/functions_aggregate_generic.yaml index 4db63ec..63553f3 100644 --- a/src/substrait/extensions/functions_aggregate_generic.yaml +++ b/src/substrait/extensions/functions_aggregate_generic.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:functions_aggregate_generic aggregate_functions: - name: "count" description: Count a set of values diff --git a/src/substrait/extensions/functions_arithmetic.yaml b/src/substrait/extensions/functions_arithmetic.yaml index 940bb06..8746f03 100644 --- a/src/substrait/extensions/functions_arithmetic.yaml +++ b/src/substrait/extensions/functions_arithmetic.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:functions_arithmetic scalar_functions: - name: "add" diff --git a/src/substrait/extensions/functions_arithmetic_decimal.yaml b/src/substrait/extensions/functions_arithmetic_decimal.yaml index 57cdbe3..bc131a2 100644 --- a/src/substrait/extensions/functions_arithmetic_decimal.yaml +++ b/src/substrait/extensions/functions_arithmetic_decimal.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:functions_arithmetic_decimal scalar_functions: - name: "add" diff --git a/src/substrait/extensions/functions_boolean.yaml b/src/substrait/extensions/functions_boolean.yaml index 22ae296..fcbe56c 100644 --- a/src/substrait/extensions/functions_boolean.yaml +++ b/src/substrait/extensions/functions_boolean.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:functions_boolean scalar_functions: - name: or diff --git a/src/substrait/extensions/functions_comparison.yaml b/src/substrait/extensions/functions_comparison.yaml index 517f8e3..69d8906 100644 --- a/src/substrait/extensions/functions_comparison.yaml +++ b/src/substrait/extensions/functions_comparison.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:functions_comparison scalar_functions: - name: "not_equal" diff --git a/src/substrait/extensions/functions_datetime.yaml b/src/substrait/extensions/functions_datetime.yaml index 20e90e9..3f19ded 100644 --- a/src/substrait/extensions/functions_datetime.yaml +++ b/src/substrait/extensions/functions_datetime.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:functions_datetime scalar_functions: - name: extract diff --git a/src/substrait/extensions/functions_geometry.yaml b/src/substrait/extensions/functions_geometry.yaml index cc494c3..127978c 100644 --- a/src/substrait/extensions/functions_geometry.yaml +++ b/src/substrait/extensions/functions_geometry.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:functions_geometry types: - name: geometry structure: "BINARY" diff --git a/src/substrait/extensions/functions_logarithmic.yaml b/src/substrait/extensions/functions_logarithmic.yaml index b46f3d3..d1f8dd9 100644 --- a/src/substrait/extensions/functions_logarithmic.yaml +++ b/src/substrait/extensions/functions_logarithmic.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:functions_logarithmic scalar_functions: - name: "ln" diff --git a/src/substrait/extensions/functions_rounding.yaml b/src/substrait/extensions/functions_rounding.yaml index 09309f2..0ca8713 100644 --- a/src/substrait/extensions/functions_rounding.yaml +++ b/src/substrait/extensions/functions_rounding.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:functions_rounding scalar_functions: - name: "ceil" diff --git a/src/substrait/extensions/functions_rounding_decimal.yaml b/src/substrait/extensions/functions_rounding_decimal.yaml index b445069..057dc60 100644 --- a/src/substrait/extensions/functions_rounding_decimal.yaml +++ b/src/substrait/extensions/functions_rounding_decimal.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:functions_rounding_decimal scalar_functions: - name: "ceil" diff --git a/src/substrait/extensions/functions_set.yaml b/src/substrait/extensions/functions_set.yaml index 58b9642..3331b29 100644 --- a/src/substrait/extensions/functions_set.yaml +++ b/src/substrait/extensions/functions_set.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:functions_set scalar_functions: - name: "index_in" diff --git a/src/substrait/extensions/functions_string.yaml b/src/substrait/extensions/functions_string.yaml index 399fb37..2cd5f84 100644 --- a/src/substrait/extensions/functions_string.yaml +++ b/src/substrait/extensions/functions_string.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:functions_string scalar_functions: - name: concat diff --git a/src/substrait/extensions/type_variations.yaml b/src/substrait/extensions/type_variations.yaml index f6f96d5..6f129b5 100644 --- a/src/substrait/extensions/type_variations.yaml +++ b/src/substrait/extensions/type_variations.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:type_variations type_variations: - parent: string name: dict4 diff --git a/src/substrait/extensions/unknown.yaml b/src/substrait/extensions/unknown.yaml index 3b0e6c1..3603d68 100644 --- a/src/substrait/extensions/unknown.yaml +++ b/src/substrait/extensions/unknown.yaml @@ -1,5 +1,6 @@ %YAML 1.2 --- +urn: extension:io.substrait:unknown types: - name: unknown scalar_functions: diff --git a/src/substrait/gen/proto/algebra_pb2.py b/src/substrait/gen/proto/algebra_pb2.py index 0e35b0b..d1f4f89 100644 --- a/src/substrait/gen/proto/algebra_pb2.py +++ b/src/substrait/gen/proto/algebra_pb2.py @@ -1,350 +1,347 @@ """Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/algebra.proto') _sym_db = _symbol_database.Default() from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 from ..proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 from ..proto import type_pb2 as proto_dot_type__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13proto/algebra.proto\x12\x05proto\x1a\x19google/protobuf/any.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/type.proto"\x91\x0b\n\tRelCommon\x121\n\x06direct\x18\x01 \x01(\x0b2\x17.proto.RelCommon.DirectH\x00R\x06direct\x12+\n\x04emit\x18\x02 \x01(\x0b2\x15.proto.RelCommon.EmitH\x00R\x04emit\x12)\n\x04hint\x18\x03 \x01(\x0b2\x15.proto.RelCommon.HintR\x04hint\x12R\n\x12advanced_extension\x18\x04 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x08\n\x06Direct\x1a-\n\x04Emit\x12%\n\x0eoutput_mapping\x18\x01 \x03(\x05R\routputMapping\x1a\xde\x08\n\x04Hint\x121\n\x05stats\x18\x01 \x01(\x0b2\x1b.proto.RelCommon.Hint.StatsR\x05stats\x12G\n\nconstraint\x18\x02 \x01(\x0b2\'.proto.RelCommon.Hint.RuntimeConstraintR\nconstraint\x12\x14\n\x05alias\x18\x03 \x01(\tR\x05alias\x12!\n\x0coutput_names\x18\x04 \x03(\tR\x0boutputNames\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x12U\n\x12saved_computations\x18\x0b \x03(\x0b2&.proto.RelCommon.Hint.SavedComputationR\x11savedComputations\x12X\n\x13loaded_computations\x18\x0c \x03(\x0b2\'.proto.RelCommon.Hint.LoadedComputationR\x12loadedComputations\x1a\x99\x01\n\x05Stats\x12\x1b\n\trow_count\x18\x01 \x01(\x01R\x08rowCount\x12\x1f\n\x0brecord_size\x18\x02 \x01(\x01R\nrecordSize\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1ag\n\x11RuntimeConstraint\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1at\n\x10SavedComputation\x12%\n\x0ecomputation_id\x18\x01 \x01(\x05R\rcomputationId\x129\n\x04type\x18\x02 \x01(\x0e2%.proto.RelCommon.Hint.ComputationTypeR\x04type\x1a\x88\x01\n\x11LoadedComputation\x128\n\x18computation_id_reference\x18\x01 \x01(\x05R\x16computationIdReference\x129\n\x04type\x18\x02 \x01(\x0e2%.proto.RelCommon.Hint.ComputationTypeR\x04type"\x95\x01\n\x0fComputationType\x12 \n\x1cCOMPUTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aCOMPUTATION_TYPE_HASHTABLE\x10\x01\x12!\n\x1dCOMPUTATION_TYPE_BLOOM_FILTER\x10\x02\x12\x1d\n\x18COMPUTATION_TYPE_UNKNOWN\x10\x8fNB\x0b\n\temit_kind"\x85\x14\n\x07ReadRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x123\n\x0bbase_schema\x18\x02 \x01(\x0b2\x12.proto.NamedStructR\nbaseSchema\x12)\n\x06filter\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x06filter\x12?\n\x12best_effort_filter\x18\x0b \x01(\x0b2\x11.proto.ExpressionR\x10bestEffortFilter\x12@\n\nprojection\x18\x04 \x01(\x0b2 .proto.Expression.MaskExpressionR\nprojection\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x12B\n\rvirtual_table\x18\x05 \x01(\x0b2\x1b.proto.ReadRel.VirtualTableH\x00R\x0cvirtualTable\x12<\n\x0blocal_files\x18\x06 \x01(\x0b2\x19.proto.ReadRel.LocalFilesH\x00R\nlocalFiles\x12<\n\x0bnamed_table\x18\x07 \x01(\x0b2\x19.proto.ReadRel.NamedTableH\x00R\nnamedTable\x12H\n\x0fextension_table\x18\x08 \x01(\x0b2\x1d.proto.ReadRel.ExtensionTableH\x00R\x0eextensionTable\x12B\n\riceberg_table\x18\t \x01(\x0b2\x1b.proto.ReadRel.IcebergTableH\x00R\x0cicebergTable\x1av\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xfc\x01\n\x0cIcebergTable\x12F\n\x06direct\x18\x01 \x01(\x0b2,.proto.ReadRel.IcebergTable.MetadataFileReadH\x00R\x06direct\x1a\x95\x01\n\x10MetadataFileRead\x12!\n\x0cmetadata_uri\x18\x01 \x01(\tR\x0bmetadataUri\x12!\n\x0bsnapshot_id\x18\x02 \x01(\tH\x00R\nsnapshotId\x12/\n\x12snapshot_timestamp\x18\x03 \x01(\x03H\x00R\x11snapshotTimestampB\n\n\x08snapshotB\x0c\n\ntable_type\x1a\x8f\x01\n\x0cVirtualTable\x12<\n\x06values\x18\x01 \x03(\x0b2 .proto.Expression.Literal.StructB\x02\x18\x01R\x06values\x12A\n\x0bexpressions\x18\x02 \x03(\x0b2\x1f.proto.Expression.Nested.StructR\x0bexpressions\x1a>\n\x0eExtensionTable\x12,\n\x06detail\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail\x1a\xf4\t\n\nLocalFiles\x12;\n\x05items\x18\x01 \x03(\x0b2%.proto.ReadRel.LocalFiles.FileOrFilesR\x05items\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xd4\x08\n\x0bFileOrFiles\x12\x1b\n\x08uri_path\x18\x01 \x01(\tH\x00R\x07uriPath\x12$\n\ruri_path_glob\x18\x02 \x01(\tH\x00R\x0buriPathGlob\x12\x1b\n\x08uri_file\x18\x03 \x01(\tH\x00R\x07uriFile\x12\x1f\n\nuri_folder\x18\x04 \x01(\tH\x00R\turiFolder\x12\'\n\x0fpartition_index\x18\x06 \x01(\x04R\x0epartitionIndex\x12\x14\n\x05start\x18\x07 \x01(\x04R\x05start\x12\x16\n\x06length\x18\x08 \x01(\x04R\x06length\x12T\n\x07parquet\x18\t \x01(\x0b28.proto.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptionsH\x01R\x07parquet\x12N\n\x05arrow\x18\n \x01(\x0b26.proto.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptionsH\x01R\x05arrow\x12H\n\x03orc\x18\x0b \x01(\x0b24.proto.ReadRel.LocalFiles.FileOrFiles.OrcReadOptionsH\x01R\x03orc\x124\n\textension\x18\x0c \x01(\x0b2\x14.google.protobuf.AnyH\x01R\textension\x12K\n\x04dwrf\x18\r \x01(\x0b25.proto.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptionsH\x01R\x04dwrf\x12]\n\x04text\x18\x0e \x01(\x0b2G.proto.ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptionsH\x01R\x04text\x1a\x14\n\x12ParquetReadOptions\x1a\x12\n\x10ArrowReadOptions\x1a\x10\n\x0eOrcReadOptions\x1a\x11\n\x0fDwrfReadOptions\x1a\xa1\x02\n!DelimiterSeparatedTextReadOptions\x12\'\n\x0ffield_delimiter\x18\x01 \x01(\tR\x0efieldDelimiter\x12"\n\rmax_line_size\x18\x02 \x01(\x04R\x0bmaxLineSize\x12\x14\n\x05quote\x18\x03 \x01(\tR\x05quote\x12/\n\x14header_lines_to_skip\x18\x04 \x01(\x04R\x11headerLinesToSkip\x12\x16\n\x06escape\x18\x05 \x01(\tR\x06escape\x126\n\x15value_treated_as_null\x18\x06 \x01(\tH\x00R\x12valueTreatedAsNull\x88\x01\x01B\x18\n\x16_value_treated_as_nullB\x0b\n\tpath_typeB\r\n\x0bfile_formatJ\x04\x08\x05\x10\x06R\x06formatB\x0b\n\tread_type"\xe1\x01\n\nProjectRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x123\n\x0bexpressions\x18\x03 \x03(\x0b2\x11.proto.ExpressionR\x0bexpressions\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xb1\x05\n\x07JoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x121\n\nexpression\x18\x04 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x12;\n\x10post_join_filter\x18\x05 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x12+\n\x04type\x18\x06 \x01(\x0e2\x17.proto.JoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x06\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x08\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\xca\x01\n\x08CrossRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xeb\x02\n\x08FetchRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12\x1c\n\x06offset\x18\x03 \x01(\x03B\x02\x18\x01H\x00R\x06offset\x124\n\x0boffset_expr\x18\x05 \x01(\x0b2\x11.proto.ExpressionH\x00R\noffsetExpr\x12\x1a\n\x05count\x18\x04 \x01(\x03B\x02\x18\x01H\x01R\x05count\x122\n\ncount_expr\x18\x06 \x01(\x0b2\x11.proto.ExpressionH\x01R\tcountExpr\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtensionB\r\n\x0boffset_modeB\x0c\n\ncount_mode"\xdf\x04\n\x0cAggregateRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12:\n\tgroupings\x18\x03 \x03(\x0b2\x1c.proto.AggregateRel.GroupingR\tgroupings\x127\n\x08measures\x18\x04 \x03(\x0b2\x1b.proto.AggregateRel.MeasureR\x08measures\x12D\n\x14grouping_expressions\x18\x05 \x03(\x0b2\x11.proto.ExpressionR\x13groupingExpressions\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x89\x01\n\x08Grouping\x12H\n\x14grouping_expressions\x18\x01 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x13groupingExpressions\x123\n\x15expression_references\x18\x02 \x03(\rR\x14expressionReferences\x1ah\n\x07Measure\x122\n\x07measure\x18\x01 \x01(\x0b2\x18.proto.AggregateFunctionR\x07measure\x12)\n\x06filter\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x06filter"\xca\x07\n\x1cConsistentPartitionWindowRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12`\n\x10window_functions\x18\x03 \x03(\x0b25.proto.ConsistentPartitionWindowRel.WindowRelFunctionR\x0fwindowFunctions\x12F\n\x15partition_expressions\x18\x04 \x03(\x0b2\x11.proto.ExpressionR\x14partitionExpressions\x12&\n\x05sorts\x18\x05 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xb7\x04\n\x11WindowRelFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\t \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12N\n\ninvocation\x18\n \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12G\n\x0blower_bound\x18\x05 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nupperBound\x12L\n\x0bbounds_type\x18\x0c \x01(\x0e2+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType"\xd1\x01\n\x07SortRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xdc\x01\n\tFilterRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12/\n\tcondition\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\tcondition\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xde\x03\n\x06SetRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12"\n\x06inputs\x18\x02 \x03(\x0b2\n.proto.RelR\x06inputs\x12#\n\x02op\x18\x03 \x01(\x0e2\x13.proto.SetRel.SetOpR\x02op\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\x8c\x02\n\x05SetOp\x12\x16\n\x12SET_OP_UNSPECIFIED\x10\x00\x12\x18\n\x14SET_OP_MINUS_PRIMARY\x10\x01\x12\x1c\n\x18SET_OP_MINUS_PRIMARY_ALL\x10\x07\x12\x19\n\x15SET_OP_MINUS_MULTISET\x10\x02\x12\x1f\n\x1bSET_OP_INTERSECTION_PRIMARY\x10\x03\x12 \n\x1cSET_OP_INTERSECTION_MULTISET\x10\x04\x12$\n SET_OP_INTERSECTION_MULTISET_ALL\x10\x08\x12\x19\n\x15SET_OP_UNION_DISTINCT\x10\x05\x12\x14\n\x10SET_OP_UNION_ALL\x10\x06"\x8e\x01\n\x12ExtensionSingleRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"j\n\x10ExtensionLeafRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12,\n\x06detail\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x8f\x01\n\x11ExtensionMultiRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12"\n\x06inputs\x18\x02 \x03(\x0b2\n.proto.RelR\x06inputs\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\xe9\x08\n\x0bExchangeRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12\'\n\x0fpartition_count\x18\x03 \x01(\x05R\x0epartitionCount\x12;\n\x07targets\x18\x04 \x03(\x0b2!.proto.ExchangeRel.ExchangeTargetR\x07targets\x12N\n\x11scatter_by_fields\x18\x05 \x01(\x0b2 .proto.ExchangeRel.ScatterFieldsH\x00R\x0fscatterByFields\x12P\n\rsingle_target\x18\x06 \x01(\x0b2).proto.ExchangeRel.SingleBucketExpressionH\x00R\x0csingleTarget\x12M\n\x0cmulti_target\x18\x07 \x01(\x0b2(.proto.ExchangeRel.MultiBucketExpressionH\x00R\x0bmultiTarget\x12@\n\x0bround_robin\x18\x08 \x01(\x0b2\x1d.proto.ExchangeRel.RoundRobinH\x00R\nroundRobin\x12<\n\tbroadcast\x18\t \x01(\x0b2\x1c.proto.ExchangeRel.BroadcastH\x00R\tbroadcast\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1aI\n\rScatterFields\x128\n\x06fields\x18\x01 \x03(\x0b2 .proto.Expression.FieldReferenceR\x06fields\x1aK\n\x16SingleBucketExpression\x121\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x1a|\n\x15MultiBucketExpression\x121\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x120\n\x14constrained_to_count\x18\x02 \x01(\x08R\x12constrainedToCount\x1a\x0b\n\tBroadcast\x1a"\n\nRoundRobin\x12\x14\n\x05exact\x18\x01 \x01(\x08R\x05exact\x1a\x8a\x01\n\x0eExchangeTarget\x12!\n\x0cpartition_id\x18\x01 \x03(\x05R\x0bpartitionId\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uri\x122\n\x08extended\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyH\x00R\x08extendedB\r\n\x0btarget_typeB\x0f\n\rexchange_kind"\xfc\x02\n\tExpandRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x124\n\x06fields\x18\x04 \x03(\x0b2\x1c.proto.ExpandRel.ExpandFieldR\x06fields\x1a\xa7\x01\n\x0bExpandField\x12J\n\x0fswitching_field\x18\x02 \x01(\x0b2\x1f.proto.ExpandRel.SwitchingFieldH\x00R\x0eswitchingField\x12>\n\x10consistent_field\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x00R\x0fconsistentFieldB\x0c\n\nfield_type\x1aC\n\x0eSwitchingField\x121\n\nduplicates\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\nduplicates"A\n\x07RelRoot\x12 \n\x05input\x18\x01 \x01(\x0b2\n.proto.RelR\x05input\x12\x14\n\x05names\x18\x02 \x03(\tR\x05names"\xd0\x08\n\x03Rel\x12$\n\x04read\x18\x01 \x01(\x0b2\x0e.proto.ReadRelH\x00R\x04read\x12*\n\x06filter\x18\x02 \x01(\x0b2\x10.proto.FilterRelH\x00R\x06filter\x12\'\n\x05fetch\x18\x03 \x01(\x0b2\x0f.proto.FetchRelH\x00R\x05fetch\x123\n\taggregate\x18\x04 \x01(\x0b2\x13.proto.AggregateRelH\x00R\taggregate\x12$\n\x04sort\x18\x05 \x01(\x0b2\x0e.proto.SortRelH\x00R\x04sort\x12$\n\x04join\x18\x06 \x01(\x0b2\x0e.proto.JoinRelH\x00R\x04join\x12-\n\x07project\x18\x07 \x01(\x0b2\x11.proto.ProjectRelH\x00R\x07project\x12!\n\x03set\x18\x08 \x01(\x0b2\r.proto.SetRelH\x00R\x03set\x12F\n\x10extension_single\x18\t \x01(\x0b2\x19.proto.ExtensionSingleRelH\x00R\x0fextensionSingle\x12C\n\x0fextension_multi\x18\n \x01(\x0b2\x18.proto.ExtensionMultiRelH\x00R\x0eextensionMulti\x12@\n\x0eextension_leaf\x18\x0b \x01(\x0b2\x17.proto.ExtensionLeafRelH\x00R\rextensionLeaf\x12\'\n\x05cross\x18\x0c \x01(\x0b2\x0f.proto.CrossRelH\x00R\x05cross\x123\n\treference\x18\x15 \x01(\x0b2\x13.proto.ReferenceRelH\x00R\treference\x12\'\n\x05write\x18\x13 \x01(\x0b2\x0f.proto.WriteRelH\x00R\x05write\x12!\n\x03ddl\x18\x14 \x01(\x0b2\r.proto.DdlRelH\x00R\x03ddl\x12*\n\x06update\x18\x16 \x01(\x0b2\x10.proto.UpdateRelH\x00R\x06update\x121\n\thash_join\x18\r \x01(\x0b2\x12.proto.HashJoinRelH\x00R\x08hashJoin\x124\n\nmerge_join\x18\x0e \x01(\x0b2\x13.proto.MergeJoinRelH\x00R\tmergeJoin\x12D\n\x10nested_loop_join\x18\x12 \x01(\x0b2\x18.proto.NestedLoopJoinRelH\x00R\x0enestedLoopJoin\x12=\n\x06window\x18\x11 \x01(\x0b2#.proto.ConsistentPartitionWindowRelH\x00R\x06window\x120\n\x08exchange\x18\x0f \x01(\x0b2\x12.proto.ExchangeRelH\x00R\x08exchange\x12*\n\x06expand\x18\x10 \x01(\x0b2\x10.proto.ExpandRelH\x00R\x06expandB\n\n\x08rel_type"|\n\x10NamedObjectWrite\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"?\n\x0fExtensionObject\x12,\n\x06detail\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x86\x06\n\x06DdlRel\x12<\n\x0cnamed_object\x18\x01 \x01(\x0b2\x17.proto.NamedObjectWriteH\x00R\x0bnamedObject\x12C\n\x10extension_object\x18\x02 \x01(\x0b2\x16.proto.ExtensionObjectH\x00R\x0fextensionObject\x125\n\x0ctable_schema\x18\x03 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12G\n\x0etable_defaults\x18\x04 \x01(\x0b2 .proto.Expression.Literal.StructR\rtableDefaults\x12/\n\x06object\x18\x05 \x01(\x0e2\x17.proto.DdlRel.DdlObjectR\x06object\x12#\n\x02op\x18\x06 \x01(\x0e2\x13.proto.DdlRel.DdlOpR\x02op\x123\n\x0fview_definition\x18\x07 \x01(\x0b2\n.proto.RelR\x0eviewDefinition\x12(\n\x06common\x18\x08 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12R\n\x12advanced_extension\x18\t \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"R\n\tDdlObject\x12\x1a\n\x16DDL_OBJECT_UNSPECIFIED\x10\x00\x12\x14\n\x10DDL_OBJECT_TABLE\x10\x01\x12\x13\n\x0fDDL_OBJECT_VIEW\x10\x02"\x8d\x01\n\x05DdlOp\x12\x16\n\x12DDL_OP_UNSPECIFIED\x10\x00\x12\x11\n\rDDL_OP_CREATE\x10\x01\x12\x1c\n\x18DDL_OP_CREATE_OR_REPLACE\x10\x02\x12\x10\n\x0cDDL_OP_ALTER\x10\x03\x12\x0f\n\x0bDDL_OP_DROP\x10\x04\x12\x18\n\x14DDL_OP_DROP_IF_EXIST\x10\x05B\x0c\n\nwrite_type"\x9b\x07\n\x08WriteRel\x12:\n\x0bnamed_table\x18\x01 \x01(\x0b2\x17.proto.NamedObjectWriteH\x00R\nnamedTable\x12A\n\x0fextension_table\x18\x02 \x01(\x0b2\x16.proto.ExtensionObjectH\x00R\x0eextensionTable\x125\n\x0ctable_schema\x18\x03 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12\'\n\x02op\x18\x04 \x01(\x0e2\x17.proto.WriteRel.WriteOpR\x02op\x12 \n\x05input\x18\x05 \x01(\x0b2\n.proto.RelR\x05input\x12;\n\x0bcreate_mode\x18\x08 \x01(\x0e2\x1a.proto.WriteRel.CreateModeR\ncreateMode\x122\n\x06output\x18\x06 \x01(\x0e2\x1a.proto.WriteRel.OutputModeR\x06output\x12(\n\x06common\x18\x07 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12R\n\x12advanced_extension\x18\t \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"u\n\x07WriteOp\x12\x18\n\x14WRITE_OP_UNSPECIFIED\x10\x00\x12\x13\n\x0fWRITE_OP_INSERT\x10\x01\x12\x13\n\x0fWRITE_OP_DELETE\x10\x02\x12\x13\n\x0fWRITE_OP_UPDATE\x10\x03\x12\x11\n\rWRITE_OP_CTAS\x10\x04"\xb1\x01\n\nCreateMode\x12\x1b\n\x17CREATE_MODE_UNSPECIFIED\x10\x00\x12 \n\x1cCREATE_MODE_APPEND_IF_EXISTS\x10\x01\x12!\n\x1dCREATE_MODE_REPLACE_IF_EXISTS\x10\x02\x12 \n\x1cCREATE_MODE_IGNORE_IF_EXISTS\x10\x03\x12\x1f\n\x1bCREATE_MODE_ERROR_IF_EXISTS\x10\x04"f\n\nOutputMode\x12\x1b\n\x17OUTPUT_MODE_UNSPECIFIED\x10\x00\x12\x19\n\x15OUTPUT_MODE_NO_OUTPUT\x10\x01\x12 \n\x1cOUTPUT_MODE_MODIFIED_RECORDS\x10\x02B\x0c\n\nwrite_type"\xd3\x03\n\tUpdateRel\x124\n\x0bnamed_table\x18\x01 \x01(\x0b2\x11.proto.NamedTableH\x00R\nnamedTable\x125\n\x0ctable_schema\x18\x02 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12/\n\tcondition\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\tcondition\x12N\n\x0ftransformations\x18\x04 \x03(\x0b2$.proto.UpdateRel.TransformExpressionR\x0ftransformations\x12R\n\x12advanced_extension\x18\x05 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1au\n\x13TransformExpression\x129\n\x0etransformation\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x0etransformation\x12#\n\rcolumn_target\x18\x02 \x01(\x05R\x0ccolumnTargetB\r\n\x0bupdate_type"v\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xab\x04\n\x11ComparisonJoinKey\x124\n\x04left\x18\x01 \x01(\x0b2 .proto.Expression.FieldReferenceR\x04left\x126\n\x05right\x18\x02 \x01(\x0b2 .proto.Expression.FieldReferenceR\x05right\x12G\n\ncomparison\x18\x03 \x01(\x0b2\'.proto.ComparisonJoinKey.ComparisonTypeR\ncomparison\x1a\xa5\x01\n\x0eComparisonType\x12G\n\x06simple\x18\x01 \x01(\x0e2-.proto.ComparisonJoinKey.SimpleComparisonTypeH\x00R\x06simple\x12<\n\x19custom_function_reference\x18\x02 \x01(\rH\x00R\x17customFunctionReferenceB\x0c\n\ninner_type"\xb6\x01\n\x14SimpleComparisonType\x12&\n"SIMPLE_COMPARISON_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19SIMPLE_COMPARISON_TYPE_EQ\x10\x01\x12/\n+SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM\x10\x02\x12&\n"SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL\x10\x03"\xd4\x07\n\x0bHashJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12A\n\tleft_keys\x18\x04 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12C\n\nright_keys\x18\x05 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b2\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x12/\n\x04type\x18\x07 \x01(\x0e2\x1b.proto.HashJoinRel.JoinTypeR\x04type\x12>\n\x0bbuild_input\x18\t \x01(\x0e2\x1d.proto.HashJoinRel.BuildInputR\nbuildInput\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"V\n\nBuildInput\x12\x1b\n\x17BUILD_INPUT_UNSPECIFIED\x10\x00\x12\x14\n\x10BUILD_INPUT_LEFT\x10\x01\x12\x15\n\x11BUILD_INPUT_RIGHT\x10\x02"\xbe\x06\n\x0cMergeJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12A\n\tleft_keys\x18\x04 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12C\n\nright_keys\x18\x05 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b2\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x120\n\x04type\x18\x07 \x01(\x0e2\x1c.proto.MergeJoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\x88\x05\n\x11NestedLoopJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x121\n\nexpression\x18\x04 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x125\n\x04type\x18\x05 \x01(\x0e2!.proto.NestedLoopJoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\x82\x01\n\x10FunctionArgument\x12\x14\n\x04enum\x18\x01 \x01(\tH\x00R\x04enum\x12!\n\x04type\x18\x02 \x01(\x0b2\x0b.proto.TypeH\x00R\x04type\x12)\n\x05value\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x00R\x05valueB\n\n\x08arg_type"D\n\x0eFunctionOption\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1e\n\npreference\x18\x02 \x03(\tR\npreference"\xdfW\n\nExpression\x125\n\x07literal\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralH\x00R\x07literal\x12@\n\tselection\x18\x02 \x01(\x0b2 .proto.Expression.FieldReferenceH\x00R\tselection\x12K\n\x0fscalar_function\x18\x03 \x01(\x0b2 .proto.Expression.ScalarFunctionH\x00R\x0escalarFunction\x12K\n\x0fwindow_function\x18\x05 \x01(\x0b2 .proto.Expression.WindowFunctionH\x00R\x0ewindowFunction\x123\n\x07if_then\x18\x06 \x01(\x0b2\x18.proto.Expression.IfThenH\x00R\x06ifThen\x12Q\n\x11switch_expression\x18\x07 \x01(\x0b2".proto.Expression.SwitchExpressionH\x00R\x10switchExpression\x12L\n\x10singular_or_list\x18\x08 \x01(\x0b2 .proto.Expression.SingularOrListH\x00R\x0esingularOrList\x12C\n\rmulti_or_list\x18\t \x01(\x0b2\x1d.proto.Expression.MultiOrListH\x00R\x0bmultiOrList\x12,\n\x04cast\x18\x0b \x01(\x0b2\x16.proto.Expression.CastH\x00R\x04cast\x128\n\x08subquery\x18\x0c \x01(\x0b2\x1a.proto.Expression.SubqueryH\x00R\x08subquery\x122\n\x06nested\x18\r \x01(\x0b2\x18.proto.Expression.NestedH\x00R\x06nested\x12F\n\x11dynamic_parameter\x18\x0e \x01(\x0b2\x17.proto.DynamicParameterH\x00R\x10dynamicParameter\x120\n\x04enum\x18\n \x01(\x0b2\x16.proto.Expression.EnumB\x02\x18\x01H\x00R\x04enum\x1a\x86\x01\n\x04Enum\x12\x1e\n\tspecified\x18\x01 \x01(\tH\x00R\tspecified\x12@\n\x0bunspecified\x18\x02 \x01(\x0b2\x1c.proto.Expression.Enum.EmptyH\x00R\x0bunspecified\x1a\x0b\n\x05Empty:\x02\x18\x01:\x02\x18\x01B\x0b\n\tenum_kind\x1a\xde\x16\n\x07Literal\x12\x1a\n\x07boolean\x18\x01 \x01(\x08H\x00R\x07boolean\x12\x10\n\x02i8\x18\x02 \x01(\x05H\x00R\x02i8\x12\x12\n\x03i16\x18\x03 \x01(\x05H\x00R\x03i16\x12\x12\n\x03i32\x18\x05 \x01(\x05H\x00R\x03i32\x12\x12\n\x03i64\x18\x07 \x01(\x03H\x00R\x03i64\x12\x14\n\x04fp32\x18\n \x01(\x02H\x00R\x04fp32\x12\x14\n\x04fp64\x18\x0b \x01(\x01H\x00R\x04fp64\x12\x18\n\x06string\x18\x0c \x01(\tH\x00R\x06string\x12\x18\n\x06binary\x18\r \x01(\x0cH\x00R\x06binary\x12"\n\ttimestamp\x18\x0e \x01(\x03B\x02\x18\x01H\x00R\ttimestamp\x12\x14\n\x04date\x18\x10 \x01(\x05H\x00R\x04date\x12\x14\n\x04time\x18\x11 \x01(\x03H\x00R\x04time\x12d\n\x16interval_year_to_month\x18\x13 \x01(\x0b2-.proto.Expression.Literal.IntervalYearToMonthH\x00R\x13intervalYearToMonth\x12d\n\x16interval_day_to_second\x18\x14 \x01(\x0b2-.proto.Expression.Literal.IntervalDayToSecondH\x00R\x13intervalDayToSecond\x12Y\n\x11interval_compound\x18$ \x01(\x0b2*.proto.Expression.Literal.IntervalCompoundH\x00R\x10intervalCompound\x12\x1f\n\nfixed_char\x18\x15 \x01(\tH\x00R\tfixedChar\x12>\n\x08var_char\x18\x16 \x01(\x0b2!.proto.Expression.Literal.VarCharH\x00R\x07varChar\x12#\n\x0cfixed_binary\x18\x17 \x01(\x0cH\x00R\x0bfixedBinary\x12=\n\x07decimal\x18\x18 \x01(\x0b2!.proto.Expression.Literal.DecimalH\x00R\x07decimal\x12P\n\x0eprecision_time\x18% \x01(\x0b2\'.proto.Expression.Literal.PrecisionTimeH\x00R\rprecisionTime\x12_\n\x13precision_timestamp\x18" \x01(\x0b2,.proto.Expression.Literal.PrecisionTimestampH\x00R\x12precisionTimestamp\x12d\n\x16precision_timestamp_tz\x18# \x01(\x0b2,.proto.Expression.Literal.PrecisionTimestampH\x00R\x14precisionTimestampTz\x12:\n\x06struct\x18\x19 \x01(\x0b2 .proto.Expression.Literal.StructH\x00R\x06struct\x121\n\x03map\x18\x1a \x01(\x0b2\x1d.proto.Expression.Literal.MapH\x00R\x03map\x12\'\n\x0ctimestamp_tz\x18\x1b \x01(\x03B\x02\x18\x01H\x00R\x0btimestampTz\x12\x14\n\x04uuid\x18\x1c \x01(\x0cH\x00R\x04uuid\x12!\n\x04null\x18\x1d \x01(\x0b2\x0b.proto.TypeH\x00R\x04null\x124\n\x04list\x18\x1e \x01(\x0b2\x1e.proto.Expression.Literal.ListH\x00R\x04list\x121\n\nempty_list\x18\x1f \x01(\x0b2\x10.proto.Type.ListH\x00R\temptyList\x12.\n\tempty_map\x18 \x01(\x0b2\x0f.proto.Type.MapH\x00R\x08emptyMap\x12J\n\x0cuser_defined\x18! \x01(\x0b2%.proto.Expression.Literal.UserDefinedH\x00R\x0buserDefined\x12\x1a\n\x08nullable\x182 \x01(\x08R\x08nullable\x128\n\x18type_variation_reference\x183 \x01(\rR\x16typeVariationReference\x1a7\n\x07VarChar\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x12\x16\n\x06length\x18\x02 \x01(\rR\x06length\x1aS\n\x07Decimal\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x12\x14\n\x05scale\x18\x03 \x01(\x05R\x05scale\x1aC\n\rPrecisionTime\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1aH\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1a\xb6\x01\n\x03Map\x12E\n\nkey_values\x18\x01 \x03(\x0b2&.proto.Expression.Literal.Map.KeyValueR\tkeyValues\x1ah\n\x08KeyValue\x12+\n\x03key\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b2\x19.proto.Expression.LiteralR\x05value\x1aC\n\x13IntervalYearToMonth\x12\x14\n\x05years\x18\x01 \x01(\x05R\x05years\x12\x16\n\x06months\x18\x02 \x01(\x05R\x06months\x1a\xbf\x01\n\x13IntervalDayToSecond\x12\x12\n\x04days\x18\x01 \x01(\x05R\x04days\x12\x18\n\x07seconds\x18\x02 \x01(\x05R\x07seconds\x12(\n\x0cmicroseconds\x18\x03 \x01(\x05B\x02\x18\x01H\x00R\x0cmicroseconds\x12\x1e\n\tprecision\x18\x04 \x01(\x05H\x00R\tprecision\x12\x1e\n\nsubseconds\x18\x05 \x01(\x03R\nsubsecondsB\x10\n\x0eprecision_mode\x1a\xda\x01\n\x10IntervalCompound\x12b\n\x16interval_year_to_month\x18\x01 \x01(\x0b2-.proto.Expression.Literal.IntervalYearToMonthR\x13intervalYearToMonth\x12b\n\x16interval_day_to_second\x18\x02 \x01(\x0b2-.proto.Expression.Literal.IntervalDayToSecondR\x13intervalDayToSecond\x1a;\n\x06Struct\x121\n\x06fields\x18\x01 \x03(\x0b2\x19.proto.Expression.LiteralR\x06fields\x1a9\n\x04List\x121\n\x06values\x18\x01 \x03(\x0b2\x19.proto.Expression.LiteralR\x06values\x1a\xe5\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x12>\n\x0ftype_parameters\x18\x03 \x03(\x0b2\x15.proto.Type.ParameterR\x0etypeParameters\x12,\n\x05value\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyH\x00R\x05value\x12:\n\x06struct\x18\x04 \x01(\x0b2 .proto.Expression.Literal.StructH\x00R\x06structB\x05\n\x03valB\x0e\n\x0cliteral_type\x1a\x9f\x04\n\x06Nested\x12\x1a\n\x08nullable\x18\x01 \x01(\x08R\x08nullable\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x06struct\x18\x03 \x01(\x0b2\x1f.proto.Expression.Nested.StructH\x00R\x06struct\x123\n\x04list\x18\x04 \x01(\x0b2\x1d.proto.Expression.Nested.ListH\x00R\x04list\x120\n\x03map\x18\x05 \x01(\x0b2\x1c.proto.Expression.Nested.MapH\x00R\x03map\x1a\xa5\x01\n\x03Map\x12D\n\nkey_values\x18\x01 \x03(\x0b2%.proto.Expression.Nested.Map.KeyValueR\tkeyValues\x1aX\n\x08KeyValue\x12#\n\x03key\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x03key\x12\'\n\x05value\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x05value\x1a3\n\x06Struct\x12)\n\x06fields\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06fields\x1a1\n\x04List\x12)\n\x06values\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06valuesB\r\n\x0bnested_type\x1a\x80\x02\n\x0eScalarFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\x04 \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x05 \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x03 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12)\n\x04args\x18\x02 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args\x1a\xd5\t\n\x0eWindowFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\t \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\n \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x121\n\npartitions\x18\x02 \x03(\x0b2\x11.proto.ExpressionR\npartitions\x12L\n\x0bbounds_type\x18\x0c \x01(\x0e2+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType\x12G\n\x0blower_bound\x18\x05 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nupperBound\x12)\n\x04args\x18\x08 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args\x1a\xc0\x03\n\x05Bound\x12P\n\tpreceding\x18\x01 \x01(\x0b20.proto.Expression.WindowFunction.Bound.PrecedingH\x00R\tpreceding\x12P\n\tfollowing\x18\x02 \x01(\x0b20.proto.Expression.WindowFunction.Bound.FollowingH\x00R\tfollowing\x12T\n\x0bcurrent_row\x18\x03 \x01(\x0b21.proto.Expression.WindowFunction.Bound.CurrentRowH\x00R\ncurrentRow\x12P\n\tunbounded\x18\x04 \x01(\x0b20.proto.Expression.WindowFunction.Bound.UnboundedH\x00R\tunbounded\x1a#\n\tPreceding\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a#\n\tFollowing\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a\x0c\n\nCurrentRow\x1a\x0b\n\tUnboundedB\x06\n\x04kind"V\n\nBoundsType\x12\x1b\n\x17BOUNDS_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10BOUNDS_TYPE_ROWS\x10\x01\x12\x15\n\x11BOUNDS_TYPE_RANGE\x10\x02\x1a\xba\x01\n\x06IfThen\x123\n\x03ifs\x18\x01 \x03(\x0b2!.proto.Expression.IfThen.IfClauseR\x03ifs\x12%\n\x04else\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04else\x1aT\n\x08IfClause\x12!\n\x02if\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04then\x1a\xa0\x02\n\x04Cast\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x12\'\n\x05input\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x05input\x12Q\n\x10failure_behavior\x18\x03 \x01(\x0e2&.proto.Expression.Cast.FailureBehaviorR\x0ffailureBehavior"{\n\x0fFailureBehavior\x12 \n\x1cFAILURE_BEHAVIOR_UNSPECIFIED\x10\x00\x12 \n\x1cFAILURE_BEHAVIOR_RETURN_NULL\x10\x01\x12$\n FAILURE_BEHAVIOR_THROW_EXCEPTION\x10\x02\x1a\xfd\x01\n\x10SwitchExpression\x12\'\n\x05match\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x05match\x12<\n\x03ifs\x18\x01 \x03(\x0b2*.proto.Expression.SwitchExpression.IfValueR\x03ifs\x12%\n\x04else\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04else\x1a[\n\x07IfValue\x12)\n\x02if\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04then\x1af\n\x0eSingularOrList\x12\'\n\x05value\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x05value\x12+\n\x07options\x18\x02 \x03(\x0b2\x11.proto.ExpressionR\x07options\x1a\xab\x01\n\x0bMultiOrList\x12\'\n\x05value\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x05value\x12>\n\x07options\x18\x02 \x03(\x0b2$.proto.Expression.MultiOrList.RecordR\x07options\x1a3\n\x06Record\x12)\n\x06fields\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06fields\x1a\x83\x04\n\x10EmbeddedFunction\x12/\n\targuments\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\targuments\x12,\n\x0boutput_type\x18\x02 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12o\n\x16python_pickle_function\x18\x03 \x01(\x0b27.proto.Expression.EmbeddedFunction.PythonPickleFunctionH\x00R\x14pythonPickleFunction\x12l\n\x15web_assembly_function\x18\x04 \x01(\x0b26.proto.Expression.EmbeddedFunction.WebAssemblyFunctionH\x00R\x13webAssemblyFunction\x1aV\n\x14PythonPickleFunction\x12\x1a\n\x08function\x18\x01 \x01(\x0cR\x08function\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisite\x1aQ\n\x13WebAssemblyFunction\x12\x16\n\x06script\x18\x01 \x01(\x0cR\x06script\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisiteB\x06\n\x04kind\x1a\xcc\x04\n\x10ReferenceSegment\x12D\n\x07map_key\x18\x01 \x01(\x0b2).proto.Expression.ReferenceSegment.MapKeyH\x00R\x06mapKey\x12S\n\x0cstruct_field\x18\x02 \x01(\x0b2..proto.Expression.ReferenceSegment.StructFieldH\x00R\x0bstructField\x12S\n\x0clist_element\x18\x03 \x01(\x0b2..proto.Expression.ReferenceSegment.ListElementH\x00R\x0blistElement\x1av\n\x06MapKey\x122\n\x07map_key\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x06mapKey\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05child\x1a]\n\x0bStructField\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05child\x1a_\n\x0bListElement\x12\x16\n\x06offset\x18\x01 \x01(\x05R\x06offset\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05childB\x10\n\x0ereference_type\x1a\xee\n\n\x0eMaskExpression\x12E\n\x06select\x18\x01 \x01(\x0b2-.proto.Expression.MaskExpression.StructSelectR\x06select\x128\n\x18maintain_singular_struct\x18\x02 \x01(\x08R\x16maintainSingularStruct\x1a\xdc\x01\n\x06Select\x12G\n\x06struct\x18\x01 \x01(\x0b2-.proto.Expression.MaskExpression.StructSelectH\x00R\x06struct\x12A\n\x04list\x18\x02 \x01(\x0b2+.proto.Expression.MaskExpression.ListSelectH\x00R\x04list\x12>\n\x03map\x18\x03 \x01(\x0b2*.proto.Expression.MaskExpression.MapSelectH\x00R\x03mapB\x06\n\x04type\x1a^\n\x0cStructSelect\x12N\n\x0cstruct_items\x18\x01 \x03(\x0b2+.proto.Expression.MaskExpression.StructItemR\x0bstructItems\x1aa\n\nStructItem\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x12=\n\x05child\x18\x02 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a\xd6\x03\n\nListSelect\x12X\n\tselection\x18\x01 \x03(\x0b2:.proto.Expression.MaskExpression.ListSelect.ListSelectItemR\tselection\x12=\n\x05child\x18\x02 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a\xae\x02\n\x0eListSelectItem\x12\\\n\x04item\x18\x01 \x01(\x0b2F.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListElementH\x00R\x04item\x12\\\n\x05slice\x18\x02 \x01(\x0b2D.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListSliceH\x00R\x05slice\x1a#\n\x0bListElement\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x1a3\n\tListSlice\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03end\x18\x02 \x01(\x05R\x03endB\x06\n\x04type\x1a\xdf\x02\n\tMapSelect\x12E\n\x03key\x18\x01 \x01(\x0b21.proto.Expression.MaskExpression.MapSelect.MapKeyH\x00R\x03key\x12]\n\nexpression\x18\x02 \x01(\x0b2;.proto.Expression.MaskExpression.MapSelect.MapKeyExpressionH\x00R\nexpression\x12=\n\x05child\x18\x03 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a!\n\x06MapKey\x12\x17\n\x07map_key\x18\x01 \x01(\tR\x06mapKey\x1a@\n\x10MapKeyExpression\x12,\n\x12map_key_expression\x18\x01 \x01(\tR\x10mapKeyExpressionB\x08\n\x06select\x1a\xf9\x03\n\x0eFieldReference\x12O\n\x10direct_reference\x18\x01 \x01(\x0b2".proto.Expression.ReferenceSegmentH\x00R\x0fdirectReference\x12M\n\x10masked_reference\x18\x02 \x01(\x0b2 .proto.Expression.MaskExpressionH\x00R\x0fmaskedReference\x123\n\nexpression\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x01R\nexpression\x12W\n\x0eroot_reference\x18\x04 \x01(\x0b2..proto.Expression.FieldReference.RootReferenceH\x01R\rrootReference\x12Z\n\x0fouter_reference\x18\x05 \x01(\x0b2/.proto.Expression.FieldReference.OuterReferenceH\x01R\x0eouterReference\x1a\x0f\n\rRootReference\x1a-\n\x0eOuterReference\x12\x1b\n\tsteps_out\x18\x01 \x01(\rR\x08stepsOutB\x10\n\x0ereference_typeB\x0b\n\troot_type\x1a\xe1\t\n\x08Subquery\x12;\n\x06scalar\x18\x01 \x01(\x0b2!.proto.Expression.Subquery.ScalarH\x00R\x06scalar\x12K\n\x0cin_predicate\x18\x02 \x01(\x0b2&.proto.Expression.Subquery.InPredicateH\x00R\x0binPredicate\x12N\n\rset_predicate\x18\x03 \x01(\x0b2\'.proto.Expression.Subquery.SetPredicateH\x00R\x0csetPredicate\x12Q\n\x0eset_comparison\x18\x04 \x01(\x0b2(.proto.Expression.Subquery.SetComparisonH\x00R\rsetComparison\x1a*\n\x06Scalar\x12 \n\x05input\x18\x01 \x01(\x0b2\n.proto.RelR\x05input\x1ab\n\x0bInPredicate\x12+\n\x07needles\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x07needles\x12&\n\x08haystack\x18\x02 \x01(\x0b2\n.proto.RelR\x08haystack\x1a\xe9\x01\n\x0cSetPredicate\x12V\n\x0cpredicate_op\x18\x01 \x01(\x0e23.proto.Expression.Subquery.SetPredicate.PredicateOpR\x0bpredicateOp\x12"\n\x06tuples\x18\x02 \x01(\x0b2\n.proto.RelR\x06tuples"]\n\x0bPredicateOp\x12\x1c\n\x18PREDICATE_OP_UNSPECIFIED\x10\x00\x12\x17\n\x13PREDICATE_OP_EXISTS\x10\x01\x12\x17\n\x13PREDICATE_OP_UNIQUE\x10\x02\x1a\x9a\x04\n\rSetComparison\x12W\n\x0creduction_op\x18\x01 \x01(\x0e24.proto.Expression.Subquery.SetComparison.ReductionOpR\x0breductionOp\x12Z\n\rcomparison_op\x18\x02 \x01(\x0e25.proto.Expression.Subquery.SetComparison.ComparisonOpR\x0ccomparisonOp\x12%\n\x04left\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x04left\x12 \n\x05right\x18\x04 \x01(\x0b2\n.proto.RelR\x05right"\xb1\x01\n\x0cComparisonOp\x12\x1d\n\x19COMPARISON_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10COMPARISON_OP_EQ\x10\x01\x12\x14\n\x10COMPARISON_OP_NE\x10\x02\x12\x14\n\x10COMPARISON_OP_LT\x10\x03\x12\x14\n\x10COMPARISON_OP_GT\x10\x04\x12\x14\n\x10COMPARISON_OP_LE\x10\x05\x12\x14\n\x10COMPARISON_OP_GE\x10\x06"W\n\x0bReductionOp\x12\x1c\n\x18REDUCTION_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10REDUCTION_OP_ANY\x10\x01\x12\x14\n\x10REDUCTION_OP_ALL\x10\x02B\x0f\n\rsubquery_typeB\n\n\x08rex_type"d\n\x10DynamicParameter\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x12/\n\x13parameter_reference\x18\x02 \x01(\rR\x12parameterReference"\xa5\x03\n\tSortField\x12%\n\x04expr\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x04expr\x12>\n\tdirection\x18\x02 \x01(\x0e2\x1e.proto.SortField.SortDirectionH\x00R\tdirection\x12D\n\x1dcomparison_function_reference\x18\x03 \x01(\rH\x00R\x1bcomparisonFunctionReference"\xdd\x01\n\rSortDirection\x12\x1e\n\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12"\n\x1eSORT_DIRECTION_ASC_NULLS_FIRST\x10\x01\x12!\n\x1dSORT_DIRECTION_ASC_NULLS_LAST\x10\x02\x12#\n\x1fSORT_DIRECTION_DESC_NULLS_FIRST\x10\x03\x12"\n\x1eSORT_DIRECTION_DESC_NULLS_LAST\x10\x04\x12\x1c\n\x18SORT_DIRECTION_CLUSTERED\x10\x05B\x0b\n\tsort_kind"\xb1\x04\n\x11AggregateFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\x07 \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x08 \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x05 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x04 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\x06 \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12)\n\x04args\x18\x02 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args"\x84\x01\n\x15AggregationInvocation\x12&\n"AGGREGATION_INVOCATION_UNSPECIFIED\x10\x00\x12\x1e\n\x1aAGGREGATION_INVOCATION_ALL\x10\x01\x12#\n\x1fAGGREGATION_INVOCATION_DISTINCT\x10\x02"7\n\x0cReferenceRel\x12\'\n\x0fsubtree_ordinal\x18\x01 \x01(\x05R\x0esubtreeOrdinal*\xef\x01\n\x10AggregationPhase\x12!\n\x1dAGGREGATION_PHASE_UNSPECIFIED\x10\x00\x12-\n)AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE\x10\x01\x122\n.AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE\x10\x02\x12\'\n#AGGREGATION_PHASE_INITIAL_TO_RESULT\x10\x03\x12,\n(AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT\x10\x04B#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.algebra_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _globals['_READREL_VIRTUALTABLE'].fields_by_name['values']._loaded_options = None - _globals['_READREL_VIRTUALTABLE'].fields_by_name['values']._serialized_options = b'\x18\x01' - _globals['_FETCHREL'].fields_by_name['offset']._loaded_options = None - _globals['_FETCHREL'].fields_by_name['offset']._serialized_options = b'\x18\x01' - _globals['_FETCHREL'].fields_by_name['count']._loaded_options = None - _globals['_FETCHREL'].fields_by_name['count']._serialized_options = b'\x18\x01' - _globals['_AGGREGATEREL_GROUPING'].fields_by_name['grouping_expressions']._loaded_options = None - _globals['_AGGREGATEREL_GROUPING'].fields_by_name['grouping_expressions']._serialized_options = b'\x18\x01' - _globals['_HASHJOINREL'].fields_by_name['left_keys']._loaded_options = None - _globals['_HASHJOINREL'].fields_by_name['left_keys']._serialized_options = b'\x18\x01' - _globals['_HASHJOINREL'].fields_by_name['right_keys']._loaded_options = None - _globals['_HASHJOINREL'].fields_by_name['right_keys']._serialized_options = b'\x18\x01' - _globals['_MERGEJOINREL'].fields_by_name['left_keys']._loaded_options = None - _globals['_MERGEJOINREL'].fields_by_name['left_keys']._serialized_options = b'\x18\x01' - _globals['_MERGEJOINREL'].fields_by_name['right_keys']._loaded_options = None - _globals['_MERGEJOINREL'].fields_by_name['right_keys']._serialized_options = b'\x18\x01' - _globals['_EXPRESSION_ENUM_EMPTY']._loaded_options = None - _globals['_EXPRESSION_ENUM_EMPTY']._serialized_options = b'\x18\x01' - _globals['_EXPRESSION_ENUM']._loaded_options = None - _globals['_EXPRESSION_ENUM']._serialized_options = b'\x18\x01' - _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND'].fields_by_name['microseconds']._loaded_options = None - _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND'].fields_by_name['microseconds']._serialized_options = b'\x18\x01' - _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp']._loaded_options = None - _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp']._serialized_options = b'\x18\x01' - _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp_tz']._loaded_options = None - _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' - _globals['_EXPRESSION_SCALARFUNCTION'].fields_by_name['args']._loaded_options = None - _globals['_EXPRESSION_SCALARFUNCTION'].fields_by_name['args']._serialized_options = b'\x18\x01' - _globals['_EXPRESSION_WINDOWFUNCTION'].fields_by_name['args']._loaded_options = None - _globals['_EXPRESSION_WINDOWFUNCTION'].fields_by_name['args']._serialized_options = b'\x18\x01' - _globals['_EXPRESSION'].fields_by_name['enum']._loaded_options = None - _globals['_EXPRESSION'].fields_by_name['enum']._serialized_options = b'\x18\x01' - _globals['_AGGREGATEFUNCTION'].fields_by_name['args']._loaded_options = None - _globals['_AGGREGATEFUNCTION'].fields_by_name['args']._serialized_options = b'\x18\x01' - _globals['_AGGREGATIONPHASE']._serialized_start = 29278 - _globals['_AGGREGATIONPHASE']._serialized_end = 29517 - _globals['_RELCOMMON']._serialized_start = 111 - _globals['_RELCOMMON']._serialized_end = 1536 - _globals['_RELCOMMON_DIRECT']._serialized_start = 347 - _globals['_RELCOMMON_DIRECT']._serialized_end = 355 - _globals['_RELCOMMON_EMIT']._serialized_start = 357 - _globals['_RELCOMMON_EMIT']._serialized_end = 402 - _globals['_RELCOMMON_HINT']._serialized_start = 405 - _globals['_RELCOMMON_HINT']._serialized_end = 1523 - _globals['_RELCOMMON_HINT_STATS']._serialized_start = 856 - _globals['_RELCOMMON_HINT_STATS']._serialized_end = 1009 - _globals['_RELCOMMON_HINT_RUNTIMECONSTRAINT']._serialized_start = 1011 - _globals['_RELCOMMON_HINT_RUNTIMECONSTRAINT']._serialized_end = 1114 - _globals['_RELCOMMON_HINT_SAVEDCOMPUTATION']._serialized_start = 1116 - _globals['_RELCOMMON_HINT_SAVEDCOMPUTATION']._serialized_end = 1232 - _globals['_RELCOMMON_HINT_LOADEDCOMPUTATION']._serialized_start = 1235 - _globals['_RELCOMMON_HINT_LOADEDCOMPUTATION']._serialized_end = 1371 - _globals['_RELCOMMON_HINT_COMPUTATIONTYPE']._serialized_start = 1374 - _globals['_RELCOMMON_HINT_COMPUTATIONTYPE']._serialized_end = 1523 - _globals['_READREL']._serialized_start = 1539 - _globals['_READREL']._serialized_end = 4104 - _globals['_READREL_NAMEDTABLE']._serialized_start = 2237 - _globals['_READREL_NAMEDTABLE']._serialized_end = 2355 - _globals['_READREL_ICEBERGTABLE']._serialized_start = 2358 - _globals['_READREL_ICEBERGTABLE']._serialized_end = 2610 - _globals['_READREL_ICEBERGTABLE_METADATAFILEREAD']._serialized_start = 2447 - _globals['_READREL_ICEBERGTABLE_METADATAFILEREAD']._serialized_end = 2596 - _globals['_READREL_VIRTUALTABLE']._serialized_start = 2613 - _globals['_READREL_VIRTUALTABLE']._serialized_end = 2756 - _globals['_READREL_EXTENSIONTABLE']._serialized_start = 2758 - _globals['_READREL_EXTENSIONTABLE']._serialized_end = 2820 - _globals['_READREL_LOCALFILES']._serialized_start = 2823 - _globals['_READREL_LOCALFILES']._serialized_end = 4091 - _globals['_READREL_LOCALFILES_FILEORFILES']._serialized_start = 2983 - _globals['_READREL_LOCALFILES_FILEORFILES']._serialized_end = 4091 - _globals['_READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS']._serialized_start = 3680 - _globals['_READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS']._serialized_end = 3700 - _globals['_READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS']._serialized_start = 3702 - _globals['_READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS']._serialized_end = 3720 - _globals['_READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS']._serialized_start = 3722 - _globals['_READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS']._serialized_end = 3738 - _globals['_READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS']._serialized_start = 3740 - _globals['_READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS']._serialized_end = 3757 - _globals['_READREL_LOCALFILES_FILEORFILES_DELIMITERSEPARATEDTEXTREADOPTIONS']._serialized_start = 3760 - _globals['_READREL_LOCALFILES_FILEORFILES_DELIMITERSEPARATEDTEXTREADOPTIONS']._serialized_end = 4049 - _globals['_PROJECTREL']._serialized_start = 4107 - _globals['_PROJECTREL']._serialized_end = 4332 - _globals['_JOINREL']._serialized_start = 4335 - _globals['_JOINREL']._serialized_end = 5024 - _globals['_JOINREL_JOINTYPE']._serialized_start = 4696 - _globals['_JOINREL_JOINTYPE']._serialized_end = 5024 - _globals['_CROSSREL']._serialized_start = 5027 - _globals['_CROSSREL']._serialized_end = 5229 - _globals['_FETCHREL']._serialized_start = 5232 - _globals['_FETCHREL']._serialized_end = 5595 - _globals['_AGGREGATEREL']._serialized_start = 5598 - _globals['_AGGREGATEREL']._serialized_end = 6205 - _globals['_AGGREGATEREL_GROUPING']._serialized_start = 5962 - _globals['_AGGREGATEREL_GROUPING']._serialized_end = 6099 - _globals['_AGGREGATEREL_MEASURE']._serialized_start = 6101 - _globals['_AGGREGATEREL_MEASURE']._serialized_end = 6205 - _globals['_CONSISTENTPARTITIONWINDOWREL']._serialized_start = 6208 - _globals['_CONSISTENTPARTITIONWINDOWREL']._serialized_end = 7178 - _globals['_CONSISTENTPARTITIONWINDOWREL_WINDOWRELFUNCTION']._serialized_start = 6611 - _globals['_CONSISTENTPARTITIONWINDOWREL_WINDOWRELFUNCTION']._serialized_end = 7178 - _globals['_SORTREL']._serialized_start = 7181 - _globals['_SORTREL']._serialized_end = 7390 - _globals['_FILTERREL']._serialized_start = 7393 - _globals['_FILTERREL']._serialized_end = 7613 - _globals['_SETREL']._serialized_start = 7616 - _globals['_SETREL']._serialized_end = 8094 - _globals['_SETREL_SETOP']._serialized_start = 7826 - _globals['_SETREL_SETOP']._serialized_end = 8094 - _globals['_EXTENSIONSINGLEREL']._serialized_start = 8097 - _globals['_EXTENSIONSINGLEREL']._serialized_end = 8239 - _globals['_EXTENSIONLEAFREL']._serialized_start = 8241 - _globals['_EXTENSIONLEAFREL']._serialized_end = 8347 - _globals['_EXTENSIONMULTIREL']._serialized_start = 8350 - _globals['_EXTENSIONMULTIREL']._serialized_end = 8493 - _globals['_EXCHANGEREL']._serialized_start = 8496 - _globals['_EXCHANGEREL']._serialized_end = 9625 - _globals['_EXCHANGEREL_SCATTERFIELDS']._serialized_start = 9142 - _globals['_EXCHANGEREL_SCATTERFIELDS']._serialized_end = 9215 - _globals['_EXCHANGEREL_SINGLEBUCKETEXPRESSION']._serialized_start = 9217 - _globals['_EXCHANGEREL_SINGLEBUCKETEXPRESSION']._serialized_end = 9292 - _globals['_EXCHANGEREL_MULTIBUCKETEXPRESSION']._serialized_start = 9294 - _globals['_EXCHANGEREL_MULTIBUCKETEXPRESSION']._serialized_end = 9418 - _globals['_EXCHANGEREL_BROADCAST']._serialized_start = 9420 - _globals['_EXCHANGEREL_BROADCAST']._serialized_end = 9431 - _globals['_EXCHANGEREL_ROUNDROBIN']._serialized_start = 9433 - _globals['_EXCHANGEREL_ROUNDROBIN']._serialized_end = 9467 - _globals['_EXCHANGEREL_EXCHANGETARGET']._serialized_start = 9470 - _globals['_EXCHANGEREL_EXCHANGETARGET']._serialized_end = 9608 - _globals['_EXPANDREL']._serialized_start = 9628 - _globals['_EXPANDREL']._serialized_end = 10008 - _globals['_EXPANDREL_EXPANDFIELD']._serialized_start = 9772 - _globals['_EXPANDREL_EXPANDFIELD']._serialized_end = 9939 - _globals['_EXPANDREL_SWITCHINGFIELD']._serialized_start = 9941 - _globals['_EXPANDREL_SWITCHINGFIELD']._serialized_end = 10008 - _globals['_RELROOT']._serialized_start = 10010 - _globals['_RELROOT']._serialized_end = 10075 - _globals['_REL']._serialized_start = 10078 - _globals['_REL']._serialized_end = 11182 - _globals['_NAMEDOBJECTWRITE']._serialized_start = 11184 - _globals['_NAMEDOBJECTWRITE']._serialized_end = 11308 - _globals['_EXTENSIONOBJECT']._serialized_start = 11310 - _globals['_EXTENSIONOBJECT']._serialized_end = 11373 - _globals['_DDLREL']._serialized_start = 11376 - _globals['_DDLREL']._serialized_end = 12150 - _globals['_DDLREL_DDLOBJECT']._serialized_start = 11910 - _globals['_DDLREL_DDLOBJECT']._serialized_end = 11992 - _globals['_DDLREL_DDLOP']._serialized_start = 11995 - _globals['_DDLREL_DDLOP']._serialized_end = 12136 - _globals['_WRITEREL']._serialized_start = 12153 - _globals['_WRITEREL']._serialized_end = 13076 - _globals['_WRITEREL_WRITEOP']._serialized_start = 12661 - _globals['_WRITEREL_WRITEOP']._serialized_end = 12778 - _globals['_WRITEREL_CREATEMODE']._serialized_start = 12781 - _globals['_WRITEREL_CREATEMODE']._serialized_end = 12958 - _globals['_WRITEREL_OUTPUTMODE']._serialized_start = 12960 - _globals['_WRITEREL_OUTPUTMODE']._serialized_end = 13062 - _globals['_UPDATEREL']._serialized_start = 13079 - _globals['_UPDATEREL']._serialized_end = 13546 - _globals['_UPDATEREL_TRANSFORMEXPRESSION']._serialized_start = 13414 - _globals['_UPDATEREL_TRANSFORMEXPRESSION']._serialized_end = 13531 - _globals['_NAMEDTABLE']._serialized_start = 2237 - _globals['_NAMEDTABLE']._serialized_end = 2355 - _globals['_COMPARISONJOINKEY']._serialized_start = 13669 - _globals['_COMPARISONJOINKEY']._serialized_end = 14224 - _globals['_COMPARISONJOINKEY_COMPARISONTYPE']._serialized_start = 13874 - _globals['_COMPARISONJOINKEY_COMPARISONTYPE']._serialized_end = 14039 - _globals['_COMPARISONJOINKEY_SIMPLECOMPARISONTYPE']._serialized_start = 14042 - _globals['_COMPARISONJOINKEY_SIMPLECOMPARISONTYPE']._serialized_end = 14224 - _globals['_HASHJOINREL']._serialized_start = 14227 - _globals['_HASHJOINREL']._serialized_end = 15207 - _globals['_HASHJOINREL_JOINTYPE']._serialized_start = 14791 - _globals['_HASHJOINREL_JOINTYPE']._serialized_end = 15119 - _globals['_HASHJOINREL_BUILDINPUT']._serialized_start = 15121 - _globals['_HASHJOINREL_BUILDINPUT']._serialized_end = 15207 - _globals['_MERGEJOINREL']._serialized_start = 15210 - _globals['_MERGEJOINREL']._serialized_end = 16040 - _globals['_MERGEJOINREL_JOINTYPE']._serialized_start = 14791 - _globals['_MERGEJOINREL_JOINTYPE']._serialized_end = 15119 - _globals['_NESTEDLOOPJOINREL']._serialized_start = 16043 - _globals['_NESTEDLOOPJOINREL']._serialized_end = 16691 - _globals['_NESTEDLOOPJOINREL_JOINTYPE']._serialized_start = 14791 - _globals['_NESTEDLOOPJOINREL_JOINTYPE']._serialized_end = 15119 - _globals['_FUNCTIONARGUMENT']._serialized_start = 16694 - _globals['_FUNCTIONARGUMENT']._serialized_end = 16824 - _globals['_FUNCTIONOPTION']._serialized_start = 16826 - _globals['_FUNCTIONOPTION']._serialized_end = 16894 - _globals['_EXPRESSION']._serialized_start = 16897 - _globals['_EXPRESSION']._serialized_end = 28128 - _globals['_EXPRESSION_ENUM']._serialized_start = 17748 - _globals['_EXPRESSION_ENUM']._serialized_end = 17882 - _globals['_EXPRESSION_ENUM_EMPTY']._serialized_start = 17854 - _globals['_EXPRESSION_ENUM_EMPTY']._serialized_end = 17865 - _globals['_EXPRESSION_LITERAL']._serialized_start = 17885 - _globals['_EXPRESSION_LITERAL']._serialized_end = 20795 - _globals['_EXPRESSION_LITERAL_VARCHAR']._serialized_start = 19475 - _globals['_EXPRESSION_LITERAL_VARCHAR']._serialized_end = 19530 - _globals['_EXPRESSION_LITERAL_DECIMAL']._serialized_start = 19532 - _globals['_EXPRESSION_LITERAL_DECIMAL']._serialized_end = 19615 - _globals['_EXPRESSION_LITERAL_PRECISIONTIME']._serialized_start = 19617 - _globals['_EXPRESSION_LITERAL_PRECISIONTIME']._serialized_end = 19684 - _globals['_EXPRESSION_LITERAL_PRECISIONTIMESTAMP']._serialized_start = 19686 - _globals['_EXPRESSION_LITERAL_PRECISIONTIMESTAMP']._serialized_end = 19758 - _globals['_EXPRESSION_LITERAL_MAP']._serialized_start = 19761 - _globals['_EXPRESSION_LITERAL_MAP']._serialized_end = 19943 - _globals['_EXPRESSION_LITERAL_MAP_KEYVALUE']._serialized_start = 19839 - _globals['_EXPRESSION_LITERAL_MAP_KEYVALUE']._serialized_end = 19943 - _globals['_EXPRESSION_LITERAL_INTERVALYEARTOMONTH']._serialized_start = 19945 - _globals['_EXPRESSION_LITERAL_INTERVALYEARTOMONTH']._serialized_end = 20012 - _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND']._serialized_start = 20015 - _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND']._serialized_end = 20206 - _globals['_EXPRESSION_LITERAL_INTERVALCOMPOUND']._serialized_start = 20209 - _globals['_EXPRESSION_LITERAL_INTERVALCOMPOUND']._serialized_end = 20427 - _globals['_EXPRESSION_LITERAL_STRUCT']._serialized_start = 20429 - _globals['_EXPRESSION_LITERAL_STRUCT']._serialized_end = 20488 - _globals['_EXPRESSION_LITERAL_LIST']._serialized_start = 20490 - _globals['_EXPRESSION_LITERAL_LIST']._serialized_end = 20547 - _globals['_EXPRESSION_LITERAL_USERDEFINED']._serialized_start = 20550 - _globals['_EXPRESSION_LITERAL_USERDEFINED']._serialized_end = 20779 - _globals['_EXPRESSION_NESTED']._serialized_start = 20798 - _globals['_EXPRESSION_NESTED']._serialized_end = 21341 - _globals['_EXPRESSION_NESTED_MAP']._serialized_start = 21057 - _globals['_EXPRESSION_NESTED_MAP']._serialized_end = 21222 - _globals['_EXPRESSION_NESTED_MAP_KEYVALUE']._serialized_start = 21134 - _globals['_EXPRESSION_NESTED_MAP_KEYVALUE']._serialized_end = 21222 - _globals['_EXPRESSION_NESTED_STRUCT']._serialized_start = 21224 - _globals['_EXPRESSION_NESTED_STRUCT']._serialized_end = 21275 - _globals['_EXPRESSION_NESTED_LIST']._serialized_start = 21277 - _globals['_EXPRESSION_NESTED_LIST']._serialized_end = 21326 - _globals['_EXPRESSION_SCALARFUNCTION']._serialized_start = 21344 - _globals['_EXPRESSION_SCALARFUNCTION']._serialized_end = 21600 - _globals['_EXPRESSION_WINDOWFUNCTION']._serialized_start = 21603 - _globals['_EXPRESSION_WINDOWFUNCTION']._serialized_end = 22840 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND']._serialized_start = 22304 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND']._serialized_end = 22752 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING']._serialized_start = 22645 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING']._serialized_end = 22680 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING']._serialized_start = 22682 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING']._serialized_end = 22717 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW']._serialized_start = 22719 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW']._serialized_end = 22731 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED']._serialized_start = 22733 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED']._serialized_end = 22744 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE']._serialized_start = 22754 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE']._serialized_end = 22840 - _globals['_EXPRESSION_IFTHEN']._serialized_start = 22843 - _globals['_EXPRESSION_IFTHEN']._serialized_end = 23029 - _globals['_EXPRESSION_IFTHEN_IFCLAUSE']._serialized_start = 22945 - _globals['_EXPRESSION_IFTHEN_IFCLAUSE']._serialized_end = 23029 - _globals['_EXPRESSION_CAST']._serialized_start = 23032 - _globals['_EXPRESSION_CAST']._serialized_end = 23320 - _globals['_EXPRESSION_CAST_FAILUREBEHAVIOR']._serialized_start = 23197 - _globals['_EXPRESSION_CAST_FAILUREBEHAVIOR']._serialized_end = 23320 - _globals['_EXPRESSION_SWITCHEXPRESSION']._serialized_start = 23323 - _globals['_EXPRESSION_SWITCHEXPRESSION']._serialized_end = 23576 - _globals['_EXPRESSION_SWITCHEXPRESSION_IFVALUE']._serialized_start = 23485 - _globals['_EXPRESSION_SWITCHEXPRESSION_IFVALUE']._serialized_end = 23576 - _globals['_EXPRESSION_SINGULARORLIST']._serialized_start = 23578 - _globals['_EXPRESSION_SINGULARORLIST']._serialized_end = 23680 - _globals['_EXPRESSION_MULTIORLIST']._serialized_start = 23683 - _globals['_EXPRESSION_MULTIORLIST']._serialized_end = 23854 - _globals['_EXPRESSION_MULTIORLIST_RECORD']._serialized_start = 23803 - _globals['_EXPRESSION_MULTIORLIST_RECORD']._serialized_end = 23854 - _globals['_EXPRESSION_EMBEDDEDFUNCTION']._serialized_start = 23857 - _globals['_EXPRESSION_EMBEDDEDFUNCTION']._serialized_end = 24372 - _globals['_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION']._serialized_start = 24195 - _globals['_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION']._serialized_end = 24281 - _globals['_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION']._serialized_start = 24283 - _globals['_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION']._serialized_end = 24364 - _globals['_EXPRESSION_REFERENCESEGMENT']._serialized_start = 24375 - _globals['_EXPRESSION_REFERENCESEGMENT']._serialized_end = 24963 - _globals['_EXPRESSION_REFERENCESEGMENT_MAPKEY']._serialized_start = 24635 - _globals['_EXPRESSION_REFERENCESEGMENT_MAPKEY']._serialized_end = 24753 - _globals['_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD']._serialized_start = 24755 - _globals['_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD']._serialized_end = 24848 - _globals['_EXPRESSION_REFERENCESEGMENT_LISTELEMENT']._serialized_start = 24850 - _globals['_EXPRESSION_REFERENCESEGMENT_LISTELEMENT']._serialized_end = 24945 - _globals['_EXPRESSION_MASKEXPRESSION']._serialized_start = 24966 - _globals['_EXPRESSION_MASKEXPRESSION']._serialized_end = 26356 - _globals['_EXPRESSION_MASKEXPRESSION_SELECT']._serialized_start = 25114 - _globals['_EXPRESSION_MASKEXPRESSION_SELECT']._serialized_end = 25334 - _globals['_EXPRESSION_MASKEXPRESSION_STRUCTSELECT']._serialized_start = 25336 - _globals['_EXPRESSION_MASKEXPRESSION_STRUCTSELECT']._serialized_end = 25430 - _globals['_EXPRESSION_MASKEXPRESSION_STRUCTITEM']._serialized_start = 25432 - _globals['_EXPRESSION_MASKEXPRESSION_STRUCTITEM']._serialized_end = 25529 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT']._serialized_start = 25532 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT']._serialized_end = 26002 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM']._serialized_start = 25700 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM']._serialized_end = 26002 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT']._serialized_start = 25906 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT']._serialized_end = 25941 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE']._serialized_start = 25943 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE']._serialized_end = 25994 - _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT']._serialized_start = 26005 - _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT']._serialized_end = 26356 - _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY']._serialized_start = 26247 - _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY']._serialized_end = 26280 - _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION']._serialized_start = 26282 - _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION']._serialized_end = 26346 - _globals['_EXPRESSION_FIELDREFERENCE']._serialized_start = 26359 - _globals['_EXPRESSION_FIELDREFERENCE']._serialized_end = 26864 - _globals['_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE']._serialized_start = 26771 - _globals['_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE']._serialized_end = 26786 - _globals['_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE']._serialized_start = 26788 - _globals['_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE']._serialized_end = 26833 - _globals['_EXPRESSION_SUBQUERY']._serialized_start = 26867 - _globals['_EXPRESSION_SUBQUERY']._serialized_end = 28116 - _globals['_EXPRESSION_SUBQUERY_SCALAR']._serialized_start = 27180 - _globals['_EXPRESSION_SUBQUERY_SCALAR']._serialized_end = 27222 - _globals['_EXPRESSION_SUBQUERY_INPREDICATE']._serialized_start = 27224 - _globals['_EXPRESSION_SUBQUERY_INPREDICATE']._serialized_end = 27322 - _globals['_EXPRESSION_SUBQUERY_SETPREDICATE']._serialized_start = 27325 - _globals['_EXPRESSION_SUBQUERY_SETPREDICATE']._serialized_end = 27558 - _globals['_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP']._serialized_start = 27465 - _globals['_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP']._serialized_end = 27558 - _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON']._serialized_start = 27561 - _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON']._serialized_end = 28099 - _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP']._serialized_start = 27833 - _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP']._serialized_end = 28010 - _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP']._serialized_start = 28012 - _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP']._serialized_end = 28099 - _globals['_DYNAMICPARAMETER']._serialized_start = 28130 - _globals['_DYNAMICPARAMETER']._serialized_end = 28230 - _globals['_SORTFIELD']._serialized_start = 28233 - _globals['_SORTFIELD']._serialized_end = 28654 - _globals['_SORTFIELD_SORTDIRECTION']._serialized_start = 28420 - _globals['_SORTFIELD_SORTDIRECTION']._serialized_end = 28641 - _globals['_AGGREGATEFUNCTION']._serialized_start = 28657 - _globals['_AGGREGATEFUNCTION']._serialized_end = 29218 - _globals['_AGGREGATEFUNCTION_AGGREGATIONINVOCATION']._serialized_start = 29086 - _globals['_AGGREGATEFUNCTION_AGGREGATIONINVOCATION']._serialized_end = 29218 - _globals['_REFERENCEREL']._serialized_start = 29220 - _globals['_REFERENCEREL']._serialized_end = 29275 \ No newline at end of file +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13proto/algebra.proto\x12\x05proto\x1a\x19google/protobuf/any.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/type.proto"\xba\x0c\n\tRelCommon\x121\n\x06direct\x18\x01 \x01(\x0b2\x17.proto.RelCommon.DirectH\x00R\x06direct\x12+\n\x04emit\x18\x02 \x01(\x0b2\x15.proto.RelCommon.EmitH\x00R\x04emit\x12)\n\x04hint\x18\x03 \x01(\x0b2\x15.proto.RelCommon.HintR\x04hint\x12R\n\x12advanced_extension\x18\x04 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x08\n\x06Direct\x1a-\n\x04Emit\x12%\n\x0eoutput_mapping\x18\x01 \x03(\x05R\routputMapping\x1a\x87\n\n\x04Hint\x121\n\x05stats\x18\x01 \x01(\x0b2\x1b.proto.RelCommon.Hint.StatsR\x05stats\x12G\n\nconstraint\x18\x02 \x01(\x0b2\'.proto.RelCommon.Hint.RuntimeConstraintR\nconstraint\x12\x14\n\x05alias\x18\x03 \x01(\tR\x05alias\x12!\n\x0coutput_names\x18\x04 \x03(\tR\x0boutputNames\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x12U\n\x12saved_computations\x18\x0b \x03(\x0b2&.proto.RelCommon.Hint.SavedComputationR\x11savedComputations\x12X\n\x13loaded_computations\x18\x0c \x03(\x0b2\'.proto.RelCommon.Hint.LoadedComputationR\x12loadedComputations\x1a\x99\x01\n\x05Stats\x12\x1b\n\trow_count\x18\x01 \x01(\x01R\x08rowCount\x12\x1f\n\x0brecord_size\x18\x02 \x01(\x01R\nrecordSize\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1ag\n\x11RuntimeConstraint\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xc8\x01\n\x10SavedComputation\x12%\n\x0ecomputation_id\x18\x01 \x01(\x05R\rcomputationId\x129\n\x04type\x18\x02 \x01(\x0e2%.proto.RelCommon.Hint.ComputationTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xdc\x01\n\x11LoadedComputation\x128\n\x18computation_id_reference\x18\x01 \x01(\x05R\x16computationIdReference\x129\n\x04type\x18\x02 \x01(\x0e2%.proto.RelCommon.Hint.ComputationTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\x95\x01\n\x0fComputationType\x12 \n\x1cCOMPUTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aCOMPUTATION_TYPE_HASHTABLE\x10\x01\x12!\n\x1dCOMPUTATION_TYPE_BLOOM_FILTER\x10\x02\x12\x1d\n\x18COMPUTATION_TYPE_UNKNOWN\x10\x8fNB\x0b\n\temit_kind"\x85\x14\n\x07ReadRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x123\n\x0bbase_schema\x18\x02 \x01(\x0b2\x12.proto.NamedStructR\nbaseSchema\x12)\n\x06filter\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x06filter\x12?\n\x12best_effort_filter\x18\x0b \x01(\x0b2\x11.proto.ExpressionR\x10bestEffortFilter\x12@\n\nprojection\x18\x04 \x01(\x0b2 .proto.Expression.MaskExpressionR\nprojection\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x12B\n\rvirtual_table\x18\x05 \x01(\x0b2\x1b.proto.ReadRel.VirtualTableH\x00R\x0cvirtualTable\x12<\n\x0blocal_files\x18\x06 \x01(\x0b2\x19.proto.ReadRel.LocalFilesH\x00R\nlocalFiles\x12<\n\x0bnamed_table\x18\x07 \x01(\x0b2\x19.proto.ReadRel.NamedTableH\x00R\nnamedTable\x12H\n\x0fextension_table\x18\x08 \x01(\x0b2\x1d.proto.ReadRel.ExtensionTableH\x00R\x0eextensionTable\x12B\n\riceberg_table\x18\t \x01(\x0b2\x1b.proto.ReadRel.IcebergTableH\x00R\x0cicebergTable\x1av\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xfc\x01\n\x0cIcebergTable\x12F\n\x06direct\x18\x01 \x01(\x0b2,.proto.ReadRel.IcebergTable.MetadataFileReadH\x00R\x06direct\x1a\x95\x01\n\x10MetadataFileRead\x12!\n\x0cmetadata_uri\x18\x01 \x01(\tR\x0bmetadataUri\x12!\n\x0bsnapshot_id\x18\x02 \x01(\tH\x00R\nsnapshotId\x12/\n\x12snapshot_timestamp\x18\x03 \x01(\x03H\x00R\x11snapshotTimestampB\n\n\x08snapshotB\x0c\n\ntable_type\x1a\x8f\x01\n\x0cVirtualTable\x12<\n\x06values\x18\x01 \x03(\x0b2 .proto.Expression.Literal.StructB\x02\x18\x01R\x06values\x12A\n\x0bexpressions\x18\x02 \x03(\x0b2\x1f.proto.Expression.Nested.StructR\x0bexpressions\x1a>\n\x0eExtensionTable\x12,\n\x06detail\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail\x1a\xf4\t\n\nLocalFiles\x12;\n\x05items\x18\x01 \x03(\x0b2%.proto.ReadRel.LocalFiles.FileOrFilesR\x05items\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xd4\x08\n\x0bFileOrFiles\x12\x1b\n\x08uri_path\x18\x01 \x01(\tH\x00R\x07uriPath\x12$\n\ruri_path_glob\x18\x02 \x01(\tH\x00R\x0buriPathGlob\x12\x1b\n\x08uri_file\x18\x03 \x01(\tH\x00R\x07uriFile\x12\x1f\n\nuri_folder\x18\x04 \x01(\tH\x00R\turiFolder\x12\'\n\x0fpartition_index\x18\x06 \x01(\x04R\x0epartitionIndex\x12\x14\n\x05start\x18\x07 \x01(\x04R\x05start\x12\x16\n\x06length\x18\x08 \x01(\x04R\x06length\x12T\n\x07parquet\x18\t \x01(\x0b28.proto.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptionsH\x01R\x07parquet\x12N\n\x05arrow\x18\n \x01(\x0b26.proto.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptionsH\x01R\x05arrow\x12H\n\x03orc\x18\x0b \x01(\x0b24.proto.ReadRel.LocalFiles.FileOrFiles.OrcReadOptionsH\x01R\x03orc\x124\n\textension\x18\x0c \x01(\x0b2\x14.google.protobuf.AnyH\x01R\textension\x12K\n\x04dwrf\x18\r \x01(\x0b25.proto.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptionsH\x01R\x04dwrf\x12]\n\x04text\x18\x0e \x01(\x0b2G.proto.ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptionsH\x01R\x04text\x1a\x14\n\x12ParquetReadOptions\x1a\x12\n\x10ArrowReadOptions\x1a\x10\n\x0eOrcReadOptions\x1a\x11\n\x0fDwrfReadOptions\x1a\xa1\x02\n!DelimiterSeparatedTextReadOptions\x12\'\n\x0ffield_delimiter\x18\x01 \x01(\tR\x0efieldDelimiter\x12"\n\rmax_line_size\x18\x02 \x01(\x04R\x0bmaxLineSize\x12\x14\n\x05quote\x18\x03 \x01(\tR\x05quote\x12/\n\x14header_lines_to_skip\x18\x04 \x01(\x04R\x11headerLinesToSkip\x12\x16\n\x06escape\x18\x05 \x01(\tR\x06escape\x126\n\x15value_treated_as_null\x18\x06 \x01(\tH\x00R\x12valueTreatedAsNull\x88\x01\x01B\x18\n\x16_value_treated_as_nullB\x0b\n\tpath_typeB\r\n\x0bfile_formatJ\x04\x08\x05\x10\x06R\x06formatB\x0b\n\tread_type"\xe1\x01\n\nProjectRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x123\n\x0bexpressions\x18\x03 \x03(\x0b2\x11.proto.ExpressionR\x0bexpressions\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xb1\x05\n\x07JoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x121\n\nexpression\x18\x04 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x12;\n\x10post_join_filter\x18\x05 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x12+\n\x04type\x18\x06 \x01(\x0e2\x17.proto.JoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x06\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x08\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\xca\x01\n\x08CrossRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xeb\x02\n\x08FetchRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12\x1c\n\x06offset\x18\x03 \x01(\x03B\x02\x18\x01H\x00R\x06offset\x124\n\x0boffset_expr\x18\x05 \x01(\x0b2\x11.proto.ExpressionH\x00R\noffsetExpr\x12\x1a\n\x05count\x18\x04 \x01(\x03B\x02\x18\x01H\x01R\x05count\x122\n\ncount_expr\x18\x06 \x01(\x0b2\x11.proto.ExpressionH\x01R\tcountExpr\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtensionB\r\n\x0boffset_modeB\x0c\n\ncount_mode"\xdf\x04\n\x0cAggregateRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12:\n\tgroupings\x18\x03 \x03(\x0b2\x1c.proto.AggregateRel.GroupingR\tgroupings\x127\n\x08measures\x18\x04 \x03(\x0b2\x1b.proto.AggregateRel.MeasureR\x08measures\x12D\n\x14grouping_expressions\x18\x05 \x03(\x0b2\x11.proto.ExpressionR\x13groupingExpressions\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x89\x01\n\x08Grouping\x12H\n\x14grouping_expressions\x18\x01 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x13groupingExpressions\x123\n\x15expression_references\x18\x02 \x03(\rR\x14expressionReferences\x1ah\n\x07Measure\x122\n\x07measure\x18\x01 \x01(\x0b2\x18.proto.AggregateFunctionR\x07measure\x12)\n\x06filter\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x06filter"\xca\x07\n\x1cConsistentPartitionWindowRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12`\n\x10window_functions\x18\x03 \x03(\x0b25.proto.ConsistentPartitionWindowRel.WindowRelFunctionR\x0fwindowFunctions\x12F\n\x15partition_expressions\x18\x04 \x03(\x0b2\x11.proto.ExpressionR\x14partitionExpressions\x12&\n\x05sorts\x18\x05 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xb7\x04\n\x11WindowRelFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\t \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12N\n\ninvocation\x18\n \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12G\n\x0blower_bound\x18\x05 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nupperBound\x12L\n\x0bbounds_type\x18\x0c \x01(\x0e2+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType"\xd1\x01\n\x07SortRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xdc\x01\n\tFilterRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12/\n\tcondition\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\tcondition\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xde\x03\n\x06SetRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12"\n\x06inputs\x18\x02 \x03(\x0b2\n.proto.RelR\x06inputs\x12#\n\x02op\x18\x03 \x01(\x0e2\x13.proto.SetRel.SetOpR\x02op\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\x8c\x02\n\x05SetOp\x12\x16\n\x12SET_OP_UNSPECIFIED\x10\x00\x12\x18\n\x14SET_OP_MINUS_PRIMARY\x10\x01\x12\x1c\n\x18SET_OP_MINUS_PRIMARY_ALL\x10\x07\x12\x19\n\x15SET_OP_MINUS_MULTISET\x10\x02\x12\x1f\n\x1bSET_OP_INTERSECTION_PRIMARY\x10\x03\x12 \n\x1cSET_OP_INTERSECTION_MULTISET\x10\x04\x12$\n SET_OP_INTERSECTION_MULTISET_ALL\x10\x08\x12\x19\n\x15SET_OP_UNION_DISTINCT\x10\x05\x12\x14\n\x10SET_OP_UNION_ALL\x10\x06"\x8e\x01\n\x12ExtensionSingleRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"j\n\x10ExtensionLeafRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12,\n\x06detail\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x8f\x01\n\x11ExtensionMultiRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12"\n\x06inputs\x18\x02 \x03(\x0b2\n.proto.RelR\x06inputs\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\xe9\x08\n\x0bExchangeRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12\'\n\x0fpartition_count\x18\x03 \x01(\x05R\x0epartitionCount\x12;\n\x07targets\x18\x04 \x03(\x0b2!.proto.ExchangeRel.ExchangeTargetR\x07targets\x12N\n\x11scatter_by_fields\x18\x05 \x01(\x0b2 .proto.ExchangeRel.ScatterFieldsH\x00R\x0fscatterByFields\x12P\n\rsingle_target\x18\x06 \x01(\x0b2).proto.ExchangeRel.SingleBucketExpressionH\x00R\x0csingleTarget\x12M\n\x0cmulti_target\x18\x07 \x01(\x0b2(.proto.ExchangeRel.MultiBucketExpressionH\x00R\x0bmultiTarget\x12@\n\x0bround_robin\x18\x08 \x01(\x0b2\x1d.proto.ExchangeRel.RoundRobinH\x00R\nroundRobin\x12<\n\tbroadcast\x18\t \x01(\x0b2\x1c.proto.ExchangeRel.BroadcastH\x00R\tbroadcast\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1aI\n\rScatterFields\x128\n\x06fields\x18\x01 \x03(\x0b2 .proto.Expression.FieldReferenceR\x06fields\x1aK\n\x16SingleBucketExpression\x121\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x1a|\n\x15MultiBucketExpression\x121\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x120\n\x14constrained_to_count\x18\x02 \x01(\x08R\x12constrainedToCount\x1a\x0b\n\tBroadcast\x1a"\n\nRoundRobin\x12\x14\n\x05exact\x18\x01 \x01(\x08R\x05exact\x1a\x8a\x01\n\x0eExchangeTarget\x12!\n\x0cpartition_id\x18\x01 \x03(\x05R\x0bpartitionId\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uri\x122\n\x08extended\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyH\x00R\x08extendedB\r\n\x0btarget_typeB\x0f\n\rexchange_kind"\xfc\x02\n\tExpandRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x124\n\x06fields\x18\x04 \x03(\x0b2\x1c.proto.ExpandRel.ExpandFieldR\x06fields\x1a\xa7\x01\n\x0bExpandField\x12J\n\x0fswitching_field\x18\x02 \x01(\x0b2\x1f.proto.ExpandRel.SwitchingFieldH\x00R\x0eswitchingField\x12>\n\x10consistent_field\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x00R\x0fconsistentFieldB\x0c\n\nfield_type\x1aC\n\x0eSwitchingField\x121\n\nduplicates\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\nduplicates"A\n\x07RelRoot\x12 \n\x05input\x18\x01 \x01(\x0b2\n.proto.RelR\x05input\x12\x14\n\x05names\x18\x02 \x03(\tR\x05names"\xd0\x08\n\x03Rel\x12$\n\x04read\x18\x01 \x01(\x0b2\x0e.proto.ReadRelH\x00R\x04read\x12*\n\x06filter\x18\x02 \x01(\x0b2\x10.proto.FilterRelH\x00R\x06filter\x12\'\n\x05fetch\x18\x03 \x01(\x0b2\x0f.proto.FetchRelH\x00R\x05fetch\x123\n\taggregate\x18\x04 \x01(\x0b2\x13.proto.AggregateRelH\x00R\taggregate\x12$\n\x04sort\x18\x05 \x01(\x0b2\x0e.proto.SortRelH\x00R\x04sort\x12$\n\x04join\x18\x06 \x01(\x0b2\x0e.proto.JoinRelH\x00R\x04join\x12-\n\x07project\x18\x07 \x01(\x0b2\x11.proto.ProjectRelH\x00R\x07project\x12!\n\x03set\x18\x08 \x01(\x0b2\r.proto.SetRelH\x00R\x03set\x12F\n\x10extension_single\x18\t \x01(\x0b2\x19.proto.ExtensionSingleRelH\x00R\x0fextensionSingle\x12C\n\x0fextension_multi\x18\n \x01(\x0b2\x18.proto.ExtensionMultiRelH\x00R\x0eextensionMulti\x12@\n\x0eextension_leaf\x18\x0b \x01(\x0b2\x17.proto.ExtensionLeafRelH\x00R\rextensionLeaf\x12\'\n\x05cross\x18\x0c \x01(\x0b2\x0f.proto.CrossRelH\x00R\x05cross\x123\n\treference\x18\x15 \x01(\x0b2\x13.proto.ReferenceRelH\x00R\treference\x12\'\n\x05write\x18\x13 \x01(\x0b2\x0f.proto.WriteRelH\x00R\x05write\x12!\n\x03ddl\x18\x14 \x01(\x0b2\r.proto.DdlRelH\x00R\x03ddl\x12*\n\x06update\x18\x16 \x01(\x0b2\x10.proto.UpdateRelH\x00R\x06update\x121\n\thash_join\x18\r \x01(\x0b2\x12.proto.HashJoinRelH\x00R\x08hashJoin\x124\n\nmerge_join\x18\x0e \x01(\x0b2\x13.proto.MergeJoinRelH\x00R\tmergeJoin\x12D\n\x10nested_loop_join\x18\x12 \x01(\x0b2\x18.proto.NestedLoopJoinRelH\x00R\x0enestedLoopJoin\x12=\n\x06window\x18\x11 \x01(\x0b2#.proto.ConsistentPartitionWindowRelH\x00R\x06window\x120\n\x08exchange\x18\x0f \x01(\x0b2\x12.proto.ExchangeRelH\x00R\x08exchange\x12*\n\x06expand\x18\x10 \x01(\x0b2\x10.proto.ExpandRelH\x00R\x06expandB\n\n\x08rel_type"|\n\x10NamedObjectWrite\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"?\n\x0fExtensionObject\x12,\n\x06detail\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x86\x06\n\x06DdlRel\x12<\n\x0cnamed_object\x18\x01 \x01(\x0b2\x17.proto.NamedObjectWriteH\x00R\x0bnamedObject\x12C\n\x10extension_object\x18\x02 \x01(\x0b2\x16.proto.ExtensionObjectH\x00R\x0fextensionObject\x125\n\x0ctable_schema\x18\x03 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12G\n\x0etable_defaults\x18\x04 \x01(\x0b2 .proto.Expression.Literal.StructR\rtableDefaults\x12/\n\x06object\x18\x05 \x01(\x0e2\x17.proto.DdlRel.DdlObjectR\x06object\x12#\n\x02op\x18\x06 \x01(\x0e2\x13.proto.DdlRel.DdlOpR\x02op\x123\n\x0fview_definition\x18\x07 \x01(\x0b2\n.proto.RelR\x0eviewDefinition\x12(\n\x06common\x18\x08 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12R\n\x12advanced_extension\x18\t \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"R\n\tDdlObject\x12\x1a\n\x16DDL_OBJECT_UNSPECIFIED\x10\x00\x12\x14\n\x10DDL_OBJECT_TABLE\x10\x01\x12\x13\n\x0fDDL_OBJECT_VIEW\x10\x02"\x8d\x01\n\x05DdlOp\x12\x16\n\x12DDL_OP_UNSPECIFIED\x10\x00\x12\x11\n\rDDL_OP_CREATE\x10\x01\x12\x1c\n\x18DDL_OP_CREATE_OR_REPLACE\x10\x02\x12\x10\n\x0cDDL_OP_ALTER\x10\x03\x12\x0f\n\x0bDDL_OP_DROP\x10\x04\x12\x18\n\x14DDL_OP_DROP_IF_EXIST\x10\x05B\x0c\n\nwrite_type"\x9b\x07\n\x08WriteRel\x12:\n\x0bnamed_table\x18\x01 \x01(\x0b2\x17.proto.NamedObjectWriteH\x00R\nnamedTable\x12A\n\x0fextension_table\x18\x02 \x01(\x0b2\x16.proto.ExtensionObjectH\x00R\x0eextensionTable\x125\n\x0ctable_schema\x18\x03 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12\'\n\x02op\x18\x04 \x01(\x0e2\x17.proto.WriteRel.WriteOpR\x02op\x12 \n\x05input\x18\x05 \x01(\x0b2\n.proto.RelR\x05input\x12;\n\x0bcreate_mode\x18\x08 \x01(\x0e2\x1a.proto.WriteRel.CreateModeR\ncreateMode\x122\n\x06output\x18\x06 \x01(\x0e2\x1a.proto.WriteRel.OutputModeR\x06output\x12(\n\x06common\x18\x07 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12R\n\x12advanced_extension\x18\t \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"u\n\x07WriteOp\x12\x18\n\x14WRITE_OP_UNSPECIFIED\x10\x00\x12\x13\n\x0fWRITE_OP_INSERT\x10\x01\x12\x13\n\x0fWRITE_OP_DELETE\x10\x02\x12\x13\n\x0fWRITE_OP_UPDATE\x10\x03\x12\x11\n\rWRITE_OP_CTAS\x10\x04"\xb1\x01\n\nCreateMode\x12\x1b\n\x17CREATE_MODE_UNSPECIFIED\x10\x00\x12 \n\x1cCREATE_MODE_APPEND_IF_EXISTS\x10\x01\x12!\n\x1dCREATE_MODE_REPLACE_IF_EXISTS\x10\x02\x12 \n\x1cCREATE_MODE_IGNORE_IF_EXISTS\x10\x03\x12\x1f\n\x1bCREATE_MODE_ERROR_IF_EXISTS\x10\x04"f\n\nOutputMode\x12\x1b\n\x17OUTPUT_MODE_UNSPECIFIED\x10\x00\x12\x19\n\x15OUTPUT_MODE_NO_OUTPUT\x10\x01\x12 \n\x1cOUTPUT_MODE_MODIFIED_RECORDS\x10\x02B\x0c\n\nwrite_type"\xd3\x03\n\tUpdateRel\x124\n\x0bnamed_table\x18\x01 \x01(\x0b2\x11.proto.NamedTableH\x00R\nnamedTable\x125\n\x0ctable_schema\x18\x02 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12/\n\tcondition\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\tcondition\x12N\n\x0ftransformations\x18\x04 \x03(\x0b2$.proto.UpdateRel.TransformExpressionR\x0ftransformations\x12R\n\x12advanced_extension\x18\x05 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1au\n\x13TransformExpression\x129\n\x0etransformation\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x0etransformation\x12#\n\rcolumn_target\x18\x02 \x01(\x05R\x0ccolumnTargetB\r\n\x0bupdate_type"v\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xab\x04\n\x11ComparisonJoinKey\x124\n\x04left\x18\x01 \x01(\x0b2 .proto.Expression.FieldReferenceR\x04left\x126\n\x05right\x18\x02 \x01(\x0b2 .proto.Expression.FieldReferenceR\x05right\x12G\n\ncomparison\x18\x03 \x01(\x0b2\'.proto.ComparisonJoinKey.ComparisonTypeR\ncomparison\x1a\xa5\x01\n\x0eComparisonType\x12G\n\x06simple\x18\x01 \x01(\x0e2-.proto.ComparisonJoinKey.SimpleComparisonTypeH\x00R\x06simple\x12<\n\x19custom_function_reference\x18\x02 \x01(\rH\x00R\x17customFunctionReferenceB\x0c\n\ninner_type"\xb6\x01\n\x14SimpleComparisonType\x12&\n"SIMPLE_COMPARISON_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19SIMPLE_COMPARISON_TYPE_EQ\x10\x01\x12/\n+SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM\x10\x02\x12&\n"SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL\x10\x03"\xd4\x07\n\x0bHashJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12A\n\tleft_keys\x18\x04 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12C\n\nright_keys\x18\x05 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b2\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x12/\n\x04type\x18\x07 \x01(\x0e2\x1b.proto.HashJoinRel.JoinTypeR\x04type\x12>\n\x0bbuild_input\x18\t \x01(\x0e2\x1d.proto.HashJoinRel.BuildInputR\nbuildInput\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"V\n\nBuildInput\x12\x1b\n\x17BUILD_INPUT_UNSPECIFIED\x10\x00\x12\x14\n\x10BUILD_INPUT_LEFT\x10\x01\x12\x15\n\x11BUILD_INPUT_RIGHT\x10\x02"\xbe\x06\n\x0cMergeJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12A\n\tleft_keys\x18\x04 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12C\n\nright_keys\x18\x05 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b2\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x120\n\x04type\x18\x07 \x01(\x0e2\x1c.proto.MergeJoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\x88\x05\n\x11NestedLoopJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x121\n\nexpression\x18\x04 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x125\n\x04type\x18\x05 \x01(\x0e2!.proto.NestedLoopJoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\x82\x01\n\x10FunctionArgument\x12\x14\n\x04enum\x18\x01 \x01(\tH\x00R\x04enum\x12!\n\x04type\x18\x02 \x01(\x0b2\x0b.proto.TypeH\x00R\x04type\x12)\n\x05value\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x00R\x05valueB\n\n\x08arg_type"D\n\x0eFunctionOption\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1e\n\npreference\x18\x02 \x03(\tR\npreference"\xdfW\n\nExpression\x125\n\x07literal\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralH\x00R\x07literal\x12@\n\tselection\x18\x02 \x01(\x0b2 .proto.Expression.FieldReferenceH\x00R\tselection\x12K\n\x0fscalar_function\x18\x03 \x01(\x0b2 .proto.Expression.ScalarFunctionH\x00R\x0escalarFunction\x12K\n\x0fwindow_function\x18\x05 \x01(\x0b2 .proto.Expression.WindowFunctionH\x00R\x0ewindowFunction\x123\n\x07if_then\x18\x06 \x01(\x0b2\x18.proto.Expression.IfThenH\x00R\x06ifThen\x12Q\n\x11switch_expression\x18\x07 \x01(\x0b2".proto.Expression.SwitchExpressionH\x00R\x10switchExpression\x12L\n\x10singular_or_list\x18\x08 \x01(\x0b2 .proto.Expression.SingularOrListH\x00R\x0esingularOrList\x12C\n\rmulti_or_list\x18\t \x01(\x0b2\x1d.proto.Expression.MultiOrListH\x00R\x0bmultiOrList\x12,\n\x04cast\x18\x0b \x01(\x0b2\x16.proto.Expression.CastH\x00R\x04cast\x128\n\x08subquery\x18\x0c \x01(\x0b2\x1a.proto.Expression.SubqueryH\x00R\x08subquery\x122\n\x06nested\x18\r \x01(\x0b2\x18.proto.Expression.NestedH\x00R\x06nested\x12F\n\x11dynamic_parameter\x18\x0e \x01(\x0b2\x17.proto.DynamicParameterH\x00R\x10dynamicParameter\x120\n\x04enum\x18\n \x01(\x0b2\x16.proto.Expression.EnumB\x02\x18\x01H\x00R\x04enum\x1a\x86\x01\n\x04Enum\x12\x1e\n\tspecified\x18\x01 \x01(\tH\x00R\tspecified\x12@\n\x0bunspecified\x18\x02 \x01(\x0b2\x1c.proto.Expression.Enum.EmptyH\x00R\x0bunspecified\x1a\x0b\n\x05Empty:\x02\x18\x01:\x02\x18\x01B\x0b\n\tenum_kind\x1a\xde\x16\n\x07Literal\x12\x1a\n\x07boolean\x18\x01 \x01(\x08H\x00R\x07boolean\x12\x10\n\x02i8\x18\x02 \x01(\x05H\x00R\x02i8\x12\x12\n\x03i16\x18\x03 \x01(\x05H\x00R\x03i16\x12\x12\n\x03i32\x18\x05 \x01(\x05H\x00R\x03i32\x12\x12\n\x03i64\x18\x07 \x01(\x03H\x00R\x03i64\x12\x14\n\x04fp32\x18\n \x01(\x02H\x00R\x04fp32\x12\x14\n\x04fp64\x18\x0b \x01(\x01H\x00R\x04fp64\x12\x18\n\x06string\x18\x0c \x01(\tH\x00R\x06string\x12\x18\n\x06binary\x18\r \x01(\x0cH\x00R\x06binary\x12"\n\ttimestamp\x18\x0e \x01(\x03B\x02\x18\x01H\x00R\ttimestamp\x12\x14\n\x04date\x18\x10 \x01(\x05H\x00R\x04date\x12\x14\n\x04time\x18\x11 \x01(\x03H\x00R\x04time\x12d\n\x16interval_year_to_month\x18\x13 \x01(\x0b2-.proto.Expression.Literal.IntervalYearToMonthH\x00R\x13intervalYearToMonth\x12d\n\x16interval_day_to_second\x18\x14 \x01(\x0b2-.proto.Expression.Literal.IntervalDayToSecondH\x00R\x13intervalDayToSecond\x12Y\n\x11interval_compound\x18$ \x01(\x0b2*.proto.Expression.Literal.IntervalCompoundH\x00R\x10intervalCompound\x12\x1f\n\nfixed_char\x18\x15 \x01(\tH\x00R\tfixedChar\x12>\n\x08var_char\x18\x16 \x01(\x0b2!.proto.Expression.Literal.VarCharH\x00R\x07varChar\x12#\n\x0cfixed_binary\x18\x17 \x01(\x0cH\x00R\x0bfixedBinary\x12=\n\x07decimal\x18\x18 \x01(\x0b2!.proto.Expression.Literal.DecimalH\x00R\x07decimal\x12P\n\x0eprecision_time\x18% \x01(\x0b2\'.proto.Expression.Literal.PrecisionTimeH\x00R\rprecisionTime\x12_\n\x13precision_timestamp\x18" \x01(\x0b2,.proto.Expression.Literal.PrecisionTimestampH\x00R\x12precisionTimestamp\x12d\n\x16precision_timestamp_tz\x18# \x01(\x0b2,.proto.Expression.Literal.PrecisionTimestampH\x00R\x14precisionTimestampTz\x12:\n\x06struct\x18\x19 \x01(\x0b2 .proto.Expression.Literal.StructH\x00R\x06struct\x121\n\x03map\x18\x1a \x01(\x0b2\x1d.proto.Expression.Literal.MapH\x00R\x03map\x12\'\n\x0ctimestamp_tz\x18\x1b \x01(\x03B\x02\x18\x01H\x00R\x0btimestampTz\x12\x14\n\x04uuid\x18\x1c \x01(\x0cH\x00R\x04uuid\x12!\n\x04null\x18\x1d \x01(\x0b2\x0b.proto.TypeH\x00R\x04null\x124\n\x04list\x18\x1e \x01(\x0b2\x1e.proto.Expression.Literal.ListH\x00R\x04list\x121\n\nempty_list\x18\x1f \x01(\x0b2\x10.proto.Type.ListH\x00R\temptyList\x12.\n\tempty_map\x18 \x01(\x0b2\x0f.proto.Type.MapH\x00R\x08emptyMap\x12J\n\x0cuser_defined\x18! \x01(\x0b2%.proto.Expression.Literal.UserDefinedH\x00R\x0buserDefined\x12\x1a\n\x08nullable\x182 \x01(\x08R\x08nullable\x128\n\x18type_variation_reference\x183 \x01(\rR\x16typeVariationReference\x1a7\n\x07VarChar\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x12\x16\n\x06length\x18\x02 \x01(\rR\x06length\x1aS\n\x07Decimal\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x12\x14\n\x05scale\x18\x03 \x01(\x05R\x05scale\x1aC\n\rPrecisionTime\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1aH\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1a\xb6\x01\n\x03Map\x12E\n\nkey_values\x18\x01 \x03(\x0b2&.proto.Expression.Literal.Map.KeyValueR\tkeyValues\x1ah\n\x08KeyValue\x12+\n\x03key\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b2\x19.proto.Expression.LiteralR\x05value\x1aC\n\x13IntervalYearToMonth\x12\x14\n\x05years\x18\x01 \x01(\x05R\x05years\x12\x16\n\x06months\x18\x02 \x01(\x05R\x06months\x1a\xbf\x01\n\x13IntervalDayToSecond\x12\x12\n\x04days\x18\x01 \x01(\x05R\x04days\x12\x18\n\x07seconds\x18\x02 \x01(\x05R\x07seconds\x12(\n\x0cmicroseconds\x18\x03 \x01(\x05B\x02\x18\x01H\x00R\x0cmicroseconds\x12\x1e\n\tprecision\x18\x04 \x01(\x05H\x00R\tprecision\x12\x1e\n\nsubseconds\x18\x05 \x01(\x03R\nsubsecondsB\x10\n\x0eprecision_mode\x1a\xda\x01\n\x10IntervalCompound\x12b\n\x16interval_year_to_month\x18\x01 \x01(\x0b2-.proto.Expression.Literal.IntervalYearToMonthR\x13intervalYearToMonth\x12b\n\x16interval_day_to_second\x18\x02 \x01(\x0b2-.proto.Expression.Literal.IntervalDayToSecondR\x13intervalDayToSecond\x1a;\n\x06Struct\x121\n\x06fields\x18\x01 \x03(\x0b2\x19.proto.Expression.LiteralR\x06fields\x1a9\n\x04List\x121\n\x06values\x18\x01 \x03(\x0b2\x19.proto.Expression.LiteralR\x06values\x1a\xe5\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x12>\n\x0ftype_parameters\x18\x03 \x03(\x0b2\x15.proto.Type.ParameterR\x0etypeParameters\x12,\n\x05value\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyH\x00R\x05value\x12:\n\x06struct\x18\x04 \x01(\x0b2 .proto.Expression.Literal.StructH\x00R\x06structB\x05\n\x03valB\x0e\n\x0cliteral_type\x1a\x9f\x04\n\x06Nested\x12\x1a\n\x08nullable\x18\x01 \x01(\x08R\x08nullable\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x06struct\x18\x03 \x01(\x0b2\x1f.proto.Expression.Nested.StructH\x00R\x06struct\x123\n\x04list\x18\x04 \x01(\x0b2\x1d.proto.Expression.Nested.ListH\x00R\x04list\x120\n\x03map\x18\x05 \x01(\x0b2\x1c.proto.Expression.Nested.MapH\x00R\x03map\x1a\xa5\x01\n\x03Map\x12D\n\nkey_values\x18\x01 \x03(\x0b2%.proto.Expression.Nested.Map.KeyValueR\tkeyValues\x1aX\n\x08KeyValue\x12#\n\x03key\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x03key\x12\'\n\x05value\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x05value\x1a3\n\x06Struct\x12)\n\x06fields\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06fields\x1a1\n\x04List\x12)\n\x06values\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06valuesB\r\n\x0bnested_type\x1a\x80\x02\n\x0eScalarFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\x04 \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x05 \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x03 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12)\n\x04args\x18\x02 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args\x1a\xd5\t\n\x0eWindowFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\t \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\n \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x121\n\npartitions\x18\x02 \x03(\x0b2\x11.proto.ExpressionR\npartitions\x12L\n\x0bbounds_type\x18\x0c \x01(\x0e2+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType\x12G\n\x0blower_bound\x18\x05 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nupperBound\x12)\n\x04args\x18\x08 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args\x1a\xc0\x03\n\x05Bound\x12P\n\tpreceding\x18\x01 \x01(\x0b20.proto.Expression.WindowFunction.Bound.PrecedingH\x00R\tpreceding\x12P\n\tfollowing\x18\x02 \x01(\x0b20.proto.Expression.WindowFunction.Bound.FollowingH\x00R\tfollowing\x12T\n\x0bcurrent_row\x18\x03 \x01(\x0b21.proto.Expression.WindowFunction.Bound.CurrentRowH\x00R\ncurrentRow\x12P\n\tunbounded\x18\x04 \x01(\x0b20.proto.Expression.WindowFunction.Bound.UnboundedH\x00R\tunbounded\x1a#\n\tPreceding\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a#\n\tFollowing\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a\x0c\n\nCurrentRow\x1a\x0b\n\tUnboundedB\x06\n\x04kind"V\n\nBoundsType\x12\x1b\n\x17BOUNDS_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10BOUNDS_TYPE_ROWS\x10\x01\x12\x15\n\x11BOUNDS_TYPE_RANGE\x10\x02\x1a\xba\x01\n\x06IfThen\x123\n\x03ifs\x18\x01 \x03(\x0b2!.proto.Expression.IfThen.IfClauseR\x03ifs\x12%\n\x04else\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04else\x1aT\n\x08IfClause\x12!\n\x02if\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04then\x1a\xa0\x02\n\x04Cast\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x12\'\n\x05input\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x05input\x12Q\n\x10failure_behavior\x18\x03 \x01(\x0e2&.proto.Expression.Cast.FailureBehaviorR\x0ffailureBehavior"{\n\x0fFailureBehavior\x12 \n\x1cFAILURE_BEHAVIOR_UNSPECIFIED\x10\x00\x12 \n\x1cFAILURE_BEHAVIOR_RETURN_NULL\x10\x01\x12$\n FAILURE_BEHAVIOR_THROW_EXCEPTION\x10\x02\x1a\xfd\x01\n\x10SwitchExpression\x12\'\n\x05match\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x05match\x12<\n\x03ifs\x18\x01 \x03(\x0b2*.proto.Expression.SwitchExpression.IfValueR\x03ifs\x12%\n\x04else\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04else\x1a[\n\x07IfValue\x12)\n\x02if\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04then\x1af\n\x0eSingularOrList\x12\'\n\x05value\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x05value\x12+\n\x07options\x18\x02 \x03(\x0b2\x11.proto.ExpressionR\x07options\x1a\xab\x01\n\x0bMultiOrList\x12\'\n\x05value\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x05value\x12>\n\x07options\x18\x02 \x03(\x0b2$.proto.Expression.MultiOrList.RecordR\x07options\x1a3\n\x06Record\x12)\n\x06fields\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06fields\x1a\x83\x04\n\x10EmbeddedFunction\x12/\n\targuments\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\targuments\x12,\n\x0boutput_type\x18\x02 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12o\n\x16python_pickle_function\x18\x03 \x01(\x0b27.proto.Expression.EmbeddedFunction.PythonPickleFunctionH\x00R\x14pythonPickleFunction\x12l\n\x15web_assembly_function\x18\x04 \x01(\x0b26.proto.Expression.EmbeddedFunction.WebAssemblyFunctionH\x00R\x13webAssemblyFunction\x1aV\n\x14PythonPickleFunction\x12\x1a\n\x08function\x18\x01 \x01(\x0cR\x08function\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisite\x1aQ\n\x13WebAssemblyFunction\x12\x16\n\x06script\x18\x01 \x01(\x0cR\x06script\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisiteB\x06\n\x04kind\x1a\xcc\x04\n\x10ReferenceSegment\x12D\n\x07map_key\x18\x01 \x01(\x0b2).proto.Expression.ReferenceSegment.MapKeyH\x00R\x06mapKey\x12S\n\x0cstruct_field\x18\x02 \x01(\x0b2..proto.Expression.ReferenceSegment.StructFieldH\x00R\x0bstructField\x12S\n\x0clist_element\x18\x03 \x01(\x0b2..proto.Expression.ReferenceSegment.ListElementH\x00R\x0blistElement\x1av\n\x06MapKey\x122\n\x07map_key\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x06mapKey\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05child\x1a]\n\x0bStructField\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05child\x1a_\n\x0bListElement\x12\x16\n\x06offset\x18\x01 \x01(\x05R\x06offset\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05childB\x10\n\x0ereference_type\x1a\xee\n\n\x0eMaskExpression\x12E\n\x06select\x18\x01 \x01(\x0b2-.proto.Expression.MaskExpression.StructSelectR\x06select\x128\n\x18maintain_singular_struct\x18\x02 \x01(\x08R\x16maintainSingularStruct\x1a\xdc\x01\n\x06Select\x12G\n\x06struct\x18\x01 \x01(\x0b2-.proto.Expression.MaskExpression.StructSelectH\x00R\x06struct\x12A\n\x04list\x18\x02 \x01(\x0b2+.proto.Expression.MaskExpression.ListSelectH\x00R\x04list\x12>\n\x03map\x18\x03 \x01(\x0b2*.proto.Expression.MaskExpression.MapSelectH\x00R\x03mapB\x06\n\x04type\x1a^\n\x0cStructSelect\x12N\n\x0cstruct_items\x18\x01 \x03(\x0b2+.proto.Expression.MaskExpression.StructItemR\x0bstructItems\x1aa\n\nStructItem\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x12=\n\x05child\x18\x02 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a\xd6\x03\n\nListSelect\x12X\n\tselection\x18\x01 \x03(\x0b2:.proto.Expression.MaskExpression.ListSelect.ListSelectItemR\tselection\x12=\n\x05child\x18\x02 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a\xae\x02\n\x0eListSelectItem\x12\\\n\x04item\x18\x01 \x01(\x0b2F.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListElementH\x00R\x04item\x12\\\n\x05slice\x18\x02 \x01(\x0b2D.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListSliceH\x00R\x05slice\x1a#\n\x0bListElement\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x1a3\n\tListSlice\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03end\x18\x02 \x01(\x05R\x03endB\x06\n\x04type\x1a\xdf\x02\n\tMapSelect\x12E\n\x03key\x18\x01 \x01(\x0b21.proto.Expression.MaskExpression.MapSelect.MapKeyH\x00R\x03key\x12]\n\nexpression\x18\x02 \x01(\x0b2;.proto.Expression.MaskExpression.MapSelect.MapKeyExpressionH\x00R\nexpression\x12=\n\x05child\x18\x03 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a!\n\x06MapKey\x12\x17\n\x07map_key\x18\x01 \x01(\tR\x06mapKey\x1a@\n\x10MapKeyExpression\x12,\n\x12map_key_expression\x18\x01 \x01(\tR\x10mapKeyExpressionB\x08\n\x06select\x1a\xf9\x03\n\x0eFieldReference\x12O\n\x10direct_reference\x18\x01 \x01(\x0b2".proto.Expression.ReferenceSegmentH\x00R\x0fdirectReference\x12M\n\x10masked_reference\x18\x02 \x01(\x0b2 .proto.Expression.MaskExpressionH\x00R\x0fmaskedReference\x123\n\nexpression\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x01R\nexpression\x12W\n\x0eroot_reference\x18\x04 \x01(\x0b2..proto.Expression.FieldReference.RootReferenceH\x01R\rrootReference\x12Z\n\x0fouter_reference\x18\x05 \x01(\x0b2/.proto.Expression.FieldReference.OuterReferenceH\x01R\x0eouterReference\x1a\x0f\n\rRootReference\x1a-\n\x0eOuterReference\x12\x1b\n\tsteps_out\x18\x01 \x01(\rR\x08stepsOutB\x10\n\x0ereference_typeB\x0b\n\troot_type\x1a\xe1\t\n\x08Subquery\x12;\n\x06scalar\x18\x01 \x01(\x0b2!.proto.Expression.Subquery.ScalarH\x00R\x06scalar\x12K\n\x0cin_predicate\x18\x02 \x01(\x0b2&.proto.Expression.Subquery.InPredicateH\x00R\x0binPredicate\x12N\n\rset_predicate\x18\x03 \x01(\x0b2\'.proto.Expression.Subquery.SetPredicateH\x00R\x0csetPredicate\x12Q\n\x0eset_comparison\x18\x04 \x01(\x0b2(.proto.Expression.Subquery.SetComparisonH\x00R\rsetComparison\x1a*\n\x06Scalar\x12 \n\x05input\x18\x01 \x01(\x0b2\n.proto.RelR\x05input\x1ab\n\x0bInPredicate\x12+\n\x07needles\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x07needles\x12&\n\x08haystack\x18\x02 \x01(\x0b2\n.proto.RelR\x08haystack\x1a\xe9\x01\n\x0cSetPredicate\x12V\n\x0cpredicate_op\x18\x01 \x01(\x0e23.proto.Expression.Subquery.SetPredicate.PredicateOpR\x0bpredicateOp\x12"\n\x06tuples\x18\x02 \x01(\x0b2\n.proto.RelR\x06tuples"]\n\x0bPredicateOp\x12\x1c\n\x18PREDICATE_OP_UNSPECIFIED\x10\x00\x12\x17\n\x13PREDICATE_OP_EXISTS\x10\x01\x12\x17\n\x13PREDICATE_OP_UNIQUE\x10\x02\x1a\x9a\x04\n\rSetComparison\x12W\n\x0creduction_op\x18\x01 \x01(\x0e24.proto.Expression.Subquery.SetComparison.ReductionOpR\x0breductionOp\x12Z\n\rcomparison_op\x18\x02 \x01(\x0e25.proto.Expression.Subquery.SetComparison.ComparisonOpR\x0ccomparisonOp\x12%\n\x04left\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x04left\x12 \n\x05right\x18\x04 \x01(\x0b2\n.proto.RelR\x05right"\xb1\x01\n\x0cComparisonOp\x12\x1d\n\x19COMPARISON_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10COMPARISON_OP_EQ\x10\x01\x12\x14\n\x10COMPARISON_OP_NE\x10\x02\x12\x14\n\x10COMPARISON_OP_LT\x10\x03\x12\x14\n\x10COMPARISON_OP_GT\x10\x04\x12\x14\n\x10COMPARISON_OP_LE\x10\x05\x12\x14\n\x10COMPARISON_OP_GE\x10\x06"W\n\x0bReductionOp\x12\x1c\n\x18REDUCTION_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10REDUCTION_OP_ANY\x10\x01\x12\x14\n\x10REDUCTION_OP_ALL\x10\x02B\x0f\n\rsubquery_typeB\n\n\x08rex_type"d\n\x10DynamicParameter\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x12/\n\x13parameter_reference\x18\x02 \x01(\rR\x12parameterReference"\xa5\x03\n\tSortField\x12%\n\x04expr\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x04expr\x12>\n\tdirection\x18\x02 \x01(\x0e2\x1e.proto.SortField.SortDirectionH\x00R\tdirection\x12D\n\x1dcomparison_function_reference\x18\x03 \x01(\rH\x00R\x1bcomparisonFunctionReference"\xdd\x01\n\rSortDirection\x12\x1e\n\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12"\n\x1eSORT_DIRECTION_ASC_NULLS_FIRST\x10\x01\x12!\n\x1dSORT_DIRECTION_ASC_NULLS_LAST\x10\x02\x12#\n\x1fSORT_DIRECTION_DESC_NULLS_FIRST\x10\x03\x12"\n\x1eSORT_DIRECTION_DESC_NULLS_LAST\x10\x04\x12\x1c\n\x18SORT_DIRECTION_CLUSTERED\x10\x05B\x0b\n\tsort_kind"\xb1\x04\n\x11AggregateFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\x07 \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x08 \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x05 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x04 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\x06 \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12)\n\x04args\x18\x02 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args"\x84\x01\n\x15AggregationInvocation\x12&\n"AGGREGATION_INVOCATION_UNSPECIFIED\x10\x00\x12\x1e\n\x1aAGGREGATION_INVOCATION_ALL\x10\x01\x12#\n\x1fAGGREGATION_INVOCATION_DISTINCT\x10\x02"7\n\x0cReferenceRel\x12\'\n\x0fsubtree_ordinal\x18\x01 \x01(\x05R\x0esubtreeOrdinal*\xef\x01\n\x10AggregationPhase\x12!\n\x1dAGGREGATION_PHASE_UNSPECIFIED\x10\x00\x12-\n)AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE\x10\x01\x122\n.AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE\x10\x02\x12\'\n#AGGREGATION_PHASE_INITIAL_TO_RESULT\x10\x03\x12,\n(AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT\x10\x04B#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.algebra_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _READREL_VIRTUALTABLE.fields_by_name['values']._options = None + _READREL_VIRTUALTABLE.fields_by_name['values']._serialized_options = b'\x18\x01' + _FETCHREL.fields_by_name['offset']._options = None + _FETCHREL.fields_by_name['offset']._serialized_options = b'\x18\x01' + _FETCHREL.fields_by_name['count']._options = None + _FETCHREL.fields_by_name['count']._serialized_options = b'\x18\x01' + _AGGREGATEREL_GROUPING.fields_by_name['grouping_expressions']._options = None + _AGGREGATEREL_GROUPING.fields_by_name['grouping_expressions']._serialized_options = b'\x18\x01' + _HASHJOINREL.fields_by_name['left_keys']._options = None + _HASHJOINREL.fields_by_name['left_keys']._serialized_options = b'\x18\x01' + _HASHJOINREL.fields_by_name['right_keys']._options = None + _HASHJOINREL.fields_by_name['right_keys']._serialized_options = b'\x18\x01' + _MERGEJOINREL.fields_by_name['left_keys']._options = None + _MERGEJOINREL.fields_by_name['left_keys']._serialized_options = b'\x18\x01' + _MERGEJOINREL.fields_by_name['right_keys']._options = None + _MERGEJOINREL.fields_by_name['right_keys']._serialized_options = b'\x18\x01' + _EXPRESSION_ENUM_EMPTY._options = None + _EXPRESSION_ENUM_EMPTY._serialized_options = b'\x18\x01' + _EXPRESSION_ENUM._options = None + _EXPRESSION_ENUM._serialized_options = b'\x18\x01' + _EXPRESSION_LITERAL_INTERVALDAYTOSECOND.fields_by_name['microseconds']._options = None + _EXPRESSION_LITERAL_INTERVALDAYTOSECOND.fields_by_name['microseconds']._serialized_options = b'\x18\x01' + _EXPRESSION_LITERAL.fields_by_name['timestamp']._options = None + _EXPRESSION_LITERAL.fields_by_name['timestamp']._serialized_options = b'\x18\x01' + _EXPRESSION_LITERAL.fields_by_name['timestamp_tz']._options = None + _EXPRESSION_LITERAL.fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' + _EXPRESSION_SCALARFUNCTION.fields_by_name['args']._options = None + _EXPRESSION_SCALARFUNCTION.fields_by_name['args']._serialized_options = b'\x18\x01' + _EXPRESSION_WINDOWFUNCTION.fields_by_name['args']._options = None + _EXPRESSION_WINDOWFUNCTION.fields_by_name['args']._serialized_options = b'\x18\x01' + _EXPRESSION.fields_by_name['enum']._options = None + _EXPRESSION.fields_by_name['enum']._serialized_options = b'\x18\x01' + _AGGREGATEFUNCTION.fields_by_name['args']._options = None + _AGGREGATEFUNCTION.fields_by_name['args']._serialized_options = b'\x18\x01' + _AGGREGATIONPHASE._serialized_start = 29447 + _AGGREGATIONPHASE._serialized_end = 29686 + _RELCOMMON._serialized_start = 111 + _RELCOMMON._serialized_end = 1705 + _RELCOMMON_DIRECT._serialized_start = 347 + _RELCOMMON_DIRECT._serialized_end = 355 + _RELCOMMON_EMIT._serialized_start = 357 + _RELCOMMON_EMIT._serialized_end = 402 + _RELCOMMON_HINT._serialized_start = 405 + _RELCOMMON_HINT._serialized_end = 1692 + _RELCOMMON_HINT_STATS._serialized_start = 856 + _RELCOMMON_HINT_STATS._serialized_end = 1009 + _RELCOMMON_HINT_RUNTIMECONSTRAINT._serialized_start = 1011 + _RELCOMMON_HINT_RUNTIMECONSTRAINT._serialized_end = 1114 + _RELCOMMON_HINT_SAVEDCOMPUTATION._serialized_start = 1117 + _RELCOMMON_HINT_SAVEDCOMPUTATION._serialized_end = 1317 + _RELCOMMON_HINT_LOADEDCOMPUTATION._serialized_start = 1320 + _RELCOMMON_HINT_LOADEDCOMPUTATION._serialized_end = 1540 + _RELCOMMON_HINT_COMPUTATIONTYPE._serialized_start = 1543 + _RELCOMMON_HINT_COMPUTATIONTYPE._serialized_end = 1692 + _READREL._serialized_start = 1708 + _READREL._serialized_end = 4273 + _READREL_NAMEDTABLE._serialized_start = 2406 + _READREL_NAMEDTABLE._serialized_end = 2524 + _READREL_ICEBERGTABLE._serialized_start = 2527 + _READREL_ICEBERGTABLE._serialized_end = 2779 + _READREL_ICEBERGTABLE_METADATAFILEREAD._serialized_start = 2616 + _READREL_ICEBERGTABLE_METADATAFILEREAD._serialized_end = 2765 + _READREL_VIRTUALTABLE._serialized_start = 2782 + _READREL_VIRTUALTABLE._serialized_end = 2925 + _READREL_EXTENSIONTABLE._serialized_start = 2927 + _READREL_EXTENSIONTABLE._serialized_end = 2989 + _READREL_LOCALFILES._serialized_start = 2992 + _READREL_LOCALFILES._serialized_end = 4260 + _READREL_LOCALFILES_FILEORFILES._serialized_start = 3152 + _READREL_LOCALFILES_FILEORFILES._serialized_end = 4260 + _READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS._serialized_start = 3849 + _READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS._serialized_end = 3869 + _READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS._serialized_start = 3871 + _READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS._serialized_end = 3889 + _READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS._serialized_start = 3891 + _READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS._serialized_end = 3907 + _READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS._serialized_start = 3909 + _READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS._serialized_end = 3926 + _READREL_LOCALFILES_FILEORFILES_DELIMITERSEPARATEDTEXTREADOPTIONS._serialized_start = 3929 + _READREL_LOCALFILES_FILEORFILES_DELIMITERSEPARATEDTEXTREADOPTIONS._serialized_end = 4218 + _PROJECTREL._serialized_start = 4276 + _PROJECTREL._serialized_end = 4501 + _JOINREL._serialized_start = 4504 + _JOINREL._serialized_end = 5193 + _JOINREL_JOINTYPE._serialized_start = 4865 + _JOINREL_JOINTYPE._serialized_end = 5193 + _CROSSREL._serialized_start = 5196 + _CROSSREL._serialized_end = 5398 + _FETCHREL._serialized_start = 5401 + _FETCHREL._serialized_end = 5764 + _AGGREGATEREL._serialized_start = 5767 + _AGGREGATEREL._serialized_end = 6374 + _AGGREGATEREL_GROUPING._serialized_start = 6131 + _AGGREGATEREL_GROUPING._serialized_end = 6268 + _AGGREGATEREL_MEASURE._serialized_start = 6270 + _AGGREGATEREL_MEASURE._serialized_end = 6374 + _CONSISTENTPARTITIONWINDOWREL._serialized_start = 6377 + _CONSISTENTPARTITIONWINDOWREL._serialized_end = 7347 + _CONSISTENTPARTITIONWINDOWREL_WINDOWRELFUNCTION._serialized_start = 6780 + _CONSISTENTPARTITIONWINDOWREL_WINDOWRELFUNCTION._serialized_end = 7347 + _SORTREL._serialized_start = 7350 + _SORTREL._serialized_end = 7559 + _FILTERREL._serialized_start = 7562 + _FILTERREL._serialized_end = 7782 + _SETREL._serialized_start = 7785 + _SETREL._serialized_end = 8263 + _SETREL_SETOP._serialized_start = 7995 + _SETREL_SETOP._serialized_end = 8263 + _EXTENSIONSINGLEREL._serialized_start = 8266 + _EXTENSIONSINGLEREL._serialized_end = 8408 + _EXTENSIONLEAFREL._serialized_start = 8410 + _EXTENSIONLEAFREL._serialized_end = 8516 + _EXTENSIONMULTIREL._serialized_start = 8519 + _EXTENSIONMULTIREL._serialized_end = 8662 + _EXCHANGEREL._serialized_start = 8665 + _EXCHANGEREL._serialized_end = 9794 + _EXCHANGEREL_SCATTERFIELDS._serialized_start = 9311 + _EXCHANGEREL_SCATTERFIELDS._serialized_end = 9384 + _EXCHANGEREL_SINGLEBUCKETEXPRESSION._serialized_start = 9386 + _EXCHANGEREL_SINGLEBUCKETEXPRESSION._serialized_end = 9461 + _EXCHANGEREL_MULTIBUCKETEXPRESSION._serialized_start = 9463 + _EXCHANGEREL_MULTIBUCKETEXPRESSION._serialized_end = 9587 + _EXCHANGEREL_BROADCAST._serialized_start = 9589 + _EXCHANGEREL_BROADCAST._serialized_end = 9600 + _EXCHANGEREL_ROUNDROBIN._serialized_start = 9602 + _EXCHANGEREL_ROUNDROBIN._serialized_end = 9636 + _EXCHANGEREL_EXCHANGETARGET._serialized_start = 9639 + _EXCHANGEREL_EXCHANGETARGET._serialized_end = 9777 + _EXPANDREL._serialized_start = 9797 + _EXPANDREL._serialized_end = 10177 + _EXPANDREL_EXPANDFIELD._serialized_start = 9941 + _EXPANDREL_EXPANDFIELD._serialized_end = 10108 + _EXPANDREL_SWITCHINGFIELD._serialized_start = 10110 + _EXPANDREL_SWITCHINGFIELD._serialized_end = 10177 + _RELROOT._serialized_start = 10179 + _RELROOT._serialized_end = 10244 + _REL._serialized_start = 10247 + _REL._serialized_end = 11351 + _NAMEDOBJECTWRITE._serialized_start = 11353 + _NAMEDOBJECTWRITE._serialized_end = 11477 + _EXTENSIONOBJECT._serialized_start = 11479 + _EXTENSIONOBJECT._serialized_end = 11542 + _DDLREL._serialized_start = 11545 + _DDLREL._serialized_end = 12319 + _DDLREL_DDLOBJECT._serialized_start = 12079 + _DDLREL_DDLOBJECT._serialized_end = 12161 + _DDLREL_DDLOP._serialized_start = 12164 + _DDLREL_DDLOP._serialized_end = 12305 + _WRITEREL._serialized_start = 12322 + _WRITEREL._serialized_end = 13245 + _WRITEREL_WRITEOP._serialized_start = 12830 + _WRITEREL_WRITEOP._serialized_end = 12947 + _WRITEREL_CREATEMODE._serialized_start = 12950 + _WRITEREL_CREATEMODE._serialized_end = 13127 + _WRITEREL_OUTPUTMODE._serialized_start = 13129 + _WRITEREL_OUTPUTMODE._serialized_end = 13231 + _UPDATEREL._serialized_start = 13248 + _UPDATEREL._serialized_end = 13715 + _UPDATEREL_TRANSFORMEXPRESSION._serialized_start = 13583 + _UPDATEREL_TRANSFORMEXPRESSION._serialized_end = 13700 + _NAMEDTABLE._serialized_start = 2406 + _NAMEDTABLE._serialized_end = 2524 + _COMPARISONJOINKEY._serialized_start = 13838 + _COMPARISONJOINKEY._serialized_end = 14393 + _COMPARISONJOINKEY_COMPARISONTYPE._serialized_start = 14043 + _COMPARISONJOINKEY_COMPARISONTYPE._serialized_end = 14208 + _COMPARISONJOINKEY_SIMPLECOMPARISONTYPE._serialized_start = 14211 + _COMPARISONJOINKEY_SIMPLECOMPARISONTYPE._serialized_end = 14393 + _HASHJOINREL._serialized_start = 14396 + _HASHJOINREL._serialized_end = 15376 + _HASHJOINREL_JOINTYPE._serialized_start = 14960 + _HASHJOINREL_JOINTYPE._serialized_end = 15288 + _HASHJOINREL_BUILDINPUT._serialized_start = 15290 + _HASHJOINREL_BUILDINPUT._serialized_end = 15376 + _MERGEJOINREL._serialized_start = 15379 + _MERGEJOINREL._serialized_end = 16209 + _MERGEJOINREL_JOINTYPE._serialized_start = 14960 + _MERGEJOINREL_JOINTYPE._serialized_end = 15288 + _NESTEDLOOPJOINREL._serialized_start = 16212 + _NESTEDLOOPJOINREL._serialized_end = 16860 + _NESTEDLOOPJOINREL_JOINTYPE._serialized_start = 14960 + _NESTEDLOOPJOINREL_JOINTYPE._serialized_end = 15288 + _FUNCTIONARGUMENT._serialized_start = 16863 + _FUNCTIONARGUMENT._serialized_end = 16993 + _FUNCTIONOPTION._serialized_start = 16995 + _FUNCTIONOPTION._serialized_end = 17063 + _EXPRESSION._serialized_start = 17066 + _EXPRESSION._serialized_end = 28297 + _EXPRESSION_ENUM._serialized_start = 17917 + _EXPRESSION_ENUM._serialized_end = 18051 + _EXPRESSION_ENUM_EMPTY._serialized_start = 18023 + _EXPRESSION_ENUM_EMPTY._serialized_end = 18034 + _EXPRESSION_LITERAL._serialized_start = 18054 + _EXPRESSION_LITERAL._serialized_end = 20964 + _EXPRESSION_LITERAL_VARCHAR._serialized_start = 19644 + _EXPRESSION_LITERAL_VARCHAR._serialized_end = 19699 + _EXPRESSION_LITERAL_DECIMAL._serialized_start = 19701 + _EXPRESSION_LITERAL_DECIMAL._serialized_end = 19784 + _EXPRESSION_LITERAL_PRECISIONTIME._serialized_start = 19786 + _EXPRESSION_LITERAL_PRECISIONTIME._serialized_end = 19853 + _EXPRESSION_LITERAL_PRECISIONTIMESTAMP._serialized_start = 19855 + _EXPRESSION_LITERAL_PRECISIONTIMESTAMP._serialized_end = 19927 + _EXPRESSION_LITERAL_MAP._serialized_start = 19930 + _EXPRESSION_LITERAL_MAP._serialized_end = 20112 + _EXPRESSION_LITERAL_MAP_KEYVALUE._serialized_start = 20008 + _EXPRESSION_LITERAL_MAP_KEYVALUE._serialized_end = 20112 + _EXPRESSION_LITERAL_INTERVALYEARTOMONTH._serialized_start = 20114 + _EXPRESSION_LITERAL_INTERVALYEARTOMONTH._serialized_end = 20181 + _EXPRESSION_LITERAL_INTERVALDAYTOSECOND._serialized_start = 20184 + _EXPRESSION_LITERAL_INTERVALDAYTOSECOND._serialized_end = 20375 + _EXPRESSION_LITERAL_INTERVALCOMPOUND._serialized_start = 20378 + _EXPRESSION_LITERAL_INTERVALCOMPOUND._serialized_end = 20596 + _EXPRESSION_LITERAL_STRUCT._serialized_start = 20598 + _EXPRESSION_LITERAL_STRUCT._serialized_end = 20657 + _EXPRESSION_LITERAL_LIST._serialized_start = 20659 + _EXPRESSION_LITERAL_LIST._serialized_end = 20716 + _EXPRESSION_LITERAL_USERDEFINED._serialized_start = 20719 + _EXPRESSION_LITERAL_USERDEFINED._serialized_end = 20948 + _EXPRESSION_NESTED._serialized_start = 20967 + _EXPRESSION_NESTED._serialized_end = 21510 + _EXPRESSION_NESTED_MAP._serialized_start = 21226 + _EXPRESSION_NESTED_MAP._serialized_end = 21391 + _EXPRESSION_NESTED_MAP_KEYVALUE._serialized_start = 21303 + _EXPRESSION_NESTED_MAP_KEYVALUE._serialized_end = 21391 + _EXPRESSION_NESTED_STRUCT._serialized_start = 21393 + _EXPRESSION_NESTED_STRUCT._serialized_end = 21444 + _EXPRESSION_NESTED_LIST._serialized_start = 21446 + _EXPRESSION_NESTED_LIST._serialized_end = 21495 + _EXPRESSION_SCALARFUNCTION._serialized_start = 21513 + _EXPRESSION_SCALARFUNCTION._serialized_end = 21769 + _EXPRESSION_WINDOWFUNCTION._serialized_start = 21772 + _EXPRESSION_WINDOWFUNCTION._serialized_end = 23009 + _EXPRESSION_WINDOWFUNCTION_BOUND._serialized_start = 22473 + _EXPRESSION_WINDOWFUNCTION_BOUND._serialized_end = 22921 + _EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING._serialized_start = 22814 + _EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING._serialized_end = 22849 + _EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING._serialized_start = 22851 + _EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING._serialized_end = 22886 + _EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW._serialized_start = 22888 + _EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW._serialized_end = 22900 + _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED._serialized_start = 22902 + _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED._serialized_end = 22913 + _EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE._serialized_start = 22923 + _EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE._serialized_end = 23009 + _EXPRESSION_IFTHEN._serialized_start = 23012 + _EXPRESSION_IFTHEN._serialized_end = 23198 + _EXPRESSION_IFTHEN_IFCLAUSE._serialized_start = 23114 + _EXPRESSION_IFTHEN_IFCLAUSE._serialized_end = 23198 + _EXPRESSION_CAST._serialized_start = 23201 + _EXPRESSION_CAST._serialized_end = 23489 + _EXPRESSION_CAST_FAILUREBEHAVIOR._serialized_start = 23366 + _EXPRESSION_CAST_FAILUREBEHAVIOR._serialized_end = 23489 + _EXPRESSION_SWITCHEXPRESSION._serialized_start = 23492 + _EXPRESSION_SWITCHEXPRESSION._serialized_end = 23745 + _EXPRESSION_SWITCHEXPRESSION_IFVALUE._serialized_start = 23654 + _EXPRESSION_SWITCHEXPRESSION_IFVALUE._serialized_end = 23745 + _EXPRESSION_SINGULARORLIST._serialized_start = 23747 + _EXPRESSION_SINGULARORLIST._serialized_end = 23849 + _EXPRESSION_MULTIORLIST._serialized_start = 23852 + _EXPRESSION_MULTIORLIST._serialized_end = 24023 + _EXPRESSION_MULTIORLIST_RECORD._serialized_start = 23972 + _EXPRESSION_MULTIORLIST_RECORD._serialized_end = 24023 + _EXPRESSION_EMBEDDEDFUNCTION._serialized_start = 24026 + _EXPRESSION_EMBEDDEDFUNCTION._serialized_end = 24541 + _EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION._serialized_start = 24364 + _EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION._serialized_end = 24450 + _EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION._serialized_start = 24452 + _EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION._serialized_end = 24533 + _EXPRESSION_REFERENCESEGMENT._serialized_start = 24544 + _EXPRESSION_REFERENCESEGMENT._serialized_end = 25132 + _EXPRESSION_REFERENCESEGMENT_MAPKEY._serialized_start = 24804 + _EXPRESSION_REFERENCESEGMENT_MAPKEY._serialized_end = 24922 + _EXPRESSION_REFERENCESEGMENT_STRUCTFIELD._serialized_start = 24924 + _EXPRESSION_REFERENCESEGMENT_STRUCTFIELD._serialized_end = 25017 + _EXPRESSION_REFERENCESEGMENT_LISTELEMENT._serialized_start = 25019 + _EXPRESSION_REFERENCESEGMENT_LISTELEMENT._serialized_end = 25114 + _EXPRESSION_MASKEXPRESSION._serialized_start = 25135 + _EXPRESSION_MASKEXPRESSION._serialized_end = 26525 + _EXPRESSION_MASKEXPRESSION_SELECT._serialized_start = 25283 + _EXPRESSION_MASKEXPRESSION_SELECT._serialized_end = 25503 + _EXPRESSION_MASKEXPRESSION_STRUCTSELECT._serialized_start = 25505 + _EXPRESSION_MASKEXPRESSION_STRUCTSELECT._serialized_end = 25599 + _EXPRESSION_MASKEXPRESSION_STRUCTITEM._serialized_start = 25601 + _EXPRESSION_MASKEXPRESSION_STRUCTITEM._serialized_end = 25698 + _EXPRESSION_MASKEXPRESSION_LISTSELECT._serialized_start = 25701 + _EXPRESSION_MASKEXPRESSION_LISTSELECT._serialized_end = 26171 + _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM._serialized_start = 25869 + _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM._serialized_end = 26171 + _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT._serialized_start = 26075 + _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT._serialized_end = 26110 + _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE._serialized_start = 26112 + _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE._serialized_end = 26163 + _EXPRESSION_MASKEXPRESSION_MAPSELECT._serialized_start = 26174 + _EXPRESSION_MASKEXPRESSION_MAPSELECT._serialized_end = 26525 + _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY._serialized_start = 26416 + _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY._serialized_end = 26449 + _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION._serialized_start = 26451 + _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION._serialized_end = 26515 + _EXPRESSION_FIELDREFERENCE._serialized_start = 26528 + _EXPRESSION_FIELDREFERENCE._serialized_end = 27033 + _EXPRESSION_FIELDREFERENCE_ROOTREFERENCE._serialized_start = 26940 + _EXPRESSION_FIELDREFERENCE_ROOTREFERENCE._serialized_end = 26955 + _EXPRESSION_FIELDREFERENCE_OUTERREFERENCE._serialized_start = 26957 + _EXPRESSION_FIELDREFERENCE_OUTERREFERENCE._serialized_end = 27002 + _EXPRESSION_SUBQUERY._serialized_start = 27036 + _EXPRESSION_SUBQUERY._serialized_end = 28285 + _EXPRESSION_SUBQUERY_SCALAR._serialized_start = 27349 + _EXPRESSION_SUBQUERY_SCALAR._serialized_end = 27391 + _EXPRESSION_SUBQUERY_INPREDICATE._serialized_start = 27393 + _EXPRESSION_SUBQUERY_INPREDICATE._serialized_end = 27491 + _EXPRESSION_SUBQUERY_SETPREDICATE._serialized_start = 27494 + _EXPRESSION_SUBQUERY_SETPREDICATE._serialized_end = 27727 + _EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP._serialized_start = 27634 + _EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP._serialized_end = 27727 + _EXPRESSION_SUBQUERY_SETCOMPARISON._serialized_start = 27730 + _EXPRESSION_SUBQUERY_SETCOMPARISON._serialized_end = 28268 + _EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP._serialized_start = 28002 + _EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP._serialized_end = 28179 + _EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP._serialized_start = 28181 + _EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP._serialized_end = 28268 + _DYNAMICPARAMETER._serialized_start = 28299 + _DYNAMICPARAMETER._serialized_end = 28399 + _SORTFIELD._serialized_start = 28402 + _SORTFIELD._serialized_end = 28823 + _SORTFIELD_SORTDIRECTION._serialized_start = 28589 + _SORTFIELD_SORTDIRECTION._serialized_end = 28810 + _AGGREGATEFUNCTION._serialized_start = 28826 + _AGGREGATEFUNCTION._serialized_end = 29387 + _AGGREGATEFUNCTION_AGGREGATIONINVOCATION._serialized_start = 29255 + _AGGREGATEFUNCTION_AGGREGATIONINVOCATION._serialized_end = 29387 + _REFERENCEREL._serialized_start = 29389 + _REFERENCEREL._serialized_end = 29444 \ No newline at end of file diff --git a/src/substrait/gen/proto/algebra_pb2.pyi b/src/substrait/gen/proto/algebra_pb2.pyi index 6f56aba..04b9be3 100644 --- a/src/substrait/gen/proto/algebra_pb2.pyi +++ b/src/substrait/gen/proto/algebra_pb2.pyi @@ -152,15 +152,23 @@ class RelCommon(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor COMPUTATION_ID_FIELD_NUMBER: builtins.int TYPE_FIELD_NUMBER: builtins.int + ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int computation_id: builtins.int 'The value corresponds to a plan unique number for that datastructure. Any particular\n computation may be saved only once but it may be loaded multiple times.\n ' type: global___RelCommon.Hint.ComputationType.ValueType 'The type of this computation. While a plan may use COMPUTATION_TYPE_UNKNOWN for all\n of its types it is recommended to use a more specific type so that the optimization\n is more portable. The consumer should be able to decide if an unknown type here\n matches the same unknown type at a different plan and ignore the optimization if they\n are mismatched.\n ' - def __init__(self, *, computation_id: builtins.int=..., type: global___RelCommon.Hint.ComputationType.ValueType=...) -> None: + @property + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, computation_id: builtins.int=..., type: global___RelCommon.Hint.ComputationType.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal['computation_id', b'computation_id', 'type', b'type']) -> None: + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'computation_id', b'computation_id', 'type', b'type']) -> None: ... @typing.final @@ -168,15 +176,23 @@ class RelCommon(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor COMPUTATION_ID_REFERENCE_FIELD_NUMBER: builtins.int TYPE_FIELD_NUMBER: builtins.int + ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int computation_id_reference: builtins.int 'The value corresponds to a plan unique number for that datastructure. Any particular\n computation may be saved only once but it may be loaded multiple times.\n ' type: global___RelCommon.Hint.ComputationType.ValueType 'The type of this computation. While a plan may use COMPUTATION_TYPE_UNKNOWN for all\n of its types it is recommended to use a more specific type so that the optimization\n is more portable. The consumer should be able to decide if an unknown type here\n matches the same unknown type at a different plan and ignore the optimization if they\n are mismatched.\n ' - def __init__(self, *, computation_id_reference: builtins.int=..., type: global___RelCommon.Hint.ComputationType.ValueType=...) -> None: + @property + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, computation_id_reference: builtins.int=..., type: global___RelCommon.Hint.ComputationType.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal['computation_id_reference', b'computation_id_reference', 'type', b'type']) -> None: + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'computation_id_reference', b'computation_id_reference', 'type', b'type']) -> None: ... STATS_FIELD_NUMBER: builtins.int CONSTRAINT_FIELD_NUMBER: builtins.int diff --git a/src/substrait/gen/proto/capabilities_pb2.py b/src/substrait/gen/proto/capabilities_pb2.py index 3fb01ca..94872f4 100644 --- a/src/substrait/gen/proto/capabilities_pb2.py +++ b/src/substrait/gen/proto/capabilities_pb2.py @@ -1,19 +1,16 @@ """Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/capabilities.proto') _sym_db = _symbol_database.Default() DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18proto/capabilities.proto\x12\x05proto"\xe8\x02\n\x0cCapabilities\x12-\n\x12substrait_versions\x18\x01 \x03(\tR\x11substraitVersions\x12?\n\x1cadvanced_extension_type_urls\x18\x02 \x03(\tR\x19advancedExtensionTypeUrls\x12P\n\x11simple_extensions\x18\x03 \x03(\x0b2#.proto.Capabilities.SimpleExtensionR\x10simpleExtensions\x1a\x95\x01\n\x0fSimpleExtension\x12\x10\n\x03uri\x18\x01 \x01(\tR\x03uri\x12#\n\rfunction_keys\x18\x02 \x03(\tR\x0cfunctionKeys\x12\x1b\n\ttype_keys\x18\x03 \x03(\tR\x08typeKeys\x12.\n\x13type_variation_keys\x18\x04 \x03(\tR\x11typeVariationKeysB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.capabilities_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _globals['_CAPABILITIES']._serialized_start = 36 - _globals['_CAPABILITIES']._serialized_end = 396 - _globals['_CAPABILITIES_SIMPLEEXTENSION']._serialized_start = 247 - _globals['_CAPABILITIES_SIMPLEEXTENSION']._serialized_end = 396 \ No newline at end of file +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.capabilities_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _CAPABILITIES._serialized_start = 36 + _CAPABILITIES._serialized_end = 396 + _CAPABILITIES_SIMPLEEXTENSION._serialized_start = 247 + _CAPABILITIES_SIMPLEEXTENSION._serialized_end = 396 \ No newline at end of file diff --git a/src/substrait/gen/proto/extended_expression_pb2.py b/src/substrait/gen/proto/extended_expression_pb2.py index 34ae34c..e2293a0 100644 --- a/src/substrait/gen/proto/extended_expression_pb2.py +++ b/src/substrait/gen/proto/extended_expression_pb2.py @@ -1,23 +1,22 @@ """Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/extended_expression.proto') _sym_db = _symbol_database.Default() from ..proto import algebra_pb2 as proto_dot_algebra__pb2 from ..proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 from ..proto import plan_pb2 as proto_dot_plan__pb2 from ..proto import type_pb2 as proto_dot_type__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fproto/extended_expression.proto\x12\x05proto\x1a\x13proto/algebra.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/plan.proto\x1a\x10proto/type.proto"\xb0\x01\n\x13ExpressionReference\x123\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionH\x00R\nexpression\x124\n\x07measure\x18\x02 \x01(\x0b2\x18.proto.AggregateFunctionH\x00R\x07measure\x12!\n\x0coutput_names\x18\x03 \x03(\tR\x0boutputNamesB\x0b\n\texpr_type"\xd3\x03\n\x12ExtendedExpression\x12(\n\x07version\x18\x07 \x01(\x0b2\x0e.proto.VersionR\x07version\x12K\n\x0eextension_uris\x18\x01 \x03(\x0b2$.proto.extensions.SimpleExtensionURIR\rextensionUris\x12L\n\nextensions\x18\x02 \x03(\x0b2,.proto.extensions.SimpleExtensionDeclarationR\nextensions\x12?\n\rreferred_expr\x18\x03 \x03(\x0b2\x1a.proto.ExpressionReferenceR\x0creferredExpr\x123\n\x0bbase_schema\x18\x04 \x01(\x0b2\x12.proto.NamedStructR\nbaseSchema\x12T\n\x13advanced_extensions\x18\x05 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x12advancedExtensions\x12,\n\x12expected_type_urls\x18\x06 \x03(\tR\x10expectedTypeUrlsB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.extended_expression_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _globals['_EXPRESSIONREFERENCE']._serialized_start = 135 - _globals['_EXPRESSIONREFERENCE']._serialized_end = 311 - _globals['_EXTENDEDEXPRESSION']._serialized_start = 314 - _globals['_EXTENDEDEXPRESSION']._serialized_end = 781 \ No newline at end of file +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fproto/extended_expression.proto\x12\x05proto\x1a\x13proto/algebra.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/plan.proto\x1a\x10proto/type.proto"\xb0\x01\n\x13ExpressionReference\x123\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionH\x00R\nexpression\x124\n\x07measure\x18\x02 \x01(\x0b2\x18.proto.AggregateFunctionH\x00R\x07measure\x12!\n\x0coutput_names\x18\x03 \x03(\tR\x0boutputNamesB\x0b\n\texpr_type"\xa4\x04\n\x12ExtendedExpression\x12(\n\x07version\x18\x07 \x01(\x0b2\x0e.proto.VersionR\x07version\x12O\n\x0eextension_uris\x18\x01 \x03(\x0b2$.proto.extensions.SimpleExtensionURIB\x02\x18\x01R\rextensionUris\x12K\n\x0eextension_urns\x18\x08 \x03(\x0b2$.proto.extensions.SimpleExtensionURNR\rextensionUrns\x12L\n\nextensions\x18\x02 \x03(\x0b2,.proto.extensions.SimpleExtensionDeclarationR\nextensions\x12?\n\rreferred_expr\x18\x03 \x03(\x0b2\x1a.proto.ExpressionReferenceR\x0creferredExpr\x123\n\x0bbase_schema\x18\x04 \x01(\x0b2\x12.proto.NamedStructR\nbaseSchema\x12T\n\x13advanced_extensions\x18\x05 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x12advancedExtensions\x12,\n\x12expected_type_urls\x18\x06 \x03(\tR\x10expectedTypeUrlsB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.extended_expression_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _EXTENDEDEXPRESSION.fields_by_name['extension_uris']._options = None + _EXTENDEDEXPRESSION.fields_by_name['extension_uris']._serialized_options = b'\x18\x01' + _EXPRESSIONREFERENCE._serialized_start = 135 + _EXPRESSIONREFERENCE._serialized_end = 311 + _EXTENDEDEXPRESSION._serialized_start = 314 + _EXTENDEDEXPRESSION._serialized_end = 862 \ No newline at end of file diff --git a/src/substrait/gen/proto/extended_expression_pb2.pyi b/src/substrait/gen/proto/extended_expression_pb2.pyi index 52d349a..27829c8 100644 --- a/src/substrait/gen/proto/extended_expression_pb2.pyi +++ b/src/substrait/gen/proto/extended_expression_pb2.pyi @@ -51,6 +51,7 @@ class ExtendedExpression(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor VERSION_FIELD_NUMBER: builtins.int EXTENSION_URIS_FIELD_NUMBER: builtins.int + EXTENSION_URNS_FIELD_NUMBER: builtins.int EXTENSIONS_FIELD_NUMBER: builtins.int REFERRED_EXPR_FIELD_NUMBER: builtins.int BASE_SCHEMA_FIELD_NUMBER: builtins.int @@ -65,7 +66,15 @@ class ExtendedExpression(google.protobuf.message.Message): @property def extension_uris(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[proto.extensions.extensions_pb2.SimpleExtensionURI]: - """a list of yaml specifications this expression may depend on""" + """a list of yaml specifications this expression may depend on + this is now deprecated and extension_urns should be used instead. + """ + + @property + def extension_urns(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[proto.extensions.extensions_pb2.SimpleExtensionURN]: + """a list of extension specifications this expression may depend on, + referenced by Extension URN + """ @property def extensions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[proto.extensions.extensions_pb2.SimpleExtensionDeclaration]: @@ -92,12 +101,12 @@ class ExtendedExpression(google.protobuf.message.Message): one or more message types defined here are unknown. """ - def __init__(self, *, version: proto.plan_pb2.Version | None=..., extension_uris: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURI] | None=..., extensions: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionDeclaration] | None=..., referred_expr: collections.abc.Iterable[global___ExpressionReference] | None=..., base_schema: proto.type_pb2.NamedStruct | None=..., advanced_extensions: proto.extensions.extensions_pb2.AdvancedExtension | None=..., expected_type_urls: collections.abc.Iterable[builtins.str] | None=...) -> None: + def __init__(self, *, version: proto.plan_pb2.Version | None=..., extension_uris: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURI] | None=..., extension_urns: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURN] | None=..., extensions: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionDeclaration] | None=..., referred_expr: collections.abc.Iterable[global___ExpressionReference] | None=..., base_schema: proto.type_pb2.NamedStruct | None=..., advanced_extensions: proto.extensions.extensions_pb2.AdvancedExtension | None=..., expected_type_urls: collections.abc.Iterable[builtins.str] | None=...) -> None: ... def HasField(self, field_name: typing.Literal['advanced_extensions', b'advanced_extensions', 'base_schema', b'base_schema', 'version', b'version']) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal['advanced_extensions', b'advanced_extensions', 'base_schema', b'base_schema', 'expected_type_urls', b'expected_type_urls', 'extension_uris', b'extension_uris', 'extensions', b'extensions', 'referred_expr', b'referred_expr', 'version', b'version']) -> None: + def ClearField(self, field_name: typing.Literal['advanced_extensions', b'advanced_extensions', 'base_schema', b'base_schema', 'expected_type_urls', b'expected_type_urls', 'extension_uris', b'extension_uris', 'extension_urns', b'extension_urns', 'extensions', b'extensions', 'referred_expr', b'referred_expr', 'version', b'version']) -> None: ... global___ExtendedExpression = ExtendedExpression \ No newline at end of file diff --git a/src/substrait/gen/proto/extensions/extensions_pb2.py b/src/substrait/gen/proto/extensions/extensions_pb2.py index 2147ac4..efd2e87 100644 --- a/src/substrait/gen/proto/extensions/extensions_pb2.py +++ b/src/substrait/gen/proto/extensions/extensions_pb2.py @@ -1,28 +1,35 @@ """Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/extensions/extensions.proto') _sym_db = _symbol_database.Default() from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!proto/extensions/extensions.proto\x12\x10proto.extensions\x1a\x19google/protobuf/any.proto"X\n\x12SimpleExtensionURI\x120\n\x14extension_uri_anchor\x18\x01 \x01(\rR\x12extensionUriAnchor\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri"\xa7\x06\n\x1aSimpleExtensionDeclaration\x12c\n\x0eextension_type\x18\x01 \x01(\x0b2:.proto.extensions.SimpleExtensionDeclaration.ExtensionTypeH\x00R\rextensionType\x12\x7f\n\x18extension_type_variation\x18\x02 \x01(\x0b2C.proto.extensions.SimpleExtensionDeclaration.ExtensionTypeVariationH\x00R\x16extensionTypeVariation\x12o\n\x12extension_function\x18\x03 \x01(\x0b2>.proto.extensions.SimpleExtensionDeclaration.ExtensionFunctionH\x00R\x11extensionFunction\x1a|\n\rExtensionType\x126\n\x17extension_uri_reference\x18\x01 \x01(\rR\x15extensionUriReference\x12\x1f\n\x0btype_anchor\x18\x02 \x01(\rR\ntypeAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\x98\x01\n\x16ExtensionTypeVariation\x126\n\x17extension_uri_reference\x18\x01 \x01(\rR\x15extensionUriReference\x122\n\x15type_variation_anchor\x18\x02 \x01(\rR\x13typeVariationAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\x88\x01\n\x11ExtensionFunction\x126\n\x17extension_uri_reference\x18\x01 \x01(\rR\x15extensionUriReference\x12\'\n\x0ffunction_anchor\x18\x02 \x01(\rR\x0efunctionAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04nameB\x0e\n\x0cmapping_type"\x85\x01\n\x11AdvancedExtension\x128\n\x0coptimization\x18\x01 \x03(\x0b2\x14.google.protobuf.AnyR\x0coptimization\x126\n\x0benhancement\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x0benhancementB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.extensions.extensions_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _globals['_SIMPLEEXTENSIONURI']._serialized_start = 82 - _globals['_SIMPLEEXTENSIONURI']._serialized_end = 170 - _globals['_SIMPLEEXTENSIONDECLARATION']._serialized_start = 173 - _globals['_SIMPLEEXTENSIONDECLARATION']._serialized_end = 980 - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE']._serialized_start = 546 - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE']._serialized_end = 670 - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION']._serialized_start = 673 - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION']._serialized_end = 825 - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION']._serialized_start = 828 - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION']._serialized_end = 964 - _globals['_ADVANCEDEXTENSION']._serialized_start = 983 - _globals['_ADVANCEDEXTENSION']._serialized_end = 1116 \ No newline at end of file +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!proto/extensions/extensions.proto\x12\x10proto.extensions\x1a\x19google/protobuf/any.proto"\\\n\x12SimpleExtensionURI\x120\n\x14extension_uri_anchor\x18\x01 \x01(\rR\x12extensionUriAnchor\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri:\x02\x18\x01"X\n\x12SimpleExtensionURN\x120\n\x14extension_urn_anchor\x18\x01 \x01(\rR\x12extensionUrnAnchor\x12\x10\n\x03urn\x18\x02 \x01(\tR\x03urn"\xdc\x07\n\x1aSimpleExtensionDeclaration\x12c\n\x0eextension_type\x18\x01 \x01(\x0b2:.proto.extensions.SimpleExtensionDeclaration.ExtensionTypeH\x00R\rextensionType\x12\x7f\n\x18extension_type_variation\x18\x02 \x01(\x0b2C.proto.extensions.SimpleExtensionDeclaration.ExtensionTypeVariationH\x00R\x16extensionTypeVariation\x12o\n\x12extension_function\x18\x03 \x01(\x0b2>.proto.extensions.SimpleExtensionDeclaration.ExtensionFunctionH\x00R\x11extensionFunction\x1a\xb8\x01\n\rExtensionType\x12:\n\x17extension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15extensionUriReference\x126\n\x17extension_urn_reference\x18\x04 \x01(\rR\x15extensionUrnReference\x12\x1f\n\x0btype_anchor\x18\x02 \x01(\rR\ntypeAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\xd4\x01\n\x16ExtensionTypeVariation\x12:\n\x17extension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15extensionUriReference\x126\n\x17extension_urn_reference\x18\x04 \x01(\rR\x15extensionUrnReference\x122\n\x15type_variation_anchor\x18\x02 \x01(\rR\x13typeVariationAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\xc4\x01\n\x11ExtensionFunction\x12:\n\x17extension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15extensionUriReference\x126\n\x17extension_urn_reference\x18\x04 \x01(\rR\x15extensionUrnReference\x12\'\n\x0ffunction_anchor\x18\x02 \x01(\rR\x0efunctionAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04nameB\x0e\n\x0cmapping_type"\x85\x01\n\x11AdvancedExtension\x128\n\x0coptimization\x18\x01 \x03(\x0b2\x14.google.protobuf.AnyR\x0coptimization\x126\n\x0benhancement\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x0benhancementB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.extensions.extensions_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _SIMPLEEXTENSIONURI._options = None + _SIMPLEEXTENSIONURI._serialized_options = b'\x18\x01' + _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE.fields_by_name['extension_uri_reference']._options = None + _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE.fields_by_name['extension_uri_reference']._serialized_options = b'\x18\x01' + _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION.fields_by_name['extension_uri_reference']._options = None + _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION.fields_by_name['extension_uri_reference']._serialized_options = b'\x18\x01' + _SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION.fields_by_name['extension_uri_reference']._options = None + _SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION.fields_by_name['extension_uri_reference']._serialized_options = b'\x18\x01' + _SIMPLEEXTENSIONURI._serialized_start = 82 + _SIMPLEEXTENSIONURI._serialized_end = 174 + _SIMPLEEXTENSIONURN._serialized_start = 176 + _SIMPLEEXTENSIONURN._serialized_end = 264 + _SIMPLEEXTENSIONDECLARATION._serialized_start = 267 + _SIMPLEEXTENSIONDECLARATION._serialized_end = 1255 + _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE._serialized_start = 641 + _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE._serialized_end = 825 + _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION._serialized_start = 828 + _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION._serialized_end = 1040 + _SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION._serialized_start = 1043 + _SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION._serialized_end = 1239 + _ADVANCEDEXTENSION._serialized_start = 1258 + _ADVANCEDEXTENSION._serialized_end = 1391 \ No newline at end of file diff --git a/src/substrait/gen/proto/extensions/extensions_pb2.pyi b/src/substrait/gen/proto/extensions/extensions_pb2.pyi index f866b3d..5b1765c 100644 --- a/src/substrait/gen/proto/extensions/extensions_pb2.pyi +++ b/src/substrait/gen/proto/extensions/extensions_pb2.pyi @@ -13,6 +13,7 @@ DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final class SimpleExtensionURI(google.protobuf.message.Message): + """This message is deprecated, use SimpleExtensionURN moving forwards""" DESCRIPTOR: google.protobuf.descriptor.Descriptor EXTENSION_URI_ANCHOR_FIELD_NUMBER: builtins.int URI_FIELD_NUMBER: builtins.int @@ -28,9 +29,26 @@ class SimpleExtensionURI(google.protobuf.message.Message): ... global___SimpleExtensionURI = SimpleExtensionURI +@typing.final +class SimpleExtensionURN(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + EXTENSION_URN_ANCHOR_FIELD_NUMBER: builtins.int + URN_FIELD_NUMBER: builtins.int + extension_urn_anchor: builtins.int + 'A surrogate key used in the context of a single plan used to reference the\n URN associated with an extension.\n ' + urn: builtins.str + 'The extension URN that uniquely identifies this extension. This must follow the\n format extension:: and serves as the "namespace" of this extension.\n ' + + def __init__(self, *, extension_urn_anchor: builtins.int=..., urn: builtins.str=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['extension_urn_anchor', b'extension_urn_anchor', 'urn', b'urn']) -> None: + ... +global___SimpleExtensionURN = SimpleExtensionURN + @typing.final class SimpleExtensionDeclaration(google.protobuf.message.Message): - """Describes a mapping between a specific extension entity and the uri where + """Describes a mapping between a specific extension entity and the uri/urn where that extension can be found. """ DESCRIPTOR: google.protobuf.descriptor.Descriptor @@ -40,57 +58,66 @@ class SimpleExtensionDeclaration(google.protobuf.message.Message): """Describes a Type""" DESCRIPTOR: google.protobuf.descriptor.Descriptor EXTENSION_URI_REFERENCE_FIELD_NUMBER: builtins.int + EXTENSION_URN_REFERENCE_FIELD_NUMBER: builtins.int TYPE_ANCHOR_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int extension_uri_reference: builtins.int - 'references the extension_uri_anchor defined for a specific extension URI.' + 'references the extension_uri_anchor defined for a specific extension URI.\n this is now deprecated and extension_urn_reference should be used instead.\n ' + extension_urn_reference: builtins.int + 'references the extension_urn_anchor defined for a specific extension URN.\n If both extension_urn_reference and extension_uri_reference are present,\n extension_urn_reference takes precedence.\n ' type_anchor: builtins.int 'A surrogate key used in the context of a single plan to reference a\n specific extension type\n ' name: builtins.str 'the name of the type in the defined extension YAML.' - def __init__(self, *, extension_uri_reference: builtins.int=..., type_anchor: builtins.int=..., name: builtins.str=...) -> None: + def __init__(self, *, extension_uri_reference: builtins.int=..., extension_urn_reference: builtins.int=..., type_anchor: builtins.int=..., name: builtins.str=...) -> None: ... - def ClearField(self, field_name: typing.Literal['extension_uri_reference', b'extension_uri_reference', 'name', b'name', 'type_anchor', b'type_anchor']) -> None: + def ClearField(self, field_name: typing.Literal['extension_uri_reference', b'extension_uri_reference', 'extension_urn_reference', b'extension_urn_reference', 'name', b'name', 'type_anchor', b'type_anchor']) -> None: ... @typing.final class ExtensionTypeVariation(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor EXTENSION_URI_REFERENCE_FIELD_NUMBER: builtins.int + EXTENSION_URN_REFERENCE_FIELD_NUMBER: builtins.int TYPE_VARIATION_ANCHOR_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int extension_uri_reference: builtins.int - 'references the extension_uri_anchor defined for a specific extension URI.' + 'references the extension_uri_anchor defined for a specific extension URI.\n this is now deprecated and extension_urn_reference should be used instead.\n ' + extension_urn_reference: builtins.int + 'references the extension_urn_anchor defined for a specific extension URN.\n If both extension_urn_reference and extension_uri_reference are present,\n extension_urn_reference takes precedence.\n ' type_variation_anchor: builtins.int 'A surrogate key used in the context of a single plan to reference a\n specific type variation\n ' name: builtins.str 'the name of the type in the defined extension YAML.' - def __init__(self, *, extension_uri_reference: builtins.int=..., type_variation_anchor: builtins.int=..., name: builtins.str=...) -> None: + def __init__(self, *, extension_uri_reference: builtins.int=..., extension_urn_reference: builtins.int=..., type_variation_anchor: builtins.int=..., name: builtins.str=...) -> None: ... - def ClearField(self, field_name: typing.Literal['extension_uri_reference', b'extension_uri_reference', 'name', b'name', 'type_variation_anchor', b'type_variation_anchor']) -> None: + def ClearField(self, field_name: typing.Literal['extension_uri_reference', b'extension_uri_reference', 'extension_urn_reference', b'extension_urn_reference', 'name', b'name', 'type_variation_anchor', b'type_variation_anchor']) -> None: ... @typing.final class ExtensionFunction(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor EXTENSION_URI_REFERENCE_FIELD_NUMBER: builtins.int + EXTENSION_URN_REFERENCE_FIELD_NUMBER: builtins.int FUNCTION_ANCHOR_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int extension_uri_reference: builtins.int - 'references the extension_uri_anchor defined for a specific extension URI.' + 'references the extension_uri_anchor defined for a specific extension URI.\n this is now deprecated and extension_urn_reference should be used instead.\n ' + extension_urn_reference: builtins.int + 'references the extension_urn_anchor defined for a specific extension URN.\n If both extension_urn_reference and extension_uri_reference are present,\n extension_urn_reference takes precedence.\n ' function_anchor: builtins.int 'A surrogate key used in the context of a single plan to reference a\n specific function\n ' name: builtins.str 'A function signature compound name' - def __init__(self, *, extension_uri_reference: builtins.int=..., function_anchor: builtins.int=..., name: builtins.str=...) -> None: + def __init__(self, *, extension_uri_reference: builtins.int=..., extension_urn_reference: builtins.int=..., function_anchor: builtins.int=..., name: builtins.str=...) -> None: ... - def ClearField(self, field_name: typing.Literal['extension_uri_reference', b'extension_uri_reference', 'function_anchor', b'function_anchor', 'name', b'name']) -> None: + def ClearField(self, field_name: typing.Literal['extension_uri_reference', b'extension_uri_reference', 'extension_urn_reference', b'extension_urn_reference', 'function_anchor', b'function_anchor', 'name', b'name']) -> None: ... EXTENSION_TYPE_FIELD_NUMBER: builtins.int EXTENSION_TYPE_VARIATION_FIELD_NUMBER: builtins.int diff --git a/src/substrait/gen/proto/function_pb2.py b/src/substrait/gen/proto/function_pb2.py index 7c656e0..a76dbbd 100644 --- a/src/substrait/gen/proto/function_pb2.py +++ b/src/substrait/gen/proto/function_pb2.py @@ -1,48 +1,45 @@ """Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/function.proto') _sym_db = _symbol_database.Default() from ..proto import parameterized_types_pb2 as proto_dot_parameterized__types__pb2 from ..proto import type_pb2 as proto_dot_type__pb2 from ..proto import type_expressions_pb2 as proto_dot_type__expressions__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14proto/function.proto\x12\x05proto\x1a\x1fproto/parameterized_types.proto\x1a\x10proto/type.proto\x1a\x1cproto/type_expressions.proto"\xe9\x18\n\x11FunctionSignature\x1a\xb8\x02\n\x10FinalArgVariadic\x12\x19\n\x08min_args\x18\x01 \x01(\x03R\x07minArgs\x12\x19\n\x08max_args\x18\x02 \x01(\x03R\x07maxArgs\x12`\n\x0bconsistency\x18\x03 \x01(\x0e2>.proto.FunctionSignature.FinalArgVariadic.ParameterConsistencyR\x0bconsistency"\x8b\x01\n\x14ParameterConsistency\x12%\n!PARAMETER_CONSISTENCY_UNSPECIFIED\x10\x00\x12$\n PARAMETER_CONSISTENCY_CONSISTENT\x10\x01\x12&\n"PARAMETER_CONSISTENCY_INCONSISTENT\x10\x02\x1a\x10\n\x0eFinalArgNormal\x1a\xb0\x04\n\x06Scalar\x12?\n\targuments\x18\x02 \x03(\x0b2!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x03(\tR\x04name\x12F\n\x0bdescription\x18\x04 \x01(\x0b2$.proto.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12<\n\x0boutput_type\x18\t \x01(\x0b2\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\n \x01(\x0b2).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12A\n\x06normal\x18\x0b \x01(\x0b2\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12Q\n\x0fimplementations\x18\x0c \x03(\x0b2\'.proto.FunctionSignature.ImplementationR\x0fimplementationsB\x19\n\x17final_variable_behavior\x1a\xa0\x05\n\tAggregate\x12?\n\targuments\x18\x02 \x03(\x0b2!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12F\n\x0bdescription\x18\x04 \x01(\x0b2$.proto.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12<\n\x0boutput_type\x18\t \x01(\x0b2\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\n \x01(\x0b2).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12A\n\x06normal\x18\x0b \x01(\x0b2\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12\x18\n\x07ordered\x18\x0e \x01(\x08R\x07ordered\x12\x17\n\x07max_set\x18\x0c \x01(\x04R\x06maxSet\x128\n\x11intermediate_type\x18\r \x01(\x0b2\x0b.proto.TypeR\x10intermediateType\x12Q\n\x0fimplementations\x18\x0f \x03(\x0b2\'.proto.FunctionSignature.ImplementationR\x0fimplementationsB\x19\n\x17final_variable_behavior\x1a\xdb\x06\n\x06Window\x12?\n\targuments\x18\x02 \x03(\x0b2!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x03(\tR\x04name\x12F\n\x0bdescription\x18\x04 \x01(\x0b2$.proto.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12H\n\x11intermediate_type\x18\t \x01(\x0b2\x1b.proto.DerivationExpressionR\x10intermediateType\x12<\n\x0boutput_type\x18\n \x01(\x0b2\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\x10 \x01(\x0b2).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12A\n\x06normal\x18\x11 \x01(\x0b2\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12\x18\n\x07ordered\x18\x0b \x01(\x08R\x07ordered\x12\x17\n\x07max_set\x18\x0c \x01(\x04R\x06maxSet\x12K\n\x0bwindow_type\x18\x0e \x01(\x0e2*.proto.FunctionSignature.Window.WindowTypeR\nwindowType\x12Q\n\x0fimplementations\x18\x0f \x03(\x0b2\'.proto.FunctionSignature.ImplementationR\x0fimplementations"_\n\nWindowType\x12\x1b\n\x17WINDOW_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15WINDOW_TYPE_STREAMING\x10\x01\x12\x19\n\x15WINDOW_TYPE_PARTITION\x10\x02B\x19\n\x17final_variable_behavior\x1a=\n\x0bDescription\x12\x1a\n\x08language\x18\x01 \x01(\tR\x08language\x12\x12\n\x04body\x18\x02 \x01(\tR\x04body\x1a\xad\x01\n\x0eImplementation\x12@\n\x04type\x18\x01 \x01(\x0e2,.proto.FunctionSignature.Implementation.TypeR\x04type\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri"G\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11TYPE_WEB_ASSEMBLY\x10\x01\x12\x12\n\x0eTYPE_TRINO_JAR\x10\x02\x1a\xe3\x03\n\x08Argument\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12G\n\x05value\x18\x02 \x01(\x0b2/.proto.FunctionSignature.Argument.ValueArgumentH\x00R\x05value\x12D\n\x04type\x18\x03 \x01(\x0b2..proto.FunctionSignature.Argument.TypeArgumentH\x00R\x04type\x12D\n\x04enum\x18\x04 \x01(\x0b2..proto.FunctionSignature.Argument.EnumArgumentH\x00R\x04enum\x1aY\n\rValueArgument\x12,\n\x04type\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x04type\x12\x1a\n\x08constant\x18\x02 \x01(\x08R\x08constant\x1a<\n\x0cTypeArgument\x12,\n\x04type\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x04type\x1aD\n\x0cEnumArgument\x12\x18\n\x07options\x18\x01 \x03(\tR\x07options\x12\x1a\n\x08optional\x18\x02 \x01(\x08R\x08optionalB\x0f\n\rargument_kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.function_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _globals['_FUNCTIONSIGNATURE']._serialized_start = 113 - _globals['_FUNCTIONSIGNATURE']._serialized_end = 3290 - _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC']._serialized_start = 135 - _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC']._serialized_end = 447 - _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC_PARAMETERCONSISTENCY']._serialized_start = 308 - _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC_PARAMETERCONSISTENCY']._serialized_end = 447 - _globals['_FUNCTIONSIGNATURE_FINALARGNORMAL']._serialized_start = 449 - _globals['_FUNCTIONSIGNATURE_FINALARGNORMAL']._serialized_end = 465 - _globals['_FUNCTIONSIGNATURE_SCALAR']._serialized_start = 468 - _globals['_FUNCTIONSIGNATURE_SCALAR']._serialized_end = 1028 - _globals['_FUNCTIONSIGNATURE_AGGREGATE']._serialized_start = 1031 - _globals['_FUNCTIONSIGNATURE_AGGREGATE']._serialized_end = 1703 - _globals['_FUNCTIONSIGNATURE_WINDOW']._serialized_start = 1706 - _globals['_FUNCTIONSIGNATURE_WINDOW']._serialized_end = 2565 - _globals['_FUNCTIONSIGNATURE_WINDOW_WINDOWTYPE']._serialized_start = 2443 - _globals['_FUNCTIONSIGNATURE_WINDOW_WINDOWTYPE']._serialized_end = 2538 - _globals['_FUNCTIONSIGNATURE_DESCRIPTION']._serialized_start = 2567 - _globals['_FUNCTIONSIGNATURE_DESCRIPTION']._serialized_end = 2628 - _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION']._serialized_start = 2631 - _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION']._serialized_end = 2804 - _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION_TYPE']._serialized_start = 2733 - _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION_TYPE']._serialized_end = 2804 - _globals['_FUNCTIONSIGNATURE_ARGUMENT']._serialized_start = 2807 - _globals['_FUNCTIONSIGNATURE_ARGUMENT']._serialized_end = 3290 - _globals['_FUNCTIONSIGNATURE_ARGUMENT_VALUEARGUMENT']._serialized_start = 3052 - _globals['_FUNCTIONSIGNATURE_ARGUMENT_VALUEARGUMENT']._serialized_end = 3141 - _globals['_FUNCTIONSIGNATURE_ARGUMENT_TYPEARGUMENT']._serialized_start = 3143 - _globals['_FUNCTIONSIGNATURE_ARGUMENT_TYPEARGUMENT']._serialized_end = 3203 - _globals['_FUNCTIONSIGNATURE_ARGUMENT_ENUMARGUMENT']._serialized_start = 3205 - _globals['_FUNCTIONSIGNATURE_ARGUMENT_ENUMARGUMENT']._serialized_end = 3273 \ No newline at end of file +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.function_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _FUNCTIONSIGNATURE._serialized_start = 113 + _FUNCTIONSIGNATURE._serialized_end = 3290 + _FUNCTIONSIGNATURE_FINALARGVARIADIC._serialized_start = 135 + _FUNCTIONSIGNATURE_FINALARGVARIADIC._serialized_end = 447 + _FUNCTIONSIGNATURE_FINALARGVARIADIC_PARAMETERCONSISTENCY._serialized_start = 308 + _FUNCTIONSIGNATURE_FINALARGVARIADIC_PARAMETERCONSISTENCY._serialized_end = 447 + _FUNCTIONSIGNATURE_FINALARGNORMAL._serialized_start = 449 + _FUNCTIONSIGNATURE_FINALARGNORMAL._serialized_end = 465 + _FUNCTIONSIGNATURE_SCALAR._serialized_start = 468 + _FUNCTIONSIGNATURE_SCALAR._serialized_end = 1028 + _FUNCTIONSIGNATURE_AGGREGATE._serialized_start = 1031 + _FUNCTIONSIGNATURE_AGGREGATE._serialized_end = 1703 + _FUNCTIONSIGNATURE_WINDOW._serialized_start = 1706 + _FUNCTIONSIGNATURE_WINDOW._serialized_end = 2565 + _FUNCTIONSIGNATURE_WINDOW_WINDOWTYPE._serialized_start = 2443 + _FUNCTIONSIGNATURE_WINDOW_WINDOWTYPE._serialized_end = 2538 + _FUNCTIONSIGNATURE_DESCRIPTION._serialized_start = 2567 + _FUNCTIONSIGNATURE_DESCRIPTION._serialized_end = 2628 + _FUNCTIONSIGNATURE_IMPLEMENTATION._serialized_start = 2631 + _FUNCTIONSIGNATURE_IMPLEMENTATION._serialized_end = 2804 + _FUNCTIONSIGNATURE_IMPLEMENTATION_TYPE._serialized_start = 2733 + _FUNCTIONSIGNATURE_IMPLEMENTATION_TYPE._serialized_end = 2804 + _FUNCTIONSIGNATURE_ARGUMENT._serialized_start = 2807 + _FUNCTIONSIGNATURE_ARGUMENT._serialized_end = 3290 + _FUNCTIONSIGNATURE_ARGUMENT_VALUEARGUMENT._serialized_start = 3052 + _FUNCTIONSIGNATURE_ARGUMENT_VALUEARGUMENT._serialized_end = 3141 + _FUNCTIONSIGNATURE_ARGUMENT_TYPEARGUMENT._serialized_start = 3143 + _FUNCTIONSIGNATURE_ARGUMENT_TYPEARGUMENT._serialized_end = 3203 + _FUNCTIONSIGNATURE_ARGUMENT_ENUMARGUMENT._serialized_start = 3205 + _FUNCTIONSIGNATURE_ARGUMENT_ENUMARGUMENT._serialized_end = 3273 \ No newline at end of file diff --git a/src/substrait/gen/proto/parameterized_types_pb2.py b/src/substrait/gen/proto/parameterized_types_pb2.py index c53edb2..7ba0619 100644 --- a/src/substrait/gen/proto/parameterized_types_pb2.py +++ b/src/substrait/gen/proto/parameterized_types_pb2.py @@ -1,62 +1,59 @@ """Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/parameterized_types.proto') _sym_db = _symbol_database.Default() from ..proto import type_pb2 as proto_dot_type__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fproto/parameterized_types.proto\x12\x05proto\x1a\x10proto/type.proto"\xc0(\n\x11ParameterizedType\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12*\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeB\x02\x18\x01H\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12V\n\x0cinterval_day\x18\x14 \x01(\x0b21.proto.ParameterizedType.ParameterizedIntervalDayH\x00R\x0bintervalDay\x12e\n\x11interval_compound\x18$ \x01(\x0b26.proto.ParameterizedType.ParameterizedIntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x12P\n\nfixed_char\x18\x15 \x01(\x0b2/.proto.ParameterizedType.ParameterizedFixedCharH\x00R\tfixedChar\x12I\n\x07varchar\x18\x16 \x01(\x0b2-.proto.ParameterizedType.ParameterizedVarCharH\x00R\x07varchar\x12V\n\x0cfixed_binary\x18\x17 \x01(\x0b21.proto.ParameterizedType.ParameterizedFixedBinaryH\x00R\x0bfixedBinary\x12I\n\x07decimal\x18\x18 \x01(\x0b2-.proto.ParameterizedType.ParameterizedDecimalH\x00R\x07decimal\x12\\\n\x0eprecision_time\x18% \x01(\x0b23.proto.ParameterizedType.ParameterizedPrecisionTimeH\x00R\rprecisionTime\x12k\n\x13precision_timestamp\x18" \x01(\x0b28.proto.ParameterizedType.ParameterizedPrecisionTimestampH\x00R\x12precisionTimestamp\x12r\n\x16precision_timestamp_tz\x18# \x01(\x0b2:.proto.ParameterizedType.ParameterizedPrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12F\n\x06struct\x18\x19 \x01(\x0b2,.proto.ParameterizedType.ParameterizedStructH\x00R\x06struct\x12@\n\x04list\x18\x1b \x01(\x0b2*.proto.ParameterizedType.ParameterizedListH\x00R\x04list\x12=\n\x03map\x18\x1c \x01(\x0b2).proto.ParameterizedType.ParameterizedMapH\x00R\x03map\x12V\n\x0cuser_defined\x18\x1e \x01(\x0b21.proto.ParameterizedType.ParameterizedUserDefinedH\x00R\x0buserDefined\x126\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x12O\n\x0etype_parameter\x18! \x01(\x0b2&.proto.ParameterizedType.TypeParameterH\x00R\rtypeParameter\x1aU\n\rTypeParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x120\n\x06bounds\x18\x02 \x03(\x0b2\x18.proto.ParameterizedTypeR\x06bounds\x1a\xde\x01\n\x10IntegerParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\\\n\x15range_start_inclusive\x18\x02 \x01(\x0b2(.proto.ParameterizedType.NullableIntegerR\x13rangeStartInclusive\x12X\n\x13range_end_exclusive\x18\x03 \x01(\x0b2(.proto.ParameterizedType.NullableIntegerR\x11rangeEndExclusive\x1a\'\n\x0fNullableInteger\x12\x14\n\x05value\x18\x01 \x01(\x03R\x05value\x1a\xc0\x01\n\x16ParameterizedFixedChar\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbe\x01\n\x14ParameterizedVarChar\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc2\x01\n\x18ParameterizedFixedBinary\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x02\n\x14ParameterizedDecimal\x12<\n\x05scale\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x05scale\x12D\n\tprecision\x18\x02 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc8\x01\n\x18ParameterizedIntervalDay\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xcd\x01\n\x1dParameterizedIntervalCompound\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xca\x01\n\x1aParameterizedPrecisionTime\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xcf\x01\n\x1fParameterizedPrecisionTimestamp\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd1\x01\n!ParameterizedPrecisionTimestampTZ\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xad\x01\n\x13ParameterizedStruct\x12.\n\x05types\x18\x01 \x03(\x0b2\x18.proto.ParameterizedTypeR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1av\n\x18ParameterizedNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12D\n\x06struct\x18\x02 \x01(\x0b2,.proto.ParameterizedType.ParameterizedStructR\x06struct\x1a\xa9\x01\n\x11ParameterizedList\x12,\n\x04type\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd6\x01\n\x10ParameterizedMap\x12*\n\x03key\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x03key\x12.\n\x05value\x18\x02 \x01(\x0b2\x18.proto.ParameterizedTypeR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa5\x01\n\x18ParameterizedUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x86\x01\n\rIntegerOption\x12\x1a\n\x07literal\x18\x01 \x01(\x05H\x00R\x07literal\x12I\n\tparameter\x18\x02 \x01(\x0b2).proto.ParameterizedType.IntegerParameterH\x00R\tparameterB\x0e\n\x0cinteger_typeB\x06\n\x04kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.parameterized_types_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp']._loaded_options = None - _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp']._serialized_options = b'\x18\x01' - _globals['_PARAMETERIZEDTYPE'].fields_by_name['time']._loaded_options = None - _globals['_PARAMETERIZEDTYPE'].fields_by_name['time']._serialized_options = b'\x18\x01' - _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp_tz']._loaded_options = None - _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' - _globals['_PARAMETERIZEDTYPE'].fields_by_name['user_defined_pointer']._loaded_options = None - _globals['_PARAMETERIZEDTYPE'].fields_by_name['user_defined_pointer']._serialized_options = b'\x18\x01' - _globals['_PARAMETERIZEDTYPE']._serialized_start = 61 - _globals['_PARAMETERIZEDTYPE']._serialized_end = 5245 - _globals['_PARAMETERIZEDTYPE_TYPEPARAMETER']._serialized_start = 2012 - _globals['_PARAMETERIZEDTYPE_TYPEPARAMETER']._serialized_end = 2097 - _globals['_PARAMETERIZEDTYPE_INTEGERPARAMETER']._serialized_start = 2100 - _globals['_PARAMETERIZEDTYPE_INTEGERPARAMETER']._serialized_end = 2322 - _globals['_PARAMETERIZEDTYPE_NULLABLEINTEGER']._serialized_start = 2324 - _globals['_PARAMETERIZEDTYPE_NULLABLEINTEGER']._serialized_end = 2363 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR']._serialized_start = 2366 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR']._serialized_end = 2558 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR']._serialized_start = 2561 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR']._serialized_end = 2751 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY']._serialized_start = 2754 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY']._serialized_end = 2948 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL']._serialized_start = 2951 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL']._serialized_end = 3209 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY']._serialized_start = 3212 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY']._serialized_end = 3412 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND']._serialized_start = 3415 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND']._serialized_end = 3620 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIME']._serialized_start = 3623 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIME']._serialized_end = 3825 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP']._serialized_start = 3828 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP']._serialized_end = 4035 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ']._serialized_start = 4038 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ']._serialized_end = 4247 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT']._serialized_start = 4250 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT']._serialized_end = 4423 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT']._serialized_start = 4425 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT']._serialized_end = 4543 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDLIST']._serialized_start = 4546 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDLIST']._serialized_end = 4715 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDMAP']._serialized_start = 4718 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDMAP']._serialized_end = 4932 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED']._serialized_start = 4935 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED']._serialized_end = 5100 - _globals['_PARAMETERIZEDTYPE_INTEGEROPTION']._serialized_start = 5103 - _globals['_PARAMETERIZEDTYPE_INTEGEROPTION']._serialized_end = 5237 \ No newline at end of file +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.parameterized_types_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _PARAMETERIZEDTYPE.fields_by_name['timestamp']._options = None + _PARAMETERIZEDTYPE.fields_by_name['timestamp']._serialized_options = b'\x18\x01' + _PARAMETERIZEDTYPE.fields_by_name['time']._options = None + _PARAMETERIZEDTYPE.fields_by_name['time']._serialized_options = b'\x18\x01' + _PARAMETERIZEDTYPE.fields_by_name['timestamp_tz']._options = None + _PARAMETERIZEDTYPE.fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' + _PARAMETERIZEDTYPE.fields_by_name['user_defined_pointer']._options = None + _PARAMETERIZEDTYPE.fields_by_name['user_defined_pointer']._serialized_options = b'\x18\x01' + _PARAMETERIZEDTYPE._serialized_start = 61 + _PARAMETERIZEDTYPE._serialized_end = 5245 + _PARAMETERIZEDTYPE_TYPEPARAMETER._serialized_start = 2012 + _PARAMETERIZEDTYPE_TYPEPARAMETER._serialized_end = 2097 + _PARAMETERIZEDTYPE_INTEGERPARAMETER._serialized_start = 2100 + _PARAMETERIZEDTYPE_INTEGERPARAMETER._serialized_end = 2322 + _PARAMETERIZEDTYPE_NULLABLEINTEGER._serialized_start = 2324 + _PARAMETERIZEDTYPE_NULLABLEINTEGER._serialized_end = 2363 + _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR._serialized_start = 2366 + _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR._serialized_end = 2558 + _PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR._serialized_start = 2561 + _PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR._serialized_end = 2751 + _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY._serialized_start = 2754 + _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY._serialized_end = 2948 + _PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL._serialized_start = 2951 + _PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL._serialized_end = 3209 + _PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY._serialized_start = 3212 + _PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY._serialized_end = 3412 + _PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND._serialized_start = 3415 + _PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND._serialized_end = 3620 + _PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIME._serialized_start = 3623 + _PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIME._serialized_end = 3825 + _PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP._serialized_start = 3828 + _PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP._serialized_end = 4035 + _PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ._serialized_start = 4038 + _PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ._serialized_end = 4247 + _PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT._serialized_start = 4250 + _PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT._serialized_end = 4423 + _PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT._serialized_start = 4425 + _PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT._serialized_end = 4543 + _PARAMETERIZEDTYPE_PARAMETERIZEDLIST._serialized_start = 4546 + _PARAMETERIZEDTYPE_PARAMETERIZEDLIST._serialized_end = 4715 + _PARAMETERIZEDTYPE_PARAMETERIZEDMAP._serialized_start = 4718 + _PARAMETERIZEDTYPE_PARAMETERIZEDMAP._serialized_end = 4932 + _PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED._serialized_start = 4935 + _PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED._serialized_end = 5100 + _PARAMETERIZEDTYPE_INTEGEROPTION._serialized_start = 5103 + _PARAMETERIZEDTYPE_INTEGEROPTION._serialized_end = 5237 \ No newline at end of file diff --git a/src/substrait/gen/proto/plan_pb2.py b/src/substrait/gen/proto/plan_pb2.py index ef87a85..6cad878 100644 --- a/src/substrait/gen/proto/plan_pb2.py +++ b/src/substrait/gen/proto/plan_pb2.py @@ -1,27 +1,27 @@ """Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/plan.proto') _sym_db = _symbol_database.Default() from ..proto import algebra_pb2 as proto_dot_algebra__pb2 from ..proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/plan.proto\x12\x05proto\x1a\x13proto/algebra.proto\x1a!proto/extensions/extensions.proto"[\n\x07PlanRel\x12\x1e\n\x03rel\x18\x01 \x01(\x0b2\n.proto.RelH\x00R\x03rel\x12$\n\x04root\x18\x02 \x01(\x0b2\x0e.proto.RelRootH\x00R\x04rootB\n\n\x08rel_type"\xcc\x03\n\x04Plan\x12(\n\x07version\x18\x06 \x01(\x0b2\x0e.proto.VersionR\x07version\x12K\n\x0eextension_uris\x18\x01 \x03(\x0b2$.proto.extensions.SimpleExtensionURIR\rextensionUris\x12L\n\nextensions\x18\x02 \x03(\x0b2,.proto.extensions.SimpleExtensionDeclarationR\nextensions\x12,\n\trelations\x18\x03 \x03(\x0b2\x0e.proto.PlanRelR\trelations\x12T\n\x13advanced_extensions\x18\x04 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x12advancedExtensions\x12,\n\x12expected_type_urls\x18\x05 \x03(\tR\x10expectedTypeUrls\x12M\n\x12parameter_bindings\x18\x07 \x03(\x0b2\x1e.proto.DynamicParameterBindingR\x11parameterBindings"7\n\x0bPlanVersion\x12(\n\x07version\x18\x06 \x01(\x0b2\x0e.proto.VersionR\x07version"\xa9\x01\n\x07Version\x12!\n\x0cmajor_number\x18\x01 \x01(\rR\x0bmajorNumber\x12!\n\x0cminor_number\x18\x02 \x01(\rR\x0bminorNumber\x12!\n\x0cpatch_number\x18\x03 \x01(\rR\x0bpatchNumber\x12\x19\n\x08git_hash\x18\x04 \x01(\tR\x07gitHash\x12\x1a\n\x08producer\x18\x05 \x01(\tR\x08producer"u\n\x17DynamicParameterBinding\x12)\n\x10parameter_anchor\x18\x01 \x01(\rR\x0fparameterAnchor\x12/\n\x05value\x18\x02 \x01(\x0b2\x19.proto.Expression.LiteralR\x05valueB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.plan_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _globals['_PLANREL']._serialized_start = 83 - _globals['_PLANREL']._serialized_end = 174 - _globals['_PLAN']._serialized_start = 177 - _globals['_PLAN']._serialized_end = 637 - _globals['_PLANVERSION']._serialized_start = 639 - _globals['_PLANVERSION']._serialized_end = 694 - _globals['_VERSION']._serialized_start = 697 - _globals['_VERSION']._serialized_end = 866 - _globals['_DYNAMICPARAMETERBINDING']._serialized_start = 868 - _globals['_DYNAMICPARAMETERBINDING']._serialized_end = 985 \ No newline at end of file +from ..proto import type_pb2 as proto_dot_type__pb2 +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/plan.proto\x12\x05proto\x1a\x13proto/algebra.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/type.proto"[\n\x07PlanRel\x12\x1e\n\x03rel\x18\x01 \x01(\x0b2\n.proto.RelH\x00R\x03rel\x12$\n\x04root\x18\x02 \x01(\x0b2\x0e.proto.RelRootH\x00R\x04rootB\n\n\x08rel_type"\xd2\x04\n\x04Plan\x12(\n\x07version\x18\x06 \x01(\x0b2\x0e.proto.VersionR\x07version\x12O\n\x0eextension_uris\x18\x01 \x03(\x0b2$.proto.extensions.SimpleExtensionURIB\x02\x18\x01R\rextensionUris\x12K\n\x0eextension_urns\x18\x08 \x03(\x0b2$.proto.extensions.SimpleExtensionURNR\rextensionUrns\x12L\n\nextensions\x18\x02 \x03(\x0b2,.proto.extensions.SimpleExtensionDeclarationR\nextensions\x12,\n\trelations\x18\x03 \x03(\x0b2\x0e.proto.PlanRelR\trelations\x12T\n\x13advanced_extensions\x18\x04 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x12advancedExtensions\x12,\n\x12expected_type_urls\x18\x05 \x03(\tR\x10expectedTypeUrls\x12M\n\x12parameter_bindings\x18\x07 \x03(\x0b2\x1e.proto.DynamicParameterBindingR\x11parameterBindings\x123\n\x0ctype_aliases\x18\t \x03(\x0b2\x10.proto.TypeAliasR\x0btypeAliases"7\n\x0bPlanVersion\x12(\n\x07version\x18\x06 \x01(\x0b2\x0e.proto.VersionR\x07version"\xa9\x01\n\x07Version\x12!\n\x0cmajor_number\x18\x01 \x01(\rR\x0bmajorNumber\x12!\n\x0cminor_number\x18\x02 \x01(\rR\x0bminorNumber\x12!\n\x0cpatch_number\x18\x03 \x01(\rR\x0bpatchNumber\x12\x19\n\x08git_hash\x18\x04 \x01(\tR\x07gitHash\x12\x1a\n\x08producer\x18\x05 \x01(\tR\x08producer"u\n\x17DynamicParameterBinding\x12)\n\x10parameter_anchor\x18\x01 \x01(\rR\x0fparameterAnchor\x12/\n\x05value\x18\x02 \x01(\x0b2\x19.proto.Expression.LiteralR\x05valueB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.plan_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _PLAN.fields_by_name['extension_uris']._options = None + _PLAN.fields_by_name['extension_uris']._serialized_options = b'\x18\x01' + _PLANREL._serialized_start = 101 + _PLANREL._serialized_end = 192 + _PLAN._serialized_start = 195 + _PLAN._serialized_end = 789 + _PLANVERSION._serialized_start = 791 + _PLANVERSION._serialized_end = 846 + _VERSION._serialized_start = 849 + _VERSION._serialized_end = 1018 + _DYNAMICPARAMETERBINDING._serialized_start = 1020 + _DYNAMICPARAMETERBINDING._serialized_end = 1137 \ No newline at end of file diff --git a/src/substrait/gen/proto/plan_pb2.pyi b/src/substrait/gen/proto/plan_pb2.pyi index 4ec1a66..fedd441 100644 --- a/src/substrait/gen/proto/plan_pb2.pyi +++ b/src/substrait/gen/proto/plan_pb2.pyi @@ -47,11 +47,13 @@ class Plan(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor VERSION_FIELD_NUMBER: builtins.int EXTENSION_URIS_FIELD_NUMBER: builtins.int + EXTENSION_URNS_FIELD_NUMBER: builtins.int EXTENSIONS_FIELD_NUMBER: builtins.int RELATIONS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSIONS_FIELD_NUMBER: builtins.int EXPECTED_TYPE_URLS_FIELD_NUMBER: builtins.int PARAMETER_BINDINGS_FIELD_NUMBER: builtins.int + TYPE_ALIASES_FIELD_NUMBER: builtins.int @property def version(self) -> global___Version: @@ -61,7 +63,13 @@ class Plan(google.protobuf.message.Message): @property def extension_uris(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[proto.extensions.extensions_pb2.SimpleExtensionURI]: - """a list of yaml specifications this plan may depend on""" + """a list of yaml specifications this plan may depend on + this is now deprecated and extension_urns should be used instead. + """ + + @property + def extension_urns(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[proto.extensions.extensions_pb2.SimpleExtensionURN]: + """a list of extension URNs this plan may depend on""" @property def extensions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[proto.extensions.extensions_pb2.SimpleExtensionDeclaration]: @@ -90,13 +98,24 @@ class Plan(google.protobuf.message.Message): Each binding maps a parameter_anchor to its corresponding runtime value. """ - def __init__(self, *, version: global___Version | None=..., extension_uris: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURI] | None=..., extensions: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionDeclaration] | None=..., relations: collections.abc.Iterable[global___PlanRel] | None=..., advanced_extensions: proto.extensions.extensions_pb2.AdvancedExtension | None=..., expected_type_urls: collections.abc.Iterable[builtins.str] | None=..., parameter_bindings: collections.abc.Iterable[global___DynamicParameterBinding] | None=...) -> None: + @property + def type_aliases(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[proto.type_pb2.TypeAlias]: + """An optional list of type aliases. Types can be specified here once, and + then referenced within the plan using the TypeAliasReference type. This + feature is intended to assist with the usability of parameterized types, + which require that all parameters be specified when they are declared. + This can bloat plans with redundant redeclarations, especially if the + parameterized types being declared have many parameters (e.g., struct with + many fields, nested parameterized types, string as a type parameter). + """ + + def __init__(self, *, version: global___Version | None=..., extension_uris: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURI] | None=..., extension_urns: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURN] | None=..., extensions: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionDeclaration] | None=..., relations: collections.abc.Iterable[global___PlanRel] | None=..., advanced_extensions: proto.extensions.extensions_pb2.AdvancedExtension | None=..., expected_type_urls: collections.abc.Iterable[builtins.str] | None=..., parameter_bindings: collections.abc.Iterable[global___DynamicParameterBinding] | None=..., type_aliases: collections.abc.Iterable[proto.type_pb2.TypeAlias] | None=...) -> None: ... def HasField(self, field_name: typing.Literal['advanced_extensions', b'advanced_extensions', 'version', b'version']) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal['advanced_extensions', b'advanced_extensions', 'expected_type_urls', b'expected_type_urls', 'extension_uris', b'extension_uris', 'extensions', b'extensions', 'parameter_bindings', b'parameter_bindings', 'relations', b'relations', 'version', b'version']) -> None: + def ClearField(self, field_name: typing.Literal['advanced_extensions', b'advanced_extensions', 'expected_type_urls', b'expected_type_urls', 'extension_uris', b'extension_uris', 'extension_urns', b'extension_urns', 'extensions', b'extensions', 'parameter_bindings', b'parameter_bindings', 'relations', b'relations', 'type_aliases', b'type_aliases', 'version', b'version']) -> None: ... global___Plan = Plan diff --git a/src/substrait/gen/proto/type_expressions_pb2.py b/src/substrait/gen/proto/type_expressions_pb2.py index c1adae7..fdb8953 100644 --- a/src/substrait/gen/proto/type_expressions_pb2.py +++ b/src/substrait/gen/proto/type_expressions_pb2.py @@ -1,68 +1,65 @@ """Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/type_expressions.proto') _sym_db = _symbol_database.Default() from ..proto import type_pb2 as proto_dot_type__pb2 DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cproto/type_expressions.proto\x12\x05proto\x1a\x10proto/type.proto"\xfc/\n\x14DerivationExpression\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12*\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeB\x02\x18\x01H\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x12V\n\x0cinterval_day\x18\x14 \x01(\x0b21.proto.DerivationExpression.ExpressionIntervalDayH\x00R\x0bintervalDay\x12e\n\x11interval_compound\x18* \x01(\x0b26.proto.DerivationExpression.ExpressionIntervalCompoundH\x00R\x10intervalCompound\x12P\n\nfixed_char\x18\x15 \x01(\x0b2/.proto.DerivationExpression.ExpressionFixedCharH\x00R\tfixedChar\x12I\n\x07varchar\x18\x16 \x01(\x0b2-.proto.DerivationExpression.ExpressionVarCharH\x00R\x07varchar\x12V\n\x0cfixed_binary\x18\x17 \x01(\x0b21.proto.DerivationExpression.ExpressionFixedBinaryH\x00R\x0bfixedBinary\x12I\n\x07decimal\x18\x18 \x01(\x0b2-.proto.DerivationExpression.ExpressionDecimalH\x00R\x07decimal\x12\\\n\x0eprecision_time\x18+ \x01(\x0b23.proto.DerivationExpression.ExpressionPrecisionTimeH\x00R\rprecisionTime\x12k\n\x13precision_timestamp\x18( \x01(\x0b28.proto.DerivationExpression.ExpressionPrecisionTimestampH\x00R\x12precisionTimestamp\x12r\n\x16precision_timestamp_tz\x18) \x01(\x0b2:.proto.DerivationExpression.ExpressionPrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12F\n\x06struct\x18\x19 \x01(\x0b2,.proto.DerivationExpression.ExpressionStructH\x00R\x06struct\x12@\n\x04list\x18\x1b \x01(\x0b2*.proto.DerivationExpression.ExpressionListH\x00R\x04list\x12=\n\x03map\x18\x1c \x01(\x0b2).proto.DerivationExpression.ExpressionMapH\x00R\x03map\x12V\n\x0cuser_defined\x18\x1e \x01(\x0b21.proto.DerivationExpression.ExpressionUserDefinedH\x00R\x0buserDefined\x126\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x120\n\x13type_parameter_name\x18! \x01(\tH\x00R\x11typeParameterName\x126\n\x16integer_parameter_name\x18" \x01(\tH\x00R\x14integerParameterName\x12)\n\x0finteger_literal\x18# \x01(\x05H\x00R\x0eintegerLiteral\x12@\n\x08unary_op\x18$ \x01(\x0b2#.proto.DerivationExpression.UnaryOpH\x00R\x07unaryOp\x12C\n\tbinary_op\x18% \x01(\x0b2$.proto.DerivationExpression.BinaryOpH\x00R\x08binaryOp\x12=\n\x07if_else\x18& \x01(\x0b2".proto.DerivationExpression.IfElseH\x00R\x06ifElse\x12R\n\x0ereturn_program\x18\' \x01(\x0b2).proto.DerivationExpression.ReturnProgramH\x00R\rreturnProgram\x1a\xb2\x01\n\x13ExpressionFixedChar\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb0\x01\n\x11ExpressionVarChar\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb4\x01\n\x15ExpressionFixedBinary\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x11ExpressionDecimal\x121\n\x05scale\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x05scale\x129\n\tprecision\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x17ExpressionPrecisionTime\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc1\x01\n\x1cExpressionPrecisionTimestamp\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xba\x01\n\x15ExpressionIntervalDay\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbf\x01\n\x1aExpressionIntervalCompound\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc3\x01\n\x1eExpressionPrecisionTimestampTZ\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xad\x01\n\x10ExpressionStruct\x121\n\x05types\x18\x01 \x03(\x0b2\x1b.proto.DerivationExpressionR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1as\n\x15ExpressionNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12D\n\x06struct\x18\x02 \x01(\x0b2,.proto.DerivationExpression.ExpressionStructR\x06struct\x1a\xa9\x01\n\x0eExpressionList\x12/\n\x04type\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd9\x01\n\rExpressionMap\x12-\n\x03key\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x03key\x121\n\x05value\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa2\x01\n\x15ExpressionUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc0\x01\n\x06IfElse\x12>\n\x0cif_condition\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x0bifCondition\x128\n\tif_return\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x08ifReturn\x12<\n\x0belse_return\x18\x03 \x01(\x0b2\x1b.proto.DerivationExpressionR\nelseReturn\x1a\xcf\x01\n\x07UnaryOp\x12H\n\x07op_type\x18\x01 \x01(\x0e2/.proto.DerivationExpression.UnaryOp.UnaryOpTypeR\x06opType\x12-\n\x03arg\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x03arg"K\n\x0bUnaryOpType\x12\x1d\n\x19UNARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19UNARY_OP_TYPE_BOOLEAN_NOT\x10\x01\x1a\xa8\x04\n\x08BinaryOp\x12J\n\x07op_type\x18\x01 \x01(\x0e21.proto.DerivationExpression.BinaryOp.BinaryOpTypeR\x06opType\x12/\n\x04arg1\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04arg1\x12/\n\x04arg2\x18\x03 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04arg2"\xed\x02\n\x0cBinaryOpType\x12\x1e\n\x1aBINARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13BINARY_OP_TYPE_PLUS\x10\x01\x12\x18\n\x14BINARY_OP_TYPE_MINUS\x10\x02\x12\x1b\n\x17BINARY_OP_TYPE_MULTIPLY\x10\x03\x12\x19\n\x15BINARY_OP_TYPE_DIVIDE\x10\x04\x12\x16\n\x12BINARY_OP_TYPE_MIN\x10\x05\x12\x16\n\x12BINARY_OP_TYPE_MAX\x10\x06\x12\x1f\n\x1bBINARY_OP_TYPE_GREATER_THAN\x10\x07\x12\x1c\n\x18BINARY_OP_TYPE_LESS_THAN\x10\x08\x12\x16\n\x12BINARY_OP_TYPE_AND\x10\t\x12\x15\n\x11BINARY_OP_TYPE_OR\x10\n\x12\x19\n\x15BINARY_OP_TYPE_EQUALS\x10\x0b\x12\x19\n\x15BINARY_OP_TYPE_COVERS\x10\x0c\x1a\x8e\x02\n\rReturnProgram\x12V\n\x0bassignments\x18\x01 \x03(\x0b24.proto.DerivationExpression.ReturnProgram.AssignmentR\x0bassignments\x12F\n\x10final_expression\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x0ffinalExpression\x1a]\n\nAssignment\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12;\n\nexpression\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\nexpressionB\x06\n\x04kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.type_expressions_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp']._loaded_options = None - _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp']._serialized_options = b'\x18\x01' - _globals['_DERIVATIONEXPRESSION'].fields_by_name['time']._loaded_options = None - _globals['_DERIVATIONEXPRESSION'].fields_by_name['time']._serialized_options = b'\x18\x01' - _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp_tz']._loaded_options = None - _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' - _globals['_DERIVATIONEXPRESSION'].fields_by_name['user_defined_pointer']._loaded_options = None - _globals['_DERIVATIONEXPRESSION'].fields_by_name['user_defined_pointer']._serialized_options = b'\x18\x01' - _globals['_DERIVATIONEXPRESSION']._serialized_start = 58 - _globals['_DERIVATIONEXPRESSION']._serialized_end = 6198 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR']._serialized_start = 2363 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR']._serialized_end = 2541 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONVARCHAR']._serialized_start = 2544 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONVARCHAR']._serialized_end = 2720 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY']._serialized_start = 2723 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY']._serialized_end = 2903 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONDECIMAL']._serialized_start = 2906 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONDECIMAL']._serialized_end = 3139 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIME']._serialized_start = 3142 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIME']._serialized_end = 3330 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP']._serialized_start = 3333 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP']._serialized_end = 3526 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY']._serialized_start = 3529 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY']._serialized_end = 3715 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND']._serialized_start = 3718 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND']._serialized_end = 3909 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ']._serialized_start = 3912 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ']._serialized_end = 4107 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONSTRUCT']._serialized_start = 4110 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONSTRUCT']._serialized_end = 4283 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT']._serialized_start = 4285 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT']._serialized_end = 4400 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONLIST']._serialized_start = 4403 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONLIST']._serialized_end = 4572 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONMAP']._serialized_start = 4575 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONMAP']._serialized_end = 4792 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED']._serialized_start = 4795 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED']._serialized_end = 4957 - _globals['_DERIVATIONEXPRESSION_IFELSE']._serialized_start = 4960 - _globals['_DERIVATIONEXPRESSION_IFELSE']._serialized_end = 5152 - _globals['_DERIVATIONEXPRESSION_UNARYOP']._serialized_start = 5155 - _globals['_DERIVATIONEXPRESSION_UNARYOP']._serialized_end = 5362 - _globals['_DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE']._serialized_start = 5287 - _globals['_DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE']._serialized_end = 5362 - _globals['_DERIVATIONEXPRESSION_BINARYOP']._serialized_start = 5365 - _globals['_DERIVATIONEXPRESSION_BINARYOP']._serialized_end = 5917 - _globals['_DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE']._serialized_start = 5552 - _globals['_DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE']._serialized_end = 5917 - _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM']._serialized_start = 5920 - _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM']._serialized_end = 6190 - _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT']._serialized_start = 6097 - _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT']._serialized_end = 6190 \ No newline at end of file +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.type_expressions_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _DERIVATIONEXPRESSION.fields_by_name['timestamp']._options = None + _DERIVATIONEXPRESSION.fields_by_name['timestamp']._serialized_options = b'\x18\x01' + _DERIVATIONEXPRESSION.fields_by_name['time']._options = None + _DERIVATIONEXPRESSION.fields_by_name['time']._serialized_options = b'\x18\x01' + _DERIVATIONEXPRESSION.fields_by_name['timestamp_tz']._options = None + _DERIVATIONEXPRESSION.fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' + _DERIVATIONEXPRESSION.fields_by_name['user_defined_pointer']._options = None + _DERIVATIONEXPRESSION.fields_by_name['user_defined_pointer']._serialized_options = b'\x18\x01' + _DERIVATIONEXPRESSION._serialized_start = 58 + _DERIVATIONEXPRESSION._serialized_end = 6198 + _DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR._serialized_start = 2363 + _DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR._serialized_end = 2541 + _DERIVATIONEXPRESSION_EXPRESSIONVARCHAR._serialized_start = 2544 + _DERIVATIONEXPRESSION_EXPRESSIONVARCHAR._serialized_end = 2720 + _DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY._serialized_start = 2723 + _DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY._serialized_end = 2903 + _DERIVATIONEXPRESSION_EXPRESSIONDECIMAL._serialized_start = 2906 + _DERIVATIONEXPRESSION_EXPRESSIONDECIMAL._serialized_end = 3139 + _DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIME._serialized_start = 3142 + _DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIME._serialized_end = 3330 + _DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP._serialized_start = 3333 + _DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP._serialized_end = 3526 + _DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY._serialized_start = 3529 + _DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY._serialized_end = 3715 + _DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND._serialized_start = 3718 + _DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND._serialized_end = 3909 + _DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ._serialized_start = 3912 + _DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ._serialized_end = 4107 + _DERIVATIONEXPRESSION_EXPRESSIONSTRUCT._serialized_start = 4110 + _DERIVATIONEXPRESSION_EXPRESSIONSTRUCT._serialized_end = 4283 + _DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT._serialized_start = 4285 + _DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT._serialized_end = 4400 + _DERIVATIONEXPRESSION_EXPRESSIONLIST._serialized_start = 4403 + _DERIVATIONEXPRESSION_EXPRESSIONLIST._serialized_end = 4572 + _DERIVATIONEXPRESSION_EXPRESSIONMAP._serialized_start = 4575 + _DERIVATIONEXPRESSION_EXPRESSIONMAP._serialized_end = 4792 + _DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED._serialized_start = 4795 + _DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED._serialized_end = 4957 + _DERIVATIONEXPRESSION_IFELSE._serialized_start = 4960 + _DERIVATIONEXPRESSION_IFELSE._serialized_end = 5152 + _DERIVATIONEXPRESSION_UNARYOP._serialized_start = 5155 + _DERIVATIONEXPRESSION_UNARYOP._serialized_end = 5362 + _DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE._serialized_start = 5287 + _DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE._serialized_end = 5362 + _DERIVATIONEXPRESSION_BINARYOP._serialized_start = 5365 + _DERIVATIONEXPRESSION_BINARYOP._serialized_end = 5917 + _DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE._serialized_start = 5552 + _DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE._serialized_end = 5917 + _DERIVATIONEXPRESSION_RETURNPROGRAM._serialized_start = 5920 + _DERIVATIONEXPRESSION_RETURNPROGRAM._serialized_end = 6190 + _DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT._serialized_start = 6097 + _DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT._serialized_end = 6190 \ No newline at end of file diff --git a/src/substrait/gen/proto/type_pb2.py b/src/substrait/gen/proto/type_pb2.py index 2c67564..b13d3ac 100644 --- a/src/substrait/gen/proto/type_pb2.py +++ b/src/substrait/gen/proto/type_pb2.py @@ -1,86 +1,87 @@ """Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/type.proto') _sym_db = _symbol_database.Default() from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/type.proto\x12\x05proto\x1a\x1bgoogle/protobuf/empty.proto"\xf3.\n\x04Type\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12&\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeH\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12<\n\x0cinterval_day\x18\x14 \x01(\x0b2\x17.proto.Type.IntervalDayH\x00R\x0bintervalDay\x12K\n\x11interval_compound\x18# \x01(\x0b2\x1c.proto.Type.IntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x126\n\nfixed_char\x18\x15 \x01(\x0b2\x15.proto.Type.FixedCharH\x00R\tfixedChar\x12/\n\x07varchar\x18\x16 \x01(\x0b2\x13.proto.Type.VarCharH\x00R\x07varchar\x12<\n\x0cfixed_binary\x18\x17 \x01(\x0b2\x17.proto.Type.FixedBinaryH\x00R\x0bfixedBinary\x12/\n\x07decimal\x18\x18 \x01(\x0b2\x13.proto.Type.DecimalH\x00R\x07decimal\x12B\n\x0eprecision_time\x18$ \x01(\x0b2\x19.proto.Type.PrecisionTimeH\x00R\rprecisionTime\x12Q\n\x13precision_timestamp\x18! \x01(\x0b2\x1e.proto.Type.PrecisionTimestampH\x00R\x12precisionTimestamp\x12X\n\x16precision_timestamp_tz\x18" \x01(\x0b2 .proto.Type.PrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12,\n\x06struct\x18\x19 \x01(\x0b2\x12.proto.Type.StructH\x00R\x06struct\x12&\n\x04list\x18\x1b \x01(\x0b2\x10.proto.Type.ListH\x00R\x04list\x12#\n\x03map\x18\x1c \x01(\x0b2\x0f.proto.Type.MapH\x00R\x03map\x12<\n\x0cuser_defined\x18\x1e \x01(\x0b2\x17.proto.Type.UserDefinedH\x00R\x0buserDefined\x12C\n\x1buser_defined_type_reference\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x18userDefinedTypeReference\x1a~\n\x07Boolean\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1ay\n\x02I8\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I16\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04FP32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04FP64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06String\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06Binary\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x80\x01\n\tTimestamp\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04Date\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04Time\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x01\n\x0bTimestampTZ\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x83\x01\n\x0cIntervalYear\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb3\x01\n\x0bIntervalDay\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12!\n\tprecision\x18\x03 \x01(\x05H\x00R\tprecision\x88\x01\x01B\x0c\n\n_precision\x1a\xa5\x01\n\x10IntervalCompound\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12\x1c\n\tprecision\x18\x03 \x01(\x05R\tprecision\x1a{\n\x04UUID\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x98\x01\n\tFixedChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x96\x01\n\x07VarChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9a\x01\n\x0bFixedBinary\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb2\x01\n\x07Decimal\x12\x14\n\x05scale\x18\x01 \x01(\x05R\x05scale\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa2\x01\n\rPrecisionTime\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa7\x01\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa9\x01\n\x14PrecisionTimestampTZ\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa0\x01\n\x06Struct\x12!\n\x05types\x18\x01 \x03(\x0b2\x0b.proto.TypeR\x05types\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9c\x01\n\x04List\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x03Map\x12\x1d\n\x03key\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x03key\x12!\n\x05value\x18\x02 \x01(\x0b2\x0b.proto.TypeR\x05value\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12>\n\x0ftype_parameters\x18\x04 \x03(\x0b2\x15.proto.Type.ParameterR\x0etypeParameters\x1a\xda\x01\n\tParameter\x12,\n\x04null\x18\x01 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x04null\x12*\n\tdata_type\x18\x02 \x01(\x0b2\x0b.proto.TypeH\x00R\x08dataType\x12\x1a\n\x07boolean\x18\x03 \x01(\x08H\x00R\x07boolean\x12\x1a\n\x07integer\x18\x04 \x01(\x03H\x00R\x07integer\x12\x14\n\x04enum\x18\x05 \x01(\tH\x00R\x04enum\x12\x18\n\x06string\x18\x06 \x01(\tH\x00R\x06stringB\x0b\n\tparameter"^\n\x0bNullability\x12\x1b\n\x17NULLABILITY_UNSPECIFIED\x10\x00\x12\x18\n\x14NULLABILITY_NULLABLE\x10\x01\x12\x18\n\x14NULLABILITY_REQUIRED\x10\x02B\x06\n\x04kind"O\n\x0bNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12*\n\x06struct\x18\x02 \x01(\x0b2\x12.proto.Type.StructR\x06structB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.type_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _globals['_TYPE'].fields_by_name['timestamp']._loaded_options = None - _globals['_TYPE'].fields_by_name['timestamp']._serialized_options = b'\x18\x01' - _globals['_TYPE'].fields_by_name['timestamp_tz']._loaded_options = None - _globals['_TYPE'].fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' - _globals['_TYPE'].fields_by_name['user_defined_type_reference']._loaded_options = None - _globals['_TYPE'].fields_by_name['user_defined_type_reference']._serialized_options = b'\x18\x01' - _globals['_TYPE']._serialized_start = 57 - _globals['_TYPE']._serialized_end = 6060 - _globals['_TYPE_BOOLEAN']._serialized_start = 1585 - _globals['_TYPE_BOOLEAN']._serialized_end = 1711 - _globals['_TYPE_I8']._serialized_start = 1713 - _globals['_TYPE_I8']._serialized_end = 1834 - _globals['_TYPE_I16']._serialized_start = 1836 - _globals['_TYPE_I16']._serialized_end = 1958 - _globals['_TYPE_I32']._serialized_start = 1960 - _globals['_TYPE_I32']._serialized_end = 2082 - _globals['_TYPE_I64']._serialized_start = 2084 - _globals['_TYPE_I64']._serialized_end = 2206 - _globals['_TYPE_FP32']._serialized_start = 2208 - _globals['_TYPE_FP32']._serialized_end = 2331 - _globals['_TYPE_FP64']._serialized_start = 2333 - _globals['_TYPE_FP64']._serialized_end = 2456 - _globals['_TYPE_STRING']._serialized_start = 2458 - _globals['_TYPE_STRING']._serialized_end = 2583 - _globals['_TYPE_BINARY']._serialized_start = 2585 - _globals['_TYPE_BINARY']._serialized_end = 2710 - _globals['_TYPE_TIMESTAMP']._serialized_start = 2713 - _globals['_TYPE_TIMESTAMP']._serialized_end = 2841 - _globals['_TYPE_DATE']._serialized_start = 2843 - _globals['_TYPE_DATE']._serialized_end = 2966 - _globals['_TYPE_TIME']._serialized_start = 2968 - _globals['_TYPE_TIME']._serialized_end = 3091 - _globals['_TYPE_TIMESTAMPTZ']._serialized_start = 3094 - _globals['_TYPE_TIMESTAMPTZ']._serialized_end = 3224 - _globals['_TYPE_INTERVALYEAR']._serialized_start = 3227 - _globals['_TYPE_INTERVALYEAR']._serialized_end = 3358 - _globals['_TYPE_INTERVALDAY']._serialized_start = 3361 - _globals['_TYPE_INTERVALDAY']._serialized_end = 3540 - _globals['_TYPE_INTERVALCOMPOUND']._serialized_start = 3543 - _globals['_TYPE_INTERVALCOMPOUND']._serialized_end = 3708 - _globals['_TYPE_UUID']._serialized_start = 3710 - _globals['_TYPE_UUID']._serialized_end = 3833 - _globals['_TYPE_FIXEDCHAR']._serialized_start = 3836 - _globals['_TYPE_FIXEDCHAR']._serialized_end = 3988 - _globals['_TYPE_VARCHAR']._serialized_start = 3991 - _globals['_TYPE_VARCHAR']._serialized_end = 4141 - _globals['_TYPE_FIXEDBINARY']._serialized_start = 4144 - _globals['_TYPE_FIXEDBINARY']._serialized_end = 4298 - _globals['_TYPE_DECIMAL']._serialized_start = 4301 - _globals['_TYPE_DECIMAL']._serialized_end = 4479 - _globals['_TYPE_PRECISIONTIME']._serialized_start = 4482 - _globals['_TYPE_PRECISIONTIME']._serialized_end = 4644 - _globals['_TYPE_PRECISIONTIMESTAMP']._serialized_start = 4647 - _globals['_TYPE_PRECISIONTIMESTAMP']._serialized_end = 4814 - _globals['_TYPE_PRECISIONTIMESTAMPTZ']._serialized_start = 4817 - _globals['_TYPE_PRECISIONTIMESTAMPTZ']._serialized_end = 4986 - _globals['_TYPE_STRUCT']._serialized_start = 4989 - _globals['_TYPE_STRUCT']._serialized_end = 5149 - _globals['_TYPE_LIST']._serialized_start = 5152 - _globals['_TYPE_LIST']._serialized_end = 5308 - _globals['_TYPE_MAP']._serialized_start = 5311 - _globals['_TYPE_MAP']._serialized_end = 5499 - _globals['_TYPE_USERDEFINED']._serialized_start = 5502 - _globals['_TYPE_USERDEFINED']._serialized_end = 5735 - _globals['_TYPE_PARAMETER']._serialized_start = 5738 - _globals['_TYPE_PARAMETER']._serialized_end = 5956 - _globals['_TYPE_NULLABILITY']._serialized_start = 5958 - _globals['_TYPE_NULLABILITY']._serialized_end = 6052 - _globals['_NAMEDSTRUCT']._serialized_start = 6062 - _globals['_NAMEDSTRUCT']._serialized_end = 6141 \ No newline at end of file +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/type.proto\x12\x05proto\x1a\x1bgoogle/protobuf/empty.proto"\xaf0\n\x04Type\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12&\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeH\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12<\n\x0cinterval_day\x18\x14 \x01(\x0b2\x17.proto.Type.IntervalDayH\x00R\x0bintervalDay\x12K\n\x11interval_compound\x18# \x01(\x0b2\x1c.proto.Type.IntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x126\n\nfixed_char\x18\x15 \x01(\x0b2\x15.proto.Type.FixedCharH\x00R\tfixedChar\x12/\n\x07varchar\x18\x16 \x01(\x0b2\x13.proto.Type.VarCharH\x00R\x07varchar\x12<\n\x0cfixed_binary\x18\x17 \x01(\x0b2\x17.proto.Type.FixedBinaryH\x00R\x0bfixedBinary\x12/\n\x07decimal\x18\x18 \x01(\x0b2\x13.proto.Type.DecimalH\x00R\x07decimal\x12B\n\x0eprecision_time\x18$ \x01(\x0b2\x19.proto.Type.PrecisionTimeH\x00R\rprecisionTime\x12Q\n\x13precision_timestamp\x18! \x01(\x0b2\x1e.proto.Type.PrecisionTimestampH\x00R\x12precisionTimestamp\x12X\n\x16precision_timestamp_tz\x18" \x01(\x0b2 .proto.Type.PrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12,\n\x06struct\x18\x19 \x01(\x0b2\x12.proto.Type.StructH\x00R\x06struct\x12&\n\x04list\x18\x1b \x01(\x0b2\x10.proto.Type.ListH\x00R\x04list\x12#\n\x03map\x18\x1c \x01(\x0b2\x0f.proto.Type.MapH\x00R\x03map\x12<\n\x0cuser_defined\x18\x1e \x01(\x0b2\x17.proto.Type.UserDefinedH\x00R\x0buserDefined\x12C\n\x1buser_defined_type_reference\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x18userDefinedTypeReference\x126\n\x05alias\x18% \x01(\x0b2\x1e.proto.Type.TypeAliasReferenceH\x00R\x05alias\x1a~\n\x07Boolean\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1ay\n\x02I8\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I16\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04FP32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04FP64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06String\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06Binary\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x80\x01\n\tTimestamp\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04Date\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04Time\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x01\n\x0bTimestampTZ\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x83\x01\n\x0cIntervalYear\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb3\x01\n\x0bIntervalDay\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12!\n\tprecision\x18\x03 \x01(\x05H\x00R\tprecision\x88\x01\x01B\x0c\n\n_precision\x1a\xa5\x01\n\x10IntervalCompound\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12\x1c\n\tprecision\x18\x03 \x01(\x05R\tprecision\x1a{\n\x04UUID\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x98\x01\n\tFixedChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x96\x01\n\x07VarChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9a\x01\n\x0bFixedBinary\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb2\x01\n\x07Decimal\x12\x14\n\x05scale\x18\x01 \x01(\x05R\x05scale\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa2\x01\n\rPrecisionTime\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa7\x01\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa9\x01\n\x14PrecisionTimestampTZ\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa0\x01\n\x06Struct\x12!\n\x05types\x18\x01 \x03(\x0b2\x0b.proto.TypeR\x05types\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9c\x01\n\x04List\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x03Map\x12\x1d\n\x03key\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x03key\x12!\n\x05value\x18\x02 \x01(\x0b2\x0b.proto.TypeR\x05value\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12>\n\x0ftype_parameters\x18\x04 \x03(\x0b2\x15.proto.Type.ParameterR\x0etypeParameters\x1a\xda\x01\n\tParameter\x12,\n\x04null\x18\x01 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x04null\x12*\n\tdata_type\x18\x02 \x01(\x0b2\x0b.proto.TypeH\x00R\x08dataType\x12\x1a\n\x07boolean\x18\x03 \x01(\x08H\x00R\x07boolean\x12\x1a\n\x07integer\x18\x04 \x01(\x03H\x00R\x07integer\x12\x14\n\x04enum\x18\x05 \x01(\tH\x00R\x04enum\x12\x18\n\x06string\x18\x06 \x01(\tH\x00R\x06stringB\x0b\n\tparameter\x1a\x81\x01\n\x12TypeAliasReference\x120\n\x14type_alias_reference\x18\x01 \x01(\rR\x12typeAliasReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability"^\n\x0bNullability\x12\x1b\n\x17NULLABILITY_UNSPECIFIED\x10\x00\x12\x18\n\x14NULLABILITY_NULLABLE\x10\x01\x12\x18\n\x14NULLABILITY_REQUIRED\x10\x02B\x06\n\x04kind"X\n\tTypeAlias\x12*\n\x11type_alias_anchor\x18\x01 \x01(\rR\x0ftypeAliasAnchor\x12\x1f\n\x04type\x18\x02 \x01(\x0b2\x0b.proto.TypeR\x04type"O\n\x0bNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12*\n\x06struct\x18\x02 \x01(\x0b2\x12.proto.Type.StructR\x06structB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.type_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + DESCRIPTOR._options = None + DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _TYPE.fields_by_name['timestamp']._options = None + _TYPE.fields_by_name['timestamp']._serialized_options = b'\x18\x01' + _TYPE.fields_by_name['timestamp_tz']._options = None + _TYPE.fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' + _TYPE.fields_by_name['user_defined_type_reference']._options = None + _TYPE.fields_by_name['user_defined_type_reference']._serialized_options = b'\x18\x01' + _TYPE._serialized_start = 57 + _TYPE._serialized_end = 6248 + _TYPE_BOOLEAN._serialized_start = 1641 + _TYPE_BOOLEAN._serialized_end = 1767 + _TYPE_I8._serialized_start = 1769 + _TYPE_I8._serialized_end = 1890 + _TYPE_I16._serialized_start = 1892 + _TYPE_I16._serialized_end = 2014 + _TYPE_I32._serialized_start = 2016 + _TYPE_I32._serialized_end = 2138 + _TYPE_I64._serialized_start = 2140 + _TYPE_I64._serialized_end = 2262 + _TYPE_FP32._serialized_start = 2264 + _TYPE_FP32._serialized_end = 2387 + _TYPE_FP64._serialized_start = 2389 + _TYPE_FP64._serialized_end = 2512 + _TYPE_STRING._serialized_start = 2514 + _TYPE_STRING._serialized_end = 2639 + _TYPE_BINARY._serialized_start = 2641 + _TYPE_BINARY._serialized_end = 2766 + _TYPE_TIMESTAMP._serialized_start = 2769 + _TYPE_TIMESTAMP._serialized_end = 2897 + _TYPE_DATE._serialized_start = 2899 + _TYPE_DATE._serialized_end = 3022 + _TYPE_TIME._serialized_start = 3024 + _TYPE_TIME._serialized_end = 3147 + _TYPE_TIMESTAMPTZ._serialized_start = 3150 + _TYPE_TIMESTAMPTZ._serialized_end = 3280 + _TYPE_INTERVALYEAR._serialized_start = 3283 + _TYPE_INTERVALYEAR._serialized_end = 3414 + _TYPE_INTERVALDAY._serialized_start = 3417 + _TYPE_INTERVALDAY._serialized_end = 3596 + _TYPE_INTERVALCOMPOUND._serialized_start = 3599 + _TYPE_INTERVALCOMPOUND._serialized_end = 3764 + _TYPE_UUID._serialized_start = 3766 + _TYPE_UUID._serialized_end = 3889 + _TYPE_FIXEDCHAR._serialized_start = 3892 + _TYPE_FIXEDCHAR._serialized_end = 4044 + _TYPE_VARCHAR._serialized_start = 4047 + _TYPE_VARCHAR._serialized_end = 4197 + _TYPE_FIXEDBINARY._serialized_start = 4200 + _TYPE_FIXEDBINARY._serialized_end = 4354 + _TYPE_DECIMAL._serialized_start = 4357 + _TYPE_DECIMAL._serialized_end = 4535 + _TYPE_PRECISIONTIME._serialized_start = 4538 + _TYPE_PRECISIONTIME._serialized_end = 4700 + _TYPE_PRECISIONTIMESTAMP._serialized_start = 4703 + _TYPE_PRECISIONTIMESTAMP._serialized_end = 4870 + _TYPE_PRECISIONTIMESTAMPTZ._serialized_start = 4873 + _TYPE_PRECISIONTIMESTAMPTZ._serialized_end = 5042 + _TYPE_STRUCT._serialized_start = 5045 + _TYPE_STRUCT._serialized_end = 5205 + _TYPE_LIST._serialized_start = 5208 + _TYPE_LIST._serialized_end = 5364 + _TYPE_MAP._serialized_start = 5367 + _TYPE_MAP._serialized_end = 5555 + _TYPE_USERDEFINED._serialized_start = 5558 + _TYPE_USERDEFINED._serialized_end = 5791 + _TYPE_PARAMETER._serialized_start = 5794 + _TYPE_PARAMETER._serialized_end = 6012 + _TYPE_TYPEALIASREFERENCE._serialized_start = 6015 + _TYPE_TYPEALIASREFERENCE._serialized_end = 6144 + _TYPE_NULLABILITY._serialized_start = 6146 + _TYPE_NULLABILITY._serialized_end = 6240 + _TYPEALIAS._serialized_start = 6250 + _TYPEALIAS._serialized_end = 6338 + _NAMEDSTRUCT._serialized_start = 6340 + _NAMEDSTRUCT._serialized_end = 6419 \ No newline at end of file diff --git a/src/substrait/gen/proto/type_pb2.pyi b/src/substrait/gen/proto/type_pb2.pyi index 76e2ec6..4e0b797 100644 --- a/src/substrait/gen/proto/type_pb2.pyi +++ b/src/substrait/gen/proto/type_pb2.pyi @@ -533,6 +533,21 @@ class Type(google.protobuf.message.Message): def WhichOneof(self, oneof_group: typing.Literal['parameter', b'parameter']) -> typing.Literal['null', 'data_type', 'boolean', 'integer', 'enum', 'string'] | None: ... + + @typing.final + class TypeAliasReference(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_ALIAS_REFERENCE_FIELD_NUMBER: builtins.int + NULLABILITY_FIELD_NUMBER: builtins.int + type_alias_reference: builtins.int + nullability: global___Type.Nullability.ValueType + 'Nullability of the referenced type alias. Must be specified.' + + def __init__(self, *, type_alias_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_alias_reference', b'type_alias_reference']) -> None: + ... BOOL_FIELD_NUMBER: builtins.int I8_FIELD_NUMBER: builtins.int I16_FIELD_NUMBER: builtins.int @@ -562,6 +577,7 @@ class Type(google.protobuf.message.Message): MAP_FIELD_NUMBER: builtins.int USER_DEFINED_FIELD_NUMBER: builtins.int USER_DEFINED_TYPE_REFERENCE_FIELD_NUMBER: builtins.int + ALIAS_FIELD_NUMBER: builtins.int user_defined_type_reference: builtins.int 'Deprecated in favor of user_defined, which allows nullability and\n variations to be specified. If user_defined_type_reference is\n encountered, treat it as being non-nullable and having the default\n variation.\n ' @@ -677,19 +693,52 @@ class Type(google.protobuf.message.Message): def user_defined(self) -> global___Type.UserDefined: ... - def __init__(self, *, bool: global___Type.Boolean | None=..., i8: global___Type.I8 | None=..., i16: global___Type.I16 | None=..., i32: global___Type.I32 | None=..., i64: global___Type.I64 | None=..., fp32: global___Type.FP32 | None=..., fp64: global___Type.FP64 | None=..., string: global___Type.String | None=..., binary: global___Type.Binary | None=..., timestamp: global___Type.Timestamp | None=..., date: global___Type.Date | None=..., time: global___Type.Time | None=..., interval_year: global___Type.IntervalYear | None=..., interval_day: global___Type.IntervalDay | None=..., interval_compound: global___Type.IntervalCompound | None=..., timestamp_tz: global___Type.TimestampTZ | None=..., uuid: global___Type.UUID | None=..., fixed_char: global___Type.FixedChar | None=..., varchar: global___Type.VarChar | None=..., fixed_binary: global___Type.FixedBinary | None=..., decimal: global___Type.Decimal | None=..., precision_time: global___Type.PrecisionTime | None=..., precision_timestamp: global___Type.PrecisionTimestamp | None=..., precision_timestamp_tz: global___Type.PrecisionTimestampTZ | None=..., struct: global___Type.Struct | None=..., list: global___Type.List | None=..., map: global___Type.Map | None=..., user_defined: global___Type.UserDefined | None=..., user_defined_type_reference: builtins.int=...) -> None: + @property + def alias(self) -> global___Type.TypeAliasReference: + """Reference an aliased type in `Plan.type_aliases`.""" + + def __init__(self, *, bool: global___Type.Boolean | None=..., i8: global___Type.I8 | None=..., i16: global___Type.I16 | None=..., i32: global___Type.I32 | None=..., i64: global___Type.I64 | None=..., fp32: global___Type.FP32 | None=..., fp64: global___Type.FP64 | None=..., string: global___Type.String | None=..., binary: global___Type.Binary | None=..., timestamp: global___Type.Timestamp | None=..., date: global___Type.Date | None=..., time: global___Type.Time | None=..., interval_year: global___Type.IntervalYear | None=..., interval_day: global___Type.IntervalDay | None=..., interval_compound: global___Type.IntervalCompound | None=..., timestamp_tz: global___Type.TimestampTZ | None=..., uuid: global___Type.UUID | None=..., fixed_char: global___Type.FixedChar | None=..., varchar: global___Type.VarChar | None=..., fixed_binary: global___Type.FixedBinary | None=..., decimal: global___Type.Decimal | None=..., precision_time: global___Type.PrecisionTime | None=..., precision_timestamp: global___Type.PrecisionTimestamp | None=..., precision_timestamp_tz: global___Type.PrecisionTimestampTZ | None=..., struct: global___Type.Struct | None=..., list: global___Type.List | None=..., map: global___Type.Map | None=..., user_defined: global___Type.UserDefined | None=..., user_defined_type_reference: builtins.int=..., alias: global___Type.TypeAliasReference | None=...) -> None: ... - def HasField(self, field_name: typing.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool: + def HasField(self, field_name: typing.Literal['alias', b'alias', 'binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> None: + def ClearField(self, field_name: typing.Literal['alias', b'alias', 'binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal['kind', b'kind']) -> typing.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'interval_compound', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'precision_time', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'list', 'map', 'user_defined', 'user_defined_type_reference'] | None: + def WhichOneof(self, oneof_group: typing.Literal['kind', b'kind']) -> typing.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'interval_compound', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'precision_time', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'list', 'map', 'user_defined', 'user_defined_type_reference', 'alias'] | None: ... global___Type = Type +@typing.final +class TypeAlias(google.protobuf.message.Message): + DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_ALIAS_ANCHOR_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int + type_alias_anchor: builtins.int + 'A surrogate key used in the context of a single plan to reference a\n specific type alias.\n ' + + @property + def type(self) -> global___Type: + """A concrete type to be aliased. + + * All type parameters must be specified. + * Cannot directly be another alias. + * Type parameters can reference other aliased types as long as no circular dependencies are introduced. + * Nullability of aliased type is **ignored**. Nullability must be specified when the aliased type is referenced. + * Type variation may be specified in the aliased type. + """ + + def __init__(self, *, type_alias_anchor: builtins.int=..., type: global___Type | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['type', b'type', 'type_alias_anchor', b'type_alias_anchor']) -> None: + ... +global___TypeAlias = TypeAlias + @typing.final class NamedStruct(google.protobuf.message.Message): """A message for modeling name/type pairs. diff --git a/src/substrait/utils/__init__.py b/src/substrait/utils/__init__.py index 0a8e5b4..9316e11 100644 --- a/src/substrait/utils/__init__.py +++ b/src/substrait/utils/__init__.py @@ -20,19 +20,19 @@ def type_num_names(typ: stp.Type): return 1 -def merge_extension_uris(*extension_uris: Iterable[ste.SimpleExtensionURI]): - """Merges multiple sets of SimpleExtensionURI objects into a single set. +def merge_extension_urns(*extension_urns: Iterable[ste.SimpleExtensionURN]): + """Merges multiple sets of SimpleExtensionURN objects into a single set. The order of extensions is kept intact, while duplicates are discarded. Assumes that there are no collisions (different extensions having identical anchors). """ - seen_uris = set() + seen_urns = set() ret = [] - for uris in extension_uris: - for uri in uris: - if uri.uri not in seen_uris: - seen_uris.add(uri.uri) - ret.append(uri) + for urns in extension_urns: + for urn in urns: + if urn.urn not in seen_urns: + seen_urns.add(urn.urn) + ret.append(urn) return ret @@ -52,7 +52,7 @@ def merge_extension_declarations( for declaration in declarations: if declaration.WhichOneof("mapping_type") == "extension_function": ident = ( - declaration.extension_function.extension_uri_reference, + declaration.extension_function.extension_urn_reference, declaration.extension_function.name, ) if ident not in seen_extension_functions: diff --git a/tests/builders/extended_expression/test_aggregate_function.py b/tests/builders/extended_expression/test_aggregate_function.py index 3211c0c..66c8385 100644 --- a/tests/builders/extended_expression/test_aggregate_function.py +++ b/tests/builders/extended_expression/test_aggregate_function.py @@ -37,12 +37,12 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content), uri="test_uri") +registry.register_extension_dict(yaml.safe_load(content), urn="test_urn") def test_aggregate_count(): e = aggregate_function( - "test_uri", + "test_urn", "count", expressions=[ literal( @@ -56,11 +56,11 @@ def test_aggregate_count(): )(named_struct, registry) expected = stee.ExtendedExpression( - extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="test_uri")], + extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="test_urn")], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_uri_reference=1, function_anchor=1, name="count:any" + extension_urn_reference=1, function_anchor=1, name="count:any" ) ) ], diff --git a/tests/builders/extended_expression/test_scalar_function.py b/tests/builders/extended_expression/test_scalar_function.py index 7c0bdeb..fd32ceb 100644 --- a/tests/builders/extended_expression/test_scalar_function.py +++ b/tests/builders/extended_expression/test_scalar_function.py @@ -40,12 +40,12 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content), uri="test_uri") +registry.register_extension_dict(yaml.safe_load(content), urn="test_urn") def test_sclar_add(): e = scalar_function( - "test_uri", + "test_urn", "test_func", expressions=[ literal( @@ -64,11 +64,15 @@ def test_sclar_add(): )(named_struct, registry) expected = stee.ExtendedExpression( - extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="test_uri")], + extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="test_urn")], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( +<<<<<<< HEAD extension_uri_reference=1, function_anchor=1, name="test_func:i8" +======= + extension_urn_reference=1, function_anchor=1, name="test_func:i8" +>>>>>>> 6cfd263 (feat: uri -> urn grep replace + regen protos from v0.77.0) ) ) ], @@ -109,11 +113,11 @@ def test_sclar_add(): def test_nested_scalar_calls(): e = scalar_function( - "test_uri", + "test_urn", "is_positive", expressions=[ scalar_function( - "test_uri", + "test_urn", "test_func", expressions=[ literal( @@ -135,16 +139,16 @@ def test_nested_scalar_calls(): )(named_struct, registry) expected = stee.ExtendedExpression( - extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="test_uri")], + extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="test_urn")], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_uri_reference=1, function_anchor=2, name="is_positive:i8" + extension_urn_reference=1, function_anchor=2, name="is_positive:i8" ) ), ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_uri_reference=1, function_anchor=1, name="test_func:i8" + extension_urn_reference=1, function_anchor=1, name="test_func:i8" ) ), ], diff --git a/tests/builders/extended_expression/test_window_function.py b/tests/builders/extended_expression/test_window_function.py index 2c218ed..5cedd75 100644 --- a/tests/builders/extended_expression/test_window_function.py +++ b/tests/builders/extended_expression/test_window_function.py @@ -42,20 +42,20 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content), uri="test_uri") +registry.register_extension_dict(yaml.safe_load(content), urn="test_urn") def test_row_number(): - e = window_function("test_uri", "row_number", expressions=[], alias="rn")( + e = window_function("test_urn", "row_number", expressions=[], alias="rn")( named_struct, registry ) expected = stee.ExtendedExpression( - extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="test_uri")], + extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="test_urn")], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_uri_reference=1, function_anchor=1, name="row_number:" + extension_urn_reference=1, function_anchor=1, name="row_number:" ) ) ], diff --git a/tests/builders/plan/test_aggregate.py b/tests/builders/plan/test_aggregate.py index 7b15c67..a425ee2 100644 --- a/tests/builders/plan/test_aggregate.py +++ b/tests/builders/plan/test_aggregate.py @@ -26,7 +26,7 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content), uri="test_uri") +registry.register_extension_dict(yaml.safe_load(content), urn="test_urn") struct = stt.Type.Struct( types=[i64(nullable=False), boolean()], nullability=stt.Type.NULLABILITY_REQUIRED @@ -40,7 +40,7 @@ def test_aggregate(): group_expr = column("id") measure_expr = aggregate_function( - "test_uri", "count", expressions=[column("is_applicable")], alias=["count"] + "test_urn", "count", expressions=[column("is_applicable")], alias=["count"] ) actual = aggregate( @@ -50,11 +50,11 @@ def test_aggregate(): ns = infer_plan_schema(table(None)) expected = stp.Plan( - extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="test_uri")], + extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="test_urn")], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_uri_reference=1, function_anchor=1, name="count:any" + extension_urn_reference=1, function_anchor=1, name="count:any" ) ) ], diff --git a/tests/test_extension_registry.py b/tests/test_extension_registry.py index b4dd046..34483ec 100644 --- a/tests/test_extension_registry.py +++ b/tests/test_extension_registry.py @@ -107,7 +107,7 @@ registry = ExtensionRegistry() -registry.register_extension_dict(yaml.safe_load(content), uri="test") +registry.register_extension_dict(yaml.safe_load(content), urn="test") def i8(nullable=False): @@ -152,10 +152,10 @@ def decimal(precision, scale, nullable=False): ) -def test_non_existing_uri(): +def test_non_existing_urn(): assert ( registry.lookup_function( - uri="non_existent", function_name="add", signature=[i8(), i8()] + urn="non_existent", function_name="add", signature=[i8(), i8()] ) is None ) @@ -164,7 +164,7 @@ def test_non_existing_uri(): def test_non_existing_function(): assert ( registry.lookup_function( - uri="test", function_name="sub", signature=[i8(), i8()] + urn="test", function_name="sub", signature=[i8(), i8()] ) is None ) @@ -172,27 +172,27 @@ def test_non_existing_function(): def test_non_existing_function_signature(): assert ( - registry.lookup_function(uri="test", function_name="add", signature=[i8()]) + registry.lookup_function(urn="test", function_name="add", signature=[i8()]) is None ) def test_exact_match(): assert registry.lookup_function( - uri="test", function_name="add", signature=[i8(), i8()] + urn="test", function_name="add", signature=[i8(), i8()] )[1] == Type(i8=Type.I8(nullability=Type.NULLABILITY_REQUIRED)) def test_wildcard_match(): assert registry.lookup_function( - uri="test", function_name="add", signature=[i8(), i8(), bool()] + urn="test", function_name="add", signature=[i8(), i8(), bool()] )[1] == Type(i16=Type.I16(nullability=Type.NULLABILITY_REQUIRED)) def test_wildcard_match_fails_with_constraits(): assert ( registry.lookup_function( - uri="test", function_name="add", signature=[i8(), i16(), i16()] + urn="test", function_name="add", signature=[i8(), i16(), i16()] ) is None ) @@ -201,7 +201,7 @@ def test_wildcard_match_fails_with_constraits(): def test_wildcard_match_with_constraits(): assert ( registry.lookup_function( - uri="test", function_name="add", signature=[i16(), i16(), i8()] + urn="test", function_name="add", signature=[i16(), i16(), i8()] )[1] == i8() ) @@ -210,7 +210,7 @@ def test_wildcard_match_with_constraits(): def test_variadic(): assert ( registry.lookup_function( - uri="test", function_name="test_fn", signature=[i8(), i8(), i8()] + urn="test", function_name="test_fn", signature=[i8(), i8(), i8()] )[1] == i8() ) @@ -219,7 +219,7 @@ def test_variadic(): def test_variadic_any(): assert ( registry.lookup_function( - uri="test", + urn="test", function_name="test_fn_variadic_any", signature=[i16(), i16(), i16()], )[1] @@ -229,14 +229,14 @@ def test_variadic_any(): def test_variadic_fails_min_constraint(): assert ( - registry.lookup_function(uri="test", function_name="test_fn", signature=[i8()]) + registry.lookup_function(urn="test", function_name="test_fn", signature=[i8()]) is None ) def test_decimal_happy_path(): assert registry.lookup_function( - uri="test", + urn="test", function_name="test_decimal", signature=[decimal(10, 8), decimal(8, 6)], )[1] == decimal(11, 7) @@ -245,7 +245,7 @@ def test_decimal_happy_path(): def test_decimal_violates_constraint(): assert ( registry.lookup_function( - uri="test", + urn="test", function_name="test_decimal", signature=[decimal(10, 8), decimal(12, 10)], ) @@ -255,7 +255,7 @@ def test_decimal_violates_constraint(): def test_decimal_happy_path_discrete(): assert registry.lookup_function( - uri="test", + urn="test", function_name="test_decimal_discrete", signature=[decimal(10, 8, nullable=True), decimal(8, 6)], )[1] == decimal(11, 7, nullable=True) @@ -264,7 +264,7 @@ def test_decimal_happy_path_discrete(): def test_enum_with_valid_option(): assert ( registry.lookup_function( - uri="test", + urn="test", function_name="test_enum", signature=["FLIP", i8()], )[1] @@ -275,7 +275,7 @@ def test_enum_with_valid_option(): def test_enum_with_nonexistent_option(): assert ( registry.lookup_function( - uri="test", + urn="test", function_name="test_enum", signature=["NONEXISTENT", i8()], ) @@ -285,26 +285,26 @@ def test_enum_with_nonexistent_option(): def test_function_with_nullable_args(): assert registry.lookup_function( - uri="test", function_name="add", signature=[i8(nullable=True), i8()] + urn="test", function_name="add", signature=[i8(nullable=True), i8()] )[1] == i8(nullable=True) def test_function_with_declared_output_nullability(): assert registry.lookup_function( - uri="test", function_name="add_declared", signature=[i8(), i8()] + urn="test", function_name="add_declared", signature=[i8(), i8()] )[1] == i8(nullable=True) def test_function_with_discrete_nullability(): assert registry.lookup_function( - uri="test", function_name="add_discrete", signature=[i8(nullable=True), i8()] + urn="test", function_name="add_discrete", signature=[i8(nullable=True), i8()] )[1] == i8(nullable=True) def test_function_with_discrete_nullability_nonexisting(): assert ( registry.lookup_function( - uri="test", function_name="add_discrete", signature=[i8(), i8()] + urn="test", function_name="add_discrete", signature=[i8(), i8()] ) is None ) diff --git a/tests/test_proto.py b/tests/test_proto.py index 55aa2ee..e59a28b 100644 --- a/tests/test_proto.py +++ b/tests/test_proto.py @@ -11,7 +11,7 @@ def test_imports(): from substrait.gen.proto.plan_pb2 import Plan from substrait.gen.proto.type_expressions_pb2 import DerivationExpression from substrait.gen.proto.type_pb2 import Type - from substrait.gen.proto.extensions.extensions_pb2 import SimpleExtensionURI + from substrait.gen.proto.extensions.extensions_pb2 import SimpleExtensionURN def test_proto_proxy_module(): diff --git a/third_party/substrait b/third_party/substrait index 793c64b..3c25b1b 160000 --- a/third_party/substrait +++ b/third_party/substrait @@ -1 +1 @@ -Subproject commit 793c64ba26e337c22f5e91b658be58b1eea7efd3 +Subproject commit 3c25b1b3eaadecba6d10af6b3dd0fe038d0c5993 From e5df04491ec1c7d7313f630168e345112a831a5d Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Thu, 9 Oct 2025 16:42:08 -0400 Subject: [PATCH 02/18] feat: fix get urn-based substrait tests passing Had to temporarily disable the duckdb extension tests until the dependency on the duckdb-substrait-extension can handle URNs. --- .gitignore | 1 + src/substrait/extension_registry.py | 11 +++++------ src/substrait/sql/sql_to_substrait.py | 16 ++++++++-------- .../test_aggregate_function.py | 3 ++- .../extended_expression/test_scalar_function.py | 3 ++- .../extended_expression/test_window_function.py | 3 ++- tests/builders/plan/test_aggregate.py | 3 ++- tests/sql/test_sql_to_substrait.py | 15 ++++++++------- tests/test_extension_registry.py | 3 ++- 9 files changed, 32 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index a14793f..f8eaad0 100644 --- a/.gitignore +++ b/.gitignore @@ -142,3 +142,4 @@ src/substrait/_version.py .directory .gdb_history .DS_Store +/.envrc diff --git a/src/substrait/extension_registry.py b/src/substrait/extension_registry.py index 9651a55..8f6e003 100644 --- a/src/substrait/extension_registry.py +++ b/src/substrait/extension_registry.py @@ -256,22 +256,21 @@ def __init__(self, load_default_extensions=True) -> None: for fpath in importlib_files("substrait.extensions").glob( # type: ignore "functions*.yaml" ): - urn = f"{DEFAULT_URN_PREFIX}/{fpath.name}" - self._urn_aliases[fpath.name] = urn - self.register_extension_yaml(fpath, urn) + self.register_extension_yaml(fpath) def register_extension_yaml( self, fname: Union[str, Path], - urn: str, ) -> None: fname = Path(fname) with open(fname) as f: # type: ignore extension_definitions = yaml.safe_load(f) - self.register_extension_dict(extension_definitions, urn) + self.register_extension_dict(extension_definitions) - def register_extension_dict(self, definitions: dict, urn: str) -> None: + def register_extension_dict(self, definitions: dict) -> None: + urn = definitions.get("urn") + print(f"THIS IS MY URN {urn}") self._urn_mapping[urn] = next(self._urn_id_generator) simple_extensions = build_simple_extensions(definitions) diff --git a/src/substrait/sql/sql_to_substrait.py b/src/substrait/sql/sql_to_substrait.py index 40c14ef..1641cb2 100644 --- a/src/substrait/sql/sql_to_substrait.py +++ b/src/substrait/sql/sql_to_substrait.py @@ -28,18 +28,18 @@ SchemaResolver = Callable[[str], stt.NamedStruct] function_mapping = { - "Plus": ("functions_arithmetic.yaml", "add"), - "Minus": ("functions_arithmetic.yaml", "subtract"), - "Gt": ("functions_comparison.yaml", "gt"), - "GtEq": ("functions_comparison.yaml", "gte"), - "Lt": ("functions_comparison.yaml", "lt"), - "Eq": ("functions_comparison.yaml", "equal"), + "Plus": ("extension:io.substrait:functions_arithmetic", "add"), + "Minus": ("extension:io.substrait:functions_arithmetic", "subtract"), + "Gt": ("extension:io.substrait:functions_comparison", "gt"), + "GtEq": ("extension:io.substrait:functions_comparison", "gte"), + "Lt": ("extension:io.substrait:functions_comparison", "lt"), + "Eq": ("extension:io.substrait:functions_comparison", "equal"), } -aggregate_function_mapping = {"SUM": ("functions_arithmetic.yaml", "sum")} +aggregate_function_mapping = {"SUM": ("extension:io.substrait:functions_arithmetic", "sum")} window_function_mapping = { - "row_number": ("functions_arithmetic.yaml", "row_number"), + "row_number": ("extension:io.substrait:functions_arithmetic", "row_number"), } diff --git a/tests/builders/extended_expression/test_aggregate_function.py b/tests/builders/extended_expression/test_aggregate_function.py index 66c8385..5583dd7 100644 --- a/tests/builders/extended_expression/test_aggregate_function.py +++ b/tests/builders/extended_expression/test_aggregate_function.py @@ -22,6 +22,7 @@ content = """%YAML 1.2 --- +urn: test_urn aggregate_functions: - name: "count" description: Count a set of values @@ -37,7 +38,7 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content), urn="test_urn") +registry.register_extension_dict(yaml.safe_load(content)) def test_aggregate_count(): diff --git a/tests/builders/extended_expression/test_scalar_function.py b/tests/builders/extended_expression/test_scalar_function.py index fd32ceb..b240744 100644 --- a/tests/builders/extended_expression/test_scalar_function.py +++ b/tests/builders/extended_expression/test_scalar_function.py @@ -21,6 +21,7 @@ content = """%YAML 1.2 --- +urn: test_urn scalar_functions: - name: "test_func" description: "" @@ -40,7 +41,7 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content), urn="test_urn") +registry.register_extension_dict(yaml.safe_load(content)) def test_sclar_add(): diff --git a/tests/builders/extended_expression/test_window_function.py b/tests/builders/extended_expression/test_window_function.py index 5cedd75..0c9bc01 100644 --- a/tests/builders/extended_expression/test_window_function.py +++ b/tests/builders/extended_expression/test_window_function.py @@ -21,6 +21,7 @@ content = """%YAML 1.2 --- +urn: test_urn window_functions: - name: "row_number" description: "the number of the current row within its partition, starting at 1" @@ -42,7 +43,7 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content), urn="test_urn") +registry.register_extension_dict(yaml.safe_load(content)) def test_row_number(): diff --git a/tests/builders/plan/test_aggregate.py b/tests/builders/plan/test_aggregate.py index a425ee2..d20e267 100644 --- a/tests/builders/plan/test_aggregate.py +++ b/tests/builders/plan/test_aggregate.py @@ -11,6 +11,7 @@ content = """%YAML 1.2 --- +urn: test_urn aggregate_functions: - name: "count" description: Count a set of values @@ -26,7 +27,7 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content), urn="test_urn") +registry.register_extension_dict(yaml.safe_load(content)) struct = stt.Type.Struct( types=[i64(nullable=False), boolean()], nullability=stt.Type.NULLABILITY_REQUIRED diff --git a/tests/sql/test_sql_to_substrait.py b/tests/sql/test_sql_to_substrait.py index 9b4590e..49d22d0 100644 --- a/tests/sql/test_sql_to_substrait.py +++ b/tests/sql/test_sql_to_substrait.py @@ -134,6 +134,7 @@ def test_select_field(engine: str): assert_query("""SELECT store_id FROM stores""", engine) +@pytest.mark.xfail @pytest.mark.parametrize("engine", engines) def test_inner_join_filtered(engine: str): assert_query( @@ -145,7 +146,7 @@ def test_inner_join_filtered(engine: str): engine, ) - +@pytest.mark.xfail @pytest.mark.parametrize("engine", engines) def test_left_join(engine: str): assert_query( @@ -156,7 +157,7 @@ def test_left_join(engine: str): engine, ) - +@pytest.mark.xfail @pytest.mark.parametrize("engine", engines) def test_right_join(engine: str): assert_query( @@ -178,7 +179,7 @@ def test_group_by_empty_measures(engine: str): engine, ) - +@pytest.mark.xfail @pytest.mark.parametrize("engine", engines) def test_group_by_count(engine: str): assert_query( @@ -189,7 +190,7 @@ def test_group_by_count(engine: str): engine, ) - +@pytest.mark.xfail @pytest.mark.parametrize("engine", engines) def test_group_by_unnamed_expr(engine: str): assert_query( @@ -200,7 +201,7 @@ def test_group_by_unnamed_expr(engine: str): engine, ) - +@pytest.mark.xfail @pytest.mark.parametrize("engine", engines) def test_sum(engine: str): assert_query( @@ -221,7 +222,7 @@ def test_group_by_hidden_dimension(engine: str): engine, ) - +@pytest.mark.xfail @pytest.mark.parametrize("engine", engines) def test_group_by_having_no_duplicate(engine: str): assert_query( @@ -233,7 +234,7 @@ def test_group_by_having_no_duplicate(engine: str): engine, ) - +@pytest.mark.xfail @pytest.mark.parametrize("engine", engines) def test_group_by_having_duplicate(engine: str): assert_query( diff --git a/tests/test_extension_registry.py b/tests/test_extension_registry.py index 34483ec..7089df3 100644 --- a/tests/test_extension_registry.py +++ b/tests/test_extension_registry.py @@ -6,6 +6,7 @@ content = """%YAML 1.2 --- +urn: test scalar_functions: - name: "test_fn" description: "" @@ -107,7 +108,7 @@ registry = ExtensionRegistry() -registry.register_extension_dict(yaml.safe_load(content), urn="test") +registry.register_extension_dict(yaml.safe_load(content)) def i8(nullable=False): From 0625bbb86cc877dc68967255961d46e880e27fc6 Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Thu, 23 Oct 2025 16:25:15 -0400 Subject: [PATCH 03/18] feat: graceful migration from URI -> URN This PR introduces handling of migrating from the usage of URI to URN for extension references. As an intermediate step, both URI and URN and emitted from produced plans. Closes #95 --- src/substrait/bimap.py | 111 ++++++++ src/substrait/builders/extended_expression.py | 60 ++++ src/substrait/builders/plan.py | 8 +- src/substrait/extension_registry.py | 101 ++++++- src/substrait/utils/__init__.py | 29 +- .../test_aggregate_function.py | 14 +- .../test_scalar_function.py | 37 ++- .../test_window_function.py | 14 +- tests/builders/plan/test_aggregate.py | 14 +- .../builders/plan/test_plan_uri_urn_output.py | 265 ++++++++++++++++++ tests/test_bimap.py | 101 +++++++ tests/test_extension_registry.py | 206 ++++++++++++-- tests/test_uri_urn_migration.py | 265 ++++++++++++++++++ 13 files changed, 1168 insertions(+), 57 deletions(-) create mode 100644 src/substrait/bimap.py create mode 100644 tests/builders/plan/test_plan_uri_urn_output.py create mode 100644 tests/test_bimap.py create mode 100644 tests/test_uri_urn_migration.py diff --git a/src/substrait/bimap.py b/src/substrait/bimap.py new file mode 100644 index 0000000..ed2332a --- /dev/null +++ b/src/substrait/bimap.py @@ -0,0 +1,111 @@ +""" +Bidirectional map for URI <-> URN conversion during the migration period. + +This module provides a UriUrnBiDiMap class that maintains a bidirectional mapping +between URIs and URNs, ensuring consistency and detecting conflicts. + +NOTE: This file is temporary and can be removed once the URI -> URN migration +is complete across all Substrait implementations. At that point, only URN-based +extension references will be used. +""" + +from typing import Optional + + +class UriUrnBiDiMap: + """Bidirectional map for URI <-> URN mappings. + + Maintains two internal dictionaries to enable O(1) lookups in both directions. + Enforces that each URI maps to exactly one URN and vice versa. + """ + + def __init__(self): + self._uri_to_urn: dict[str, str] = {} + self._urn_to_uri: dict[str, str] = {} + + def put(self, uri: str, urn: str) -> None: + """Add a bidirectional URI <-> URN mapping. + + Args: + uri: The extension URI (e.g., "https://github.com/.../functions_arithmetic.yaml") + urn: The extension URN (e.g., "extension:io.substrait:functions_arithmetic") + + Raises: + ValueError: If the URI or URN already exists with a different mapping + """ + # Check for conflicts + if uri in self._uri_to_urn: + existing_urn = self._uri_to_urn[uri] + if existing_urn != urn: + raise ValueError( + f"URI '{uri}' is already mapped to URN '{existing_urn}', " + f"cannot remap to '{urn}'" + ) + # Already have this exact mapping, nothing to do + return + + if urn in self._urn_to_uri: + existing_uri = self._urn_to_uri[urn] + if existing_uri != uri: + raise ValueError( + f"URN '{urn}' is already mapped to URI '{existing_uri}', " + f"cannot remap to '{uri}'" + ) + # Already have this exact mapping, nothing to do + return + + # Add the bidirectional mapping + self._uri_to_urn[uri] = urn + self._urn_to_uri[urn] = uri + + def get_urn(self, uri: str) -> Optional[str]: + """Convert a URI to its corresponding URN. + + Args: + uri: The extension URI to look up + + Returns: + The corresponding URN, or None if the URI is not in the map + """ + return self._uri_to_urn.get(uri) + + def get_uri(self, urn: str) -> Optional[str]: + """Convert a URN to its corresponding URI. + + Args: + urn: The extension URN to look up + + Returns: + The corresponding URI, or None if the URN is not in the map + """ + return self._urn_to_uri.get(urn) + + def contains_uri(self, uri: str) -> bool: + """Check if a URI exists in the map. + + Args: + uri: The URI to check + + Returns: + True if the URI is in the map, False otherwise + """ + return uri in self._uri_to_urn + + def contains_urn(self, urn: str) -> bool: + """Check if a URN exists in the map. + + Args: + urn: The URN to check + + Returns: + True if the URN is in the map, False otherwise + """ + return urn in self._urn_to_uri + + def __len__(self) -> int: + """Return the number of mappings in the bimap.""" + return len(self._uri_to_urn) + + def __repr__(self) -> str: + """Return a string representation of the bimap.""" + return f"UriUrnBiDiMap({len(self)} mappings)" diff --git a/src/substrait/builders/extended_expression.py b/src/substrait/builders/extended_expression.py index 84e2c11..6d2bc47 100644 --- a/src/substrait/builders/extended_expression.py +++ b/src/substrait/builders/extended_expression.py @@ -8,6 +8,7 @@ from substrait.utils import ( type_num_names, merge_extension_urns, + merge_extension_uris, merge_extension_declarations, ) from substrait.type_inference import infer_extended_expression_schema @@ -229,26 +230,44 @@ def resolve( if not func: raise Exception(f"Unknown function {function} for {signature}") + # Create URN extension func_extension_urns = [ ste.SimpleExtensionURN( extension_urn_anchor=registry.lookup_urn(urn), urn=urn ) ] + # Create URI extension (convert URN to URI via bimap) + uri = registry.urn_to_uri(urn) + func_extension_uris = [] + if uri: + uri_anchor = registry.lookup_uri_anchor(uri) + if uri_anchor: + func_extension_uris = [ + ste.SimpleExtensionURI(extension_uri_anchor=uri_anchor, uri=uri) + ] + + # Create extension function declaration with both URI and URN references func_extensions = [ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( extension_urn_reference=registry.lookup_urn(urn), + extension_uri_reference=registry.lookup_uri_anchor(uri) if uri else 0, function_anchor=func[0].anchor, name=str(func[0]), ) ) ] + # Merge extensions from all expressions extension_urns = merge_extension_urns( func_extension_urns, *[b.extension_urns for b in bound_expressions] ) + extension_uris = merge_extension_uris( + func_extension_uris, *[b.extension_uris for b in bound_expressions] + ) + extensions = merge_extension_declarations( func_extensions, *[b.extensions for b in bound_expressions] ) @@ -277,6 +296,7 @@ def resolve( ], base_schema=base_schema, extension_urns=extension_urns, + extension_uris=extension_uris, extensions=extensions, ) @@ -309,26 +329,44 @@ def resolve( if not func: raise Exception(f"Unknown function {function} for {signature}") + # Create URN extension func_extension_urns = [ ste.SimpleExtensionURN( extension_urn_anchor=registry.lookup_urn(urn), urn=urn ) ] + # Create URI extension (convert URN to URI via bimap) + uri = registry.urn_to_uri(urn) + func_extension_uris = [] + if uri: + uri_anchor = registry.lookup_uri_anchor(uri) + if uri_anchor: + func_extension_uris = [ + ste.SimpleExtensionURI(extension_uri_anchor=uri_anchor, uri=uri) + ] + + # Create extension function declaration with both URI and URN references func_extensions = [ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( extension_urn_reference=registry.lookup_urn(urn), + extension_uri_reference=registry.lookup_uri_anchor(uri) if uri else 0, function_anchor=func[0].anchor, name=str(func[0]), ) ) ] + # Merge extensions from all expressions extension_urns = merge_extension_urns( func_extension_urns, *[b.extension_urns for b in bound_expressions] ) + extension_uris = merge_extension_uris( + func_extension_uris, *[b.extension_uris for b in bound_expressions] + ) + extensions = merge_extension_declarations( func_extensions, *[b.extensions for b in bound_expressions] ) @@ -353,6 +391,7 @@ def resolve( ], base_schema=base_schema, extension_urns=extension_urns, + extension_uris=extension_uris, extensions=extensions, ) @@ -391,28 +430,48 @@ def resolve( if not func: raise Exception(f"Unknown function {function} for {signature}") + # Create URN extension func_extension_urns = [ ste.SimpleExtensionURN( extension_urn_anchor=registry.lookup_urn(urn), urn=urn ) ] + # Create URI extension (convert URN to URI via bimap) + uri = registry.urn_to_uri(urn) + func_extension_uris = [] + if uri: + uri_anchor = registry.lookup_uri_anchor(uri) + if uri_anchor: + func_extension_uris = [ + ste.SimpleExtensionURI(extension_uri_anchor=uri_anchor, uri=uri) + ] + + # Create extension function declaration with both URI and URN references func_extensions = [ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( extension_urn_reference=registry.lookup_urn(urn), + extension_uri_reference=registry.lookup_uri_anchor(uri) if uri else 0, function_anchor=func[0].anchor, name=str(func[0]), ) ) ] + # Merge extensions from all expressions extension_urns = merge_extension_urns( func_extension_urns, *[b.extension_urns for b in bound_expressions], *[b.extension_urns for b in bound_partitions], ) + extension_uris = merge_extension_uris( + func_extension_uris, + *[b.extension_uris for b in bound_expressions], + *[b.extension_uris for b in bound_partitions], + ) + extensions = merge_extension_declarations( func_extensions, *[b.extensions for b in bound_expressions], @@ -446,6 +505,7 @@ def resolve( ], base_schema=base_schema, extension_urns=extension_urns, + extension_uris=extension_uris, extensions=extensions, ) diff --git a/src/substrait/builders/plan.py b/src/substrait/builders/plan.py index 8a9e15f..73f682d 100644 --- a/src/substrait/builders/plan.py +++ b/src/substrait/builders/plan.py @@ -18,7 +18,7 @@ resolve_expression, ) from substrait.type_inference import infer_plan_schema -from substrait.utils import merge_extension_declarations, merge_extension_urns +from substrait.utils import merge_extension_declarations, merge_extension_urns, merge_extension_uris UnboundPlan = Callable[[ExtensionRegistry], stp.Plan] @@ -26,7 +26,13 @@ def _merge_extensions(*objs): + """Merge extension URIs, URNs, and declarations from multiple plan/expression objects. + + During the URI/URN migration period, we maintain both URI and URN references + for maximum compatibility. + """ return { + "extension_uris": merge_extension_uris(*[b.extension_uris for b in objs if b]), "extension_urns": merge_extension_urns(*[b.extension_urns for b in objs if b]), "extensions": merge_extension_declarations(*[b.extensions for b in objs if b]), } diff --git a/src/substrait/extension_registry.py b/src/substrait/extension_registry.py index 8f6e003..a65a16a 100644 --- a/src/substrait/extension_registry.py +++ b/src/substrait/extension_registry.py @@ -1,5 +1,6 @@ import yaml import itertools +import re from substrait.gen.proto.type_pb2 import Type from importlib.resources import files as importlib_files from collections import defaultdict @@ -9,10 +10,15 @@ from substrait.gen.antlr.SubstraitTypeParser import SubstraitTypeParser from substrait.gen.json import simple_extensions as se from substrait.simple_extension_utils import build_simple_extensions +from .bimap import UriUrnBiDiMap DEFAULT_URN_PREFIX = "https://github.com/substrait-io/substrait/blob/main/extensions" +# Format: extension:: +# Example: extension:io.substrait:functions_arithmetic +URN_PATTERN = re.compile(r"^extension:[^:]+:[^:]+$") + # mapping from argument types to shortened signature names: https://substrait.io/extensions/#function-signature-compound-names _normalized_key_names = { @@ -244,7 +250,7 @@ def satisfies_signature(self, signature: tuple) -> Optional[str]: class ExtensionRegistry: def __init__(self, load_default_extensions=True) -> None: - self._urn_mapping: dict = defaultdict(dict) + self._urn_mapping: dict = defaultdict(dict) # URN -> anchor ID self._urn_id_generator = itertools.count(1) self._function_mapping: dict = defaultdict(dict) @@ -252,27 +258,54 @@ def __init__(self, load_default_extensions=True) -> None: self._urn_aliases = {} + # Bidirectional URI <-> URN mapping (temporary during migration) + self._uri_urn_bimap = UriUrnBiDiMap() + if load_default_extensions: for fpath in importlib_files("substrait.extensions").glob( # type: ignore "functions*.yaml" ): - self.register_extension_yaml(fpath) + # Derive URI from DEFAULT_URN_PREFIX and filename + uri = f"{DEFAULT_URN_PREFIX}/{fpath.name}" + self.register_extension_yaml(fpath, uri=uri) def register_extension_yaml( self, fname: Union[str, Path], + uri: str, ) -> None: + """Register extensions from a YAML file. + + Args: + fname: Path to the YAML file + uri: URI for the extension (for URI/URN bimap) + """ fname = Path(fname) with open(fname) as f: # type: ignore extension_definitions = yaml.safe_load(f) - self.register_extension_dict(extension_definitions) + self.register_extension_dict(extension_definitions, uri=uri) - def register_extension_dict(self, definitions: dict) -> None: + def register_extension_dict(self, definitions: dict, uri: str) -> None: + """Register extensions from a dictionary (parsed YAML). + + Args: + definitions: The extension definitions dictionary + uri: URI for the extension (for URI/URN bimap) + """ urn = definitions.get("urn") - print(f"THIS IS MY URN {urn}") + if not urn: + raise ValueError("Extension definitions must contain a 'urn' field") + + # Validate URN format + self._validate_urn_format(urn) + + # Assign anchor to URN (URI will use the same anchor during output) self._urn_mapping[urn] = next(self._urn_id_generator) + # Store URI <-> URN mapping for output generation + self._uri_urn_bimap.put(uri, urn) + simple_extensions = build_simple_extensions(definitions) functions = ( @@ -318,3 +351,61 @@ def lookup_function( def lookup_urn(self, urn: str) -> Optional[int]: urn = self._urn_aliases.get(urn, urn) return self._urn_mapping.get(urn, None) + + def lookup_uri_anchor(self, uri: str) -> Optional[int]: + """Look up the anchor ID for a URI. + + During the migration period, URI and URN share the same anchor. + This method converts the URI to its URN and returns the URN's anchor. + + Args: + uri: The extension URI to look up + + Returns: + The anchor ID for the URI (same as its corresponding URN), or None if not found + """ + urn = self._uri_urn_bimap.get_urn(uri) + if urn: + return self._urn_mapping.get(urn) + return None + + def uri_to_urn(self, uri: str) -> Optional[str]: + """Convert a URI to its corresponding URN using the bimap. + + Args: + uri: The extension URI + + Returns: + The corresponding URN, or None if not in the bimap + """ + return self._uri_urn_bimap.get_urn(uri) + + def urn_to_uri(self, urn: str) -> Optional[str]: + """Convert a URN to its corresponding URI using the bimap. + + Args: + urn: The extension URN + + Returns: + The corresponding URI, or None if not in the bimap + """ + return self._uri_urn_bimap.get_uri(urn) + + def _validate_urn_format(self, urn: str) -> None: + """Validate that a URN follows the expected format. + + Expected format: extension:: + Example: extension:io.substrait:functions_arithmetic + + Args: + urn: The URN to validate + + Raises: + ValueError: If the URN format is invalid + """ + if not URN_PATTERN.match(urn): + raise ValueError( + f"Invalid URN format: '{urn}'. " + f"Expected format: extension:: " + f"(e.g., 'extension:io.substrait:functions_arithmetic')" + ) diff --git a/src/substrait/utils/__init__.py b/src/substrait/utils/__init__.py index 9316e11..0a4793b 100644 --- a/src/substrait/utils/__init__.py +++ b/src/substrait/utils/__init__.py @@ -37,12 +37,32 @@ def merge_extension_urns(*extension_urns: Iterable[ste.SimpleExtensionURN]): return ret +def merge_extension_uris(*extension_uris: Iterable[ste.SimpleExtensionURI]): + """Merges multiple sets of SimpleExtensionURI objects into a single set. + The order of extensions is kept intact, while duplicates are discarded. + Assumes that there are no collisions (different extensions having identical anchors). + """ + seen_uris = set() + ret = [] + + for uris in extension_uris: + for uri in uris: + if uri.uri not in seen_uris: + seen_uris.add(uri.uri) + ret.append(uri) + + return ret + + def merge_extension_declarations( *extension_declarations: Iterable[ste.SimpleExtensionDeclaration], ): """Merges multiple sets of SimpleExtensionDeclaration objects into a single set. The order of extension declarations is kept intact, while duplicates are discarded. Assumes that there are no collisions (different extension declarations having identical anchors). + + During the URI/URN migration, declarations may have either or both references set. + We deduplicate based on both references and the name without trying to resolve between them. """ seen_extension_functions = set() @@ -51,9 +71,14 @@ def merge_extension_declarations( for declarations in extension_declarations: for declaration in declarations: if declaration.WhichOneof("mapping_type") == "extension_function": + ext_func = declaration.extension_function + + # Use both URI and URN references as-is in the identifier + # Don't try to resolve or pick between them - just treat them as distinct types ident = ( - declaration.extension_function.extension_urn_reference, - declaration.extension_function.name, + ext_func.extension_urn_reference, + ext_func.extension_uri_reference, + ext_func.name, ) if ident not in seen_extension_functions: seen_extension_functions.add(ident) diff --git a/tests/builders/extended_expression/test_aggregate_function.py b/tests/builders/extended_expression/test_aggregate_function.py index 5583dd7..d4b021c 100644 --- a/tests/builders/extended_expression/test_aggregate_function.py +++ b/tests/builders/extended_expression/test_aggregate_function.py @@ -22,7 +22,7 @@ content = """%YAML 1.2 --- -urn: test_urn +urn: extension:test:urn aggregate_functions: - name: "count" description: Count a set of values @@ -38,12 +38,12 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content)) +registry.register_extension_dict(yaml.safe_load(content), uri="https://test.example.com/test.yaml") def test_aggregate_count(): e = aggregate_function( - "test_urn", + "extension:test:urn", "count", expressions=[ literal( @@ -57,11 +57,15 @@ def test_aggregate_count(): )(named_struct, registry) expected = stee.ExtendedExpression( - extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="test_urn")], + extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn")], + extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://test.example.com/test.yaml")], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_urn_reference=1, function_anchor=1, name="count:any" + extension_urn_reference=1, + extension_uri_reference=1, + function_anchor=1, + name="count:any" ) ) ], diff --git a/tests/builders/extended_expression/test_scalar_function.py b/tests/builders/extended_expression/test_scalar_function.py index b240744..3125e38 100644 --- a/tests/builders/extended_expression/test_scalar_function.py +++ b/tests/builders/extended_expression/test_scalar_function.py @@ -21,7 +21,7 @@ content = """%YAML 1.2 --- -urn: test_urn +urn: extension:test:urn scalar_functions: - name: "test_func" description: "" @@ -41,12 +41,14 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content)) +# Register with URI for URI/URN migration testing +test_uri = "https://test.example.com/extension_test_urn.yaml" +registry.register_extension_dict(yaml.safe_load(content), uri=test_uri) def test_sclar_add(): e = scalar_function( - "test_urn", + "extension:test:urn", "test_func", expressions=[ literal( @@ -65,15 +67,15 @@ def test_sclar_add(): )(named_struct, registry) expected = stee.ExtendedExpression( - extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="test_urn")], + extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn")], + extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://test.example.com/extension_test_urn.yaml")], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( -<<<<<<< HEAD - extension_uri_reference=1, function_anchor=1, name="test_func:i8" -======= - extension_urn_reference=1, function_anchor=1, name="test_func:i8" ->>>>>>> 6cfd263 (feat: uri -> urn grep replace + regen protos from v0.77.0) + extension_urn_reference=1, + extension_uri_reference=1, + function_anchor=1, + name="test_func:i8" ) ) ], @@ -114,11 +116,11 @@ def test_sclar_add(): def test_nested_scalar_calls(): e = scalar_function( - "test_urn", + "extension:test:urn", "is_positive", expressions=[ scalar_function( - "test_urn", + "extension:test:urn", "test_func", expressions=[ literal( @@ -140,16 +142,23 @@ def test_nested_scalar_calls(): )(named_struct, registry) expected = stee.ExtendedExpression( - extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="test_urn")], + extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn")], + extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://test.example.com/extension_test_urn.yaml")], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_urn_reference=1, function_anchor=2, name="is_positive:i8" + extension_urn_reference=1, + extension_uri_reference=1, + function_anchor=2, + name="is_positive:i8" ) ), ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_urn_reference=1, function_anchor=1, name="test_func:i8" + extension_urn_reference=1, + extension_uri_reference=1, + function_anchor=1, + name="test_func:i8" ) ), ], diff --git a/tests/builders/extended_expression/test_window_function.py b/tests/builders/extended_expression/test_window_function.py index 0c9bc01..10ca576 100644 --- a/tests/builders/extended_expression/test_window_function.py +++ b/tests/builders/extended_expression/test_window_function.py @@ -21,7 +21,7 @@ content = """%YAML 1.2 --- -urn: test_urn +urn: extension:test:urn window_functions: - name: "row_number" description: "the number of the current row within its partition, starting at 1" @@ -43,20 +43,24 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content)) +registry.register_extension_dict(yaml.safe_load(content), uri="https://test.example.com/test.yaml") def test_row_number(): - e = window_function("test_urn", "row_number", expressions=[], alias="rn")( + e = window_function("extension:test:urn", "row_number", expressions=[], alias="rn")( named_struct, registry ) expected = stee.ExtendedExpression( - extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="test_urn")], + extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn")], + extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://test.example.com/test.yaml")], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_urn_reference=1, function_anchor=1, name="row_number:" + extension_urn_reference=1, + extension_uri_reference=1, + function_anchor=1, + name="row_number:" ) ) ], diff --git a/tests/builders/plan/test_aggregate.py b/tests/builders/plan/test_aggregate.py index d20e267..3679259 100644 --- a/tests/builders/plan/test_aggregate.py +++ b/tests/builders/plan/test_aggregate.py @@ -11,7 +11,7 @@ content = """%YAML 1.2 --- -urn: test_urn +urn: extension:test:urn aggregate_functions: - name: "count" description: Count a set of values @@ -27,7 +27,7 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content)) +registry.register_extension_dict(yaml.safe_load(content), uri="https://test.example.com/test.yaml") struct = stt.Type.Struct( types=[i64(nullable=False), boolean()], nullability=stt.Type.NULLABILITY_REQUIRED @@ -41,7 +41,7 @@ def test_aggregate(): group_expr = column("id") measure_expr = aggregate_function( - "test_urn", "count", expressions=[column("is_applicable")], alias=["count"] + "extension:test:urn", "count", expressions=[column("is_applicable")], alias=["count"] ) actual = aggregate( @@ -51,11 +51,15 @@ def test_aggregate(): ns = infer_plan_schema(table(None)) expected = stp.Plan( - extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="test_urn")], + extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn")], + extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://test.example.com/test.yaml")], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_urn_reference=1, function_anchor=1, name="count:any" + extension_urn_reference=1, + extension_uri_reference=1, + function_anchor=1, + name="count:any" ) ) ], diff --git a/tests/builders/plan/test_plan_uri_urn_output.py b/tests/builders/plan/test_plan_uri_urn_output.py new file mode 100644 index 0000000..2f22974 --- /dev/null +++ b/tests/builders/plan/test_plan_uri_urn_output.py @@ -0,0 +1,265 @@ +""" +Tests to verify that plan builders always output both URI and URN extensions. + +This ensures backward compatibility during the URI → URN migration period. +All plans produced by the builders should contain both SimpleExtensionURI +and SimpleExtensionURN entries, along with both extension_uri_reference +and extension_urn_reference in function declarations. +""" + +import yaml + +import substrait.gen.proto.type_pb2 as stt +from substrait.builders.type import i64 +from substrait.builders.plan import read_named_table, aggregate, project, filter +from substrait.builders.extended_expression import ( + column, + aggregate_function, + scalar_function, + literal, +) +from substrait.extension_registry import ExtensionRegistry + + +def test_plan_with_scalar_function_has_both_uri_and_urn(): + """Test that plans with scalar functions output both URI and URN.""" + content = """%YAML 1.2 +--- +urn: extension:test:functions +scalar_functions: + - name: "add" + description: "" + impls: + - args: + - value: i64 + - value: i64 + return: i64 +""" + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/functions.yaml" + ) + + struct = stt.Type.Struct(types=[i64(nullable=False), i64(nullable=False)]) + named_struct = stt.NamedStruct(names=["a", "b"], struct=struct) + + table = read_named_table("table", named_struct) + add_expr = scalar_function( + "extension:test:functions", + "add", + expressions=[column("a"), column("b")], + ) + + plan = project(table, [add_expr])(registry) + + # Verify both URI and URN are present + assert len(plan.extension_uris) > 0, "Plan should have extension URIs" + assert len(plan.extension_urns) > 0, "Plan should have extension URNs" + + # Verify they match + assert ( + plan.extension_uris[0].uri == "https://test.example.com/functions.yaml" + ), "URI should match" + assert ( + plan.extension_urns[0].urn == "extension:test:functions" + ), "URN should match" + + # Verify URI and URN use the SAME anchor + assert ( + plan.extension_uris[0].extension_uri_anchor + == plan.extension_urns[0].extension_urn_anchor + ), "URI and URN should share the same anchor" + + # Verify extension declarations have both references (also the same) + assert len(plan.extensions) > 0, "Plan should have extension declarations" + ext_func = plan.extensions[0].extension_function + assert ( + ext_func.extension_uri_reference > 0 + ), "Extension function should reference URI" + assert ( + ext_func.extension_urn_reference > 0 + ), "Extension function should reference URN" + assert ( + ext_func.extension_uri_reference == ext_func.extension_urn_reference + ), "URI and URN references should be the same" + + +def test_plan_with_aggregate_function_has_both_uri_and_urn(): + """Test that plans with aggregate functions output both URI and URN.""" + content = """%YAML 1.2 +--- +urn: extension:test:aggregate +aggregate_functions: + - name: "sum" + description: "" + impls: + - args: + - value: i64 + nullability: DECLARED_OUTPUT + decomposable: MANY + intermediate: i64 + return: i64 +""" + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/aggregate.yaml" + ) + + struct = stt.Type.Struct(types=[i64(nullable=False), i64(nullable=False)]) + named_struct = stt.NamedStruct(names=["id", "value"], struct=struct) + + table = read_named_table("table", named_struct) + sum_expr = aggregate_function( + "extension:test:aggregate", "sum", expressions=[column("value")] + ) + + plan = aggregate(table, grouping_expressions=[column("id")], measures=[sum_expr])( + registry + ) + + # Verify both URI and URN are present + assert len(plan.extension_uris) > 0, "Plan should have extension URIs" + assert len(plan.extension_urns) > 0, "Plan should have extension URNs" + + # Verify they match + assert ( + plan.extension_uris[0].uri == "https://test.example.com/aggregate.yaml" + ), "URI should match" + assert ( + plan.extension_urns[0].urn == "extension:test:aggregate" + ), "URN should match" + + # Verify extension declarations have both references + assert len(plan.extensions) > 0, "Plan should have extension declarations" + ext_func = plan.extensions[0].extension_function + assert ( + ext_func.extension_uri_reference > 0 + ), "Extension function should reference URI" + assert ( + ext_func.extension_urn_reference > 0 + ), "Extension function should reference URN" + + +def test_plan_with_multiple_extensions_has_all_uris_and_urns(): + """Test that plans with multiple extensions output all URIs and URNs.""" + content1 = """%YAML 1.2 +--- +urn: extension:test:math +scalar_functions: + - name: "multiply" + description: "" + impls: + - args: + - value: i64 + - value: i64 + return: i64 +""" + + content2 = """%YAML 1.2 +--- +urn: extension:test:comparison +scalar_functions: + - name: "greater_than" + description: "" + impls: + - args: + - value: i64 + - value: i64 + return: boolean +""" + + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict( + yaml.safe_load(content1), uri="https://test.example.com/math.yaml" + ) + registry.register_extension_dict( + yaml.safe_load(content2), uri="https://test.example.com/comparison.yaml" + ) + + struct = stt.Type.Struct(types=[i64(nullable=False), i64(nullable=False)]) + named_struct = stt.NamedStruct(names=["a", "b"], struct=struct) + + table = read_named_table("table", named_struct) + + # Use both extensions + multiply_expr = scalar_function( + "extension:test:math", + "multiply", + expressions=[column("a"), column("b")], + ) + gt_expr = scalar_function( + "extension:test:comparison", + "greater_than", + expressions=[multiply_expr, literal(100, i64(nullable=False))], + ) + + plan = filter(table, gt_expr)(registry) + + # Verify both extensions have URIs and URNs + assert len(plan.extension_uris) == 2, "Plan should have 2 extension URIs" + assert len(plan.extension_urns) == 2, "Plan should have 2 extension URNs" + + # Collect URIs and URNs + uris = {ext.uri for ext in plan.extension_uris} + urns = {ext.urn for ext in plan.extension_urns} + + assert "https://test.example.com/math.yaml" in uris + assert "https://test.example.com/comparison.yaml" in uris + assert "extension:test:math" in urns + assert "extension:test:comparison" in urns + + # Verify all extension declarations have both references + assert len(plan.extensions) == 2, "Plan should have 2 extension declarations" + for ext_decl in plan.extensions: + ext_func = ext_decl.extension_function + assert ( + ext_func.extension_uri_reference > 0 + ), "Extension function should reference URI" + assert ( + ext_func.extension_urn_reference > 0 + ), "Extension function should reference URN" + + +def test_plan_with_default_extensions_has_both_uri_and_urn(): + """Test that plans using default extensions output both URI and URN.""" + # Use default registry with built-in extensions + registry = ExtensionRegistry(load_default_extensions=True) + + struct = stt.Type.Struct(types=[i64(nullable=False), i64(nullable=False)]) + named_struct = stt.NamedStruct(names=["a", "b"], struct=struct) + + table = read_named_table("table", named_struct) + + # Use a function from the default extensions + add_expr = scalar_function( + "extension:io.substrait:functions_arithmetic", + "add", + expressions=[column("a"), column("b")], + ) + + plan = project(table, [add_expr])(registry) + + # Verify both URI and URN are present + assert len(plan.extension_uris) > 0, "Plan should have extension URIs" + assert len(plan.extension_urns) > 0, "Plan should have extension URNs" + + # Verify URN matches + assert any( + ext.urn == "extension:io.substrait:functions_arithmetic" + for ext in plan.extension_urns + ), "Should have arithmetic functions URN" + + # Verify URI is present and matches the GitHub URL pattern + assert any( + "functions_arithmetic.yaml" in ext.uri for ext in plan.extension_uris + ), "Should have arithmetic functions URI" + + # Verify extension declarations have both references + assert len(plan.extensions) > 0, "Plan should have extension declarations" + ext_func = plan.extensions[0].extension_function + assert ( + ext_func.extension_uri_reference > 0 + ), "Extension function should reference URI" + assert ( + ext_func.extension_urn_reference > 0 + ), "Extension function should reference URN" diff --git a/tests/test_bimap.py b/tests/test_bimap.py new file mode 100644 index 0000000..19a197c --- /dev/null +++ b/tests/test_bimap.py @@ -0,0 +1,101 @@ +""" +Tests for the UriUrnBiDiMap class. + +This bidirectional map is temporary and used during the URI -> URN migration period. +""" + +import pytest + +from substrait.bimap import UriUrnBiDiMap + + +class TestUriUrnBiDiMap: + """Tests for the UriUrnBiDiMap class.""" + + def test_put_and_get(self): + """Test basic put and get operations.""" + bimap = UriUrnBiDiMap() + uri = "https://github.com/substrait-io/substrait/blob/main/extensions/functions_arithmetic.yaml" + urn = "extension:io.substrait:functions_arithmetic" + + bimap.put(uri, urn) + + assert bimap.get_urn(uri) == urn + assert bimap.get_uri(urn) == uri + + def test_get_nonexistent(self): + """Test getting a non-existent mapping returns None.""" + bimap = UriUrnBiDiMap() + + assert bimap.get_urn("nonexistent") is None + assert bimap.get_uri("nonexistent") is None + + def test_duplicate_uri_same_urn(self): + """Test adding the same URI-URN mapping twice is idempotent.""" + bimap = UriUrnBiDiMap() + uri = "https://example.com/test.yaml" + urn = "extension:example:test" + + bimap.put(uri, urn) + bimap.put(uri, urn) # Should not raise + + assert bimap.get_urn(uri) == urn + + def test_duplicate_uri_different_urn(self): + """Test adding the same URI with different URN raises ValueError.""" + bimap = UriUrnBiDiMap() + uri = "https://example.com/test.yaml" + urn1 = "extension:example:test1" + urn2 = "extension:example:test2" + + bimap.put(uri, urn1) + + with pytest.raises(ValueError, match="already mapped"): + bimap.put(uri, urn2) + + def test_duplicate_urn_different_uri(self): + """Test adding the same URN with different URI raises ValueError.""" + bimap = UriUrnBiDiMap() + uri1 = "https://example.com/test1.yaml" + uri2 = "https://example.com/test2.yaml" + urn = "extension:example:test" + + bimap.put(uri1, urn) + + with pytest.raises(ValueError, match="already mapped"): + bimap.put(uri2, urn) + + def test_contains(self): + """Test contains_uri and contains_urn methods.""" + bimap = UriUrnBiDiMap() + uri = "https://example.com/test.yaml" + urn = "extension:example:test" + + assert not bimap.contains_uri(uri) + assert not bimap.contains_urn(urn) + + bimap.put(uri, urn) + + assert bimap.contains_uri(uri) + assert bimap.contains_urn(urn) + + def test_len(self): + """Test the length of the bimap.""" + bimap = UriUrnBiDiMap() + + assert len(bimap) == 0 + + bimap.put("uri1", "urn1") + assert len(bimap) == 1 + + bimap.put("uri2", "urn2") + assert len(bimap) == 2 + + def test_repr(self): + """Test the string representation of the bimap.""" + bimap = UriUrnBiDiMap() + + assert repr(bimap) == "UriUrnBiDiMap(0 mappings)" + + bimap.put("uri1", "urn1") + assert repr(bimap) == "UriUrnBiDiMap(1 mappings)" diff --git a/tests/test_extension_registry.py b/tests/test_extension_registry.py index 7089df3..1164a0a 100644 --- a/tests/test_extension_registry.py +++ b/tests/test_extension_registry.py @@ -1,3 +1,4 @@ +import pytest import yaml from substrait.gen.proto.type_pb2 import Type @@ -6,7 +7,7 @@ content = """%YAML 1.2 --- -urn: test +urn: extension:test:functions scalar_functions: - name: "test_fn" description: "" @@ -108,7 +109,10 @@ registry = ExtensionRegistry() -registry.register_extension_dict(yaml.safe_load(content)) +registry.register_extension_dict( + yaml.safe_load(content), + uri="https://test.example.com/extension_test_functions.yaml" +) def i8(nullable=False): @@ -165,7 +169,7 @@ def test_non_existing_urn(): def test_non_existing_function(): assert ( registry.lookup_function( - urn="test", function_name="sub", signature=[i8(), i8()] + urn="extension:test:functions", function_name="sub", signature=[i8(), i8()] ) is None ) @@ -173,27 +177,27 @@ def test_non_existing_function(): def test_non_existing_function_signature(): assert ( - registry.lookup_function(urn="test", function_name="add", signature=[i8()]) + registry.lookup_function(urn="extension:test:functions", function_name="add", signature=[i8()]) is None ) def test_exact_match(): assert registry.lookup_function( - urn="test", function_name="add", signature=[i8(), i8()] + urn="extension:test:functions", function_name="add", signature=[i8(), i8()] )[1] == Type(i8=Type.I8(nullability=Type.NULLABILITY_REQUIRED)) def test_wildcard_match(): assert registry.lookup_function( - urn="test", function_name="add", signature=[i8(), i8(), bool()] + urn="extension:test:functions", function_name="add", signature=[i8(), i8(), bool()] )[1] == Type(i16=Type.I16(nullability=Type.NULLABILITY_REQUIRED)) def test_wildcard_match_fails_with_constraits(): assert ( registry.lookup_function( - urn="test", function_name="add", signature=[i8(), i16(), i16()] + urn="extension:test:functions", function_name="add", signature=[i8(), i16(), i16()] ) is None ) @@ -202,7 +206,7 @@ def test_wildcard_match_fails_with_constraits(): def test_wildcard_match_with_constraits(): assert ( registry.lookup_function( - urn="test", function_name="add", signature=[i16(), i16(), i8()] + urn="extension:test:functions", function_name="add", signature=[i16(), i16(), i8()] )[1] == i8() ) @@ -211,7 +215,7 @@ def test_wildcard_match_with_constraits(): def test_variadic(): assert ( registry.lookup_function( - urn="test", function_name="test_fn", signature=[i8(), i8(), i8()] + urn="extension:test:functions", function_name="test_fn", signature=[i8(), i8(), i8()] )[1] == i8() ) @@ -220,7 +224,7 @@ def test_variadic(): def test_variadic_any(): assert ( registry.lookup_function( - urn="test", + urn="extension:test:functions", function_name="test_fn_variadic_any", signature=[i16(), i16(), i16()], )[1] @@ -230,14 +234,14 @@ def test_variadic_any(): def test_variadic_fails_min_constraint(): assert ( - registry.lookup_function(urn="test", function_name="test_fn", signature=[i8()]) + registry.lookup_function(urn="extension:test:functions", function_name="test_fn", signature=[i8()]) is None ) def test_decimal_happy_path(): assert registry.lookup_function( - urn="test", + urn="extension:test:functions", function_name="test_decimal", signature=[decimal(10, 8), decimal(8, 6)], )[1] == decimal(11, 7) @@ -246,7 +250,7 @@ def test_decimal_happy_path(): def test_decimal_violates_constraint(): assert ( registry.lookup_function( - urn="test", + urn="extension:test:functions", function_name="test_decimal", signature=[decimal(10, 8), decimal(12, 10)], ) @@ -256,7 +260,7 @@ def test_decimal_violates_constraint(): def test_decimal_happy_path_discrete(): assert registry.lookup_function( - urn="test", + urn="extension:test:functions", function_name="test_decimal_discrete", signature=[decimal(10, 8, nullable=True), decimal(8, 6)], )[1] == decimal(11, 7, nullable=True) @@ -265,7 +269,7 @@ def test_decimal_happy_path_discrete(): def test_enum_with_valid_option(): assert ( registry.lookup_function( - urn="test", + urn="extension:test:functions", function_name="test_enum", signature=["FLIP", i8()], )[1] @@ -276,7 +280,7 @@ def test_enum_with_valid_option(): def test_enum_with_nonexistent_option(): assert ( registry.lookup_function( - urn="test", + urn="extension:test:functions", function_name="test_enum", signature=["NONEXISTENT", i8()], ) @@ -286,26 +290,26 @@ def test_enum_with_nonexistent_option(): def test_function_with_nullable_args(): assert registry.lookup_function( - urn="test", function_name="add", signature=[i8(nullable=True), i8()] + urn="extension:test:functions", function_name="add", signature=[i8(nullable=True), i8()] )[1] == i8(nullable=True) def test_function_with_declared_output_nullability(): assert registry.lookup_function( - urn="test", function_name="add_declared", signature=[i8(), i8()] + urn="extension:test:functions", function_name="add_declared", signature=[i8(), i8()] )[1] == i8(nullable=True) def test_function_with_discrete_nullability(): assert registry.lookup_function( - urn="test", function_name="add_discrete", signature=[i8(nullable=True), i8()] + urn="extension:test:functions", function_name="add_discrete", signature=[i8(nullable=True), i8()] )[1] == i8(nullable=True) def test_function_with_discrete_nullability_nonexisting(): assert ( registry.lookup_function( - urn="test", function_name="add_discrete", signature=[i8(), i8()] + urn="extension:test:functions", function_name="add_discrete", signature=[i8(), i8()] ) is None ) @@ -334,3 +338,165 @@ def test_covers_decimal_happy_path(): def test_covers_any(): assert covers(decimal(10, 8), _parse("any"), {}) + + +# ============================================================================ +# URI/URN Bimap Tests +# ============================================================================ + + +def test_registry_uri_to_urn_conversion(): + """Test that URI to URN conversion works via the bimap.""" + content_with_urn = """%YAML 1.2 +--- +urn: extension:test:bimap +scalar_functions: + - name: "test_func" + description: "" + impls: + - args: + - value: i8 + return: i8 +""" + uri = "https://test.example.com/bimap.yaml" + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict(yaml.safe_load(content_with_urn), uri=uri) + + # Test URI to URN conversion + assert registry.uri_to_urn(uri) == "extension:test:bimap" + + +def test_registry_urn_to_uri_conversion(): + """Test that URN to URI conversion works via the bimap.""" + content_with_urn = """%YAML 1.2 +--- +urn: extension:test:bimap2 +scalar_functions: + - name: "test_func" + description: "" + impls: + - args: + - value: i8 + return: i8 +""" + uri = "https://test.example.com/bimap2.yaml" + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict(yaml.safe_load(content_with_urn), uri=uri) + + # Test URN to URI conversion + assert registry.urn_to_uri("extension:test:bimap2") == uri + + +def test_registry_uri_anchor_lookup(): + """Test that URI anchor lookup works.""" + content_with_urn = """%YAML 1.2 +--- +urn: extension:test:anchor +scalar_functions: [] +""" + uri = "https://test.example.com/anchor.yaml" + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict(yaml.safe_load(content_with_urn), uri=uri) + + # Test URI anchor lookup + anchor = registry.lookup_uri_anchor(uri) + assert anchor is not None + assert anchor > 0 + + +def test_registry_nonexistent_uri_urn_returns_none(): + """Test that looking up non-existent URI/URN returns None.""" + registry = ExtensionRegistry(load_default_extensions=False) + + assert registry.uri_to_urn("https://nonexistent.com/test.yaml") is None + assert registry.urn_to_uri("extension:nonexistent:test") is None + assert registry.lookup_uri_anchor("https://nonexistent.com/test.yaml") is None + + +def test_registry_default_extensions_have_uri_mappings(): + """Test that default extensions have URI mappings.""" + registry = ExtensionRegistry(load_default_extensions=True) + + # Check that at least one default extension has a URI mapping + urn = "extension:io.substrait:functions_comparison" + uri = registry.urn_to_uri(urn) + + assert uri is not None + assert "https://github.com/substrait-io/substrait/blob/main/extensions" in uri + assert "functions_comparison.yaml" in uri + + # Verify reverse mapping works + assert registry.uri_to_urn(uri) == urn + + +# ============================================================================ +# URN Validation Tests +# ============================================================================ + + +def test_valid_urn_format(): + """Test that valid URN formats are accepted.""" + content = """%YAML 1.2 +--- +urn: extension:io.substrait:functions_test +scalar_functions: + - name: "test_func" + description: "Test function" + impls: + - args: + - value: i8 + return: i8 +""" + registry = ExtensionRegistry(load_default_extensions=False) + # Should not raise + registry.register_extension_dict( + yaml.safe_load(content), + uri="https://test.example.com/functions_test.yaml" + ) + + +def test_invalid_urn_no_prefix(): + """Test that URN without 'extension:' prefix is rejected.""" + content = """%YAML 1.2 +--- +urn: io.substrait:functions_test +scalar_functions: [] +""" + registry = ExtensionRegistry(load_default_extensions=False) + + with pytest.raises(ValueError, match="Invalid URN format"): + registry.register_extension_dict( + yaml.safe_load(content), + uri="https://test.example.com/invalid.yaml" + ) + + +def test_invalid_urn_too_short(): + """Test that URN with insufficient parts is rejected.""" + content = """%YAML 1.2 +--- +urn: extension:test +scalar_functions: [] +""" + registry = ExtensionRegistry(load_default_extensions=False) + + with pytest.raises(ValueError, match="Invalid URN format"): + registry.register_extension_dict( + yaml.safe_load(content), + uri="https://test.example.com/invalid.yaml" + ) + + +def test_missing_urn(): + """Test that missing URN field raises ValueError.""" + content = """%YAML 1.2 +--- +scalar_functions: [] +""" + registry = ExtensionRegistry(load_default_extensions=False) + + with pytest.raises(ValueError, match="must contain a 'urn' field"): + registry.register_extension_dict( + yaml.safe_load(content), + uri="https://test.example.com/missing_urn.yaml" + ) diff --git a/tests/test_uri_urn_migration.py b/tests/test_uri_urn_migration.py new file mode 100644 index 0000000..53275c3 --- /dev/null +++ b/tests/test_uri_urn_migration.py @@ -0,0 +1,265 @@ +""" +Comprehensive test suite for URI <-> URN migration. + +Tests registry integration, dual URI/URN output, and round-trip conversions +during the migration period from URI to URN-based extension identifiers. + +NOTE: This file is temporary and can be removed once the URI -> URN migration +is complete across all Substrait implementations. At that point, only URN-based +extension references will be used, and the UriUrnBiDiMap will no longer be needed. + +Note: Tests for the UriUrnBiDiMap class itself are in test_bimap.py +""" + +import pytest +import yaml + +import substrait.gen.proto.type_pb2 as stt +import substrait.gen.proto.extended_expression_pb2 as stee +import substrait.gen.proto.extensions.extensions_pb2 as ste +from substrait.builders.extended_expression import scalar_function, literal +from substrait.extension_registry import ExtensionRegistry + + +# ============================================================================ +# ExtensionRegistry URI/URN Bimap Tests +# ============================================================================ + + +class TestExtensionRegistryBimap: + """Tests for ExtensionRegistry URI/URN bimap functionality.""" + + def test_register_with_uri(self): + """Test registering an extension with both URN and URI.""" + content = """%YAML 1.2 +--- +urn: extension:example:test +scalar_functions: + - name: "test_func" + description: "" + impls: + - args: + - value: i8 + return: i8 +""" + uri = "https://example.com/test.yaml" + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict(yaml.safe_load(content), uri=uri) + + # Test URN lookup + assert registry.lookup_urn("extension:example:test") is not None + + # Test URI lookup + assert registry.lookup_uri_anchor(uri) is not None + + # Test bimap conversions + assert registry.uri_to_urn(uri) == "extension:example:test" + assert registry.urn_to_uri("extension:example:test") == uri + + def test_register_requires_uri(self): + """Test that registering an extension requires a URI during migration.""" + content = """%YAML 1.2 +--- +urn: extension:example:test +scalar_functions: [] +""" + registry = ExtensionRegistry(load_default_extensions=False) + + # During migration, URI is required - this should fail with TypeError + with pytest.raises(TypeError): + registry.register_extension_dict(yaml.safe_load(content)) + + def test_default_extensions_have_uris(self): + """Test that default extensions are registered with URIs.""" + registry = ExtensionRegistry(load_default_extensions=True) + + # Check one of the default extensions + urn = "extension:io.substrait:functions_comparison" + uri_from_bimap = registry.urn_to_uri(urn) + + # Should have a URI derived from DEFAULT_URN_PREFIX + assert uri_from_bimap is not None + assert "https://github.com/substrait-io/substrait/blob/main/extensions" in uri_from_bimap + assert "functions_comparison.yaml" in uri_from_bimap + + +# ============================================================================ +# Extension Output Tests (Both URI and URN) +# ============================================================================ + + +class TestExtensionOutput: + """Tests that extension outputs include both URI and URN.""" + + def test_scalar_function_outputs_both_uri_and_urn(self): + """Test that scalar_function outputs both SimpleExtensionURI and SimpleExtensionURN.""" + content = """%YAML 1.2 +--- +urn: extension:test:functions +scalar_functions: + - name: "test_func" + description: "" + impls: + - args: + - value: i8 + return: i8 +""" + uri = "https://test.example.com/functions.yaml" + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict(yaml.safe_load(content), uri=uri) + + struct = stt.Type.Struct( + types=[stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED))] + ) + named_struct = stt.NamedStruct(names=["value"], struct=struct) + + expr = scalar_function( + "extension:test:functions", + "test_func", + expressions=[ + literal( + 10, + type=stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED)), + ) + ], + )(named_struct, registry) + + # Check that both URI and URN extensions are present + assert len(expr.extension_urns) > 0 + assert len(expr.extension_uris) > 0 + + # Check URN details + urn_ext = expr.extension_urns[0] + assert urn_ext.urn == "extension:test:functions" + assert urn_ext.extension_urn_anchor > 0 + + # Check URI details + uri_ext = expr.extension_uris[0] + assert uri_ext.uri == uri + assert uri_ext.extension_uri_anchor > 0 + + # Check that extension function declaration has both references + ext_func = expr.extensions[0].extension_function + assert ext_func.extension_urn_reference > 0 + assert ext_func.extension_uri_reference > 0 + + def test_uri_and_urn_always_paired(self): + """Test that during migration, URI and URN are always registered together.""" + content = """%YAML 1.2 +--- +urn: extension:test:functions_paired +scalar_functions: + - name: "test_func" + description: "" + impls: + - args: + - value: i8 + return: i8 +""" + uri = "https://test.example.com/functions_paired.yaml" + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict(yaml.safe_load(content), uri=uri) + + # Verify both URN and URI were registered + assert registry.lookup_urn("extension:test:functions_paired") is not None + assert registry.lookup_uri_anchor(uri) is not None + + # Verify bimap has both directions + assert registry.uri_to_urn(uri) == "extension:test:functions_paired" + assert registry.urn_to_uri("extension:test:functions_paired") == uri + + +# ============================================================================ +# Round-Trip Tests +# ============================================================================ + + +class TestRoundTrip: + """Tests for round-trip conversion and semantic equivalence.""" + + def test_expression_with_both_uri_and_urn_round_trips(self): + """Test that an expression with both URI and URN round-trips correctly.""" + content = """%YAML 1.2 +--- +urn: extension:test:roundtrip +scalar_functions: + - name: "add" + description: "" + impls: + - args: + - value: i8 + - value: i8 + return: i8 +""" + uri = "https://test.example.com/roundtrip.yaml" + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict(yaml.safe_load(content), uri=uri) + + struct = stt.Type.Struct( + types=[ + stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED)), + stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED)), + ] + ) + named_struct = stt.NamedStruct(names=["a", "b"], struct=struct) + + # Create expression + expr = scalar_function( + "extension:test:roundtrip", + "add", + expressions=[ + literal( + 10, + type=stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED)), + ), + literal( + 20, + type=stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED)), + ), + ], + )(named_struct, registry) + + # Verify both URI and URN are present + assert len(expr.extension_urns) == 1 + assert len(expr.extension_uris) == 1 + assert expr.extension_urns[0].urn == "extension:test:roundtrip" + assert expr.extension_uris[0].uri == uri + + # Serialize to bytes and deserialize (proto round-trip) + serialized = expr.SerializeToString() + deserialized = stee.ExtendedExpression() + deserialized.ParseFromString(serialized) + + # Verify both URI and URN survived round-trip + assert len(deserialized.extension_urns) == 1 + assert len(deserialized.extension_uris) == 1 + assert deserialized.extension_urns[0].urn == "extension:test:roundtrip" + assert deserialized.extension_uris[0].uri == uri + + def test_merge_extensions_deduplicates(self): + """Test that merging extensions with duplicate URIs/URNs deduplicates correctly.""" + from substrait.utils import merge_extension_uris, merge_extension_urns + + # Create duplicate URI extensions + uri1 = ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://example.com/test.yaml") + uri2 = ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://example.com/test.yaml") + uri3 = ste.SimpleExtensionURI(extension_uri_anchor=2, uri="https://example.com/other.yaml") + + merged_uris = merge_extension_uris([uri1], [uri2, uri3]) + + # Should have 2 unique URIs + assert len(merged_uris) == 2 + assert merged_uris[0].uri == "https://example.com/test.yaml" + assert merged_uris[1].uri == "https://example.com/other.yaml" + + # Create duplicate URN extensions + urn1 = ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:example:test") + urn2 = ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:example:test") + urn3 = ste.SimpleExtensionURN(extension_urn_anchor=2, urn="extension:example:other") + + merged_urns = merge_extension_urns([urn1], [urn2, urn3]) + + # Should have 2 unique URNs + assert len(merged_urns) == 2 + assert merged_urns[0].urn == "extension:example:test" + assert merged_urns[1].urn == "extension:example:other" From 87bea90a5137da7944e1cd935155f32d9e07f7fb Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Fri, 24 Oct 2025 12:45:43 -0400 Subject: [PATCH 04/18] fix: use `from_substrait` in duckdb tests to get tests passing the duckdb extension throws an error when unexpected fields are present in JSON on invocation of `from_substrait_json`. So we instead switch to using `from_substrait`. --- tests/sql/test_sql_to_substrait.py | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/tests/sql/test_sql_to_substrait.py b/tests/sql/test_sql_to_substrait.py index 49d22d0..eb7b1d7 100644 --- a/tests/sql/test_sql_to_substrait.py +++ b/tests/sql/test_sql_to_substrait.py @@ -1,7 +1,6 @@ from substrait.extension_registry import ExtensionRegistry from substrait.sql.sql_to_substrait import convert import pyarrow -from google.protobuf import json_format import tempfile import pyarrow.substrait as pa_substrait import pytest @@ -94,10 +93,9 @@ def duckdb_schema_resolver(name: str): conn.install_extension("substrait", repository="community") conn.load_extension("substrait") - plan_json = json_format.MessageToJson(plan) - sql = f"CALL from_substrait_json('{plan_json}')" + sql = "CALL from_substrait(?)" + substrait_out = conn.sql(sql, params=[plan.SerializeToString()]) - substrait_out = conn.sql(sql) sql_out = conn.sql(query) substrait_arrow = substrait_out.arrow() @@ -134,7 +132,6 @@ def test_select_field(engine: str): assert_query("""SELECT store_id FROM stores""", engine) -@pytest.mark.xfail @pytest.mark.parametrize("engine", engines) def test_inner_join_filtered(engine: str): assert_query( @@ -146,7 +143,7 @@ def test_inner_join_filtered(engine: str): engine, ) -@pytest.mark.xfail + @pytest.mark.parametrize("engine", engines) def test_left_join(engine: str): assert_query( @@ -157,7 +154,7 @@ def test_left_join(engine: str): engine, ) -@pytest.mark.xfail + @pytest.mark.parametrize("engine", engines) def test_right_join(engine: str): assert_query( @@ -179,7 +176,7 @@ def test_group_by_empty_measures(engine: str): engine, ) -@pytest.mark.xfail + @pytest.mark.parametrize("engine", engines) def test_group_by_count(engine: str): assert_query( @@ -190,7 +187,7 @@ def test_group_by_count(engine: str): engine, ) -@pytest.mark.xfail + @pytest.mark.parametrize("engine", engines) def test_group_by_unnamed_expr(engine: str): assert_query( @@ -201,7 +198,7 @@ def test_group_by_unnamed_expr(engine: str): engine, ) -@pytest.mark.xfail + @pytest.mark.parametrize("engine", engines) def test_sum(engine: str): assert_query( @@ -222,7 +219,7 @@ def test_group_by_hidden_dimension(engine: str): engine, ) -@pytest.mark.xfail + @pytest.mark.parametrize("engine", engines) def test_group_by_having_no_duplicate(engine: str): assert_query( @@ -234,7 +231,7 @@ def test_group_by_having_no_duplicate(engine: str): engine, ) -@pytest.mark.xfail + @pytest.mark.parametrize("engine", engines) def test_group_by_having_duplicate(engine: str): assert_query( From 1ccee76d9cc8d5ef732c7bc58537b85ac99d2585 Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Fri, 24 Oct 2025 13:11:21 -0400 Subject: [PATCH 05/18] cleanup --- .gitignore | 1 - src/substrait/bimap.py | 19 +- src/substrait/builders/extended_expression.py | 22 +- src/substrait/builders/plan.py | 4 +- src/substrait/extension_registry.py | 28 +- .../builders/plan/test_plan_uri_urn_output.py | 265 -------------- tests/test_bimap.py | 21 -- tests/test_extension_registry.py | 68 ++-- tests/test_uri_urn_migration.py | 323 ++++++++++++++---- 9 files changed, 290 insertions(+), 461 deletions(-) delete mode 100644 tests/builders/plan/test_plan_uri_urn_output.py diff --git a/.gitignore b/.gitignore index f8eaad0..a14793f 100644 --- a/.gitignore +++ b/.gitignore @@ -142,4 +142,3 @@ src/substrait/_version.py .directory .gdb_history .DS_Store -/.envrc diff --git a/src/substrait/bimap.py b/src/substrait/bimap.py index ed2332a..7bf0c0a 100644 --- a/src/substrait/bimap.py +++ b/src/substrait/bimap.py @@ -2,7 +2,7 @@ Bidirectional map for URI <-> URN conversion during the migration period. This module provides a UriUrnBiDiMap class that maintains a bidirectional mapping -between URIs and URNs, ensuring consistency and detecting conflicts. +between URIs and URNs. NOTE: This file is temporary and can be removed once the URI -> URN migration is complete across all Substrait implementations. At that point, only URN-based @@ -34,8 +34,8 @@ def put(self, uri: str, urn: str) -> None: ValueError: If the URI or URN already exists with a different mapping """ # Check for conflicts - if uri in self._uri_to_urn: - existing_urn = self._uri_to_urn[uri] + if self.contains_uri(uri): + existing_urn = self.get_urn(uri) if existing_urn != urn: raise ValueError( f"URI '{uri}' is already mapped to URN '{existing_urn}', " @@ -44,8 +44,8 @@ def put(self, uri: str, urn: str) -> None: # Already have this exact mapping, nothing to do return - if urn in self._urn_to_uri: - existing_uri = self._urn_to_uri[urn] + if self.contains_urn(urn): + existing_uri = self.get_uri(urn) if existing_uri != uri: raise ValueError( f"URN '{urn}' is already mapped to URI '{existing_uri}', " @@ -54,7 +54,6 @@ def put(self, uri: str, urn: str) -> None: # Already have this exact mapping, nothing to do return - # Add the bidirectional mapping self._uri_to_urn[uri] = urn self._urn_to_uri[urn] = uri @@ -101,11 +100,3 @@ def contains_urn(self, urn: str) -> bool: True if the URN is in the map, False otherwise """ return urn in self._urn_to_uri - - def __len__(self) -> int: - """Return the number of mappings in the bimap.""" - return len(self._uri_to_urn) - - def __repr__(self) -> str: - """Return a string representation of the bimap.""" - return f"UriUrnBiDiMap({len(self)} mappings)" diff --git a/src/substrait/builders/extended_expression.py b/src/substrait/builders/extended_expression.py index 6d2bc47..a08e1d1 100644 --- a/src/substrait/builders/extended_expression.py +++ b/src/substrait/builders/extended_expression.py @@ -230,15 +230,14 @@ def resolve( if not func: raise Exception(f"Unknown function {function} for {signature}") - # Create URN extension func_extension_urns = [ ste.SimpleExtensionURN( extension_urn_anchor=registry.lookup_urn(urn), urn=urn ) ] - # Create URI extension (convert URN to URI via bimap) - uri = registry.urn_to_uri(urn) + # Create URI extension for backwards compatibility during URI -> URN migration + uri = registry._uri_urn_bimap.get_uri(urn) func_extension_uris = [] if uri: uri_anchor = registry.lookup_uri_anchor(uri) @@ -247,7 +246,6 @@ def resolve( ste.SimpleExtensionURI(extension_uri_anchor=uri_anchor, uri=uri) ] - # Create extension function declaration with both URI and URN references func_extensions = [ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( @@ -259,7 +257,6 @@ def resolve( ) ] - # Merge extensions from all expressions extension_urns = merge_extension_urns( func_extension_urns, *[b.extension_urns for b in bound_expressions] ) @@ -329,15 +326,14 @@ def resolve( if not func: raise Exception(f"Unknown function {function} for {signature}") - # Create URN extension func_extension_urns = [ ste.SimpleExtensionURN( extension_urn_anchor=registry.lookup_urn(urn), urn=urn ) ] - # Create URI extension (convert URN to URI via bimap) - uri = registry.urn_to_uri(urn) + # Create URI extension for backwards compatibility during URI -> URN migration + uri = registry._uri_urn_bimap.get_uri(urn) func_extension_uris = [] if uri: uri_anchor = registry.lookup_uri_anchor(uri) @@ -346,7 +342,6 @@ def resolve( ste.SimpleExtensionURI(extension_uri_anchor=uri_anchor, uri=uri) ] - # Create extension function declaration with both URI and URN references func_extensions = [ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( @@ -358,7 +353,6 @@ def resolve( ) ] - # Merge extensions from all expressions extension_urns = merge_extension_urns( func_extension_urns, *[b.extension_urns for b in bound_expressions] ) @@ -430,15 +424,14 @@ def resolve( if not func: raise Exception(f"Unknown function {function} for {signature}") - # Create URN extension func_extension_urns = [ ste.SimpleExtensionURN( extension_urn_anchor=registry.lookup_urn(urn), urn=urn ) ] - # Create URI extension (convert URN to URI via bimap) - uri = registry.urn_to_uri(urn) + # Create URI extension for backwards compatibility during URI -> URN migration + uri = registry._uri_urn_bimap.get_uri(urn) func_extension_uris = [] if uri: uri_anchor = registry.lookup_uri_anchor(uri) @@ -447,7 +440,6 @@ def resolve( ste.SimpleExtensionURI(extension_uri_anchor=uri_anchor, uri=uri) ] - # Create extension function declaration with both URI and URN references func_extensions = [ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( @@ -459,7 +451,7 @@ def resolve( ) ] - # Merge extensions from all expressions + extension_urns = merge_extension_urns( func_extension_urns, *[b.extension_urns for b in bound_expressions], diff --git a/src/substrait/builders/plan.py b/src/substrait/builders/plan.py index 73f682d..bf49180 100644 --- a/src/substrait/builders/plan.py +++ b/src/substrait/builders/plan.py @@ -28,8 +28,8 @@ def _merge_extensions(*objs): """Merge extension URIs, URNs, and declarations from multiple plan/expression objects. - During the URI/URN migration period, we maintain both URI and URN references - for maximum compatibility. + During the URI -> URN migration period, we maintain both URI and URN references + for backwards compatibility. """ return { "extension_uris": merge_extension_uris(*[b.extension_uris for b in objs if b]), diff --git a/src/substrait/extension_registry.py b/src/substrait/extension_registry.py index a65a16a..904d77e 100644 --- a/src/substrait/extension_registry.py +++ b/src/substrait/extension_registry.py @@ -251,6 +251,7 @@ def satisfies_signature(self, signature: tuple) -> Optional[str]: class ExtensionRegistry: def __init__(self, load_default_extensions=True) -> None: self._urn_mapping: dict = defaultdict(dict) # URN -> anchor ID + # NOTE: during the URI -> URN migration, we only need an id generator for URN. We can use the same anchor for plan construction for URIs. self._urn_id_generator = itertools.count(1) self._function_mapping: dict = defaultdict(dict) @@ -278,7 +279,7 @@ def register_extension_yaml( Args: fname: Path to the YAML file - uri: URI for the extension (for URI/URN bimap) + uri: URI for the extension (this is required during the URI -> URN migration) """ fname = Path(fname) with open(fname) as f: # type: ignore @@ -297,13 +298,10 @@ def register_extension_dict(self, definitions: dict, uri: str) -> None: if not urn: raise ValueError("Extension definitions must contain a 'urn' field") - # Validate URN format self._validate_urn_format(urn) - # Assign anchor to URN (URI will use the same anchor during output) self._urn_mapping[urn] = next(self._urn_id_generator) - # Store URI <-> URN mapping for output generation self._uri_urn_bimap.put(uri, urn) simple_extensions = build_simple_extensions(definitions) @@ -369,28 +367,6 @@ def lookup_uri_anchor(self, uri: str) -> Optional[int]: return self._urn_mapping.get(urn) return None - def uri_to_urn(self, uri: str) -> Optional[str]: - """Convert a URI to its corresponding URN using the bimap. - - Args: - uri: The extension URI - - Returns: - The corresponding URN, or None if not in the bimap - """ - return self._uri_urn_bimap.get_urn(uri) - - def urn_to_uri(self, urn: str) -> Optional[str]: - """Convert a URN to its corresponding URI using the bimap. - - Args: - urn: The extension URN - - Returns: - The corresponding URI, or None if not in the bimap - """ - return self._uri_urn_bimap.get_uri(urn) - def _validate_urn_format(self, urn: str) -> None: """Validate that a URN follows the expected format. diff --git a/tests/builders/plan/test_plan_uri_urn_output.py b/tests/builders/plan/test_plan_uri_urn_output.py deleted file mode 100644 index 2f22974..0000000 --- a/tests/builders/plan/test_plan_uri_urn_output.py +++ /dev/null @@ -1,265 +0,0 @@ -""" -Tests to verify that plan builders always output both URI and URN extensions. - -This ensures backward compatibility during the URI → URN migration period. -All plans produced by the builders should contain both SimpleExtensionURI -and SimpleExtensionURN entries, along with both extension_uri_reference -and extension_urn_reference in function declarations. -""" - -import yaml - -import substrait.gen.proto.type_pb2 as stt -from substrait.builders.type import i64 -from substrait.builders.plan import read_named_table, aggregate, project, filter -from substrait.builders.extended_expression import ( - column, - aggregate_function, - scalar_function, - literal, -) -from substrait.extension_registry import ExtensionRegistry - - -def test_plan_with_scalar_function_has_both_uri_and_urn(): - """Test that plans with scalar functions output both URI and URN.""" - content = """%YAML 1.2 ---- -urn: extension:test:functions -scalar_functions: - - name: "add" - description: "" - impls: - - args: - - value: i64 - - value: i64 - return: i64 -""" - registry = ExtensionRegistry(load_default_extensions=False) - registry.register_extension_dict( - yaml.safe_load(content), uri="https://test.example.com/functions.yaml" - ) - - struct = stt.Type.Struct(types=[i64(nullable=False), i64(nullable=False)]) - named_struct = stt.NamedStruct(names=["a", "b"], struct=struct) - - table = read_named_table("table", named_struct) - add_expr = scalar_function( - "extension:test:functions", - "add", - expressions=[column("a"), column("b")], - ) - - plan = project(table, [add_expr])(registry) - - # Verify both URI and URN are present - assert len(plan.extension_uris) > 0, "Plan should have extension URIs" - assert len(plan.extension_urns) > 0, "Plan should have extension URNs" - - # Verify they match - assert ( - plan.extension_uris[0].uri == "https://test.example.com/functions.yaml" - ), "URI should match" - assert ( - plan.extension_urns[0].urn == "extension:test:functions" - ), "URN should match" - - # Verify URI and URN use the SAME anchor - assert ( - plan.extension_uris[0].extension_uri_anchor - == plan.extension_urns[0].extension_urn_anchor - ), "URI and URN should share the same anchor" - - # Verify extension declarations have both references (also the same) - assert len(plan.extensions) > 0, "Plan should have extension declarations" - ext_func = plan.extensions[0].extension_function - assert ( - ext_func.extension_uri_reference > 0 - ), "Extension function should reference URI" - assert ( - ext_func.extension_urn_reference > 0 - ), "Extension function should reference URN" - assert ( - ext_func.extension_uri_reference == ext_func.extension_urn_reference - ), "URI and URN references should be the same" - - -def test_plan_with_aggregate_function_has_both_uri_and_urn(): - """Test that plans with aggregate functions output both URI and URN.""" - content = """%YAML 1.2 ---- -urn: extension:test:aggregate -aggregate_functions: - - name: "sum" - description: "" - impls: - - args: - - value: i64 - nullability: DECLARED_OUTPUT - decomposable: MANY - intermediate: i64 - return: i64 -""" - registry = ExtensionRegistry(load_default_extensions=False) - registry.register_extension_dict( - yaml.safe_load(content), uri="https://test.example.com/aggregate.yaml" - ) - - struct = stt.Type.Struct(types=[i64(nullable=False), i64(nullable=False)]) - named_struct = stt.NamedStruct(names=["id", "value"], struct=struct) - - table = read_named_table("table", named_struct) - sum_expr = aggregate_function( - "extension:test:aggregate", "sum", expressions=[column("value")] - ) - - plan = aggregate(table, grouping_expressions=[column("id")], measures=[sum_expr])( - registry - ) - - # Verify both URI and URN are present - assert len(plan.extension_uris) > 0, "Plan should have extension URIs" - assert len(plan.extension_urns) > 0, "Plan should have extension URNs" - - # Verify they match - assert ( - plan.extension_uris[0].uri == "https://test.example.com/aggregate.yaml" - ), "URI should match" - assert ( - plan.extension_urns[0].urn == "extension:test:aggregate" - ), "URN should match" - - # Verify extension declarations have both references - assert len(plan.extensions) > 0, "Plan should have extension declarations" - ext_func = plan.extensions[0].extension_function - assert ( - ext_func.extension_uri_reference > 0 - ), "Extension function should reference URI" - assert ( - ext_func.extension_urn_reference > 0 - ), "Extension function should reference URN" - - -def test_plan_with_multiple_extensions_has_all_uris_and_urns(): - """Test that plans with multiple extensions output all URIs and URNs.""" - content1 = """%YAML 1.2 ---- -urn: extension:test:math -scalar_functions: - - name: "multiply" - description: "" - impls: - - args: - - value: i64 - - value: i64 - return: i64 -""" - - content2 = """%YAML 1.2 ---- -urn: extension:test:comparison -scalar_functions: - - name: "greater_than" - description: "" - impls: - - args: - - value: i64 - - value: i64 - return: boolean -""" - - registry = ExtensionRegistry(load_default_extensions=False) - registry.register_extension_dict( - yaml.safe_load(content1), uri="https://test.example.com/math.yaml" - ) - registry.register_extension_dict( - yaml.safe_load(content2), uri="https://test.example.com/comparison.yaml" - ) - - struct = stt.Type.Struct(types=[i64(nullable=False), i64(nullable=False)]) - named_struct = stt.NamedStruct(names=["a", "b"], struct=struct) - - table = read_named_table("table", named_struct) - - # Use both extensions - multiply_expr = scalar_function( - "extension:test:math", - "multiply", - expressions=[column("a"), column("b")], - ) - gt_expr = scalar_function( - "extension:test:comparison", - "greater_than", - expressions=[multiply_expr, literal(100, i64(nullable=False))], - ) - - plan = filter(table, gt_expr)(registry) - - # Verify both extensions have URIs and URNs - assert len(plan.extension_uris) == 2, "Plan should have 2 extension URIs" - assert len(plan.extension_urns) == 2, "Plan should have 2 extension URNs" - - # Collect URIs and URNs - uris = {ext.uri for ext in plan.extension_uris} - urns = {ext.urn for ext in plan.extension_urns} - - assert "https://test.example.com/math.yaml" in uris - assert "https://test.example.com/comparison.yaml" in uris - assert "extension:test:math" in urns - assert "extension:test:comparison" in urns - - # Verify all extension declarations have both references - assert len(plan.extensions) == 2, "Plan should have 2 extension declarations" - for ext_decl in plan.extensions: - ext_func = ext_decl.extension_function - assert ( - ext_func.extension_uri_reference > 0 - ), "Extension function should reference URI" - assert ( - ext_func.extension_urn_reference > 0 - ), "Extension function should reference URN" - - -def test_plan_with_default_extensions_has_both_uri_and_urn(): - """Test that plans using default extensions output both URI and URN.""" - # Use default registry with built-in extensions - registry = ExtensionRegistry(load_default_extensions=True) - - struct = stt.Type.Struct(types=[i64(nullable=False), i64(nullable=False)]) - named_struct = stt.NamedStruct(names=["a", "b"], struct=struct) - - table = read_named_table("table", named_struct) - - # Use a function from the default extensions - add_expr = scalar_function( - "extension:io.substrait:functions_arithmetic", - "add", - expressions=[column("a"), column("b")], - ) - - plan = project(table, [add_expr])(registry) - - # Verify both URI and URN are present - assert len(plan.extension_uris) > 0, "Plan should have extension URIs" - assert len(plan.extension_urns) > 0, "Plan should have extension URNs" - - # Verify URN matches - assert any( - ext.urn == "extension:io.substrait:functions_arithmetic" - for ext in plan.extension_urns - ), "Should have arithmetic functions URN" - - # Verify URI is present and matches the GitHub URL pattern - assert any( - "functions_arithmetic.yaml" in ext.uri for ext in plan.extension_uris - ), "Should have arithmetic functions URI" - - # Verify extension declarations have both references - assert len(plan.extensions) > 0, "Plan should have extension declarations" - ext_func = plan.extensions[0].extension_function - assert ( - ext_func.extension_uri_reference > 0 - ), "Extension function should reference URI" - assert ( - ext_func.extension_urn_reference > 0 - ), "Extension function should reference URN" diff --git a/tests/test_bimap.py b/tests/test_bimap.py index 19a197c..c3eef02 100644 --- a/tests/test_bimap.py +++ b/tests/test_bimap.py @@ -78,24 +78,3 @@ def test_contains(self): assert bimap.contains_uri(uri) assert bimap.contains_urn(urn) - - def test_len(self): - """Test the length of the bimap.""" - bimap = UriUrnBiDiMap() - - assert len(bimap) == 0 - - bimap.put("uri1", "urn1") - assert len(bimap) == 1 - - bimap.put("uri2", "urn2") - assert len(bimap) == 2 - - def test_repr(self): - """Test the string representation of the bimap.""" - bimap = UriUrnBiDiMap() - - assert repr(bimap) == "UriUrnBiDiMap(0 mappings)" - - bimap.put("uri1", "urn1") - assert repr(bimap) == "UriUrnBiDiMap(1 mappings)" diff --git a/tests/test_extension_registry.py b/tests/test_extension_registry.py index 1164a0a..c447ad1 100644 --- a/tests/test_extension_registry.py +++ b/tests/test_extension_registry.py @@ -340,16 +340,12 @@ def test_covers_any(): assert covers(decimal(10, 8), _parse("any"), {}) -# ============================================================================ -# URI/URN Bimap Tests -# ============================================================================ - - -def test_registry_uri_to_urn_conversion(): +def test_registry_uri_urn(): """Test that URI to URN conversion works via the bimap.""" - content_with_urn = """%YAML 1.2 + urn = "extension:test:bimap" + content_with_urn = f"""%YAML 1.2 --- -urn: extension:test:bimap +urn: {urn} scalar_functions: - name: "test_func" description: "" @@ -362,29 +358,10 @@ def test_registry_uri_to_urn_conversion(): registry = ExtensionRegistry(load_default_extensions=False) registry.register_extension_dict(yaml.safe_load(content_with_urn), uri=uri) - # Test URI to URN conversion - assert registry.uri_to_urn(uri) == "extension:test:bimap" - -def test_registry_urn_to_uri_conversion(): - """Test that URN to URI conversion works via the bimap.""" - content_with_urn = """%YAML 1.2 ---- -urn: extension:test:bimap2 -scalar_functions: - - name: "test_func" - description: "" - impls: - - args: - - value: i8 - return: i8 -""" - uri = "https://test.example.com/bimap2.yaml" - registry = ExtensionRegistry(load_default_extensions=False) - registry.register_extension_dict(yaml.safe_load(content_with_urn), uri=uri) + assert registry._uri_urn_bimap.get_urn(uri) == urn + assert registry._uri_urn_bimap.get_uri(urn) == uri - # Test URN to URI conversion - assert registry.urn_to_uri("extension:test:bimap2") == uri def test_registry_uri_anchor_lookup(): @@ -404,35 +381,20 @@ def test_registry_uri_anchor_lookup(): assert anchor > 0 -def test_registry_nonexistent_uri_urn_returns_none(): - """Test that looking up non-existent URI/URN returns None.""" - registry = ExtensionRegistry(load_default_extensions=False) - - assert registry.uri_to_urn("https://nonexistent.com/test.yaml") is None - assert registry.urn_to_uri("extension:nonexistent:test") is None - assert registry.lookup_uri_anchor("https://nonexistent.com/test.yaml") is None - - def test_registry_default_extensions_have_uri_mappings(): """Test that default extensions have URI mappings.""" registry = ExtensionRegistry(load_default_extensions=True) # Check that at least one default extension has a URI mapping urn = "extension:io.substrait:functions_comparison" - uri = registry.urn_to_uri(urn) + uri = registry._uri_urn_bimap.get_uri(urn) assert uri is not None assert "https://github.com/substrait-io/substrait/blob/main/extensions" in uri assert "functions_comparison.yaml" in uri # Verify reverse mapping works - assert registry.uri_to_urn(uri) == urn - - -# ============================================================================ -# URN Validation Tests -# ============================================================================ - + assert registry._uri_urn_bimap.get_urn(uri) == urn def test_valid_urn_format(): """Test that valid URN formats are accepted.""" @@ -500,3 +462,17 @@ def test_missing_urn(): yaml.safe_load(content), uri="https://test.example.com/missing_urn.yaml" ) + + +def test_register_requires_uri(): + """Test that registering an extension requires a URI during migration.""" + content = """%YAML 1.2 +--- +urn: extension:example:test +scalar_functions: [] +""" + registry = ExtensionRegistry(load_default_extensions=False) + + # During migration, URI is required - this should fail with TypeError + with pytest.raises(TypeError): + registry.register_extension_dict(yaml.safe_load(content)) diff --git a/tests/test_uri_urn_migration.py b/tests/test_uri_urn_migration.py index 53275c3..f034bc1 100644 --- a/tests/test_uri_urn_migration.py +++ b/tests/test_uri_urn_migration.py @@ -15,78 +15,20 @@ import yaml import substrait.gen.proto.type_pb2 as stt +import substrait.gen.proto.plan_pb2 as stp +import substrait.gen.proto.algebra_pb2 as stalg import substrait.gen.proto.extended_expression_pb2 as stee import substrait.gen.proto.extensions.extensions_pb2 as ste -from substrait.builders.extended_expression import scalar_function, literal +from substrait.builders.extended_expression import ( + scalar_function, + literal, + column, + aggregate_function, +) +from substrait.builders.type import i64, boolean +from substrait.builders.plan import read_named_table, aggregate, project, filter from substrait.extension_registry import ExtensionRegistry - - -# ============================================================================ -# ExtensionRegistry URI/URN Bimap Tests -# ============================================================================ - - -class TestExtensionRegistryBimap: - """Tests for ExtensionRegistry URI/URN bimap functionality.""" - - def test_register_with_uri(self): - """Test registering an extension with both URN and URI.""" - content = """%YAML 1.2 ---- -urn: extension:example:test -scalar_functions: - - name: "test_func" - description: "" - impls: - - args: - - value: i8 - return: i8 -""" - uri = "https://example.com/test.yaml" - registry = ExtensionRegistry(load_default_extensions=False) - registry.register_extension_dict(yaml.safe_load(content), uri=uri) - - # Test URN lookup - assert registry.lookup_urn("extension:example:test") is not None - - # Test URI lookup - assert registry.lookup_uri_anchor(uri) is not None - - # Test bimap conversions - assert registry.uri_to_urn(uri) == "extension:example:test" - assert registry.urn_to_uri("extension:example:test") == uri - - def test_register_requires_uri(self): - """Test that registering an extension requires a URI during migration.""" - content = """%YAML 1.2 ---- -urn: extension:example:test -scalar_functions: [] -""" - registry = ExtensionRegistry(load_default_extensions=False) - - # During migration, URI is required - this should fail with TypeError - with pytest.raises(TypeError): - registry.register_extension_dict(yaml.safe_load(content)) - - def test_default_extensions_have_uris(self): - """Test that default extensions are registered with URIs.""" - registry = ExtensionRegistry(load_default_extensions=True) - - # Check one of the default extensions - urn = "extension:io.substrait:functions_comparison" - uri_from_bimap = registry.urn_to_uri(urn) - - # Should have a URI derived from DEFAULT_URN_PREFIX - assert uri_from_bimap is not None - assert "https://github.com/substrait-io/substrait/blob/main/extensions" in uri_from_bimap - assert "functions_comparison.yaml" in uri_from_bimap - - -# ============================================================================ -# Extension Output Tests (Both URI and URN) -# ============================================================================ - +from substrait.type_inference import infer_plan_schema class TestExtensionOutput: """Tests that extension outputs include both URI and URN.""" @@ -165,8 +107,8 @@ def test_uri_and_urn_always_paired(self): assert registry.lookup_uri_anchor(uri) is not None # Verify bimap has both directions - assert registry.uri_to_urn(uri) == "extension:test:functions_paired" - assert registry.urn_to_uri("extension:test:functions_paired") == uri + assert registry._uri_urn_bimap.get_urn(uri) == "extension:test:functions_paired" + assert registry._uri_urn_bimap.get_uri("extension:test:functions_paired") == uri # ============================================================================ @@ -263,3 +205,242 @@ def test_merge_extensions_deduplicates(self): assert len(merged_urns) == 2 assert merged_urns[0].urn == "extension:example:test" assert merged_urns[1].urn == "extension:example:other" + + +# ============================================================================ +# Plan Builder URI/URN Output Tests +# ============================================================================ + + +class TestPlanOutput: + """Tests that plan builders output both URI and URN in proto plans.""" + + def test_project_with_scalar_function(self): + """Test that project plans with scalar functions have both URI and URN in proto.""" + content = """%YAML 1.2 +--- +urn: extension:test:math +scalar_functions: + - name: "add" + description: "" + impls: + - args: + - value: i64 + - value: i64 + return: i64 +""" + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/math.yaml" + ) + + struct = stt.Type.Struct(types=[i64(nullable=False), i64(nullable=False)]) + named_struct = stt.NamedStruct(names=["a", "b"], struct=struct) + + table = read_named_table("table", named_struct) + add_expr = scalar_function( + "extension:test:math", + "add", + expressions=[column("a"), column("b")], + alias=["add"], + ) + + actual = project(table, [add_expr])(registry) + + ns = infer_plan_schema(table(None)) + + expected = stp.Plan( + extension_urns=[ + ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:math") + ], + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://test.example.com/math.yaml" + ) + ], + extensions=[ + ste.SimpleExtensionDeclaration( + extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( + extension_urn_reference=1, + extension_uri_reference=1, + function_anchor=1, + name="add:i64_i64", + ) + ) + ], + relations=[ + stp.PlanRel( + root=stalg.RelRoot( + input=stalg.Rel( + project=stalg.ProjectRel( + common=stalg.RelCommon(emit=stalg.RelCommon.Emit(output_mapping=[2])), + input=table(None).relations[-1].root.input, + expressions=[add_expr(ns, registry).referred_expr[0].expression], + ) + ), + names=["add"], + ) + ) + ], + ) + + assert actual == expected + + def test_filter_with_scalar_function(self): + """Test that filter plans with scalar functions have both URI and URN in proto.""" + content = """%YAML 1.2 +--- +urn: extension:test:comparison +scalar_functions: + - name: "greater_than" + description: "" + impls: + - args: + - value: i64 + - value: i64 + return: boolean +""" + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/comparison.yaml" + ) + + struct = stt.Type.Struct(types=[i64(nullable=False)]) + named_struct = stt.NamedStruct(names=["value"], struct=struct) + + table = read_named_table("table", named_struct) + gt_expr = scalar_function( + "extension:test:comparison", + "greater_than", + expressions=[column("value"), literal(100, i64(nullable=False))], + ) + + actual = filter(table, gt_expr)(registry) + + ns = infer_plan_schema(table(None)) + + expected = stp.Plan( + extension_urns=[ + ste.SimpleExtensionURN( + extension_urn_anchor=1, urn="extension:test:comparison" + ) + ], + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://test.example.com/comparison.yaml" + ) + ], + extensions=[ + ste.SimpleExtensionDeclaration( + extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( + extension_urn_reference=1, + extension_uri_reference=1, + function_anchor=1, + name="greater_than:i64_i64", + ) + ) + ], + relations=[ + stp.PlanRel( + root=stalg.RelRoot( + input=stalg.Rel( + filter=stalg.FilterRel( + input=table(None).relations[-1].root.input, + condition=gt_expr(ns, registry).referred_expr[0].expression, + ) + ), + names=["value"], + ) + ) + ], + ) + + assert actual == expected + + def test_aggregate_with_aggregate_function(self): + """Test that aggregate plans with aggregate functions have both URI and URN in proto.""" + content = """%YAML 1.2 +--- +urn: extension:test:aggregate +aggregate_functions: + - name: "sum" + description: "" + impls: + - args: + - value: i64 + nullability: DECLARED_OUTPUT + decomposable: MANY + intermediate: i64 + return: i64 +""" + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/aggregate.yaml" + ) + + struct = stt.Type.Struct(types=[i64(nullable=False), i64(nullable=False)]) + named_struct = stt.NamedStruct(names=["id", "value"], struct=struct) + + table = read_named_table("table", named_struct) + sum_expr = aggregate_function( + "extension:test:aggregate", "sum", expressions=[column("value")], alias=["sum"] + ) + + actual = aggregate(table, grouping_expressions=[column("id")], measures=[sum_expr])( + registry + ) + + ns = infer_plan_schema(table(None)) + + expected = stp.Plan( + extension_urns=[ + ste.SimpleExtensionURN( + extension_urn_anchor=1, urn="extension:test:aggregate" + ) + ], + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://test.example.com/aggregate.yaml" + ) + ], + extensions=[ + ste.SimpleExtensionDeclaration( + extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( + extension_urn_reference=1, + extension_uri_reference=1, + function_anchor=1, + name="sum:i64", + ) + ) + ], + relations=[ + stp.PlanRel( + root=stalg.RelRoot( + input=stalg.Rel( + aggregate=stalg.AggregateRel( + input=table(None).relations[-1].root.input, + grouping_expressions=[ + column("id")(ns, registry).referred_expr[0].expression + ], + groupings=[ + stalg.AggregateRel.Grouping( + grouping_expressions=[ + column("id")(ns, registry).referred_expr[0].expression + ], + expression_references=[0], + ) + ], + measures=[ + stalg.AggregateRel.Measure( + measure=sum_expr(ns, registry).referred_expr[0].measure + ) + ], + ) + ), + names=["id", "sum"], + ) + ) + ], + ) + + assert actual == expected From a15ecd82e775c57bb6c10e4bd408d32f50413ba1 Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Fri, 24 Oct 2025 13:11:57 -0400 Subject: [PATCH 06/18] tweak: drop _urn_aliases It is not actually set anywhere and isn't in the substrait spec. --- src/substrait/extension_registry.py | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/substrait/extension_registry.py b/src/substrait/extension_registry.py index 904d77e..c854c02 100644 --- a/src/substrait/extension_registry.py +++ b/src/substrait/extension_registry.py @@ -257,8 +257,6 @@ def __init__(self, load_default_extensions=True) -> None: self._function_mapping: dict = defaultdict(dict) self._id_generator = itertools.count(1) - self._urn_aliases = {} - # Bidirectional URI <-> URN mapping (temporary during migration) self._uri_urn_bimap = UriUrnBiDiMap() @@ -330,8 +328,6 @@ def register_extension_dict(self, definitions: dict, uri: str) -> None: def lookup_function( self, urn: str, function_name: str, signature: tuple ) -> Optional[tuple[FunctionEntry, Type]]: - urn = self._urn_aliases.get(urn, urn) - if ( urn not in self._function_mapping or function_name not in self._function_mapping[urn] @@ -347,7 +343,6 @@ def lookup_function( return None def lookup_urn(self, urn: str) -> Optional[int]: - urn = self._urn_aliases.get(urn, urn) return self._urn_mapping.get(urn, None) def lookup_uri_anchor(self, uri: str) -> Optional[int]: From 8557c0c602d7a40d695f4efeaae26b02f0e2795d Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Fri, 24 Oct 2025 13:55:44 -0400 Subject: [PATCH 07/18] make codegen-extensions --- src/substrait/gen/json/simple_extensions.py | 8 +++++--- src/substrait/simple_extension_utils.py | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/substrait/gen/json/simple_extensions.py b/src/substrait/gen/json/simple_extensions.py index 12e67a9..996d6ff 100644 --- a/src/substrait/gen/json/simple_extensions.py +++ b/src/substrait/gen/json/simple_extensions.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: simple_extensions_schema.yaml -# timestamp: 2025-06-06T08:43:35+00:00 +# timestamp: 2025-10-24T17:55:30+00:00 from __future__ import annotations @@ -59,7 +59,7 @@ class Options1: description: Optional[str] = None -Options = Optional[Dict[str, Options1]] +Options = Dict[str, Options1] class ParameterConsistency(Enum): @@ -89,7 +89,7 @@ class NullabilityHandling(Enum): ReturnValue = Type -Implementation = Optional[Dict[str, str]] +Implementation = Dict[str, str] Intermediate = Type @@ -203,6 +203,7 @@ class TypeParamDef: @dataclass class TypeModel: name: str + description: Optional[str] = None structure: Optional[Type] = None parameters: Optional[TypeParamDefs] = None variadic: Optional[bool] = None @@ -210,6 +211,7 @@ class TypeModel: @dataclass class SimpleExtensions: + urn: str dependencies: Optional[Dict[str, str]] = None types: Optional[List[TypeModel]] = None type_variations: Optional[List[TypeVariation]] = None diff --git a/src/substrait/simple_extension_utils.py b/src/substrait/simple_extension_utils.py index 0e5acef..27b300e 100644 --- a/src/substrait/simple_extension_utils.py +++ b/src/substrait/simple_extension_utils.py @@ -144,6 +144,7 @@ def build_type_variation(d: dict) -> se.TypeVariation: def build_simple_extensions(d: dict) -> se.SimpleExtensions: return se.SimpleExtensions( + urn=d["urn"], dependencies=d.get("dependencies"), types=[build_type_model(t) for t in d["types"]] if "types" in d else None, type_variations=[build_type_variation(t) for t in d["type_variations"]] From f63a9c04212418d7a7f5ca40ad71e268945c787b Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Fri, 24 Oct 2025 13:57:36 -0400 Subject: [PATCH 08/18] ruff --- tests/test_uri_urn_migration.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/test_uri_urn_migration.py b/tests/test_uri_urn_migration.py index f034bc1..f2bdf8e 100644 --- a/tests/test_uri_urn_migration.py +++ b/tests/test_uri_urn_migration.py @@ -11,7 +11,6 @@ Note: Tests for the UriUrnBiDiMap class itself are in test_bimap.py """ -import pytest import yaml import substrait.gen.proto.type_pb2 as stt @@ -25,7 +24,7 @@ column, aggregate_function, ) -from substrait.builders.type import i64, boolean +from substrait.builders.type import i64 from substrait.builders.plan import read_named_table, aggregate, project, filter from substrait.extension_registry import ExtensionRegistry from substrait.type_inference import infer_plan_schema From 85f304302ad5ab81be5931fd1cff6552fb9b8b4f Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Fri, 24 Oct 2025 14:32:57 -0400 Subject: [PATCH 09/18] test cleanup --- tests/test_uri_urn_migration.py | 611 +++++++++++++------------------- tests/test_utils.py | 33 +- 2 files changed, 285 insertions(+), 359 deletions(-) diff --git a/tests/test_uri_urn_migration.py b/tests/test_uri_urn_migration.py index f2bdf8e..a66e901 100644 --- a/tests/test_uri_urn_migration.py +++ b/tests/test_uri_urn_migration.py @@ -1,14 +1,10 @@ """ -Comprehensive test suite for URI <-> URN migration. +test suite for URI <-> URN migration. -Tests registry integration, dual URI/URN output, and round-trip conversions -during the migration period from URI to URN-based extension identifiers. +This test set ensures that generated plans from builders contain both uris and urns. NOTE: This file is temporary and can be removed once the URI -> URN migration -is complete across all Substrait implementations. At that point, only URN-based -extension references will be used, and the UriUrnBiDiMap will no longer be needed. - -Note: Tests for the UriUrnBiDiMap class itself are in test_bimap.py +is complete across all Substrait implementations. """ import yaml @@ -16,7 +12,7 @@ import substrait.gen.proto.type_pb2 as stt import substrait.gen.proto.plan_pb2 as stp import substrait.gen.proto.algebra_pb2 as stalg -import substrait.gen.proto.extended_expression_pb2 as stee +import substrait.gen.proto.extended_expression_pb2 as stex import substrait.gen.proto.extensions.extensions_pb2 as ste from substrait.builders.extended_expression import ( scalar_function, @@ -29,12 +25,10 @@ from substrait.extension_registry import ExtensionRegistry from substrait.type_inference import infer_plan_schema -class TestExtensionOutput: - """Tests that extension outputs include both URI and URN.""" - def test_scalar_function_outputs_both_uri_and_urn(self): - """Test that scalar_function outputs both SimpleExtensionURI and SimpleExtensionURN.""" - content = """%YAML 1.2 +def test_extended_expression_outputs_both_uri_and_urn(): + """Test that scalar_function outputs both SimpleExtensionURI and SimpleExtensionURN.""" + content = """%YAML 1.2 --- urn: extension:test:functions scalar_functions: @@ -45,178 +39,79 @@ def test_scalar_function_outputs_both_uri_and_urn(self): - value: i8 return: i8 """ - uri = "https://test.example.com/functions.yaml" - registry = ExtensionRegistry(load_default_extensions=False) - registry.register_extension_dict(yaml.safe_load(content), uri=uri) - - struct = stt.Type.Struct( - types=[stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED))] - ) - named_struct = stt.NamedStruct(names=["value"], struct=struct) - - expr = scalar_function( - "extension:test:functions", - "test_func", - expressions=[ - literal( - 10, - type=stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED)), + uri = "https://test.example.com/functions.yaml" + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict(yaml.safe_load(content), uri=uri) + + struct = stt.Type.Struct( + types=[stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED))] + ) + named_struct = stt.NamedStruct(names=["value"], struct=struct) + + func_expr = scalar_function( + "extension:test:functions", + "test_func", + expressions=[ + literal( + 10, + type=stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED)), + ) + ], + ) + + actual = func_expr(named_struct, registry) + + expected = stex.ExtendedExpression( + extension_urns=[ + ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:functions") + ], + extension_uris=[ + ste.SimpleExtensionURI(extension_uri_anchor=1, uri=uri) + ], + extensions=[ + ste.SimpleExtensionDeclaration( + extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( + extension_urn_reference=1, + extension_uri_reference=1, + function_anchor=1, + name="test_func:i8", ) - ], - )(named_struct, registry) - - # Check that both URI and URN extensions are present - assert len(expr.extension_urns) > 0 - assert len(expr.extension_uris) > 0 - - # Check URN details - urn_ext = expr.extension_urns[0] - assert urn_ext.urn == "extension:test:functions" - assert urn_ext.extension_urn_anchor > 0 - - # Check URI details - uri_ext = expr.extension_uris[0] - assert uri_ext.uri == uri - assert uri_ext.extension_uri_anchor > 0 - - # Check that extension function declaration has both references - ext_func = expr.extensions[0].extension_function - assert ext_func.extension_urn_reference > 0 - assert ext_func.extension_uri_reference > 0 - - def test_uri_and_urn_always_paired(self): - """Test that during migration, URI and URN are always registered together.""" - content = """%YAML 1.2 ---- -urn: extension:test:functions_paired -scalar_functions: - - name: "test_func" - description: "" - impls: - - args: - - value: i8 - return: i8 -""" - uri = "https://test.example.com/functions_paired.yaml" - registry = ExtensionRegistry(load_default_extensions=False) - registry.register_extension_dict(yaml.safe_load(content), uri=uri) - - # Verify both URN and URI were registered - assert registry.lookup_urn("extension:test:functions_paired") is not None - assert registry.lookup_uri_anchor(uri) is not None - - # Verify bimap has both directions - assert registry._uri_urn_bimap.get_urn(uri) == "extension:test:functions_paired" - assert registry._uri_urn_bimap.get_uri("extension:test:functions_paired") == uri - - -# ============================================================================ -# Round-Trip Tests -# ============================================================================ - - -class TestRoundTrip: - """Tests for round-trip conversion and semantic equivalence.""" - - def test_expression_with_both_uri_and_urn_round_trips(self): - """Test that an expression with both URI and URN round-trips correctly.""" - content = """%YAML 1.2 ---- -urn: extension:test:roundtrip -scalar_functions: - - name: "add" - description: "" - impls: - - args: - - value: i8 - - value: i8 - return: i8 -""" - uri = "https://test.example.com/roundtrip.yaml" - registry = ExtensionRegistry(load_default_extensions=False) - registry.register_extension_dict(yaml.safe_load(content), uri=uri) - - struct = stt.Type.Struct( - types=[ - stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED)), - stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED)), - ] - ) - named_struct = stt.NamedStruct(names=["a", "b"], struct=struct) - - # Create expression - expr = scalar_function( - "extension:test:roundtrip", - "add", - expressions=[ - literal( - 10, - type=stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED)), - ), - literal( - 20, - type=stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED)), + ) + ], + referred_expr=[ + stex.ExpressionReference( + expression=stalg.Expression( + scalar_function=stalg.Expression.ScalarFunction( + function_reference=1, + output_type=stt.Type( + i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED) + ), + arguments=[ + stalg.FunctionArgument( + value=stalg.Expression( + literal=stalg.Expression.Literal(i8=10) + ) + ) + ], + ) ), - ], - )(named_struct, registry) - - # Verify both URI and URN are present - assert len(expr.extension_urns) == 1 - assert len(expr.extension_uris) == 1 - assert expr.extension_urns[0].urn == "extension:test:roundtrip" - assert expr.extension_uris[0].uri == uri - - # Serialize to bytes and deserialize (proto round-trip) - serialized = expr.SerializeToString() - deserialized = stee.ExtendedExpression() - deserialized.ParseFromString(serialized) - - # Verify both URI and URN survived round-trip - assert len(deserialized.extension_urns) == 1 - assert len(deserialized.extension_uris) == 1 - assert deserialized.extension_urns[0].urn == "extension:test:roundtrip" - assert deserialized.extension_uris[0].uri == uri - - def test_merge_extensions_deduplicates(self): - """Test that merging extensions with duplicate URIs/URNs deduplicates correctly.""" - from substrait.utils import merge_extension_uris, merge_extension_urns - - # Create duplicate URI extensions - uri1 = ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://example.com/test.yaml") - uri2 = ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://example.com/test.yaml") - uri3 = ste.SimpleExtensionURI(extension_uri_anchor=2, uri="https://example.com/other.yaml") - - merged_uris = merge_extension_uris([uri1], [uri2, uri3]) - - # Should have 2 unique URIs - assert len(merged_uris) == 2 - assert merged_uris[0].uri == "https://example.com/test.yaml" - assert merged_uris[1].uri == "https://example.com/other.yaml" - - # Create duplicate URN extensions - urn1 = ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:example:test") - urn2 = ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:example:test") - urn3 = ste.SimpleExtensionURN(extension_urn_anchor=2, urn="extension:example:other") - - merged_urns = merge_extension_urns([urn1], [urn2, urn3]) - - # Should have 2 unique URNs - assert len(merged_urns) == 2 - assert merged_urns[0].urn == "extension:example:test" - assert merged_urns[1].urn == "extension:example:other" - - -# ============================================================================ -# Plan Builder URI/URN Output Tests -# ============================================================================ + output_names=["test_func(Literal(10))"] + ) + ], + base_schema=stt.NamedStruct( + names=["value"], + struct=stt.Type.Struct( + types=[stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED))] + ) + ) + ) + assert actual == expected -class TestPlanOutput: - """Tests that plan builders output both URI and URN in proto plans.""" - def test_project_with_scalar_function(self): - """Test that project plans with scalar functions have both URI and URN in proto.""" - content = """%YAML 1.2 +def test_project_outputs_both_uri_and_urn(): + """Test that project plans with scalar functions have both URI and URN in proto.""" + content = """%YAML 1.2 --- urn: extension:test:math scalar_functions: @@ -228,66 +123,66 @@ def test_project_with_scalar_function(self): - value: i64 return: i64 """ - registry = ExtensionRegistry(load_default_extensions=False) - registry.register_extension_dict( - yaml.safe_load(content), uri="https://test.example.com/math.yaml" - ) - - struct = stt.Type.Struct(types=[i64(nullable=False), i64(nullable=False)]) - named_struct = stt.NamedStruct(names=["a", "b"], struct=struct) - - table = read_named_table("table", named_struct) - add_expr = scalar_function( - "extension:test:math", - "add", - expressions=[column("a"), column("b")], - alias=["add"], - ) - - actual = project(table, [add_expr])(registry) - - ns = infer_plan_schema(table(None)) - - expected = stp.Plan( - extension_urns=[ - ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:math") - ], - extension_uris=[ - ste.SimpleExtensionURI( - extension_uri_anchor=1, uri="https://test.example.com/math.yaml" + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/math.yaml" + ) + + struct = stt.Type.Struct(types=[i64(nullable=False), i64(nullable=False)]) + named_struct = stt.NamedStruct(names=["a", "b"], struct=struct) + + table = read_named_table("table", named_struct) + add_expr = scalar_function( + "extension:test:math", + "add", + expressions=[column("a"), column("b")], + alias=["add"], + ) + + actual = project(table, [add_expr])(registry) + + ns = infer_plan_schema(table(None)) + + expected = stp.Plan( + extension_urns=[ + ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:math") + ], + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://test.example.com/math.yaml" + ) + ], + extensions=[ + ste.SimpleExtensionDeclaration( + extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( + extension_urn_reference=1, + extension_uri_reference=1, + function_anchor=1, + name="add:i64_i64", ) - ], - extensions=[ - ste.SimpleExtensionDeclaration( - extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_urn_reference=1, - extension_uri_reference=1, - function_anchor=1, - name="add:i64_i64", - ) - ) - ], - relations=[ - stp.PlanRel( - root=stalg.RelRoot( - input=stalg.Rel( - project=stalg.ProjectRel( - common=stalg.RelCommon(emit=stalg.RelCommon.Emit(output_mapping=[2])), - input=table(None).relations[-1].root.input, - expressions=[add_expr(ns, registry).referred_expr[0].expression], - ) - ), - names=["add"], - ) + ) + ], + relations=[ + stp.PlanRel( + root=stalg.RelRoot( + input=stalg.Rel( + project=stalg.ProjectRel( + common=stalg.RelCommon(emit=stalg.RelCommon.Emit(output_mapping=[2])), + input=table(None).relations[-1].root.input, + expressions=[add_expr(ns, registry).referred_expr[0].expression], + ) + ), + names=["add"], ) - ], - ) + ) + ], + ) - assert actual == expected + assert actual == expected - def test_filter_with_scalar_function(self): - """Test that filter plans with scalar functions have both URI and URN in proto.""" - content = """%YAML 1.2 +def test_filter_outputs_both_uri_and_urn(): + """Test that filter plans with scalar functions have both URI and URN in proto.""" + content = """%YAML 1.2 --- urn: extension:test:comparison scalar_functions: @@ -299,66 +194,66 @@ def test_filter_with_scalar_function(self): - value: i64 return: boolean """ - registry = ExtensionRegistry(load_default_extensions=False) - registry.register_extension_dict( - yaml.safe_load(content), uri="https://test.example.com/comparison.yaml" - ) - - struct = stt.Type.Struct(types=[i64(nullable=False)]) - named_struct = stt.NamedStruct(names=["value"], struct=struct) - - table = read_named_table("table", named_struct) - gt_expr = scalar_function( - "extension:test:comparison", - "greater_than", - expressions=[column("value"), literal(100, i64(nullable=False))], - ) - - actual = filter(table, gt_expr)(registry) - - ns = infer_plan_schema(table(None)) - - expected = stp.Plan( - extension_urns=[ - ste.SimpleExtensionURN( - extension_urn_anchor=1, urn="extension:test:comparison" - ) - ], - extension_uris=[ - ste.SimpleExtensionURI( - extension_uri_anchor=1, uri="https://test.example.com/comparison.yaml" - ) - ], - extensions=[ - ste.SimpleExtensionDeclaration( - extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_urn_reference=1, - extension_uri_reference=1, - function_anchor=1, - name="greater_than:i64_i64", - ) + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/comparison.yaml" + ) + + struct = stt.Type.Struct(types=[i64(nullable=False)]) + named_struct = stt.NamedStruct(names=["value"], struct=struct) + + table = read_named_table("table", named_struct) + gt_expr = scalar_function( + "extension:test:comparison", + "greater_than", + expressions=[column("value"), literal(100, i64(nullable=False))], + ) + + actual = filter(table, gt_expr)(registry) + + ns = infer_plan_schema(table(None)) + + expected = stp.Plan( + extension_urns=[ + ste.SimpleExtensionURN( + extension_urn_anchor=1, urn="extension:test:comparison" + ) + ], + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://test.example.com/comparison.yaml" + ) + ], + extensions=[ + ste.SimpleExtensionDeclaration( + extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( + extension_urn_reference=1, + extension_uri_reference=1, + function_anchor=1, + name="greater_than:i64_i64", ) - ], - relations=[ - stp.PlanRel( - root=stalg.RelRoot( - input=stalg.Rel( - filter=stalg.FilterRel( - input=table(None).relations[-1].root.input, - condition=gt_expr(ns, registry).referred_expr[0].expression, - ) - ), - names=["value"], - ) + ) + ], + relations=[ + stp.PlanRel( + root=stalg.RelRoot( + input=stalg.Rel( + filter=stalg.FilterRel( + input=table(None).relations[-1].root.input, + condition=gt_expr(ns, registry).referred_expr[0].expression, + ) + ), + names=["value"], ) - ], - ) + ) + ], + ) - assert actual == expected + assert actual == expected - def test_aggregate_with_aggregate_function(self): - """Test that aggregate plans with aggregate functions have both URI and URN in proto.""" - content = """%YAML 1.2 +def test_aggregate_with_aggregate_function(): + """Test that aggregate plans with aggregate functions have both URI and URN in proto.""" + content = """%YAML 1.2 --- urn: extension:test:aggregate aggregate_functions: @@ -372,74 +267,74 @@ def test_aggregate_with_aggregate_function(self): intermediate: i64 return: i64 """ - registry = ExtensionRegistry(load_default_extensions=False) - registry.register_extension_dict( - yaml.safe_load(content), uri="https://test.example.com/aggregate.yaml" - ) - - struct = stt.Type.Struct(types=[i64(nullable=False), i64(nullable=False)]) - named_struct = stt.NamedStruct(names=["id", "value"], struct=struct) - - table = read_named_table("table", named_struct) - sum_expr = aggregate_function( - "extension:test:aggregate", "sum", expressions=[column("value")], alias=["sum"] - ) - - actual = aggregate(table, grouping_expressions=[column("id")], measures=[sum_expr])( - registry - ) - - ns = infer_plan_schema(table(None)) - - expected = stp.Plan( - extension_urns=[ - ste.SimpleExtensionURN( - extension_urn_anchor=1, urn="extension:test:aggregate" - ) - ], - extension_uris=[ - ste.SimpleExtensionURI( - extension_uri_anchor=1, uri="https://test.example.com/aggregate.yaml" - ) - ], - extensions=[ - ste.SimpleExtensionDeclaration( - extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( - extension_urn_reference=1, - extension_uri_reference=1, - function_anchor=1, - name="sum:i64", - ) + registry = ExtensionRegistry(load_default_extensions=False) + registry.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/aggregate.yaml" + ) + + struct = stt.Type.Struct(types=[i64(nullable=False), i64(nullable=False)]) + named_struct = stt.NamedStruct(names=["id", "value"], struct=struct) + + table = read_named_table("table", named_struct) + sum_expr = aggregate_function( + "extension:test:aggregate", "sum", expressions=[column("value")], alias=["sum"] + ) + + actual = aggregate(table, grouping_expressions=[column("id")], measures=[sum_expr])( + registry + ) + + ns = infer_plan_schema(table(None)) + + expected = stp.Plan( + extension_urns=[ + ste.SimpleExtensionURN( + extension_urn_anchor=1, urn="extension:test:aggregate" + ) + ], + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://test.example.com/aggregate.yaml" + ) + ], + extensions=[ + ste.SimpleExtensionDeclaration( + extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( + extension_urn_reference=1, + extension_uri_reference=1, + function_anchor=1, + name="sum:i64", ) - ], - relations=[ - stp.PlanRel( - root=stalg.RelRoot( - input=stalg.Rel( - aggregate=stalg.AggregateRel( - input=table(None).relations[-1].root.input, - grouping_expressions=[ - column("id")(ns, registry).referred_expr[0].expression - ], - groupings=[ - stalg.AggregateRel.Grouping( - grouping_expressions=[ - column("id")(ns, registry).referred_expr[0].expression - ], - expression_references=[0], - ) - ], - measures=[ - stalg.AggregateRel.Measure( - measure=sum_expr(ns, registry).referred_expr[0].measure - ) - ], - ) - ), - names=["id", "sum"], - ) + ) + ], + relations=[ + stp.PlanRel( + root=stalg.RelRoot( + input=stalg.Rel( + aggregate=stalg.AggregateRel( + input=table(None).relations[-1].root.input, + grouping_expressions=[ + column("id")(ns, registry).referred_expr[0].expression + ], + groupings=[ + stalg.AggregateRel.Grouping( + grouping_expressions=[ + column("id")(ns, registry).referred_expr[0].expression + ], + expression_references=[0], + ) + ], + measures=[ + stalg.AggregateRel.Measure( + measure=sum_expr(ns, registry).referred_expr[0].measure + ) + ], + ) + ), + names=["id", "sum"], ) + ) ], ) - assert actual == expected + assert actual == expected diff --git a/tests/test_utils.py b/tests/test_utils.py index 6043364..c2e2e83 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,5 +1,6 @@ import substrait.gen.proto.type_pb2 as stt -from substrait.utils import type_num_names +import substrait.gen.proto.extensions.extensions_pb2 as ste +from substrait.utils import type_num_names, merge_extension_uris, merge_extension_urns def test_type_num_names_flat_struct(): @@ -86,3 +87,33 @@ def test_type_num_names_nested_list(): ) == 6 ) + + +def test_merge_extension_uris_deduplicates(): + """Test that merging extension URIs deduplicates correctly.""" + # Create duplicate URI extensions + uri1 = ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://example.com/test.yaml") + uri2 = ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://example.com/test.yaml") + uri3 = ste.SimpleExtensionURI(extension_uri_anchor=2, uri="https://example.com/other.yaml") + + merged_uris = merge_extension_uris([uri1], [uri2, uri3]) + + # Should have 2 unique URIs + assert len(merged_uris) == 2 + assert merged_uris[0].uri == "https://example.com/test.yaml" + assert merged_uris[1].uri == "https://example.com/other.yaml" + + +def test_merge_extension_urns_deduplicates(): + """Test that merging extension URNs deduplicates correctly.""" + # Create duplicate URN extensions + urn1 = ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:example:test") + urn2 = ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:example:test") + urn3 = ste.SimpleExtensionURN(extension_urn_anchor=2, urn="extension:example:other") + + merged_urns = merge_extension_urns([urn1], [urn2, urn3]) + + # Should have 2 unique URNs + assert len(merged_urns) == 2 + assert merged_urns[0].urn == "extension:example:test" + assert merged_urns[1].urn == "extension:example:other" From 66a11f1bcca819653b709e7162201fd1ccc9319c Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Fri, 24 Oct 2025 15:19:54 -0400 Subject: [PATCH 10/18] fix examples and add CI/CD job to ensure they work --- .github/workflows/example.yml | 36 ++++++++++++++++++++ examples/adbc_example.py | 2 +- examples/builder_example.py | 60 +++++++++++++++++++--------------- examples/duckdb_example.py | 8 ++--- src/substrait/utils/display.py | 6 ++-- 5 files changed, 77 insertions(+), 35 deletions(-) create mode 100644 .github/workflows/example.yml diff --git a/.github/workflows/example.yml b/.github/workflows/example.yml new file mode 100644 index 0000000..bc5822d --- /dev/null +++ b/.github/workflows/example.yml @@ -0,0 +1,36 @@ +name: Run examples + +on: + pull_request: + push: + branches: [ main ] + +permissions: + contents: read + +jobs: + example: + name: Run ${{ matrix.example }} + runs-on: ubuntu-latest + strategy: + matrix: + example: + - builder_example.py + - duckdb_example.py + - adbc_example.py + - pyarrow_example.py + steps: + - name: Checkout code + uses: actions/checkout@v5 + with: + submodules: recursive + - name: Install uv with python + uses: astral-sh/setup-uv@v7 + with: + python-version: "3.10" + - name: Install package dependencies + run: | + uv sync --frozen --extra extensions + - name: Run ${{ matrix.example }} + run: | + uv run examples/${{ matrix.example }} diff --git a/examples/adbc_example.py b/examples/adbc_example.py index 10994f6..532033a 100644 --- a/examples/adbc_example.py +++ b/examples/adbc_example.py @@ -45,7 +45,7 @@ def read_adbc_named_table(name: str, conn): table = filter( table, expression=scalar_function( - "functions_comparison.yaml", + "extension:io.substrait:functions_comparison", "gte", expressions=[column("ints"), literal(3, i64())], ), diff --git a/examples/builder_example.py b/examples/builder_example.py index 1641d07..9c866d9 100644 --- a/examples/builder_example.py +++ b/examples/builder_example.py @@ -21,7 +21,7 @@ def basic_example(): ns = named_struct( names=["id", "is_applicable"], - struct=struct(types=[i64(nullable=False), boolean()]), + struct=struct(types=[i64(nullable=False), boolean()], nullable=False), ) table = read_named_table("example_table", ns) @@ -29,9 +29,9 @@ def basic_example(): table = filter( table, expression=scalar_function( - "functions_comparison.yaml", + "extension:io.substrait:functions_comparison", "lt", - expressions=[column("id"), literal(100, i64())], + expressions=[column("id"), literal(100, i64(nullable=False))], ), ) table = project(table, expressions=[column("id")]) @@ -40,15 +40,16 @@ def basic_example(): pretty_print_plan(table(registry), use_colors=True) """ - extension_urns { - extension_urn_anchor: 13 - urn: "functions_comparison.yaml" + extension_uris { + extension_uri_anchor: 2 + uri: "https://github.com/substrait-io/substrait/blob/main/extensions/functions_comparison.yaml" } extensions { extension_function { - extension_urn_reference: 13 - function_anchor: 495 - name: "lt" + extension_uri_reference: 2 + function_anchor: 124 + name: "lt:any_any" + extension_urn_reference: 2 } } relations { @@ -84,7 +85,7 @@ def basic_example(): nullability: NULLABILITY_NULLABLE } } - nullability: NULLABILITY_NULLABLE + nullability: NULLABILITY_REQUIRED } } named_table { @@ -107,10 +108,10 @@ def basic_example(): } condition { scalar_function { - function_reference: 495 + function_reference: 124 output_type { bool { - nullability: NULLABILITY_NULLABLE + nullability: NULLABILITY_REQUIRED } } arguments { @@ -129,7 +130,6 @@ def basic_example(): value { literal { i64: 100 - nullable: true } } } @@ -152,7 +152,11 @@ def basic_example(): names: "id" } } - """ + extension_urns { + extension_urn_anchor: 2 + urn: "extension:io.substrait:functions_comparison" + } + """ def advanced_example(): @@ -160,7 +164,7 @@ def advanced_example(): # Simple example (original) ns = named_struct( names=["id", "is_applicable"], - struct=struct(types=[i64(nullable=False), boolean()]), + struct=struct(types=[i64(nullable=False), boolean()], nullable=False), ) table = read_named_table("example_table", ns) @@ -168,9 +172,9 @@ def advanced_example(): table = filter( table, expression=scalar_function( - "functions_comparison.yaml", + "extension:io.substrait:functions_comparison", "lt", - expressions=[column("id"), literal(100, i64())], + expressions=[column("id"), literal(100, i64(nullable=False))], ), ) table = project(table, expressions=[column("id")]) @@ -190,7 +194,8 @@ def advanced_example(): string(nullable=False), # name i64(nullable=False), # age fp64(nullable=False), # salary - ] + ], + nullable=False, ), ) @@ -200,7 +205,7 @@ def advanced_example(): adult_users = filter( users, expression=scalar_function( - "functions_comparison.yaml", + "extension:io.substrait:functions_comparison", "gt", expressions=[column("age"), literal(25, i64())], ), @@ -216,7 +221,7 @@ def advanced_example(): column("salary"), # Add a calculated field (this would show function options if available) scalar_function( - "functions_arithmetic.yaml", + "extension:io.substrait:functions_arithmetic", "multiply", expressions=[column("salary"), literal(1.1, fp64())], alias="salary_with_bonus", @@ -238,7 +243,8 @@ def advanced_example(): i64(nullable=False), # order_id fp64(nullable=False), # amount string(nullable=False), # status - ] + ], + nullable=False, ), ) @@ -248,7 +254,7 @@ def advanced_example(): high_value_orders = filter( orders, expression=scalar_function( - "functions_comparison.yaml", + "extension:io.substrait:functions_comparison", "gt", expressions=[column("amount"), literal(50.0, fp64())], ), @@ -280,16 +286,16 @@ def expression_only_example(): print("=== Expression-Only Example ===") # Show complex expression structure complex_expr = scalar_function( - "functions_arithmetic.yaml", + "extension:io.substrait:functions_arithmetic", "multiply", expressions=[ scalar_function( - "functions_arithmetic.yaml", + "extension:io.substrait:functions_arithmetic", "add", expressions=[ column("base_salary"), scalar_function( - "functions_arithmetic.yaml", + "extension:io.substrait:functions_arithmetic", "multiply", expressions=[ column("base_salary"), @@ -299,7 +305,7 @@ def expression_only_example(): ], ), scalar_function( - "functions_arithmetic.yaml", + "extension:io.substrait:functions_arithmetic", "subtract", expressions=[ literal(1.0, fp64()), @@ -312,7 +318,7 @@ def expression_only_example(): print("Complex salary calculation expression:") # Create a simple plan to wrap the expression dummy_schema = named_struct( - names=["base_salary"], struct=struct(types=[fp64(nullable=False)]) + names=["base_salary"], struct=struct(types=[fp64(nullable=False)], nullable=False) ) dummy_table = read_named_table("dummy", dummy_schema) dummy_plan = project(dummy_table, expressions=[complex_expr]) diff --git a/examples/duckdb_example.py b/examples/duckdb_example.py index 8aacaec..ccd8172 100644 --- a/examples/duckdb_example.py +++ b/examples/duckdb_example.py @@ -13,7 +13,6 @@ from substrait.builders.extended_expression import column, scalar_function, literal from substrait.builders.type import i32 from substrait.extension_registry import ExtensionRegistry -from substrait.json import dump_json import pyarrow.substrait as pa_substrait try: @@ -42,7 +41,7 @@ def read_duckdb_named_table(name: str, conn): table = filter( table, expression=scalar_function( - "functions_comparison.yaml", + "extension:io.substrait:functions_comparison", "equal", expressions=[column("c_nationkey"), literal(3, i32())], ), @@ -50,6 +49,5 @@ def read_duckdb_named_table(name: str, conn): table = project( table, expressions=[column("c_name"), column("c_address"), column("c_nationkey")] ) - -sql = f"CALL from_substrait_json('{dump_json(table(registry))}')" -print(duckdb.sql(sql)) +sql = "CALL from_substrait(?)" +print(duckdb.sql(sql, params=[table(registry).SerializeToString()])) diff --git a/src/substrait/utils/display.py b/src/substrait/utils/display.py index 0b5d3c1..eeee202 100644 --- a/src/substrait/utils/display.py +++ b/src/substrait/utils/display.py @@ -721,8 +721,9 @@ def _stream_literal_value( f"{indent}{self._color('fp64', Colors.BLUE)}: {self._color(literal.fp64, Colors.GREEN)}\n" ) elif literal.HasField("string"): + string_value = f'"{literal.string}"' stream.write( - f"{indent}{self._color('string', Colors.BLUE)}: {self._color(f'"{literal.string}"', Colors.GREEN)}\n" + f'{indent}{self._color("string", Colors.BLUE)}: {self._color(string_value, Colors.GREEN)}\n' ) elif literal.HasField("date"): stream.write( @@ -782,8 +783,9 @@ def _stream_struct_literal( f"{self._get_indent_with_arrow(depth + 2)}{self._color('i32', Colors.BLUE)}: {self._color(field.i32, Colors.GREEN)}\n" ) elif field.HasField("string"): + field_string_value = f'"{field.string}"' stream.write( - f"{self._get_indent_with_arrow(depth + 2)}{self._color('string', Colors.BLUE)}: {self._color(f'"{field.string}"', Colors.GREEN)}\n" + f"{self._get_indent_with_arrow(depth + 2)}{self._color('string', Colors.BLUE)}: {self._color(field_string_value, Colors.GREEN)}\n" ) elif field.HasField("boolean"): stream.write( From 9a13e6e74c7b4a696374fbcc6ee5ec9b00b2249f Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Fri, 24 Oct 2025 17:40:26 -0400 Subject: [PATCH 11/18] readd extension_uris to extended expression + add test --- src/substrait/builders/extended_expression.py | 7 + .../extended_expression/test_if_then.py | 143 +++++++++++++++++- 2 files changed, 149 insertions(+), 1 deletion(-) diff --git a/src/substrait/builders/extended_expression.py b/src/substrait/builders/extended_expression.py index a08e1d1..2f92dc7 100644 --- a/src/substrait/builders/extended_expression.py +++ b/src/substrait/builders/extended_expression.py @@ -524,6 +524,12 @@ def resolve( bound_else = resolve_expression(_else, base_schema, registry) + extension_uris = merge_extension_uris( + *[b[0].extension_uris for b in bound_ifs], + *[b[1].extension_uris for b in bound_ifs], + bound_else.extension_uris, + ) + extension_urns = merge_extension_urns( *[b[0].extension_urns for b in bound_ifs], *[b[1].extension_urns for b in bound_ifs], @@ -575,6 +581,7 @@ def resolve( ) ], base_schema=base_schema, + extension_uris=extension_uris, extension_urns=extension_urns, extensions=extensions, ) diff --git a/tests/builders/extended_expression/test_if_then.py b/tests/builders/extended_expression/test_if_then.py index 8392b3a..17241d9 100644 --- a/tests/builders/extended_expression/test_if_then.py +++ b/tests/builders/extended_expression/test_if_then.py @@ -1,7 +1,9 @@ import substrait.gen.proto.algebra_pb2 as stalg import substrait.gen.proto.type_pb2 as stt import substrait.gen.proto.extended_expression_pb2 as stee -from substrait.builders.extended_expression import if_then, literal +import substrait.gen.proto.extensions.extensions_pb2 as ste +from substrait.builders.extended_expression import if_then, literal, scalar_function, column +from substrait.extension_registry import ExtensionRegistry struct = stt.Type.Struct( @@ -75,3 +77,142 @@ def test_if_else(): ) assert actual == expected + +def test_if_then_with_extension(): + """Test if_then with scalar function to verify both URI and URN are present.""" + import yaml + + # Use a minimal registry with only the comparison extension + registry = ExtensionRegistry(load_default_extensions=False) + content = """%YAML 1.2 +--- +urn: extension:io.substrait:functions_comparison +scalar_functions: + - name: "gt" + description: "" + impls: + - args: + - value: fp32 + - value: fp32 + return: boolean +""" + registry.register_extension_dict( + yaml.safe_load(content), + uri="https://github.com/substrait-io/substrait/blob/main/extensions/functions_comparison.yaml" + ) + + # Create if_then: if order_total > 100 then "expensive" else "cheap" + actual = if_then( + ifs=[ + ( + scalar_function( + "extension:io.substrait:functions_comparison", + "gt", + expressions=[ + column("order_total"), + literal(100.0, type=stt.Type( + fp32=stt.Type.FP32(nullability=stt.Type.NULLABILITY_REQUIRED) + )), + ], + ), + literal( + "expensive", + type=stt.Type( + string=stt.Type.String(nullability=stt.Type.NULLABILITY_REQUIRED) + ), + ), + ) + ], + _else=literal( + "cheap", + type=stt.Type( + string=stt.Type.String(nullability=stt.Type.NULLABILITY_REQUIRED) + ), + ), + )(named_struct, registry) + + expected = stee.ExtendedExpression( + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, + uri="https://github.com/substrait-io/substrait/blob/main/extensions/functions_comparison.yaml" + ) + ], + extension_urns=[ + ste.SimpleExtensionURN( + extension_urn_anchor=1, + urn="extension:io.substrait:functions_comparison" + ) + ], + extensions=[ + ste.SimpleExtensionDeclaration( + extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( + extension_uri_reference=1, + extension_urn_reference=1, + function_anchor=1, + name="gt:fp32_fp32" + ) + ) + ], + referred_expr=[ + stee.ExpressionReference( + expression=stalg.Expression( + if_then=stalg.Expression.IfThen( + **{ + "ifs": [ + stalg.Expression.IfThen.IfClause( + **{ + "if": stalg.Expression( + scalar_function=stalg.Expression.ScalarFunction( + function_reference=1, + output_type=stt.Type( + bool=stt.Type.Boolean( + nullability=stt.Type.NULLABILITY_NULLABLE + ) + ), + arguments=[ + stalg.FunctionArgument( + value=stalg.Expression( + selection=stalg.Expression.FieldReference( + direct_reference=stalg.Expression.ReferenceSegment( + struct_field=stalg.Expression.ReferenceSegment.StructField( + field=2 + ) + ), + root_reference=stalg.Expression.FieldReference.RootReference() + ) + ) + ), + stalg.FunctionArgument( + value=stalg.Expression( + literal=stalg.Expression.Literal( + fp32=100.0 + ) + ) + ), + ] + ) + ), + "then": stalg.Expression( + literal=stalg.Expression.Literal( + string="expensive" + ) + ), + } + ) + ], + "else": stalg.Expression( + literal=stalg.Expression.Literal( + string="cheap" + ) + ), + } + ) + ), + output_names=["IfThen(gt(order_total,Literal(100.0)),Literal(expensive),Literal(cheap))"], + ) + ], + base_schema=named_struct, + ) + + assert actual == expected From 975952dc640526dcc5cc7c77b55f30905ea9d026 Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Sat, 25 Oct 2025 12:32:45 -0400 Subject: [PATCH 12/18] fix remaining extended expressions missing uris + fmt also added tests --- examples/builder_example.py | 3 +- src/substrait/builders/extended_expression.py | 34 ++++- src/substrait/builders/plan.py | 8 +- src/substrait/sql/sql_to_substrait.py | 4 +- src/substrait/utils/display.py | 2 +- .../test_aggregate_function.py | 16 ++- .../builders/extended_expression/test_cast.py | 97 +++++++++++++ .../extended_expression/test_if_then.py | 45 +++--- .../extended_expression/test_multi_or_list.py | 134 ++++++++++++++++++ .../test_scalar_function.py | 29 ++-- .../test_singular_or_list.py | 101 +++++++++++++ .../extended_expression/test_switch.py | 124 ++++++++++++++++ .../test_window_function.py | 16 ++- tests/builders/plan/test_aggregate.py | 21 ++- tests/test_extension_registry.py | 63 ++++---- tests/test_uri_urn_migration.py | 44 ++++-- tests/test_utils.py | 14 +- 17 files changed, 662 insertions(+), 93 deletions(-) diff --git a/examples/builder_example.py b/examples/builder_example.py index 9c866d9..b4f0cf3 100644 --- a/examples/builder_example.py +++ b/examples/builder_example.py @@ -318,7 +318,8 @@ def expression_only_example(): print("Complex salary calculation expression:") # Create a simple plan to wrap the expression dummy_schema = named_struct( - names=["base_salary"], struct=struct(types=[fp64(nullable=False)], nullable=False) + names=["base_salary"], + struct=struct(types=[fp64(nullable=False)], nullable=False), ) dummy_table = read_named_table("dummy", dummy_schema) dummy_plan = project(dummy_table, expressions=[complex_expr]) diff --git a/src/substrait/builders/extended_expression.py b/src/substrait/builders/extended_expression.py index 2f92dc7..abda416 100644 --- a/src/substrait/builders/extended_expression.py +++ b/src/substrait/builders/extended_expression.py @@ -250,7 +250,9 @@ def resolve( ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( extension_urn_reference=registry.lookup_urn(urn), - extension_uri_reference=registry.lookup_uri_anchor(uri) if uri else 0, + extension_uri_reference=registry.lookup_uri_anchor(uri) + if uri + else 0, function_anchor=func[0].anchor, name=str(func[0]), ) @@ -346,7 +348,9 @@ def resolve( ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( extension_urn_reference=registry.lookup_urn(urn), - extension_uri_reference=registry.lookup_uri_anchor(uri) if uri else 0, + extension_uri_reference=registry.lookup_uri_anchor(uri) + if uri + else 0, function_anchor=func[0].anchor, name=str(func[0]), ) @@ -444,14 +448,15 @@ def resolve( ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( extension_urn_reference=registry.lookup_urn(urn), - extension_uri_reference=registry.lookup_uri_anchor(uri) if uri else 0, + extension_uri_reference=registry.lookup_uri_anchor(uri) + if uri + else 0, function_anchor=func[0].anchor, name=str(func[0]), ) ) ] - extension_urns = merge_extension_urns( func_extension_urns, *[b.extension_urns for b in bound_expressions], @@ -609,6 +614,12 @@ def resolve( ] bound_else = resolve_expression(_else, base_schema, registry) + extension_uris = merge_extension_uris( + bound_match.extension_uris, + *[b.extension_uris for _, b in bound_ifs], + bound_else.extension_uris, + ) + extension_urns = merge_extension_urns( bound_match.extension_urns, *[b.extension_urns for _, b in bound_ifs], @@ -644,6 +655,7 @@ def resolve( ], base_schema=base_schema, extension_urns=extension_urns, + extension_uris=extension_uris, extensions=extensions, ) @@ -661,6 +673,10 @@ def resolve( bound_value = resolve_expression(value, base_schema, registry) bound_options = [resolve_expression(o, base_schema, registry) for o in options] + extension_uris = merge_extension_uris( + bound_value.extension_uris, *[b.extension_uris for b in bound_options] + ) + extension_urns = merge_extension_urns( bound_value.extension_urns, *[b.extension_urns for b in bound_options] ) @@ -687,6 +703,7 @@ def resolve( ], base_schema=base_schema, extension_urns=extension_urns, + extension_uris=extension_uris, extensions=extensions, ) @@ -707,12 +724,17 @@ def resolve( [resolve_expression(e, base_schema, registry) for e in o] for o in options ] + extension_uris = merge_extension_uris( + *[b.extension_uris for b in bound_value], + *[e.extension_uris for b in bound_options for e in b], + ) + extension_urns = merge_extension_urns( *[b.extension_urns for b in bound_value], *[e.extension_urns for b in bound_options for e in b], ) - extensions = merge_extension_urns( + extensions = merge_extension_declarations( *[b.extensions for b in bound_value], *[e.extensions for b in bound_options for e in b], ) @@ -738,6 +760,7 @@ def resolve( ], base_schema=base_schema, extension_urns=extension_urns, + extension_uris=extension_uris, extensions=extensions, ) @@ -767,6 +790,7 @@ def resolve( ], base_schema=base_schema, extension_urns=bound_input.extension_urns, + extension_uris=bound_input.extension_uris, extensions=bound_input.extensions, ) diff --git a/src/substrait/builders/plan.py b/src/substrait/builders/plan.py index bf49180..a4a2180 100644 --- a/src/substrait/builders/plan.py +++ b/src/substrait/builders/plan.py @@ -18,7 +18,11 @@ resolve_expression, ) from substrait.type_inference import infer_plan_schema -from substrait.utils import merge_extension_declarations, merge_extension_urns, merge_extension_uris +from substrait.utils import ( + merge_extension_declarations, + merge_extension_urns, + merge_extension_uris, +) UnboundPlan = Callable[[ExtensionRegistry], stp.Plan] @@ -29,7 +33,7 @@ def _merge_extensions(*objs): """Merge extension URIs, URNs, and declarations from multiple plan/expression objects. During the URI -> URN migration period, we maintain both URI and URN references - for backwards compatibility. + for backwards compatibility. """ return { "extension_uris": merge_extension_uris(*[b.extension_uris for b in objs if b]), diff --git a/src/substrait/sql/sql_to_substrait.py b/src/substrait/sql/sql_to_substrait.py index 1641cb2..1b2b6c2 100644 --- a/src/substrait/sql/sql_to_substrait.py +++ b/src/substrait/sql/sql_to_substrait.py @@ -36,7 +36,9 @@ "Eq": ("extension:io.substrait:functions_comparison", "equal"), } -aggregate_function_mapping = {"SUM": ("extension:io.substrait:functions_arithmetic", "sum")} +aggregate_function_mapping = { + "SUM": ("extension:io.substrait:functions_arithmetic", "sum") +} window_function_mapping = { "row_number": ("extension:io.substrait:functions_arithmetic", "row_number"), diff --git a/src/substrait/utils/display.py b/src/substrait/utils/display.py index eeee202..2148571 100644 --- a/src/substrait/utils/display.py +++ b/src/substrait/utils/display.py @@ -723,7 +723,7 @@ def _stream_literal_value( elif literal.HasField("string"): string_value = f'"{literal.string}"' stream.write( - f'{indent}{self._color("string", Colors.BLUE)}: {self._color(string_value, Colors.GREEN)}\n' + f"{indent}{self._color('string', Colors.BLUE)}: {self._color(string_value, Colors.GREEN)}\n" ) elif literal.HasField("date"): stream.write( diff --git a/tests/builders/extended_expression/test_aggregate_function.py b/tests/builders/extended_expression/test_aggregate_function.py index d4b021c..cbbe2ea 100644 --- a/tests/builders/extended_expression/test_aggregate_function.py +++ b/tests/builders/extended_expression/test_aggregate_function.py @@ -38,7 +38,9 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content), uri="https://test.example.com/test.yaml") +registry.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/test.yaml" +) def test_aggregate_count(): @@ -57,15 +59,21 @@ def test_aggregate_count(): )(named_struct, registry) expected = stee.ExtendedExpression( - extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn")], - extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://test.example.com/test.yaml")], + extension_urns=[ + ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn") + ], + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://test.example.com/test.yaml" + ) + ], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( extension_urn_reference=1, extension_uri_reference=1, function_anchor=1, - name="count:any" + name="count:any", ) ) ], diff --git a/tests/builders/extended_expression/test_cast.py b/tests/builders/extended_expression/test_cast.py index 30defe5..704f80d 100644 --- a/tests/builders/extended_expression/test_cast.py +++ b/tests/builders/extended_expression/test_cast.py @@ -44,3 +44,100 @@ def test_cast(): ) assert e == expected + + +def test_cast_with_extension(): + import yaml + import substrait.gen.proto.extensions.extensions_pb2 as ste + from substrait.builders.extended_expression import scalar_function + + registry_with_ext = ExtensionRegistry(load_default_extensions=False) + content = """%YAML 1.2 +--- +urn: extension:test:functions +scalar_functions: + - name: "add" + description: "" + impls: + - args: + - value: i8 + - value: i8 + return: i8 +""" + registry_with_ext.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/functions.yaml" + ) + + actual = cast( + input=scalar_function( + "extension:test:functions", + "add", + expressions=[literal(1, i8()), literal(2, i8())], + ), + type=i16(), + )(named_struct, registry_with_ext) + + expected = stee.ExtendedExpression( + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://test.example.com/functions.yaml" + ) + ], + extension_urns=[ + ste.SimpleExtensionURN( + extension_urn_anchor=1, urn="extension:test:functions" + ) + ], + extensions=[ + ste.SimpleExtensionDeclaration( + extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( + extension_uri_reference=1, + extension_urn_reference=1, + function_anchor=1, + name="add:i8_i8", + ) + ) + ], + referred_expr=[ + stee.ExpressionReference( + expression=stalg.Expression( + cast=stalg.Expression.Cast( + type=stt.Type( + i16=stt.Type.I16(nullability=stt.Type.NULLABILITY_NULLABLE) + ), + input=stalg.Expression( + scalar_function=stalg.Expression.ScalarFunction( + function_reference=1, + output_type=stt.Type( + i8=stt.Type.I8( + nullability=stt.Type.NULLABILITY_NULLABLE + ) + ), + arguments=[ + stalg.FunctionArgument( + value=stalg.Expression( + literal=stalg.Expression.Literal( + i8=1, nullable=True + ) + ) + ), + stalg.FunctionArgument( + value=stalg.Expression( + literal=stalg.Expression.Literal( + i8=2, nullable=True + ) + ) + ), + ], + ) + ), + failure_behavior=stalg.Expression.Cast.FAILURE_BEHAVIOR_RETURN_NULL, + ) + ), + output_names=["cast"], + ) + ], + base_schema=named_struct, + ) + + assert actual == expected diff --git a/tests/builders/extended_expression/test_if_then.py b/tests/builders/extended_expression/test_if_then.py index 17241d9..81d27d6 100644 --- a/tests/builders/extended_expression/test_if_then.py +++ b/tests/builders/extended_expression/test_if_then.py @@ -2,7 +2,12 @@ import substrait.gen.proto.type_pb2 as stt import substrait.gen.proto.extended_expression_pb2 as stee import substrait.gen.proto.extensions.extensions_pb2 as ste -from substrait.builders.extended_expression import if_then, literal, scalar_function, column +from substrait.builders.extended_expression import ( + if_then, + literal, + scalar_function, + column, +) from substrait.extension_registry import ExtensionRegistry @@ -78,11 +83,10 @@ def test_if_else(): assert actual == expected + def test_if_then_with_extension(): - """Test if_then with scalar function to verify both URI and URN are present.""" import yaml - # Use a minimal registry with only the comparison extension registry = ExtensionRegistry(load_default_extensions=False) content = """%YAML 1.2 --- @@ -98,7 +102,7 @@ def test_if_then_with_extension(): """ registry.register_extension_dict( yaml.safe_load(content), - uri="https://github.com/substrait-io/substrait/blob/main/extensions/functions_comparison.yaml" + uri="https://github.com/substrait-io/substrait/blob/main/extensions/functions_comparison.yaml", ) # Create if_then: if order_total > 100 then "expensive" else "cheap" @@ -110,15 +114,22 @@ def test_if_then_with_extension(): "gt", expressions=[ column("order_total"), - literal(100.0, type=stt.Type( - fp32=stt.Type.FP32(nullability=stt.Type.NULLABILITY_REQUIRED) - )), + literal( + 100.0, + type=stt.Type( + fp32=stt.Type.FP32( + nullability=stt.Type.NULLABILITY_REQUIRED + ) + ), + ), ], ), literal( "expensive", type=stt.Type( - string=stt.Type.String(nullability=stt.Type.NULLABILITY_REQUIRED) + string=stt.Type.String( + nullability=stt.Type.NULLABILITY_REQUIRED + ) ), ), ) @@ -135,13 +146,13 @@ def test_if_then_with_extension(): extension_uris=[ ste.SimpleExtensionURI( extension_uri_anchor=1, - uri="https://github.com/substrait-io/substrait/blob/main/extensions/functions_comparison.yaml" + uri="https://github.com/substrait-io/substrait/blob/main/extensions/functions_comparison.yaml", ) ], extension_urns=[ ste.SimpleExtensionURN( extension_urn_anchor=1, - urn="extension:io.substrait:functions_comparison" + urn="extension:io.substrait:functions_comparison", ) ], extensions=[ @@ -150,7 +161,7 @@ def test_if_then_with_extension(): extension_uri_reference=1, extension_urn_reference=1, function_anchor=1, - name="gt:fp32_fp32" + name="gt:fp32_fp32", ) ) ], @@ -179,7 +190,7 @@ def test_if_then_with_extension(): field=2 ) ), - root_reference=stalg.Expression.FieldReference.RootReference() + root_reference=stalg.Expression.FieldReference.RootReference(), ) ) ), @@ -190,7 +201,7 @@ def test_if_then_with_extension(): ) ) ), - ] + ], ) ), "then": stalg.Expression( @@ -202,14 +213,14 @@ def test_if_then_with_extension(): ) ], "else": stalg.Expression( - literal=stalg.Expression.Literal( - string="cheap" - ) + literal=stalg.Expression.Literal(string="cheap") ), } ) ), - output_names=["IfThen(gt(order_total,Literal(100.0)),Literal(expensive),Literal(cheap))"], + output_names=[ + "IfThen(gt(order_total,Literal(100.0)),Literal(expensive),Literal(cheap))" + ], ) ], base_schema=named_struct, diff --git a/tests/builders/extended_expression/test_multi_or_list.py b/tests/builders/extended_expression/test_multi_or_list.py index 31a2a15..701847f 100644 --- a/tests/builders/extended_expression/test_multi_or_list.py +++ b/tests/builders/extended_expression/test_multi_or_list.py @@ -81,3 +81,137 @@ def test_singular_or_list(): ) assert e == expected + + +def test_multi_or_list_with_extension(): + import yaml + import substrait.gen.proto.extensions.extensions_pb2 as ste + from substrait.builders.extended_expression import scalar_function + + registry_with_ext = ExtensionRegistry(load_default_extensions=False) + content = """%YAML 1.2 +--- +urn: extension:test:functions +scalar_functions: + - name: "add" + description: "" + impls: + - args: + - value: i8 + - value: i8 + return: i8 +""" + registry_with_ext.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/functions.yaml" + ) + + actual = multi_or_list( + value=[ + scalar_function( + "extension:test:functions", + "add", + expressions=[literal(1, i8()), literal(2, i8())], + ), + literal(10, i8()), + ], + options=[ + [literal(3, i8()), literal(11, i8())], + [literal(4, i8()), literal(12, i8())], + ], + )(named_struct, registry_with_ext) + + expected = stee.ExtendedExpression( + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://test.example.com/functions.yaml" + ) + ], + extension_urns=[ + ste.SimpleExtensionURN( + extension_urn_anchor=1, urn="extension:test:functions" + ) + ], + extensions=[ + ste.SimpleExtensionDeclaration( + extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( + extension_uri_reference=1, + extension_urn_reference=1, + function_anchor=1, + name="add:i8_i8", + ) + ) + ], + referred_expr=[ + stee.ExpressionReference( + expression=stalg.Expression( + multi_or_list=stalg.Expression.MultiOrList( + value=[ + stalg.Expression( + scalar_function=stalg.Expression.ScalarFunction( + function_reference=1, + output_type=stt.Type( + i8=stt.Type.I8( + nullability=stt.Type.NULLABILITY_NULLABLE + ) + ), + arguments=[ + stalg.FunctionArgument( + value=stalg.Expression( + literal=stalg.Expression.Literal( + i8=1, nullable=True + ) + ) + ), + stalg.FunctionArgument( + value=stalg.Expression( + literal=stalg.Expression.Literal( + i8=2, nullable=True + ) + ) + ), + ], + ) + ), + stalg.Expression( + literal=stalg.Expression.Literal(i8=10, nullable=True) + ), + ], + options=[ + stalg.Expression.MultiOrList.Record( + fields=[ + stalg.Expression( + literal=stalg.Expression.Literal( + i8=3, nullable=True + ) + ), + stalg.Expression( + literal=stalg.Expression.Literal( + i8=11, nullable=True + ) + ), + ] + ), + stalg.Expression.MultiOrList.Record( + fields=[ + stalg.Expression( + literal=stalg.Expression.Literal( + i8=4, nullable=True + ) + ), + stalg.Expression( + literal=stalg.Expression.Literal( + i8=12, nullable=True + ) + ), + ] + ), + ], + ) + ), + output_names=["multi_or_list"], + ) + ], + base_schema=named_struct, + ) + + assert actual == expected diff --git a/tests/builders/extended_expression/test_scalar_function.py b/tests/builders/extended_expression/test_scalar_function.py index 3125e38..c7819b9 100644 --- a/tests/builders/extended_expression/test_scalar_function.py +++ b/tests/builders/extended_expression/test_scalar_function.py @@ -41,7 +41,6 @@ registry = ExtensionRegistry(load_default_extensions=False) -# Register with URI for URI/URN migration testing test_uri = "https://test.example.com/extension_test_urn.yaml" registry.register_extension_dict(yaml.safe_load(content), uri=test_uri) @@ -67,15 +66,22 @@ def test_sclar_add(): )(named_struct, registry) expected = stee.ExtendedExpression( - extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn")], - extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://test.example.com/extension_test_urn.yaml")], + extension_urns=[ + ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn") + ], + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, + uri="https://test.example.com/extension_test_urn.yaml", + ) + ], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( extension_urn_reference=1, extension_uri_reference=1, function_anchor=1, - name="test_func:i8" + name="test_func:i8", ) ) ], @@ -142,15 +148,22 @@ def test_nested_scalar_calls(): )(named_struct, registry) expected = stee.ExtendedExpression( - extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn")], - extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://test.example.com/extension_test_urn.yaml")], + extension_urns=[ + ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn") + ], + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, + uri="https://test.example.com/extension_test_urn.yaml", + ) + ], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( extension_urn_reference=1, extension_uri_reference=1, function_anchor=2, - name="is_positive:i8" + name="is_positive:i8", ) ), ste.SimpleExtensionDeclaration( @@ -158,7 +171,7 @@ def test_nested_scalar_calls(): extension_urn_reference=1, extension_uri_reference=1, function_anchor=1, - name="test_func:i8" + name="test_func:i8", ) ), ], diff --git a/tests/builders/extended_expression/test_singular_or_list.py b/tests/builders/extended_expression/test_singular_or_list.py index 2408581..82e998e 100644 --- a/tests/builders/extended_expression/test_singular_or_list.py +++ b/tests/builders/extended_expression/test_singular_or_list.py @@ -50,3 +50,104 @@ def test_singular_or_list(): ) assert e == expected + + +def test_singular_or_list_with_extension(): + import yaml + import substrait.gen.proto.extensions.extensions_pb2 as ste + from substrait.builders.extended_expression import scalar_function + + registry_with_ext = ExtensionRegistry(load_default_extensions=False) + content = """%YAML 1.2 +--- +urn: extension:test:functions +scalar_functions: + - name: "add" + description: "" + impls: + - args: + - value: i8 + - value: i8 + return: i8 +""" + registry_with_ext.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/functions.yaml" + ) + + actual = singular_or_list( + value=scalar_function( + "extension:test:functions", + "add", + expressions=[literal(1, i8()), literal(2, i8())], + ), + options=[literal(3, i8()), literal(4, i8())], + )(named_struct, registry_with_ext) + + expected = stee.ExtendedExpression( + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://test.example.com/functions.yaml" + ) + ], + extension_urns=[ + ste.SimpleExtensionURN( + extension_urn_anchor=1, urn="extension:test:functions" + ) + ], + extensions=[ + ste.SimpleExtensionDeclaration( + extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( + extension_uri_reference=1, + extension_urn_reference=1, + function_anchor=1, + name="add:i8_i8", + ) + ) + ], + referred_expr=[ + stee.ExpressionReference( + expression=stalg.Expression( + singular_or_list=stalg.Expression.SingularOrList( + value=stalg.Expression( + scalar_function=stalg.Expression.ScalarFunction( + function_reference=1, + output_type=stt.Type( + i8=stt.Type.I8( + nullability=stt.Type.NULLABILITY_NULLABLE + ) + ), + arguments=[ + stalg.FunctionArgument( + value=stalg.Expression( + literal=stalg.Expression.Literal( + i8=1, nullable=True + ) + ) + ), + stalg.FunctionArgument( + value=stalg.Expression( + literal=stalg.Expression.Literal( + i8=2, nullable=True + ) + ) + ), + ], + ) + ), + options=[ + stalg.Expression( + literal=stalg.Expression.Literal(i8=3, nullable=True) + ), + stalg.Expression( + literal=stalg.Expression.Literal(i8=4, nullable=True) + ), + ], + ) + ), + output_names=["singular_or_list"], + ) + ], + base_schema=named_struct, + ) + + assert actual == expected diff --git a/tests/builders/extended_expression/test_switch.py b/tests/builders/extended_expression/test_switch.py index ee675b4..0ec8b71 100644 --- a/tests/builders/extended_expression/test_switch.py +++ b/tests/builders/extended_expression/test_switch.py @@ -74,3 +74,127 @@ def test_switch(): ) assert e == expected + + +def test_switch_with_extension(): + import yaml + import substrait.gen.proto.extensions.extensions_pb2 as ste + from substrait.builders.extended_expression import scalar_function + + registry_with_ext = ExtensionRegistry(load_default_extensions=False) + content = """%YAML 1.2 +--- +urn: extension:test:functions +scalar_functions: + - name: "add" + description: "" + impls: + - args: + - value: i8 + - value: i8 + return: i8 +""" + registry_with_ext.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/functions.yaml" + ) + + actual = switch( + match=scalar_function( + "extension:test:functions", + "add", + expressions=[literal(1, i8()), literal(2, i8())], + ), + ifs=[ + (literal(3, i8()), literal(10, i8())), + (literal(4, i8()), literal(20, i8())), + ], + _else=literal(0, i8()), + )(named_struct, registry_with_ext) + + expected = stee.ExtendedExpression( + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://test.example.com/functions.yaml" + ) + ], + extension_urns=[ + ste.SimpleExtensionURN( + extension_urn_anchor=1, urn="extension:test:functions" + ) + ], + extensions=[ + ste.SimpleExtensionDeclaration( + extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( + extension_uri_reference=1, + extension_urn_reference=1, + function_anchor=1, + name="add:i8_i8", + ) + ) + ], + referred_expr=[ + stee.ExpressionReference( + expression=stalg.Expression( + switch_expression=stalg.Expression.SwitchExpression( + match=stalg.Expression( + scalar_function=stalg.Expression.ScalarFunction( + function_reference=1, + output_type=stt.Type( + i8=stt.Type.I8( + nullability=stt.Type.NULLABILITY_NULLABLE + ) + ), + arguments=[ + stalg.FunctionArgument( + value=stalg.Expression( + literal=stalg.Expression.Literal( + i8=1, nullable=True + ) + ) + ), + stalg.FunctionArgument( + value=stalg.Expression( + literal=stalg.Expression.Literal( + i8=2, nullable=True + ) + ) + ), + ], + ) + ), + ifs=[ + stalg.Expression.SwitchExpression.IfValue( + **{ + "if": stalg.Expression.Literal(i8=3, nullable=True), + "then": stalg.Expression( + literal=stalg.Expression.Literal( + i8=10, nullable=True + ) + ), + } + ), + stalg.Expression.SwitchExpression.IfValue( + **{ + "if": stalg.Expression.Literal(i8=4, nullable=True), + "then": stalg.Expression( + literal=stalg.Expression.Literal( + i8=20, nullable=True + ) + ), + } + ), + ], + **{ + "else": stalg.Expression( + literal=stalg.Expression.Literal(i8=0, nullable=True) + ) + }, + ) + ), + output_names=["switch"], + ) + ], + base_schema=named_struct, + ) + + assert actual == expected diff --git a/tests/builders/extended_expression/test_window_function.py b/tests/builders/extended_expression/test_window_function.py index 10ca576..2abef07 100644 --- a/tests/builders/extended_expression/test_window_function.py +++ b/tests/builders/extended_expression/test_window_function.py @@ -43,7 +43,9 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content), uri="https://test.example.com/test.yaml") +registry.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/test.yaml" +) def test_row_number(): @@ -52,15 +54,21 @@ def test_row_number(): ) expected = stee.ExtendedExpression( - extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn")], - extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://test.example.com/test.yaml")], + extension_urns=[ + ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn") + ], + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://test.example.com/test.yaml" + ) + ], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( extension_urn_reference=1, extension_uri_reference=1, function_anchor=1, - name="row_number:" + name="row_number:", ) ) ], diff --git a/tests/builders/plan/test_aggregate.py b/tests/builders/plan/test_aggregate.py index 3679259..0b30685 100644 --- a/tests/builders/plan/test_aggregate.py +++ b/tests/builders/plan/test_aggregate.py @@ -27,7 +27,9 @@ registry = ExtensionRegistry(load_default_extensions=False) -registry.register_extension_dict(yaml.safe_load(content), uri="https://test.example.com/test.yaml") +registry.register_extension_dict( + yaml.safe_load(content), uri="https://test.example.com/test.yaml" +) struct = stt.Type.Struct( types=[i64(nullable=False), boolean()], nullability=stt.Type.NULLABILITY_REQUIRED @@ -41,7 +43,10 @@ def test_aggregate(): group_expr = column("id") measure_expr = aggregate_function( - "extension:test:urn", "count", expressions=[column("is_applicable")], alias=["count"] + "extension:test:urn", + "count", + expressions=[column("is_applicable")], + alias=["count"], ) actual = aggregate( @@ -51,15 +56,21 @@ def test_aggregate(): ns = infer_plan_schema(table(None)) expected = stp.Plan( - extension_urns=[ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn")], - extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://test.example.com/test.yaml")], + extension_urns=[ + ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:urn") + ], + extension_uris=[ + ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://test.example.com/test.yaml" + ) + ], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( extension_urn_reference=1, extension_uri_reference=1, function_anchor=1, - name="count:any" + name="count:any", ) ) ], diff --git a/tests/test_extension_registry.py b/tests/test_extension_registry.py index c447ad1..f9d63bd 100644 --- a/tests/test_extension_registry.py +++ b/tests/test_extension_registry.py @@ -111,7 +111,7 @@ registry.register_extension_dict( yaml.safe_load(content), - uri="https://test.example.com/extension_test_functions.yaml" + uri="https://test.example.com/extension_test_functions.yaml", ) @@ -177,7 +177,9 @@ def test_non_existing_function(): def test_non_existing_function_signature(): assert ( - registry.lookup_function(urn="extension:test:functions", function_name="add", signature=[i8()]) + registry.lookup_function( + urn="extension:test:functions", function_name="add", signature=[i8()] + ) is None ) @@ -190,14 +192,18 @@ def test_exact_match(): def test_wildcard_match(): assert registry.lookup_function( - urn="extension:test:functions", function_name="add", signature=[i8(), i8(), bool()] + urn="extension:test:functions", + function_name="add", + signature=[i8(), i8(), bool()], )[1] == Type(i16=Type.I16(nullability=Type.NULLABILITY_REQUIRED)) def test_wildcard_match_fails_with_constraits(): assert ( registry.lookup_function( - urn="extension:test:functions", function_name="add", signature=[i8(), i16(), i16()] + urn="extension:test:functions", + function_name="add", + signature=[i8(), i16(), i16()], ) is None ) @@ -206,7 +212,9 @@ def test_wildcard_match_fails_with_constraits(): def test_wildcard_match_with_constraits(): assert ( registry.lookup_function( - urn="extension:test:functions", function_name="add", signature=[i16(), i16(), i8()] + urn="extension:test:functions", + function_name="add", + signature=[i16(), i16(), i8()], )[1] == i8() ) @@ -215,7 +223,9 @@ def test_wildcard_match_with_constraits(): def test_variadic(): assert ( registry.lookup_function( - urn="extension:test:functions", function_name="test_fn", signature=[i8(), i8(), i8()] + urn="extension:test:functions", + function_name="test_fn", + signature=[i8(), i8(), i8()], )[1] == i8() ) @@ -234,7 +244,9 @@ def test_variadic_any(): def test_variadic_fails_min_constraint(): assert ( - registry.lookup_function(urn="extension:test:functions", function_name="test_fn", signature=[i8()]) + registry.lookup_function( + urn="extension:test:functions", function_name="test_fn", signature=[i8()] + ) is None ) @@ -290,26 +302,34 @@ def test_enum_with_nonexistent_option(): def test_function_with_nullable_args(): assert registry.lookup_function( - urn="extension:test:functions", function_name="add", signature=[i8(nullable=True), i8()] + urn="extension:test:functions", + function_name="add", + signature=[i8(nullable=True), i8()], )[1] == i8(nullable=True) def test_function_with_declared_output_nullability(): assert registry.lookup_function( - urn="extension:test:functions", function_name="add_declared", signature=[i8(), i8()] + urn="extension:test:functions", + function_name="add_declared", + signature=[i8(), i8()], )[1] == i8(nullable=True) def test_function_with_discrete_nullability(): assert registry.lookup_function( - urn="extension:test:functions", function_name="add_discrete", signature=[i8(nullable=True), i8()] + urn="extension:test:functions", + function_name="add_discrete", + signature=[i8(nullable=True), i8()], )[1] == i8(nullable=True) def test_function_with_discrete_nullability_nonexisting(): assert ( registry.lookup_function( - urn="extension:test:functions", function_name="add_discrete", signature=[i8(), i8()] + urn="extension:test:functions", + function_name="add_discrete", + signature=[i8(), i8()], ) is None ) @@ -358,12 +378,10 @@ def test_registry_uri_urn(): registry = ExtensionRegistry(load_default_extensions=False) registry.register_extension_dict(yaml.safe_load(content_with_urn), uri=uri) - assert registry._uri_urn_bimap.get_urn(uri) == urn assert registry._uri_urn_bimap.get_uri(urn) == uri - def test_registry_uri_anchor_lookup(): """Test that URI anchor lookup works.""" content_with_urn = """%YAML 1.2 @@ -375,7 +393,6 @@ def test_registry_uri_anchor_lookup(): registry = ExtensionRegistry(load_default_extensions=False) registry.register_extension_dict(yaml.safe_load(content_with_urn), uri=uri) - # Test URI anchor lookup anchor = registry.lookup_uri_anchor(uri) assert anchor is not None assert anchor > 0 @@ -393,9 +410,9 @@ def test_registry_default_extensions_have_uri_mappings(): assert "https://github.com/substrait-io/substrait/blob/main/extensions" in uri assert "functions_comparison.yaml" in uri - # Verify reverse mapping works assert registry._uri_urn_bimap.get_urn(uri) == urn + def test_valid_urn_format(): """Test that valid URN formats are accepted.""" content = """%YAML 1.2 @@ -410,11 +427,10 @@ def test_valid_urn_format(): return: i8 """ registry = ExtensionRegistry(load_default_extensions=False) - # Should not raise + registry.register_extension_dict( - yaml.safe_load(content), - uri="https://test.example.com/functions_test.yaml" - ) + yaml.safe_load(content), uri="https://test.example.com/functions_test.yaml" + ) # Should not raise def test_invalid_urn_no_prefix(): @@ -428,8 +444,7 @@ def test_invalid_urn_no_prefix(): with pytest.raises(ValueError, match="Invalid URN format"): registry.register_extension_dict( - yaml.safe_load(content), - uri="https://test.example.com/invalid.yaml" + yaml.safe_load(content), uri="https://test.example.com/invalid.yaml" ) @@ -444,8 +459,7 @@ def test_invalid_urn_too_short(): with pytest.raises(ValueError, match="Invalid URN format"): registry.register_extension_dict( - yaml.safe_load(content), - uri="https://test.example.com/invalid.yaml" + yaml.safe_load(content), uri="https://test.example.com/invalid.yaml" ) @@ -459,8 +473,7 @@ def test_missing_urn(): with pytest.raises(ValueError, match="must contain a 'urn' field"): registry.register_extension_dict( - yaml.safe_load(content), - uri="https://test.example.com/missing_urn.yaml" + yaml.safe_load(content), uri="https://test.example.com/missing_urn.yaml" ) diff --git a/tests/test_uri_urn_migration.py b/tests/test_uri_urn_migration.py index a66e901..184abd6 100644 --- a/tests/test_uri_urn_migration.py +++ b/tests/test_uri_urn_migration.py @@ -54,7 +54,9 @@ def test_extended_expression_outputs_both_uri_and_urn(): expressions=[ literal( 10, - type=stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED)), + type=stt.Type( + i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED) + ), ) ], ) @@ -63,11 +65,11 @@ def test_extended_expression_outputs_both_uri_and_urn(): expected = stex.ExtendedExpression( extension_urns=[ - ste.SimpleExtensionURN(extension_urn_anchor=1, urn="extension:test:functions") - ], - extension_uris=[ - ste.SimpleExtensionURI(extension_uri_anchor=1, uri=uri) + ste.SimpleExtensionURN( + extension_urn_anchor=1, urn="extension:test:functions" + ) ], + extension_uris=[ste.SimpleExtensionURI(extension_uri_anchor=1, uri=uri)], extensions=[ ste.SimpleExtensionDeclaration( extension_function=ste.SimpleExtensionDeclaration.ExtensionFunction( @@ -95,15 +97,17 @@ def test_extended_expression_outputs_both_uri_and_urn(): ], ) ), - output_names=["test_func(Literal(10))"] + output_names=["test_func(Literal(10))"], ) ], base_schema=stt.NamedStruct( names=["value"], struct=stt.Type.Struct( - types=[stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED))] - ) - ) + types=[ + stt.Type(i8=stt.Type.I8(nullability=stt.Type.NULLABILITY_REQUIRED)) + ] + ), + ), ) assert actual == expected @@ -167,9 +171,13 @@ def test_project_outputs_both_uri_and_urn(): root=stalg.RelRoot( input=stalg.Rel( project=stalg.ProjectRel( - common=stalg.RelCommon(emit=stalg.RelCommon.Emit(output_mapping=[2])), + common=stalg.RelCommon( + emit=stalg.RelCommon.Emit(output_mapping=[2]) + ), input=table(None).relations[-1].root.input, - expressions=[add_expr(ns, registry).referred_expr[0].expression], + expressions=[ + add_expr(ns, registry).referred_expr[0].expression + ], ) ), names=["add"], @@ -180,6 +188,7 @@ def test_project_outputs_both_uri_and_urn(): assert actual == expected + def test_filter_outputs_both_uri_and_urn(): """Test that filter plans with scalar functions have both URI and URN in proto.""" content = """%YAML 1.2 @@ -251,6 +260,7 @@ def test_filter_outputs_both_uri_and_urn(): assert actual == expected + def test_aggregate_with_aggregate_function(): """Test that aggregate plans with aggregate functions have both URI and URN in proto.""" content = """%YAML 1.2 @@ -319,14 +329,18 @@ def test_aggregate_with_aggregate_function(): groupings=[ stalg.AggregateRel.Grouping( grouping_expressions=[ - column("id")(ns, registry).referred_expr[0].expression + column("id")(ns, registry) + .referred_expr[0] + .expression ], expression_references=[0], ) ], measures=[ stalg.AggregateRel.Measure( - measure=sum_expr(ns, registry).referred_expr[0].measure + measure=sum_expr(ns, registry) + .referred_expr[0] + .measure ) ], ) @@ -334,7 +348,7 @@ def test_aggregate_with_aggregate_function(): names=["id", "sum"], ) ) - ], - ) + ], + ) assert actual == expected diff --git a/tests/test_utils.py b/tests/test_utils.py index c2e2e83..dbbd17d 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -92,13 +92,18 @@ def test_type_num_names_nested_list(): def test_merge_extension_uris_deduplicates(): """Test that merging extension URIs deduplicates correctly.""" # Create duplicate URI extensions - uri1 = ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://example.com/test.yaml") - uri2 = ste.SimpleExtensionURI(extension_uri_anchor=1, uri="https://example.com/test.yaml") - uri3 = ste.SimpleExtensionURI(extension_uri_anchor=2, uri="https://example.com/other.yaml") + uri1 = ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://example.com/test.yaml" + ) + uri2 = ste.SimpleExtensionURI( + extension_uri_anchor=1, uri="https://example.com/test.yaml" + ) + uri3 = ste.SimpleExtensionURI( + extension_uri_anchor=2, uri="https://example.com/other.yaml" + ) merged_uris = merge_extension_uris([uri1], [uri2, uri3]) - # Should have 2 unique URIs assert len(merged_uris) == 2 assert merged_uris[0].uri == "https://example.com/test.yaml" assert merged_uris[1].uri == "https://example.com/other.yaml" @@ -113,7 +118,6 @@ def test_merge_extension_urns_deduplicates(): merged_urns = merge_extension_urns([urn1], [urn2, urn3]) - # Should have 2 unique URNs assert len(merged_urns) == 2 assert merged_urns[0].urn == "extension:example:test" assert merged_urns[1].urn == "extension:example:other" From 016782080a9f2d215e64e8be5657ca08a27ed5e8 Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Tue, 28 Oct 2025 14:59:17 -0400 Subject: [PATCH 13/18] chore: make antlr --- src/substrait/gen/antlr/SubstraitTypeLexer.py | 530 +++++------ .../gen/antlr/SubstraitTypeListener.py | 11 +- .../gen/antlr/SubstraitTypeParser.py | 883 ++++++++++-------- 3 files changed, 749 insertions(+), 675 deletions(-) diff --git a/src/substrait/gen/antlr/SubstraitTypeLexer.py b/src/substrait/gen/antlr/SubstraitTypeLexer.py index dd8cc53..6a5a3cb 100644 --- a/src/substrait/gen/antlr/SubstraitTypeLexer.py +++ b/src/substrait/gen/antlr/SubstraitTypeLexer.py @@ -1,4 +1,4 @@ -# Generated from SubstraitType.g4 by ANTLR 4.13.1 +# Generated from SubstraitType.g4 by ANTLR 4.13.2 from antlr4 import * from io import StringIO import sys @@ -10,7 +10,7 @@ def serializedATN(): return [ - 4,0,78,604,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5, + 4,0,80,626,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5, 2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2, 13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7, 19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2, @@ -22,56 +22,58 @@ def serializedATN(): 58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2, 65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7, 71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2, - 78,7,78,2,79,7,79,2,80,7,80,1,0,1,0,1,0,1,0,5,0,168,8,0,10,0,12, - 0,171,9,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,4,1,180,8,1,11,1,12,1,181, - 1,1,3,1,185,8,1,1,1,5,1,188,8,1,10,1,12,1,191,9,1,1,1,1,1,1,1,1, - 1,1,1,1,2,4,2,199,8,2,11,2,12,2,200,1,2,1,2,1,3,1,3,1,4,1,4,1,4, - 1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,7,1,7, - 1,7,1,7,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,10,1,11,1,11, - 1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,13,1,13,1,13,1,13,1,13,1,14, - 1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15,1,15,1,15,1,15,1,15, - 1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17, - 1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,18,1,18,1,18, - 1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,20,1,20, - 1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21, - 1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,22,1,22,1,22,1,22,1,22, - 1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,24,1,24,1,24,1,24, + 78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,1,0,1,0,1,0,1,0, + 5,0,172,8,0,10,0,12,0,175,9,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,4,1,184, + 8,1,11,1,12,1,185,1,1,3,1,189,8,1,1,1,5,1,192,8,1,10,1,12,1,195, + 9,1,1,1,1,1,1,1,1,1,1,1,1,2,4,2,203,8,2,11,2,12,2,204,1,2,1,2,1, + 3,1,3,1,4,1,4,1,4,1,5,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,6,1,7,1, + 7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,9,1,9,1,9,1,9,1,10,1,10, + 1,10,1,10,1,11,1,11,1,11,1,11,1,12,1,12,1,12,1,12,1,12,1,13,1,13, + 1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,15, + 1,15,1,15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16,1,16, + 1,16,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17,1,17, + 1,17,1,18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,19,1,20,1,20, + 1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,20,1,21, + 1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,22, + 1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,23,1,24, 1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24,1,24, - 1,24,1,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25, - 1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26, - 1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27, - 1,27,1,27,1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28, - 1,28,1,28,1,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30, - 1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,32,1,32,1,32, - 1,32,1,33,1,33,1,33,1,34,1,34,1,34,1,34,1,34,1,35,1,35,1,35,1,35, - 1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38, - 1,39,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,41,1,41, - 1,41,1,41,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,1,44, - 1,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46, - 1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,49,1,49,1,49, - 1,50,1,50,1,51,1,51,1,52,1,52,1,53,1,53,1,54,1,54,1,55,1,55,1,56, - 1,56,1,56,1,57,1,57,1,57,1,58,1,58,1,58,1,59,1,59,1,60,1,60,1,61, - 1,61,1,62,1,62,1,63,1,63,1,64,1,64,1,65,1,65,1,66,1,66,1,67,1,67, - 1,68,1,68,1,69,1,69,1,70,1,70,1,71,1,71,1,72,1,72,1,73,1,73,1,73, - 1,73,1,74,1,74,1,74,1,75,1,75,1,75,1,76,1,76,5,76,575,8,76,10,76, - 12,76,578,9,76,1,76,3,76,581,8,76,1,77,1,77,1,78,3,78,586,8,78,1, - 78,1,78,1,79,1,79,1,79,5,79,593,8,79,10,79,12,79,596,9,79,1,80,1, - 80,3,80,600,8,80,1,80,3,80,603,8,80,0,0,81,1,1,3,2,5,3,7,0,9,4,11, - 5,13,6,15,7,17,8,19,9,21,10,23,11,25,12,27,13,29,14,31,15,33,16, - 35,17,37,18,39,19,41,20,43,21,45,22,47,23,49,24,51,25,53,26,55,27, - 57,28,59,29,61,30,63,31,65,32,67,33,69,34,71,35,73,36,75,37,77,38, - 79,39,81,40,83,41,85,42,87,43,89,44,91,45,93,46,95,47,97,48,99,49, - 101,50,103,51,105,52,107,53,109,54,111,55,113,56,115,57,117,58,119, - 59,121,60,123,61,125,62,127,63,129,64,131,65,133,66,135,67,137,68, - 139,69,141,70,143,71,145,72,147,73,149,74,151,75,153,0,155,0,157, - 76,159,77,161,78,1,0,28,2,0,10,10,13,13,1,0,42,42,2,0,42,42,47,47, - 3,0,9,9,13,13,32,32,1,0,48,57,2,0,73,73,105,105,2,0,70,70,102,102, + 1,24,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25, + 1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,25,1,26,1,26,1,26,1,26,1,26, + 1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26,1,26, + 1,26,1,26,1,26,1,26,1,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27, + 1,27,1,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,28,1,29,1,29,1,29, + 1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,29,1,30,1,30,1,30,1,30, + 1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,31,1,32,1,32, + 1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,34,1,34,1,34,1,35,1,35,1,35, + 1,35,1,35,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,38,1,38, + 1,38,1,39,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,40,1,41, + 1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,44,1,44, + 1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,46, + 1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,49, + 1,49,1,49,1,49,1,50,1,50,1,50,1,51,1,51,1,51,1,52,1,52,1,53,1,53, + 1,54,1,54,1,55,1,55,1,56,1,56,1,57,1,57,1,58,1,58,1,58,1,59,1,59, + 1,59,1,60,1,60,1,60,1,61,1,61,1,62,1,62,1,63,1,63,1,64,1,64,1,65, + 1,65,1,66,1,66,1,67,1,67,1,68,1,68,1,69,1,69,1,70,1,70,1,71,1,71, + 1,72,1,72,1,73,1,73,1,74,1,74,1,75,1,75,1,75,1,75,1,76,1,76,1,76, + 1,77,1,77,1,77,1,78,1,78,5,78,597,8,78,10,78,12,78,600,9,78,1,78, + 3,78,603,8,78,1,79,1,79,1,80,3,80,608,8,80,1,80,1,80,1,81,1,81,1, + 81,5,81,615,8,81,10,81,12,81,618,9,81,1,82,1,82,3,82,622,8,82,1, + 82,3,82,625,8,82,0,0,83,1,1,3,2,5,3,7,0,9,4,11,5,13,6,15,7,17,8, + 19,9,21,10,23,11,25,12,27,13,29,14,31,15,33,16,35,17,37,18,39,19, + 41,20,43,21,45,22,47,23,49,24,51,25,53,26,55,27,57,28,59,29,61,30, + 63,31,65,32,67,33,69,34,71,35,73,36,75,37,77,38,79,39,81,40,83,41, + 85,42,87,43,89,44,91,45,93,46,95,47,97,48,99,49,101,50,103,51,105, + 52,107,53,109,54,111,55,113,56,115,57,117,58,119,59,121,60,123,61, + 125,62,127,63,129,64,131,65,133,66,135,67,137,68,139,69,141,70,143, + 71,145,72,147,73,149,74,151,75,153,76,155,77,157,0,159,0,161,78, + 163,79,165,80,1,0,28,2,0,10,10,13,13,1,0,42,42,2,0,42,42,47,47,3, + 0,9,9,13,13,32,32,1,0,48,57,2,0,73,73,105,105,2,0,70,70,102,102, 2,0,84,84,116,116,2,0,72,72,104,104,2,0,69,69,101,101,2,0,78,78, 110,110,2,0,76,76,108,108,2,0,83,83,115,115,2,0,66,66,98,98,2,0, 79,79,111,111,2,0,65,65,97,97,2,0,80,80,112,112,2,0,82,82,114,114, 2,0,71,71,103,103,2,0,89,89,121,121,2,0,77,77,109,109,2,0,90,90, 122,122,2,0,68,68,100,100,2,0,86,86,118,118,2,0,85,85,117,117,2, - 0,67,67,99,99,2,0,88,88,120,120,4,0,36,36,65,90,95,95,97,122,612, + 0,67,67,99,99,2,0,88,88,120,120,4,0,36,36,65,90,95,95,97,122,634, 0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13, 1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23, 1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33, @@ -87,142 +89,147 @@ def serializedATN(): 0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0, 131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0, 0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149, - 1,0,0,0,0,151,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0, - 1,163,1,0,0,0,3,174,1,0,0,0,5,198,1,0,0,0,7,204,1,0,0,0,9,206,1, - 0,0,0,11,209,1,0,0,0,13,214,1,0,0,0,15,219,1,0,0,0,17,227,1,0,0, - 0,19,230,1,0,0,0,21,234,1,0,0,0,23,238,1,0,0,0,25,242,1,0,0,0,27, - 247,1,0,0,0,29,252,1,0,0,0,31,259,1,0,0,0,33,266,1,0,0,0,35,276, - 1,0,0,0,37,289,1,0,0,0,39,294,1,0,0,0,41,299,1,0,0,0,43,313,1,0, - 0,0,45,326,1,0,0,0,47,331,1,0,0,0,49,339,1,0,0,0,51,359,1,0,0,0, - 53,382,1,0,0,0,55,392,1,0,0,0,57,400,1,0,0,0,59,412,1,0,0,0,61,419, - 1,0,0,0,63,427,1,0,0,0,65,432,1,0,0,0,67,436,1,0,0,0,69,439,1,0, - 0,0,71,444,1,0,0,0,73,448,1,0,0,0,75,453,1,0,0,0,77,456,1,0,0,0, - 79,461,1,0,0,0,81,467,1,0,0,0,83,472,1,0,0,0,85,476,1,0,0,0,87,480, - 1,0,0,0,89,486,1,0,0,0,91,492,1,0,0,0,93,498,1,0,0,0,95,503,1,0, - 0,0,97,507,1,0,0,0,99,510,1,0,0,0,101,513,1,0,0,0,103,515,1,0,0, - 0,105,517,1,0,0,0,107,519,1,0,0,0,109,521,1,0,0,0,111,523,1,0,0, - 0,113,525,1,0,0,0,115,528,1,0,0,0,117,531,1,0,0,0,119,534,1,0,0, - 0,121,536,1,0,0,0,123,538,1,0,0,0,125,540,1,0,0,0,127,542,1,0,0, - 0,129,544,1,0,0,0,131,546,1,0,0,0,133,548,1,0,0,0,135,550,1,0,0, - 0,137,552,1,0,0,0,139,554,1,0,0,0,141,556,1,0,0,0,143,558,1,0,0, - 0,145,560,1,0,0,0,147,562,1,0,0,0,149,566,1,0,0,0,151,569,1,0,0, - 0,153,580,1,0,0,0,155,582,1,0,0,0,157,585,1,0,0,0,159,589,1,0,0, - 0,161,602,1,0,0,0,163,164,5,47,0,0,164,165,5,47,0,0,165,169,1,0, - 0,0,166,168,8,0,0,0,167,166,1,0,0,0,168,171,1,0,0,0,169,167,1,0, - 0,0,169,170,1,0,0,0,170,172,1,0,0,0,171,169,1,0,0,0,172,173,6,0, - 0,0,173,2,1,0,0,0,174,175,5,47,0,0,175,176,5,42,0,0,176,184,1,0, - 0,0,177,185,8,1,0,0,178,180,5,42,0,0,179,178,1,0,0,0,180,181,1,0, - 0,0,181,179,1,0,0,0,181,182,1,0,0,0,182,183,1,0,0,0,183,185,8,2, - 0,0,184,177,1,0,0,0,184,179,1,0,0,0,185,189,1,0,0,0,186,188,5,42, - 0,0,187,186,1,0,0,0,188,191,1,0,0,0,189,187,1,0,0,0,189,190,1,0, - 0,0,190,192,1,0,0,0,191,189,1,0,0,0,192,193,5,42,0,0,193,194,5,47, - 0,0,194,195,1,0,0,0,195,196,6,1,0,0,196,4,1,0,0,0,197,199,7,3,0, - 0,198,197,1,0,0,0,199,200,1,0,0,0,200,198,1,0,0,0,200,201,1,0,0, - 0,201,202,1,0,0,0,202,203,6,2,0,0,203,6,1,0,0,0,204,205,7,4,0,0, - 205,8,1,0,0,0,206,207,7,5,0,0,207,208,7,6,0,0,208,10,1,0,0,0,209, - 210,7,7,0,0,210,211,7,8,0,0,211,212,7,9,0,0,212,213,7,10,0,0,213, - 12,1,0,0,0,214,215,7,9,0,0,215,216,7,11,0,0,216,217,7,12,0,0,217, - 218,7,9,0,0,218,14,1,0,0,0,219,220,7,13,0,0,220,221,7,14,0,0,221, - 222,7,14,0,0,222,223,7,11,0,0,223,224,7,9,0,0,224,225,7,15,0,0,225, - 226,7,10,0,0,226,16,1,0,0,0,227,228,7,5,0,0,228,229,5,56,0,0,229, - 18,1,0,0,0,230,231,7,5,0,0,231,232,5,49,0,0,232,233,5,54,0,0,233, - 20,1,0,0,0,234,235,7,5,0,0,235,236,5,51,0,0,236,237,5,50,0,0,237, - 22,1,0,0,0,238,239,7,5,0,0,239,240,5,54,0,0,240,241,5,52,0,0,241, - 24,1,0,0,0,242,243,7,6,0,0,243,244,7,16,0,0,244,245,5,51,0,0,245, - 246,5,50,0,0,246,26,1,0,0,0,247,248,7,6,0,0,248,249,7,16,0,0,249, - 250,5,54,0,0,250,251,5,52,0,0,251,28,1,0,0,0,252,253,7,12,0,0,253, - 254,7,7,0,0,254,255,7,17,0,0,255,256,7,5,0,0,256,257,7,10,0,0,257, - 258,7,18,0,0,258,30,1,0,0,0,259,260,7,13,0,0,260,261,7,5,0,0,261, - 262,7,10,0,0,262,263,7,15,0,0,263,264,7,17,0,0,264,265,7,19,0,0, - 265,32,1,0,0,0,266,267,7,7,0,0,267,268,7,5,0,0,268,269,7,20,0,0, - 269,270,7,9,0,0,270,271,7,12,0,0,271,272,7,7,0,0,272,273,7,15,0, - 0,273,274,7,20,0,0,274,275,7,16,0,0,275,34,1,0,0,0,276,277,7,7,0, - 0,277,278,7,5,0,0,278,279,7,20,0,0,279,280,7,9,0,0,280,281,7,12, - 0,0,281,282,7,7,0,0,282,283,7,15,0,0,283,284,7,20,0,0,284,285,7, - 16,0,0,285,286,5,95,0,0,286,287,7,7,0,0,287,288,7,21,0,0,288,36, - 1,0,0,0,289,290,7,22,0,0,290,291,7,15,0,0,291,292,7,7,0,0,292,293, - 7,9,0,0,293,38,1,0,0,0,294,295,7,7,0,0,295,296,7,5,0,0,296,297,7, - 20,0,0,297,298,7,9,0,0,298,40,1,0,0,0,299,300,7,5,0,0,300,301,7, - 10,0,0,301,302,7,7,0,0,302,303,7,9,0,0,303,304,7,17,0,0,304,305, - 7,23,0,0,305,306,7,15,0,0,306,307,7,11,0,0,307,308,5,95,0,0,308, - 309,7,19,0,0,309,310,7,9,0,0,310,311,7,15,0,0,311,312,7,17,0,0,312, - 42,1,0,0,0,313,314,7,5,0,0,314,315,7,10,0,0,315,316,7,7,0,0,316, - 317,7,9,0,0,317,318,7,17,0,0,318,319,7,23,0,0,319,320,7,15,0,0,320, - 321,7,11,0,0,321,322,5,95,0,0,322,323,7,22,0,0,323,324,7,15,0,0, - 324,325,7,19,0,0,325,44,1,0,0,0,326,327,7,24,0,0,327,328,7,24,0, - 0,328,329,7,5,0,0,329,330,7,22,0,0,330,46,1,0,0,0,331,332,7,22,0, - 0,332,333,7,9,0,0,333,334,7,25,0,0,334,335,7,5,0,0,335,336,7,20, - 0,0,336,337,7,15,0,0,337,338,7,11,0,0,338,48,1,0,0,0,339,340,7,16, - 0,0,340,341,7,17,0,0,341,342,7,9,0,0,342,343,7,25,0,0,343,344,7, - 5,0,0,344,345,7,12,0,0,345,346,7,5,0,0,346,347,7,14,0,0,347,348, - 7,10,0,0,348,349,5,95,0,0,349,350,7,7,0,0,350,351,7,5,0,0,351,352, - 7,20,0,0,352,353,7,9,0,0,353,354,7,12,0,0,354,355,7,7,0,0,355,356, - 7,15,0,0,356,357,7,20,0,0,357,358,7,16,0,0,358,50,1,0,0,0,359,360, - 7,16,0,0,360,361,7,17,0,0,361,362,7,9,0,0,362,363,7,25,0,0,363,364, - 7,5,0,0,364,365,7,12,0,0,365,366,7,5,0,0,366,367,7,14,0,0,367,368, - 7,10,0,0,368,369,5,95,0,0,369,370,7,7,0,0,370,371,7,5,0,0,371,372, - 7,20,0,0,372,373,7,9,0,0,373,374,7,12,0,0,374,375,7,7,0,0,375,376, - 7,15,0,0,376,377,7,20,0,0,377,378,7,16,0,0,378,379,5,95,0,0,379, - 380,7,7,0,0,380,381,7,21,0,0,381,52,1,0,0,0,382,383,7,6,0,0,383, - 384,7,5,0,0,384,385,7,26,0,0,385,386,7,9,0,0,386,387,7,22,0,0,387, - 388,7,25,0,0,388,389,7,8,0,0,389,390,7,15,0,0,390,391,7,17,0,0,391, - 54,1,0,0,0,392,393,7,23,0,0,393,394,7,15,0,0,394,395,7,17,0,0,395, - 396,7,25,0,0,396,397,7,8,0,0,397,398,7,15,0,0,398,399,7,17,0,0,399, - 56,1,0,0,0,400,401,7,6,0,0,401,402,7,5,0,0,402,403,7,26,0,0,403, - 404,7,9,0,0,404,405,7,22,0,0,405,406,7,13,0,0,406,407,7,5,0,0,407, - 408,7,10,0,0,408,409,7,15,0,0,409,410,7,17,0,0,410,411,7,19,0,0, - 411,58,1,0,0,0,412,413,7,12,0,0,413,414,7,7,0,0,414,415,7,17,0,0, - 415,416,7,24,0,0,416,417,7,25,0,0,417,418,7,7,0,0,418,60,1,0,0,0, - 419,420,7,10,0,0,420,421,7,12,0,0,421,422,7,7,0,0,422,423,7,17,0, - 0,423,424,7,24,0,0,424,425,7,25,0,0,425,426,7,7,0,0,426,62,1,0,0, - 0,427,428,7,11,0,0,428,429,7,5,0,0,429,430,7,12,0,0,430,431,7,7, - 0,0,431,64,1,0,0,0,432,433,7,20,0,0,433,434,7,15,0,0,434,435,7,16, - 0,0,435,66,1,0,0,0,436,437,7,24,0,0,437,438,5,33,0,0,438,68,1,0, - 0,0,439,440,7,13,0,0,440,441,7,14,0,0,441,442,7,14,0,0,442,443,7, - 11,0,0,443,70,1,0,0,0,444,445,7,12,0,0,445,446,7,7,0,0,446,447,7, - 17,0,0,447,72,1,0,0,0,448,449,7,23,0,0,449,450,7,13,0,0,450,451, - 7,5,0,0,451,452,7,10,0,0,452,74,1,0,0,0,453,454,7,7,0,0,454,455, - 7,12,0,0,455,76,1,0,0,0,456,457,7,7,0,0,457,458,7,12,0,0,458,459, - 7,7,0,0,459,460,7,21,0,0,460,78,1,0,0,0,461,462,7,5,0,0,462,463, - 7,19,0,0,463,464,7,9,0,0,464,465,7,15,0,0,465,466,7,17,0,0,466,80, - 1,0,0,0,467,468,7,5,0,0,468,469,7,22,0,0,469,470,7,15,0,0,470,471, - 7,19,0,0,471,82,1,0,0,0,472,473,7,22,0,0,473,474,7,9,0,0,474,475, - 7,25,0,0,475,84,1,0,0,0,476,477,7,16,0,0,477,478,7,7,0,0,478,479, - 7,12,0,0,479,86,1,0,0,0,480,481,7,16,0,0,481,482,7,7,0,0,482,483, - 7,12,0,0,483,484,7,7,0,0,484,485,7,21,0,0,485,88,1,0,0,0,486,487, - 7,6,0,0,487,488,7,25,0,0,488,489,7,8,0,0,489,490,7,15,0,0,490,491, - 7,17,0,0,491,90,1,0,0,0,492,493,7,23,0,0,493,494,7,25,0,0,494,495, - 7,8,0,0,495,496,7,15,0,0,496,497,7,17,0,0,497,92,1,0,0,0,498,499, - 7,6,0,0,499,500,7,13,0,0,500,501,7,5,0,0,501,502,7,10,0,0,502,94, - 1,0,0,0,503,504,7,15,0,0,504,505,7,10,0,0,505,506,7,19,0,0,506,96, - 1,0,0,0,507,508,3,95,47,0,508,509,7,4,0,0,509,98,1,0,0,0,510,511, - 5,58,0,0,511,512,5,58,0,0,512,100,1,0,0,0,513,514,5,43,0,0,514,102, - 1,0,0,0,515,516,5,45,0,0,516,104,1,0,0,0,517,518,5,42,0,0,518,106, - 1,0,0,0,519,520,5,47,0,0,520,108,1,0,0,0,521,522,5,37,0,0,522,110, - 1,0,0,0,523,524,5,61,0,0,524,112,1,0,0,0,525,526,5,33,0,0,526,527, - 5,61,0,0,527,114,1,0,0,0,528,529,5,62,0,0,529,530,5,61,0,0,530,116, - 1,0,0,0,531,532,5,60,0,0,532,533,5,61,0,0,533,118,1,0,0,0,534,535, - 5,62,0,0,535,120,1,0,0,0,536,537,5,60,0,0,537,122,1,0,0,0,538,539, - 5,33,0,0,539,124,1,0,0,0,540,541,3,121,60,0,541,126,1,0,0,0,542, - 543,3,119,59,0,543,128,1,0,0,0,544,545,5,40,0,0,545,130,1,0,0,0, - 546,547,5,41,0,0,547,132,1,0,0,0,548,549,5,91,0,0,549,134,1,0,0, - 0,550,551,5,93,0,0,551,136,1,0,0,0,552,553,5,44,0,0,553,138,1,0, - 0,0,554,555,5,58,0,0,555,140,1,0,0,0,556,557,5,63,0,0,557,142,1, - 0,0,0,558,559,5,35,0,0,559,144,1,0,0,0,560,561,5,46,0,0,561,146, - 1,0,0,0,562,563,7,15,0,0,563,564,7,10,0,0,564,565,7,22,0,0,565,148, - 1,0,0,0,566,567,7,14,0,0,567,568,7,17,0,0,568,150,1,0,0,0,569,570, - 5,58,0,0,570,571,5,61,0,0,571,152,1,0,0,0,572,576,2,49,57,0,573, - 575,3,155,77,0,574,573,1,0,0,0,575,578,1,0,0,0,576,574,1,0,0,0,576, - 577,1,0,0,0,577,581,1,0,0,0,578,576,1,0,0,0,579,581,5,48,0,0,580, - 572,1,0,0,0,580,579,1,0,0,0,581,154,1,0,0,0,582,583,2,48,57,0,583, - 156,1,0,0,0,584,586,5,45,0,0,585,584,1,0,0,0,585,586,1,0,0,0,586, - 587,1,0,0,0,587,588,3,153,76,0,588,158,1,0,0,0,589,594,7,27,0,0, - 590,593,7,27,0,0,591,593,3,155,77,0,592,590,1,0,0,0,592,591,1,0, - 0,0,593,596,1,0,0,0,594,592,1,0,0,0,594,595,1,0,0,0,595,160,1,0, - 0,0,596,594,1,0,0,0,597,599,5,13,0,0,598,600,5,10,0,0,599,598,1, - 0,0,0,599,600,1,0,0,0,600,603,1,0,0,0,601,603,5,10,0,0,602,597,1, - 0,0,0,602,601,1,0,0,0,603,162,1,0,0,0,13,0,169,181,184,189,200,576, - 580,585,592,594,599,602,1,0,1,0 + 1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,161,1,0,0,0, + 0,163,1,0,0,0,0,165,1,0,0,0,1,167,1,0,0,0,3,178,1,0,0,0,5,202,1, + 0,0,0,7,208,1,0,0,0,9,210,1,0,0,0,11,213,1,0,0,0,13,218,1,0,0,0, + 15,223,1,0,0,0,17,231,1,0,0,0,19,234,1,0,0,0,21,238,1,0,0,0,23,242, + 1,0,0,0,25,246,1,0,0,0,27,251,1,0,0,0,29,256,1,0,0,0,31,263,1,0, + 0,0,33,270,1,0,0,0,35,280,1,0,0,0,37,293,1,0,0,0,39,298,1,0,0,0, + 41,303,1,0,0,0,43,317,1,0,0,0,45,330,1,0,0,0,47,335,1,0,0,0,49,343, + 1,0,0,0,51,358,1,0,0,0,53,378,1,0,0,0,55,401,1,0,0,0,57,411,1,0, + 0,0,59,419,1,0,0,0,61,431,1,0,0,0,63,438,1,0,0,0,65,446,1,0,0,0, + 67,451,1,0,0,0,69,455,1,0,0,0,71,458,1,0,0,0,73,463,1,0,0,0,75,467, + 1,0,0,0,77,472,1,0,0,0,79,475,1,0,0,0,81,480,1,0,0,0,83,486,1,0, + 0,0,85,491,1,0,0,0,87,495,1,0,0,0,89,498,1,0,0,0,91,502,1,0,0,0, + 93,508,1,0,0,0,95,514,1,0,0,0,97,520,1,0,0,0,99,525,1,0,0,0,101, + 529,1,0,0,0,103,532,1,0,0,0,105,535,1,0,0,0,107,537,1,0,0,0,109, + 539,1,0,0,0,111,541,1,0,0,0,113,543,1,0,0,0,115,545,1,0,0,0,117, + 547,1,0,0,0,119,550,1,0,0,0,121,553,1,0,0,0,123,556,1,0,0,0,125, + 558,1,0,0,0,127,560,1,0,0,0,129,562,1,0,0,0,131,564,1,0,0,0,133, + 566,1,0,0,0,135,568,1,0,0,0,137,570,1,0,0,0,139,572,1,0,0,0,141, + 574,1,0,0,0,143,576,1,0,0,0,145,578,1,0,0,0,147,580,1,0,0,0,149, + 582,1,0,0,0,151,584,1,0,0,0,153,588,1,0,0,0,155,591,1,0,0,0,157, + 602,1,0,0,0,159,604,1,0,0,0,161,607,1,0,0,0,163,611,1,0,0,0,165, + 624,1,0,0,0,167,168,5,47,0,0,168,169,5,47,0,0,169,173,1,0,0,0,170, + 172,8,0,0,0,171,170,1,0,0,0,172,175,1,0,0,0,173,171,1,0,0,0,173, + 174,1,0,0,0,174,176,1,0,0,0,175,173,1,0,0,0,176,177,6,0,0,0,177, + 2,1,0,0,0,178,179,5,47,0,0,179,180,5,42,0,0,180,188,1,0,0,0,181, + 189,8,1,0,0,182,184,5,42,0,0,183,182,1,0,0,0,184,185,1,0,0,0,185, + 183,1,0,0,0,185,186,1,0,0,0,186,187,1,0,0,0,187,189,8,2,0,0,188, + 181,1,0,0,0,188,183,1,0,0,0,189,193,1,0,0,0,190,192,5,42,0,0,191, + 190,1,0,0,0,192,195,1,0,0,0,193,191,1,0,0,0,193,194,1,0,0,0,194, + 196,1,0,0,0,195,193,1,0,0,0,196,197,5,42,0,0,197,198,5,47,0,0,198, + 199,1,0,0,0,199,200,6,1,0,0,200,4,1,0,0,0,201,203,7,3,0,0,202,201, + 1,0,0,0,203,204,1,0,0,0,204,202,1,0,0,0,204,205,1,0,0,0,205,206, + 1,0,0,0,206,207,6,2,0,0,207,6,1,0,0,0,208,209,7,4,0,0,209,8,1,0, + 0,0,210,211,7,5,0,0,211,212,7,6,0,0,212,10,1,0,0,0,213,214,7,7,0, + 0,214,215,7,8,0,0,215,216,7,9,0,0,216,217,7,10,0,0,217,12,1,0,0, + 0,218,219,7,9,0,0,219,220,7,11,0,0,220,221,7,12,0,0,221,222,7,9, + 0,0,222,14,1,0,0,0,223,224,7,13,0,0,224,225,7,14,0,0,225,226,7,14, + 0,0,226,227,7,11,0,0,227,228,7,9,0,0,228,229,7,15,0,0,229,230,7, + 10,0,0,230,16,1,0,0,0,231,232,7,5,0,0,232,233,5,56,0,0,233,18,1, + 0,0,0,234,235,7,5,0,0,235,236,5,49,0,0,236,237,5,54,0,0,237,20,1, + 0,0,0,238,239,7,5,0,0,239,240,5,51,0,0,240,241,5,50,0,0,241,22,1, + 0,0,0,242,243,7,5,0,0,243,244,5,54,0,0,244,245,5,52,0,0,245,24,1, + 0,0,0,246,247,7,6,0,0,247,248,7,16,0,0,248,249,5,51,0,0,249,250, + 5,50,0,0,250,26,1,0,0,0,251,252,7,6,0,0,252,253,7,16,0,0,253,254, + 5,54,0,0,254,255,5,52,0,0,255,28,1,0,0,0,256,257,7,12,0,0,257,258, + 7,7,0,0,258,259,7,17,0,0,259,260,7,5,0,0,260,261,7,10,0,0,261,262, + 7,18,0,0,262,30,1,0,0,0,263,264,7,13,0,0,264,265,7,5,0,0,265,266, + 7,10,0,0,266,267,7,15,0,0,267,268,7,17,0,0,268,269,7,19,0,0,269, + 32,1,0,0,0,270,271,7,7,0,0,271,272,7,5,0,0,272,273,7,20,0,0,273, + 274,7,9,0,0,274,275,7,12,0,0,275,276,7,7,0,0,276,277,7,15,0,0,277, + 278,7,20,0,0,278,279,7,16,0,0,279,34,1,0,0,0,280,281,7,7,0,0,281, + 282,7,5,0,0,282,283,7,20,0,0,283,284,7,9,0,0,284,285,7,12,0,0,285, + 286,7,7,0,0,286,287,7,15,0,0,287,288,7,20,0,0,288,289,7,16,0,0,289, + 290,5,95,0,0,290,291,7,7,0,0,291,292,7,21,0,0,292,36,1,0,0,0,293, + 294,7,22,0,0,294,295,7,15,0,0,295,296,7,7,0,0,296,297,7,9,0,0,297, + 38,1,0,0,0,298,299,7,7,0,0,299,300,7,5,0,0,300,301,7,20,0,0,301, + 302,7,9,0,0,302,40,1,0,0,0,303,304,7,5,0,0,304,305,7,10,0,0,305, + 306,7,7,0,0,306,307,7,9,0,0,307,308,7,17,0,0,308,309,7,23,0,0,309, + 310,7,15,0,0,310,311,7,11,0,0,311,312,5,95,0,0,312,313,7,19,0,0, + 313,314,7,9,0,0,314,315,7,15,0,0,315,316,7,17,0,0,316,42,1,0,0,0, + 317,318,7,5,0,0,318,319,7,10,0,0,319,320,7,7,0,0,320,321,7,9,0,0, + 321,322,7,17,0,0,322,323,7,23,0,0,323,324,7,15,0,0,324,325,7,11, + 0,0,325,326,5,95,0,0,326,327,7,22,0,0,327,328,7,15,0,0,328,329,7, + 19,0,0,329,44,1,0,0,0,330,331,7,24,0,0,331,332,7,24,0,0,332,333, + 7,5,0,0,333,334,7,22,0,0,334,46,1,0,0,0,335,336,7,22,0,0,336,337, + 7,9,0,0,337,338,7,25,0,0,338,339,7,5,0,0,339,340,7,20,0,0,340,341, + 7,15,0,0,341,342,7,11,0,0,342,48,1,0,0,0,343,344,7,16,0,0,344,345, + 7,17,0,0,345,346,7,9,0,0,346,347,7,25,0,0,347,348,7,5,0,0,348,349, + 7,12,0,0,349,350,7,5,0,0,350,351,7,14,0,0,351,352,7,10,0,0,352,353, + 5,95,0,0,353,354,7,7,0,0,354,355,7,5,0,0,355,356,7,20,0,0,356,357, + 7,9,0,0,357,50,1,0,0,0,358,359,7,16,0,0,359,360,7,17,0,0,360,361, + 7,9,0,0,361,362,7,25,0,0,362,363,7,5,0,0,363,364,7,12,0,0,364,365, + 7,5,0,0,365,366,7,14,0,0,366,367,7,10,0,0,367,368,5,95,0,0,368,369, + 7,7,0,0,369,370,7,5,0,0,370,371,7,20,0,0,371,372,7,9,0,0,372,373, + 7,12,0,0,373,374,7,7,0,0,374,375,7,15,0,0,375,376,7,20,0,0,376,377, + 7,16,0,0,377,52,1,0,0,0,378,379,7,16,0,0,379,380,7,17,0,0,380,381, + 7,9,0,0,381,382,7,25,0,0,382,383,7,5,0,0,383,384,7,12,0,0,384,385, + 7,5,0,0,385,386,7,14,0,0,386,387,7,10,0,0,387,388,5,95,0,0,388,389, + 7,7,0,0,389,390,7,5,0,0,390,391,7,20,0,0,391,392,7,9,0,0,392,393, + 7,12,0,0,393,394,7,7,0,0,394,395,7,15,0,0,395,396,7,20,0,0,396,397, + 7,16,0,0,397,398,5,95,0,0,398,399,7,7,0,0,399,400,7,21,0,0,400,54, + 1,0,0,0,401,402,7,6,0,0,402,403,7,5,0,0,403,404,7,26,0,0,404,405, + 7,9,0,0,405,406,7,22,0,0,406,407,7,25,0,0,407,408,7,8,0,0,408,409, + 7,15,0,0,409,410,7,17,0,0,410,56,1,0,0,0,411,412,7,23,0,0,412,413, + 7,15,0,0,413,414,7,17,0,0,414,415,7,25,0,0,415,416,7,8,0,0,416,417, + 7,15,0,0,417,418,7,17,0,0,418,58,1,0,0,0,419,420,7,6,0,0,420,421, + 7,5,0,0,421,422,7,26,0,0,422,423,7,9,0,0,423,424,7,22,0,0,424,425, + 7,13,0,0,425,426,7,5,0,0,426,427,7,10,0,0,427,428,7,15,0,0,428,429, + 7,17,0,0,429,430,7,19,0,0,430,60,1,0,0,0,431,432,7,12,0,0,432,433, + 7,7,0,0,433,434,7,17,0,0,434,435,7,24,0,0,435,436,7,25,0,0,436,437, + 7,7,0,0,437,62,1,0,0,0,438,439,7,10,0,0,439,440,7,12,0,0,440,441, + 7,7,0,0,441,442,7,17,0,0,442,443,7,24,0,0,443,444,7,25,0,0,444,445, + 7,7,0,0,445,64,1,0,0,0,446,447,7,11,0,0,447,448,7,5,0,0,448,449, + 7,12,0,0,449,450,7,7,0,0,450,66,1,0,0,0,451,452,7,20,0,0,452,453, + 7,15,0,0,453,454,7,16,0,0,454,68,1,0,0,0,455,456,7,24,0,0,456,457, + 5,33,0,0,457,70,1,0,0,0,458,459,7,13,0,0,459,460,7,14,0,0,460,461, + 7,14,0,0,461,462,7,11,0,0,462,72,1,0,0,0,463,464,7,12,0,0,464,465, + 7,7,0,0,465,466,7,17,0,0,466,74,1,0,0,0,467,468,7,23,0,0,468,469, + 7,13,0,0,469,470,7,5,0,0,470,471,7,10,0,0,471,76,1,0,0,0,472,473, + 7,7,0,0,473,474,7,12,0,0,474,78,1,0,0,0,475,476,7,7,0,0,476,477, + 7,12,0,0,477,478,7,7,0,0,478,479,7,21,0,0,479,80,1,0,0,0,480,481, + 7,5,0,0,481,482,7,19,0,0,482,483,7,9,0,0,483,484,7,15,0,0,484,485, + 7,17,0,0,485,82,1,0,0,0,486,487,7,5,0,0,487,488,7,22,0,0,488,489, + 7,15,0,0,489,490,7,19,0,0,490,84,1,0,0,0,491,492,7,22,0,0,492,493, + 7,9,0,0,493,494,7,25,0,0,494,86,1,0,0,0,495,496,7,16,0,0,496,497, + 7,7,0,0,497,88,1,0,0,0,498,499,7,16,0,0,499,500,7,7,0,0,500,501, + 7,12,0,0,501,90,1,0,0,0,502,503,7,16,0,0,503,504,7,7,0,0,504,505, + 7,12,0,0,505,506,7,7,0,0,506,507,7,21,0,0,507,92,1,0,0,0,508,509, + 7,6,0,0,509,510,7,25,0,0,510,511,7,8,0,0,511,512,7,15,0,0,512,513, + 7,17,0,0,513,94,1,0,0,0,514,515,7,23,0,0,515,516,7,25,0,0,516,517, + 7,8,0,0,517,518,7,15,0,0,518,519,7,17,0,0,519,96,1,0,0,0,520,521, + 7,6,0,0,521,522,7,13,0,0,522,523,7,5,0,0,523,524,7,10,0,0,524,98, + 1,0,0,0,525,526,7,15,0,0,526,527,7,10,0,0,527,528,7,19,0,0,528,100, + 1,0,0,0,529,530,3,99,49,0,530,531,7,4,0,0,531,102,1,0,0,0,532,533, + 5,58,0,0,533,534,5,58,0,0,534,104,1,0,0,0,535,536,5,43,0,0,536,106, + 1,0,0,0,537,538,5,45,0,0,538,108,1,0,0,0,539,540,5,42,0,0,540,110, + 1,0,0,0,541,542,5,47,0,0,542,112,1,0,0,0,543,544,5,37,0,0,544,114, + 1,0,0,0,545,546,5,61,0,0,546,116,1,0,0,0,547,548,5,33,0,0,548,549, + 5,61,0,0,549,118,1,0,0,0,550,551,5,62,0,0,551,552,5,61,0,0,552,120, + 1,0,0,0,553,554,5,60,0,0,554,555,5,61,0,0,555,122,1,0,0,0,556,557, + 5,62,0,0,557,124,1,0,0,0,558,559,5,60,0,0,559,126,1,0,0,0,560,561, + 5,33,0,0,561,128,1,0,0,0,562,563,3,125,62,0,563,130,1,0,0,0,564, + 565,3,123,61,0,565,132,1,0,0,0,566,567,5,40,0,0,567,134,1,0,0,0, + 568,569,5,41,0,0,569,136,1,0,0,0,570,571,5,91,0,0,571,138,1,0,0, + 0,572,573,5,93,0,0,573,140,1,0,0,0,574,575,5,44,0,0,575,142,1,0, + 0,0,576,577,5,58,0,0,577,144,1,0,0,0,578,579,5,63,0,0,579,146,1, + 0,0,0,580,581,5,35,0,0,581,148,1,0,0,0,582,583,5,46,0,0,583,150, + 1,0,0,0,584,585,7,15,0,0,585,586,7,10,0,0,586,587,7,22,0,0,587,152, + 1,0,0,0,588,589,7,14,0,0,589,590,7,17,0,0,590,154,1,0,0,0,591,592, + 5,58,0,0,592,593,5,61,0,0,593,156,1,0,0,0,594,598,2,49,57,0,595, + 597,3,159,79,0,596,595,1,0,0,0,597,600,1,0,0,0,598,596,1,0,0,0,598, + 599,1,0,0,0,599,603,1,0,0,0,600,598,1,0,0,0,601,603,5,48,0,0,602, + 594,1,0,0,0,602,601,1,0,0,0,603,158,1,0,0,0,604,605,2,48,57,0,605, + 160,1,0,0,0,606,608,5,45,0,0,607,606,1,0,0,0,607,608,1,0,0,0,608, + 609,1,0,0,0,609,610,3,157,78,0,610,162,1,0,0,0,611,616,7,27,0,0, + 612,615,7,27,0,0,613,615,3,159,79,0,614,612,1,0,0,0,614,613,1,0, + 0,0,615,618,1,0,0,0,616,614,1,0,0,0,616,617,1,0,0,0,617,164,1,0, + 0,0,618,616,1,0,0,0,619,621,5,13,0,0,620,622,5,10,0,0,621,620,1, + 0,0,0,621,622,1,0,0,0,622,625,1,0,0,0,623,625,5,10,0,0,624,619,1, + 0,0,0,624,623,1,0,0,0,625,166,1,0,0,0,13,0,173,185,188,193,204,598, + 602,607,614,616,621,624,1,0,1,0 ] class SubstraitTypeLexer(Lexer): @@ -254,61 +261,63 @@ class SubstraitTypeLexer(Lexer): Interval_Day = 21 UUID = 22 Decimal = 23 - Precision_Timestamp = 24 - Precision_Timestamp_TZ = 25 - FixedChar = 26 - VarChar = 27 - FixedBinary = 28 - Struct = 29 - NStruct = 30 - List = 31 - Map = 32 - UserDefined = 33 - Bool = 34 - Str = 35 - VBin = 36 - Ts = 37 - TsTZ = 38 - IYear = 39 - IDay = 40 - Dec = 41 - PTs = 42 - PTsTZ = 43 - FChar = 44 - VChar = 45 - FBin = 46 - Any = 47 - AnyVar = 48 - DoubleColon = 49 - Plus = 50 - Minus = 51 - Asterisk = 52 - ForwardSlash = 53 - Percent = 54 - Eq = 55 - Ne = 56 - Gte = 57 - Lte = 58 - Gt = 59 - Lt = 60 - Bang = 61 - OAngleBracket = 62 - CAngleBracket = 63 - OParen = 64 - CParen = 65 - OBracket = 66 - CBracket = 67 - Comma = 68 - Colon = 69 - QMark = 70 - Hash = 71 - Dot = 72 - And = 73 - Or = 74 - Assign = 75 - Number = 76 - Identifier = 77 - Newline = 78 + Precision_Time = 24 + Precision_Timestamp = 25 + Precision_Timestamp_TZ = 26 + FixedChar = 27 + VarChar = 28 + FixedBinary = 29 + Struct = 30 + NStruct = 31 + List = 32 + Map = 33 + UserDefined = 34 + Bool = 35 + Str = 36 + VBin = 37 + Ts = 38 + TsTZ = 39 + IYear = 40 + IDay = 41 + Dec = 42 + PT = 43 + PTs = 44 + PTsTZ = 45 + FChar = 46 + VChar = 47 + FBin = 48 + Any = 49 + AnyVar = 50 + DoubleColon = 51 + Plus = 52 + Minus = 53 + Asterisk = 54 + ForwardSlash = 55 + Percent = 56 + Eq = 57 + Ne = 58 + Gte = 59 + Lte = 60 + Gt = 61 + Lt = 62 + Bang = 63 + OAngleBracket = 64 + CAngleBracket = 65 + OParen = 66 + CParen = 67 + OBracket = 68 + CBracket = 69 + Comma = 70 + Colon = 71 + QMark = 72 + Hash = 73 + Dot = 74 + And = 75 + Or = 76 + Assign = 77 + Number = 78 + Identifier = 79 + Newline = 80 channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ] @@ -318,40 +327,41 @@ class SubstraitTypeLexer(Lexer): "'IF'", "'THEN'", "'ELSE'", "'BOOLEAN'", "'I8'", "'I16'", "'I32'", "'I64'", "'FP32'", "'FP64'", "'STRING'", "'BINARY'", "'TIMESTAMP'", "'TIMESTAMP_TZ'", "'DATE'", "'TIME'", "'INTERVAL_YEAR'", "'INTERVAL_DAY'", - "'UUID'", "'DECIMAL'", "'PRECISION_TIMESTAMP'", "'PRECISION_TIMESTAMP_TZ'", - "'FIXEDCHAR'", "'VARCHAR'", "'FIXEDBINARY'", "'STRUCT'", "'NSTRUCT'", - "'LIST'", "'MAP'", "'U!'", "'BOOL'", "'STR'", "'VBIN'", "'TS'", - "'TSTZ'", "'IYEAR'", "'IDAY'", "'DEC'", "'PTS'", "'PTSTZ'", - "'FCHAR'", "'VCHAR'", "'FBIN'", "'ANY'", "'::'", "'+'", "'-'", - "'*'", "'/'", "'%'", "'='", "'!='", "'>='", "'<='", "'>'", "'<'", - "'!'", "'('", "')'", "'['", "']'", "','", "':'", "'?'", "'#'", - "'.'", "'AND'", "'OR'", "':='" ] + "'UUID'", "'DECIMAL'", "'PRECISION_TIME'", "'PRECISION_TIMESTAMP'", + "'PRECISION_TIMESTAMP_TZ'", "'FIXEDCHAR'", "'VARCHAR'", "'FIXEDBINARY'", + "'STRUCT'", "'NSTRUCT'", "'LIST'", "'MAP'", "'U!'", "'BOOL'", + "'STR'", "'VBIN'", "'TS'", "'TSTZ'", "'IYEAR'", "'IDAY'", "'DEC'", + "'PT'", "'PTS'", "'PTSTZ'", "'FCHAR'", "'VCHAR'", "'FBIN'", + "'ANY'", "'::'", "'+'", "'-'", "'*'", "'/'", "'%'", "'='", "'!='", + "'>='", "'<='", "'>'", "'<'", "'!'", "'('", "')'", "'['", "']'", + "','", "':'", "'?'", "'#'", "'.'", "'AND'", "'OR'", "':='" ] symbolicNames = [ "", "LineComment", "BlockComment", "Whitespace", "If", "Then", "Else", "Boolean", "I8", "I16", "I32", "I64", "FP32", "FP64", "String", "Binary", "Timestamp", "Timestamp_TZ", "Date", "Time", "Interval_Year", - "Interval_Day", "UUID", "Decimal", "Precision_Timestamp", "Precision_Timestamp_TZ", - "FixedChar", "VarChar", "FixedBinary", "Struct", "NStruct", - "List", "Map", "UserDefined", "Bool", "Str", "VBin", "Ts", "TsTZ", - "IYear", "IDay", "Dec", "PTs", "PTsTZ", "FChar", "VChar", "FBin", - "Any", "AnyVar", "DoubleColon", "Plus", "Minus", "Asterisk", - "ForwardSlash", "Percent", "Eq", "Ne", "Gte", "Lte", "Gt", "Lt", - "Bang", "OAngleBracket", "CAngleBracket", "OParen", "CParen", - "OBracket", "CBracket", "Comma", "Colon", "QMark", "Hash", "Dot", - "And", "Or", "Assign", "Number", "Identifier", "Newline" ] + "Interval_Day", "UUID", "Decimal", "Precision_Time", "Precision_Timestamp", + "Precision_Timestamp_TZ", "FixedChar", "VarChar", "FixedBinary", + "Struct", "NStruct", "List", "Map", "UserDefined", "Bool", "Str", + "VBin", "Ts", "TsTZ", "IYear", "IDay", "Dec", "PT", "PTs", "PTsTZ", + "FChar", "VChar", "FBin", "Any", "AnyVar", "DoubleColon", "Plus", + "Minus", "Asterisk", "ForwardSlash", "Percent", "Eq", "Ne", + "Gte", "Lte", "Gt", "Lt", "Bang", "OAngleBracket", "CAngleBracket", + "OParen", "CParen", "OBracket", "CBracket", "Comma", "Colon", + "QMark", "Hash", "Dot", "And", "Or", "Assign", "Number", "Identifier", + "Newline" ] ruleNames = [ "LineComment", "BlockComment", "Whitespace", "DIGIT", "If", "Then", "Else", "Boolean", "I8", "I16", "I32", "I64", "FP32", "FP64", "String", "Binary", "Timestamp", "Timestamp_TZ", "Date", "Time", "Interval_Year", "Interval_Day", "UUID", - "Decimal", "Precision_Timestamp", "Precision_Timestamp_TZ", + "Decimal", "Precision_Time", "Precision_Timestamp", "Precision_Timestamp_TZ", "FixedChar", "VarChar", "FixedBinary", "Struct", "NStruct", "List", "Map", "UserDefined", "Bool", "Str", "VBin", "Ts", - "TsTZ", "IYear", "IDay", "Dec", "PTs", "PTsTZ", "FChar", - "VChar", "FBin", "Any", "AnyVar", "DoubleColon", "Plus", - "Minus", "Asterisk", "ForwardSlash", "Percent", "Eq", - "Ne", "Gte", "Lte", "Gt", "Lt", "Bang", "OAngleBracket", + "TsTZ", "IYear", "IDay", "Dec", "PT", "PTs", "PTsTZ", + "FChar", "VChar", "FBin", "Any", "AnyVar", "DoubleColon", + "Plus", "Minus", "Asterisk", "ForwardSlash", "Percent", + "Eq", "Ne", "Gte", "Lte", "Gt", "Lt", "Bang", "OAngleBracket", "CAngleBracket", "OParen", "CParen", "OBracket", "CBracket", "Comma", "Colon", "QMark", "Hash", "Dot", "And", "Or", "Assign", "Int", "Digit", "Number", "Identifier", "Newline" ] @@ -360,7 +370,7 @@ class SubstraitTypeLexer(Lexer): def __init__(self, input=None, output:TextIO = sys.stdout): super().__init__(input, output) - self.checkVersion("4.13.1") + self.checkVersion("4.13.2") self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache()) self._actions = None self._predicates = None diff --git a/src/substrait/gen/antlr/SubstraitTypeListener.py b/src/substrait/gen/antlr/SubstraitTypeListener.py index c18e63e..734afe7 100644 --- a/src/substrait/gen/antlr/SubstraitTypeListener.py +++ b/src/substrait/gen/antlr/SubstraitTypeListener.py @@ -1,4 +1,4 @@ -# Generated from SubstraitType.g4 by ANTLR 4.13.1 +# Generated from SubstraitType.g4 by ANTLR 4.13.2 from antlr4 import * if "." in __name__: from .SubstraitTypeParser import SubstraitTypeParser @@ -206,6 +206,15 @@ def exitPrecisionIntervalDay(self, ctx:SubstraitTypeParser.PrecisionIntervalDayC pass + # Enter a parse tree produced by SubstraitTypeParser#precisionTime. + def enterPrecisionTime(self, ctx:SubstraitTypeParser.PrecisionTimeContext): + pass + + # Exit a parse tree produced by SubstraitTypeParser#precisionTime. + def exitPrecisionTime(self, ctx:SubstraitTypeParser.PrecisionTimeContext): + pass + + # Enter a parse tree produced by SubstraitTypeParser#precisionTimestamp. def enterPrecisionTimestamp(self, ctx:SubstraitTypeParser.PrecisionTimestampContext): pass diff --git a/src/substrait/gen/antlr/SubstraitTypeParser.py b/src/substrait/gen/antlr/SubstraitTypeParser.py index 48e4b12..4a50a08 100644 --- a/src/substrait/gen/antlr/SubstraitTypeParser.py +++ b/src/substrait/gen/antlr/SubstraitTypeParser.py @@ -1,4 +1,4 @@ -# Generated from SubstraitType.g4 by ANTLR 4.13.1 +# Generated from SubstraitType.g4 by ANTLR 4.13.2 # encoding: utf-8 from antlr4 import * from io import StringIO @@ -10,107 +10,110 @@ def serializedATN(): return [ - 4,1,78,268,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7, + 4,1,80,276,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7, 6,2,7,7,7,1,0,1,0,1,0,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1, 2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,3,2,38,8,2,1,3,1,3,3,3,42,8,3,1,3, 1,3,1,3,1,3,1,3,1,3,3,3,50,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,58,8, 3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,66,8,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3, 1,3,3,3,76,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,84,8,3,1,3,1,3,1,3,1, 3,1,3,1,3,3,3,92,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,100,8,3,1,3,1,3, - 1,3,1,3,5,3,106,8,3,10,3,12,3,109,9,3,1,3,1,3,1,3,1,3,3,3,115,8, - 3,1,3,1,3,1,3,1,3,1,3,1,3,5,3,123,8,3,10,3,12,3,126,9,3,1,3,1,3, - 1,3,1,3,3,3,132,8,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,140,8,3,1,3,1,3, - 1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,151,8,3,1,3,1,3,1,3,1,3,5,3,157, - 8,3,10,3,12,3,160,9,3,1,3,1,3,3,3,164,8,3,3,3,166,8,3,1,4,1,4,1, - 4,3,4,171,8,4,1,5,1,5,3,5,175,8,5,1,5,1,5,3,5,179,8,5,3,5,181,8, - 5,1,6,1,6,3,6,185,8,6,1,6,1,6,3,6,189,8,6,1,7,1,7,1,7,1,7,1,7,1, - 7,1,7,1,7,1,7,4,7,200,8,7,11,7,12,7,201,1,7,1,7,1,7,1,7,4,7,208, - 8,7,11,7,12,7,209,5,7,212,8,7,10,7,12,7,215,9,7,1,7,1,7,5,7,219, - 8,7,10,7,12,7,222,9,7,1,7,1,7,1,7,1,7,3,7,228,8,7,1,7,1,7,1,7,1, - 7,1,7,5,7,235,8,7,10,7,12,7,238,9,7,3,7,240,8,7,1,7,1,7,1,7,1,7, - 1,7,1,7,1,7,1,7,1,7,1,7,3,7,252,8,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7, - 1,7,1,7,5,7,263,8,7,10,7,12,7,266,9,7,1,7,0,1,14,8,0,2,4,6,8,10, - 12,14,0,1,3,0,50,53,55,60,73,74,324,0,16,1,0,0,0,2,19,1,0,0,0,4, - 37,1,0,0,0,6,165,1,0,0,0,8,170,1,0,0,0,10,180,1,0,0,0,12,188,1,0, - 0,0,14,251,1,0,0,0,16,17,3,14,7,0,17,18,5,0,0,1,18,1,1,0,0,0,19, - 20,3,12,6,0,20,21,5,0,0,1,21,3,1,0,0,0,22,38,5,7,0,0,23,38,5,8,0, - 0,24,38,5,9,0,0,25,38,5,10,0,0,26,38,5,11,0,0,27,38,5,12,0,0,28, - 38,5,13,0,0,29,38,5,14,0,0,30,38,5,15,0,0,31,38,5,16,0,0,32,38,5, - 17,0,0,33,38,5,18,0,0,34,38,5,19,0,0,35,38,5,20,0,0,36,38,5,22,0, - 0,37,22,1,0,0,0,37,23,1,0,0,0,37,24,1,0,0,0,37,25,1,0,0,0,37,26, - 1,0,0,0,37,27,1,0,0,0,37,28,1,0,0,0,37,29,1,0,0,0,37,30,1,0,0,0, - 37,31,1,0,0,0,37,32,1,0,0,0,37,33,1,0,0,0,37,34,1,0,0,0,37,35,1, - 0,0,0,37,36,1,0,0,0,38,5,1,0,0,0,39,41,5,26,0,0,40,42,5,70,0,0,41, - 40,1,0,0,0,41,42,1,0,0,0,42,43,1,0,0,0,43,44,5,60,0,0,44,45,3,8, - 4,0,45,46,5,59,0,0,46,166,1,0,0,0,47,49,5,27,0,0,48,50,5,70,0,0, - 49,48,1,0,0,0,49,50,1,0,0,0,50,51,1,0,0,0,51,52,5,60,0,0,52,53,3, - 8,4,0,53,54,5,59,0,0,54,166,1,0,0,0,55,57,5,28,0,0,56,58,5,70,0, - 0,57,56,1,0,0,0,57,58,1,0,0,0,58,59,1,0,0,0,59,60,5,60,0,0,60,61, - 3,8,4,0,61,62,5,59,0,0,62,166,1,0,0,0,63,65,5,23,0,0,64,66,5,70, - 0,0,65,64,1,0,0,0,65,66,1,0,0,0,66,67,1,0,0,0,67,68,5,60,0,0,68, - 69,3,8,4,0,69,70,5,68,0,0,70,71,3,8,4,0,71,72,5,59,0,0,72,166,1, - 0,0,0,73,75,5,21,0,0,74,76,5,70,0,0,75,74,1,0,0,0,75,76,1,0,0,0, - 76,77,1,0,0,0,77,78,5,60,0,0,78,79,3,8,4,0,79,80,5,59,0,0,80,166, - 1,0,0,0,81,83,5,24,0,0,82,84,5,70,0,0,83,82,1,0,0,0,83,84,1,0,0, - 0,84,85,1,0,0,0,85,86,5,60,0,0,86,87,3,8,4,0,87,88,5,59,0,0,88,166, - 1,0,0,0,89,91,5,25,0,0,90,92,5,70,0,0,91,90,1,0,0,0,91,92,1,0,0, - 0,92,93,1,0,0,0,93,94,5,60,0,0,94,95,3,8,4,0,95,96,5,59,0,0,96,166, - 1,0,0,0,97,99,5,29,0,0,98,100,5,70,0,0,99,98,1,0,0,0,99,100,1,0, - 0,0,100,101,1,0,0,0,101,102,5,60,0,0,102,107,3,14,7,0,103,104,5, - 68,0,0,104,106,3,14,7,0,105,103,1,0,0,0,106,109,1,0,0,0,107,105, - 1,0,0,0,107,108,1,0,0,0,108,110,1,0,0,0,109,107,1,0,0,0,110,111, - 5,59,0,0,111,166,1,0,0,0,112,114,5,30,0,0,113,115,5,70,0,0,114,113, - 1,0,0,0,114,115,1,0,0,0,115,116,1,0,0,0,116,117,5,60,0,0,117,118, - 5,77,0,0,118,124,3,14,7,0,119,120,5,68,0,0,120,121,5,77,0,0,121, - 123,3,14,7,0,122,119,1,0,0,0,123,126,1,0,0,0,124,122,1,0,0,0,124, - 125,1,0,0,0,125,127,1,0,0,0,126,124,1,0,0,0,127,128,5,59,0,0,128, - 166,1,0,0,0,129,131,5,31,0,0,130,132,5,70,0,0,131,130,1,0,0,0,131, - 132,1,0,0,0,132,133,1,0,0,0,133,134,5,60,0,0,134,135,3,14,7,0,135, - 136,5,59,0,0,136,166,1,0,0,0,137,139,5,32,0,0,138,140,5,70,0,0,139, - 138,1,0,0,0,139,140,1,0,0,0,140,141,1,0,0,0,141,142,5,60,0,0,142, - 143,3,14,7,0,143,144,5,68,0,0,144,145,3,14,7,0,145,146,5,59,0,0, - 146,166,1,0,0,0,147,148,5,33,0,0,148,150,5,77,0,0,149,151,5,70,0, - 0,150,149,1,0,0,0,150,151,1,0,0,0,151,163,1,0,0,0,152,153,5,60,0, - 0,153,158,3,14,7,0,154,155,5,68,0,0,155,157,3,14,7,0,156,154,1,0, - 0,0,157,160,1,0,0,0,158,156,1,0,0,0,158,159,1,0,0,0,159,161,1,0, - 0,0,160,158,1,0,0,0,161,162,5,59,0,0,162,164,1,0,0,0,163,152,1,0, - 0,0,163,164,1,0,0,0,164,166,1,0,0,0,165,39,1,0,0,0,165,47,1,0,0, - 0,165,55,1,0,0,0,165,63,1,0,0,0,165,73,1,0,0,0,165,81,1,0,0,0,165, - 89,1,0,0,0,165,97,1,0,0,0,165,112,1,0,0,0,165,129,1,0,0,0,165,137, - 1,0,0,0,165,147,1,0,0,0,166,7,1,0,0,0,167,171,5,76,0,0,168,171,5, - 77,0,0,169,171,3,14,7,0,170,167,1,0,0,0,170,168,1,0,0,0,170,169, - 1,0,0,0,171,9,1,0,0,0,172,174,5,47,0,0,173,175,5,70,0,0,174,173, - 1,0,0,0,174,175,1,0,0,0,175,181,1,0,0,0,176,178,5,48,0,0,177,179, - 5,70,0,0,178,177,1,0,0,0,178,179,1,0,0,0,179,181,1,0,0,0,180,172, - 1,0,0,0,180,176,1,0,0,0,181,11,1,0,0,0,182,184,3,4,2,0,183,185,5, - 70,0,0,184,183,1,0,0,0,184,185,1,0,0,0,185,189,1,0,0,0,186,189,3, - 6,3,0,187,189,3,10,5,0,188,182,1,0,0,0,188,186,1,0,0,0,188,187,1, - 0,0,0,189,13,1,0,0,0,190,191,6,7,-1,0,191,192,5,64,0,0,192,193,3, - 14,7,0,193,194,5,65,0,0,194,252,1,0,0,0,195,196,5,77,0,0,196,197, - 5,55,0,0,197,199,3,14,7,0,198,200,5,78,0,0,199,198,1,0,0,0,200,201, - 1,0,0,0,201,199,1,0,0,0,201,202,1,0,0,0,202,213,1,0,0,0,203,204, - 5,77,0,0,204,205,5,55,0,0,205,207,3,14,7,0,206,208,5,78,0,0,207, - 206,1,0,0,0,208,209,1,0,0,0,209,207,1,0,0,0,209,210,1,0,0,0,210, - 212,1,0,0,0,211,203,1,0,0,0,212,215,1,0,0,0,213,211,1,0,0,0,213, - 214,1,0,0,0,214,216,1,0,0,0,215,213,1,0,0,0,216,220,3,12,6,0,217, - 219,5,78,0,0,218,217,1,0,0,0,219,222,1,0,0,0,220,218,1,0,0,0,220, - 221,1,0,0,0,221,252,1,0,0,0,222,220,1,0,0,0,223,252,3,12,6,0,224, - 252,5,76,0,0,225,227,5,77,0,0,226,228,5,70,0,0,227,226,1,0,0,0,227, - 228,1,0,0,0,228,252,1,0,0,0,229,230,5,77,0,0,230,239,5,64,0,0,231, - 236,3,14,7,0,232,233,5,68,0,0,233,235,3,14,7,0,234,232,1,0,0,0,235, - 238,1,0,0,0,236,234,1,0,0,0,236,237,1,0,0,0,237,240,1,0,0,0,238, - 236,1,0,0,0,239,231,1,0,0,0,239,240,1,0,0,0,240,241,1,0,0,0,241, - 252,5,65,0,0,242,243,5,4,0,0,243,244,3,14,7,0,244,245,5,5,0,0,245, - 246,3,14,7,0,246,247,5,6,0,0,247,248,3,14,7,3,248,252,1,0,0,0,249, - 250,5,61,0,0,250,252,3,14,7,2,251,190,1,0,0,0,251,195,1,0,0,0,251, - 223,1,0,0,0,251,224,1,0,0,0,251,225,1,0,0,0,251,229,1,0,0,0,251, - 242,1,0,0,0,251,249,1,0,0,0,252,264,1,0,0,0,253,254,10,4,0,0,254, - 255,7,0,0,0,255,263,3,14,7,5,256,257,10,1,0,0,257,258,5,70,0,0,258, - 259,3,14,7,0,259,260,5,69,0,0,260,261,3,14,7,2,261,263,1,0,0,0,262, - 253,1,0,0,0,262,256,1,0,0,0,263,266,1,0,0,0,264,262,1,0,0,0,264, - 265,1,0,0,0,265,15,1,0,0,0,266,264,1,0,0,0,34,37,41,49,57,65,75, - 83,91,99,107,114,124,131,139,150,158,163,165,170,174,178,180,184, - 188,201,209,213,220,227,236,239,251,262,264 + 1,3,1,3,1,3,1,3,3,3,108,8,3,1,3,1,3,1,3,1,3,5,3,114,8,3,10,3,12, + 3,117,9,3,1,3,1,3,1,3,1,3,3,3,123,8,3,1,3,1,3,1,3,1,3,1,3,1,3,5, + 3,131,8,3,10,3,12,3,134,9,3,1,3,1,3,1,3,1,3,3,3,140,8,3,1,3,1,3, + 1,3,1,3,1,3,1,3,3,3,148,8,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3,1,3, + 3,3,159,8,3,1,3,1,3,1,3,1,3,5,3,165,8,3,10,3,12,3,168,9,3,1,3,1, + 3,3,3,172,8,3,3,3,174,8,3,1,4,1,4,1,4,3,4,179,8,4,1,5,1,5,3,5,183, + 8,5,1,5,1,5,3,5,187,8,5,3,5,189,8,5,1,6,1,6,3,6,193,8,6,1,6,1,6, + 3,6,197,8,6,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,4,7,208,8,7,11,7, + 12,7,209,1,7,1,7,1,7,1,7,4,7,216,8,7,11,7,12,7,217,5,7,220,8,7,10, + 7,12,7,223,9,7,1,7,1,7,5,7,227,8,7,10,7,12,7,230,9,7,1,7,1,7,1,7, + 1,7,3,7,236,8,7,1,7,1,7,1,7,1,7,1,7,5,7,243,8,7,10,7,12,7,246,9, + 7,3,7,248,8,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,3,7,260,8, + 7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,5,7,271,8,7,10,7,12,7,274, + 9,7,1,7,0,1,14,8,0,2,4,6,8,10,12,14,0,1,3,0,52,55,57,62,75,76,334, + 0,16,1,0,0,0,2,19,1,0,0,0,4,37,1,0,0,0,6,173,1,0,0,0,8,178,1,0,0, + 0,10,188,1,0,0,0,12,196,1,0,0,0,14,259,1,0,0,0,16,17,3,14,7,0,17, + 18,5,0,0,1,18,1,1,0,0,0,19,20,3,12,6,0,20,21,5,0,0,1,21,3,1,0,0, + 0,22,38,5,7,0,0,23,38,5,8,0,0,24,38,5,9,0,0,25,38,5,10,0,0,26,38, + 5,11,0,0,27,38,5,12,0,0,28,38,5,13,0,0,29,38,5,14,0,0,30,38,5,15, + 0,0,31,38,5,16,0,0,32,38,5,17,0,0,33,38,5,18,0,0,34,38,5,19,0,0, + 35,38,5,20,0,0,36,38,5,22,0,0,37,22,1,0,0,0,37,23,1,0,0,0,37,24, + 1,0,0,0,37,25,1,0,0,0,37,26,1,0,0,0,37,27,1,0,0,0,37,28,1,0,0,0, + 37,29,1,0,0,0,37,30,1,0,0,0,37,31,1,0,0,0,37,32,1,0,0,0,37,33,1, + 0,0,0,37,34,1,0,0,0,37,35,1,0,0,0,37,36,1,0,0,0,38,5,1,0,0,0,39, + 41,5,27,0,0,40,42,5,72,0,0,41,40,1,0,0,0,41,42,1,0,0,0,42,43,1,0, + 0,0,43,44,5,62,0,0,44,45,3,8,4,0,45,46,5,61,0,0,46,174,1,0,0,0,47, + 49,5,28,0,0,48,50,5,72,0,0,49,48,1,0,0,0,49,50,1,0,0,0,50,51,1,0, + 0,0,51,52,5,62,0,0,52,53,3,8,4,0,53,54,5,61,0,0,54,174,1,0,0,0,55, + 57,5,29,0,0,56,58,5,72,0,0,57,56,1,0,0,0,57,58,1,0,0,0,58,59,1,0, + 0,0,59,60,5,62,0,0,60,61,3,8,4,0,61,62,5,61,0,0,62,174,1,0,0,0,63, + 65,5,23,0,0,64,66,5,72,0,0,65,64,1,0,0,0,65,66,1,0,0,0,66,67,1,0, + 0,0,67,68,5,62,0,0,68,69,3,8,4,0,69,70,5,70,0,0,70,71,3,8,4,0,71, + 72,5,61,0,0,72,174,1,0,0,0,73,75,5,21,0,0,74,76,5,72,0,0,75,74,1, + 0,0,0,75,76,1,0,0,0,76,77,1,0,0,0,77,78,5,62,0,0,78,79,3,8,4,0,79, + 80,5,61,0,0,80,174,1,0,0,0,81,83,5,24,0,0,82,84,5,72,0,0,83,82,1, + 0,0,0,83,84,1,0,0,0,84,85,1,0,0,0,85,86,5,62,0,0,86,87,3,8,4,0,87, + 88,5,61,0,0,88,174,1,0,0,0,89,91,5,25,0,0,90,92,5,72,0,0,91,90,1, + 0,0,0,91,92,1,0,0,0,92,93,1,0,0,0,93,94,5,62,0,0,94,95,3,8,4,0,95, + 96,5,61,0,0,96,174,1,0,0,0,97,99,5,26,0,0,98,100,5,72,0,0,99,98, + 1,0,0,0,99,100,1,0,0,0,100,101,1,0,0,0,101,102,5,62,0,0,102,103, + 3,8,4,0,103,104,5,61,0,0,104,174,1,0,0,0,105,107,5,30,0,0,106,108, + 5,72,0,0,107,106,1,0,0,0,107,108,1,0,0,0,108,109,1,0,0,0,109,110, + 5,62,0,0,110,115,3,14,7,0,111,112,5,70,0,0,112,114,3,14,7,0,113, + 111,1,0,0,0,114,117,1,0,0,0,115,113,1,0,0,0,115,116,1,0,0,0,116, + 118,1,0,0,0,117,115,1,0,0,0,118,119,5,61,0,0,119,174,1,0,0,0,120, + 122,5,31,0,0,121,123,5,72,0,0,122,121,1,0,0,0,122,123,1,0,0,0,123, + 124,1,0,0,0,124,125,5,62,0,0,125,126,5,79,0,0,126,132,3,14,7,0,127, + 128,5,70,0,0,128,129,5,79,0,0,129,131,3,14,7,0,130,127,1,0,0,0,131, + 134,1,0,0,0,132,130,1,0,0,0,132,133,1,0,0,0,133,135,1,0,0,0,134, + 132,1,0,0,0,135,136,5,61,0,0,136,174,1,0,0,0,137,139,5,32,0,0,138, + 140,5,72,0,0,139,138,1,0,0,0,139,140,1,0,0,0,140,141,1,0,0,0,141, + 142,5,62,0,0,142,143,3,14,7,0,143,144,5,61,0,0,144,174,1,0,0,0,145, + 147,5,33,0,0,146,148,5,72,0,0,147,146,1,0,0,0,147,148,1,0,0,0,148, + 149,1,0,0,0,149,150,5,62,0,0,150,151,3,14,7,0,151,152,5,70,0,0,152, + 153,3,14,7,0,153,154,5,61,0,0,154,174,1,0,0,0,155,156,5,34,0,0,156, + 158,5,79,0,0,157,159,5,72,0,0,158,157,1,0,0,0,158,159,1,0,0,0,159, + 171,1,0,0,0,160,161,5,62,0,0,161,166,3,14,7,0,162,163,5,70,0,0,163, + 165,3,14,7,0,164,162,1,0,0,0,165,168,1,0,0,0,166,164,1,0,0,0,166, + 167,1,0,0,0,167,169,1,0,0,0,168,166,1,0,0,0,169,170,5,61,0,0,170, + 172,1,0,0,0,171,160,1,0,0,0,171,172,1,0,0,0,172,174,1,0,0,0,173, + 39,1,0,0,0,173,47,1,0,0,0,173,55,1,0,0,0,173,63,1,0,0,0,173,73,1, + 0,0,0,173,81,1,0,0,0,173,89,1,0,0,0,173,97,1,0,0,0,173,105,1,0,0, + 0,173,120,1,0,0,0,173,137,1,0,0,0,173,145,1,0,0,0,173,155,1,0,0, + 0,174,7,1,0,0,0,175,179,5,78,0,0,176,179,5,79,0,0,177,179,3,14,7, + 0,178,175,1,0,0,0,178,176,1,0,0,0,178,177,1,0,0,0,179,9,1,0,0,0, + 180,182,5,49,0,0,181,183,5,72,0,0,182,181,1,0,0,0,182,183,1,0,0, + 0,183,189,1,0,0,0,184,186,5,50,0,0,185,187,5,72,0,0,186,185,1,0, + 0,0,186,187,1,0,0,0,187,189,1,0,0,0,188,180,1,0,0,0,188,184,1,0, + 0,0,189,11,1,0,0,0,190,192,3,4,2,0,191,193,5,72,0,0,192,191,1,0, + 0,0,192,193,1,0,0,0,193,197,1,0,0,0,194,197,3,6,3,0,195,197,3,10, + 5,0,196,190,1,0,0,0,196,194,1,0,0,0,196,195,1,0,0,0,197,13,1,0,0, + 0,198,199,6,7,-1,0,199,200,5,66,0,0,200,201,3,14,7,0,201,202,5,67, + 0,0,202,260,1,0,0,0,203,204,5,79,0,0,204,205,5,57,0,0,205,207,3, + 14,7,0,206,208,5,80,0,0,207,206,1,0,0,0,208,209,1,0,0,0,209,207, + 1,0,0,0,209,210,1,0,0,0,210,221,1,0,0,0,211,212,5,79,0,0,212,213, + 5,57,0,0,213,215,3,14,7,0,214,216,5,80,0,0,215,214,1,0,0,0,216,217, + 1,0,0,0,217,215,1,0,0,0,217,218,1,0,0,0,218,220,1,0,0,0,219,211, + 1,0,0,0,220,223,1,0,0,0,221,219,1,0,0,0,221,222,1,0,0,0,222,224, + 1,0,0,0,223,221,1,0,0,0,224,228,3,12,6,0,225,227,5,80,0,0,226,225, + 1,0,0,0,227,230,1,0,0,0,228,226,1,0,0,0,228,229,1,0,0,0,229,260, + 1,0,0,0,230,228,1,0,0,0,231,260,3,12,6,0,232,260,5,78,0,0,233,235, + 5,79,0,0,234,236,5,72,0,0,235,234,1,0,0,0,235,236,1,0,0,0,236,260, + 1,0,0,0,237,238,5,79,0,0,238,247,5,66,0,0,239,244,3,14,7,0,240,241, + 5,70,0,0,241,243,3,14,7,0,242,240,1,0,0,0,243,246,1,0,0,0,244,242, + 1,0,0,0,244,245,1,0,0,0,245,248,1,0,0,0,246,244,1,0,0,0,247,239, + 1,0,0,0,247,248,1,0,0,0,248,249,1,0,0,0,249,260,5,67,0,0,250,251, + 5,4,0,0,251,252,3,14,7,0,252,253,5,5,0,0,253,254,3,14,7,0,254,255, + 5,6,0,0,255,256,3,14,7,3,256,260,1,0,0,0,257,258,5,63,0,0,258,260, + 3,14,7,2,259,198,1,0,0,0,259,203,1,0,0,0,259,231,1,0,0,0,259,232, + 1,0,0,0,259,233,1,0,0,0,259,237,1,0,0,0,259,250,1,0,0,0,259,257, + 1,0,0,0,260,272,1,0,0,0,261,262,10,4,0,0,262,263,7,0,0,0,263,271, + 3,14,7,5,264,265,10,1,0,0,265,266,5,72,0,0,266,267,3,14,7,0,267, + 268,5,71,0,0,268,269,3,14,7,2,269,271,1,0,0,0,270,261,1,0,0,0,270, + 264,1,0,0,0,271,274,1,0,0,0,272,270,1,0,0,0,272,273,1,0,0,0,273, + 15,1,0,0,0,274,272,1,0,0,0,35,37,41,49,57,65,75,83,91,99,107,115, + 122,132,139,147,158,166,171,173,178,182,186,188,192,196,209,217, + 221,228,235,244,247,259,270,272 ] class SubstraitTypeParser ( Parser ): @@ -128,11 +131,11 @@ class SubstraitTypeParser ( Parser ): "'I32'", "'I64'", "'FP32'", "'FP64'", "'STRING'", "'BINARY'", "'TIMESTAMP'", "'TIMESTAMP_TZ'", "'DATE'", "'TIME'", "'INTERVAL_YEAR'", "'INTERVAL_DAY'", "'UUID'", "'DECIMAL'", - "'PRECISION_TIMESTAMP'", "'PRECISION_TIMESTAMP_TZ'", + "'PRECISION_TIME'", "'PRECISION_TIMESTAMP'", "'PRECISION_TIMESTAMP_TZ'", "'FIXEDCHAR'", "'VARCHAR'", "'FIXEDBINARY'", "'STRUCT'", "'NSTRUCT'", "'LIST'", "'MAP'", "'U!'", "'BOOL'", "'STR'", "'VBIN'", "'TS'", "'TSTZ'", "'IYEAR'", "'IDAY'", "'DEC'", - "'PTS'", "'PTSTZ'", "'FCHAR'", "'VCHAR'", "'FBIN'", + "'PT'", "'PTS'", "'PTSTZ'", "'FCHAR'", "'VCHAR'", "'FBIN'", "'ANY'", "", "'::'", "'+'", "'-'", "'*'", "'/'", "'%'", "'='", "'!='", "'>='", "'<='", "'>'", "'<'", "'!'", "", "", "'('", "')'", @@ -143,13 +146,14 @@ class SubstraitTypeParser ( Parser ): "If", "Then", "Else", "Boolean", "I8", "I16", "I32", "I64", "FP32", "FP64", "String", "Binary", "Timestamp", "Timestamp_TZ", "Date", "Time", "Interval_Year", "Interval_Day", - "UUID", "Decimal", "Precision_Timestamp", "Precision_Timestamp_TZ", - "FixedChar", "VarChar", "FixedBinary", "Struct", "NStruct", - "List", "Map", "UserDefined", "Bool", "Str", "VBin", - "Ts", "TsTZ", "IYear", "IDay", "Dec", "PTs", "PTsTZ", - "FChar", "VChar", "FBin", "Any", "AnyVar", "DoubleColon", - "Plus", "Minus", "Asterisk", "ForwardSlash", "Percent", - "Eq", "Ne", "Gte", "Lte", "Gt", "Lt", "Bang", "OAngleBracket", + "UUID", "Decimal", "Precision_Time", "Precision_Timestamp", + "Precision_Timestamp_TZ", "FixedChar", "VarChar", + "FixedBinary", "Struct", "NStruct", "List", "Map", + "UserDefined", "Bool", "Str", "VBin", "Ts", "TsTZ", + "IYear", "IDay", "Dec", "PT", "PTs", "PTsTZ", "FChar", + "VChar", "FBin", "Any", "AnyVar", "DoubleColon", "Plus", + "Minus", "Asterisk", "ForwardSlash", "Percent", "Eq", + "Ne", "Gte", "Lte", "Gt", "Lt", "Bang", "OAngleBracket", "CAngleBracket", "OParen", "CParen", "OBracket", "CBracket", "Comma", "Colon", "QMark", "Hash", "Dot", "And", "Or", "Assign", "Number", "Identifier", "Newline" ] @@ -190,65 +194,67 @@ class SubstraitTypeParser ( Parser ): Interval_Day=21 UUID=22 Decimal=23 - Precision_Timestamp=24 - Precision_Timestamp_TZ=25 - FixedChar=26 - VarChar=27 - FixedBinary=28 - Struct=29 - NStruct=30 - List=31 - Map=32 - UserDefined=33 - Bool=34 - Str=35 - VBin=36 - Ts=37 - TsTZ=38 - IYear=39 - IDay=40 - Dec=41 - PTs=42 - PTsTZ=43 - FChar=44 - VChar=45 - FBin=46 - Any=47 - AnyVar=48 - DoubleColon=49 - Plus=50 - Minus=51 - Asterisk=52 - ForwardSlash=53 - Percent=54 - Eq=55 - Ne=56 - Gte=57 - Lte=58 - Gt=59 - Lt=60 - Bang=61 - OAngleBracket=62 - CAngleBracket=63 - OParen=64 - CParen=65 - OBracket=66 - CBracket=67 - Comma=68 - Colon=69 - QMark=70 - Hash=71 - Dot=72 - And=73 - Or=74 - Assign=75 - Number=76 - Identifier=77 - Newline=78 + Precision_Time=24 + Precision_Timestamp=25 + Precision_Timestamp_TZ=26 + FixedChar=27 + VarChar=28 + FixedBinary=29 + Struct=30 + NStruct=31 + List=32 + Map=33 + UserDefined=34 + Bool=35 + Str=36 + VBin=37 + Ts=38 + TsTZ=39 + IYear=40 + IDay=41 + Dec=42 + PT=43 + PTs=44 + PTsTZ=45 + FChar=46 + VChar=47 + FBin=48 + Any=49 + AnyVar=50 + DoubleColon=51 + Plus=52 + Minus=53 + Asterisk=54 + ForwardSlash=55 + Percent=56 + Eq=57 + Ne=58 + Gte=59 + Lte=60 + Gt=61 + Lt=62 + Bang=63 + OAngleBracket=64 + CAngleBracket=65 + OParen=66 + CParen=67 + OBracket=68 + CBracket=69 + Comma=70 + Colon=71 + QMark=72 + Hash=73 + Dot=74 + And=75 + Or=76 + Assign=77 + Number=78 + Identifier=79 + Newline=80 def __init__(self, input:TokenStream, output:TextIO = sys.stdout): super().__init__(input, output) - self.checkVersion("4.13.1") + self.checkVersion("4.13.2") self._interp = ParserATNSimulator(self, self.atn, self.decisionsToDFA, self.sharedContextCache) self._predicates = None @@ -870,35 +876,6 @@ def exitRule(self, listener:ParseTreeListener): listener.exitNStruct(self) - class VarCharContext(ParameterizedTypeContext): - - def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext - super().__init__(parser) - self.isnull = None # Token - self.length = None # NumericParameterContext - self.copyFrom(ctx) - - def VarChar(self): - return self.getToken(SubstraitTypeParser.VarChar, 0) - def Lt(self): - return self.getToken(SubstraitTypeParser.Lt, 0) - def Gt(self): - return self.getToken(SubstraitTypeParser.Gt, 0) - def numericParameter(self): - return self.getTypedRuleContext(SubstraitTypeParser.NumericParameterContext,0) - - def QMark(self): - return self.getToken(SubstraitTypeParser.QMark, 0) - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterVarChar" ): - listener.enterVarChar(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitVarChar" ): - listener.exitVarChar(self) - - class FixedBinaryContext(ParameterizedTypeContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext @@ -966,7 +943,64 @@ def exitRule(self, listener:ParseTreeListener): listener.exitUserDefined(self) - class PrecisionTimestampContext(ParameterizedTypeContext): + class FixedCharContext(ParameterizedTypeContext): + + def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext + super().__init__(parser) + self.isnull = None # Token + self.length = None # NumericParameterContext + self.copyFrom(ctx) + + def FixedChar(self): + return self.getToken(SubstraitTypeParser.FixedChar, 0) + def Lt(self): + return self.getToken(SubstraitTypeParser.Lt, 0) + def Gt(self): + return self.getToken(SubstraitTypeParser.Gt, 0) + def numericParameter(self): + return self.getTypedRuleContext(SubstraitTypeParser.NumericParameterContext,0) + + def QMark(self): + return self.getToken(SubstraitTypeParser.QMark, 0) + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterFixedChar" ): + listener.enterFixedChar(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitFixedChar" ): + listener.exitFixedChar(self) + + + class ListContext(ParameterizedTypeContext): + + def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext + super().__init__(parser) + self.isnull = None # Token + self.copyFrom(ctx) + + def List(self): + return self.getToken(SubstraitTypeParser.List, 0) + def Lt(self): + return self.getToken(SubstraitTypeParser.Lt, 0) + def expr(self): + return self.getTypedRuleContext(SubstraitTypeParser.ExprContext,0) + + def Gt(self): + return self.getToken(SubstraitTypeParser.Gt, 0) + def QMark(self): + return self.getToken(SubstraitTypeParser.QMark, 0) + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterList" ): + listener.enterList(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitList" ): + listener.exitList(self) + + + class PrecisionIntervalDayContext(ParameterizedTypeContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext super().__init__(parser) @@ -974,8 +1008,8 @@ def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypePar self.precision = None # NumericParameterContext self.copyFrom(ctx) - def Precision_Timestamp(self): - return self.getToken(SubstraitTypeParser.Precision_Timestamp, 0) + def Interval_Day(self): + return self.getToken(SubstraitTypeParser.Interval_Day, 0) def Lt(self): return self.getToken(SubstraitTypeParser.Lt, 0) def Gt(self): @@ -987,15 +1021,15 @@ def QMark(self): return self.getToken(SubstraitTypeParser.QMark, 0) def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPrecisionTimestamp" ): - listener.enterPrecisionTimestamp(self) + if hasattr( listener, "enterPrecisionIntervalDay" ): + listener.enterPrecisionIntervalDay(self) def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPrecisionTimestamp" ): - listener.exitPrecisionTimestamp(self) + if hasattr( listener, "exitPrecisionIntervalDay" ): + listener.exitPrecisionIntervalDay(self) - class FixedCharContext(ParameterizedTypeContext): + class VarCharContext(ParameterizedTypeContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext super().__init__(parser) @@ -1003,8 +1037,8 @@ def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypePar self.length = None # NumericParameterContext self.copyFrom(ctx) - def FixedChar(self): - return self.getToken(SubstraitTypeParser.FixedChar, 0) + def VarChar(self): + return self.getToken(SubstraitTypeParser.VarChar, 0) def Lt(self): return self.getToken(SubstraitTypeParser.Lt, 0) def Gt(self): @@ -1016,12 +1050,41 @@ def QMark(self): return self.getToken(SubstraitTypeParser.QMark, 0) def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterFixedChar" ): - listener.enterFixedChar(self) + if hasattr( listener, "enterVarChar" ): + listener.enterVarChar(self) def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitFixedChar" ): - listener.exitFixedChar(self) + if hasattr( listener, "exitVarChar" ): + listener.exitVarChar(self) + + + class PrecisionTimestampContext(ParameterizedTypeContext): + + def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext + super().__init__(parser) + self.isnull = None # Token + self.precision = None # NumericParameterContext + self.copyFrom(ctx) + + def Precision_Timestamp(self): + return self.getToken(SubstraitTypeParser.Precision_Timestamp, 0) + def Lt(self): + return self.getToken(SubstraitTypeParser.Lt, 0) + def Gt(self): + return self.getToken(SubstraitTypeParser.Gt, 0) + def numericParameter(self): + return self.getTypedRuleContext(SubstraitTypeParser.NumericParameterContext,0) + + def QMark(self): + return self.getToken(SubstraitTypeParser.QMark, 0) + + def enterRule(self, listener:ParseTreeListener): + if hasattr( listener, "enterPrecisionTimestamp" ): + listener.enterPrecisionTimestamp(self) + + def exitRule(self, listener:ParseTreeListener): + if hasattr( listener, "exitPrecisionTimestamp" ): + listener.exitPrecisionTimestamp(self) class DecimalContext(ParameterizedTypeContext): @@ -1059,32 +1122,33 @@ def exitRule(self, listener:ParseTreeListener): listener.exitDecimal(self) - class ListContext(ParameterizedTypeContext): + class PrecisionTimeContext(ParameterizedTypeContext): def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext super().__init__(parser) self.isnull = None # Token + self.precision = None # NumericParameterContext self.copyFrom(ctx) - def List(self): - return self.getToken(SubstraitTypeParser.List, 0) + def Precision_Time(self): + return self.getToken(SubstraitTypeParser.Precision_Time, 0) def Lt(self): return self.getToken(SubstraitTypeParser.Lt, 0) - def expr(self): - return self.getTypedRuleContext(SubstraitTypeParser.ExprContext,0) - def Gt(self): return self.getToken(SubstraitTypeParser.Gt, 0) + def numericParameter(self): + return self.getTypedRuleContext(SubstraitTypeParser.NumericParameterContext,0) + def QMark(self): return self.getToken(SubstraitTypeParser.QMark, 0) def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterList" ): - listener.enterList(self) + if hasattr( listener, "enterPrecisionTime" ): + listener.enterPrecisionTime(self) def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitList" ): - listener.exitList(self) + if hasattr( listener, "exitPrecisionTime" ): + listener.exitPrecisionTime(self) class MapContext(ParameterizedTypeContext): @@ -1122,35 +1186,6 @@ def exitRule(self, listener:ParseTreeListener): listener.exitMap(self) - class PrecisionIntervalDayContext(ParameterizedTypeContext): - - def __init__(self, parser, ctx:ParserRuleContext): # actually a SubstraitTypeParser.ParameterizedTypeContext - super().__init__(parser) - self.isnull = None # Token - self.precision = None # NumericParameterContext - self.copyFrom(ctx) - - def Interval_Day(self): - return self.getToken(SubstraitTypeParser.Interval_Day, 0) - def Lt(self): - return self.getToken(SubstraitTypeParser.Lt, 0) - def Gt(self): - return self.getToken(SubstraitTypeParser.Gt, 0) - def numericParameter(self): - return self.getTypedRuleContext(SubstraitTypeParser.NumericParameterContext,0) - - def QMark(self): - return self.getToken(SubstraitTypeParser.QMark, 0) - - def enterRule(self, listener:ParseTreeListener): - if hasattr( listener, "enterPrecisionIntervalDay" ): - listener.enterPrecisionIntervalDay(self) - - def exitRule(self, listener:ParseTreeListener): - if hasattr( listener, "exitPrecisionIntervalDay" ): - listener.exitPrecisionIntervalDay(self) - - def parameterizedType(self): @@ -1158,10 +1193,10 @@ def parameterizedType(self): self.enterRule(localctx, 6, self.RULE_parameterizedType) self._la = 0 # Token type try: - self.state = 165 + self.state = 173 self._errHandler.sync(self) token = self._input.LA(1) - if token in [26]: + if token in [27]: localctx = SubstraitTypeParser.FixedCharContext(self, localctx) self.enterOuterAlt(localctx, 1) self.state = 39 @@ -1169,7 +1204,7 @@ def parameterizedType(self): self.state = 41 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==70: + if _la==72: self.state = 40 localctx.isnull = self.match(SubstraitTypeParser.QMark) @@ -1181,7 +1216,7 @@ def parameterizedType(self): self.state = 45 self.match(SubstraitTypeParser.Gt) pass - elif token in [27]: + elif token in [28]: localctx = SubstraitTypeParser.VarCharContext(self, localctx) self.enterOuterAlt(localctx, 2) self.state = 47 @@ -1189,7 +1224,7 @@ def parameterizedType(self): self.state = 49 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==70: + if _la==72: self.state = 48 localctx.isnull = self.match(SubstraitTypeParser.QMark) @@ -1201,7 +1236,7 @@ def parameterizedType(self): self.state = 53 self.match(SubstraitTypeParser.Gt) pass - elif token in [28]: + elif token in [29]: localctx = SubstraitTypeParser.FixedBinaryContext(self, localctx) self.enterOuterAlt(localctx, 3) self.state = 55 @@ -1209,7 +1244,7 @@ def parameterizedType(self): self.state = 57 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==70: + if _la==72: self.state = 56 localctx.isnull = self.match(SubstraitTypeParser.QMark) @@ -1229,7 +1264,7 @@ def parameterizedType(self): self.state = 65 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==70: + if _la==72: self.state = 64 localctx.isnull = self.match(SubstraitTypeParser.QMark) @@ -1253,7 +1288,7 @@ def parameterizedType(self): self.state = 75 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==70: + if _la==72: self.state = 74 localctx.isnull = self.match(SubstraitTypeParser.QMark) @@ -1266,14 +1301,14 @@ def parameterizedType(self): self.match(SubstraitTypeParser.Gt) pass elif token in [24]: - localctx = SubstraitTypeParser.PrecisionTimestampContext(self, localctx) + localctx = SubstraitTypeParser.PrecisionTimeContext(self, localctx) self.enterOuterAlt(localctx, 6) self.state = 81 - self.match(SubstraitTypeParser.Precision_Timestamp) + self.match(SubstraitTypeParser.Precision_Time) self.state = 83 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==70: + if _la==72: self.state = 82 localctx.isnull = self.match(SubstraitTypeParser.QMark) @@ -1286,14 +1321,14 @@ def parameterizedType(self): self.match(SubstraitTypeParser.Gt) pass elif token in [25]: - localctx = SubstraitTypeParser.PrecisionTimestampTZContext(self, localctx) + localctx = SubstraitTypeParser.PrecisionTimestampContext(self, localctx) self.enterOuterAlt(localctx, 7) self.state = 89 - self.match(SubstraitTypeParser.Precision_Timestamp_TZ) + self.match(SubstraitTypeParser.Precision_Timestamp) self.state = 91 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==70: + if _la==72: self.state = 90 localctx.isnull = self.match(SubstraitTypeParser.QMark) @@ -1305,15 +1340,15 @@ def parameterizedType(self): self.state = 95 self.match(SubstraitTypeParser.Gt) pass - elif token in [29]: - localctx = SubstraitTypeParser.StructContext(self, localctx) + elif token in [26]: + localctx = SubstraitTypeParser.PrecisionTimestampTZContext(self, localctx) self.enterOuterAlt(localctx, 8) self.state = 97 - self.match(SubstraitTypeParser.Struct) + self.match(SubstraitTypeParser.Precision_Timestamp_TZ) self.state = 99 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==70: + if _la==72: self.state = 98 localctx.isnull = self.match(SubstraitTypeParser.QMark) @@ -1321,138 +1356,158 @@ def parameterizedType(self): self.state = 101 self.match(SubstraitTypeParser.Lt) self.state = 102 - self.expr(0) + localctx.precision = self.numericParameter() + self.state = 103 + self.match(SubstraitTypeParser.Gt) + pass + elif token in [30]: + localctx = SubstraitTypeParser.StructContext(self, localctx) + self.enterOuterAlt(localctx, 9) + self.state = 105 + self.match(SubstraitTypeParser.Struct) self.state = 107 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==68: - self.state = 103 + if _la==72: + self.state = 106 + localctx.isnull = self.match(SubstraitTypeParser.QMark) + + + self.state = 109 + self.match(SubstraitTypeParser.Lt) + self.state = 110 + self.expr(0) + self.state = 115 + self._errHandler.sync(self) + _la = self._input.LA(1) + while _la==70: + self.state = 111 self.match(SubstraitTypeParser.Comma) - self.state = 104 + self.state = 112 self.expr(0) - self.state = 109 + self.state = 117 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 110 + self.state = 118 self.match(SubstraitTypeParser.Gt) pass - elif token in [30]: + elif token in [31]: localctx = SubstraitTypeParser.NStructContext(self, localctx) - self.enterOuterAlt(localctx, 9) - self.state = 112 + self.enterOuterAlt(localctx, 10) + self.state = 120 self.match(SubstraitTypeParser.NStruct) - self.state = 114 + self.state = 122 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==70: - self.state = 113 + if _la==72: + self.state = 121 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 116 + self.state = 124 self.match(SubstraitTypeParser.Lt) - self.state = 117 + self.state = 125 self.match(SubstraitTypeParser.Identifier) - self.state = 118 + self.state = 126 self.expr(0) - self.state = 124 + self.state = 132 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==68: - self.state = 119 + while _la==70: + self.state = 127 self.match(SubstraitTypeParser.Comma) - self.state = 120 + self.state = 128 self.match(SubstraitTypeParser.Identifier) - self.state = 121 + self.state = 129 self.expr(0) - self.state = 126 + self.state = 134 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 127 + self.state = 135 self.match(SubstraitTypeParser.Gt) pass - elif token in [31]: + elif token in [32]: localctx = SubstraitTypeParser.ListContext(self, localctx) - self.enterOuterAlt(localctx, 10) - self.state = 129 + self.enterOuterAlt(localctx, 11) + self.state = 137 self.match(SubstraitTypeParser.List) - self.state = 131 + self.state = 139 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==70: - self.state = 130 + if _la==72: + self.state = 138 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 133 + self.state = 141 self.match(SubstraitTypeParser.Lt) - self.state = 134 + self.state = 142 self.expr(0) - self.state = 135 + self.state = 143 self.match(SubstraitTypeParser.Gt) pass - elif token in [32]: + elif token in [33]: localctx = SubstraitTypeParser.MapContext(self, localctx) - self.enterOuterAlt(localctx, 11) - self.state = 137 + self.enterOuterAlt(localctx, 12) + self.state = 145 self.match(SubstraitTypeParser.Map) - self.state = 139 + self.state = 147 self._errHandler.sync(self) _la = self._input.LA(1) - if _la==70: - self.state = 138 + if _la==72: + self.state = 146 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 141 + self.state = 149 self.match(SubstraitTypeParser.Lt) - self.state = 142 + self.state = 150 localctx.key = self.expr(0) - self.state = 143 + self.state = 151 self.match(SubstraitTypeParser.Comma) - self.state = 144 + self.state = 152 localctx.value = self.expr(0) - self.state = 145 + self.state = 153 self.match(SubstraitTypeParser.Gt) pass - elif token in [33]: + elif token in [34]: localctx = SubstraitTypeParser.UserDefinedContext(self, localctx) - self.enterOuterAlt(localctx, 12) - self.state = 147 + self.enterOuterAlt(localctx, 13) + self.state = 155 self.match(SubstraitTypeParser.UserDefined) - self.state = 148 + self.state = 156 self.match(SubstraitTypeParser.Identifier) - self.state = 150 + self.state = 158 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,14,self._ctx) + la_ = self._interp.adaptivePredict(self._input,15,self._ctx) if la_ == 1: - self.state = 149 + self.state = 157 localctx.isnull = self.match(SubstraitTypeParser.QMark) - self.state = 163 + self.state = 171 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,16,self._ctx) + la_ = self._interp.adaptivePredict(self._input,17,self._ctx) if la_ == 1: - self.state = 152 + self.state = 160 self.match(SubstraitTypeParser.Lt) - self.state = 153 + self.state = 161 self.expr(0) - self.state = 158 + self.state = 166 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==68: - self.state = 154 + while _la==70: + self.state = 162 self.match(SubstraitTypeParser.Comma) - self.state = 155 + self.state = 163 self.expr(0) - self.state = 160 + self.state = 168 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 161 + self.state = 169 self.match(SubstraitTypeParser.Gt) @@ -1547,27 +1602,27 @@ def numericParameter(self): localctx = SubstraitTypeParser.NumericParameterContext(self, self._ctx, self.state) self.enterRule(localctx, 8, self.RULE_numericParameter) try: - self.state = 170 + self.state = 178 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,18,self._ctx) + la_ = self._interp.adaptivePredict(self._input,19,self._ctx) if la_ == 1: localctx = SubstraitTypeParser.NumericLiteralContext(self, localctx) self.enterOuterAlt(localctx, 1) - self.state = 167 + self.state = 175 self.match(SubstraitTypeParser.Number) pass elif la_ == 2: localctx = SubstraitTypeParser.NumericParameterNameContext(self, localctx) self.enterOuterAlt(localctx, 2) - self.state = 168 + self.state = 176 self.match(SubstraitTypeParser.Identifier) pass elif la_ == 3: localctx = SubstraitTypeParser.NumericExpressionContext(self, localctx) self.enterOuterAlt(localctx, 3) - self.state = 169 + self.state = 177 self.expr(0) pass @@ -1617,31 +1672,31 @@ def anyType(self): localctx = SubstraitTypeParser.AnyTypeContext(self, self._ctx, self.state) self.enterRule(localctx, 10, self.RULE_anyType) try: - self.state = 180 + self.state = 188 self._errHandler.sync(self) token = self._input.LA(1) - if token in [47]: + if token in [49]: self.enterOuterAlt(localctx, 1) - self.state = 172 + self.state = 180 self.match(SubstraitTypeParser.Any) - self.state = 174 + self.state = 182 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,19,self._ctx) + la_ = self._interp.adaptivePredict(self._input,20,self._ctx) if la_ == 1: - self.state = 173 + self.state = 181 localctx.isnull = self.match(SubstraitTypeParser.QMark) pass - elif token in [48]: + elif token in [50]: self.enterOuterAlt(localctx, 2) - self.state = 176 + self.state = 184 self.match(SubstraitTypeParser.AnyVar) - self.state = 178 + self.state = 186 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,20,self._ctx) + la_ = self._interp.adaptivePredict(self._input,21,self._ctx) if la_ == 1: - self.state = 177 + self.state = 185 localctx.isnull = self.match(SubstraitTypeParser.QMark) @@ -1700,30 +1755,30 @@ def typeDef(self): localctx = SubstraitTypeParser.TypeDefContext(self, self._ctx, self.state) self.enterRule(localctx, 12, self.RULE_typeDef) try: - self.state = 188 + self.state = 196 self._errHandler.sync(self) token = self._input.LA(1) if token in [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22]: self.enterOuterAlt(localctx, 1) - self.state = 182 + self.state = 190 self.scalarType() - self.state = 184 + self.state = 192 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,22,self._ctx) + la_ = self._interp.adaptivePredict(self._input,23,self._ctx) if la_ == 1: - self.state = 183 + self.state = 191 localctx.isnull = self.match(SubstraitTypeParser.QMark) pass - elif token in [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33]: + elif token in [21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34]: self.enterOuterAlt(localctx, 2) - self.state = 186 + self.state = 194 self.parameterizedType() pass - elif token in [47, 48]: + elif token in [49, 50]: self.enterOuterAlt(localctx, 3) - self.state = 187 + self.state = 195 self.anyType() pass else: @@ -2050,19 +2105,19 @@ def expr(self, _p:int=0): self._la = 0 # Token type try: self.enterOuterAlt(localctx, 1) - self.state = 251 + self.state = 259 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,31,self._ctx) + la_ = self._interp.adaptivePredict(self._input,32,self._ctx) if la_ == 1: localctx = SubstraitTypeParser.ParenExpressionContext(self, localctx) self._ctx = localctx _prevctx = localctx - self.state = 191 + self.state = 199 self.match(SubstraitTypeParser.OParen) - self.state = 192 + self.state = 200 self.expr(0) - self.state = 193 + self.state = 201 self.match(SubstraitTypeParser.CParen) pass @@ -2070,62 +2125,62 @@ def expr(self, _p:int=0): localctx = SubstraitTypeParser.MultilineDefinitionContext(self, localctx) self._ctx = localctx _prevctx = localctx - self.state = 195 + self.state = 203 self.match(SubstraitTypeParser.Identifier) - self.state = 196 + self.state = 204 self.match(SubstraitTypeParser.Eq) - self.state = 197 + self.state = 205 self.expr(0) - self.state = 199 + self.state = 207 self._errHandler.sync(self) _la = self._input.LA(1) while True: - self.state = 198 + self.state = 206 self.match(SubstraitTypeParser.Newline) - self.state = 201 + self.state = 209 self._errHandler.sync(self) _la = self._input.LA(1) - if not (_la==78): + if not (_la==80): break - self.state = 213 + self.state = 221 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==77: - self.state = 203 + while _la==79: + self.state = 211 self.match(SubstraitTypeParser.Identifier) - self.state = 204 + self.state = 212 self.match(SubstraitTypeParser.Eq) - self.state = 205 + self.state = 213 self.expr(0) - self.state = 207 + self.state = 215 self._errHandler.sync(self) _la = self._input.LA(1) while True: - self.state = 206 + self.state = 214 self.match(SubstraitTypeParser.Newline) - self.state = 209 + self.state = 217 self._errHandler.sync(self) _la = self._input.LA(1) - if not (_la==78): + if not (_la==80): break - self.state = 215 + self.state = 223 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 216 + self.state = 224 localctx.finalType = self.typeDef() - self.state = 220 + self.state = 228 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,27,self._ctx) + _alt = self._interp.adaptivePredict(self._input,28,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: - self.state = 217 + self.state = 225 self.match(SubstraitTypeParser.Newline) - self.state = 222 + self.state = 230 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,27,self._ctx) + _alt = self._interp.adaptivePredict(self._input,28,self._ctx) pass @@ -2133,7 +2188,7 @@ def expr(self, _p:int=0): localctx = SubstraitTypeParser.TypeLiteralContext(self, localctx) self._ctx = localctx _prevctx = localctx - self.state = 223 + self.state = 231 self.typeDef() pass @@ -2141,7 +2196,7 @@ def expr(self, _p:int=0): localctx = SubstraitTypeParser.LiteralNumberContext(self, localctx) self._ctx = localctx _prevctx = localctx - self.state = 224 + self.state = 232 self.match(SubstraitTypeParser.Number) pass @@ -2149,13 +2204,13 @@ def expr(self, _p:int=0): localctx = SubstraitTypeParser.ParameterNameContext(self, localctx) self._ctx = localctx _prevctx = localctx - self.state = 225 + self.state = 233 self.match(SubstraitTypeParser.Identifier) - self.state = 227 + self.state = 235 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,28,self._ctx) + la_ = self._interp.adaptivePredict(self._input,29,self._ctx) if la_ == 1: - self.state = 226 + self.state = 234 localctx.isnull = self.match(SubstraitTypeParser.QMark) @@ -2165,31 +2220,31 @@ def expr(self, _p:int=0): localctx = SubstraitTypeParser.FunctionCallContext(self, localctx) self._ctx = localctx _prevctx = localctx - self.state = 229 + self.state = 237 self.match(SubstraitTypeParser.Identifier) - self.state = 230 + self.state = 238 self.match(SubstraitTypeParser.OParen) - self.state = 239 + self.state = 247 self._errHandler.sync(self) _la = self._input.LA(1) - if (((_la) & ~0x3f) == 0 and ((1 << _la) & 2306265238858629008) != 0) or ((((_la - 64)) & ~0x3f) == 0 and ((1 << (_la - 64)) & 12289) != 0): - self.state = 231 + if (((_la) & ~0x3f) == 0 and ((1 << _la) & -9221683152634773616) != 0) or ((((_la - 66)) & ~0x3f) == 0 and ((1 << (_la - 66)) & 12289) != 0): + self.state = 239 self.expr(0) - self.state = 236 + self.state = 244 self._errHandler.sync(self) _la = self._input.LA(1) - while _la==68: - self.state = 232 + while _la==70: + self.state = 240 self.match(SubstraitTypeParser.Comma) - self.state = 233 + self.state = 241 self.expr(0) - self.state = 238 + self.state = 246 self._errHandler.sync(self) _la = self._input.LA(1) - self.state = 241 + self.state = 249 self.match(SubstraitTypeParser.CParen) pass @@ -2197,17 +2252,17 @@ def expr(self, _p:int=0): localctx = SubstraitTypeParser.IfExprContext(self, localctx) self._ctx = localctx _prevctx = localctx - self.state = 242 + self.state = 250 self.match(SubstraitTypeParser.If) - self.state = 243 + self.state = 251 localctx.ifExpr = self.expr(0) - self.state = 244 + self.state = 252 self.match(SubstraitTypeParser.Then) - self.state = 245 + self.state = 253 localctx.thenExpr = self.expr(0) - self.state = 246 + self.state = 254 self.match(SubstraitTypeParser.Else) - self.state = 247 + self.state = 255 localctx.elseExpr = self.expr(3) pass @@ -2216,42 +2271,42 @@ def expr(self, _p:int=0): self._ctx = localctx _prevctx = localctx - self.state = 249 + self.state = 257 self.match(SubstraitTypeParser.Bang) - self.state = 250 + self.state = 258 self.expr(2) pass self._ctx.stop = self._input.LT(-1) - self.state = 264 + self.state = 272 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,33,self._ctx) + _alt = self._interp.adaptivePredict(self._input,34,self._ctx) while _alt!=2 and _alt!=ATN.INVALID_ALT_NUMBER: if _alt==1: if self._parseListeners is not None: self.triggerExitRuleEvent() _prevctx = localctx - self.state = 262 + self.state = 270 self._errHandler.sync(self) - la_ = self._interp.adaptivePredict(self._input,32,self._ctx) + la_ = self._interp.adaptivePredict(self._input,33,self._ctx) if la_ == 1: localctx = SubstraitTypeParser.BinaryExprContext(self, SubstraitTypeParser.ExprContext(self, _parentctx, _parentState)) localctx.left = _prevctx self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) - self.state = 253 + self.state = 261 if not self.precpred(self._ctx, 4): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 4)") - self.state = 254 + self.state = 262 localctx.op = self._input.LT(1) _la = self._input.LA(1) - if not(((((_la - 50)) & ~0x3f) == 0 and ((1 << (_la - 50)) & 25167855) != 0)): + if not(((((_la - 52)) & ~0x3f) == 0 and ((1 << (_la - 52)) & 25167855) != 0)): localctx.op = self._errHandler.recoverInline(self) else: self._errHandler.reportMatch(self) self.consume() - self.state = 255 + self.state = 263 localctx.right = self.expr(5) pass @@ -2259,24 +2314,24 @@ def expr(self, _p:int=0): localctx = SubstraitTypeParser.TernaryContext(self, SubstraitTypeParser.ExprContext(self, _parentctx, _parentState)) localctx.ifExpr = _prevctx self.pushNewRecursionContext(localctx, _startState, self.RULE_expr) - self.state = 256 + self.state = 264 if not self.precpred(self._ctx, 1): from antlr4.error.Errors import FailedPredicateException raise FailedPredicateException(self, "self.precpred(self._ctx, 1)") - self.state = 257 + self.state = 265 self.match(SubstraitTypeParser.QMark) - self.state = 258 + self.state = 266 localctx.thenExpr = self.expr(0) - self.state = 259 + self.state = 267 self.match(SubstraitTypeParser.Colon) - self.state = 260 + self.state = 268 localctx.elseExpr = self.expr(2) pass - self.state = 266 + self.state = 274 self._errHandler.sync(self) - _alt = self._interp.adaptivePredict(self._input,33,self._ctx) + _alt = self._interp.adaptivePredict(self._input,34,self._ctx) except RecognitionException as re: localctx.exception = re From 804655b8f8a56f27e935a076278dbe6a9b0a65af Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Wed, 29 Oct 2025 14:21:50 -0400 Subject: [PATCH 14/18] feat: CICD check for generated code Closes #120 --- .devcontainer/devcontainer.json | 2 +- .github/workflows/codegen-check.yml | 44 +++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/codegen-check.yml diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 6dd4da6..2a5d3ff 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -14,7 +14,7 @@ // "forwardPorts": [], // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "uv venv --clear && uv sync --extra test", + "postCreateCommand": "uv venv --clear && uv sync --extra test --extra gen_proto", // Configure tool-specific properties. "customizations": { diff --git a/.github/workflows/codegen-check.yml b/.github/workflows/codegen-check.yml new file mode 100644 index 0000000..299fd7c --- /dev/null +++ b/.github/workflows/codegen-check.yml @@ -0,0 +1,44 @@ +name: Code Generation Check + +on: + pull_request: + +permissions: + contents: read + +jobs: + codegen-check: + name: Verify Code Generation + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v5 + with: + submodules: recursive + + - name: Run code generation in devcontainer + uses: devcontainers/ci@v0.3 + with: + runCmd: | + # Ensure dependencies are installed + uv sync --extra test --extra gen_proto + # Run all code generation steps + make antlr + ./gen_proto.sh + make codegen-extensions + + - name: Check for uncommitted changes (ignoring timestamps) + run: | + # Check for diffs, ignoring timestamp lines + if ! git diff -I '#.*timestamp:.*' --quiet --exit-code src/substrait/gen/; then + echo "Code generation produced changes. Generated code is out of sync!" + echo "" + git diff -I '#.*timestamp:.*' src/substrait/gen/ + echo "" + echo "To fix this, run:" + echo " make antlr" + echo " ./gen_proto.sh" + echo " make codegen-extensions" + echo "Then commit the changes." + exit 1 + fi From 9e7cb06b223423e2779bada1d8d2e7787d6bed39 Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Wed, 29 Oct 2025 14:31:19 -0400 Subject: [PATCH 15/18] fix: correct codegen --- src/substrait/gen/json/simple_extensions.py | 2 +- src/substrait/gen/proto/__init__.py | 0 src/substrait/gen/proto/__init__.pyi | 9 - src/substrait/gen/proto/algebra_pb2.py | 705 +-- src/substrait/gen/proto/algebra_pb2.pyi | 4384 +++++++++-------- src/substrait/gen/proto/capabilities_pb2.py | 45 +- src/substrait/gen/proto/capabilities_pb2.pyi | 45 +- .../gen/proto/extended_expression_pb2.py | 57 +- .../gen/proto/extended_expression_pb2.pyi | 69 +- .../gen/proto/extensions/__init__.py | 0 .../gen/proto/extensions/__init__.pyi | 1 - .../gen/proto/extensions/extensions_pb2.py | 81 +- .../gen/proto/extensions/extensions_pb2.pyi | 192 +- src/substrait/gen/proto/function_pb2.py | 103 +- src/substrait/gen/proto/function_pb2.pyi | 422 +- .../gen/proto/parameterized_types_pb2.py | 131 +- .../gen/proto/parameterized_types_pb2.pyi | 567 +-- src/substrait/gen/proto/plan_pb2.py | 67 +- src/substrait/gen/proto/plan_pb2.pyi | 131 +- .../gen/proto/type_expressions_pb2.py | 143 +- .../gen/proto/type_expressions_pb2.pyi | 702 ++- src/substrait/gen/proto/type_pb2.py | 185 +- src/substrait/gen/proto/type_pb2.pyi | 718 +-- 23 files changed, 4505 insertions(+), 4254 deletions(-) delete mode 100644 src/substrait/gen/proto/__init__.py delete mode 100644 src/substrait/gen/proto/__init__.pyi delete mode 100644 src/substrait/gen/proto/extensions/__init__.py delete mode 100644 src/substrait/gen/proto/extensions/__init__.pyi diff --git a/src/substrait/gen/json/simple_extensions.py b/src/substrait/gen/json/simple_extensions.py index 996d6ff..e356789 100644 --- a/src/substrait/gen/json/simple_extensions.py +++ b/src/substrait/gen/json/simple_extensions.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: simple_extensions_schema.yaml -# timestamp: 2025-10-24T17:55:30+00:00 +# timestamp: 2025-10-29T18:31:02+00:00 from __future__ import annotations diff --git a/src/substrait/gen/proto/__init__.py b/src/substrait/gen/proto/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/substrait/gen/proto/__init__.pyi b/src/substrait/gen/proto/__init__.pyi deleted file mode 100644 index 736ca9f..0000000 --- a/src/substrait/gen/proto/__init__.pyi +++ /dev/null @@ -1,9 +0,0 @@ -from . import algebra_pb2 -from . import capabilities_pb2 -from . import extended_expression_pb2 -from . import extensions -from . import function_pb2 -from . import parameterized_types_pb2 -from . import plan_pb2 -from . import type_expressions_pb2 -from . import type_pb2 diff --git a/src/substrait/gen/proto/algebra_pb2.py b/src/substrait/gen/proto/algebra_pb2.py index d1f4f89..948d3a5 100644 --- a/src/substrait/gen/proto/algebra_pb2.py +++ b/src/substrait/gen/proto/algebra_pb2.py @@ -1,347 +1,370 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: proto/algebra.proto +# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 5, + '', + 'proto/algebra.proto' +) +# @@protoc_insertion_point(imports) + _sym_db = _symbol_database.Default() + + from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 -from ..proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 -from ..proto import type_pb2 as proto_dot_type__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13proto/algebra.proto\x12\x05proto\x1a\x19google/protobuf/any.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/type.proto"\xba\x0c\n\tRelCommon\x121\n\x06direct\x18\x01 \x01(\x0b2\x17.proto.RelCommon.DirectH\x00R\x06direct\x12+\n\x04emit\x18\x02 \x01(\x0b2\x15.proto.RelCommon.EmitH\x00R\x04emit\x12)\n\x04hint\x18\x03 \x01(\x0b2\x15.proto.RelCommon.HintR\x04hint\x12R\n\x12advanced_extension\x18\x04 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x08\n\x06Direct\x1a-\n\x04Emit\x12%\n\x0eoutput_mapping\x18\x01 \x03(\x05R\routputMapping\x1a\x87\n\n\x04Hint\x121\n\x05stats\x18\x01 \x01(\x0b2\x1b.proto.RelCommon.Hint.StatsR\x05stats\x12G\n\nconstraint\x18\x02 \x01(\x0b2\'.proto.RelCommon.Hint.RuntimeConstraintR\nconstraint\x12\x14\n\x05alias\x18\x03 \x01(\tR\x05alias\x12!\n\x0coutput_names\x18\x04 \x03(\tR\x0boutputNames\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x12U\n\x12saved_computations\x18\x0b \x03(\x0b2&.proto.RelCommon.Hint.SavedComputationR\x11savedComputations\x12X\n\x13loaded_computations\x18\x0c \x03(\x0b2\'.proto.RelCommon.Hint.LoadedComputationR\x12loadedComputations\x1a\x99\x01\n\x05Stats\x12\x1b\n\trow_count\x18\x01 \x01(\x01R\x08rowCount\x12\x1f\n\x0brecord_size\x18\x02 \x01(\x01R\nrecordSize\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1ag\n\x11RuntimeConstraint\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xc8\x01\n\x10SavedComputation\x12%\n\x0ecomputation_id\x18\x01 \x01(\x05R\rcomputationId\x129\n\x04type\x18\x02 \x01(\x0e2%.proto.RelCommon.Hint.ComputationTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xdc\x01\n\x11LoadedComputation\x128\n\x18computation_id_reference\x18\x01 \x01(\x05R\x16computationIdReference\x129\n\x04type\x18\x02 \x01(\x0e2%.proto.RelCommon.Hint.ComputationTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\x95\x01\n\x0fComputationType\x12 \n\x1cCOMPUTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aCOMPUTATION_TYPE_HASHTABLE\x10\x01\x12!\n\x1dCOMPUTATION_TYPE_BLOOM_FILTER\x10\x02\x12\x1d\n\x18COMPUTATION_TYPE_UNKNOWN\x10\x8fNB\x0b\n\temit_kind"\x85\x14\n\x07ReadRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x123\n\x0bbase_schema\x18\x02 \x01(\x0b2\x12.proto.NamedStructR\nbaseSchema\x12)\n\x06filter\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x06filter\x12?\n\x12best_effort_filter\x18\x0b \x01(\x0b2\x11.proto.ExpressionR\x10bestEffortFilter\x12@\n\nprojection\x18\x04 \x01(\x0b2 .proto.Expression.MaskExpressionR\nprojection\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x12B\n\rvirtual_table\x18\x05 \x01(\x0b2\x1b.proto.ReadRel.VirtualTableH\x00R\x0cvirtualTable\x12<\n\x0blocal_files\x18\x06 \x01(\x0b2\x19.proto.ReadRel.LocalFilesH\x00R\nlocalFiles\x12<\n\x0bnamed_table\x18\x07 \x01(\x0b2\x19.proto.ReadRel.NamedTableH\x00R\nnamedTable\x12H\n\x0fextension_table\x18\x08 \x01(\x0b2\x1d.proto.ReadRel.ExtensionTableH\x00R\x0eextensionTable\x12B\n\riceberg_table\x18\t \x01(\x0b2\x1b.proto.ReadRel.IcebergTableH\x00R\x0cicebergTable\x1av\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xfc\x01\n\x0cIcebergTable\x12F\n\x06direct\x18\x01 \x01(\x0b2,.proto.ReadRel.IcebergTable.MetadataFileReadH\x00R\x06direct\x1a\x95\x01\n\x10MetadataFileRead\x12!\n\x0cmetadata_uri\x18\x01 \x01(\tR\x0bmetadataUri\x12!\n\x0bsnapshot_id\x18\x02 \x01(\tH\x00R\nsnapshotId\x12/\n\x12snapshot_timestamp\x18\x03 \x01(\x03H\x00R\x11snapshotTimestampB\n\n\x08snapshotB\x0c\n\ntable_type\x1a\x8f\x01\n\x0cVirtualTable\x12<\n\x06values\x18\x01 \x03(\x0b2 .proto.Expression.Literal.StructB\x02\x18\x01R\x06values\x12A\n\x0bexpressions\x18\x02 \x03(\x0b2\x1f.proto.Expression.Nested.StructR\x0bexpressions\x1a>\n\x0eExtensionTable\x12,\n\x06detail\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail\x1a\xf4\t\n\nLocalFiles\x12;\n\x05items\x18\x01 \x03(\x0b2%.proto.ReadRel.LocalFiles.FileOrFilesR\x05items\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xd4\x08\n\x0bFileOrFiles\x12\x1b\n\x08uri_path\x18\x01 \x01(\tH\x00R\x07uriPath\x12$\n\ruri_path_glob\x18\x02 \x01(\tH\x00R\x0buriPathGlob\x12\x1b\n\x08uri_file\x18\x03 \x01(\tH\x00R\x07uriFile\x12\x1f\n\nuri_folder\x18\x04 \x01(\tH\x00R\turiFolder\x12\'\n\x0fpartition_index\x18\x06 \x01(\x04R\x0epartitionIndex\x12\x14\n\x05start\x18\x07 \x01(\x04R\x05start\x12\x16\n\x06length\x18\x08 \x01(\x04R\x06length\x12T\n\x07parquet\x18\t \x01(\x0b28.proto.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptionsH\x01R\x07parquet\x12N\n\x05arrow\x18\n \x01(\x0b26.proto.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptionsH\x01R\x05arrow\x12H\n\x03orc\x18\x0b \x01(\x0b24.proto.ReadRel.LocalFiles.FileOrFiles.OrcReadOptionsH\x01R\x03orc\x124\n\textension\x18\x0c \x01(\x0b2\x14.google.protobuf.AnyH\x01R\textension\x12K\n\x04dwrf\x18\r \x01(\x0b25.proto.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptionsH\x01R\x04dwrf\x12]\n\x04text\x18\x0e \x01(\x0b2G.proto.ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptionsH\x01R\x04text\x1a\x14\n\x12ParquetReadOptions\x1a\x12\n\x10ArrowReadOptions\x1a\x10\n\x0eOrcReadOptions\x1a\x11\n\x0fDwrfReadOptions\x1a\xa1\x02\n!DelimiterSeparatedTextReadOptions\x12\'\n\x0ffield_delimiter\x18\x01 \x01(\tR\x0efieldDelimiter\x12"\n\rmax_line_size\x18\x02 \x01(\x04R\x0bmaxLineSize\x12\x14\n\x05quote\x18\x03 \x01(\tR\x05quote\x12/\n\x14header_lines_to_skip\x18\x04 \x01(\x04R\x11headerLinesToSkip\x12\x16\n\x06escape\x18\x05 \x01(\tR\x06escape\x126\n\x15value_treated_as_null\x18\x06 \x01(\tH\x00R\x12valueTreatedAsNull\x88\x01\x01B\x18\n\x16_value_treated_as_nullB\x0b\n\tpath_typeB\r\n\x0bfile_formatJ\x04\x08\x05\x10\x06R\x06formatB\x0b\n\tread_type"\xe1\x01\n\nProjectRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x123\n\x0bexpressions\x18\x03 \x03(\x0b2\x11.proto.ExpressionR\x0bexpressions\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xb1\x05\n\x07JoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x121\n\nexpression\x18\x04 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x12;\n\x10post_join_filter\x18\x05 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x12+\n\x04type\x18\x06 \x01(\x0e2\x17.proto.JoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x06\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x08\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\xca\x01\n\x08CrossRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xeb\x02\n\x08FetchRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12\x1c\n\x06offset\x18\x03 \x01(\x03B\x02\x18\x01H\x00R\x06offset\x124\n\x0boffset_expr\x18\x05 \x01(\x0b2\x11.proto.ExpressionH\x00R\noffsetExpr\x12\x1a\n\x05count\x18\x04 \x01(\x03B\x02\x18\x01H\x01R\x05count\x122\n\ncount_expr\x18\x06 \x01(\x0b2\x11.proto.ExpressionH\x01R\tcountExpr\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtensionB\r\n\x0boffset_modeB\x0c\n\ncount_mode"\xdf\x04\n\x0cAggregateRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12:\n\tgroupings\x18\x03 \x03(\x0b2\x1c.proto.AggregateRel.GroupingR\tgroupings\x127\n\x08measures\x18\x04 \x03(\x0b2\x1b.proto.AggregateRel.MeasureR\x08measures\x12D\n\x14grouping_expressions\x18\x05 \x03(\x0b2\x11.proto.ExpressionR\x13groupingExpressions\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x89\x01\n\x08Grouping\x12H\n\x14grouping_expressions\x18\x01 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x13groupingExpressions\x123\n\x15expression_references\x18\x02 \x03(\rR\x14expressionReferences\x1ah\n\x07Measure\x122\n\x07measure\x18\x01 \x01(\x0b2\x18.proto.AggregateFunctionR\x07measure\x12)\n\x06filter\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x06filter"\xca\x07\n\x1cConsistentPartitionWindowRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12`\n\x10window_functions\x18\x03 \x03(\x0b25.proto.ConsistentPartitionWindowRel.WindowRelFunctionR\x0fwindowFunctions\x12F\n\x15partition_expressions\x18\x04 \x03(\x0b2\x11.proto.ExpressionR\x14partitionExpressions\x12&\n\x05sorts\x18\x05 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xb7\x04\n\x11WindowRelFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\t \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12N\n\ninvocation\x18\n \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12G\n\x0blower_bound\x18\x05 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nupperBound\x12L\n\x0bbounds_type\x18\x0c \x01(\x0e2+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType"\xd1\x01\n\x07SortRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xdc\x01\n\tFilterRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12/\n\tcondition\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\tcondition\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xde\x03\n\x06SetRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12"\n\x06inputs\x18\x02 \x03(\x0b2\n.proto.RelR\x06inputs\x12#\n\x02op\x18\x03 \x01(\x0e2\x13.proto.SetRel.SetOpR\x02op\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\x8c\x02\n\x05SetOp\x12\x16\n\x12SET_OP_UNSPECIFIED\x10\x00\x12\x18\n\x14SET_OP_MINUS_PRIMARY\x10\x01\x12\x1c\n\x18SET_OP_MINUS_PRIMARY_ALL\x10\x07\x12\x19\n\x15SET_OP_MINUS_MULTISET\x10\x02\x12\x1f\n\x1bSET_OP_INTERSECTION_PRIMARY\x10\x03\x12 \n\x1cSET_OP_INTERSECTION_MULTISET\x10\x04\x12$\n SET_OP_INTERSECTION_MULTISET_ALL\x10\x08\x12\x19\n\x15SET_OP_UNION_DISTINCT\x10\x05\x12\x14\n\x10SET_OP_UNION_ALL\x10\x06"\x8e\x01\n\x12ExtensionSingleRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"j\n\x10ExtensionLeafRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12,\n\x06detail\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x8f\x01\n\x11ExtensionMultiRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12"\n\x06inputs\x18\x02 \x03(\x0b2\n.proto.RelR\x06inputs\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\xe9\x08\n\x0bExchangeRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12\'\n\x0fpartition_count\x18\x03 \x01(\x05R\x0epartitionCount\x12;\n\x07targets\x18\x04 \x03(\x0b2!.proto.ExchangeRel.ExchangeTargetR\x07targets\x12N\n\x11scatter_by_fields\x18\x05 \x01(\x0b2 .proto.ExchangeRel.ScatterFieldsH\x00R\x0fscatterByFields\x12P\n\rsingle_target\x18\x06 \x01(\x0b2).proto.ExchangeRel.SingleBucketExpressionH\x00R\x0csingleTarget\x12M\n\x0cmulti_target\x18\x07 \x01(\x0b2(.proto.ExchangeRel.MultiBucketExpressionH\x00R\x0bmultiTarget\x12@\n\x0bround_robin\x18\x08 \x01(\x0b2\x1d.proto.ExchangeRel.RoundRobinH\x00R\nroundRobin\x12<\n\tbroadcast\x18\t \x01(\x0b2\x1c.proto.ExchangeRel.BroadcastH\x00R\tbroadcast\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1aI\n\rScatterFields\x128\n\x06fields\x18\x01 \x03(\x0b2 .proto.Expression.FieldReferenceR\x06fields\x1aK\n\x16SingleBucketExpression\x121\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x1a|\n\x15MultiBucketExpression\x121\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x120\n\x14constrained_to_count\x18\x02 \x01(\x08R\x12constrainedToCount\x1a\x0b\n\tBroadcast\x1a"\n\nRoundRobin\x12\x14\n\x05exact\x18\x01 \x01(\x08R\x05exact\x1a\x8a\x01\n\x0eExchangeTarget\x12!\n\x0cpartition_id\x18\x01 \x03(\x05R\x0bpartitionId\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uri\x122\n\x08extended\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyH\x00R\x08extendedB\r\n\x0btarget_typeB\x0f\n\rexchange_kind"\xfc\x02\n\tExpandRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x124\n\x06fields\x18\x04 \x03(\x0b2\x1c.proto.ExpandRel.ExpandFieldR\x06fields\x1a\xa7\x01\n\x0bExpandField\x12J\n\x0fswitching_field\x18\x02 \x01(\x0b2\x1f.proto.ExpandRel.SwitchingFieldH\x00R\x0eswitchingField\x12>\n\x10consistent_field\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x00R\x0fconsistentFieldB\x0c\n\nfield_type\x1aC\n\x0eSwitchingField\x121\n\nduplicates\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\nduplicates"A\n\x07RelRoot\x12 \n\x05input\x18\x01 \x01(\x0b2\n.proto.RelR\x05input\x12\x14\n\x05names\x18\x02 \x03(\tR\x05names"\xd0\x08\n\x03Rel\x12$\n\x04read\x18\x01 \x01(\x0b2\x0e.proto.ReadRelH\x00R\x04read\x12*\n\x06filter\x18\x02 \x01(\x0b2\x10.proto.FilterRelH\x00R\x06filter\x12\'\n\x05fetch\x18\x03 \x01(\x0b2\x0f.proto.FetchRelH\x00R\x05fetch\x123\n\taggregate\x18\x04 \x01(\x0b2\x13.proto.AggregateRelH\x00R\taggregate\x12$\n\x04sort\x18\x05 \x01(\x0b2\x0e.proto.SortRelH\x00R\x04sort\x12$\n\x04join\x18\x06 \x01(\x0b2\x0e.proto.JoinRelH\x00R\x04join\x12-\n\x07project\x18\x07 \x01(\x0b2\x11.proto.ProjectRelH\x00R\x07project\x12!\n\x03set\x18\x08 \x01(\x0b2\r.proto.SetRelH\x00R\x03set\x12F\n\x10extension_single\x18\t \x01(\x0b2\x19.proto.ExtensionSingleRelH\x00R\x0fextensionSingle\x12C\n\x0fextension_multi\x18\n \x01(\x0b2\x18.proto.ExtensionMultiRelH\x00R\x0eextensionMulti\x12@\n\x0eextension_leaf\x18\x0b \x01(\x0b2\x17.proto.ExtensionLeafRelH\x00R\rextensionLeaf\x12\'\n\x05cross\x18\x0c \x01(\x0b2\x0f.proto.CrossRelH\x00R\x05cross\x123\n\treference\x18\x15 \x01(\x0b2\x13.proto.ReferenceRelH\x00R\treference\x12\'\n\x05write\x18\x13 \x01(\x0b2\x0f.proto.WriteRelH\x00R\x05write\x12!\n\x03ddl\x18\x14 \x01(\x0b2\r.proto.DdlRelH\x00R\x03ddl\x12*\n\x06update\x18\x16 \x01(\x0b2\x10.proto.UpdateRelH\x00R\x06update\x121\n\thash_join\x18\r \x01(\x0b2\x12.proto.HashJoinRelH\x00R\x08hashJoin\x124\n\nmerge_join\x18\x0e \x01(\x0b2\x13.proto.MergeJoinRelH\x00R\tmergeJoin\x12D\n\x10nested_loop_join\x18\x12 \x01(\x0b2\x18.proto.NestedLoopJoinRelH\x00R\x0enestedLoopJoin\x12=\n\x06window\x18\x11 \x01(\x0b2#.proto.ConsistentPartitionWindowRelH\x00R\x06window\x120\n\x08exchange\x18\x0f \x01(\x0b2\x12.proto.ExchangeRelH\x00R\x08exchange\x12*\n\x06expand\x18\x10 \x01(\x0b2\x10.proto.ExpandRelH\x00R\x06expandB\n\n\x08rel_type"|\n\x10NamedObjectWrite\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"?\n\x0fExtensionObject\x12,\n\x06detail\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x86\x06\n\x06DdlRel\x12<\n\x0cnamed_object\x18\x01 \x01(\x0b2\x17.proto.NamedObjectWriteH\x00R\x0bnamedObject\x12C\n\x10extension_object\x18\x02 \x01(\x0b2\x16.proto.ExtensionObjectH\x00R\x0fextensionObject\x125\n\x0ctable_schema\x18\x03 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12G\n\x0etable_defaults\x18\x04 \x01(\x0b2 .proto.Expression.Literal.StructR\rtableDefaults\x12/\n\x06object\x18\x05 \x01(\x0e2\x17.proto.DdlRel.DdlObjectR\x06object\x12#\n\x02op\x18\x06 \x01(\x0e2\x13.proto.DdlRel.DdlOpR\x02op\x123\n\x0fview_definition\x18\x07 \x01(\x0b2\n.proto.RelR\x0eviewDefinition\x12(\n\x06common\x18\x08 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12R\n\x12advanced_extension\x18\t \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"R\n\tDdlObject\x12\x1a\n\x16DDL_OBJECT_UNSPECIFIED\x10\x00\x12\x14\n\x10DDL_OBJECT_TABLE\x10\x01\x12\x13\n\x0fDDL_OBJECT_VIEW\x10\x02"\x8d\x01\n\x05DdlOp\x12\x16\n\x12DDL_OP_UNSPECIFIED\x10\x00\x12\x11\n\rDDL_OP_CREATE\x10\x01\x12\x1c\n\x18DDL_OP_CREATE_OR_REPLACE\x10\x02\x12\x10\n\x0cDDL_OP_ALTER\x10\x03\x12\x0f\n\x0bDDL_OP_DROP\x10\x04\x12\x18\n\x14DDL_OP_DROP_IF_EXIST\x10\x05B\x0c\n\nwrite_type"\x9b\x07\n\x08WriteRel\x12:\n\x0bnamed_table\x18\x01 \x01(\x0b2\x17.proto.NamedObjectWriteH\x00R\nnamedTable\x12A\n\x0fextension_table\x18\x02 \x01(\x0b2\x16.proto.ExtensionObjectH\x00R\x0eextensionTable\x125\n\x0ctable_schema\x18\x03 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12\'\n\x02op\x18\x04 \x01(\x0e2\x17.proto.WriteRel.WriteOpR\x02op\x12 \n\x05input\x18\x05 \x01(\x0b2\n.proto.RelR\x05input\x12;\n\x0bcreate_mode\x18\x08 \x01(\x0e2\x1a.proto.WriteRel.CreateModeR\ncreateMode\x122\n\x06output\x18\x06 \x01(\x0e2\x1a.proto.WriteRel.OutputModeR\x06output\x12(\n\x06common\x18\x07 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12R\n\x12advanced_extension\x18\t \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"u\n\x07WriteOp\x12\x18\n\x14WRITE_OP_UNSPECIFIED\x10\x00\x12\x13\n\x0fWRITE_OP_INSERT\x10\x01\x12\x13\n\x0fWRITE_OP_DELETE\x10\x02\x12\x13\n\x0fWRITE_OP_UPDATE\x10\x03\x12\x11\n\rWRITE_OP_CTAS\x10\x04"\xb1\x01\n\nCreateMode\x12\x1b\n\x17CREATE_MODE_UNSPECIFIED\x10\x00\x12 \n\x1cCREATE_MODE_APPEND_IF_EXISTS\x10\x01\x12!\n\x1dCREATE_MODE_REPLACE_IF_EXISTS\x10\x02\x12 \n\x1cCREATE_MODE_IGNORE_IF_EXISTS\x10\x03\x12\x1f\n\x1bCREATE_MODE_ERROR_IF_EXISTS\x10\x04"f\n\nOutputMode\x12\x1b\n\x17OUTPUT_MODE_UNSPECIFIED\x10\x00\x12\x19\n\x15OUTPUT_MODE_NO_OUTPUT\x10\x01\x12 \n\x1cOUTPUT_MODE_MODIFIED_RECORDS\x10\x02B\x0c\n\nwrite_type"\xd3\x03\n\tUpdateRel\x124\n\x0bnamed_table\x18\x01 \x01(\x0b2\x11.proto.NamedTableH\x00R\nnamedTable\x125\n\x0ctable_schema\x18\x02 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12/\n\tcondition\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\tcondition\x12N\n\x0ftransformations\x18\x04 \x03(\x0b2$.proto.UpdateRel.TransformExpressionR\x0ftransformations\x12R\n\x12advanced_extension\x18\x05 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1au\n\x13TransformExpression\x129\n\x0etransformation\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x0etransformation\x12#\n\rcolumn_target\x18\x02 \x01(\x05R\x0ccolumnTargetB\r\n\x0bupdate_type"v\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xab\x04\n\x11ComparisonJoinKey\x124\n\x04left\x18\x01 \x01(\x0b2 .proto.Expression.FieldReferenceR\x04left\x126\n\x05right\x18\x02 \x01(\x0b2 .proto.Expression.FieldReferenceR\x05right\x12G\n\ncomparison\x18\x03 \x01(\x0b2\'.proto.ComparisonJoinKey.ComparisonTypeR\ncomparison\x1a\xa5\x01\n\x0eComparisonType\x12G\n\x06simple\x18\x01 \x01(\x0e2-.proto.ComparisonJoinKey.SimpleComparisonTypeH\x00R\x06simple\x12<\n\x19custom_function_reference\x18\x02 \x01(\rH\x00R\x17customFunctionReferenceB\x0c\n\ninner_type"\xb6\x01\n\x14SimpleComparisonType\x12&\n"SIMPLE_COMPARISON_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19SIMPLE_COMPARISON_TYPE_EQ\x10\x01\x12/\n+SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM\x10\x02\x12&\n"SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL\x10\x03"\xd4\x07\n\x0bHashJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12A\n\tleft_keys\x18\x04 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12C\n\nright_keys\x18\x05 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b2\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x12/\n\x04type\x18\x07 \x01(\x0e2\x1b.proto.HashJoinRel.JoinTypeR\x04type\x12>\n\x0bbuild_input\x18\t \x01(\x0e2\x1d.proto.HashJoinRel.BuildInputR\nbuildInput\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"V\n\nBuildInput\x12\x1b\n\x17BUILD_INPUT_UNSPECIFIED\x10\x00\x12\x14\n\x10BUILD_INPUT_LEFT\x10\x01\x12\x15\n\x11BUILD_INPUT_RIGHT\x10\x02"\xbe\x06\n\x0cMergeJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12A\n\tleft_keys\x18\x04 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12C\n\nright_keys\x18\x05 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b2\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x120\n\x04type\x18\x07 \x01(\x0e2\x1c.proto.MergeJoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\x88\x05\n\x11NestedLoopJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x121\n\nexpression\x18\x04 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x125\n\x04type\x18\x05 \x01(\x0e2!.proto.NestedLoopJoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\x82\x01\n\x10FunctionArgument\x12\x14\n\x04enum\x18\x01 \x01(\tH\x00R\x04enum\x12!\n\x04type\x18\x02 \x01(\x0b2\x0b.proto.TypeH\x00R\x04type\x12)\n\x05value\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x00R\x05valueB\n\n\x08arg_type"D\n\x0eFunctionOption\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1e\n\npreference\x18\x02 \x03(\tR\npreference"\xdfW\n\nExpression\x125\n\x07literal\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralH\x00R\x07literal\x12@\n\tselection\x18\x02 \x01(\x0b2 .proto.Expression.FieldReferenceH\x00R\tselection\x12K\n\x0fscalar_function\x18\x03 \x01(\x0b2 .proto.Expression.ScalarFunctionH\x00R\x0escalarFunction\x12K\n\x0fwindow_function\x18\x05 \x01(\x0b2 .proto.Expression.WindowFunctionH\x00R\x0ewindowFunction\x123\n\x07if_then\x18\x06 \x01(\x0b2\x18.proto.Expression.IfThenH\x00R\x06ifThen\x12Q\n\x11switch_expression\x18\x07 \x01(\x0b2".proto.Expression.SwitchExpressionH\x00R\x10switchExpression\x12L\n\x10singular_or_list\x18\x08 \x01(\x0b2 .proto.Expression.SingularOrListH\x00R\x0esingularOrList\x12C\n\rmulti_or_list\x18\t \x01(\x0b2\x1d.proto.Expression.MultiOrListH\x00R\x0bmultiOrList\x12,\n\x04cast\x18\x0b \x01(\x0b2\x16.proto.Expression.CastH\x00R\x04cast\x128\n\x08subquery\x18\x0c \x01(\x0b2\x1a.proto.Expression.SubqueryH\x00R\x08subquery\x122\n\x06nested\x18\r \x01(\x0b2\x18.proto.Expression.NestedH\x00R\x06nested\x12F\n\x11dynamic_parameter\x18\x0e \x01(\x0b2\x17.proto.DynamicParameterH\x00R\x10dynamicParameter\x120\n\x04enum\x18\n \x01(\x0b2\x16.proto.Expression.EnumB\x02\x18\x01H\x00R\x04enum\x1a\x86\x01\n\x04Enum\x12\x1e\n\tspecified\x18\x01 \x01(\tH\x00R\tspecified\x12@\n\x0bunspecified\x18\x02 \x01(\x0b2\x1c.proto.Expression.Enum.EmptyH\x00R\x0bunspecified\x1a\x0b\n\x05Empty:\x02\x18\x01:\x02\x18\x01B\x0b\n\tenum_kind\x1a\xde\x16\n\x07Literal\x12\x1a\n\x07boolean\x18\x01 \x01(\x08H\x00R\x07boolean\x12\x10\n\x02i8\x18\x02 \x01(\x05H\x00R\x02i8\x12\x12\n\x03i16\x18\x03 \x01(\x05H\x00R\x03i16\x12\x12\n\x03i32\x18\x05 \x01(\x05H\x00R\x03i32\x12\x12\n\x03i64\x18\x07 \x01(\x03H\x00R\x03i64\x12\x14\n\x04fp32\x18\n \x01(\x02H\x00R\x04fp32\x12\x14\n\x04fp64\x18\x0b \x01(\x01H\x00R\x04fp64\x12\x18\n\x06string\x18\x0c \x01(\tH\x00R\x06string\x12\x18\n\x06binary\x18\r \x01(\x0cH\x00R\x06binary\x12"\n\ttimestamp\x18\x0e \x01(\x03B\x02\x18\x01H\x00R\ttimestamp\x12\x14\n\x04date\x18\x10 \x01(\x05H\x00R\x04date\x12\x14\n\x04time\x18\x11 \x01(\x03H\x00R\x04time\x12d\n\x16interval_year_to_month\x18\x13 \x01(\x0b2-.proto.Expression.Literal.IntervalYearToMonthH\x00R\x13intervalYearToMonth\x12d\n\x16interval_day_to_second\x18\x14 \x01(\x0b2-.proto.Expression.Literal.IntervalDayToSecondH\x00R\x13intervalDayToSecond\x12Y\n\x11interval_compound\x18$ \x01(\x0b2*.proto.Expression.Literal.IntervalCompoundH\x00R\x10intervalCompound\x12\x1f\n\nfixed_char\x18\x15 \x01(\tH\x00R\tfixedChar\x12>\n\x08var_char\x18\x16 \x01(\x0b2!.proto.Expression.Literal.VarCharH\x00R\x07varChar\x12#\n\x0cfixed_binary\x18\x17 \x01(\x0cH\x00R\x0bfixedBinary\x12=\n\x07decimal\x18\x18 \x01(\x0b2!.proto.Expression.Literal.DecimalH\x00R\x07decimal\x12P\n\x0eprecision_time\x18% \x01(\x0b2\'.proto.Expression.Literal.PrecisionTimeH\x00R\rprecisionTime\x12_\n\x13precision_timestamp\x18" \x01(\x0b2,.proto.Expression.Literal.PrecisionTimestampH\x00R\x12precisionTimestamp\x12d\n\x16precision_timestamp_tz\x18# \x01(\x0b2,.proto.Expression.Literal.PrecisionTimestampH\x00R\x14precisionTimestampTz\x12:\n\x06struct\x18\x19 \x01(\x0b2 .proto.Expression.Literal.StructH\x00R\x06struct\x121\n\x03map\x18\x1a \x01(\x0b2\x1d.proto.Expression.Literal.MapH\x00R\x03map\x12\'\n\x0ctimestamp_tz\x18\x1b \x01(\x03B\x02\x18\x01H\x00R\x0btimestampTz\x12\x14\n\x04uuid\x18\x1c \x01(\x0cH\x00R\x04uuid\x12!\n\x04null\x18\x1d \x01(\x0b2\x0b.proto.TypeH\x00R\x04null\x124\n\x04list\x18\x1e \x01(\x0b2\x1e.proto.Expression.Literal.ListH\x00R\x04list\x121\n\nempty_list\x18\x1f \x01(\x0b2\x10.proto.Type.ListH\x00R\temptyList\x12.\n\tempty_map\x18 \x01(\x0b2\x0f.proto.Type.MapH\x00R\x08emptyMap\x12J\n\x0cuser_defined\x18! \x01(\x0b2%.proto.Expression.Literal.UserDefinedH\x00R\x0buserDefined\x12\x1a\n\x08nullable\x182 \x01(\x08R\x08nullable\x128\n\x18type_variation_reference\x183 \x01(\rR\x16typeVariationReference\x1a7\n\x07VarChar\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x12\x16\n\x06length\x18\x02 \x01(\rR\x06length\x1aS\n\x07Decimal\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x12\x14\n\x05scale\x18\x03 \x01(\x05R\x05scale\x1aC\n\rPrecisionTime\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1aH\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1a\xb6\x01\n\x03Map\x12E\n\nkey_values\x18\x01 \x03(\x0b2&.proto.Expression.Literal.Map.KeyValueR\tkeyValues\x1ah\n\x08KeyValue\x12+\n\x03key\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b2\x19.proto.Expression.LiteralR\x05value\x1aC\n\x13IntervalYearToMonth\x12\x14\n\x05years\x18\x01 \x01(\x05R\x05years\x12\x16\n\x06months\x18\x02 \x01(\x05R\x06months\x1a\xbf\x01\n\x13IntervalDayToSecond\x12\x12\n\x04days\x18\x01 \x01(\x05R\x04days\x12\x18\n\x07seconds\x18\x02 \x01(\x05R\x07seconds\x12(\n\x0cmicroseconds\x18\x03 \x01(\x05B\x02\x18\x01H\x00R\x0cmicroseconds\x12\x1e\n\tprecision\x18\x04 \x01(\x05H\x00R\tprecision\x12\x1e\n\nsubseconds\x18\x05 \x01(\x03R\nsubsecondsB\x10\n\x0eprecision_mode\x1a\xda\x01\n\x10IntervalCompound\x12b\n\x16interval_year_to_month\x18\x01 \x01(\x0b2-.proto.Expression.Literal.IntervalYearToMonthR\x13intervalYearToMonth\x12b\n\x16interval_day_to_second\x18\x02 \x01(\x0b2-.proto.Expression.Literal.IntervalDayToSecondR\x13intervalDayToSecond\x1a;\n\x06Struct\x121\n\x06fields\x18\x01 \x03(\x0b2\x19.proto.Expression.LiteralR\x06fields\x1a9\n\x04List\x121\n\x06values\x18\x01 \x03(\x0b2\x19.proto.Expression.LiteralR\x06values\x1a\xe5\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x12>\n\x0ftype_parameters\x18\x03 \x03(\x0b2\x15.proto.Type.ParameterR\x0etypeParameters\x12,\n\x05value\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyH\x00R\x05value\x12:\n\x06struct\x18\x04 \x01(\x0b2 .proto.Expression.Literal.StructH\x00R\x06structB\x05\n\x03valB\x0e\n\x0cliteral_type\x1a\x9f\x04\n\x06Nested\x12\x1a\n\x08nullable\x18\x01 \x01(\x08R\x08nullable\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x06struct\x18\x03 \x01(\x0b2\x1f.proto.Expression.Nested.StructH\x00R\x06struct\x123\n\x04list\x18\x04 \x01(\x0b2\x1d.proto.Expression.Nested.ListH\x00R\x04list\x120\n\x03map\x18\x05 \x01(\x0b2\x1c.proto.Expression.Nested.MapH\x00R\x03map\x1a\xa5\x01\n\x03Map\x12D\n\nkey_values\x18\x01 \x03(\x0b2%.proto.Expression.Nested.Map.KeyValueR\tkeyValues\x1aX\n\x08KeyValue\x12#\n\x03key\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x03key\x12\'\n\x05value\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x05value\x1a3\n\x06Struct\x12)\n\x06fields\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06fields\x1a1\n\x04List\x12)\n\x06values\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06valuesB\r\n\x0bnested_type\x1a\x80\x02\n\x0eScalarFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\x04 \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x05 \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x03 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12)\n\x04args\x18\x02 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args\x1a\xd5\t\n\x0eWindowFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\t \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\n \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x121\n\npartitions\x18\x02 \x03(\x0b2\x11.proto.ExpressionR\npartitions\x12L\n\x0bbounds_type\x18\x0c \x01(\x0e2+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType\x12G\n\x0blower_bound\x18\x05 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nupperBound\x12)\n\x04args\x18\x08 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args\x1a\xc0\x03\n\x05Bound\x12P\n\tpreceding\x18\x01 \x01(\x0b20.proto.Expression.WindowFunction.Bound.PrecedingH\x00R\tpreceding\x12P\n\tfollowing\x18\x02 \x01(\x0b20.proto.Expression.WindowFunction.Bound.FollowingH\x00R\tfollowing\x12T\n\x0bcurrent_row\x18\x03 \x01(\x0b21.proto.Expression.WindowFunction.Bound.CurrentRowH\x00R\ncurrentRow\x12P\n\tunbounded\x18\x04 \x01(\x0b20.proto.Expression.WindowFunction.Bound.UnboundedH\x00R\tunbounded\x1a#\n\tPreceding\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a#\n\tFollowing\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a\x0c\n\nCurrentRow\x1a\x0b\n\tUnboundedB\x06\n\x04kind"V\n\nBoundsType\x12\x1b\n\x17BOUNDS_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10BOUNDS_TYPE_ROWS\x10\x01\x12\x15\n\x11BOUNDS_TYPE_RANGE\x10\x02\x1a\xba\x01\n\x06IfThen\x123\n\x03ifs\x18\x01 \x03(\x0b2!.proto.Expression.IfThen.IfClauseR\x03ifs\x12%\n\x04else\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04else\x1aT\n\x08IfClause\x12!\n\x02if\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04then\x1a\xa0\x02\n\x04Cast\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x12\'\n\x05input\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x05input\x12Q\n\x10failure_behavior\x18\x03 \x01(\x0e2&.proto.Expression.Cast.FailureBehaviorR\x0ffailureBehavior"{\n\x0fFailureBehavior\x12 \n\x1cFAILURE_BEHAVIOR_UNSPECIFIED\x10\x00\x12 \n\x1cFAILURE_BEHAVIOR_RETURN_NULL\x10\x01\x12$\n FAILURE_BEHAVIOR_THROW_EXCEPTION\x10\x02\x1a\xfd\x01\n\x10SwitchExpression\x12\'\n\x05match\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x05match\x12<\n\x03ifs\x18\x01 \x03(\x0b2*.proto.Expression.SwitchExpression.IfValueR\x03ifs\x12%\n\x04else\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04else\x1a[\n\x07IfValue\x12)\n\x02if\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04then\x1af\n\x0eSingularOrList\x12\'\n\x05value\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x05value\x12+\n\x07options\x18\x02 \x03(\x0b2\x11.proto.ExpressionR\x07options\x1a\xab\x01\n\x0bMultiOrList\x12\'\n\x05value\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x05value\x12>\n\x07options\x18\x02 \x03(\x0b2$.proto.Expression.MultiOrList.RecordR\x07options\x1a3\n\x06Record\x12)\n\x06fields\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06fields\x1a\x83\x04\n\x10EmbeddedFunction\x12/\n\targuments\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\targuments\x12,\n\x0boutput_type\x18\x02 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12o\n\x16python_pickle_function\x18\x03 \x01(\x0b27.proto.Expression.EmbeddedFunction.PythonPickleFunctionH\x00R\x14pythonPickleFunction\x12l\n\x15web_assembly_function\x18\x04 \x01(\x0b26.proto.Expression.EmbeddedFunction.WebAssemblyFunctionH\x00R\x13webAssemblyFunction\x1aV\n\x14PythonPickleFunction\x12\x1a\n\x08function\x18\x01 \x01(\x0cR\x08function\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisite\x1aQ\n\x13WebAssemblyFunction\x12\x16\n\x06script\x18\x01 \x01(\x0cR\x06script\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisiteB\x06\n\x04kind\x1a\xcc\x04\n\x10ReferenceSegment\x12D\n\x07map_key\x18\x01 \x01(\x0b2).proto.Expression.ReferenceSegment.MapKeyH\x00R\x06mapKey\x12S\n\x0cstruct_field\x18\x02 \x01(\x0b2..proto.Expression.ReferenceSegment.StructFieldH\x00R\x0bstructField\x12S\n\x0clist_element\x18\x03 \x01(\x0b2..proto.Expression.ReferenceSegment.ListElementH\x00R\x0blistElement\x1av\n\x06MapKey\x122\n\x07map_key\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x06mapKey\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05child\x1a]\n\x0bStructField\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05child\x1a_\n\x0bListElement\x12\x16\n\x06offset\x18\x01 \x01(\x05R\x06offset\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05childB\x10\n\x0ereference_type\x1a\xee\n\n\x0eMaskExpression\x12E\n\x06select\x18\x01 \x01(\x0b2-.proto.Expression.MaskExpression.StructSelectR\x06select\x128\n\x18maintain_singular_struct\x18\x02 \x01(\x08R\x16maintainSingularStruct\x1a\xdc\x01\n\x06Select\x12G\n\x06struct\x18\x01 \x01(\x0b2-.proto.Expression.MaskExpression.StructSelectH\x00R\x06struct\x12A\n\x04list\x18\x02 \x01(\x0b2+.proto.Expression.MaskExpression.ListSelectH\x00R\x04list\x12>\n\x03map\x18\x03 \x01(\x0b2*.proto.Expression.MaskExpression.MapSelectH\x00R\x03mapB\x06\n\x04type\x1a^\n\x0cStructSelect\x12N\n\x0cstruct_items\x18\x01 \x03(\x0b2+.proto.Expression.MaskExpression.StructItemR\x0bstructItems\x1aa\n\nStructItem\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x12=\n\x05child\x18\x02 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a\xd6\x03\n\nListSelect\x12X\n\tselection\x18\x01 \x03(\x0b2:.proto.Expression.MaskExpression.ListSelect.ListSelectItemR\tselection\x12=\n\x05child\x18\x02 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a\xae\x02\n\x0eListSelectItem\x12\\\n\x04item\x18\x01 \x01(\x0b2F.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListElementH\x00R\x04item\x12\\\n\x05slice\x18\x02 \x01(\x0b2D.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListSliceH\x00R\x05slice\x1a#\n\x0bListElement\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x1a3\n\tListSlice\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03end\x18\x02 \x01(\x05R\x03endB\x06\n\x04type\x1a\xdf\x02\n\tMapSelect\x12E\n\x03key\x18\x01 \x01(\x0b21.proto.Expression.MaskExpression.MapSelect.MapKeyH\x00R\x03key\x12]\n\nexpression\x18\x02 \x01(\x0b2;.proto.Expression.MaskExpression.MapSelect.MapKeyExpressionH\x00R\nexpression\x12=\n\x05child\x18\x03 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a!\n\x06MapKey\x12\x17\n\x07map_key\x18\x01 \x01(\tR\x06mapKey\x1a@\n\x10MapKeyExpression\x12,\n\x12map_key_expression\x18\x01 \x01(\tR\x10mapKeyExpressionB\x08\n\x06select\x1a\xf9\x03\n\x0eFieldReference\x12O\n\x10direct_reference\x18\x01 \x01(\x0b2".proto.Expression.ReferenceSegmentH\x00R\x0fdirectReference\x12M\n\x10masked_reference\x18\x02 \x01(\x0b2 .proto.Expression.MaskExpressionH\x00R\x0fmaskedReference\x123\n\nexpression\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x01R\nexpression\x12W\n\x0eroot_reference\x18\x04 \x01(\x0b2..proto.Expression.FieldReference.RootReferenceH\x01R\rrootReference\x12Z\n\x0fouter_reference\x18\x05 \x01(\x0b2/.proto.Expression.FieldReference.OuterReferenceH\x01R\x0eouterReference\x1a\x0f\n\rRootReference\x1a-\n\x0eOuterReference\x12\x1b\n\tsteps_out\x18\x01 \x01(\rR\x08stepsOutB\x10\n\x0ereference_typeB\x0b\n\troot_type\x1a\xe1\t\n\x08Subquery\x12;\n\x06scalar\x18\x01 \x01(\x0b2!.proto.Expression.Subquery.ScalarH\x00R\x06scalar\x12K\n\x0cin_predicate\x18\x02 \x01(\x0b2&.proto.Expression.Subquery.InPredicateH\x00R\x0binPredicate\x12N\n\rset_predicate\x18\x03 \x01(\x0b2\'.proto.Expression.Subquery.SetPredicateH\x00R\x0csetPredicate\x12Q\n\x0eset_comparison\x18\x04 \x01(\x0b2(.proto.Expression.Subquery.SetComparisonH\x00R\rsetComparison\x1a*\n\x06Scalar\x12 \n\x05input\x18\x01 \x01(\x0b2\n.proto.RelR\x05input\x1ab\n\x0bInPredicate\x12+\n\x07needles\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x07needles\x12&\n\x08haystack\x18\x02 \x01(\x0b2\n.proto.RelR\x08haystack\x1a\xe9\x01\n\x0cSetPredicate\x12V\n\x0cpredicate_op\x18\x01 \x01(\x0e23.proto.Expression.Subquery.SetPredicate.PredicateOpR\x0bpredicateOp\x12"\n\x06tuples\x18\x02 \x01(\x0b2\n.proto.RelR\x06tuples"]\n\x0bPredicateOp\x12\x1c\n\x18PREDICATE_OP_UNSPECIFIED\x10\x00\x12\x17\n\x13PREDICATE_OP_EXISTS\x10\x01\x12\x17\n\x13PREDICATE_OP_UNIQUE\x10\x02\x1a\x9a\x04\n\rSetComparison\x12W\n\x0creduction_op\x18\x01 \x01(\x0e24.proto.Expression.Subquery.SetComparison.ReductionOpR\x0breductionOp\x12Z\n\rcomparison_op\x18\x02 \x01(\x0e25.proto.Expression.Subquery.SetComparison.ComparisonOpR\x0ccomparisonOp\x12%\n\x04left\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x04left\x12 \n\x05right\x18\x04 \x01(\x0b2\n.proto.RelR\x05right"\xb1\x01\n\x0cComparisonOp\x12\x1d\n\x19COMPARISON_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10COMPARISON_OP_EQ\x10\x01\x12\x14\n\x10COMPARISON_OP_NE\x10\x02\x12\x14\n\x10COMPARISON_OP_LT\x10\x03\x12\x14\n\x10COMPARISON_OP_GT\x10\x04\x12\x14\n\x10COMPARISON_OP_LE\x10\x05\x12\x14\n\x10COMPARISON_OP_GE\x10\x06"W\n\x0bReductionOp\x12\x1c\n\x18REDUCTION_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10REDUCTION_OP_ANY\x10\x01\x12\x14\n\x10REDUCTION_OP_ALL\x10\x02B\x0f\n\rsubquery_typeB\n\n\x08rex_type"d\n\x10DynamicParameter\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x12/\n\x13parameter_reference\x18\x02 \x01(\rR\x12parameterReference"\xa5\x03\n\tSortField\x12%\n\x04expr\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x04expr\x12>\n\tdirection\x18\x02 \x01(\x0e2\x1e.proto.SortField.SortDirectionH\x00R\tdirection\x12D\n\x1dcomparison_function_reference\x18\x03 \x01(\rH\x00R\x1bcomparisonFunctionReference"\xdd\x01\n\rSortDirection\x12\x1e\n\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12"\n\x1eSORT_DIRECTION_ASC_NULLS_FIRST\x10\x01\x12!\n\x1dSORT_DIRECTION_ASC_NULLS_LAST\x10\x02\x12#\n\x1fSORT_DIRECTION_DESC_NULLS_FIRST\x10\x03\x12"\n\x1eSORT_DIRECTION_DESC_NULLS_LAST\x10\x04\x12\x1c\n\x18SORT_DIRECTION_CLUSTERED\x10\x05B\x0b\n\tsort_kind"\xb1\x04\n\x11AggregateFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\x07 \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x08 \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x05 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x04 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\x06 \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12)\n\x04args\x18\x02 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args"\x84\x01\n\x15AggregationInvocation\x12&\n"AGGREGATION_INVOCATION_UNSPECIFIED\x10\x00\x12\x1e\n\x1aAGGREGATION_INVOCATION_ALL\x10\x01\x12#\n\x1fAGGREGATION_INVOCATION_DISTINCT\x10\x02"7\n\x0cReferenceRel\x12\'\n\x0fsubtree_ordinal\x18\x01 \x01(\x05R\x0esubtreeOrdinal*\xef\x01\n\x10AggregationPhase\x12!\n\x1dAGGREGATION_PHASE_UNSPECIFIED\x10\x00\x12-\n)AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE\x10\x01\x122\n.AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE\x10\x02\x12\'\n#AGGREGATION_PHASE_INITIAL_TO_RESULT\x10\x03\x12,\n(AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT\x10\x04B#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.algebra_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _READREL_VIRTUALTABLE.fields_by_name['values']._options = None - _READREL_VIRTUALTABLE.fields_by_name['values']._serialized_options = b'\x18\x01' - _FETCHREL.fields_by_name['offset']._options = None - _FETCHREL.fields_by_name['offset']._serialized_options = b'\x18\x01' - _FETCHREL.fields_by_name['count']._options = None - _FETCHREL.fields_by_name['count']._serialized_options = b'\x18\x01' - _AGGREGATEREL_GROUPING.fields_by_name['grouping_expressions']._options = None - _AGGREGATEREL_GROUPING.fields_by_name['grouping_expressions']._serialized_options = b'\x18\x01' - _HASHJOINREL.fields_by_name['left_keys']._options = None - _HASHJOINREL.fields_by_name['left_keys']._serialized_options = b'\x18\x01' - _HASHJOINREL.fields_by_name['right_keys']._options = None - _HASHJOINREL.fields_by_name['right_keys']._serialized_options = b'\x18\x01' - _MERGEJOINREL.fields_by_name['left_keys']._options = None - _MERGEJOINREL.fields_by_name['left_keys']._serialized_options = b'\x18\x01' - _MERGEJOINREL.fields_by_name['right_keys']._options = None - _MERGEJOINREL.fields_by_name['right_keys']._serialized_options = b'\x18\x01' - _EXPRESSION_ENUM_EMPTY._options = None - _EXPRESSION_ENUM_EMPTY._serialized_options = b'\x18\x01' - _EXPRESSION_ENUM._options = None - _EXPRESSION_ENUM._serialized_options = b'\x18\x01' - _EXPRESSION_LITERAL_INTERVALDAYTOSECOND.fields_by_name['microseconds']._options = None - _EXPRESSION_LITERAL_INTERVALDAYTOSECOND.fields_by_name['microseconds']._serialized_options = b'\x18\x01' - _EXPRESSION_LITERAL.fields_by_name['timestamp']._options = None - _EXPRESSION_LITERAL.fields_by_name['timestamp']._serialized_options = b'\x18\x01' - _EXPRESSION_LITERAL.fields_by_name['timestamp_tz']._options = None - _EXPRESSION_LITERAL.fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' - _EXPRESSION_SCALARFUNCTION.fields_by_name['args']._options = None - _EXPRESSION_SCALARFUNCTION.fields_by_name['args']._serialized_options = b'\x18\x01' - _EXPRESSION_WINDOWFUNCTION.fields_by_name['args']._options = None - _EXPRESSION_WINDOWFUNCTION.fields_by_name['args']._serialized_options = b'\x18\x01' - _EXPRESSION.fields_by_name['enum']._options = None - _EXPRESSION.fields_by_name['enum']._serialized_options = b'\x18\x01' - _AGGREGATEFUNCTION.fields_by_name['args']._options = None - _AGGREGATEFUNCTION.fields_by_name['args']._serialized_options = b'\x18\x01' - _AGGREGATIONPHASE._serialized_start = 29447 - _AGGREGATIONPHASE._serialized_end = 29686 - _RELCOMMON._serialized_start = 111 - _RELCOMMON._serialized_end = 1705 - _RELCOMMON_DIRECT._serialized_start = 347 - _RELCOMMON_DIRECT._serialized_end = 355 - _RELCOMMON_EMIT._serialized_start = 357 - _RELCOMMON_EMIT._serialized_end = 402 - _RELCOMMON_HINT._serialized_start = 405 - _RELCOMMON_HINT._serialized_end = 1692 - _RELCOMMON_HINT_STATS._serialized_start = 856 - _RELCOMMON_HINT_STATS._serialized_end = 1009 - _RELCOMMON_HINT_RUNTIMECONSTRAINT._serialized_start = 1011 - _RELCOMMON_HINT_RUNTIMECONSTRAINT._serialized_end = 1114 - _RELCOMMON_HINT_SAVEDCOMPUTATION._serialized_start = 1117 - _RELCOMMON_HINT_SAVEDCOMPUTATION._serialized_end = 1317 - _RELCOMMON_HINT_LOADEDCOMPUTATION._serialized_start = 1320 - _RELCOMMON_HINT_LOADEDCOMPUTATION._serialized_end = 1540 - _RELCOMMON_HINT_COMPUTATIONTYPE._serialized_start = 1543 - _RELCOMMON_HINT_COMPUTATIONTYPE._serialized_end = 1692 - _READREL._serialized_start = 1708 - _READREL._serialized_end = 4273 - _READREL_NAMEDTABLE._serialized_start = 2406 - _READREL_NAMEDTABLE._serialized_end = 2524 - _READREL_ICEBERGTABLE._serialized_start = 2527 - _READREL_ICEBERGTABLE._serialized_end = 2779 - _READREL_ICEBERGTABLE_METADATAFILEREAD._serialized_start = 2616 - _READREL_ICEBERGTABLE_METADATAFILEREAD._serialized_end = 2765 - _READREL_VIRTUALTABLE._serialized_start = 2782 - _READREL_VIRTUALTABLE._serialized_end = 2925 - _READREL_EXTENSIONTABLE._serialized_start = 2927 - _READREL_EXTENSIONTABLE._serialized_end = 2989 - _READREL_LOCALFILES._serialized_start = 2992 - _READREL_LOCALFILES._serialized_end = 4260 - _READREL_LOCALFILES_FILEORFILES._serialized_start = 3152 - _READREL_LOCALFILES_FILEORFILES._serialized_end = 4260 - _READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS._serialized_start = 3849 - _READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS._serialized_end = 3869 - _READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS._serialized_start = 3871 - _READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS._serialized_end = 3889 - _READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS._serialized_start = 3891 - _READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS._serialized_end = 3907 - _READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS._serialized_start = 3909 - _READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS._serialized_end = 3926 - _READREL_LOCALFILES_FILEORFILES_DELIMITERSEPARATEDTEXTREADOPTIONS._serialized_start = 3929 - _READREL_LOCALFILES_FILEORFILES_DELIMITERSEPARATEDTEXTREADOPTIONS._serialized_end = 4218 - _PROJECTREL._serialized_start = 4276 - _PROJECTREL._serialized_end = 4501 - _JOINREL._serialized_start = 4504 - _JOINREL._serialized_end = 5193 - _JOINREL_JOINTYPE._serialized_start = 4865 - _JOINREL_JOINTYPE._serialized_end = 5193 - _CROSSREL._serialized_start = 5196 - _CROSSREL._serialized_end = 5398 - _FETCHREL._serialized_start = 5401 - _FETCHREL._serialized_end = 5764 - _AGGREGATEREL._serialized_start = 5767 - _AGGREGATEREL._serialized_end = 6374 - _AGGREGATEREL_GROUPING._serialized_start = 6131 - _AGGREGATEREL_GROUPING._serialized_end = 6268 - _AGGREGATEREL_MEASURE._serialized_start = 6270 - _AGGREGATEREL_MEASURE._serialized_end = 6374 - _CONSISTENTPARTITIONWINDOWREL._serialized_start = 6377 - _CONSISTENTPARTITIONWINDOWREL._serialized_end = 7347 - _CONSISTENTPARTITIONWINDOWREL_WINDOWRELFUNCTION._serialized_start = 6780 - _CONSISTENTPARTITIONWINDOWREL_WINDOWRELFUNCTION._serialized_end = 7347 - _SORTREL._serialized_start = 7350 - _SORTREL._serialized_end = 7559 - _FILTERREL._serialized_start = 7562 - _FILTERREL._serialized_end = 7782 - _SETREL._serialized_start = 7785 - _SETREL._serialized_end = 8263 - _SETREL_SETOP._serialized_start = 7995 - _SETREL_SETOP._serialized_end = 8263 - _EXTENSIONSINGLEREL._serialized_start = 8266 - _EXTENSIONSINGLEREL._serialized_end = 8408 - _EXTENSIONLEAFREL._serialized_start = 8410 - _EXTENSIONLEAFREL._serialized_end = 8516 - _EXTENSIONMULTIREL._serialized_start = 8519 - _EXTENSIONMULTIREL._serialized_end = 8662 - _EXCHANGEREL._serialized_start = 8665 - _EXCHANGEREL._serialized_end = 9794 - _EXCHANGEREL_SCATTERFIELDS._serialized_start = 9311 - _EXCHANGEREL_SCATTERFIELDS._serialized_end = 9384 - _EXCHANGEREL_SINGLEBUCKETEXPRESSION._serialized_start = 9386 - _EXCHANGEREL_SINGLEBUCKETEXPRESSION._serialized_end = 9461 - _EXCHANGEREL_MULTIBUCKETEXPRESSION._serialized_start = 9463 - _EXCHANGEREL_MULTIBUCKETEXPRESSION._serialized_end = 9587 - _EXCHANGEREL_BROADCAST._serialized_start = 9589 - _EXCHANGEREL_BROADCAST._serialized_end = 9600 - _EXCHANGEREL_ROUNDROBIN._serialized_start = 9602 - _EXCHANGEREL_ROUNDROBIN._serialized_end = 9636 - _EXCHANGEREL_EXCHANGETARGET._serialized_start = 9639 - _EXCHANGEREL_EXCHANGETARGET._serialized_end = 9777 - _EXPANDREL._serialized_start = 9797 - _EXPANDREL._serialized_end = 10177 - _EXPANDREL_EXPANDFIELD._serialized_start = 9941 - _EXPANDREL_EXPANDFIELD._serialized_end = 10108 - _EXPANDREL_SWITCHINGFIELD._serialized_start = 10110 - _EXPANDREL_SWITCHINGFIELD._serialized_end = 10177 - _RELROOT._serialized_start = 10179 - _RELROOT._serialized_end = 10244 - _REL._serialized_start = 10247 - _REL._serialized_end = 11351 - _NAMEDOBJECTWRITE._serialized_start = 11353 - _NAMEDOBJECTWRITE._serialized_end = 11477 - _EXTENSIONOBJECT._serialized_start = 11479 - _EXTENSIONOBJECT._serialized_end = 11542 - _DDLREL._serialized_start = 11545 - _DDLREL._serialized_end = 12319 - _DDLREL_DDLOBJECT._serialized_start = 12079 - _DDLREL_DDLOBJECT._serialized_end = 12161 - _DDLREL_DDLOP._serialized_start = 12164 - _DDLREL_DDLOP._serialized_end = 12305 - _WRITEREL._serialized_start = 12322 - _WRITEREL._serialized_end = 13245 - _WRITEREL_WRITEOP._serialized_start = 12830 - _WRITEREL_WRITEOP._serialized_end = 12947 - _WRITEREL_CREATEMODE._serialized_start = 12950 - _WRITEREL_CREATEMODE._serialized_end = 13127 - _WRITEREL_OUTPUTMODE._serialized_start = 13129 - _WRITEREL_OUTPUTMODE._serialized_end = 13231 - _UPDATEREL._serialized_start = 13248 - _UPDATEREL._serialized_end = 13715 - _UPDATEREL_TRANSFORMEXPRESSION._serialized_start = 13583 - _UPDATEREL_TRANSFORMEXPRESSION._serialized_end = 13700 - _NAMEDTABLE._serialized_start = 2406 - _NAMEDTABLE._serialized_end = 2524 - _COMPARISONJOINKEY._serialized_start = 13838 - _COMPARISONJOINKEY._serialized_end = 14393 - _COMPARISONJOINKEY_COMPARISONTYPE._serialized_start = 14043 - _COMPARISONJOINKEY_COMPARISONTYPE._serialized_end = 14208 - _COMPARISONJOINKEY_SIMPLECOMPARISONTYPE._serialized_start = 14211 - _COMPARISONJOINKEY_SIMPLECOMPARISONTYPE._serialized_end = 14393 - _HASHJOINREL._serialized_start = 14396 - _HASHJOINREL._serialized_end = 15376 - _HASHJOINREL_JOINTYPE._serialized_start = 14960 - _HASHJOINREL_JOINTYPE._serialized_end = 15288 - _HASHJOINREL_BUILDINPUT._serialized_start = 15290 - _HASHJOINREL_BUILDINPUT._serialized_end = 15376 - _MERGEJOINREL._serialized_start = 15379 - _MERGEJOINREL._serialized_end = 16209 - _MERGEJOINREL_JOINTYPE._serialized_start = 14960 - _MERGEJOINREL_JOINTYPE._serialized_end = 15288 - _NESTEDLOOPJOINREL._serialized_start = 16212 - _NESTEDLOOPJOINREL._serialized_end = 16860 - _NESTEDLOOPJOINREL_JOINTYPE._serialized_start = 14960 - _NESTEDLOOPJOINREL_JOINTYPE._serialized_end = 15288 - _FUNCTIONARGUMENT._serialized_start = 16863 - _FUNCTIONARGUMENT._serialized_end = 16993 - _FUNCTIONOPTION._serialized_start = 16995 - _FUNCTIONOPTION._serialized_end = 17063 - _EXPRESSION._serialized_start = 17066 - _EXPRESSION._serialized_end = 28297 - _EXPRESSION_ENUM._serialized_start = 17917 - _EXPRESSION_ENUM._serialized_end = 18051 - _EXPRESSION_ENUM_EMPTY._serialized_start = 18023 - _EXPRESSION_ENUM_EMPTY._serialized_end = 18034 - _EXPRESSION_LITERAL._serialized_start = 18054 - _EXPRESSION_LITERAL._serialized_end = 20964 - _EXPRESSION_LITERAL_VARCHAR._serialized_start = 19644 - _EXPRESSION_LITERAL_VARCHAR._serialized_end = 19699 - _EXPRESSION_LITERAL_DECIMAL._serialized_start = 19701 - _EXPRESSION_LITERAL_DECIMAL._serialized_end = 19784 - _EXPRESSION_LITERAL_PRECISIONTIME._serialized_start = 19786 - _EXPRESSION_LITERAL_PRECISIONTIME._serialized_end = 19853 - _EXPRESSION_LITERAL_PRECISIONTIMESTAMP._serialized_start = 19855 - _EXPRESSION_LITERAL_PRECISIONTIMESTAMP._serialized_end = 19927 - _EXPRESSION_LITERAL_MAP._serialized_start = 19930 - _EXPRESSION_LITERAL_MAP._serialized_end = 20112 - _EXPRESSION_LITERAL_MAP_KEYVALUE._serialized_start = 20008 - _EXPRESSION_LITERAL_MAP_KEYVALUE._serialized_end = 20112 - _EXPRESSION_LITERAL_INTERVALYEARTOMONTH._serialized_start = 20114 - _EXPRESSION_LITERAL_INTERVALYEARTOMONTH._serialized_end = 20181 - _EXPRESSION_LITERAL_INTERVALDAYTOSECOND._serialized_start = 20184 - _EXPRESSION_LITERAL_INTERVALDAYTOSECOND._serialized_end = 20375 - _EXPRESSION_LITERAL_INTERVALCOMPOUND._serialized_start = 20378 - _EXPRESSION_LITERAL_INTERVALCOMPOUND._serialized_end = 20596 - _EXPRESSION_LITERAL_STRUCT._serialized_start = 20598 - _EXPRESSION_LITERAL_STRUCT._serialized_end = 20657 - _EXPRESSION_LITERAL_LIST._serialized_start = 20659 - _EXPRESSION_LITERAL_LIST._serialized_end = 20716 - _EXPRESSION_LITERAL_USERDEFINED._serialized_start = 20719 - _EXPRESSION_LITERAL_USERDEFINED._serialized_end = 20948 - _EXPRESSION_NESTED._serialized_start = 20967 - _EXPRESSION_NESTED._serialized_end = 21510 - _EXPRESSION_NESTED_MAP._serialized_start = 21226 - _EXPRESSION_NESTED_MAP._serialized_end = 21391 - _EXPRESSION_NESTED_MAP_KEYVALUE._serialized_start = 21303 - _EXPRESSION_NESTED_MAP_KEYVALUE._serialized_end = 21391 - _EXPRESSION_NESTED_STRUCT._serialized_start = 21393 - _EXPRESSION_NESTED_STRUCT._serialized_end = 21444 - _EXPRESSION_NESTED_LIST._serialized_start = 21446 - _EXPRESSION_NESTED_LIST._serialized_end = 21495 - _EXPRESSION_SCALARFUNCTION._serialized_start = 21513 - _EXPRESSION_SCALARFUNCTION._serialized_end = 21769 - _EXPRESSION_WINDOWFUNCTION._serialized_start = 21772 - _EXPRESSION_WINDOWFUNCTION._serialized_end = 23009 - _EXPRESSION_WINDOWFUNCTION_BOUND._serialized_start = 22473 - _EXPRESSION_WINDOWFUNCTION_BOUND._serialized_end = 22921 - _EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING._serialized_start = 22814 - _EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING._serialized_end = 22849 - _EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING._serialized_start = 22851 - _EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING._serialized_end = 22886 - _EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW._serialized_start = 22888 - _EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW._serialized_end = 22900 - _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED._serialized_start = 22902 - _EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED._serialized_end = 22913 - _EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE._serialized_start = 22923 - _EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE._serialized_end = 23009 - _EXPRESSION_IFTHEN._serialized_start = 23012 - _EXPRESSION_IFTHEN._serialized_end = 23198 - _EXPRESSION_IFTHEN_IFCLAUSE._serialized_start = 23114 - _EXPRESSION_IFTHEN_IFCLAUSE._serialized_end = 23198 - _EXPRESSION_CAST._serialized_start = 23201 - _EXPRESSION_CAST._serialized_end = 23489 - _EXPRESSION_CAST_FAILUREBEHAVIOR._serialized_start = 23366 - _EXPRESSION_CAST_FAILUREBEHAVIOR._serialized_end = 23489 - _EXPRESSION_SWITCHEXPRESSION._serialized_start = 23492 - _EXPRESSION_SWITCHEXPRESSION._serialized_end = 23745 - _EXPRESSION_SWITCHEXPRESSION_IFVALUE._serialized_start = 23654 - _EXPRESSION_SWITCHEXPRESSION_IFVALUE._serialized_end = 23745 - _EXPRESSION_SINGULARORLIST._serialized_start = 23747 - _EXPRESSION_SINGULARORLIST._serialized_end = 23849 - _EXPRESSION_MULTIORLIST._serialized_start = 23852 - _EXPRESSION_MULTIORLIST._serialized_end = 24023 - _EXPRESSION_MULTIORLIST_RECORD._serialized_start = 23972 - _EXPRESSION_MULTIORLIST_RECORD._serialized_end = 24023 - _EXPRESSION_EMBEDDEDFUNCTION._serialized_start = 24026 - _EXPRESSION_EMBEDDEDFUNCTION._serialized_end = 24541 - _EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION._serialized_start = 24364 - _EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION._serialized_end = 24450 - _EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION._serialized_start = 24452 - _EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION._serialized_end = 24533 - _EXPRESSION_REFERENCESEGMENT._serialized_start = 24544 - _EXPRESSION_REFERENCESEGMENT._serialized_end = 25132 - _EXPRESSION_REFERENCESEGMENT_MAPKEY._serialized_start = 24804 - _EXPRESSION_REFERENCESEGMENT_MAPKEY._serialized_end = 24922 - _EXPRESSION_REFERENCESEGMENT_STRUCTFIELD._serialized_start = 24924 - _EXPRESSION_REFERENCESEGMENT_STRUCTFIELD._serialized_end = 25017 - _EXPRESSION_REFERENCESEGMENT_LISTELEMENT._serialized_start = 25019 - _EXPRESSION_REFERENCESEGMENT_LISTELEMENT._serialized_end = 25114 - _EXPRESSION_MASKEXPRESSION._serialized_start = 25135 - _EXPRESSION_MASKEXPRESSION._serialized_end = 26525 - _EXPRESSION_MASKEXPRESSION_SELECT._serialized_start = 25283 - _EXPRESSION_MASKEXPRESSION_SELECT._serialized_end = 25503 - _EXPRESSION_MASKEXPRESSION_STRUCTSELECT._serialized_start = 25505 - _EXPRESSION_MASKEXPRESSION_STRUCTSELECT._serialized_end = 25599 - _EXPRESSION_MASKEXPRESSION_STRUCTITEM._serialized_start = 25601 - _EXPRESSION_MASKEXPRESSION_STRUCTITEM._serialized_end = 25698 - _EXPRESSION_MASKEXPRESSION_LISTSELECT._serialized_start = 25701 - _EXPRESSION_MASKEXPRESSION_LISTSELECT._serialized_end = 26171 - _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM._serialized_start = 25869 - _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM._serialized_end = 26171 - _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT._serialized_start = 26075 - _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT._serialized_end = 26110 - _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE._serialized_start = 26112 - _EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE._serialized_end = 26163 - _EXPRESSION_MASKEXPRESSION_MAPSELECT._serialized_start = 26174 - _EXPRESSION_MASKEXPRESSION_MAPSELECT._serialized_end = 26525 - _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY._serialized_start = 26416 - _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY._serialized_end = 26449 - _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION._serialized_start = 26451 - _EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION._serialized_end = 26515 - _EXPRESSION_FIELDREFERENCE._serialized_start = 26528 - _EXPRESSION_FIELDREFERENCE._serialized_end = 27033 - _EXPRESSION_FIELDREFERENCE_ROOTREFERENCE._serialized_start = 26940 - _EXPRESSION_FIELDREFERENCE_ROOTREFERENCE._serialized_end = 26955 - _EXPRESSION_FIELDREFERENCE_OUTERREFERENCE._serialized_start = 26957 - _EXPRESSION_FIELDREFERENCE_OUTERREFERENCE._serialized_end = 27002 - _EXPRESSION_SUBQUERY._serialized_start = 27036 - _EXPRESSION_SUBQUERY._serialized_end = 28285 - _EXPRESSION_SUBQUERY_SCALAR._serialized_start = 27349 - _EXPRESSION_SUBQUERY_SCALAR._serialized_end = 27391 - _EXPRESSION_SUBQUERY_INPREDICATE._serialized_start = 27393 - _EXPRESSION_SUBQUERY_INPREDICATE._serialized_end = 27491 - _EXPRESSION_SUBQUERY_SETPREDICATE._serialized_start = 27494 - _EXPRESSION_SUBQUERY_SETPREDICATE._serialized_end = 27727 - _EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP._serialized_start = 27634 - _EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP._serialized_end = 27727 - _EXPRESSION_SUBQUERY_SETCOMPARISON._serialized_start = 27730 - _EXPRESSION_SUBQUERY_SETCOMPARISON._serialized_end = 28268 - _EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP._serialized_start = 28002 - _EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP._serialized_end = 28179 - _EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP._serialized_start = 28181 - _EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP._serialized_end = 28268 - _DYNAMICPARAMETER._serialized_start = 28299 - _DYNAMICPARAMETER._serialized_end = 28399 - _SORTFIELD._serialized_start = 28402 - _SORTFIELD._serialized_end = 28823 - _SORTFIELD_SORTDIRECTION._serialized_start = 28589 - _SORTFIELD_SORTDIRECTION._serialized_end = 28810 - _AGGREGATEFUNCTION._serialized_start = 28826 - _AGGREGATEFUNCTION._serialized_end = 29387 - _AGGREGATEFUNCTION_AGGREGATIONINVOCATION._serialized_start = 29255 - _AGGREGATEFUNCTION_AGGREGATIONINVOCATION._serialized_end = 29387 - _REFERENCEREL._serialized_start = 29389 - _REFERENCEREL._serialized_end = 29444 \ No newline at end of file +from proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 +from proto import type_pb2 as proto_dot_type__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13proto/algebra.proto\x12\x05proto\x1a\x19google/protobuf/any.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/type.proto\"\xba\x0c\n\tRelCommon\x12\x31\n\x06\x64irect\x18\x01 \x01(\x0b\x32\x17.proto.RelCommon.DirectH\x00R\x06\x64irect\x12+\n\x04\x65mit\x18\x02 \x01(\x0b\x32\x15.proto.RelCommon.EmitH\x00R\x04\x65mit\x12)\n\x04hint\x18\x03 \x01(\x0b\x32\x15.proto.RelCommon.HintR\x04hint\x12R\n\x12\x61\x64vanced_extension\x18\x04 \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\x08\n\x06\x44irect\x1a-\n\x04\x45mit\x12%\n\x0eoutput_mapping\x18\x01 \x03(\x05R\routputMapping\x1a\x87\n\n\x04Hint\x12\x31\n\x05stats\x18\x01 \x01(\x0b\x32\x1b.proto.RelCommon.Hint.StatsR\x05stats\x12G\n\nconstraint\x18\x02 \x01(\x0b\x32\'.proto.RelCommon.Hint.RuntimeConstraintR\nconstraint\x12\x14\n\x05\x61lias\x18\x03 \x01(\tR\x05\x61lias\x12!\n\x0coutput_names\x18\x04 \x03(\tR\x0boutputNames\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x12U\n\x12saved_computations\x18\x0b \x03(\x0b\x32&.proto.RelCommon.Hint.SavedComputationR\x11savedComputations\x12X\n\x13loaded_computations\x18\x0c \x03(\x0b\x32\'.proto.RelCommon.Hint.LoadedComputationR\x12loadedComputations\x1a\x99\x01\n\x05Stats\x12\x1b\n\trow_count\x18\x01 \x01(\x01R\x08rowCount\x12\x1f\n\x0brecord_size\x18\x02 \x01(\x01R\nrecordSize\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1ag\n\x11RuntimeConstraint\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\xc8\x01\n\x10SavedComputation\x12%\n\x0e\x63omputation_id\x18\x01 \x01(\x05R\rcomputationId\x12\x39\n\x04type\x18\x02 \x01(\x0e\x32%.proto.RelCommon.Hint.ComputationTypeR\x04type\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\xdc\x01\n\x11LoadedComputation\x12\x38\n\x18\x63omputation_id_reference\x18\x01 \x01(\x05R\x16\x63omputationIdReference\x12\x39\n\x04type\x18\x02 \x01(\x0e\x32%.proto.RelCommon.Hint.ComputationTypeR\x04type\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\x95\x01\n\x0f\x43omputationType\x12 \n\x1c\x43OMPUTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x43OMPUTATION_TYPE_HASHTABLE\x10\x01\x12!\n\x1d\x43OMPUTATION_TYPE_BLOOM_FILTER\x10\x02\x12\x1d\n\x18\x43OMPUTATION_TYPE_UNKNOWN\x10\x8fNB\x0b\n\temit_kind\"\x85\x14\n\x07ReadRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\x33\n\x0b\x62\x61se_schema\x18\x02 \x01(\x0b\x32\x12.proto.NamedStructR\nbaseSchema\x12)\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionR\x06\x66ilter\x12?\n\x12\x62\x65st_effort_filter\x18\x0b \x01(\x0b\x32\x11.proto.ExpressionR\x10\x62\x65stEffortFilter\x12@\n\nprojection\x18\x04 \x01(\x0b\x32 .proto.Expression.MaskExpressionR\nprojection\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x12\x42\n\rvirtual_table\x18\x05 \x01(\x0b\x32\x1b.proto.ReadRel.VirtualTableH\x00R\x0cvirtualTable\x12<\n\x0blocal_files\x18\x06 \x01(\x0b\x32\x19.proto.ReadRel.LocalFilesH\x00R\nlocalFiles\x12<\n\x0bnamed_table\x18\x07 \x01(\x0b\x32\x19.proto.ReadRel.NamedTableH\x00R\nnamedTable\x12H\n\x0f\x65xtension_table\x18\x08 \x01(\x0b\x32\x1d.proto.ReadRel.ExtensionTableH\x00R\x0e\x65xtensionTable\x12\x42\n\riceberg_table\x18\t \x01(\x0b\x32\x1b.proto.ReadRel.IcebergTableH\x00R\x0cicebergTable\x1av\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\xfc\x01\n\x0cIcebergTable\x12\x46\n\x06\x64irect\x18\x01 \x01(\x0b\x32,.proto.ReadRel.IcebergTable.MetadataFileReadH\x00R\x06\x64irect\x1a\x95\x01\n\x10MetadataFileRead\x12!\n\x0cmetadata_uri\x18\x01 \x01(\tR\x0bmetadataUri\x12!\n\x0bsnapshot_id\x18\x02 \x01(\tH\x00R\nsnapshotId\x12/\n\x12snapshot_timestamp\x18\x03 \x01(\x03H\x00R\x11snapshotTimestampB\n\n\x08snapshotB\x0c\n\ntable_type\x1a\x8f\x01\n\x0cVirtualTable\x12<\n\x06values\x18\x01 \x03(\x0b\x32 .proto.Expression.Literal.StructB\x02\x18\x01R\x06values\x12\x41\n\x0b\x65xpressions\x18\x02 \x03(\x0b\x32\x1f.proto.Expression.Nested.StructR\x0b\x65xpressions\x1a>\n\x0e\x45xtensionTable\x12,\n\x06\x64\x65tail\x18\x01 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\x1a\xf4\t\n\nLocalFiles\x12;\n\x05items\x18\x01 \x03(\x0b\x32%.proto.ReadRel.LocalFiles.FileOrFilesR\x05items\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\xd4\x08\n\x0b\x46ileOrFiles\x12\x1b\n\x08uri_path\x18\x01 \x01(\tH\x00R\x07uriPath\x12$\n\ruri_path_glob\x18\x02 \x01(\tH\x00R\x0buriPathGlob\x12\x1b\n\x08uri_file\x18\x03 \x01(\tH\x00R\x07uriFile\x12\x1f\n\nuri_folder\x18\x04 \x01(\tH\x00R\turiFolder\x12\'\n\x0fpartition_index\x18\x06 \x01(\x04R\x0epartitionIndex\x12\x14\n\x05start\x18\x07 \x01(\x04R\x05start\x12\x16\n\x06length\x18\x08 \x01(\x04R\x06length\x12T\n\x07parquet\x18\t \x01(\x0b\x32\x38.proto.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptionsH\x01R\x07parquet\x12N\n\x05\x61rrow\x18\n \x01(\x0b\x32\x36.proto.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptionsH\x01R\x05\x61rrow\x12H\n\x03orc\x18\x0b \x01(\x0b\x32\x34.proto.ReadRel.LocalFiles.FileOrFiles.OrcReadOptionsH\x01R\x03orc\x12\x34\n\textension\x18\x0c \x01(\x0b\x32\x14.google.protobuf.AnyH\x01R\textension\x12K\n\x04\x64wrf\x18\r \x01(\x0b\x32\x35.proto.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptionsH\x01R\x04\x64wrf\x12]\n\x04text\x18\x0e \x01(\x0b\x32G.proto.ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptionsH\x01R\x04text\x1a\x14\n\x12ParquetReadOptions\x1a\x12\n\x10\x41rrowReadOptions\x1a\x10\n\x0eOrcReadOptions\x1a\x11\n\x0f\x44wrfReadOptions\x1a\xa1\x02\n!DelimiterSeparatedTextReadOptions\x12\'\n\x0f\x66ield_delimiter\x18\x01 \x01(\tR\x0e\x66ieldDelimiter\x12\"\n\rmax_line_size\x18\x02 \x01(\x04R\x0bmaxLineSize\x12\x14\n\x05quote\x18\x03 \x01(\tR\x05quote\x12/\n\x14header_lines_to_skip\x18\x04 \x01(\x04R\x11headerLinesToSkip\x12\x16\n\x06\x65scape\x18\x05 \x01(\tR\x06\x65scape\x12\x36\n\x15value_treated_as_null\x18\x06 \x01(\tH\x00R\x12valueTreatedAsNull\x88\x01\x01\x42\x18\n\x16_value_treated_as_nullB\x0b\n\tpath_typeB\r\n\x0b\x66ile_formatJ\x04\x08\x05\x10\x06R\x06\x66ormatB\x0b\n\tread_type\"\xe1\x01\n\nProjectRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12\x33\n\x0b\x65xpressions\x18\x03 \x03(\x0b\x32\x11.proto.ExpressionR\x0b\x65xpressions\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xb1\x05\n\x07JoinRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\x1e\n\x04left\x18\x02 \x01(\x0b\x32\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b\x32\n.proto.RelR\x05right\x12\x31\n\nexpression\x18\x04 \x01(\x0b\x32\x11.proto.ExpressionR\nexpression\x12;\n\x10post_join_filter\x18\x05 \x01(\x0b\x32\x11.proto.ExpressionR\x0epostJoinFilter\x12+\n\x04type\x18\x06 \x01(\x0e\x32\x17.proto.JoinRel.JoinTypeR\x04type\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x06\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x08\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c\"\xca\x01\n\x08\x43rossRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\x1e\n\x04left\x18\x02 \x01(\x0b\x32\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b\x32\n.proto.RelR\x05right\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xeb\x02\n\x08\x46\x65tchRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12\x1c\n\x06offset\x18\x03 \x01(\x03\x42\x02\x18\x01H\x00R\x06offset\x12\x34\n\x0boffset_expr\x18\x05 \x01(\x0b\x32\x11.proto.ExpressionH\x00R\noffsetExpr\x12\x1a\n\x05\x63ount\x18\x04 \x01(\x03\x42\x02\x18\x01H\x01R\x05\x63ount\x12\x32\n\ncount_expr\x18\x06 \x01(\x0b\x32\x11.proto.ExpressionH\x01R\tcountExpr\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtensionB\r\n\x0boffset_modeB\x0c\n\ncount_mode\"\xdf\x04\n\x0c\x41ggregateRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12:\n\tgroupings\x18\x03 \x03(\x0b\x32\x1c.proto.AggregateRel.GroupingR\tgroupings\x12\x37\n\x08measures\x18\x04 \x03(\x0b\x32\x1b.proto.AggregateRel.MeasureR\x08measures\x12\x44\n\x14grouping_expressions\x18\x05 \x03(\x0b\x32\x11.proto.ExpressionR\x13groupingExpressions\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\x89\x01\n\x08Grouping\x12H\n\x14grouping_expressions\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionB\x02\x18\x01R\x13groupingExpressions\x12\x33\n\x15\x65xpression_references\x18\x02 \x03(\rR\x14\x65xpressionReferences\x1ah\n\x07Measure\x12\x32\n\x07measure\x18\x01 \x01(\x0b\x32\x18.proto.AggregateFunctionR\x07measure\x12)\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x11.proto.ExpressionR\x06\x66ilter\"\xca\x07\n\x1c\x43onsistentPartitionWindowRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12`\n\x10window_functions\x18\x03 \x03(\x0b\x32\x35.proto.ConsistentPartitionWindowRel.WindowRelFunctionR\x0fwindowFunctions\x12\x46\n\x15partition_expressions\x18\x04 \x03(\x0b\x32\x11.proto.ExpressionR\x14partitionExpressions\x12&\n\x05sorts\x18\x05 \x03(\x0b\x32\x10.proto.SortFieldR\x05sorts\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\xb7\x04\n\x11WindowRelFunction\x12-\n\x12\x66unction_reference\x18\x01 \x01(\rR\x11\x66unctionReference\x12\x35\n\targuments\x18\t \x03(\x0b\x32\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b\x32\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b\x32\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e\x32\x17.proto.AggregationPhaseR\x05phase\x12N\n\ninvocation\x18\n \x01(\x0e\x32..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12G\n\x0blower_bound\x18\x05 \x01(\x0b\x32&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b\x32&.proto.Expression.WindowFunction.BoundR\nupperBound\x12L\n\x0b\x62ounds_type\x18\x0c \x01(\x0e\x32+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType\"\xd1\x01\n\x07SortRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12&\n\x05sorts\x18\x03 \x03(\x0b\x32\x10.proto.SortFieldR\x05sorts\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xdc\x01\n\tFilterRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12/\n\tcondition\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionR\tcondition\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xde\x03\n\x06SetRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\"\n\x06inputs\x18\x02 \x03(\x0b\x32\n.proto.RelR\x06inputs\x12#\n\x02op\x18\x03 \x01(\x0e\x32\x13.proto.SetRel.SetOpR\x02op\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\x8c\x02\n\x05SetOp\x12\x16\n\x12SET_OP_UNSPECIFIED\x10\x00\x12\x18\n\x14SET_OP_MINUS_PRIMARY\x10\x01\x12\x1c\n\x18SET_OP_MINUS_PRIMARY_ALL\x10\x07\x12\x19\n\x15SET_OP_MINUS_MULTISET\x10\x02\x12\x1f\n\x1bSET_OP_INTERSECTION_PRIMARY\x10\x03\x12 \n\x1cSET_OP_INTERSECTION_MULTISET\x10\x04\x12$\n SET_OP_INTERSECTION_MULTISET_ALL\x10\x08\x12\x19\n\x15SET_OP_UNION_DISTINCT\x10\x05\x12\x14\n\x10SET_OP_UNION_ALL\x10\x06\"\x8e\x01\n\x12\x45xtensionSingleRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12,\n\x06\x64\x65tail\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\"j\n\x10\x45xtensionLeafRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12,\n\x06\x64\x65tail\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\"\x8f\x01\n\x11\x45xtensionMultiRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\"\n\x06inputs\x18\x02 \x03(\x0b\x32\n.proto.RelR\x06inputs\x12,\n\x06\x64\x65tail\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\"\xe9\x08\n\x0b\x45xchangeRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12\'\n\x0fpartition_count\x18\x03 \x01(\x05R\x0epartitionCount\x12;\n\x07targets\x18\x04 \x03(\x0b\x32!.proto.ExchangeRel.ExchangeTargetR\x07targets\x12N\n\x11scatter_by_fields\x18\x05 \x01(\x0b\x32 .proto.ExchangeRel.ScatterFieldsH\x00R\x0fscatterByFields\x12P\n\rsingle_target\x18\x06 \x01(\x0b\x32).proto.ExchangeRel.SingleBucketExpressionH\x00R\x0csingleTarget\x12M\n\x0cmulti_target\x18\x07 \x01(\x0b\x32(.proto.ExchangeRel.MultiBucketExpressionH\x00R\x0bmultiTarget\x12@\n\x0bround_robin\x18\x08 \x01(\x0b\x32\x1d.proto.ExchangeRel.RoundRobinH\x00R\nroundRobin\x12<\n\tbroadcast\x18\t \x01(\x0b\x32\x1c.proto.ExchangeRel.BroadcastH\x00R\tbroadcast\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1aI\n\rScatterFields\x12\x38\n\x06\x66ields\x18\x01 \x03(\x0b\x32 .proto.Expression.FieldReferenceR\x06\x66ields\x1aK\n\x16SingleBucketExpression\x12\x31\n\nexpression\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionR\nexpression\x1a|\n\x15MultiBucketExpression\x12\x31\n\nexpression\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionR\nexpression\x12\x30\n\x14\x63onstrained_to_count\x18\x02 \x01(\x08R\x12\x63onstrainedToCount\x1a\x0b\n\tBroadcast\x1a\"\n\nRoundRobin\x12\x14\n\x05\x65xact\x18\x01 \x01(\x08R\x05\x65xact\x1a\x8a\x01\n\x0e\x45xchangeTarget\x12!\n\x0cpartition_id\x18\x01 \x03(\x05R\x0bpartitionId\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uri\x12\x32\n\x08\x65xtended\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00R\x08\x65xtendedB\r\n\x0btarget_typeB\x0f\n\rexchange_kind\"\xfc\x02\n\tExpandRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12\x34\n\x06\x66ields\x18\x04 \x03(\x0b\x32\x1c.proto.ExpandRel.ExpandFieldR\x06\x66ields\x1a\xa7\x01\n\x0b\x45xpandField\x12J\n\x0fswitching_field\x18\x02 \x01(\x0b\x32\x1f.proto.ExpandRel.SwitchingFieldH\x00R\x0eswitchingField\x12>\n\x10\x63onsistent_field\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionH\x00R\x0f\x63onsistentFieldB\x0c\n\nfield_type\x1a\x43\n\x0eSwitchingField\x12\x31\n\nduplicates\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionR\nduplicates\"A\n\x07RelRoot\x12 \n\x05input\x18\x01 \x01(\x0b\x32\n.proto.RelR\x05input\x12\x14\n\x05names\x18\x02 \x03(\tR\x05names\"\xd0\x08\n\x03Rel\x12$\n\x04read\x18\x01 \x01(\x0b\x32\x0e.proto.ReadRelH\x00R\x04read\x12*\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x10.proto.FilterRelH\x00R\x06\x66ilter\x12\'\n\x05\x66\x65tch\x18\x03 \x01(\x0b\x32\x0f.proto.FetchRelH\x00R\x05\x66\x65tch\x12\x33\n\taggregate\x18\x04 \x01(\x0b\x32\x13.proto.AggregateRelH\x00R\taggregate\x12$\n\x04sort\x18\x05 \x01(\x0b\x32\x0e.proto.SortRelH\x00R\x04sort\x12$\n\x04join\x18\x06 \x01(\x0b\x32\x0e.proto.JoinRelH\x00R\x04join\x12-\n\x07project\x18\x07 \x01(\x0b\x32\x11.proto.ProjectRelH\x00R\x07project\x12!\n\x03set\x18\x08 \x01(\x0b\x32\r.proto.SetRelH\x00R\x03set\x12\x46\n\x10\x65xtension_single\x18\t \x01(\x0b\x32\x19.proto.ExtensionSingleRelH\x00R\x0f\x65xtensionSingle\x12\x43\n\x0f\x65xtension_multi\x18\n \x01(\x0b\x32\x18.proto.ExtensionMultiRelH\x00R\x0e\x65xtensionMulti\x12@\n\x0e\x65xtension_leaf\x18\x0b \x01(\x0b\x32\x17.proto.ExtensionLeafRelH\x00R\rextensionLeaf\x12\'\n\x05\x63ross\x18\x0c \x01(\x0b\x32\x0f.proto.CrossRelH\x00R\x05\x63ross\x12\x33\n\treference\x18\x15 \x01(\x0b\x32\x13.proto.ReferenceRelH\x00R\treference\x12\'\n\x05write\x18\x13 \x01(\x0b\x32\x0f.proto.WriteRelH\x00R\x05write\x12!\n\x03\x64\x64l\x18\x14 \x01(\x0b\x32\r.proto.DdlRelH\x00R\x03\x64\x64l\x12*\n\x06update\x18\x16 \x01(\x0b\x32\x10.proto.UpdateRelH\x00R\x06update\x12\x31\n\thash_join\x18\r \x01(\x0b\x32\x12.proto.HashJoinRelH\x00R\x08hashJoin\x12\x34\n\nmerge_join\x18\x0e \x01(\x0b\x32\x13.proto.MergeJoinRelH\x00R\tmergeJoin\x12\x44\n\x10nested_loop_join\x18\x12 \x01(\x0b\x32\x18.proto.NestedLoopJoinRelH\x00R\x0enestedLoopJoin\x12=\n\x06window\x18\x11 \x01(\x0b\x32#.proto.ConsistentPartitionWindowRelH\x00R\x06window\x12\x30\n\x08\x65xchange\x18\x0f \x01(\x0b\x32\x12.proto.ExchangeRelH\x00R\x08\x65xchange\x12*\n\x06\x65xpand\x18\x10 \x01(\x0b\x32\x10.proto.ExpandRelH\x00R\x06\x65xpandB\n\n\x08rel_type\"|\n\x10NamedObjectWrite\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"?\n\x0f\x45xtensionObject\x12,\n\x06\x64\x65tail\x18\x01 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\"\x86\x06\n\x06\x44\x64lRel\x12<\n\x0cnamed_object\x18\x01 \x01(\x0b\x32\x17.proto.NamedObjectWriteH\x00R\x0bnamedObject\x12\x43\n\x10\x65xtension_object\x18\x02 \x01(\x0b\x32\x16.proto.ExtensionObjectH\x00R\x0f\x65xtensionObject\x12\x35\n\x0ctable_schema\x18\x03 \x01(\x0b\x32\x12.proto.NamedStructR\x0btableSchema\x12G\n\x0etable_defaults\x18\x04 \x01(\x0b\x32 .proto.Expression.Literal.StructR\rtableDefaults\x12/\n\x06object\x18\x05 \x01(\x0e\x32\x17.proto.DdlRel.DdlObjectR\x06object\x12#\n\x02op\x18\x06 \x01(\x0e\x32\x13.proto.DdlRel.DdlOpR\x02op\x12\x33\n\x0fview_definition\x18\x07 \x01(\x0b\x32\n.proto.RelR\x0eviewDefinition\x12(\n\x06\x63ommon\x18\x08 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12R\n\x12\x61\x64vanced_extension\x18\t \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"R\n\tDdlObject\x12\x1a\n\x16\x44\x44L_OBJECT_UNSPECIFIED\x10\x00\x12\x14\n\x10\x44\x44L_OBJECT_TABLE\x10\x01\x12\x13\n\x0f\x44\x44L_OBJECT_VIEW\x10\x02\"\x8d\x01\n\x05\x44\x64lOp\x12\x16\n\x12\x44\x44L_OP_UNSPECIFIED\x10\x00\x12\x11\n\rDDL_OP_CREATE\x10\x01\x12\x1c\n\x18\x44\x44L_OP_CREATE_OR_REPLACE\x10\x02\x12\x10\n\x0c\x44\x44L_OP_ALTER\x10\x03\x12\x0f\n\x0b\x44\x44L_OP_DROP\x10\x04\x12\x18\n\x14\x44\x44L_OP_DROP_IF_EXIST\x10\x05\x42\x0c\n\nwrite_type\"\x9b\x07\n\x08WriteRel\x12:\n\x0bnamed_table\x18\x01 \x01(\x0b\x32\x17.proto.NamedObjectWriteH\x00R\nnamedTable\x12\x41\n\x0f\x65xtension_table\x18\x02 \x01(\x0b\x32\x16.proto.ExtensionObjectH\x00R\x0e\x65xtensionTable\x12\x35\n\x0ctable_schema\x18\x03 \x01(\x0b\x32\x12.proto.NamedStructR\x0btableSchema\x12\'\n\x02op\x18\x04 \x01(\x0e\x32\x17.proto.WriteRel.WriteOpR\x02op\x12 \n\x05input\x18\x05 \x01(\x0b\x32\n.proto.RelR\x05input\x12;\n\x0b\x63reate_mode\x18\x08 \x01(\x0e\x32\x1a.proto.WriteRel.CreateModeR\ncreateMode\x12\x32\n\x06output\x18\x06 \x01(\x0e\x32\x1a.proto.WriteRel.OutputModeR\x06output\x12(\n\x06\x63ommon\x18\x07 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12R\n\x12\x61\x64vanced_extension\x18\t \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"u\n\x07WriteOp\x12\x18\n\x14WRITE_OP_UNSPECIFIED\x10\x00\x12\x13\n\x0fWRITE_OP_INSERT\x10\x01\x12\x13\n\x0fWRITE_OP_DELETE\x10\x02\x12\x13\n\x0fWRITE_OP_UPDATE\x10\x03\x12\x11\n\rWRITE_OP_CTAS\x10\x04\"\xb1\x01\n\nCreateMode\x12\x1b\n\x17\x43REATE_MODE_UNSPECIFIED\x10\x00\x12 \n\x1c\x43REATE_MODE_APPEND_IF_EXISTS\x10\x01\x12!\n\x1d\x43REATE_MODE_REPLACE_IF_EXISTS\x10\x02\x12 \n\x1c\x43REATE_MODE_IGNORE_IF_EXISTS\x10\x03\x12\x1f\n\x1b\x43REATE_MODE_ERROR_IF_EXISTS\x10\x04\"f\n\nOutputMode\x12\x1b\n\x17OUTPUT_MODE_UNSPECIFIED\x10\x00\x12\x19\n\x15OUTPUT_MODE_NO_OUTPUT\x10\x01\x12 \n\x1cOUTPUT_MODE_MODIFIED_RECORDS\x10\x02\x42\x0c\n\nwrite_type\"\xd3\x03\n\tUpdateRel\x12\x34\n\x0bnamed_table\x18\x01 \x01(\x0b\x32\x11.proto.NamedTableH\x00R\nnamedTable\x12\x35\n\x0ctable_schema\x18\x02 \x01(\x0b\x32\x12.proto.NamedStructR\x0btableSchema\x12/\n\tcondition\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionR\tcondition\x12N\n\x0ftransformations\x18\x04 \x03(\x0b\x32$.proto.UpdateRel.TransformExpressionR\x0ftransformations\x12R\n\x12\x61\x64vanced_extension\x18\x05 \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1au\n\x13TransformExpression\x12\x39\n\x0etransformation\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionR\x0etransformation\x12#\n\rcolumn_target\x18\x02 \x01(\x05R\x0c\x63olumnTargetB\r\n\x0bupdate_type\"v\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xab\x04\n\x11\x43omparisonJoinKey\x12\x34\n\x04left\x18\x01 \x01(\x0b\x32 .proto.Expression.FieldReferenceR\x04left\x12\x36\n\x05right\x18\x02 \x01(\x0b\x32 .proto.Expression.FieldReferenceR\x05right\x12G\n\ncomparison\x18\x03 \x01(\x0b\x32\'.proto.ComparisonJoinKey.ComparisonTypeR\ncomparison\x1a\xa5\x01\n\x0e\x43omparisonType\x12G\n\x06simple\x18\x01 \x01(\x0e\x32-.proto.ComparisonJoinKey.SimpleComparisonTypeH\x00R\x06simple\x12<\n\x19\x63ustom_function_reference\x18\x02 \x01(\rH\x00R\x17\x63ustomFunctionReferenceB\x0c\n\ninner_type\"\xb6\x01\n\x14SimpleComparisonType\x12&\n\"SIMPLE_COMPARISON_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19SIMPLE_COMPARISON_TYPE_EQ\x10\x01\x12/\n+SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM\x10\x02\x12&\n\"SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL\x10\x03\"\xd4\x07\n\x0bHashJoinRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\x1e\n\x04left\x18\x02 \x01(\x0b\x32\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b\x32\n.proto.RelR\x05right\x12\x41\n\tleft_keys\x18\x04 \x03(\x0b\x32 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12\x43\n\nright_keys\x18\x05 \x03(\x0b\x32 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b\x32\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b\x32\x11.proto.ExpressionR\x0epostJoinFilter\x12/\n\x04type\x18\x07 \x01(\x0e\x32\x1b.proto.HashJoinRel.JoinTypeR\x04type\x12>\n\x0b\x62uild_input\x18\t \x01(\x0e\x32\x1d.proto.HashJoinRel.BuildInputR\nbuildInput\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c\"V\n\nBuildInput\x12\x1b\n\x17\x42UILD_INPUT_UNSPECIFIED\x10\x00\x12\x14\n\x10\x42UILD_INPUT_LEFT\x10\x01\x12\x15\n\x11\x42UILD_INPUT_RIGHT\x10\x02\"\xbe\x06\n\x0cMergeJoinRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\x1e\n\x04left\x18\x02 \x01(\x0b\x32\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b\x32\n.proto.RelR\x05right\x12\x41\n\tleft_keys\x18\x04 \x03(\x0b\x32 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12\x43\n\nright_keys\x18\x05 \x03(\x0b\x32 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b\x32\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b\x32\x11.proto.ExpressionR\x0epostJoinFilter\x12\x30\n\x04type\x18\x07 \x01(\x0e\x32\x1c.proto.MergeJoinRel.JoinTypeR\x04type\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c\"\x88\x05\n\x11NestedLoopJoinRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\x1e\n\x04left\x18\x02 \x01(\x0b\x32\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b\x32\n.proto.RelR\x05right\x12\x31\n\nexpression\x18\x04 \x01(\x0b\x32\x11.proto.ExpressionR\nexpression\x12\x35\n\x04type\x18\x05 \x01(\x0e\x32!.proto.NestedLoopJoinRel.JoinTypeR\x04type\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c\"\x82\x01\n\x10\x46unctionArgument\x12\x14\n\x04\x65num\x18\x01 \x01(\tH\x00R\x04\x65num\x12!\n\x04type\x18\x02 \x01(\x0b\x32\x0b.proto.TypeH\x00R\x04type\x12)\n\x05value\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionH\x00R\x05valueB\n\n\x08\x61rg_type\"D\n\x0e\x46unctionOption\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1e\n\npreference\x18\x02 \x03(\tR\npreference\"\xdfW\n\nExpression\x12\x35\n\x07literal\x18\x01 \x01(\x0b\x32\x19.proto.Expression.LiteralH\x00R\x07literal\x12@\n\tselection\x18\x02 \x01(\x0b\x32 .proto.Expression.FieldReferenceH\x00R\tselection\x12K\n\x0fscalar_function\x18\x03 \x01(\x0b\x32 .proto.Expression.ScalarFunctionH\x00R\x0escalarFunction\x12K\n\x0fwindow_function\x18\x05 \x01(\x0b\x32 .proto.Expression.WindowFunctionH\x00R\x0ewindowFunction\x12\x33\n\x07if_then\x18\x06 \x01(\x0b\x32\x18.proto.Expression.IfThenH\x00R\x06ifThen\x12Q\n\x11switch_expression\x18\x07 \x01(\x0b\x32\".proto.Expression.SwitchExpressionH\x00R\x10switchExpression\x12L\n\x10singular_or_list\x18\x08 \x01(\x0b\x32 .proto.Expression.SingularOrListH\x00R\x0esingularOrList\x12\x43\n\rmulti_or_list\x18\t \x01(\x0b\x32\x1d.proto.Expression.MultiOrListH\x00R\x0bmultiOrList\x12,\n\x04\x63\x61st\x18\x0b \x01(\x0b\x32\x16.proto.Expression.CastH\x00R\x04\x63\x61st\x12\x38\n\x08subquery\x18\x0c \x01(\x0b\x32\x1a.proto.Expression.SubqueryH\x00R\x08subquery\x12\x32\n\x06nested\x18\r \x01(\x0b\x32\x18.proto.Expression.NestedH\x00R\x06nested\x12\x46\n\x11\x64ynamic_parameter\x18\x0e \x01(\x0b\x32\x17.proto.DynamicParameterH\x00R\x10\x64ynamicParameter\x12\x30\n\x04\x65num\x18\n \x01(\x0b\x32\x16.proto.Expression.EnumB\x02\x18\x01H\x00R\x04\x65num\x1a\x86\x01\n\x04\x45num\x12\x1e\n\tspecified\x18\x01 \x01(\tH\x00R\tspecified\x12@\n\x0bunspecified\x18\x02 \x01(\x0b\x32\x1c.proto.Expression.Enum.EmptyH\x00R\x0bunspecified\x1a\x0b\n\x05\x45mpty:\x02\x18\x01:\x02\x18\x01\x42\x0b\n\tenum_kind\x1a\xde\x16\n\x07Literal\x12\x1a\n\x07\x62oolean\x18\x01 \x01(\x08H\x00R\x07\x62oolean\x12\x10\n\x02i8\x18\x02 \x01(\x05H\x00R\x02i8\x12\x12\n\x03i16\x18\x03 \x01(\x05H\x00R\x03i16\x12\x12\n\x03i32\x18\x05 \x01(\x05H\x00R\x03i32\x12\x12\n\x03i64\x18\x07 \x01(\x03H\x00R\x03i64\x12\x14\n\x04\x66p32\x18\n \x01(\x02H\x00R\x04\x66p32\x12\x14\n\x04\x66p64\x18\x0b \x01(\x01H\x00R\x04\x66p64\x12\x18\n\x06string\x18\x0c \x01(\tH\x00R\x06string\x12\x18\n\x06\x62inary\x18\r \x01(\x0cH\x00R\x06\x62inary\x12\"\n\ttimestamp\x18\x0e \x01(\x03\x42\x02\x18\x01H\x00R\ttimestamp\x12\x14\n\x04\x64\x61te\x18\x10 \x01(\x05H\x00R\x04\x64\x61te\x12\x14\n\x04time\x18\x11 \x01(\x03H\x00R\x04time\x12\x64\n\x16interval_year_to_month\x18\x13 \x01(\x0b\x32-.proto.Expression.Literal.IntervalYearToMonthH\x00R\x13intervalYearToMonth\x12\x64\n\x16interval_day_to_second\x18\x14 \x01(\x0b\x32-.proto.Expression.Literal.IntervalDayToSecondH\x00R\x13intervalDayToSecond\x12Y\n\x11interval_compound\x18$ \x01(\x0b\x32*.proto.Expression.Literal.IntervalCompoundH\x00R\x10intervalCompound\x12\x1f\n\nfixed_char\x18\x15 \x01(\tH\x00R\tfixedChar\x12>\n\x08var_char\x18\x16 \x01(\x0b\x32!.proto.Expression.Literal.VarCharH\x00R\x07varChar\x12#\n\x0c\x66ixed_binary\x18\x17 \x01(\x0cH\x00R\x0b\x66ixedBinary\x12=\n\x07\x64\x65\x63imal\x18\x18 \x01(\x0b\x32!.proto.Expression.Literal.DecimalH\x00R\x07\x64\x65\x63imal\x12P\n\x0eprecision_time\x18% \x01(\x0b\x32\'.proto.Expression.Literal.PrecisionTimeH\x00R\rprecisionTime\x12_\n\x13precision_timestamp\x18\" \x01(\x0b\x32,.proto.Expression.Literal.PrecisionTimestampH\x00R\x12precisionTimestamp\x12\x64\n\x16precision_timestamp_tz\x18# \x01(\x0b\x32,.proto.Expression.Literal.PrecisionTimestampH\x00R\x14precisionTimestampTz\x12:\n\x06struct\x18\x19 \x01(\x0b\x32 .proto.Expression.Literal.StructH\x00R\x06struct\x12\x31\n\x03map\x18\x1a \x01(\x0b\x32\x1d.proto.Expression.Literal.MapH\x00R\x03map\x12\'\n\x0ctimestamp_tz\x18\x1b \x01(\x03\x42\x02\x18\x01H\x00R\x0btimestampTz\x12\x14\n\x04uuid\x18\x1c \x01(\x0cH\x00R\x04uuid\x12!\n\x04null\x18\x1d \x01(\x0b\x32\x0b.proto.TypeH\x00R\x04null\x12\x34\n\x04list\x18\x1e \x01(\x0b\x32\x1e.proto.Expression.Literal.ListH\x00R\x04list\x12\x31\n\nempty_list\x18\x1f \x01(\x0b\x32\x10.proto.Type.ListH\x00R\temptyList\x12.\n\tempty_map\x18 \x01(\x0b\x32\x0f.proto.Type.MapH\x00R\x08\x65mptyMap\x12J\n\x0cuser_defined\x18! \x01(\x0b\x32%.proto.Expression.Literal.UserDefinedH\x00R\x0buserDefined\x12\x1a\n\x08nullable\x18\x32 \x01(\x08R\x08nullable\x12\x38\n\x18type_variation_reference\x18\x33 \x01(\rR\x16typeVariationReference\x1a\x37\n\x07VarChar\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x12\x16\n\x06length\x18\x02 \x01(\rR\x06length\x1aS\n\x07\x44\x65\x63imal\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x12\x14\n\x05scale\x18\x03 \x01(\x05R\x05scale\x1a\x43\n\rPrecisionTime\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1aH\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1a\xb6\x01\n\x03Map\x12\x45\n\nkey_values\x18\x01 \x03(\x0b\x32&.proto.Expression.Literal.Map.KeyValueR\tkeyValues\x1ah\n\x08KeyValue\x12+\n\x03key\x18\x01 \x01(\x0b\x32\x19.proto.Expression.LiteralR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.proto.Expression.LiteralR\x05value\x1a\x43\n\x13IntervalYearToMonth\x12\x14\n\x05years\x18\x01 \x01(\x05R\x05years\x12\x16\n\x06months\x18\x02 \x01(\x05R\x06months\x1a\xbf\x01\n\x13IntervalDayToSecond\x12\x12\n\x04\x64\x61ys\x18\x01 \x01(\x05R\x04\x64\x61ys\x12\x18\n\x07seconds\x18\x02 \x01(\x05R\x07seconds\x12(\n\x0cmicroseconds\x18\x03 \x01(\x05\x42\x02\x18\x01H\x00R\x0cmicroseconds\x12\x1e\n\tprecision\x18\x04 \x01(\x05H\x00R\tprecision\x12\x1e\n\nsubseconds\x18\x05 \x01(\x03R\nsubsecondsB\x10\n\x0eprecision_mode\x1a\xda\x01\n\x10IntervalCompound\x12\x62\n\x16interval_year_to_month\x18\x01 \x01(\x0b\x32-.proto.Expression.Literal.IntervalYearToMonthR\x13intervalYearToMonth\x12\x62\n\x16interval_day_to_second\x18\x02 \x01(\x0b\x32-.proto.Expression.Literal.IntervalDayToSecondR\x13intervalDayToSecond\x1a;\n\x06Struct\x12\x31\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x19.proto.Expression.LiteralR\x06\x66ields\x1a\x39\n\x04List\x12\x31\n\x06values\x18\x01 \x03(\x0b\x32\x19.proto.Expression.LiteralR\x06values\x1a\xe5\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x12>\n\x0ftype_parameters\x18\x03 \x03(\x0b\x32\x15.proto.Type.ParameterR\x0etypeParameters\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00R\x05value\x12:\n\x06struct\x18\x04 \x01(\x0b\x32 .proto.Expression.Literal.StructH\x00R\x06structB\x05\n\x03valB\x0e\n\x0cliteral_type\x1a\x9f\x04\n\x06Nested\x12\x1a\n\x08nullable\x18\x01 \x01(\x08R\x08nullable\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x06struct\x18\x03 \x01(\x0b\x32\x1f.proto.Expression.Nested.StructH\x00R\x06struct\x12\x33\n\x04list\x18\x04 \x01(\x0b\x32\x1d.proto.Expression.Nested.ListH\x00R\x04list\x12\x30\n\x03map\x18\x05 \x01(\x0b\x32\x1c.proto.Expression.Nested.MapH\x00R\x03map\x1a\xa5\x01\n\x03Map\x12\x44\n\nkey_values\x18\x01 \x03(\x0b\x32%.proto.Expression.Nested.Map.KeyValueR\tkeyValues\x1aX\n\x08KeyValue\x12#\n\x03key\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionR\x03key\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x11.proto.ExpressionR\x05value\x1a\x33\n\x06Struct\x12)\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionR\x06\x66ields\x1a\x31\n\x04List\x12)\n\x06values\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionR\x06valuesB\r\n\x0bnested_type\x1a\x80\x02\n\x0eScalarFunction\x12-\n\x12\x66unction_reference\x18\x01 \x01(\rR\x11\x66unctionReference\x12\x35\n\targuments\x18\x04 \x03(\x0b\x32\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x05 \x03(\x0b\x32\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x03 \x01(\x0b\x32\x0b.proto.TypeR\noutputType\x12)\n\x04\x61rgs\x18\x02 \x03(\x0b\x32\x11.proto.ExpressionB\x02\x18\x01R\x04\x61rgs\x1a\xd5\t\n\x0eWindowFunction\x12-\n\x12\x66unction_reference\x18\x01 \x01(\rR\x11\x66unctionReference\x12\x35\n\targuments\x18\t \x03(\x0b\x32\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b\x32\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b\x32\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e\x32\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b\x32\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\n \x01(\x0e\x32..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12\x31\n\npartitions\x18\x02 \x03(\x0b\x32\x11.proto.ExpressionR\npartitions\x12L\n\x0b\x62ounds_type\x18\x0c \x01(\x0e\x32+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType\x12G\n\x0blower_bound\x18\x05 \x01(\x0b\x32&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b\x32&.proto.Expression.WindowFunction.BoundR\nupperBound\x12)\n\x04\x61rgs\x18\x08 \x03(\x0b\x32\x11.proto.ExpressionB\x02\x18\x01R\x04\x61rgs\x1a\xc0\x03\n\x05\x42ound\x12P\n\tpreceding\x18\x01 \x01(\x0b\x32\x30.proto.Expression.WindowFunction.Bound.PrecedingH\x00R\tpreceding\x12P\n\tfollowing\x18\x02 \x01(\x0b\x32\x30.proto.Expression.WindowFunction.Bound.FollowingH\x00R\tfollowing\x12T\n\x0b\x63urrent_row\x18\x03 \x01(\x0b\x32\x31.proto.Expression.WindowFunction.Bound.CurrentRowH\x00R\ncurrentRow\x12P\n\tunbounded\x18\x04 \x01(\x0b\x32\x30.proto.Expression.WindowFunction.Bound.UnboundedH\x00R\tunbounded\x1a#\n\tPreceding\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a#\n\tFollowing\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a\x0c\n\nCurrentRow\x1a\x0b\n\tUnboundedB\x06\n\x04kind\"V\n\nBoundsType\x12\x1b\n\x17\x42OUNDS_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x42OUNDS_TYPE_ROWS\x10\x01\x12\x15\n\x11\x42OUNDS_TYPE_RANGE\x10\x02\x1a\xba\x01\n\x06IfThen\x12\x33\n\x03ifs\x18\x01 \x03(\x0b\x32!.proto.Expression.IfThen.IfClauseR\x03ifs\x12%\n\x04\x65lse\x18\x02 \x01(\x0b\x32\x11.proto.ExpressionR\x04\x65lse\x1aT\n\x08IfClause\x12!\n\x02if\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b\x32\x11.proto.ExpressionR\x04then\x1a\xa0\x02\n\x04\x43\x61st\x12\x1f\n\x04type\x18\x01 \x01(\x0b\x32\x0b.proto.TypeR\x04type\x12\'\n\x05input\x18\x02 \x01(\x0b\x32\x11.proto.ExpressionR\x05input\x12Q\n\x10\x66\x61ilure_behavior\x18\x03 \x01(\x0e\x32&.proto.Expression.Cast.FailureBehaviorR\x0f\x66\x61ilureBehavior\"{\n\x0f\x46\x61ilureBehavior\x12 \n\x1c\x46\x41ILURE_BEHAVIOR_UNSPECIFIED\x10\x00\x12 \n\x1c\x46\x41ILURE_BEHAVIOR_RETURN_NULL\x10\x01\x12$\n FAILURE_BEHAVIOR_THROW_EXCEPTION\x10\x02\x1a\xfd\x01\n\x10SwitchExpression\x12\'\n\x05match\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionR\x05match\x12<\n\x03ifs\x18\x01 \x03(\x0b\x32*.proto.Expression.SwitchExpression.IfValueR\x03ifs\x12%\n\x04\x65lse\x18\x02 \x01(\x0b\x32\x11.proto.ExpressionR\x04\x65lse\x1a[\n\x07IfValue\x12)\n\x02if\x18\x01 \x01(\x0b\x32\x19.proto.Expression.LiteralR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b\x32\x11.proto.ExpressionR\x04then\x1a\x66\n\x0eSingularOrList\x12\'\n\x05value\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionR\x05value\x12+\n\x07options\x18\x02 \x03(\x0b\x32\x11.proto.ExpressionR\x07options\x1a\xab\x01\n\x0bMultiOrList\x12\'\n\x05value\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionR\x05value\x12>\n\x07options\x18\x02 \x03(\x0b\x32$.proto.Expression.MultiOrList.RecordR\x07options\x1a\x33\n\x06Record\x12)\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionR\x06\x66ields\x1a\x83\x04\n\x10\x45mbeddedFunction\x12/\n\targuments\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionR\targuments\x12,\n\x0boutput_type\x18\x02 \x01(\x0b\x32\x0b.proto.TypeR\noutputType\x12o\n\x16python_pickle_function\x18\x03 \x01(\x0b\x32\x37.proto.Expression.EmbeddedFunction.PythonPickleFunctionH\x00R\x14pythonPickleFunction\x12l\n\x15web_assembly_function\x18\x04 \x01(\x0b\x32\x36.proto.Expression.EmbeddedFunction.WebAssemblyFunctionH\x00R\x13webAssemblyFunction\x1aV\n\x14PythonPickleFunction\x12\x1a\n\x08\x66unction\x18\x01 \x01(\x0cR\x08\x66unction\x12\"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisite\x1aQ\n\x13WebAssemblyFunction\x12\x16\n\x06script\x18\x01 \x01(\x0cR\x06script\x12\"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisiteB\x06\n\x04kind\x1a\xcc\x04\n\x10ReferenceSegment\x12\x44\n\x07map_key\x18\x01 \x01(\x0b\x32).proto.Expression.ReferenceSegment.MapKeyH\x00R\x06mapKey\x12S\n\x0cstruct_field\x18\x02 \x01(\x0b\x32..proto.Expression.ReferenceSegment.StructFieldH\x00R\x0bstructField\x12S\n\x0clist_element\x18\x03 \x01(\x0b\x32..proto.Expression.ReferenceSegment.ListElementH\x00R\x0blistElement\x1av\n\x06MapKey\x12\x32\n\x07map_key\x18\x01 \x01(\x0b\x32\x19.proto.Expression.LiteralR\x06mapKey\x12\x38\n\x05\x63hild\x18\x02 \x01(\x0b\x32\".proto.Expression.ReferenceSegmentR\x05\x63hild\x1a]\n\x0bStructField\x12\x14\n\x05\x66ield\x18\x01 \x01(\x05R\x05\x66ield\x12\x38\n\x05\x63hild\x18\x02 \x01(\x0b\x32\".proto.Expression.ReferenceSegmentR\x05\x63hild\x1a_\n\x0bListElement\x12\x16\n\x06offset\x18\x01 \x01(\x05R\x06offset\x12\x38\n\x05\x63hild\x18\x02 \x01(\x0b\x32\".proto.Expression.ReferenceSegmentR\x05\x63hildB\x10\n\x0ereference_type\x1a\xee\n\n\x0eMaskExpression\x12\x45\n\x06select\x18\x01 \x01(\x0b\x32-.proto.Expression.MaskExpression.StructSelectR\x06select\x12\x38\n\x18maintain_singular_struct\x18\x02 \x01(\x08R\x16maintainSingularStruct\x1a\xdc\x01\n\x06Select\x12G\n\x06struct\x18\x01 \x01(\x0b\x32-.proto.Expression.MaskExpression.StructSelectH\x00R\x06struct\x12\x41\n\x04list\x18\x02 \x01(\x0b\x32+.proto.Expression.MaskExpression.ListSelectH\x00R\x04list\x12>\n\x03map\x18\x03 \x01(\x0b\x32*.proto.Expression.MaskExpression.MapSelectH\x00R\x03mapB\x06\n\x04type\x1a^\n\x0cStructSelect\x12N\n\x0cstruct_items\x18\x01 \x03(\x0b\x32+.proto.Expression.MaskExpression.StructItemR\x0bstructItems\x1a\x61\n\nStructItem\x12\x14\n\x05\x66ield\x18\x01 \x01(\x05R\x05\x66ield\x12=\n\x05\x63hild\x18\x02 \x01(\x0b\x32\'.proto.Expression.MaskExpression.SelectR\x05\x63hild\x1a\xd6\x03\n\nListSelect\x12X\n\tselection\x18\x01 \x03(\x0b\x32:.proto.Expression.MaskExpression.ListSelect.ListSelectItemR\tselection\x12=\n\x05\x63hild\x18\x02 \x01(\x0b\x32\'.proto.Expression.MaskExpression.SelectR\x05\x63hild\x1a\xae\x02\n\x0eListSelectItem\x12\\\n\x04item\x18\x01 \x01(\x0b\x32\x46.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListElementH\x00R\x04item\x12\\\n\x05slice\x18\x02 \x01(\x0b\x32\x44.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListSliceH\x00R\x05slice\x1a#\n\x0bListElement\x12\x14\n\x05\x66ield\x18\x01 \x01(\x05R\x05\x66ield\x1a\x33\n\tListSlice\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03\x65nd\x18\x02 \x01(\x05R\x03\x65ndB\x06\n\x04type\x1a\xdf\x02\n\tMapSelect\x12\x45\n\x03key\x18\x01 \x01(\x0b\x32\x31.proto.Expression.MaskExpression.MapSelect.MapKeyH\x00R\x03key\x12]\n\nexpression\x18\x02 \x01(\x0b\x32;.proto.Expression.MaskExpression.MapSelect.MapKeyExpressionH\x00R\nexpression\x12=\n\x05\x63hild\x18\x03 \x01(\x0b\x32\'.proto.Expression.MaskExpression.SelectR\x05\x63hild\x1a!\n\x06MapKey\x12\x17\n\x07map_key\x18\x01 \x01(\tR\x06mapKey\x1a@\n\x10MapKeyExpression\x12,\n\x12map_key_expression\x18\x01 \x01(\tR\x10mapKeyExpressionB\x08\n\x06select\x1a\xf9\x03\n\x0e\x46ieldReference\x12O\n\x10\x64irect_reference\x18\x01 \x01(\x0b\x32\".proto.Expression.ReferenceSegmentH\x00R\x0f\x64irectReference\x12M\n\x10masked_reference\x18\x02 \x01(\x0b\x32 .proto.Expression.MaskExpressionH\x00R\x0fmaskedReference\x12\x33\n\nexpression\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionH\x01R\nexpression\x12W\n\x0eroot_reference\x18\x04 \x01(\x0b\x32..proto.Expression.FieldReference.RootReferenceH\x01R\rrootReference\x12Z\n\x0fouter_reference\x18\x05 \x01(\x0b\x32/.proto.Expression.FieldReference.OuterReferenceH\x01R\x0eouterReference\x1a\x0f\n\rRootReference\x1a-\n\x0eOuterReference\x12\x1b\n\tsteps_out\x18\x01 \x01(\rR\x08stepsOutB\x10\n\x0ereference_typeB\x0b\n\troot_type\x1a\xe1\t\n\x08Subquery\x12;\n\x06scalar\x18\x01 \x01(\x0b\x32!.proto.Expression.Subquery.ScalarH\x00R\x06scalar\x12K\n\x0cin_predicate\x18\x02 \x01(\x0b\x32&.proto.Expression.Subquery.InPredicateH\x00R\x0binPredicate\x12N\n\rset_predicate\x18\x03 \x01(\x0b\x32\'.proto.Expression.Subquery.SetPredicateH\x00R\x0csetPredicate\x12Q\n\x0eset_comparison\x18\x04 \x01(\x0b\x32(.proto.Expression.Subquery.SetComparisonH\x00R\rsetComparison\x1a*\n\x06Scalar\x12 \n\x05input\x18\x01 \x01(\x0b\x32\n.proto.RelR\x05input\x1a\x62\n\x0bInPredicate\x12+\n\x07needles\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionR\x07needles\x12&\n\x08haystack\x18\x02 \x01(\x0b\x32\n.proto.RelR\x08haystack\x1a\xe9\x01\n\x0cSetPredicate\x12V\n\x0cpredicate_op\x18\x01 \x01(\x0e\x32\x33.proto.Expression.Subquery.SetPredicate.PredicateOpR\x0bpredicateOp\x12\"\n\x06tuples\x18\x02 \x01(\x0b\x32\n.proto.RelR\x06tuples\"]\n\x0bPredicateOp\x12\x1c\n\x18PREDICATE_OP_UNSPECIFIED\x10\x00\x12\x17\n\x13PREDICATE_OP_EXISTS\x10\x01\x12\x17\n\x13PREDICATE_OP_UNIQUE\x10\x02\x1a\x9a\x04\n\rSetComparison\x12W\n\x0creduction_op\x18\x01 \x01(\x0e\x32\x34.proto.Expression.Subquery.SetComparison.ReductionOpR\x0breductionOp\x12Z\n\rcomparison_op\x18\x02 \x01(\x0e\x32\x35.proto.Expression.Subquery.SetComparison.ComparisonOpR\x0c\x63omparisonOp\x12%\n\x04left\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionR\x04left\x12 \n\x05right\x18\x04 \x01(\x0b\x32\n.proto.RelR\x05right\"\xb1\x01\n\x0c\x43omparisonOp\x12\x1d\n\x19\x43OMPARISON_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10\x43OMPARISON_OP_EQ\x10\x01\x12\x14\n\x10\x43OMPARISON_OP_NE\x10\x02\x12\x14\n\x10\x43OMPARISON_OP_LT\x10\x03\x12\x14\n\x10\x43OMPARISON_OP_GT\x10\x04\x12\x14\n\x10\x43OMPARISON_OP_LE\x10\x05\x12\x14\n\x10\x43OMPARISON_OP_GE\x10\x06\"W\n\x0bReductionOp\x12\x1c\n\x18REDUCTION_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10REDUCTION_OP_ANY\x10\x01\x12\x14\n\x10REDUCTION_OP_ALL\x10\x02\x42\x0f\n\rsubquery_typeB\n\n\x08rex_type\"d\n\x10\x44ynamicParameter\x12\x1f\n\x04type\x18\x01 \x01(\x0b\x32\x0b.proto.TypeR\x04type\x12/\n\x13parameter_reference\x18\x02 \x01(\rR\x12parameterReference\"\xa5\x03\n\tSortField\x12%\n\x04\x65xpr\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionR\x04\x65xpr\x12>\n\tdirection\x18\x02 \x01(\x0e\x32\x1e.proto.SortField.SortDirectionH\x00R\tdirection\x12\x44\n\x1d\x63omparison_function_reference\x18\x03 \x01(\rH\x00R\x1b\x63omparisonFunctionReference\"\xdd\x01\n\rSortDirection\x12\x1e\n\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12\"\n\x1eSORT_DIRECTION_ASC_NULLS_FIRST\x10\x01\x12!\n\x1dSORT_DIRECTION_ASC_NULLS_LAST\x10\x02\x12#\n\x1fSORT_DIRECTION_DESC_NULLS_FIRST\x10\x03\x12\"\n\x1eSORT_DIRECTION_DESC_NULLS_LAST\x10\x04\x12\x1c\n\x18SORT_DIRECTION_CLUSTERED\x10\x05\x42\x0b\n\tsort_kind\"\xb1\x04\n\x11\x41ggregateFunction\x12-\n\x12\x66unction_reference\x18\x01 \x01(\rR\x11\x66unctionReference\x12\x35\n\targuments\x18\x07 \x03(\x0b\x32\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x08 \x03(\x0b\x32\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x05 \x01(\x0b\x32\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x04 \x01(\x0e\x32\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b\x32\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\x06 \x01(\x0e\x32..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12)\n\x04\x61rgs\x18\x02 \x03(\x0b\x32\x11.proto.ExpressionB\x02\x18\x01R\x04\x61rgs\"\x84\x01\n\x15\x41ggregationInvocation\x12&\n\"AGGREGATION_INVOCATION_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x41GGREGATION_INVOCATION_ALL\x10\x01\x12#\n\x1f\x41GGREGATION_INVOCATION_DISTINCT\x10\x02\"7\n\x0cReferenceRel\x12\'\n\x0fsubtree_ordinal\x18\x01 \x01(\x05R\x0esubtreeOrdinal*\xef\x01\n\x10\x41ggregationPhase\x12!\n\x1d\x41GGREGATION_PHASE_UNSPECIFIED\x10\x00\x12-\n)AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE\x10\x01\x12\x32\n.AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE\x10\x02\x12\'\n#AGGREGATION_PHASE_INITIAL_TO_RESULT\x10\x03\x12,\n(AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT\x10\x04\x42#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.algebra_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' + _globals['_READREL_VIRTUALTABLE'].fields_by_name['values']._loaded_options = None + _globals['_READREL_VIRTUALTABLE'].fields_by_name['values']._serialized_options = b'\030\001' + _globals['_FETCHREL'].fields_by_name['offset']._loaded_options = None + _globals['_FETCHREL'].fields_by_name['offset']._serialized_options = b'\030\001' + _globals['_FETCHREL'].fields_by_name['count']._loaded_options = None + _globals['_FETCHREL'].fields_by_name['count']._serialized_options = b'\030\001' + _globals['_AGGREGATEREL_GROUPING'].fields_by_name['grouping_expressions']._loaded_options = None + _globals['_AGGREGATEREL_GROUPING'].fields_by_name['grouping_expressions']._serialized_options = b'\030\001' + _globals['_HASHJOINREL'].fields_by_name['left_keys']._loaded_options = None + _globals['_HASHJOINREL'].fields_by_name['left_keys']._serialized_options = b'\030\001' + _globals['_HASHJOINREL'].fields_by_name['right_keys']._loaded_options = None + _globals['_HASHJOINREL'].fields_by_name['right_keys']._serialized_options = b'\030\001' + _globals['_MERGEJOINREL'].fields_by_name['left_keys']._loaded_options = None + _globals['_MERGEJOINREL'].fields_by_name['left_keys']._serialized_options = b'\030\001' + _globals['_MERGEJOINREL'].fields_by_name['right_keys']._loaded_options = None + _globals['_MERGEJOINREL'].fields_by_name['right_keys']._serialized_options = b'\030\001' + _globals['_EXPRESSION_ENUM_EMPTY']._loaded_options = None + _globals['_EXPRESSION_ENUM_EMPTY']._serialized_options = b'\030\001' + _globals['_EXPRESSION_ENUM']._loaded_options = None + _globals['_EXPRESSION_ENUM']._serialized_options = b'\030\001' + _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND'].fields_by_name['microseconds']._loaded_options = None + _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND'].fields_by_name['microseconds']._serialized_options = b'\030\001' + _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp']._loaded_options = None + _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp']._serialized_options = b'\030\001' + _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp_tz']._loaded_options = None + _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp_tz']._serialized_options = b'\030\001' + _globals['_EXPRESSION_SCALARFUNCTION'].fields_by_name['args']._loaded_options = None + _globals['_EXPRESSION_SCALARFUNCTION'].fields_by_name['args']._serialized_options = b'\030\001' + _globals['_EXPRESSION_WINDOWFUNCTION'].fields_by_name['args']._loaded_options = None + _globals['_EXPRESSION_WINDOWFUNCTION'].fields_by_name['args']._serialized_options = b'\030\001' + _globals['_EXPRESSION'].fields_by_name['enum']._loaded_options = None + _globals['_EXPRESSION'].fields_by_name['enum']._serialized_options = b'\030\001' + _globals['_AGGREGATEFUNCTION'].fields_by_name['args']._loaded_options = None + _globals['_AGGREGATEFUNCTION'].fields_by_name['args']._serialized_options = b'\030\001' + _globals['_AGGREGATIONPHASE']._serialized_start=29447 + _globals['_AGGREGATIONPHASE']._serialized_end=29686 + _globals['_RELCOMMON']._serialized_start=111 + _globals['_RELCOMMON']._serialized_end=1705 + _globals['_RELCOMMON_DIRECT']._serialized_start=347 + _globals['_RELCOMMON_DIRECT']._serialized_end=355 + _globals['_RELCOMMON_EMIT']._serialized_start=357 + _globals['_RELCOMMON_EMIT']._serialized_end=402 + _globals['_RELCOMMON_HINT']._serialized_start=405 + _globals['_RELCOMMON_HINT']._serialized_end=1692 + _globals['_RELCOMMON_HINT_STATS']._serialized_start=856 + _globals['_RELCOMMON_HINT_STATS']._serialized_end=1009 + _globals['_RELCOMMON_HINT_RUNTIMECONSTRAINT']._serialized_start=1011 + _globals['_RELCOMMON_HINT_RUNTIMECONSTRAINT']._serialized_end=1114 + _globals['_RELCOMMON_HINT_SAVEDCOMPUTATION']._serialized_start=1117 + _globals['_RELCOMMON_HINT_SAVEDCOMPUTATION']._serialized_end=1317 + _globals['_RELCOMMON_HINT_LOADEDCOMPUTATION']._serialized_start=1320 + _globals['_RELCOMMON_HINT_LOADEDCOMPUTATION']._serialized_end=1540 + _globals['_RELCOMMON_HINT_COMPUTATIONTYPE']._serialized_start=1543 + _globals['_RELCOMMON_HINT_COMPUTATIONTYPE']._serialized_end=1692 + _globals['_READREL']._serialized_start=1708 + _globals['_READREL']._serialized_end=4273 + _globals['_READREL_NAMEDTABLE']._serialized_start=2406 + _globals['_READREL_NAMEDTABLE']._serialized_end=2524 + _globals['_READREL_ICEBERGTABLE']._serialized_start=2527 + _globals['_READREL_ICEBERGTABLE']._serialized_end=2779 + _globals['_READREL_ICEBERGTABLE_METADATAFILEREAD']._serialized_start=2616 + _globals['_READREL_ICEBERGTABLE_METADATAFILEREAD']._serialized_end=2765 + _globals['_READREL_VIRTUALTABLE']._serialized_start=2782 + _globals['_READREL_VIRTUALTABLE']._serialized_end=2925 + _globals['_READREL_EXTENSIONTABLE']._serialized_start=2927 + _globals['_READREL_EXTENSIONTABLE']._serialized_end=2989 + _globals['_READREL_LOCALFILES']._serialized_start=2992 + _globals['_READREL_LOCALFILES']._serialized_end=4260 + _globals['_READREL_LOCALFILES_FILEORFILES']._serialized_start=3152 + _globals['_READREL_LOCALFILES_FILEORFILES']._serialized_end=4260 + _globals['_READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS']._serialized_start=3849 + _globals['_READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS']._serialized_end=3869 + _globals['_READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS']._serialized_start=3871 + _globals['_READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS']._serialized_end=3889 + _globals['_READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS']._serialized_start=3891 + _globals['_READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS']._serialized_end=3907 + _globals['_READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS']._serialized_start=3909 + _globals['_READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS']._serialized_end=3926 + _globals['_READREL_LOCALFILES_FILEORFILES_DELIMITERSEPARATEDTEXTREADOPTIONS']._serialized_start=3929 + _globals['_READREL_LOCALFILES_FILEORFILES_DELIMITERSEPARATEDTEXTREADOPTIONS']._serialized_end=4218 + _globals['_PROJECTREL']._serialized_start=4276 + _globals['_PROJECTREL']._serialized_end=4501 + _globals['_JOINREL']._serialized_start=4504 + _globals['_JOINREL']._serialized_end=5193 + _globals['_JOINREL_JOINTYPE']._serialized_start=4865 + _globals['_JOINREL_JOINTYPE']._serialized_end=5193 + _globals['_CROSSREL']._serialized_start=5196 + _globals['_CROSSREL']._serialized_end=5398 + _globals['_FETCHREL']._serialized_start=5401 + _globals['_FETCHREL']._serialized_end=5764 + _globals['_AGGREGATEREL']._serialized_start=5767 + _globals['_AGGREGATEREL']._serialized_end=6374 + _globals['_AGGREGATEREL_GROUPING']._serialized_start=6131 + _globals['_AGGREGATEREL_GROUPING']._serialized_end=6268 + _globals['_AGGREGATEREL_MEASURE']._serialized_start=6270 + _globals['_AGGREGATEREL_MEASURE']._serialized_end=6374 + _globals['_CONSISTENTPARTITIONWINDOWREL']._serialized_start=6377 + _globals['_CONSISTENTPARTITIONWINDOWREL']._serialized_end=7347 + _globals['_CONSISTENTPARTITIONWINDOWREL_WINDOWRELFUNCTION']._serialized_start=6780 + _globals['_CONSISTENTPARTITIONWINDOWREL_WINDOWRELFUNCTION']._serialized_end=7347 + _globals['_SORTREL']._serialized_start=7350 + _globals['_SORTREL']._serialized_end=7559 + _globals['_FILTERREL']._serialized_start=7562 + _globals['_FILTERREL']._serialized_end=7782 + _globals['_SETREL']._serialized_start=7785 + _globals['_SETREL']._serialized_end=8263 + _globals['_SETREL_SETOP']._serialized_start=7995 + _globals['_SETREL_SETOP']._serialized_end=8263 + _globals['_EXTENSIONSINGLEREL']._serialized_start=8266 + _globals['_EXTENSIONSINGLEREL']._serialized_end=8408 + _globals['_EXTENSIONLEAFREL']._serialized_start=8410 + _globals['_EXTENSIONLEAFREL']._serialized_end=8516 + _globals['_EXTENSIONMULTIREL']._serialized_start=8519 + _globals['_EXTENSIONMULTIREL']._serialized_end=8662 + _globals['_EXCHANGEREL']._serialized_start=8665 + _globals['_EXCHANGEREL']._serialized_end=9794 + _globals['_EXCHANGEREL_SCATTERFIELDS']._serialized_start=9311 + _globals['_EXCHANGEREL_SCATTERFIELDS']._serialized_end=9384 + _globals['_EXCHANGEREL_SINGLEBUCKETEXPRESSION']._serialized_start=9386 + _globals['_EXCHANGEREL_SINGLEBUCKETEXPRESSION']._serialized_end=9461 + _globals['_EXCHANGEREL_MULTIBUCKETEXPRESSION']._serialized_start=9463 + _globals['_EXCHANGEREL_MULTIBUCKETEXPRESSION']._serialized_end=9587 + _globals['_EXCHANGEREL_BROADCAST']._serialized_start=9589 + _globals['_EXCHANGEREL_BROADCAST']._serialized_end=9600 + _globals['_EXCHANGEREL_ROUNDROBIN']._serialized_start=9602 + _globals['_EXCHANGEREL_ROUNDROBIN']._serialized_end=9636 + _globals['_EXCHANGEREL_EXCHANGETARGET']._serialized_start=9639 + _globals['_EXCHANGEREL_EXCHANGETARGET']._serialized_end=9777 + _globals['_EXPANDREL']._serialized_start=9797 + _globals['_EXPANDREL']._serialized_end=10177 + _globals['_EXPANDREL_EXPANDFIELD']._serialized_start=9941 + _globals['_EXPANDREL_EXPANDFIELD']._serialized_end=10108 + _globals['_EXPANDREL_SWITCHINGFIELD']._serialized_start=10110 + _globals['_EXPANDREL_SWITCHINGFIELD']._serialized_end=10177 + _globals['_RELROOT']._serialized_start=10179 + _globals['_RELROOT']._serialized_end=10244 + _globals['_REL']._serialized_start=10247 + _globals['_REL']._serialized_end=11351 + _globals['_NAMEDOBJECTWRITE']._serialized_start=11353 + _globals['_NAMEDOBJECTWRITE']._serialized_end=11477 + _globals['_EXTENSIONOBJECT']._serialized_start=11479 + _globals['_EXTENSIONOBJECT']._serialized_end=11542 + _globals['_DDLREL']._serialized_start=11545 + _globals['_DDLREL']._serialized_end=12319 + _globals['_DDLREL_DDLOBJECT']._serialized_start=12079 + _globals['_DDLREL_DDLOBJECT']._serialized_end=12161 + _globals['_DDLREL_DDLOP']._serialized_start=12164 + _globals['_DDLREL_DDLOP']._serialized_end=12305 + _globals['_WRITEREL']._serialized_start=12322 + _globals['_WRITEREL']._serialized_end=13245 + _globals['_WRITEREL_WRITEOP']._serialized_start=12830 + _globals['_WRITEREL_WRITEOP']._serialized_end=12947 + _globals['_WRITEREL_CREATEMODE']._serialized_start=12950 + _globals['_WRITEREL_CREATEMODE']._serialized_end=13127 + _globals['_WRITEREL_OUTPUTMODE']._serialized_start=13129 + _globals['_WRITEREL_OUTPUTMODE']._serialized_end=13231 + _globals['_UPDATEREL']._serialized_start=13248 + _globals['_UPDATEREL']._serialized_end=13715 + _globals['_UPDATEREL_TRANSFORMEXPRESSION']._serialized_start=13583 + _globals['_UPDATEREL_TRANSFORMEXPRESSION']._serialized_end=13700 + _globals['_NAMEDTABLE']._serialized_start=2406 + _globals['_NAMEDTABLE']._serialized_end=2524 + _globals['_COMPARISONJOINKEY']._serialized_start=13838 + _globals['_COMPARISONJOINKEY']._serialized_end=14393 + _globals['_COMPARISONJOINKEY_COMPARISONTYPE']._serialized_start=14043 + _globals['_COMPARISONJOINKEY_COMPARISONTYPE']._serialized_end=14208 + _globals['_COMPARISONJOINKEY_SIMPLECOMPARISONTYPE']._serialized_start=14211 + _globals['_COMPARISONJOINKEY_SIMPLECOMPARISONTYPE']._serialized_end=14393 + _globals['_HASHJOINREL']._serialized_start=14396 + _globals['_HASHJOINREL']._serialized_end=15376 + _globals['_HASHJOINREL_JOINTYPE']._serialized_start=14960 + _globals['_HASHJOINREL_JOINTYPE']._serialized_end=15288 + _globals['_HASHJOINREL_BUILDINPUT']._serialized_start=15290 + _globals['_HASHJOINREL_BUILDINPUT']._serialized_end=15376 + _globals['_MERGEJOINREL']._serialized_start=15379 + _globals['_MERGEJOINREL']._serialized_end=16209 + _globals['_MERGEJOINREL_JOINTYPE']._serialized_start=14960 + _globals['_MERGEJOINREL_JOINTYPE']._serialized_end=15288 + _globals['_NESTEDLOOPJOINREL']._serialized_start=16212 + _globals['_NESTEDLOOPJOINREL']._serialized_end=16860 + _globals['_NESTEDLOOPJOINREL_JOINTYPE']._serialized_start=14960 + _globals['_NESTEDLOOPJOINREL_JOINTYPE']._serialized_end=15288 + _globals['_FUNCTIONARGUMENT']._serialized_start=16863 + _globals['_FUNCTIONARGUMENT']._serialized_end=16993 + _globals['_FUNCTIONOPTION']._serialized_start=16995 + _globals['_FUNCTIONOPTION']._serialized_end=17063 + _globals['_EXPRESSION']._serialized_start=17066 + _globals['_EXPRESSION']._serialized_end=28297 + _globals['_EXPRESSION_ENUM']._serialized_start=17917 + _globals['_EXPRESSION_ENUM']._serialized_end=18051 + _globals['_EXPRESSION_ENUM_EMPTY']._serialized_start=18023 + _globals['_EXPRESSION_ENUM_EMPTY']._serialized_end=18034 + _globals['_EXPRESSION_LITERAL']._serialized_start=18054 + _globals['_EXPRESSION_LITERAL']._serialized_end=20964 + _globals['_EXPRESSION_LITERAL_VARCHAR']._serialized_start=19644 + _globals['_EXPRESSION_LITERAL_VARCHAR']._serialized_end=19699 + _globals['_EXPRESSION_LITERAL_DECIMAL']._serialized_start=19701 + _globals['_EXPRESSION_LITERAL_DECIMAL']._serialized_end=19784 + _globals['_EXPRESSION_LITERAL_PRECISIONTIME']._serialized_start=19786 + _globals['_EXPRESSION_LITERAL_PRECISIONTIME']._serialized_end=19853 + _globals['_EXPRESSION_LITERAL_PRECISIONTIMESTAMP']._serialized_start=19855 + _globals['_EXPRESSION_LITERAL_PRECISIONTIMESTAMP']._serialized_end=19927 + _globals['_EXPRESSION_LITERAL_MAP']._serialized_start=19930 + _globals['_EXPRESSION_LITERAL_MAP']._serialized_end=20112 + _globals['_EXPRESSION_LITERAL_MAP_KEYVALUE']._serialized_start=20008 + _globals['_EXPRESSION_LITERAL_MAP_KEYVALUE']._serialized_end=20112 + _globals['_EXPRESSION_LITERAL_INTERVALYEARTOMONTH']._serialized_start=20114 + _globals['_EXPRESSION_LITERAL_INTERVALYEARTOMONTH']._serialized_end=20181 + _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND']._serialized_start=20184 + _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND']._serialized_end=20375 + _globals['_EXPRESSION_LITERAL_INTERVALCOMPOUND']._serialized_start=20378 + _globals['_EXPRESSION_LITERAL_INTERVALCOMPOUND']._serialized_end=20596 + _globals['_EXPRESSION_LITERAL_STRUCT']._serialized_start=20598 + _globals['_EXPRESSION_LITERAL_STRUCT']._serialized_end=20657 + _globals['_EXPRESSION_LITERAL_LIST']._serialized_start=20659 + _globals['_EXPRESSION_LITERAL_LIST']._serialized_end=20716 + _globals['_EXPRESSION_LITERAL_USERDEFINED']._serialized_start=20719 + _globals['_EXPRESSION_LITERAL_USERDEFINED']._serialized_end=20948 + _globals['_EXPRESSION_NESTED']._serialized_start=20967 + _globals['_EXPRESSION_NESTED']._serialized_end=21510 + _globals['_EXPRESSION_NESTED_MAP']._serialized_start=21226 + _globals['_EXPRESSION_NESTED_MAP']._serialized_end=21391 + _globals['_EXPRESSION_NESTED_MAP_KEYVALUE']._serialized_start=21303 + _globals['_EXPRESSION_NESTED_MAP_KEYVALUE']._serialized_end=21391 + _globals['_EXPRESSION_NESTED_STRUCT']._serialized_start=21393 + _globals['_EXPRESSION_NESTED_STRUCT']._serialized_end=21444 + _globals['_EXPRESSION_NESTED_LIST']._serialized_start=21446 + _globals['_EXPRESSION_NESTED_LIST']._serialized_end=21495 + _globals['_EXPRESSION_SCALARFUNCTION']._serialized_start=21513 + _globals['_EXPRESSION_SCALARFUNCTION']._serialized_end=21769 + _globals['_EXPRESSION_WINDOWFUNCTION']._serialized_start=21772 + _globals['_EXPRESSION_WINDOWFUNCTION']._serialized_end=23009 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND']._serialized_start=22473 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND']._serialized_end=22921 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING']._serialized_start=22814 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING']._serialized_end=22849 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING']._serialized_start=22851 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING']._serialized_end=22886 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW']._serialized_start=22888 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW']._serialized_end=22900 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED']._serialized_start=22902 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED']._serialized_end=22913 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE']._serialized_start=22923 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE']._serialized_end=23009 + _globals['_EXPRESSION_IFTHEN']._serialized_start=23012 + _globals['_EXPRESSION_IFTHEN']._serialized_end=23198 + _globals['_EXPRESSION_IFTHEN_IFCLAUSE']._serialized_start=23114 + _globals['_EXPRESSION_IFTHEN_IFCLAUSE']._serialized_end=23198 + _globals['_EXPRESSION_CAST']._serialized_start=23201 + _globals['_EXPRESSION_CAST']._serialized_end=23489 + _globals['_EXPRESSION_CAST_FAILUREBEHAVIOR']._serialized_start=23366 + _globals['_EXPRESSION_CAST_FAILUREBEHAVIOR']._serialized_end=23489 + _globals['_EXPRESSION_SWITCHEXPRESSION']._serialized_start=23492 + _globals['_EXPRESSION_SWITCHEXPRESSION']._serialized_end=23745 + _globals['_EXPRESSION_SWITCHEXPRESSION_IFVALUE']._serialized_start=23654 + _globals['_EXPRESSION_SWITCHEXPRESSION_IFVALUE']._serialized_end=23745 + _globals['_EXPRESSION_SINGULARORLIST']._serialized_start=23747 + _globals['_EXPRESSION_SINGULARORLIST']._serialized_end=23849 + _globals['_EXPRESSION_MULTIORLIST']._serialized_start=23852 + _globals['_EXPRESSION_MULTIORLIST']._serialized_end=24023 + _globals['_EXPRESSION_MULTIORLIST_RECORD']._serialized_start=23972 + _globals['_EXPRESSION_MULTIORLIST_RECORD']._serialized_end=24023 + _globals['_EXPRESSION_EMBEDDEDFUNCTION']._serialized_start=24026 + _globals['_EXPRESSION_EMBEDDEDFUNCTION']._serialized_end=24541 + _globals['_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION']._serialized_start=24364 + _globals['_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION']._serialized_end=24450 + _globals['_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION']._serialized_start=24452 + _globals['_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION']._serialized_end=24533 + _globals['_EXPRESSION_REFERENCESEGMENT']._serialized_start=24544 + _globals['_EXPRESSION_REFERENCESEGMENT']._serialized_end=25132 + _globals['_EXPRESSION_REFERENCESEGMENT_MAPKEY']._serialized_start=24804 + _globals['_EXPRESSION_REFERENCESEGMENT_MAPKEY']._serialized_end=24922 + _globals['_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD']._serialized_start=24924 + _globals['_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD']._serialized_end=25017 + _globals['_EXPRESSION_REFERENCESEGMENT_LISTELEMENT']._serialized_start=25019 + _globals['_EXPRESSION_REFERENCESEGMENT_LISTELEMENT']._serialized_end=25114 + _globals['_EXPRESSION_MASKEXPRESSION']._serialized_start=25135 + _globals['_EXPRESSION_MASKEXPRESSION']._serialized_end=26525 + _globals['_EXPRESSION_MASKEXPRESSION_SELECT']._serialized_start=25283 + _globals['_EXPRESSION_MASKEXPRESSION_SELECT']._serialized_end=25503 + _globals['_EXPRESSION_MASKEXPRESSION_STRUCTSELECT']._serialized_start=25505 + _globals['_EXPRESSION_MASKEXPRESSION_STRUCTSELECT']._serialized_end=25599 + _globals['_EXPRESSION_MASKEXPRESSION_STRUCTITEM']._serialized_start=25601 + _globals['_EXPRESSION_MASKEXPRESSION_STRUCTITEM']._serialized_end=25698 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT']._serialized_start=25701 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT']._serialized_end=26171 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM']._serialized_start=25869 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM']._serialized_end=26171 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT']._serialized_start=26075 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT']._serialized_end=26110 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE']._serialized_start=26112 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE']._serialized_end=26163 + _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT']._serialized_start=26174 + _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT']._serialized_end=26525 + _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY']._serialized_start=26416 + _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY']._serialized_end=26449 + _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION']._serialized_start=26451 + _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION']._serialized_end=26515 + _globals['_EXPRESSION_FIELDREFERENCE']._serialized_start=26528 + _globals['_EXPRESSION_FIELDREFERENCE']._serialized_end=27033 + _globals['_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE']._serialized_start=26940 + _globals['_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE']._serialized_end=26955 + _globals['_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE']._serialized_start=26957 + _globals['_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE']._serialized_end=27002 + _globals['_EXPRESSION_SUBQUERY']._serialized_start=27036 + _globals['_EXPRESSION_SUBQUERY']._serialized_end=28285 + _globals['_EXPRESSION_SUBQUERY_SCALAR']._serialized_start=27349 + _globals['_EXPRESSION_SUBQUERY_SCALAR']._serialized_end=27391 + _globals['_EXPRESSION_SUBQUERY_INPREDICATE']._serialized_start=27393 + _globals['_EXPRESSION_SUBQUERY_INPREDICATE']._serialized_end=27491 + _globals['_EXPRESSION_SUBQUERY_SETPREDICATE']._serialized_start=27494 + _globals['_EXPRESSION_SUBQUERY_SETPREDICATE']._serialized_end=27727 + _globals['_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP']._serialized_start=27634 + _globals['_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP']._serialized_end=27727 + _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON']._serialized_start=27730 + _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON']._serialized_end=28268 + _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP']._serialized_start=28002 + _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP']._serialized_end=28179 + _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP']._serialized_start=28181 + _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP']._serialized_end=28268 + _globals['_DYNAMICPARAMETER']._serialized_start=28299 + _globals['_DYNAMICPARAMETER']._serialized_end=28399 + _globals['_SORTFIELD']._serialized_start=28402 + _globals['_SORTFIELD']._serialized_end=28823 + _globals['_SORTFIELD_SORTDIRECTION']._serialized_start=28589 + _globals['_SORTFIELD_SORTDIRECTION']._serialized_end=28810 + _globals['_AGGREGATEFUNCTION']._serialized_start=28826 + _globals['_AGGREGATEFUNCTION']._serialized_end=29387 + _globals['_AGGREGATEFUNCTION_AGGREGATIONINVOCATION']._serialized_start=29255 + _globals['_AGGREGATEFUNCTION_AGGREGATIONINVOCATION']._serialized_end=29387 + _globals['_REFERENCEREL']._serialized_start=29389 + _globals['_REFERENCEREL']._serialized_end=29444 +# @@protoc_insertion_point(module_scope) diff --git a/src/substrait/gen/proto/algebra_pb2.pyi b/src/substrait/gen/proto/algebra_pb2.pyi index 04b9be3..c655c8b 100644 --- a/src/substrait/gen/proto/algebra_pb2.pyi +++ b/src/substrait/gen/proto/algebra_pb2.pyi @@ -2,6 +2,7 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" + import builtins import collections.abc import google.protobuf.any_pb2 @@ -9,191 +10,239 @@ import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.internal.enum_type_wrapper import google.protobuf.message -from .. import proto +import proto.extensions.extensions_pb2 +import proto.type_pb2 import sys import typing + if sys.version_info >= (3, 10): import typing as typing_extensions else: import typing_extensions + DESCRIPTOR: google.protobuf.descriptor.FileDescriptor class _AggregationPhase: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _AggregationPhaseEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_AggregationPhase.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - AGGREGATION_PHASE_UNSPECIFIED: _AggregationPhase.ValueType - 'Implies `INTERMEDIATE_TO_RESULT`.' - AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE: _AggregationPhase.ValueType - 'Specifies that the function should be run only up to the point of\n generating an intermediate value, to be further aggregated later using\n INTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT.\n ' - AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE: _AggregationPhase.ValueType - 'Specifies that the inputs of the aggregate or window function are the\n intermediate values of the function, and that the output should also be\n an intermediate value, to be further aggregated later using\n INTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT.\n ' - AGGREGATION_PHASE_INITIAL_TO_RESULT: _AggregationPhase.ValueType - 'A complete invocation: the function should aggregate the given set of\n inputs to yield a single return value. This style must be used for\n aggregate or window functions that are not decomposable.\n ' - AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT: _AggregationPhase.ValueType - 'Specifies that the inputs of the aggregate or window function are the\n intermediate values of the function, generated previously using\n INITIAL_TO_INTERMEDIATE and possibly INTERMEDIATE_TO_INTERMEDIATE calls.\n This call should combine the intermediate values to yield the final\n return value.\n ' + AGGREGATION_PHASE_UNSPECIFIED: _AggregationPhase.ValueType # 0 + """Implies `INTERMEDIATE_TO_RESULT`.""" + AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE: _AggregationPhase.ValueType # 1 + """Specifies that the function should be run only up to the point of + generating an intermediate value, to be further aggregated later using + INTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT. + """ + AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE: _AggregationPhase.ValueType # 2 + """Specifies that the inputs of the aggregate or window function are the + intermediate values of the function, and that the output should also be + an intermediate value, to be further aggregated later using + INTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT. + """ + AGGREGATION_PHASE_INITIAL_TO_RESULT: _AggregationPhase.ValueType # 3 + """A complete invocation: the function should aggregate the given set of + inputs to yield a single return value. This style must be used for + aggregate or window functions that are not decomposable. + """ + AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT: _AggregationPhase.ValueType # 4 + """Specifies that the inputs of the aggregate or window function are the + intermediate values of the function, generated previously using + INITIAL_TO_INTERMEDIATE and possibly INTERMEDIATE_TO_INTERMEDIATE calls. + This call should combine the intermediate values to yield the final + return value. + """ class AggregationPhase(_AggregationPhase, metaclass=_AggregationPhaseEnumTypeWrapper): """Describes which part of an aggregation or window function to perform within the context of distributed algorithms. """ -AGGREGATION_PHASE_UNSPECIFIED: AggregationPhase.ValueType -'Implies `INTERMEDIATE_TO_RESULT`.' -AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE: AggregationPhase.ValueType -'Specifies that the function should be run only up to the point of\ngenerating an intermediate value, to be further aggregated later using\nINTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT.\n' -AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE: AggregationPhase.ValueType -'Specifies that the inputs of the aggregate or window function are the\nintermediate values of the function, and that the output should also be\nan intermediate value, to be further aggregated later using\nINTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT.\n' -AGGREGATION_PHASE_INITIAL_TO_RESULT: AggregationPhase.ValueType -'A complete invocation: the function should aggregate the given set of\ninputs to yield a single return value. This style must be used for\naggregate or window functions that are not decomposable.\n' -AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT: AggregationPhase.ValueType -'Specifies that the inputs of the aggregate or window function are the\nintermediate values of the function, generated previously using\nINITIAL_TO_INTERMEDIATE and possibly INTERMEDIATE_TO_INTERMEDIATE calls.\nThis call should combine the intermediate values to yield the final\nreturn value.\n' + +AGGREGATION_PHASE_UNSPECIFIED: AggregationPhase.ValueType # 0 +"""Implies `INTERMEDIATE_TO_RESULT`.""" +AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE: AggregationPhase.ValueType # 1 +"""Specifies that the function should be run only up to the point of +generating an intermediate value, to be further aggregated later using +INTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT. +""" +AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE: AggregationPhase.ValueType # 2 +"""Specifies that the inputs of the aggregate or window function are the +intermediate values of the function, and that the output should also be +an intermediate value, to be further aggregated later using +INTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT. +""" +AGGREGATION_PHASE_INITIAL_TO_RESULT: AggregationPhase.ValueType # 3 +"""A complete invocation: the function should aggregate the given set of +inputs to yield a single return value. This style must be used for +aggregate or window functions that are not decomposable. +""" +AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT: AggregationPhase.ValueType # 4 +"""Specifies that the inputs of the aggregate or window function are the +intermediate values of the function, generated previously using +INITIAL_TO_INTERMEDIATE and possibly INTERMEDIATE_TO_INTERMEDIATE calls. +This call should combine the intermediate values to yield the final +return value. +""" global___AggregationPhase = AggregationPhase @typing.final class RelCommon(google.protobuf.message.Message): """Common fields for all relational operators""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class Direct(google.protobuf.message.Message): """Direct indicates no change on presence and ordering of fields in the output""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__(self) -> None: - ... + def __init__( + self, + ) -> None: ... @typing.final class Emit(google.protobuf.message.Message): """Remap which fields are output and in which order""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor - OUTPUT_MAPPING_FIELD_NUMBER: builtins.int + OUTPUT_MAPPING_FIELD_NUMBER: builtins.int @property - def output_mapping(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: - ... - - def __init__(self, *, output_mapping: collections.abc.Iterable[builtins.int] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['output_mapping', b'output_mapping']) -> None: - ... + def output_mapping(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... + def __init__( + self, + *, + output_mapping: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["output_mapping", b"output_mapping"]) -> None: ... @typing.final class Hint(google.protobuf.message.Message): """Changes to the operation that can influence efficiency/performance but should not impact correctness. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _ComputationType: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _ComputationTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[RelCommon.Hint._ComputationType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - COMPUTATION_TYPE_UNSPECIFIED: RelCommon.Hint._ComputationType.ValueType - COMPUTATION_TYPE_HASHTABLE: RelCommon.Hint._ComputationType.ValueType - COMPUTATION_TYPE_BLOOM_FILTER: RelCommon.Hint._ComputationType.ValueType - COMPUTATION_TYPE_UNKNOWN: RelCommon.Hint._ComputationType.ValueType - - class ComputationType(_ComputationType, metaclass=_ComputationTypeEnumTypeWrapper): - ... - COMPUTATION_TYPE_UNSPECIFIED: RelCommon.Hint.ComputationType.ValueType - COMPUTATION_TYPE_HASHTABLE: RelCommon.Hint.ComputationType.ValueType - COMPUTATION_TYPE_BLOOM_FILTER: RelCommon.Hint.ComputationType.ValueType - COMPUTATION_TYPE_UNKNOWN: RelCommon.Hint.ComputationType.ValueType + COMPUTATION_TYPE_UNSPECIFIED: RelCommon.Hint._ComputationType.ValueType # 0 + COMPUTATION_TYPE_HASHTABLE: RelCommon.Hint._ComputationType.ValueType # 1 + COMPUTATION_TYPE_BLOOM_FILTER: RelCommon.Hint._ComputationType.ValueType # 2 + COMPUTATION_TYPE_UNKNOWN: RelCommon.Hint._ComputationType.ValueType # 9999 + + class ComputationType(_ComputationType, metaclass=_ComputationTypeEnumTypeWrapper): ... + COMPUTATION_TYPE_UNSPECIFIED: RelCommon.Hint.ComputationType.ValueType # 0 + COMPUTATION_TYPE_HASHTABLE: RelCommon.Hint.ComputationType.ValueType # 1 + COMPUTATION_TYPE_BLOOM_FILTER: RelCommon.Hint.ComputationType.ValueType # 2 + COMPUTATION_TYPE_UNKNOWN: RelCommon.Hint.ComputationType.ValueType # 9999 @typing.final class Stats(google.protobuf.message.Message): """The statistics related to a hint (physical properties of records)""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + ROW_COUNT_FIELD_NUMBER: builtins.int RECORD_SIZE_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int row_count: builtins.float record_size: builtins.float - @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, row_count: builtins.float=..., record_size: builtins.float=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'record_size', b'record_size', 'row_count', b'row_count']) -> None: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + row_count: builtins.float = ..., + record_size: builtins.float = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "record_size", b"record_size", "row_count", b"row_count"]) -> None: ... @typing.final class RuntimeConstraint(google.protobuf.message.Message): """TODO: nodes, cpu threads/%, memory, iops, etc.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor - ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> None: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> None: ... @typing.final class SavedComputation(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + COMPUTATION_ID_FIELD_NUMBER: builtins.int TYPE_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int computation_id: builtins.int - 'The value corresponds to a plan unique number for that datastructure. Any particular\n computation may be saved only once but it may be loaded multiple times.\n ' + """The value corresponds to a plan unique number for that datastructure. Any particular + computation may be saved only once but it may be loaded multiple times. + """ type: global___RelCommon.Hint.ComputationType.ValueType - 'The type of this computation. While a plan may use COMPUTATION_TYPE_UNKNOWN for all\n of its types it is recommended to use a more specific type so that the optimization\n is more portable. The consumer should be able to decide if an unknown type here\n matches the same unknown type at a different plan and ignore the optimization if they\n are mismatched.\n ' - + """The type of this computation. While a plan may use COMPUTATION_TYPE_UNKNOWN for all + of its types it is recommended to use a more specific type so that the optimization + is more portable. The consumer should be able to decide if an unknown type here + matches the same unknown type at a different plan and ignore the optimization if they + are mismatched. + """ @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, computation_id: builtins.int=..., type: global___RelCommon.Hint.ComputationType.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'computation_id', b'computation_id', 'type', b'type']) -> None: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + computation_id: builtins.int = ..., + type: global___RelCommon.Hint.ComputationType.ValueType = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "computation_id", b"computation_id", "type", b"type"]) -> None: ... @typing.final class LoadedComputation(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + COMPUTATION_ID_REFERENCE_FIELD_NUMBER: builtins.int TYPE_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int computation_id_reference: builtins.int - 'The value corresponds to a plan unique number for that datastructure. Any particular\n computation may be saved only once but it may be loaded multiple times.\n ' + """The value corresponds to a plan unique number for that datastructure. Any particular + computation may be saved only once but it may be loaded multiple times. + """ type: global___RelCommon.Hint.ComputationType.ValueType - 'The type of this computation. While a plan may use COMPUTATION_TYPE_UNKNOWN for all\n of its types it is recommended to use a more specific type so that the optimization\n is more portable. The consumer should be able to decide if an unknown type here\n matches the same unknown type at a different plan and ignore the optimization if they\n are mismatched.\n ' - + """The type of this computation. While a plan may use COMPUTATION_TYPE_UNKNOWN for all + of its types it is recommended to use a more specific type so that the optimization + is more portable. The consumer should be able to decide if an unknown type here + matches the same unknown type at a different plan and ignore the optimization if they + are mismatched. + """ @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + computation_id_reference: builtins.int = ..., + type: global___RelCommon.Hint.ComputationType.ValueType = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "computation_id_reference", b"computation_id_reference", "type", b"type"]) -> None: ... - def __init__(self, *, computation_id_reference: builtins.int=..., type: global___RelCommon.Hint.ComputationType.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'computation_id_reference', b'computation_id_reference', 'type', b'type']) -> None: - ... STATS_FIELD_NUMBER: builtins.int CONSTRAINT_FIELD_NUMBER: builtins.int ALIAS_FIELD_NUMBER: builtins.int @@ -202,16 +251,13 @@ class RelCommon(google.protobuf.message.Message): SAVED_COMPUTATIONS_FIELD_NUMBER: builtins.int LOADED_COMPUTATIONS_FIELD_NUMBER: builtins.int alias: builtins.str - "Name (alias) for this relation. Can be used for e.g. qualifying the relation (see e.g.\n Spark's SubqueryAlias), or debugging.\n " - + """Name (alias) for this relation. Can be used for e.g. qualifying the relation (see e.g. + Spark's SubqueryAlias), or debugging. + """ @property - def stats(self) -> global___RelCommon.Hint.Stats: - ... - + def stats(self) -> global___RelCommon.Hint.Stats: ... @property - def constraint(self) -> global___RelCommon.Hint.RuntimeConstraint: - ... - + def constraint(self) -> global___RelCommon.Hint.RuntimeConstraint: ... @property def output_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """Assigns alternative output field names for any relation. Equivalent to the names field @@ -219,9 +265,7 @@ class RelCommon(google.protobuf.message.Message): """ @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... @property def saved_computations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RelCommon.Hint.SavedComputation]: """Save or load a system-specific computation for use in optimizing a remote operation. @@ -230,22 +274,25 @@ class RelCommon(google.protobuf.message.Message): """ @property - def loaded_computations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RelCommon.Hint.LoadedComputation]: - ... - - def __init__(self, *, stats: global___RelCommon.Hint.Stats | None=..., constraint: global___RelCommon.Hint.RuntimeConstraint | None=..., alias: builtins.str=..., output_names: collections.abc.Iterable[builtins.str] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=..., saved_computations: collections.abc.Iterable[global___RelCommon.Hint.SavedComputation] | None=..., loaded_computations: collections.abc.Iterable[global___RelCommon.Hint.LoadedComputation] | None=...) -> None: - ... + def loaded_computations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RelCommon.Hint.LoadedComputation]: ... + def __init__( + self, + *, + stats: global___RelCommon.Hint.Stats | None = ..., + constraint: global___RelCommon.Hint.RuntimeConstraint | None = ..., + alias: builtins.str = ..., + output_names: collections.abc.Iterable[builtins.str] | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + saved_computations: collections.abc.Iterable[global___RelCommon.Hint.SavedComputation] | None = ..., + loaded_computations: collections.abc.Iterable[global___RelCommon.Hint.LoadedComputation] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "constraint", b"constraint", "stats", b"stats"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "alias", b"alias", "constraint", b"constraint", "loaded_computations", b"loaded_computations", "output_names", b"output_names", "saved_computations", b"saved_computations", "stats", b"stats"]) -> None: ... - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'constraint', b'constraint', 'stats', b'stats']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'alias', b'alias', 'constraint', b'constraint', 'loaded_computations', b'loaded_computations', 'output_names', b'output_names', 'saved_computations', b'saved_computations', 'stats', b'stats']) -> None: - ... DIRECT_FIELD_NUMBER: builtins.int EMIT_FIELD_NUMBER: builtins.int HINT_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int - @property def direct(self) -> global___RelCommon.Direct: """The underlying relation is output as is (no reordering or projection of columns)""" @@ -255,29 +302,27 @@ class RelCommon(google.protobuf.message.Message): """Allows to control for order and inclusion of fields""" @property - def hint(self) -> global___RelCommon.Hint: - ... - + def hint(self) -> global___RelCommon.Hint: ... @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, direct: global___RelCommon.Direct | None=..., emit: global___RelCommon.Emit | None=..., hint: global___RelCommon.Hint | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'direct', b'direct', 'emit', b'emit', 'emit_kind', b'emit_kind', 'hint', b'hint']) -> builtins.bool: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + direct: global___RelCommon.Direct | None = ..., + emit: global___RelCommon.Emit | None = ..., + hint: global___RelCommon.Hint | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "direct", b"direct", "emit", b"emit", "emit_kind", b"emit_kind", "hint", b"hint"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "direct", b"direct", "emit", b"emit", "emit_kind", b"emit_kind", "hint", b"hint"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["emit_kind", b"emit_kind"]) -> typing.Literal["direct", "emit"] | None: ... - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'direct', b'direct', 'emit', b'emit', 'emit_kind', b'emit_kind', 'hint', b'hint']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['emit_kind', b'emit_kind']) -> typing.Literal['direct', 'emit'] | None: - ... global___RelCommon = RelCommon @typing.final class ReadRel(google.protobuf.message.Message): """The scan operator of base data (physical or virtual), including filtering and projection.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final @@ -285,120 +330,113 @@ class ReadRel(google.protobuf.message.Message): """A base table. The list of string is used to represent namespacing (e.g., mydb.mytable). This assumes shared catalog between systems exchanging a message. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + NAMES_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int - @property - def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - ... - + def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, names: collections.abc.Iterable[builtins.str] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'names', b'names']) -> None: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + names: collections.abc.Iterable[builtins.str] | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "names", b"names"]) -> None: ... @typing.final class IcebergTable(google.protobuf.message.Message): """Read an Iceberg Table""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class MetadataFileRead(google.protobuf.message.Message): """Read an Iceberg table using a metadata file. Implicit assumption: required credentials are already known by plan consumer.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + METADATA_URI_FIELD_NUMBER: builtins.int SNAPSHOT_ID_FIELD_NUMBER: builtins.int SNAPSHOT_TIMESTAMP_FIELD_NUMBER: builtins.int metadata_uri: builtins.str - 'the specific uri of a metadata file (e.g. s3://mybucket/mytable/-.metadata.json)' + """the specific uri of a metadata file (e.g. s3://mybucket/mytable/-.metadata.json)""" snapshot_id: builtins.str - 'the snapshot id to read.' + """the snapshot id to read.""" snapshot_timestamp: builtins.int - 'the timestamp that should be used to select the snapshot (Time passed in microseconds since 1970-01-01 00:00:00.000000 in UTC)' + """the timestamp that should be used to select the snapshot (Time passed in microseconds since 1970-01-01 00:00:00.000000 in UTC)""" + def __init__( + self, + *, + metadata_uri: builtins.str = ..., + snapshot_id: builtins.str = ..., + snapshot_timestamp: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["snapshot", b"snapshot", "snapshot_id", b"snapshot_id", "snapshot_timestamp", b"snapshot_timestamp"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["metadata_uri", b"metadata_uri", "snapshot", b"snapshot", "snapshot_id", b"snapshot_id", "snapshot_timestamp", b"snapshot_timestamp"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["snapshot", b"snapshot"]) -> typing.Literal["snapshot_id", "snapshot_timestamp"] | None: ... - def __init__(self, *, metadata_uri: builtins.str=..., snapshot_id: builtins.str=..., snapshot_timestamp: builtins.int=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['snapshot', b'snapshot', 'snapshot_id', b'snapshot_id', 'snapshot_timestamp', b'snapshot_timestamp']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['metadata_uri', b'metadata_uri', 'snapshot', b'snapshot', 'snapshot_id', b'snapshot_id', 'snapshot_timestamp', b'snapshot_timestamp']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['snapshot', b'snapshot']) -> typing.Literal['snapshot_id', 'snapshot_timestamp'] | None: - ... DIRECT_FIELD_NUMBER: builtins.int - @property def direct(self) -> global___ReadRel.IcebergTable.MetadataFileRead: """future: add catalog table types (e.g. rest api, latest metadata in path, etc)""" - def __init__(self, *, direct: global___ReadRel.IcebergTable.MetadataFileRead | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['direct', b'direct', 'table_type', b'table_type']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['direct', b'direct', 'table_type', b'table_type']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['table_type', b'table_type']) -> typing.Literal['direct'] | None: - ... + def __init__( + self, + *, + direct: global___ReadRel.IcebergTable.MetadataFileRead | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["direct", b"direct", "table_type", b"table_type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["direct", b"direct", "table_type", b"table_type"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["table_type", b"table_type"]) -> typing.Literal["direct"] | None: ... @typing.final class VirtualTable(google.protobuf.message.Message): """A table composed of expressions.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + VALUES_FIELD_NUMBER: builtins.int EXPRESSIONS_FIELD_NUMBER: builtins.int - @property - def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Literal.Struct]: - ... - + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Literal.Struct]: ... @property - def expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Nested.Struct]: - ... - - def __init__(self, *, values: collections.abc.Iterable[global___Expression.Literal.Struct] | None=..., expressions: collections.abc.Iterable[global___Expression.Nested.Struct] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['expressions', b'expressions', 'values', b'values']) -> None: - ... + def expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Nested.Struct]: ... + def __init__( + self, + *, + values: collections.abc.Iterable[global___Expression.Literal.Struct] | None = ..., + expressions: collections.abc.Iterable[global___Expression.Nested.Struct] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["expressions", b"expressions", "values", b"values"]) -> None: ... @typing.final class ExtensionTable(google.protobuf.message.Message): """A stub type that can be used to extend/introduce new table types outside the specification. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor - DETAIL_FIELD_NUMBER: builtins.int + DETAIL_FIELD_NUMBER: builtins.int @property - def detail(self) -> google.protobuf.any_pb2.Any: - ... - - def __init__(self, *, detail: google.protobuf.any_pb2.Any | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['detail', b'detail']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['detail', b'detail']) -> None: - ... + def detail(self) -> google.protobuf.any_pb2.Any: ... + def __init__( + self, + *, + detail: google.protobuf.any_pb2.Any | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["detail", b"detail"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["detail", b"detail"]) -> None: ... @typing.final class LocalFiles(google.protobuf.message.Message): """Represents a list of files in input of a scan operation""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final @@ -409,42 +447,49 @@ class ReadRel(google.protobuf.message.Message): include the chunk in (e.g. include it in the slice that contains the midpoint of the chunk) """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class ParquetReadOptions(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__(self) -> None: - ... + def __init__( + self, + ) -> None: ... @typing.final class ArrowReadOptions(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__(self) -> None: - ... + def __init__( + self, + ) -> None: ... @typing.final class OrcReadOptions(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__(self) -> None: - ... + def __init__( + self, + ) -> None: ... @typing.final class DwrfReadOptions(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__(self) -> None: - ... + def __init__( + self, + ) -> None: ... @typing.final class DelimiterSeparatedTextReadOptions(google.protobuf.message.Message): """Delimiter separated files may be compressed. The reader should autodetect this and decompress as needed. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + FIELD_DELIMITER_FIELD_NUMBER: builtins.int MAX_LINE_SIZE_FIELD_NUMBER: builtins.int QUOTE_FIELD_NUMBER: builtins.int @@ -452,29 +497,45 @@ class ReadRel(google.protobuf.message.Message): ESCAPE_FIELD_NUMBER: builtins.int VALUE_TREATED_AS_NULL_FIELD_NUMBER: builtins.int field_delimiter: builtins.str - 'The character(s) used to separate fields. Common values are comma,\n tab, and pipe. Multiple characters are allowed.\n ' + """The character(s) used to separate fields. Common values are comma, + tab, and pipe. Multiple characters are allowed. + """ max_line_size: builtins.int - 'The maximum number of bytes to read from a single line. If a line\n exceeds this limit the resulting behavior is undefined.\n ' + """The maximum number of bytes to read from a single line. If a line + exceeds this limit the resulting behavior is undefined. + """ quote: builtins.str - 'The character(s) used to quote strings. Common values are single\n and double quotation marks.\n ' + """The character(s) used to quote strings. Common values are single + and double quotation marks. + """ header_lines_to_skip: builtins.int - 'The number of lines to skip at the beginning of the file.' + """The number of lines to skip at the beginning of the file.""" escape: builtins.str - 'The character used to escape characters in strings. Backslash is\n a common value. Note that a double quote mark can also be used as an\n escape character but the external quotes should be removed first.\n ' + """The character used to escape characters in strings. Backslash is + a common value. Note that a double quote mark can also be used as an + escape character but the external quotes should be removed first. + """ value_treated_as_null: builtins.str - 'If this value is encountered (including empty string), the resulting\n value is null instead. Leave unset to disable. If this value is\n provided, the effective schema of this file is comprised entirely of\n nullable strings. If not provided, the effective schema is instead\n made up of non-nullable strings.\n ' - - def __init__(self, *, field_delimiter: builtins.str=..., max_line_size: builtins.int=..., quote: builtins.str=..., header_lines_to_skip: builtins.int=..., escape: builtins.str=..., value_treated_as_null: builtins.str | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['_value_treated_as_null', b'_value_treated_as_null', 'value_treated_as_null', b'value_treated_as_null']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['_value_treated_as_null', b'_value_treated_as_null', 'escape', b'escape', 'field_delimiter', b'field_delimiter', 'header_lines_to_skip', b'header_lines_to_skip', 'max_line_size', b'max_line_size', 'quote', b'quote', 'value_treated_as_null', b'value_treated_as_null']) -> None: - ... + """If this value is encountered (including empty string), the resulting + value is null instead. Leave unset to disable. If this value is + provided, the effective schema of this file is comprised entirely of + nullable strings. If not provided, the effective schema is instead + made up of non-nullable strings. + """ + def __init__( + self, + *, + field_delimiter: builtins.str = ..., + max_line_size: builtins.int = ..., + quote: builtins.str = ..., + header_lines_to_skip: builtins.int = ..., + escape: builtins.str = ..., + value_treated_as_null: builtins.str | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_value_treated_as_null", b"_value_treated_as_null", "value_treated_as_null", b"value_treated_as_null"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_value_treated_as_null", b"_value_treated_as_null", "escape", b"escape", "field_delimiter", b"field_delimiter", "header_lines_to_skip", b"header_lines_to_skip", "max_line_size", b"max_line_size", "quote", b"quote", "value_treated_as_null", b"value_treated_as_null"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["_value_treated_as_null", b"_value_treated_as_null"]) -> typing.Literal["value_treated_as_null"] | None: ... - def WhichOneof(self, oneof_group: typing.Literal['_value_treated_as_null', b'_value_treated_as_null']) -> typing.Literal['value_treated_as_null'] | None: - ... URI_PATH_FIELD_NUMBER: builtins.int URI_PATH_GLOB_FIELD_NUMBER: builtins.int URI_FILE_FIELD_NUMBER: builtins.int @@ -489,79 +550,74 @@ class ReadRel(google.protobuf.message.Message): DWRF_FIELD_NUMBER: builtins.int TEXT_FIELD_NUMBER: builtins.int uri_path: builtins.str - 'A URI that can refer to either a single folder or a single file' + """A URI that can refer to either a single folder or a single file""" uri_path_glob: builtins.str - 'A URI where the path portion is a glob expression that can\n identify zero or more paths.\n Consumers should support the POSIX syntax. The recursive\n globstar (**) may not be supported.\n ' + """A URI where the path portion is a glob expression that can + identify zero or more paths. + Consumers should support the POSIX syntax. The recursive + globstar (**) may not be supported. + """ uri_file: builtins.str - 'A URI that refers to a single file' + """A URI that refers to a single file""" uri_folder: builtins.str - 'A URI that refers to a single folder' + """A URI that refers to a single folder""" partition_index: builtins.int - 'The index of the partition this item belongs to' + """The index of the partition this item belongs to""" start: builtins.int - 'The start position in byte to read from this item' + """The start position in byte to read from this item""" length: builtins.int - 'The length in byte to read from this item' - + """The length in byte to read from this item""" @property - def parquet(self) -> global___ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions: - ... - + def parquet(self) -> global___ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions: ... @property - def arrow(self) -> global___ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions: - ... - + def arrow(self) -> global___ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions: ... @property - def orc(self) -> global___ReadRel.LocalFiles.FileOrFiles.OrcReadOptions: - ... - + def orc(self) -> global___ReadRel.LocalFiles.FileOrFiles.OrcReadOptions: ... @property - def extension(self) -> google.protobuf.any_pb2.Any: - ... - + def extension(self) -> google.protobuf.any_pb2.Any: ... @property - def dwrf(self) -> global___ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions: - ... - + def dwrf(self) -> global___ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions: ... @property - def text(self) -> global___ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptions: - ... - - def __init__(self, *, uri_path: builtins.str=..., uri_path_glob: builtins.str=..., uri_file: builtins.str=..., uri_folder: builtins.str=..., partition_index: builtins.int=..., start: builtins.int=..., length: builtins.int=..., parquet: global___ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions | None=..., arrow: global___ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions | None=..., orc: global___ReadRel.LocalFiles.FileOrFiles.OrcReadOptions | None=..., extension: google.protobuf.any_pb2.Any | None=..., dwrf: global___ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions | None=..., text: global___ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptions | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['arrow', b'arrow', 'dwrf', b'dwrf', 'extension', b'extension', 'file_format', b'file_format', 'orc', b'orc', 'parquet', b'parquet', 'path_type', b'path_type', 'text', b'text', 'uri_file', b'uri_file', 'uri_folder', b'uri_folder', 'uri_path', b'uri_path', 'uri_path_glob', b'uri_path_glob']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['arrow', b'arrow', 'dwrf', b'dwrf', 'extension', b'extension', 'file_format', b'file_format', 'length', b'length', 'orc', b'orc', 'parquet', b'parquet', 'partition_index', b'partition_index', 'path_type', b'path_type', 'start', b'start', 'text', b'text', 'uri_file', b'uri_file', 'uri_folder', b'uri_folder', 'uri_path', b'uri_path', 'uri_path_glob', b'uri_path_glob']) -> None: - ... - + def text(self) -> global___ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptions: ... + def __init__( + self, + *, + uri_path: builtins.str = ..., + uri_path_glob: builtins.str = ..., + uri_file: builtins.str = ..., + uri_folder: builtins.str = ..., + partition_index: builtins.int = ..., + start: builtins.int = ..., + length: builtins.int = ..., + parquet: global___ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions | None = ..., + arrow: global___ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions | None = ..., + orc: global___ReadRel.LocalFiles.FileOrFiles.OrcReadOptions | None = ..., + extension: google.protobuf.any_pb2.Any | None = ..., + dwrf: global___ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions | None = ..., + text: global___ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptions | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["arrow", b"arrow", "dwrf", b"dwrf", "extension", b"extension", "file_format", b"file_format", "orc", b"orc", "parquet", b"parquet", "path_type", b"path_type", "text", b"text", "uri_file", b"uri_file", "uri_folder", b"uri_folder", "uri_path", b"uri_path", "uri_path_glob", b"uri_path_glob"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["arrow", b"arrow", "dwrf", b"dwrf", "extension", b"extension", "file_format", b"file_format", "length", b"length", "orc", b"orc", "parquet", b"parquet", "partition_index", b"partition_index", "path_type", b"path_type", "start", b"start", "text", b"text", "uri_file", b"uri_file", "uri_folder", b"uri_folder", "uri_path", b"uri_path", "uri_path_glob", b"uri_path_glob"]) -> None: ... @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['file_format', b'file_format']) -> typing.Literal['parquet', 'arrow', 'orc', 'extension', 'dwrf', 'text'] | None: - ... - + def WhichOneof(self, oneof_group: typing.Literal["file_format", b"file_format"]) -> typing.Literal["parquet", "arrow", "orc", "extension", "dwrf", "text"] | None: ... @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['path_type', b'path_type']) -> typing.Literal['uri_path', 'uri_path_glob', 'uri_file', 'uri_folder'] | None: - ... + def WhichOneof(self, oneof_group: typing.Literal["path_type", b"path_type"]) -> typing.Literal["uri_path", "uri_path_glob", "uri_file", "uri_folder"] | None: ... + ITEMS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int - @property - def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ReadRel.LocalFiles.FileOrFiles]: - ... - + def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ReadRel.LocalFiles.FileOrFiles]: ... @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, items: collections.abc.Iterable[global___ReadRel.LocalFiles.FileOrFiles] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + items: collections.abc.Iterable[global___ReadRel.LocalFiles.FileOrFiles] | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "items", b"items"]) -> None: ... - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'items', b'items']) -> None: - ... COMMON_FIELD_NUMBER: builtins.int BASE_SCHEMA_FIELD_NUMBER: builtins.int FILTER_FIELD_NUMBER: builtins.int @@ -573,139 +629,121 @@ class ReadRel(google.protobuf.message.Message): NAMED_TABLE_FIELD_NUMBER: builtins.int EXTENSION_TABLE_FIELD_NUMBER: builtins.int ICEBERG_TABLE_FIELD_NUMBER: builtins.int - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def base_schema(self) -> proto.type_pb2.NamedStruct: - ... - + def base_schema(self) -> proto.type_pb2.NamedStruct: ... @property - def filter(self) -> global___Expression: - ... - + def filter(self) -> global___Expression: ... @property - def best_effort_filter(self) -> global___Expression: - ... - + def best_effort_filter(self) -> global___Expression: ... @property - def projection(self) -> global___Expression.MaskExpression: - ... - + def projection(self) -> global___Expression.MaskExpression: ... @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... @property - def virtual_table(self) -> global___ReadRel.VirtualTable: - ... - + def virtual_table(self) -> global___ReadRel.VirtualTable: ... @property - def local_files(self) -> global___ReadRel.LocalFiles: - ... - + def local_files(self) -> global___ReadRel.LocalFiles: ... @property - def named_table(self) -> global___ReadRel.NamedTable: - ... - + def named_table(self) -> global___ReadRel.NamedTable: ... @property - def extension_table(self) -> global___ReadRel.ExtensionTable: - ... - + def extension_table(self) -> global___ReadRel.ExtensionTable: ... @property - def iceberg_table(self) -> global___ReadRel.IcebergTable: - ... - - def __init__(self, *, common: global___RelCommon | None=..., base_schema: proto.type_pb2.NamedStruct | None=..., filter: global___Expression | None=..., best_effort_filter: global___Expression | None=..., projection: global___Expression.MaskExpression | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=..., virtual_table: global___ReadRel.VirtualTable | None=..., local_files: global___ReadRel.LocalFiles | None=..., named_table: global___ReadRel.NamedTable | None=..., extension_table: global___ReadRel.ExtensionTable | None=..., iceberg_table: global___ReadRel.IcebergTable | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'base_schema', b'base_schema', 'best_effort_filter', b'best_effort_filter', 'common', b'common', 'extension_table', b'extension_table', 'filter', b'filter', 'iceberg_table', b'iceberg_table', 'local_files', b'local_files', 'named_table', b'named_table', 'projection', b'projection', 'read_type', b'read_type', 'virtual_table', b'virtual_table']) -> builtins.bool: - ... + def iceberg_table(self) -> global___ReadRel.IcebergTable: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + base_schema: proto.type_pb2.NamedStruct | None = ..., + filter: global___Expression | None = ..., + best_effort_filter: global___Expression | None = ..., + projection: global___Expression.MaskExpression | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + virtual_table: global___ReadRel.VirtualTable | None = ..., + local_files: global___ReadRel.LocalFiles | None = ..., + named_table: global___ReadRel.NamedTable | None = ..., + extension_table: global___ReadRel.ExtensionTable | None = ..., + iceberg_table: global___ReadRel.IcebergTable | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "base_schema", b"base_schema", "best_effort_filter", b"best_effort_filter", "common", b"common", "extension_table", b"extension_table", "filter", b"filter", "iceberg_table", b"iceberg_table", "local_files", b"local_files", "named_table", b"named_table", "projection", b"projection", "read_type", b"read_type", "virtual_table", b"virtual_table"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "base_schema", b"base_schema", "best_effort_filter", b"best_effort_filter", "common", b"common", "extension_table", b"extension_table", "filter", b"filter", "iceberg_table", b"iceberg_table", "local_files", b"local_files", "named_table", b"named_table", "projection", b"projection", "read_type", b"read_type", "virtual_table", b"virtual_table"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["read_type", b"read_type"]) -> typing.Literal["virtual_table", "local_files", "named_table", "extension_table", "iceberg_table"] | None: ... - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'base_schema', b'base_schema', 'best_effort_filter', b'best_effort_filter', 'common', b'common', 'extension_table', b'extension_table', 'filter', b'filter', 'iceberg_table', b'iceberg_table', 'local_files', b'local_files', 'named_table', b'named_table', 'projection', b'projection', 'read_type', b'read_type', 'virtual_table', b'virtual_table']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['read_type', b'read_type']) -> typing.Literal['virtual_table', 'local_files', 'named_table', 'extension_table', 'iceberg_table'] | None: - ... global___ReadRel = ReadRel @typing.final class ProjectRel(google.protobuf.message.Message): """This operator allows to represent calculated expressions of fields (e.g., a+b). Direct/Emit are used to represent classical relational projections""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int EXPRESSIONS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def input(self) -> global___Rel: - ... - + def input(self) -> global___Rel: ... @property - def expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: - ... - + def expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: ... @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + input: global___Rel | None = ..., + expressions: collections.abc.Iterable[global___Expression] | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "input", b"input"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "expressions", b"expressions", "input", b"input"]) -> None: ... - def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., expressions: collections.abc.Iterable[global___Expression] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'input', b'input']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'expressions', b'expressions', 'input', b'input']) -> None: - ... global___ProjectRel = ProjectRel @typing.final class JoinRel(google.protobuf.message.Message): """The binary JOIN relational operator left-join-right, including various join types, a join condition and post_join_filter expression""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _JoinType: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _JoinTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[JoinRel._JoinType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - JOIN_TYPE_UNSPECIFIED: JoinRel._JoinType.ValueType - JOIN_TYPE_INNER: JoinRel._JoinType.ValueType - JOIN_TYPE_OUTER: JoinRel._JoinType.ValueType - JOIN_TYPE_LEFT: JoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT: JoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_SEMI: JoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_ANTI: JoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_SINGLE: JoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_SEMI: JoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_ANTI: JoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_SINGLE: JoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_MARK: JoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_MARK: JoinRel._JoinType.ValueType - - class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): - ... - JOIN_TYPE_UNSPECIFIED: JoinRel.JoinType.ValueType - JOIN_TYPE_INNER: JoinRel.JoinType.ValueType - JOIN_TYPE_OUTER: JoinRel.JoinType.ValueType - JOIN_TYPE_LEFT: JoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT: JoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_SEMI: JoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_ANTI: JoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_SINGLE: JoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_SEMI: JoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_ANTI: JoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_SINGLE: JoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_MARK: JoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_MARK: JoinRel.JoinType.ValueType + JOIN_TYPE_UNSPECIFIED: JoinRel._JoinType.ValueType # 0 + JOIN_TYPE_INNER: JoinRel._JoinType.ValueType # 1 + JOIN_TYPE_OUTER: JoinRel._JoinType.ValueType # 2 + JOIN_TYPE_LEFT: JoinRel._JoinType.ValueType # 3 + JOIN_TYPE_RIGHT: JoinRel._JoinType.ValueType # 4 + JOIN_TYPE_LEFT_SEMI: JoinRel._JoinType.ValueType # 5 + JOIN_TYPE_LEFT_ANTI: JoinRel._JoinType.ValueType # 6 + JOIN_TYPE_LEFT_SINGLE: JoinRel._JoinType.ValueType # 7 + JOIN_TYPE_RIGHT_SEMI: JoinRel._JoinType.ValueType # 8 + JOIN_TYPE_RIGHT_ANTI: JoinRel._JoinType.ValueType # 9 + JOIN_TYPE_RIGHT_SINGLE: JoinRel._JoinType.ValueType # 10 + JOIN_TYPE_LEFT_MARK: JoinRel._JoinType.ValueType # 11 + JOIN_TYPE_RIGHT_MARK: JoinRel._JoinType.ValueType # 12 + + class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): ... + JOIN_TYPE_UNSPECIFIED: JoinRel.JoinType.ValueType # 0 + JOIN_TYPE_INNER: JoinRel.JoinType.ValueType # 1 + JOIN_TYPE_OUTER: JoinRel.JoinType.ValueType # 2 + JOIN_TYPE_LEFT: JoinRel.JoinType.ValueType # 3 + JOIN_TYPE_RIGHT: JoinRel.JoinType.ValueType # 4 + JOIN_TYPE_LEFT_SEMI: JoinRel.JoinType.ValueType # 5 + JOIN_TYPE_LEFT_ANTI: JoinRel.JoinType.ValueType # 6 + JOIN_TYPE_LEFT_SINGLE: JoinRel.JoinType.ValueType # 7 + JOIN_TYPE_RIGHT_SEMI: JoinRel.JoinType.ValueType # 8 + JOIN_TYPE_RIGHT_ANTI: JoinRel.JoinType.ValueType # 9 + JOIN_TYPE_RIGHT_SINGLE: JoinRel.JoinType.ValueType # 10 + JOIN_TYPE_LEFT_MARK: JoinRel.JoinType.ValueType # 11 + JOIN_TYPE_RIGHT_MARK: JoinRel.JoinType.ValueType # 12 + COMMON_FIELD_NUMBER: builtins.int LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int @@ -714,80 +752,71 @@ class JoinRel(google.protobuf.message.Message): TYPE_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int type: global___JoinRel.JoinType.ValueType - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def left(self) -> global___Rel: - ... - + def left(self) -> global___Rel: ... @property - def right(self) -> global___Rel: - ... - + def right(self) -> global___Rel: ... @property - def expression(self) -> global___Expression: - ... - + def expression(self) -> global___Expression: ... @property - def post_join_filter(self) -> global___Expression: - ... - + def post_join_filter(self) -> global___Expression: ... @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, common: global___RelCommon | None=..., left: global___Rel | None=..., right: global___Rel | None=..., expression: global___Expression | None=..., post_join_filter: global___Expression | None=..., type: global___JoinRel.JoinType.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + left: global___Rel | None = ..., + right: global___Rel | None = ..., + expression: global___Expression | None = ..., + post_join_filter: global___Expression | None = ..., + type: global___JoinRel.JoinType.ValueType = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "expression", b"expression", "left", b"left", "post_join_filter", b"post_join_filter", "right", b"right"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "expression", b"expression", "left", b"left", "post_join_filter", b"post_join_filter", "right", b"right", "type", b"type"]) -> None: ... - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'expression', b'expression', 'left', b'left', 'post_join_filter', b'post_join_filter', 'right', b'right']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'expression', b'expression', 'left', b'left', 'post_join_filter', b'post_join_filter', 'right', b'right', 'type', b'type']) -> None: - ... global___JoinRel = JoinRel @typing.final class CrossRel(google.protobuf.message.Message): """Cartesian product relational operator of two tables (left and right)""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + COMMON_FIELD_NUMBER: builtins.int LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def left(self) -> global___Rel: - ... - + def left(self) -> global___Rel: ... @property - def right(self) -> global___Rel: - ... - + def right(self) -> global___Rel: ... @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, common: global___RelCommon | None=..., left: global___Rel | None=..., right: global___Rel | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'left', b'left', 'right', b'right']) -> builtins.bool: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + left: global___Rel | None = ..., + right: global___Rel | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "left", b"left", "right", b"right"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "left", b"left", "right", b"right"]) -> None: ... - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'left', b'left', 'right', b'right']) -> None: - ... global___CrossRel = CrossRel @typing.final class FetchRel(google.protobuf.message.Message): """The relational operator representing LIMIT/OFFSET or TOP type semantics.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int OFFSET_FIELD_NUMBER: builtins.int @@ -796,18 +825,18 @@ class FetchRel(google.protobuf.message.Message): COUNT_EXPR_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int offset: builtins.int - 'the offset expressed in number of records\n Deprecated: use `offset_expr` instead\n ' + """the offset expressed in number of records + Deprecated: use `offset_expr` instead + """ count: builtins.int - 'the amount of records to return\n use -1 to signal that ALL records should be returned\n Deprecated: use `count_expr` instead\n ' - + """the amount of records to return + use -1 to signal that ALL records should be returned + Deprecated: use `count_expr` instead + """ @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def input(self) -> global___Rel: - ... - + def input(self) -> global___Rel: ... @property def offset_expr(self) -> global___Expression: """Expression evaluated into a non-negative integer specifying the number @@ -826,38 +855,39 @@ class FetchRel(google.protobuf.message.Message): """ @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., offset: builtins.int=..., offset_expr: global___Expression | None=..., count: builtins.int=..., count_expr: global___Expression | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'count', b'count', 'count_expr', b'count_expr', 'count_mode', b'count_mode', 'input', b'input', 'offset', b'offset', 'offset_expr', b'offset_expr', 'offset_mode', b'offset_mode']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'count', b'count', 'count_expr', b'count_expr', 'count_mode', b'count_mode', 'input', b'input', 'offset', b'offset', 'offset_expr', b'offset_expr', 'offset_mode', b'offset_mode']) -> None: - ... - + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + input: global___Rel | None = ..., + offset: builtins.int = ..., + offset_expr: global___Expression | None = ..., + count: builtins.int = ..., + count_expr: global___Expression | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "count", b"count", "count_expr", b"count_expr", "count_mode", b"count_mode", "input", b"input", "offset", b"offset", "offset_expr", b"offset_expr", "offset_mode", b"offset_mode"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "count", b"count", "count_expr", b"count_expr", "count_mode", b"count_mode", "input", b"input", "offset", b"offset", "offset_expr", b"offset_expr", "offset_mode", b"offset_mode"]) -> None: ... @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['count_mode', b'count_mode']) -> typing.Literal['count', 'count_expr'] | None: - ... - + def WhichOneof(self, oneof_group: typing.Literal["count_mode", b"count_mode"]) -> typing.Literal["count", "count_expr"] | None: ... @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['offset_mode', b'offset_mode']) -> typing.Literal['offset', 'offset_expr'] | None: - ... + def WhichOneof(self, oneof_group: typing.Literal["offset_mode", b"offset_mode"]) -> typing.Literal["offset", "offset_expr"] | None: ... + global___FetchRel = FetchRel @typing.final class AggregateRel(google.protobuf.message.Message): """The relational operator representing a GROUP BY Aggregate""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class Grouping(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + GROUPING_EXPRESSIONS_FIELD_NUMBER: builtins.int EXPRESSION_REFERENCES_FIELD_NUMBER: builtins.int - @property def grouping_expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: """Deprecated in favor of `expression_references` below.""" @@ -868,22 +898,22 @@ class AggregateRel(google.protobuf.message.Message): into the `grouping_expression` list. """ - def __init__(self, *, grouping_expressions: collections.abc.Iterable[global___Expression] | None=..., expression_references: collections.abc.Iterable[builtins.int] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['expression_references', b'expression_references', 'grouping_expressions', b'grouping_expressions']) -> None: - ... + def __init__( + self, + *, + grouping_expressions: collections.abc.Iterable[global___Expression] | None = ..., + expression_references: collections.abc.Iterable[builtins.int] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["expression_references", b"expression_references", "grouping_expressions", b"grouping_expressions"]) -> None: ... @typing.final class Measure(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + MEASURE_FIELD_NUMBER: builtins.int FILTER_FIELD_NUMBER: builtins.int - @property - def measure(self) -> global___AggregateFunction: - ... - + def measure(self) -> global___AggregateFunction: ... @property def filter(self) -> global___Expression: """An optional boolean expression that acts to filter which records are @@ -892,25 +922,23 @@ class AggregateRel(google.protobuf.message.Message): Helps to support SUM() FILTER(WHERE...) syntax without masking opportunities for optimization """ - def __init__(self, *, measure: global___AggregateFunction | None=..., filter: global___Expression | None=...) -> None: - ... + def __init__( + self, + *, + measure: global___AggregateFunction | None = ..., + filter: global___Expression | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["filter", b"filter", "measure", b"measure"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["filter", b"filter", "measure", b"measure"]) -> None: ... - def HasField(self, field_name: typing.Literal['filter', b'filter', 'measure', b'measure']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['filter', b'filter', 'measure', b'measure']) -> None: - ... COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int GROUPINGS_FIELD_NUMBER: builtins.int MEASURES_FIELD_NUMBER: builtins.int GROUPING_EXPRESSIONS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property def input(self) -> global___Rel: """Input of the aggregation""" @@ -937,17 +965,20 @@ class AggregateRel(google.protobuf.message.Message): """ @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., groupings: collections.abc.Iterable[global___AggregateRel.Grouping] | None=..., measures: collections.abc.Iterable[global___AggregateRel.Measure] | None=..., grouping_expressions: collections.abc.Iterable[global___Expression] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + input: global___Rel | None = ..., + groupings: collections.abc.Iterable[global___AggregateRel.Grouping] | None = ..., + measures: collections.abc.Iterable[global___AggregateRel.Measure] | None = ..., + grouping_expressions: collections.abc.Iterable[global___Expression] | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "input", b"input"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "grouping_expressions", b"grouping_expressions", "groupings", b"groupings", "input", b"input", "measures", b"measures"]) -> None: ... - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'input', b'input']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'grouping_expressions', b'grouping_expressions', 'groupings', b'groupings', 'input', b'input', 'measures', b'measures']) -> None: - ... global___AggregateRel = AggregateRel @typing.final @@ -956,6 +987,7 @@ class ConsistentPartitionWindowRel(google.protobuf.message.Message): that are related to the current query row. It can be used to execute window functions where all the windows share the same partitioning and ordering. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final @@ -964,7 +996,9 @@ class ConsistentPartitionWindowRel(google.protobuf.message.Message): sorts, and bounds, since those must be consistent across the various functions in this rel. Refer to the `WindowFunction` message for a description of these fields. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + FUNCTION_REFERENCE_FIELD_NUMBER: builtins.int ARGUMENTS_FIELD_NUMBER: builtins.int OPTIONS_FIELD_NUMBER: builtins.int @@ -978,188 +1012,167 @@ class ConsistentPartitionWindowRel(google.protobuf.message.Message): phase: global___AggregationPhase.ValueType invocation: global___AggregateFunction.AggregationInvocation.ValueType bounds_type: global___Expression.WindowFunction.BoundsType.ValueType - @property - def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionArgument]: - ... - + def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionArgument]: ... @property - def options(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionOption]: - ... - + def options(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionOption]: ... @property - def output_type(self) -> proto.type_pb2.Type: - ... - + def output_type(self) -> proto.type_pb2.Type: ... @property - def lower_bound(self) -> global___Expression.WindowFunction.Bound: - ... - + def lower_bound(self) -> global___Expression.WindowFunction.Bound: ... @property - def upper_bound(self) -> global___Expression.WindowFunction.Bound: - ... - - def __init__(self, *, function_reference: builtins.int=..., arguments: collections.abc.Iterable[global___FunctionArgument] | None=..., options: collections.abc.Iterable[global___FunctionOption] | None=..., output_type: proto.type_pb2.Type | None=..., phase: global___AggregationPhase.ValueType=..., invocation: global___AggregateFunction.AggregationInvocation.ValueType=..., lower_bound: global___Expression.WindowFunction.Bound | None=..., upper_bound: global___Expression.WindowFunction.Bound | None=..., bounds_type: global___Expression.WindowFunction.BoundsType.ValueType=...) -> None: - ... + def upper_bound(self) -> global___Expression.WindowFunction.Bound: ... + def __init__( + self, + *, + function_reference: builtins.int = ..., + arguments: collections.abc.Iterable[global___FunctionArgument] | None = ..., + options: collections.abc.Iterable[global___FunctionOption] | None = ..., + output_type: proto.type_pb2.Type | None = ..., + phase: global___AggregationPhase.ValueType = ..., + invocation: global___AggregateFunction.AggregationInvocation.ValueType = ..., + lower_bound: global___Expression.WindowFunction.Bound | None = ..., + upper_bound: global___Expression.WindowFunction.Bound | None = ..., + bounds_type: global___Expression.WindowFunction.BoundsType.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["lower_bound", b"lower_bound", "output_type", b"output_type", "upper_bound", b"upper_bound"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["arguments", b"arguments", "bounds_type", b"bounds_type", "function_reference", b"function_reference", "invocation", b"invocation", "lower_bound", b"lower_bound", "options", b"options", "output_type", b"output_type", "phase", b"phase", "upper_bound", b"upper_bound"]) -> None: ... - def HasField(self, field_name: typing.Literal['lower_bound', b'lower_bound', 'output_type', b'output_type', 'upper_bound', b'upper_bound']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['arguments', b'arguments', 'bounds_type', b'bounds_type', 'function_reference', b'function_reference', 'invocation', b'invocation', 'lower_bound', b'lower_bound', 'options', b'options', 'output_type', b'output_type', 'phase', b'phase', 'upper_bound', b'upper_bound']) -> None: - ... COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int WINDOW_FUNCTIONS_FIELD_NUMBER: builtins.int PARTITION_EXPRESSIONS_FIELD_NUMBER: builtins.int SORTS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def input(self) -> global___Rel: - ... - + def input(self) -> global___Rel: ... @property - def window_functions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ConsistentPartitionWindowRel.WindowRelFunction]: - ... - + def window_functions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ConsistentPartitionWindowRel.WindowRelFunction]: ... @property - def partition_expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: - ... - + def partition_expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: ... @property - def sorts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SortField]: - ... - + def sorts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SortField]: ... @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., window_functions: collections.abc.Iterable[global___ConsistentPartitionWindowRel.WindowRelFunction] | None=..., partition_expressions: collections.abc.Iterable[global___Expression] | None=..., sorts: collections.abc.Iterable[global___SortField] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'input', b'input']) -> builtins.bool: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + input: global___Rel | None = ..., + window_functions: collections.abc.Iterable[global___ConsistentPartitionWindowRel.WindowRelFunction] | None = ..., + partition_expressions: collections.abc.Iterable[global___Expression] | None = ..., + sorts: collections.abc.Iterable[global___SortField] | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "input", b"input"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "input", b"input", "partition_expressions", b"partition_expressions", "sorts", b"sorts", "window_functions", b"window_functions"]) -> None: ... - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'input', b'input', 'partition_expressions', b'partition_expressions', 'sorts', b'sorts', 'window_functions', b'window_functions']) -> None: - ... global___ConsistentPartitionWindowRel = ConsistentPartitionWindowRel @typing.final class SortRel(google.protobuf.message.Message): """The ORDERY BY (or sorting) relational operator. Beside describing a base relation, it includes a list of fields to sort on""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int SORTS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def input(self) -> global___Rel: - ... - + def input(self) -> global___Rel: ... @property - def sorts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SortField]: - ... - + def sorts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SortField]: ... @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., sorts: collections.abc.Iterable[global___SortField] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + input: global___Rel | None = ..., + sorts: collections.abc.Iterable[global___SortField] | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "input", b"input"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "input", b"input", "sorts", b"sorts"]) -> None: ... - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'input', b'input']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'input', b'input', 'sorts', b'sorts']) -> None: - ... global___SortRel = SortRel @typing.final class FilterRel(google.protobuf.message.Message): """The relational operator capturing simple FILTERs (as in the WHERE clause of SQL)""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int CONDITION_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def input(self) -> global___Rel: - ... - + def input(self) -> global___Rel: ... @property - def condition(self) -> global___Expression: - ... - + def condition(self) -> global___Expression: ... @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., condition: global___Expression | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'condition', b'condition', 'input', b'input']) -> builtins.bool: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + input: global___Rel | None = ..., + condition: global___Expression | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "condition", b"condition", "input", b"input"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "condition", b"condition", "input", b"input"]) -> None: ... - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'condition', b'condition', 'input', b'input']) -> None: - ... global___FilterRel = FilterRel @typing.final class SetRel(google.protobuf.message.Message): """The relational set operators (intersection/union/etc..)""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _SetOp: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _SetOpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SetRel._SetOp.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - SET_OP_UNSPECIFIED: SetRel._SetOp.ValueType - SET_OP_MINUS_PRIMARY: SetRel._SetOp.ValueType - SET_OP_MINUS_PRIMARY_ALL: SetRel._SetOp.ValueType - SET_OP_MINUS_MULTISET: SetRel._SetOp.ValueType - SET_OP_INTERSECTION_PRIMARY: SetRel._SetOp.ValueType - SET_OP_INTERSECTION_MULTISET: SetRel._SetOp.ValueType - SET_OP_INTERSECTION_MULTISET_ALL: SetRel._SetOp.ValueType - SET_OP_UNION_DISTINCT: SetRel._SetOp.ValueType - SET_OP_UNION_ALL: SetRel._SetOp.ValueType - - class SetOp(_SetOp, metaclass=_SetOpEnumTypeWrapper): - ... - SET_OP_UNSPECIFIED: SetRel.SetOp.ValueType - SET_OP_MINUS_PRIMARY: SetRel.SetOp.ValueType - SET_OP_MINUS_PRIMARY_ALL: SetRel.SetOp.ValueType - SET_OP_MINUS_MULTISET: SetRel.SetOp.ValueType - SET_OP_INTERSECTION_PRIMARY: SetRel.SetOp.ValueType - SET_OP_INTERSECTION_MULTISET: SetRel.SetOp.ValueType - SET_OP_INTERSECTION_MULTISET_ALL: SetRel.SetOp.ValueType - SET_OP_UNION_DISTINCT: SetRel.SetOp.ValueType - SET_OP_UNION_ALL: SetRel.SetOp.ValueType + SET_OP_UNSPECIFIED: SetRel._SetOp.ValueType # 0 + SET_OP_MINUS_PRIMARY: SetRel._SetOp.ValueType # 1 + SET_OP_MINUS_PRIMARY_ALL: SetRel._SetOp.ValueType # 7 + SET_OP_MINUS_MULTISET: SetRel._SetOp.ValueType # 2 + SET_OP_INTERSECTION_PRIMARY: SetRel._SetOp.ValueType # 3 + SET_OP_INTERSECTION_MULTISET: SetRel._SetOp.ValueType # 4 + SET_OP_INTERSECTION_MULTISET_ALL: SetRel._SetOp.ValueType # 8 + SET_OP_UNION_DISTINCT: SetRel._SetOp.ValueType # 5 + SET_OP_UNION_ALL: SetRel._SetOp.ValueType # 6 + + class SetOp(_SetOp, metaclass=_SetOpEnumTypeWrapper): ... + SET_OP_UNSPECIFIED: SetRel.SetOp.ValueType # 0 + SET_OP_MINUS_PRIMARY: SetRel.SetOp.ValueType # 1 + SET_OP_MINUS_PRIMARY_ALL: SetRel.SetOp.ValueType # 7 + SET_OP_MINUS_MULTISET: SetRel.SetOp.ValueType # 2 + SET_OP_INTERSECTION_PRIMARY: SetRel.SetOp.ValueType # 3 + SET_OP_INTERSECTION_MULTISET: SetRel.SetOp.ValueType # 4 + SET_OP_INTERSECTION_MULTISET_ALL: SetRel.SetOp.ValueType # 8 + SET_OP_UNION_DISTINCT: SetRel.SetOp.ValueType # 5 + SET_OP_UNION_ALL: SetRel.SetOp.ValueType # 6 + COMMON_FIELD_NUMBER: builtins.int INPUTS_FIELD_NUMBER: builtins.int OP_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int op: global___SetRel.SetOp.ValueType - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property def inputs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Rel]: """The first input is the primary input, the remaining are secondary @@ -1167,195 +1180,192 @@ class SetRel(google.protobuf.message.Message): """ @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + inputs: collections.abc.Iterable[global___Rel] | None = ..., + op: global___SetRel.SetOp.ValueType = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "inputs", b"inputs", "op", b"op"]) -> None: ... - def __init__(self, *, common: global___RelCommon | None=..., inputs: collections.abc.Iterable[global___Rel] | None=..., op: global___SetRel.SetOp.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'inputs', b'inputs', 'op', b'op']) -> None: - ... global___SetRel = SetRel @typing.final class ExtensionSingleRel(google.protobuf.message.Message): """Stub to support extension with a single input""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int DETAIL_FIELD_NUMBER: builtins.int - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def input(self) -> global___Rel: - ... - + def input(self) -> global___Rel: ... @property - def detail(self) -> google.protobuf.any_pb2.Any: - ... + def detail(self) -> google.protobuf.any_pb2.Any: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + input: global___Rel | None = ..., + detail: google.protobuf.any_pb2.Any | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["common", b"common", "detail", b"detail", "input", b"input"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["common", b"common", "detail", b"detail", "input", b"input"]) -> None: ... - def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., detail: google.protobuf.any_pb2.Any | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['common', b'common', 'detail', b'detail', 'input', b'input']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['common', b'common', 'detail', b'detail', 'input', b'input']) -> None: - ... global___ExtensionSingleRel = ExtensionSingleRel @typing.final class ExtensionLeafRel(google.protobuf.message.Message): """Stub to support extension with a zero inputs""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + COMMON_FIELD_NUMBER: builtins.int DETAIL_FIELD_NUMBER: builtins.int - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def detail(self) -> google.protobuf.any_pb2.Any: - ... - - def __init__(self, *, common: global___RelCommon | None=..., detail: google.protobuf.any_pb2.Any | None=...) -> None: - ... + def detail(self) -> google.protobuf.any_pb2.Any: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + detail: google.protobuf.any_pb2.Any | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["common", b"common", "detail", b"detail"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["common", b"common", "detail", b"detail"]) -> None: ... - def HasField(self, field_name: typing.Literal['common', b'common', 'detail', b'detail']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['common', b'common', 'detail', b'detail']) -> None: - ... global___ExtensionLeafRel = ExtensionLeafRel @typing.final class ExtensionMultiRel(google.protobuf.message.Message): """Stub to support extension with multiple inputs""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + COMMON_FIELD_NUMBER: builtins.int INPUTS_FIELD_NUMBER: builtins.int DETAIL_FIELD_NUMBER: builtins.int - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def inputs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Rel]: - ... - + def inputs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Rel]: ... @property - def detail(self) -> google.protobuf.any_pb2.Any: - ... - - def __init__(self, *, common: global___RelCommon | None=..., inputs: collections.abc.Iterable[global___Rel] | None=..., detail: google.protobuf.any_pb2.Any | None=...) -> None: - ... + def detail(self) -> google.protobuf.any_pb2.Any: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + inputs: collections.abc.Iterable[global___Rel] | None = ..., + detail: google.protobuf.any_pb2.Any | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["common", b"common", "detail", b"detail"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["common", b"common", "detail", b"detail", "inputs", b"inputs"]) -> None: ... - def HasField(self, field_name: typing.Literal['common', b'common', 'detail', b'detail']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['common', b'common', 'detail', b'detail', 'inputs', b'inputs']) -> None: - ... global___ExtensionMultiRel = ExtensionMultiRel @typing.final class ExchangeRel(google.protobuf.message.Message): """A redistribution operation""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class ScatterFields(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - FIELDS_FIELD_NUMBER: builtins.int + FIELDS_FIELD_NUMBER: builtins.int @property - def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: - ... - - def __init__(self, *, fields: collections.abc.Iterable[global___Expression.FieldReference] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['fields', b'fields']) -> None: - ... + def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: ... + def __init__( + self, + *, + fields: collections.abc.Iterable[global___Expression.FieldReference] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["fields", b"fields"]) -> None: ... @typing.final class SingleBucketExpression(google.protobuf.message.Message): """Returns a single bucket number per record.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXPRESSION_FIELD_NUMBER: builtins.int + EXPRESSION_FIELD_NUMBER: builtins.int @property - def expression(self) -> global___Expression: - ... - - def __init__(self, *, expression: global___Expression | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['expression', b'expression']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['expression', b'expression']) -> None: - ... + def expression(self) -> global___Expression: ... + def __init__( + self, + *, + expression: global___Expression | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["expression", b"expression"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["expression", b"expression"]) -> None: ... @typing.final class MultiBucketExpression(google.protobuf.message.Message): """Returns zero or more bucket numbers per record""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + EXPRESSION_FIELD_NUMBER: builtins.int CONSTRAINED_TO_COUNT_FIELD_NUMBER: builtins.int constrained_to_count: builtins.bool - - @property - def expression(self) -> global___Expression: - ... - - def __init__(self, *, expression: global___Expression | None=..., constrained_to_count: builtins.bool=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['expression', b'expression']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['constrained_to_count', b'constrained_to_count', 'expression', b'expression']) -> None: - ... + @property + def expression(self) -> global___Expression: ... + def __init__( + self, + *, + expression: global___Expression | None = ..., + constrained_to_count: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["expression", b"expression"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["constrained_to_count", b"constrained_to_count", "expression", b"expression"]) -> None: ... @typing.final class Broadcast(google.protobuf.message.Message): """Send all data to every target.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__(self) -> None: - ... + def __init__( + self, + ) -> None: ... @typing.final class RoundRobin(google.protobuf.message.Message): """Route approximately""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + EXACT_FIELD_NUMBER: builtins.int exact: builtins.bool - 'whether the round robin behavior is required to exact (per record) or\n approximate. Defaults to approximate.\n ' - - def __init__(self, *, exact: builtins.bool=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['exact', b'exact']) -> None: - ... + """whether the round robin behavior is required to exact (per record) or + approximate. Defaults to approximate. + """ + def __init__( + self, + *, + exact: builtins.bool = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["exact", b"exact"]) -> None: ... @typing.final class ExchangeTarget(google.protobuf.message.Message): """The message to describe partition targets of an exchange""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + PARTITION_ID_FIELD_NUMBER: builtins.int URI_FIELD_NUMBER: builtins.int EXTENDED_FIELD_NUMBER: builtins.int uri: builtins.str - @property def partition_id(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: """Describes the partition id(s) to send. If this is empty, all data is sent @@ -1363,20 +1373,18 @@ class ExchangeRel(google.protobuf.message.Message): """ @property - def extended(self) -> google.protobuf.any_pb2.Any: - ... - - def __init__(self, *, partition_id: collections.abc.Iterable[builtins.int] | None=..., uri: builtins.str=..., extended: google.protobuf.any_pb2.Any | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['extended', b'extended', 'target_type', b'target_type', 'uri', b'uri']) -> builtins.bool: - ... + def extended(self) -> google.protobuf.any_pb2.Any: ... + def __init__( + self, + *, + partition_id: collections.abc.Iterable[builtins.int] | None = ..., + uri: builtins.str = ..., + extended: google.protobuf.any_pb2.Any | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["extended", b"extended", "target_type", b"target_type", "uri", b"uri"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["extended", b"extended", "partition_id", b"partition_id", "target_type", b"target_type", "uri", b"uri"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["target_type", b"target_type"]) -> typing.Literal["uri", "extended"] | None: ... - def ClearField(self, field_name: typing.Literal['extended', b'extended', 'partition_id', b'partition_id', 'target_type', b'target_type', 'uri', b'uri']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['target_type', b'target_type']) -> typing.Literal['uri', 'extended'] | None: - ... COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int PARTITION_COUNT_FIELD_NUMBER: builtins.int @@ -1388,54 +1396,42 @@ class ExchangeRel(google.protobuf.message.Message): BROADCAST_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int partition_count: builtins.int - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def input(self) -> global___Rel: - ... - + def input(self) -> global___Rel: ... @property - def targets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExchangeRel.ExchangeTarget]: - ... - + def targets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExchangeRel.ExchangeTarget]: ... @property - def scatter_by_fields(self) -> global___ExchangeRel.ScatterFields: - ... - + def scatter_by_fields(self) -> global___ExchangeRel.ScatterFields: ... @property - def single_target(self) -> global___ExchangeRel.SingleBucketExpression: - ... - + def single_target(self) -> global___ExchangeRel.SingleBucketExpression: ... @property - def multi_target(self) -> global___ExchangeRel.MultiBucketExpression: - ... - + def multi_target(self) -> global___ExchangeRel.MultiBucketExpression: ... @property - def round_robin(self) -> global___ExchangeRel.RoundRobin: - ... - + def round_robin(self) -> global___ExchangeRel.RoundRobin: ... @property - def broadcast(self) -> global___ExchangeRel.Broadcast: - ... - + def broadcast(self) -> global___ExchangeRel.Broadcast: ... @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., partition_count: builtins.int=..., targets: collections.abc.Iterable[global___ExchangeRel.ExchangeTarget] | None=..., scatter_by_fields: global___ExchangeRel.ScatterFields | None=..., single_target: global___ExchangeRel.SingleBucketExpression | None=..., multi_target: global___ExchangeRel.MultiBucketExpression | None=..., round_robin: global___ExchangeRel.RoundRobin | None=..., broadcast: global___ExchangeRel.Broadcast | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + input: global___Rel | None = ..., + partition_count: builtins.int = ..., + targets: collections.abc.Iterable[global___ExchangeRel.ExchangeTarget] | None = ..., + scatter_by_fields: global___ExchangeRel.ScatterFields | None = ..., + single_target: global___ExchangeRel.SingleBucketExpression | None = ..., + multi_target: global___ExchangeRel.MultiBucketExpression | None = ..., + round_robin: global___ExchangeRel.RoundRobin | None = ..., + broadcast: global___ExchangeRel.Broadcast | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "broadcast", b"broadcast", "common", b"common", "exchange_kind", b"exchange_kind", "input", b"input", "multi_target", b"multi_target", "round_robin", b"round_robin", "scatter_by_fields", b"scatter_by_fields", "single_target", b"single_target"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "broadcast", b"broadcast", "common", b"common", "exchange_kind", b"exchange_kind", "input", b"input", "multi_target", b"multi_target", "partition_count", b"partition_count", "round_robin", b"round_robin", "scatter_by_fields", b"scatter_by_fields", "single_target", b"single_target", "targets", b"targets"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["exchange_kind", b"exchange_kind"]) -> typing.Literal["scatter_by_fields", "single_target", "multi_target", "round_robin", "broadcast"] | None: ... - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'broadcast', b'broadcast', 'common', b'common', 'exchange_kind', b'exchange_kind', 'input', b'input', 'multi_target', b'multi_target', 'round_robin', b'round_robin', 'scatter_by_fields', b'scatter_by_fields', 'single_target', b'single_target']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'broadcast', b'broadcast', 'common', b'common', 'exchange_kind', b'exchange_kind', 'input', b'input', 'multi_target', b'multi_target', 'partition_count', b'partition_count', 'round_robin', b'round_robin', 'scatter_by_fields', b'scatter_by_fields', 'single_target', b'single_target', 'targets', b'targets']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['exchange_kind', b'exchange_kind']) -> typing.Literal['scatter_by_fields', 'single_target', 'multi_target', 'round_robin', 'broadcast'] | None: - ... global___ExchangeRel = ExchangeRel @typing.final @@ -1446,14 +1442,15 @@ class ExpandRel(google.protobuf.message.Message): In addition to a field being emitted per input field an extra int64 field is emitted which contains a zero-indexed ordinal corresponding to the duplicate definition. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class ExpandField(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + SWITCHING_FIELD_FIELD_NUMBER: builtins.int CONSISTENT_FIELD_FIELD_NUMBER: builtins.int - @property def switching_field(self) -> global___ExpandRel.SwitchingField: """Field that switches output based on which duplicate is being output. Every @@ -1468,46 +1465,41 @@ class ExpandRel(google.protobuf.message.Message): to a switching_field that lists the same expression multiple times. """ - def __init__(self, *, switching_field: global___ExpandRel.SwitchingField | None=..., consistent_field: global___Expression | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['consistent_field', b'consistent_field', 'field_type', b'field_type', 'switching_field', b'switching_field']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['consistent_field', b'consistent_field', 'field_type', b'field_type', 'switching_field', b'switching_field']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['field_type', b'field_type']) -> typing.Literal['switching_field', 'consistent_field'] | None: - ... + def __init__( + self, + *, + switching_field: global___ExpandRel.SwitchingField | None = ..., + consistent_field: global___Expression | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["consistent_field", b"consistent_field", "field_type", b"field_type", "switching_field", b"switching_field"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["consistent_field", b"consistent_field", "field_type", b"field_type", "switching_field", b"switching_field"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["field_type", b"field_type"]) -> typing.Literal["switching_field", "consistent_field"] | None: ... @typing.final class SwitchingField(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - DUPLICATES_FIELD_NUMBER: builtins.int + DUPLICATES_FIELD_NUMBER: builtins.int @property def duplicates(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: """All duplicates must return the same type class but may differ in nullability. The effective type of the output field will be nullable if any of the duplicate expressions are nullable. """ - def __init__(self, *, duplicates: collections.abc.Iterable[global___Expression] | None=...) -> None: - ... + def __init__( + self, + *, + duplicates: collections.abc.Iterable[global___Expression] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["duplicates", b"duplicates"]) -> None: ... - def ClearField(self, field_name: typing.Literal['duplicates', b'duplicates']) -> None: - ... COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int FIELDS_FIELD_NUMBER: builtins.int - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def input(self) -> global___Rel: - ... - + def input(self) -> global___Rel: ... @property def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExpandRel.ExpandField]: """There should be one definition here for each input field. Any fields beyond the provided @@ -1515,14 +1507,16 @@ class ExpandRel(google.protobuf.message.Message): expression was provided). """ - def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., fields: collections.abc.Iterable[global___ExpandRel.ExpandField] | None=...) -> None: - ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + input: global___Rel | None = ..., + fields: collections.abc.Iterable[global___ExpandRel.ExpandField] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["common", b"common", "input", b"input"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["common", b"common", "fields", b"fields", "input", b"input"]) -> None: ... - def HasField(self, field_name: typing.Literal['common', b'common', 'input', b'input']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['common', b'common', 'fields', b'fields', 'input', b'input']) -> None: - ... global___ExpandRel = ExpandRel @typing.final @@ -1531,10 +1525,11 @@ class RelRoot(google.protobuf.message.Message): This is for use at the root of a `Rel` tree. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + INPUT_FIELD_NUMBER: builtins.int NAMES_FIELD_NUMBER: builtins.int - @property def input(self) -> global___Rel: """A relation""" @@ -1543,20 +1538,23 @@ class RelRoot(google.protobuf.message.Message): def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """Field names in depth-first order""" - def __init__(self, *, input: global___Rel | None=..., names: collections.abc.Iterable[builtins.str] | None=...) -> None: - ... + def __init__( + self, + *, + input: global___Rel | None = ..., + names: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["input", b"input"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["input", b"input", "names", b"names"]) -> None: ... - def HasField(self, field_name: typing.Literal['input', b'input']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['input', b'input', 'names', b'names']) -> None: - ... global___RelRoot = RelRoot @typing.final class Rel(google.protobuf.message.Message): """A relation (used internally in a plan)""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + READ_FIELD_NUMBER: builtins.int FILTER_FIELD_NUMBER: builtins.int FETCH_FIELD_NUMBER: builtins.int @@ -1579,115 +1577,92 @@ class Rel(google.protobuf.message.Message): WINDOW_FIELD_NUMBER: builtins.int EXCHANGE_FIELD_NUMBER: builtins.int EXPAND_FIELD_NUMBER: builtins.int - @property - def read(self) -> global___ReadRel: - ... - + def read(self) -> global___ReadRel: ... @property - def filter(self) -> global___FilterRel: - ... - + def filter(self) -> global___FilterRel: ... @property - def fetch(self) -> global___FetchRel: - ... - + def fetch(self) -> global___FetchRel: ... @property - def aggregate(self) -> global___AggregateRel: - ... - + def aggregate(self) -> global___AggregateRel: ... @property - def sort(self) -> global___SortRel: - ... - + def sort(self) -> global___SortRel: ... @property - def join(self) -> global___JoinRel: - ... - + def join(self) -> global___JoinRel: ... @property - def project(self) -> global___ProjectRel: - ... - + def project(self) -> global___ProjectRel: ... @property - def set(self) -> global___SetRel: - ... - + def set(self) -> global___SetRel: ... @property - def extension_single(self) -> global___ExtensionSingleRel: - ... - + def extension_single(self) -> global___ExtensionSingleRel: ... @property - def extension_multi(self) -> global___ExtensionMultiRel: - ... - + def extension_multi(self) -> global___ExtensionMultiRel: ... @property - def extension_leaf(self) -> global___ExtensionLeafRel: - ... - + def extension_leaf(self) -> global___ExtensionLeafRel: ... @property - def cross(self) -> global___CrossRel: - ... - + def cross(self) -> global___CrossRel: ... @property - def reference(self) -> global___ReferenceRel: - ... - + def reference(self) -> global___ReferenceRel: ... @property - def write(self) -> global___WriteRel: - ... - + def write(self) -> global___WriteRel: ... @property - def ddl(self) -> global___DdlRel: - ... - + def ddl(self) -> global___DdlRel: ... @property - def update(self) -> global___UpdateRel: - ... - + def update(self) -> global___UpdateRel: ... @property def hash_join(self) -> global___HashJoinRel: """Physical relations""" @property - def merge_join(self) -> global___MergeJoinRel: - ... - - @property - def nested_loop_join(self) -> global___NestedLoopJoinRel: - ... + def merge_join(self) -> global___MergeJoinRel: ... + @property + def nested_loop_join(self) -> global___NestedLoopJoinRel: ... + @property + def window(self) -> global___ConsistentPartitionWindowRel: ... + @property + def exchange(self) -> global___ExchangeRel: ... + @property + def expand(self) -> global___ExpandRel: ... + def __init__( + self, + *, + read: global___ReadRel | None = ..., + filter: global___FilterRel | None = ..., + fetch: global___FetchRel | None = ..., + aggregate: global___AggregateRel | None = ..., + sort: global___SortRel | None = ..., + join: global___JoinRel | None = ..., + project: global___ProjectRel | None = ..., + set: global___SetRel | None = ..., + extension_single: global___ExtensionSingleRel | None = ..., + extension_multi: global___ExtensionMultiRel | None = ..., + extension_leaf: global___ExtensionLeafRel | None = ..., + cross: global___CrossRel | None = ..., + reference: global___ReferenceRel | None = ..., + write: global___WriteRel | None = ..., + ddl: global___DdlRel | None = ..., + update: global___UpdateRel | None = ..., + hash_join: global___HashJoinRel | None = ..., + merge_join: global___MergeJoinRel | None = ..., + nested_loop_join: global___NestedLoopJoinRel | None = ..., + window: global___ConsistentPartitionWindowRel | None = ..., + exchange: global___ExchangeRel | None = ..., + expand: global___ExpandRel | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["aggregate", b"aggregate", "cross", b"cross", "ddl", b"ddl", "exchange", b"exchange", "expand", b"expand", "extension_leaf", b"extension_leaf", "extension_multi", b"extension_multi", "extension_single", b"extension_single", "fetch", b"fetch", "filter", b"filter", "hash_join", b"hash_join", "join", b"join", "merge_join", b"merge_join", "nested_loop_join", b"nested_loop_join", "project", b"project", "read", b"read", "reference", b"reference", "rel_type", b"rel_type", "set", b"set", "sort", b"sort", "update", b"update", "window", b"window", "write", b"write"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["aggregate", b"aggregate", "cross", b"cross", "ddl", b"ddl", "exchange", b"exchange", "expand", b"expand", "extension_leaf", b"extension_leaf", "extension_multi", b"extension_multi", "extension_single", b"extension_single", "fetch", b"fetch", "filter", b"filter", "hash_join", b"hash_join", "join", b"join", "merge_join", b"merge_join", "nested_loop_join", b"nested_loop_join", "project", b"project", "read", b"read", "reference", b"reference", "rel_type", b"rel_type", "set", b"set", "sort", b"sort", "update", b"update", "window", b"window", "write", b"write"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["rel_type", b"rel_type"]) -> typing.Literal["read", "filter", "fetch", "aggregate", "sort", "join", "project", "set", "extension_single", "extension_multi", "extension_leaf", "cross", "reference", "write", "ddl", "update", "hash_join", "merge_join", "nested_loop_join", "window", "exchange", "expand"] | None: ... - @property - def window(self) -> global___ConsistentPartitionWindowRel: - ... - - @property - def exchange(self) -> global___ExchangeRel: - ... - - @property - def expand(self) -> global___ExpandRel: - ... - - def __init__(self, *, read: global___ReadRel | None=..., filter: global___FilterRel | None=..., fetch: global___FetchRel | None=..., aggregate: global___AggregateRel | None=..., sort: global___SortRel | None=..., join: global___JoinRel | None=..., project: global___ProjectRel | None=..., set: global___SetRel | None=..., extension_single: global___ExtensionSingleRel | None=..., extension_multi: global___ExtensionMultiRel | None=..., extension_leaf: global___ExtensionLeafRel | None=..., cross: global___CrossRel | None=..., reference: global___ReferenceRel | None=..., write: global___WriteRel | None=..., ddl: global___DdlRel | None=..., update: global___UpdateRel | None=..., hash_join: global___HashJoinRel | None=..., merge_join: global___MergeJoinRel | None=..., nested_loop_join: global___NestedLoopJoinRel | None=..., window: global___ConsistentPartitionWindowRel | None=..., exchange: global___ExchangeRel | None=..., expand: global___ExpandRel | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['aggregate', b'aggregate', 'cross', b'cross', 'ddl', b'ddl', 'exchange', b'exchange', 'expand', b'expand', 'extension_leaf', b'extension_leaf', 'extension_multi', b'extension_multi', 'extension_single', b'extension_single', 'fetch', b'fetch', 'filter', b'filter', 'hash_join', b'hash_join', 'join', b'join', 'merge_join', b'merge_join', 'nested_loop_join', b'nested_loop_join', 'project', b'project', 'read', b'read', 'reference', b'reference', 'rel_type', b'rel_type', 'set', b'set', 'sort', b'sort', 'update', b'update', 'window', b'window', 'write', b'write']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['aggregate', b'aggregate', 'cross', b'cross', 'ddl', b'ddl', 'exchange', b'exchange', 'expand', b'expand', 'extension_leaf', b'extension_leaf', 'extension_multi', b'extension_multi', 'extension_single', b'extension_single', 'fetch', b'fetch', 'filter', b'filter', 'hash_join', b'hash_join', 'join', b'join', 'merge_join', b'merge_join', 'nested_loop_join', b'nested_loop_join', 'project', b'project', 'read', b'read', 'reference', b'reference', 'rel_type', b'rel_type', 'set', b'set', 'sort', b'sort', 'update', b'update', 'window', b'window', 'write', b'write']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['rel_type', b'rel_type']) -> typing.Literal['read', 'filter', 'fetch', 'aggregate', 'sort', 'join', 'project', 'set', 'extension_single', 'extension_multi', 'extension_leaf', 'cross', 'reference', 'write', 'ddl', 'update', 'hash_join', 'merge_join', 'nested_loop_join', 'window', 'exchange', 'expand'] | None: - ... global___Rel = Rel @typing.final class NamedObjectWrite(google.protobuf.message.Message): """A base object for writing (e.g., a table or a view).""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + NAMES_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int - @property def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """The list of string is used to represent namespacing (e.g., mydb.mytable). @@ -1695,17 +1670,16 @@ class NamedObjectWrite(google.protobuf.message.Message): """ @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + names: collections.abc.Iterable[builtins.str] | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "names", b"names"]) -> None: ... - def __init__(self, *, names: collections.abc.Iterable[builtins.str] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'names', b'names']) -> None: - ... global___NamedObjectWrite = NamedObjectWrite @typing.final @@ -1713,21 +1687,20 @@ class ExtensionObject(google.protobuf.message.Message): """A stub type that can be used to extend/introduce new table types outside the specification. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor - DETAIL_FIELD_NUMBER: builtins.int + DETAIL_FIELD_NUMBER: builtins.int @property - def detail(self) -> google.protobuf.any_pb2.Any: - ... - - def __init__(self, *, detail: google.protobuf.any_pb2.Any | None=...) -> None: - ... + def detail(self) -> google.protobuf.any_pb2.Any: ... + def __init__( + self, + *, + detail: google.protobuf.any_pb2.Any | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["detail", b"detail"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["detail", b"detail"]) -> None: ... - def HasField(self, field_name: typing.Literal['detail', b'detail']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['detail', b'detail']) -> None: - ... global___ExtensionObject = ExtensionObject @typing.final @@ -1735,56 +1708,55 @@ class DdlRel(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _DdlObject: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _DdlObjectEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DdlRel._DdlObject.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - DDL_OBJECT_UNSPECIFIED: DdlRel._DdlObject.ValueType - DDL_OBJECT_TABLE: DdlRel._DdlObject.ValueType - 'A Table object in the system' - DDL_OBJECT_VIEW: DdlRel._DdlObject.ValueType - 'A View object in the system' - - class DdlObject(_DdlObject, metaclass=_DdlObjectEnumTypeWrapper): - ... - DDL_OBJECT_UNSPECIFIED: DdlRel.DdlObject.ValueType - DDL_OBJECT_TABLE: DdlRel.DdlObject.ValueType - 'A Table object in the system' - DDL_OBJECT_VIEW: DdlRel.DdlObject.ValueType - 'A View object in the system' + DDL_OBJECT_UNSPECIFIED: DdlRel._DdlObject.ValueType # 0 + DDL_OBJECT_TABLE: DdlRel._DdlObject.ValueType # 1 + """A Table object in the system""" + DDL_OBJECT_VIEW: DdlRel._DdlObject.ValueType # 2 + """A View object in the system""" + + class DdlObject(_DdlObject, metaclass=_DdlObjectEnumTypeWrapper): ... + DDL_OBJECT_UNSPECIFIED: DdlRel.DdlObject.ValueType # 0 + DDL_OBJECT_TABLE: DdlRel.DdlObject.ValueType # 1 + """A Table object in the system""" + DDL_OBJECT_VIEW: DdlRel.DdlObject.ValueType # 2 + """A View object in the system""" class _DdlOp: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _DdlOpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DdlRel._DdlOp.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - DDL_OP_UNSPECIFIED: DdlRel._DdlOp.ValueType - DDL_OP_CREATE: DdlRel._DdlOp.ValueType - 'A create operation (for any object)' - DDL_OP_CREATE_OR_REPLACE: DdlRel._DdlOp.ValueType - 'A create operation if the object does not exist, or replaces it (equivalent to a DROP + CREATE) if the object already exists' - DDL_OP_ALTER: DdlRel._DdlOp.ValueType - 'An operation that modifies the schema (e.g., column names, types, default values) for the target object' - DDL_OP_DROP: DdlRel._DdlOp.ValueType - 'An operation that removes an object from the system' - DDL_OP_DROP_IF_EXIST: DdlRel._DdlOp.ValueType - 'An operation that removes an object from the system (without throwing an exception if the object did not exist)' - - class DdlOp(_DdlOp, metaclass=_DdlOpEnumTypeWrapper): - ... - DDL_OP_UNSPECIFIED: DdlRel.DdlOp.ValueType - DDL_OP_CREATE: DdlRel.DdlOp.ValueType - 'A create operation (for any object)' - DDL_OP_CREATE_OR_REPLACE: DdlRel.DdlOp.ValueType - 'A create operation if the object does not exist, or replaces it (equivalent to a DROP + CREATE) if the object already exists' - DDL_OP_ALTER: DdlRel.DdlOp.ValueType - 'An operation that modifies the schema (e.g., column names, types, default values) for the target object' - DDL_OP_DROP: DdlRel.DdlOp.ValueType - 'An operation that removes an object from the system' - DDL_OP_DROP_IF_EXIST: DdlRel.DdlOp.ValueType - 'An operation that removes an object from the system (without throwing an exception if the object did not exist)' + DDL_OP_UNSPECIFIED: DdlRel._DdlOp.ValueType # 0 + DDL_OP_CREATE: DdlRel._DdlOp.ValueType # 1 + """A create operation (for any object)""" + DDL_OP_CREATE_OR_REPLACE: DdlRel._DdlOp.ValueType # 2 + """A create operation if the object does not exist, or replaces it (equivalent to a DROP + CREATE) if the object already exists""" + DDL_OP_ALTER: DdlRel._DdlOp.ValueType # 3 + """An operation that modifies the schema (e.g., column names, types, default values) for the target object""" + DDL_OP_DROP: DdlRel._DdlOp.ValueType # 4 + """An operation that removes an object from the system""" + DDL_OP_DROP_IF_EXIST: DdlRel._DdlOp.ValueType # 5 + """An operation that removes an object from the system (without throwing an exception if the object did not exist)""" + + class DdlOp(_DdlOp, metaclass=_DdlOpEnumTypeWrapper): ... + DDL_OP_UNSPECIFIED: DdlRel.DdlOp.ValueType # 0 + DDL_OP_CREATE: DdlRel.DdlOp.ValueType # 1 + """A create operation (for any object)""" + DDL_OP_CREATE_OR_REPLACE: DdlRel.DdlOp.ValueType # 2 + """A create operation if the object does not exist, or replaces it (equivalent to a DROP + CREATE) if the object already exists""" + DDL_OP_ALTER: DdlRel.DdlOp.ValueType # 3 + """An operation that modifies the schema (e.g., column names, types, default values) for the target object""" + DDL_OP_DROP: DdlRel.DdlOp.ValueType # 4 + """An operation that removes an object from the system""" + DDL_OP_DROP_IF_EXIST: DdlRel.DdlOp.ValueType # 5 + """An operation that removes an object from the system (without throwing an exception if the object did not exist)""" + NAMED_OBJECT_FIELD_NUMBER: builtins.int EXTENSION_OBJECT_FIELD_NUMBER: builtins.int TABLE_SCHEMA_FIELD_NUMBER: builtins.int @@ -1795,18 +1767,13 @@ class DdlRel(google.protobuf.message.Message): COMMON_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int object: global___DdlRel.DdlObject.ValueType - 'Which type of object we operate on' + """Which type of object we operate on""" op: global___DdlRel.DdlOp.ValueType - 'The type of operation to perform' - + """The type of operation to perform""" @property - def named_object(self) -> global___NamedObjectWrite: - ... - + def named_object(self) -> global___NamedObjectWrite: ... @property - def extension_object(self) -> global___ExtensionObject: - ... - + def extension_object(self) -> global___ExtensionObject: ... @property def table_schema(self) -> proto.type_pb2.NamedStruct: """The columns that will be modified (representing after-image of a schema change)""" @@ -1824,24 +1791,26 @@ class DdlRel(google.protobuf.message.Message): """The body of the CREATE VIEW""" @property - def common(self) -> global___RelCommon: - ... - - @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, named_object: global___NamedObjectWrite | None=..., extension_object: global___ExtensionObject | None=..., table_schema: proto.type_pb2.NamedStruct | None=..., table_defaults: global___Expression.Literal.Struct | None=..., object: global___DdlRel.DdlObject.ValueType=..., op: global___DdlRel.DdlOp.ValueType=..., view_definition: global___Rel | None=..., common: global___RelCommon | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'extension_object', b'extension_object', 'named_object', b'named_object', 'table_defaults', b'table_defaults', 'table_schema', b'table_schema', 'view_definition', b'view_definition', 'write_type', b'write_type']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'extension_object', b'extension_object', 'named_object', b'named_object', 'object', b'object', 'op', b'op', 'table_defaults', b'table_defaults', 'table_schema', b'table_schema', 'view_definition', b'view_definition', 'write_type', b'write_type']) -> None: - ... + def common(self) -> global___RelCommon: ... + @property + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + named_object: global___NamedObjectWrite | None = ..., + extension_object: global___ExtensionObject | None = ..., + table_schema: proto.type_pb2.NamedStruct | None = ..., + table_defaults: global___Expression.Literal.Struct | None = ..., + object: global___DdlRel.DdlObject.ValueType = ..., + op: global___DdlRel.DdlOp.ValueType = ..., + view_definition: global___Rel | None = ..., + common: global___RelCommon | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "extension_object", b"extension_object", "named_object", b"named_object", "table_defaults", b"table_defaults", "table_schema", b"table_schema", "view_definition", b"view_definition", "write_type", b"write_type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "extension_object", b"extension_object", "named_object", b"named_object", "object", b"object", "op", b"op", "table_defaults", b"table_defaults", "table_schema", b"table_schema", "view_definition", b"view_definition", "write_type", b"write_type"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["write_type", b"write_type"]) -> typing.Literal["named_object", "extension_object"] | None: ... - def WhichOneof(self, oneof_group: typing.Literal['write_type', b'write_type']) -> typing.Literal['named_object', 'extension_object'] | None: - ... global___DdlRel = DdlRel @typing.final @@ -1849,83 +1818,92 @@ class WriteRel(google.protobuf.message.Message): """The operator that modifies the content of a database (operates on 1 table at a time, but record-selection/source can be based on joining of multiple tables). """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _WriteOp: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _WriteOpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[WriteRel._WriteOp.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - WRITE_OP_UNSPECIFIED: WriteRel._WriteOp.ValueType - WRITE_OP_INSERT: WriteRel._WriteOp.ValueType - 'The insert of new records in a table' - WRITE_OP_DELETE: WriteRel._WriteOp.ValueType - 'The removal of records from a table' - WRITE_OP_UPDATE: WriteRel._WriteOp.ValueType - 'The modification of existing records within a table' - WRITE_OP_CTAS: WriteRel._WriteOp.ValueType - 'The Creation of a new table, and the insert of new records in the table' - - class WriteOp(_WriteOp, metaclass=_WriteOpEnumTypeWrapper): - ... - WRITE_OP_UNSPECIFIED: WriteRel.WriteOp.ValueType - WRITE_OP_INSERT: WriteRel.WriteOp.ValueType - 'The insert of new records in a table' - WRITE_OP_DELETE: WriteRel.WriteOp.ValueType - 'The removal of records from a table' - WRITE_OP_UPDATE: WriteRel.WriteOp.ValueType - 'The modification of existing records within a table' - WRITE_OP_CTAS: WriteRel.WriteOp.ValueType - 'The Creation of a new table, and the insert of new records in the table' + WRITE_OP_UNSPECIFIED: WriteRel._WriteOp.ValueType # 0 + WRITE_OP_INSERT: WriteRel._WriteOp.ValueType # 1 + """The insert of new records in a table""" + WRITE_OP_DELETE: WriteRel._WriteOp.ValueType # 2 + """The removal of records from a table""" + WRITE_OP_UPDATE: WriteRel._WriteOp.ValueType # 3 + """The modification of existing records within a table""" + WRITE_OP_CTAS: WriteRel._WriteOp.ValueType # 4 + """The Creation of a new table, and the insert of new records in the table""" + + class WriteOp(_WriteOp, metaclass=_WriteOpEnumTypeWrapper): ... + WRITE_OP_UNSPECIFIED: WriteRel.WriteOp.ValueType # 0 + WRITE_OP_INSERT: WriteRel.WriteOp.ValueType # 1 + """The insert of new records in a table""" + WRITE_OP_DELETE: WriteRel.WriteOp.ValueType # 2 + """The removal of records from a table""" + WRITE_OP_UPDATE: WriteRel.WriteOp.ValueType # 3 + """The modification of existing records within a table""" + WRITE_OP_CTAS: WriteRel.WriteOp.ValueType # 4 + """The Creation of a new table, and the insert of new records in the table""" class _CreateMode: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _CreateModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[WriteRel._CreateMode.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - CREATE_MODE_UNSPECIFIED: WriteRel._CreateMode.ValueType - CREATE_MODE_APPEND_IF_EXISTS: WriteRel._CreateMode.ValueType - 'Append the data to the table if it already exists' - CREATE_MODE_REPLACE_IF_EXISTS: WriteRel._CreateMode.ValueType - 'Replace the table if it already exists ("OR REPLACE")' - CREATE_MODE_IGNORE_IF_EXISTS: WriteRel._CreateMode.ValueType - 'Ignore the request if the table already exists ("IF NOT EXISTS")' - CREATE_MODE_ERROR_IF_EXISTS: WriteRel._CreateMode.ValueType - 'Throw an error if the table already exists (default behavior)' - - class CreateMode(_CreateMode, metaclass=_CreateModeEnumTypeWrapper): - ... - CREATE_MODE_UNSPECIFIED: WriteRel.CreateMode.ValueType - CREATE_MODE_APPEND_IF_EXISTS: WriteRel.CreateMode.ValueType - 'Append the data to the table if it already exists' - CREATE_MODE_REPLACE_IF_EXISTS: WriteRel.CreateMode.ValueType - 'Replace the table if it already exists ("OR REPLACE")' - CREATE_MODE_IGNORE_IF_EXISTS: WriteRel.CreateMode.ValueType - 'Ignore the request if the table already exists ("IF NOT EXISTS")' - CREATE_MODE_ERROR_IF_EXISTS: WriteRel.CreateMode.ValueType - 'Throw an error if the table already exists (default behavior)' + CREATE_MODE_UNSPECIFIED: WriteRel._CreateMode.ValueType # 0 + CREATE_MODE_APPEND_IF_EXISTS: WriteRel._CreateMode.ValueType # 1 + """Append the data to the table if it already exists""" + CREATE_MODE_REPLACE_IF_EXISTS: WriteRel._CreateMode.ValueType # 2 + """Replace the table if it already exists ("OR REPLACE")""" + CREATE_MODE_IGNORE_IF_EXISTS: WriteRel._CreateMode.ValueType # 3 + """Ignore the request if the table already exists ("IF NOT EXISTS")""" + CREATE_MODE_ERROR_IF_EXISTS: WriteRel._CreateMode.ValueType # 4 + """Throw an error if the table already exists (default behavior)""" + + class CreateMode(_CreateMode, metaclass=_CreateModeEnumTypeWrapper): ... + CREATE_MODE_UNSPECIFIED: WriteRel.CreateMode.ValueType # 0 + CREATE_MODE_APPEND_IF_EXISTS: WriteRel.CreateMode.ValueType # 1 + """Append the data to the table if it already exists""" + CREATE_MODE_REPLACE_IF_EXISTS: WriteRel.CreateMode.ValueType # 2 + """Replace the table if it already exists ("OR REPLACE")""" + CREATE_MODE_IGNORE_IF_EXISTS: WriteRel.CreateMode.ValueType # 3 + """Ignore the request if the table already exists ("IF NOT EXISTS")""" + CREATE_MODE_ERROR_IF_EXISTS: WriteRel.CreateMode.ValueType # 4 + """Throw an error if the table already exists (default behavior)""" class _OutputMode: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _OutputModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[WriteRel._OutputMode.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - OUTPUT_MODE_UNSPECIFIED: WriteRel._OutputMode.ValueType - OUTPUT_MODE_NO_OUTPUT: WriteRel._OutputMode.ValueType - 'return no records at all' - OUTPUT_MODE_MODIFIED_RECORDS: WriteRel._OutputMode.ValueType - 'this mode makes the operator return all the record INSERTED/DELETED/UPDATED by the operator.\n The operator returns the AFTER-image of any change. This can be further manipulated by operators upstreams\n (e.g., retunring the typical "count of modified records").\n For scenarios in which the BEFORE image is required, the user must implement a spool (via references to\n subplans in the body of the Rel input) and return those with anounter PlanRel.relations.\n ' - - class OutputMode(_OutputMode, metaclass=_OutputModeEnumTypeWrapper): - ... - OUTPUT_MODE_UNSPECIFIED: WriteRel.OutputMode.ValueType - OUTPUT_MODE_NO_OUTPUT: WriteRel.OutputMode.ValueType - 'return no records at all' - OUTPUT_MODE_MODIFIED_RECORDS: WriteRel.OutputMode.ValueType - 'this mode makes the operator return all the record INSERTED/DELETED/UPDATED by the operator.\n The operator returns the AFTER-image of any change. This can be further manipulated by operators upstreams\n (e.g., retunring the typical "count of modified records").\n For scenarios in which the BEFORE image is required, the user must implement a spool (via references to\n subplans in the body of the Rel input) and return those with anounter PlanRel.relations.\n ' + OUTPUT_MODE_UNSPECIFIED: WriteRel._OutputMode.ValueType # 0 + OUTPUT_MODE_NO_OUTPUT: WriteRel._OutputMode.ValueType # 1 + """return no records at all""" + OUTPUT_MODE_MODIFIED_RECORDS: WriteRel._OutputMode.ValueType # 2 + """this mode makes the operator return all the record INSERTED/DELETED/UPDATED by the operator. + The operator returns the AFTER-image of any change. This can be further manipulated by operators upstreams + (e.g., retunring the typical "count of modified records"). + For scenarios in which the BEFORE image is required, the user must implement a spool (via references to + subplans in the body of the Rel input) and return those with anounter PlanRel.relations. + """ + + class OutputMode(_OutputMode, metaclass=_OutputModeEnumTypeWrapper): ... + OUTPUT_MODE_UNSPECIFIED: WriteRel.OutputMode.ValueType # 0 + OUTPUT_MODE_NO_OUTPUT: WriteRel.OutputMode.ValueType # 1 + """return no records at all""" + OUTPUT_MODE_MODIFIED_RECORDS: WriteRel.OutputMode.ValueType # 2 + """this mode makes the operator return all the record INSERTED/DELETED/UPDATED by the operator. + The operator returns the AFTER-image of any change. This can be further manipulated by operators upstreams + (e.g., retunring the typical "count of modified records"). + For scenarios in which the BEFORE image is required, the user must implement a spool (via references to + subplans in the body of the Rel input) and return those with anounter PlanRel.relations. + """ + NAMED_TABLE_FIELD_NUMBER: builtins.int EXTENSION_TABLE_FIELD_NUMBER: builtins.int TABLE_SCHEMA_FIELD_NUMBER: builtins.int @@ -1936,20 +1914,15 @@ class WriteRel(google.protobuf.message.Message): COMMON_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int op: global___WriteRel.WriteOp.ValueType - 'The type of operation to perform' + """The type of operation to perform""" create_mode: global___WriteRel.CreateMode.ValueType - 'Used with CTAS to determine what to do if the table already exists' + """Used with CTAS to determine what to do if the table already exists""" output: global___WriteRel.OutputMode.ValueType - 'Output mode determines what is the output of executing this rel' - + """Output mode determines what is the output of executing this rel""" @property - def named_table(self) -> global___NamedObjectWrite: - ... - + def named_table(self) -> global___NamedObjectWrite: ... @property - def extension_table(self) -> global___ExtensionObject: - ... - + def extension_table(self) -> global___ExtensionObject: ... @property def table_schema(self) -> proto.type_pb2.NamedStruct: """The schema of the table (must align with Rel input (e.g., number of leaf fields must match))""" @@ -1963,61 +1936,62 @@ class WriteRel(google.protobuf.message.Message): """ @property - def common(self) -> global___RelCommon: - ... - - @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, named_table: global___NamedObjectWrite | None=..., extension_table: global___ExtensionObject | None=..., table_schema: proto.type_pb2.NamedStruct | None=..., op: global___WriteRel.WriteOp.ValueType=..., input: global___Rel | None=..., create_mode: global___WriteRel.CreateMode.ValueType=..., output: global___WriteRel.OutputMode.ValueType=..., common: global___RelCommon | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'extension_table', b'extension_table', 'input', b'input', 'named_table', b'named_table', 'table_schema', b'table_schema', 'write_type', b'write_type']) -> builtins.bool: - ... + def common(self) -> global___RelCommon: ... + @property + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + named_table: global___NamedObjectWrite | None = ..., + extension_table: global___ExtensionObject | None = ..., + table_schema: proto.type_pb2.NamedStruct | None = ..., + op: global___WriteRel.WriteOp.ValueType = ..., + input: global___Rel | None = ..., + create_mode: global___WriteRel.CreateMode.ValueType = ..., + output: global___WriteRel.OutputMode.ValueType = ..., + common: global___RelCommon | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "extension_table", b"extension_table", "input", b"input", "named_table", b"named_table", "table_schema", b"table_schema", "write_type", b"write_type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "create_mode", b"create_mode", "extension_table", b"extension_table", "input", b"input", "named_table", b"named_table", "op", b"op", "output", b"output", "table_schema", b"table_schema", "write_type", b"write_type"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["write_type", b"write_type"]) -> typing.Literal["named_table", "extension_table"] | None: ... - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'create_mode', b'create_mode', 'extension_table', b'extension_table', 'input', b'input', 'named_table', b'named_table', 'op', b'op', 'output', b'output', 'table_schema', b'table_schema', 'write_type', b'write_type']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['write_type', b'write_type']) -> typing.Literal['named_table', 'extension_table'] | None: - ... global___WriteRel = WriteRel @typing.final class UpdateRel(google.protobuf.message.Message): """The operator that modifies the columns of a table""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class TransformExpression(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TRANSFORMATION_FIELD_NUMBER: builtins.int COLUMN_TARGET_FIELD_NUMBER: builtins.int column_target: builtins.int - 'index of the column to apply the transformation to' - + """index of the column to apply the transformation to""" @property def transformation(self) -> global___Expression: """the transformation to apply""" - def __init__(self, *, transformation: global___Expression | None=..., column_target: builtins.int=...) -> None: - ... + def __init__( + self, + *, + transformation: global___Expression | None = ..., + column_target: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["transformation", b"transformation"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["column_target", b"column_target", "transformation", b"transformation"]) -> None: ... - def HasField(self, field_name: typing.Literal['transformation', b'transformation']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['column_target', b'column_target', 'transformation', b'transformation']) -> None: - ... NAMED_TABLE_FIELD_NUMBER: builtins.int TABLE_SCHEMA_FIELD_NUMBER: builtins.int CONDITION_FIELD_NUMBER: builtins.int TRANSFORMATIONS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int - @property - def named_table(self) -> global___NamedTable: - ... - + def named_table(self) -> global___NamedTable: ... @property def table_schema(self) -> proto.type_pb2.NamedStruct: """The full schema of the named_table""" @@ -2031,20 +2005,20 @@ class UpdateRel(google.protobuf.message.Message): """The list of transformations to apply to the columns of the named_table""" @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, named_table: global___NamedTable | None=..., table_schema: proto.type_pb2.NamedStruct | None=..., condition: global___Expression | None=..., transformations: collections.abc.Iterable[global___UpdateRel.TransformExpression] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + named_table: global___NamedTable | None = ..., + table_schema: proto.type_pb2.NamedStruct | None = ..., + condition: global___Expression | None = ..., + transformations: collections.abc.Iterable[global___UpdateRel.TransformExpression] | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "condition", b"condition", "named_table", b"named_table", "table_schema", b"table_schema", "update_type", b"update_type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "condition", b"condition", "named_table", b"named_table", "table_schema", b"table_schema", "transformations", b"transformations", "update_type", b"update_type"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["update_type", b"update_type"]) -> typing.Literal["named_table"] | None: ... - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'condition', b'condition', 'named_table', b'named_table', 'table_schema', b'table_schema', 'update_type', b'update_type']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'condition', b'condition', 'named_table', b'named_table', 'table_schema', b'table_schema', 'transformations', b'transformations', 'update_type', b'update_type']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['update_type', b'update_type']) -> typing.Literal['named_table'] | None: - ... global___UpdateRel = UpdateRel @typing.final @@ -2052,26 +2026,24 @@ class NamedTable(google.protobuf.message.Message): """A base table. The list of string is used to represent namespacing (e.g., mydb.mytable). This assumes shared catalog between systems exchanging a message. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + NAMES_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int - @property - def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - ... - + def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, names: collections.abc.Iterable[builtins.str] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + names: collections.abc.Iterable[builtins.str] | None = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "names", b"names"]) -> None: ... - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'names', b'names']) -> None: - ... global___NamedTable = NamedTable @typing.final @@ -2080,60 +2052,83 @@ class ComparisonJoinKey(google.protobuf.message.Message): expression is an series of comparisons between fields that are ANDed together. The behavior of this comparison is flexible """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _SimpleComparisonType: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _SimpleComparisonTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ComparisonJoinKey._SimpleComparisonType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - SIMPLE_COMPARISON_TYPE_UNSPECIFIED: ComparisonJoinKey._SimpleComparisonType.ValueType - SIMPLE_COMPARISON_TYPE_EQ: ComparisonJoinKey._SimpleComparisonType.ValueType - 'Returns true only if both values are equal and not null' - SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM: ComparisonJoinKey._SimpleComparisonType.ValueType - 'Returns true if both values are equal and not null\n Returns true if both values are null\n Returns false if one value is null and the other value is not null\n\n This can be expressed as a = b OR (isnull(a) AND isnull(b))\n ' - SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL: ComparisonJoinKey._SimpleComparisonType.ValueType - 'Returns true if both values are equal and not null\n Returns true if either value is null\n\n This can be expressed as a = b OR isnull(a = b)\n ' + SIMPLE_COMPARISON_TYPE_UNSPECIFIED: ComparisonJoinKey._SimpleComparisonType.ValueType # 0 + SIMPLE_COMPARISON_TYPE_EQ: ComparisonJoinKey._SimpleComparisonType.ValueType # 1 + """Returns true only if both values are equal and not null""" + SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM: ComparisonJoinKey._SimpleComparisonType.ValueType # 2 + """Returns true if both values are equal and not null + Returns true if both values are null + Returns false if one value is null and the other value is not null + + This can be expressed as a = b OR (isnull(a) AND isnull(b)) + """ + SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL: ComparisonJoinKey._SimpleComparisonType.ValueType # 3 + """Returns true if both values are equal and not null + Returns true if either value is null + + This can be expressed as a = b OR isnull(a = b) + """ class SimpleComparisonType(_SimpleComparisonType, metaclass=_SimpleComparisonTypeEnumTypeWrapper): """Most joins will use one of the following behaviors. To avoid the complexity of a function lookup we define the common behaviors here """ - SIMPLE_COMPARISON_TYPE_UNSPECIFIED: ComparisonJoinKey.SimpleComparisonType.ValueType - SIMPLE_COMPARISON_TYPE_EQ: ComparisonJoinKey.SimpleComparisonType.ValueType - 'Returns true only if both values are equal and not null' - SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM: ComparisonJoinKey.SimpleComparisonType.ValueType - 'Returns true if both values are equal and not null\n Returns true if both values are null\n Returns false if one value is null and the other value is not null\n\n This can be expressed as a = b OR (isnull(a) AND isnull(b))\n ' - SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL: ComparisonJoinKey.SimpleComparisonType.ValueType - 'Returns true if both values are equal and not null\n Returns true if either value is null\n\n This can be expressed as a = b OR isnull(a = b)\n ' + + SIMPLE_COMPARISON_TYPE_UNSPECIFIED: ComparisonJoinKey.SimpleComparisonType.ValueType # 0 + SIMPLE_COMPARISON_TYPE_EQ: ComparisonJoinKey.SimpleComparisonType.ValueType # 1 + """Returns true only if both values are equal and not null""" + SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM: ComparisonJoinKey.SimpleComparisonType.ValueType # 2 + """Returns true if both values are equal and not null + Returns true if both values are null + Returns false if one value is null and the other value is not null + + This can be expressed as a = b OR (isnull(a) AND isnull(b)) + """ + SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL: ComparisonJoinKey.SimpleComparisonType.ValueType # 3 + """Returns true if both values are equal and not null + Returns true if either value is null + + This can be expressed as a = b OR isnull(a = b) + """ @typing.final class ComparisonType(google.protobuf.message.Message): """Describes how the relation should consider if two rows are a match""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + SIMPLE_FIELD_NUMBER: builtins.int CUSTOM_FUNCTION_REFERENCE_FIELD_NUMBER: builtins.int simple: global___ComparisonJoinKey.SimpleComparisonType.ValueType - 'One of the simple comparison behaviors is used' + """One of the simple comparison behaviors is used""" custom_function_reference: builtins.int - 'A custom comparison behavior is used. This can happen, for example, when using\n collations, where we might want to do something like a case-insensitive comparison.\n\n This must be a binary function with a boolean return type\n ' + """A custom comparison behavior is used. This can happen, for example, when using + collations, where we might want to do something like a case-insensitive comparison. - def __init__(self, *, simple: global___ComparisonJoinKey.SimpleComparisonType.ValueType=..., custom_function_reference: builtins.int=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['custom_function_reference', b'custom_function_reference', 'inner_type', b'inner_type', 'simple', b'simple']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['custom_function_reference', b'custom_function_reference', 'inner_type', b'inner_type', 'simple', b'simple']) -> None: - ... + This must be a binary function with a boolean return type + """ + def __init__( + self, + *, + simple: global___ComparisonJoinKey.SimpleComparisonType.ValueType = ..., + custom_function_reference: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["custom_function_reference", b"custom_function_reference", "inner_type", b"inner_type", "simple", b"simple"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["custom_function_reference", b"custom_function_reference", "inner_type", b"inner_type", "simple", b"simple"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["inner_type", b"inner_type"]) -> typing.Literal["simple", "custom_function_reference"] | None: ... - def WhichOneof(self, oneof_group: typing.Literal['inner_type', b'inner_type']) -> typing.Literal['simple', 'custom_function_reference'] | None: - ... LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int COMPARISON_FIELD_NUMBER: builtins.int - @property def left(self) -> global___Expression.FieldReference: """The key to compare from the left table""" @@ -2146,14 +2141,16 @@ class ComparisonJoinKey(google.protobuf.message.Message): def comparison(self) -> global___ComparisonJoinKey.ComparisonType: """Describes how to compare the two keys""" - def __init__(self, *, left: global___Expression.FieldReference | None=..., right: global___Expression.FieldReference | None=..., comparison: global___ComparisonJoinKey.ComparisonType | None=...) -> None: - ... + def __init__( + self, + *, + left: global___Expression.FieldReference | None = ..., + right: global___Expression.FieldReference | None = ..., + comparison: global___ComparisonJoinKey.ComparisonType | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["comparison", b"comparison", "left", b"left", "right", b"right"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["comparison", b"comparison", "left", b"left", "right", b"right"]) -> None: ... - def HasField(self, field_name: typing.Literal['comparison', b'comparison', 'left', b'left', 'right', b'right']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['comparison', b'comparison', 'left', b'left', 'right', b'right']) -> None: - ... global___ComparisonJoinKey = ComparisonJoinKey @typing.final @@ -2163,59 +2160,59 @@ class HashJoinRel(google.protobuf.message.Message): Two rows are a match if the comparison function returns true for all keys """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _JoinType: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _JoinTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[HashJoinRel._JoinType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - JOIN_TYPE_UNSPECIFIED: HashJoinRel._JoinType.ValueType - JOIN_TYPE_INNER: HashJoinRel._JoinType.ValueType - JOIN_TYPE_OUTER: HashJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT: HashJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT: HashJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_SEMI: HashJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_SEMI: HashJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_ANTI: HashJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_ANTI: HashJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_SINGLE: HashJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_SINGLE: HashJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_MARK: HashJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_MARK: HashJoinRel._JoinType.ValueType - - class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): - ... - JOIN_TYPE_UNSPECIFIED: HashJoinRel.JoinType.ValueType - JOIN_TYPE_INNER: HashJoinRel.JoinType.ValueType - JOIN_TYPE_OUTER: HashJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT: HashJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT: HashJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_SEMI: HashJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_SEMI: HashJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_ANTI: HashJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_ANTI: HashJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_SINGLE: HashJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_SINGLE: HashJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_MARK: HashJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_MARK: HashJoinRel.JoinType.ValueType + JOIN_TYPE_UNSPECIFIED: HashJoinRel._JoinType.ValueType # 0 + JOIN_TYPE_INNER: HashJoinRel._JoinType.ValueType # 1 + JOIN_TYPE_OUTER: HashJoinRel._JoinType.ValueType # 2 + JOIN_TYPE_LEFT: HashJoinRel._JoinType.ValueType # 3 + JOIN_TYPE_RIGHT: HashJoinRel._JoinType.ValueType # 4 + JOIN_TYPE_LEFT_SEMI: HashJoinRel._JoinType.ValueType # 5 + JOIN_TYPE_RIGHT_SEMI: HashJoinRel._JoinType.ValueType # 6 + JOIN_TYPE_LEFT_ANTI: HashJoinRel._JoinType.ValueType # 7 + JOIN_TYPE_RIGHT_ANTI: HashJoinRel._JoinType.ValueType # 8 + JOIN_TYPE_LEFT_SINGLE: HashJoinRel._JoinType.ValueType # 9 + JOIN_TYPE_RIGHT_SINGLE: HashJoinRel._JoinType.ValueType # 10 + JOIN_TYPE_LEFT_MARK: HashJoinRel._JoinType.ValueType # 11 + JOIN_TYPE_RIGHT_MARK: HashJoinRel._JoinType.ValueType # 12 + + class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): ... + JOIN_TYPE_UNSPECIFIED: HashJoinRel.JoinType.ValueType # 0 + JOIN_TYPE_INNER: HashJoinRel.JoinType.ValueType # 1 + JOIN_TYPE_OUTER: HashJoinRel.JoinType.ValueType # 2 + JOIN_TYPE_LEFT: HashJoinRel.JoinType.ValueType # 3 + JOIN_TYPE_RIGHT: HashJoinRel.JoinType.ValueType # 4 + JOIN_TYPE_LEFT_SEMI: HashJoinRel.JoinType.ValueType # 5 + JOIN_TYPE_RIGHT_SEMI: HashJoinRel.JoinType.ValueType # 6 + JOIN_TYPE_LEFT_ANTI: HashJoinRel.JoinType.ValueType # 7 + JOIN_TYPE_RIGHT_ANTI: HashJoinRel.JoinType.ValueType # 8 + JOIN_TYPE_LEFT_SINGLE: HashJoinRel.JoinType.ValueType # 9 + JOIN_TYPE_RIGHT_SINGLE: HashJoinRel.JoinType.ValueType # 10 + JOIN_TYPE_LEFT_MARK: HashJoinRel.JoinType.ValueType # 11 + JOIN_TYPE_RIGHT_MARK: HashJoinRel.JoinType.ValueType # 12 class _BuildInput: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _BuildInputEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[HashJoinRel._BuildInput.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - BUILD_INPUT_UNSPECIFIED: HashJoinRel._BuildInput.ValueType - BUILD_INPUT_LEFT: HashJoinRel._BuildInput.ValueType - BUILD_INPUT_RIGHT: HashJoinRel._BuildInput.ValueType - - class BuildInput(_BuildInput, metaclass=_BuildInputEnumTypeWrapper): - ... - BUILD_INPUT_UNSPECIFIED: HashJoinRel.BuildInput.ValueType - BUILD_INPUT_LEFT: HashJoinRel.BuildInput.ValueType - BUILD_INPUT_RIGHT: HashJoinRel.BuildInput.ValueType + BUILD_INPUT_UNSPECIFIED: HashJoinRel._BuildInput.ValueType # 0 + BUILD_INPUT_LEFT: HashJoinRel._BuildInput.ValueType # 1 + BUILD_INPUT_RIGHT: HashJoinRel._BuildInput.ValueType # 2 + + class BuildInput(_BuildInput, metaclass=_BuildInputEnumTypeWrapper): ... + BUILD_INPUT_UNSPECIFIED: HashJoinRel.BuildInput.ValueType # 0 + BUILD_INPUT_LEFT: HashJoinRel.BuildInput.ValueType # 1 + BUILD_INPUT_RIGHT: HashJoinRel.BuildInput.ValueType # 2 + COMMON_FIELD_NUMBER: builtins.int LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int @@ -2228,20 +2225,13 @@ class HashJoinRel(google.protobuf.message.Message): ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int type: global___HashJoinRel.JoinType.ValueType build_input: global___HashJoinRel.BuildInput.ValueType - 'Specifies which side of input to build the hash table for this hash join. Default is `BUILD_INPUT_RIGHT`.' - + """Specifies which side of input to build the hash table for this hash join. Default is `BUILD_INPUT_RIGHT`.""" @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def left(self) -> global___Rel: - ... - + def left(self) -> global___Rel: ... @property - def right(self) -> global___Rel: - ... - + def right(self) -> global___Rel: ... @property def left_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: """These fields are deprecated in favor of `keys`. If they are set then @@ -2250,9 +2240,7 @@ class HashJoinRel(google.protobuf.message.Message): """ @property - def right_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: - ... - + def right_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: ... @property def keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ComparisonJoinKey]: """One or more keys to join on. The relation is invalid if this is empty @@ -2271,21 +2259,26 @@ class HashJoinRel(google.protobuf.message.Message): """ @property - def post_join_filter(self) -> global___Expression: - ... - - @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, common: global___RelCommon | None=..., left: global___Rel | None=..., right: global___Rel | None=..., left_keys: collections.abc.Iterable[global___Expression.FieldReference] | None=..., right_keys: collections.abc.Iterable[global___Expression.FieldReference] | None=..., keys: collections.abc.Iterable[global___ComparisonJoinKey] | None=..., post_join_filter: global___Expression | None=..., type: global___HashJoinRel.JoinType.ValueType=..., build_input: global___HashJoinRel.BuildInput.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... + def post_join_filter(self) -> global___Expression: ... + @property + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + left: global___Rel | None = ..., + right: global___Rel | None = ..., + left_keys: collections.abc.Iterable[global___Expression.FieldReference] | None = ..., + right_keys: collections.abc.Iterable[global___Expression.FieldReference] | None = ..., + keys: collections.abc.Iterable[global___ComparisonJoinKey] | None = ..., + post_join_filter: global___Expression | None = ..., + type: global___HashJoinRel.JoinType.ValueType = ..., + build_input: global___HashJoinRel.BuildInput.ValueType = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "left", b"left", "post_join_filter", b"post_join_filter", "right", b"right"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "build_input", b"build_input", "common", b"common", "keys", b"keys", "left", b"left", "left_keys", b"left_keys", "post_join_filter", b"post_join_filter", "right", b"right", "right_keys", b"right_keys", "type", b"type"]) -> None: ... - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'left', b'left', 'post_join_filter', b'post_join_filter', 'right', b'right']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'build_input', b'build_input', 'common', b'common', 'keys', b'keys', 'left', b'left', 'left_keys', b'left_keys', 'post_join_filter', b'post_join_filter', 'right', b'right', 'right_keys', b'right_keys', 'type', b'type']) -> None: - ... global___HashJoinRel = HashJoinRel @typing.final @@ -2293,43 +2286,44 @@ class MergeJoinRel(google.protobuf.message.Message): """The merge equijoin does a join by taking advantage of two sets that are sorted on the join keys. This allows the join operation to be done in a streaming fashion. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _JoinType: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _JoinTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[MergeJoinRel._JoinType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - JOIN_TYPE_UNSPECIFIED: MergeJoinRel._JoinType.ValueType - JOIN_TYPE_INNER: MergeJoinRel._JoinType.ValueType - JOIN_TYPE_OUTER: MergeJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT: MergeJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT: MergeJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_SEMI: MergeJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_SEMI: MergeJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_ANTI: MergeJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_ANTI: MergeJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_SINGLE: MergeJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_SINGLE: MergeJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_MARK: MergeJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_MARK: MergeJoinRel._JoinType.ValueType - - class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): - ... - JOIN_TYPE_UNSPECIFIED: MergeJoinRel.JoinType.ValueType - JOIN_TYPE_INNER: MergeJoinRel.JoinType.ValueType - JOIN_TYPE_OUTER: MergeJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT: MergeJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT: MergeJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_SEMI: MergeJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_SEMI: MergeJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_ANTI: MergeJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_ANTI: MergeJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_SINGLE: MergeJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_SINGLE: MergeJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_MARK: MergeJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_MARK: MergeJoinRel.JoinType.ValueType + JOIN_TYPE_UNSPECIFIED: MergeJoinRel._JoinType.ValueType # 0 + JOIN_TYPE_INNER: MergeJoinRel._JoinType.ValueType # 1 + JOIN_TYPE_OUTER: MergeJoinRel._JoinType.ValueType # 2 + JOIN_TYPE_LEFT: MergeJoinRel._JoinType.ValueType # 3 + JOIN_TYPE_RIGHT: MergeJoinRel._JoinType.ValueType # 4 + JOIN_TYPE_LEFT_SEMI: MergeJoinRel._JoinType.ValueType # 5 + JOIN_TYPE_RIGHT_SEMI: MergeJoinRel._JoinType.ValueType # 6 + JOIN_TYPE_LEFT_ANTI: MergeJoinRel._JoinType.ValueType # 7 + JOIN_TYPE_RIGHT_ANTI: MergeJoinRel._JoinType.ValueType # 8 + JOIN_TYPE_LEFT_SINGLE: MergeJoinRel._JoinType.ValueType # 9 + JOIN_TYPE_RIGHT_SINGLE: MergeJoinRel._JoinType.ValueType # 10 + JOIN_TYPE_LEFT_MARK: MergeJoinRel._JoinType.ValueType # 11 + JOIN_TYPE_RIGHT_MARK: MergeJoinRel._JoinType.ValueType # 12 + + class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): ... + JOIN_TYPE_UNSPECIFIED: MergeJoinRel.JoinType.ValueType # 0 + JOIN_TYPE_INNER: MergeJoinRel.JoinType.ValueType # 1 + JOIN_TYPE_OUTER: MergeJoinRel.JoinType.ValueType # 2 + JOIN_TYPE_LEFT: MergeJoinRel.JoinType.ValueType # 3 + JOIN_TYPE_RIGHT: MergeJoinRel.JoinType.ValueType # 4 + JOIN_TYPE_LEFT_SEMI: MergeJoinRel.JoinType.ValueType # 5 + JOIN_TYPE_RIGHT_SEMI: MergeJoinRel.JoinType.ValueType # 6 + JOIN_TYPE_LEFT_ANTI: MergeJoinRel.JoinType.ValueType # 7 + JOIN_TYPE_RIGHT_ANTI: MergeJoinRel.JoinType.ValueType # 8 + JOIN_TYPE_LEFT_SINGLE: MergeJoinRel.JoinType.ValueType # 9 + JOIN_TYPE_RIGHT_SINGLE: MergeJoinRel.JoinType.ValueType # 10 + JOIN_TYPE_LEFT_MARK: MergeJoinRel.JoinType.ValueType # 11 + JOIN_TYPE_RIGHT_MARK: MergeJoinRel.JoinType.ValueType # 12 + COMMON_FIELD_NUMBER: builtins.int LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int @@ -2340,19 +2334,12 @@ class MergeJoinRel(google.protobuf.message.Message): TYPE_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int type: global___MergeJoinRel.JoinType.ValueType - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def left(self) -> global___Rel: - ... - + def left(self) -> global___Rel: ... @property - def right(self) -> global___Rel: - ... - + def right(self) -> global___Rel: ... @property def left_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: """These fields are deprecated in favor of `keys`. If they are set then @@ -2361,9 +2348,7 @@ class MergeJoinRel(google.protobuf.message.Message): """ @property - def right_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: - ... - + def right_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: ... @property def keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ComparisonJoinKey]: """One or more keys to join on. The relation is invalid if this is empty @@ -2384,21 +2369,25 @@ class MergeJoinRel(google.protobuf.message.Message): """ @property - def post_join_filter(self) -> global___Expression: - ... - - @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, common: global___RelCommon | None=..., left: global___Rel | None=..., right: global___Rel | None=..., left_keys: collections.abc.Iterable[global___Expression.FieldReference] | None=..., right_keys: collections.abc.Iterable[global___Expression.FieldReference] | None=..., keys: collections.abc.Iterable[global___ComparisonJoinKey] | None=..., post_join_filter: global___Expression | None=..., type: global___MergeJoinRel.JoinType.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'left', b'left', 'post_join_filter', b'post_join_filter', 'right', b'right']) -> builtins.bool: - ... + def post_join_filter(self) -> global___Expression: ... + @property + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + left: global___Rel | None = ..., + right: global___Rel | None = ..., + left_keys: collections.abc.Iterable[global___Expression.FieldReference] | None = ..., + right_keys: collections.abc.Iterable[global___Expression.FieldReference] | None = ..., + keys: collections.abc.Iterable[global___ComparisonJoinKey] | None = ..., + post_join_filter: global___Expression | None = ..., + type: global___MergeJoinRel.JoinType.ValueType = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "left", b"left", "post_join_filter", b"post_join_filter", "right", b"right"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "keys", b"keys", "left", b"left", "left_keys", b"left_keys", "post_join_filter", b"post_join_filter", "right", b"right", "right_keys", b"right_keys", "type", b"type"]) -> None: ... - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'keys', b'keys', 'left', b'left', 'left_keys', b'left_keys', 'post_join_filter', b'post_join_filter', 'right', b'right', 'right_keys', b'right_keys', 'type', b'type']) -> None: - ... global___MergeJoinRel = MergeJoinRel @typing.final @@ -2406,43 +2395,44 @@ class NestedLoopJoinRel(google.protobuf.message.Message): """The nested loop join (NLJ) operator will hold the entire right input and iterate over it using the left input, evaluating the join expression on the Cartesian product of all rows. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _JoinType: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _JoinTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[NestedLoopJoinRel._JoinType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - JOIN_TYPE_UNSPECIFIED: NestedLoopJoinRel._JoinType.ValueType - JOIN_TYPE_INNER: NestedLoopJoinRel._JoinType.ValueType - JOIN_TYPE_OUTER: NestedLoopJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT: NestedLoopJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT: NestedLoopJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_SEMI: NestedLoopJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_SEMI: NestedLoopJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_ANTI: NestedLoopJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_ANTI: NestedLoopJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_SINGLE: NestedLoopJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_SINGLE: NestedLoopJoinRel._JoinType.ValueType - JOIN_TYPE_LEFT_MARK: NestedLoopJoinRel._JoinType.ValueType - JOIN_TYPE_RIGHT_MARK: NestedLoopJoinRel._JoinType.ValueType - - class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): - ... - JOIN_TYPE_UNSPECIFIED: NestedLoopJoinRel.JoinType.ValueType - JOIN_TYPE_INNER: NestedLoopJoinRel.JoinType.ValueType - JOIN_TYPE_OUTER: NestedLoopJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT: NestedLoopJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT: NestedLoopJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_SEMI: NestedLoopJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_SEMI: NestedLoopJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_ANTI: NestedLoopJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_ANTI: NestedLoopJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_SINGLE: NestedLoopJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_SINGLE: NestedLoopJoinRel.JoinType.ValueType - JOIN_TYPE_LEFT_MARK: NestedLoopJoinRel.JoinType.ValueType - JOIN_TYPE_RIGHT_MARK: NestedLoopJoinRel.JoinType.ValueType + JOIN_TYPE_UNSPECIFIED: NestedLoopJoinRel._JoinType.ValueType # 0 + JOIN_TYPE_INNER: NestedLoopJoinRel._JoinType.ValueType # 1 + JOIN_TYPE_OUTER: NestedLoopJoinRel._JoinType.ValueType # 2 + JOIN_TYPE_LEFT: NestedLoopJoinRel._JoinType.ValueType # 3 + JOIN_TYPE_RIGHT: NestedLoopJoinRel._JoinType.ValueType # 4 + JOIN_TYPE_LEFT_SEMI: NestedLoopJoinRel._JoinType.ValueType # 5 + JOIN_TYPE_RIGHT_SEMI: NestedLoopJoinRel._JoinType.ValueType # 6 + JOIN_TYPE_LEFT_ANTI: NestedLoopJoinRel._JoinType.ValueType # 7 + JOIN_TYPE_RIGHT_ANTI: NestedLoopJoinRel._JoinType.ValueType # 8 + JOIN_TYPE_LEFT_SINGLE: NestedLoopJoinRel._JoinType.ValueType # 9 + JOIN_TYPE_RIGHT_SINGLE: NestedLoopJoinRel._JoinType.ValueType # 10 + JOIN_TYPE_LEFT_MARK: NestedLoopJoinRel._JoinType.ValueType # 11 + JOIN_TYPE_RIGHT_MARK: NestedLoopJoinRel._JoinType.ValueType # 12 + + class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): ... + JOIN_TYPE_UNSPECIFIED: NestedLoopJoinRel.JoinType.ValueType # 0 + JOIN_TYPE_INNER: NestedLoopJoinRel.JoinType.ValueType # 1 + JOIN_TYPE_OUTER: NestedLoopJoinRel.JoinType.ValueType # 2 + JOIN_TYPE_LEFT: NestedLoopJoinRel.JoinType.ValueType # 3 + JOIN_TYPE_RIGHT: NestedLoopJoinRel.JoinType.ValueType # 4 + JOIN_TYPE_LEFT_SEMI: NestedLoopJoinRel.JoinType.ValueType # 5 + JOIN_TYPE_RIGHT_SEMI: NestedLoopJoinRel.JoinType.ValueType # 6 + JOIN_TYPE_LEFT_ANTI: NestedLoopJoinRel.JoinType.ValueType # 7 + JOIN_TYPE_RIGHT_ANTI: NestedLoopJoinRel.JoinType.ValueType # 8 + JOIN_TYPE_LEFT_SINGLE: NestedLoopJoinRel.JoinType.ValueType # 9 + JOIN_TYPE_RIGHT_SINGLE: NestedLoopJoinRel.JoinType.ValueType # 10 + JOIN_TYPE_LEFT_MARK: NestedLoopJoinRel.JoinType.ValueType # 11 + JOIN_TYPE_RIGHT_MARK: NestedLoopJoinRel.JoinType.ValueType # 12 + COMMON_FIELD_NUMBER: builtins.int LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int @@ -2450,65 +2440,58 @@ class NestedLoopJoinRel(google.protobuf.message.Message): TYPE_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int type: global___NestedLoopJoinRel.JoinType.ValueType - @property - def common(self) -> global___RelCommon: - ... - + def common(self) -> global___RelCommon: ... @property - def left(self) -> global___Rel: - ... - + def left(self) -> global___Rel: ... @property - def right(self) -> global___Rel: - ... - + def right(self) -> global___Rel: ... @property def expression(self) -> global___Expression: """optional, defaults to true (a cartesian join)""" @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: - ... - - def __init__(self, *, common: global___RelCommon | None=..., left: global___Rel | None=..., right: global___Rel | None=..., expression: global___Expression | None=..., type: global___NestedLoopJoinRel.JoinType.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'expression', b'expression', 'left', b'left', 'right', b'right']) -> builtins.bool: - ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def __init__( + self, + *, + common: global___RelCommon | None = ..., + left: global___Rel | None = ..., + right: global___Rel | None = ..., + expression: global___Expression | None = ..., + type: global___NestedLoopJoinRel.JoinType.ValueType = ..., + advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "expression", b"expression", "left", b"left", "right", b"right"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "expression", b"expression", "left", b"left", "right", b"right", "type", b"type"]) -> None: ... - def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'expression', b'expression', 'left', b'left', 'right', b'right', 'type', b'type']) -> None: - ... global___NestedLoopJoinRel = NestedLoopJoinRel @typing.final class FunctionArgument(google.protobuf.message.Message): """The argument of a function""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + ENUM_FIELD_NUMBER: builtins.int TYPE_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int enum: builtins.str - @property - def type(self) -> proto.type_pb2.Type: - ... - + def type(self) -> proto.type_pb2.Type: ... @property - def value(self) -> global___Expression: - ... - - def __init__(self, *, enum: builtins.str=..., type: proto.type_pb2.Type | None=..., value: global___Expression | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['arg_type', b'arg_type', 'enum', b'enum', 'type', b'type', 'value', b'value']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['arg_type', b'arg_type', 'enum', b'enum', 'type', b'type', 'value', b'value']) -> None: - ... + def value(self) -> global___Expression: ... + def __init__( + self, + *, + enum: builtins.str = ..., + type: proto.type_pb2.Type | None = ..., + value: global___Expression | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["arg_type", b"arg_type", "enum", b"enum", "type", b"type", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["arg_type", b"arg_type", "enum", b"enum", "type", b"type", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["arg_type", b"arg_type"]) -> typing.Literal["enum", "type", "value"] | None: ... - def WhichOneof(self, oneof_group: typing.Literal['arg_type', b'arg_type']) -> typing.Literal['enum', 'type', 'value'] | None: - ... global___FunctionArgument = FunctionArgument @typing.final @@ -2516,12 +2499,16 @@ class FunctionOption(google.protobuf.message.Message): """An optional function argument. Typically used for specifying behavior in invalid or corner cases. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + NAME_FIELD_NUMBER: builtins.int PREFERENCE_FIELD_NUMBER: builtins.int name: builtins.str - 'Name of the option to set. If the consumer does not recognize the\n option, it must reject the plan. The name is matched case-insensitively\n with option names defined for the function.\n ' - + """Name of the option to set. If the consumer does not recognize the + option, it must reject the plan. The name is matched case-insensitively + with option names defined for the function. + """ @property def preference(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """List of behavior options allowed by the producer. At least one must be @@ -2532,11 +2519,14 @@ class FunctionOption(google.protobuf.message.Message): match one of the option values defined for the option. """ - def __init__(self, *, name: builtins.str=..., preference: collections.abc.Iterable[builtins.str] | None=...) -> None: - ... + def __init__( + self, + *, + name: builtins.str = ..., + preference: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["name", b"name", "preference", b"preference"]) -> None: ... - def ClearField(self, field_name: typing.Literal['name', b'name', 'preference', b'preference']) -> None: - ... global___FunctionOption = FunctionOption @typing.final @@ -2551,27 +2541,24 @@ class Expression(google.protobuf.message.Message): class Empty(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__(self) -> None: - ... + def __init__( + self, + ) -> None: ... + SPECIFIED_FIELD_NUMBER: builtins.int UNSPECIFIED_FIELD_NUMBER: builtins.int specified: builtins.str - @property - def unspecified(self) -> global___Expression.Enum.Empty: - ... - - def __init__(self, *, specified: builtins.str=..., unspecified: global___Expression.Enum.Empty | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['enum_kind', b'enum_kind', 'specified', b'specified', 'unspecified', b'unspecified']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['enum_kind', b'enum_kind', 'specified', b'specified', 'unspecified', b'unspecified']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['enum_kind', b'enum_kind']) -> typing.Literal['specified', 'unspecified'] | None: - ... + def unspecified(self) -> global___Expression.Enum.Empty: ... + def __init__( + self, + *, + specified: builtins.str = ..., + unspecified: global___Expression.Enum.Empty | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["enum_kind", b"enum_kind", "specified", b"specified", "unspecified", b"unspecified"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["enum_kind", b"enum_kind", "specified", b"specified", "unspecified", b"unspecified"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["enum_kind", b"enum_kind"]) -> typing.Literal["specified", "unspecified"] | None: ... @typing.final class Literal(google.protobuf.message.Message): @@ -2580,67 +2567,80 @@ class Expression(google.protobuf.message.Message): @typing.final class VarChar(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + VALUE_FIELD_NUMBER: builtins.int LENGTH_FIELD_NUMBER: builtins.int value: builtins.str length: builtins.int - - def __init__(self, *, value: builtins.str=..., length: builtins.int=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['length', b'length', 'value', b'value']) -> None: - ... + def __init__( + self, + *, + value: builtins.str = ..., + length: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["length", b"length", "value", b"value"]) -> None: ... @typing.final class Decimal(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + VALUE_FIELD_NUMBER: builtins.int PRECISION_FIELD_NUMBER: builtins.int SCALE_FIELD_NUMBER: builtins.int value: builtins.bytes - 'little-endian twos-complement integer representation of complete value\n (ignoring precision) Always 16 bytes in length\n ' + """little-endian twos-complement integer representation of complete value + (ignoring precision) Always 16 bytes in length + """ precision: builtins.int - 'The maximum number of digits allowed in the value.\n the maximum precision is 38.\n ' + """The maximum number of digits allowed in the value. + the maximum precision is 38. + """ scale: builtins.int - 'declared scale of decimal literal' - - def __init__(self, *, value: builtins.bytes=..., precision: builtins.int=..., scale: builtins.int=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['precision', b'precision', 'scale', b'scale', 'value', b'value']) -> None: - ... + """declared scale of decimal literal""" + def __init__( + self, + *, + value: builtins.bytes = ..., + precision: builtins.int = ..., + scale: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["precision", b"precision", "scale", b"scale", "value", b"value"]) -> None: ... @typing.final class PrecisionTime(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int precision: builtins.int - 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds' + """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds""" value: builtins.int - 'Time passed since midnight in precision units.' - - def __init__(self, *, precision: builtins.int=..., value: builtins.int=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['precision', b'precision', 'value', b'value']) -> None: - ... + """Time passed since midnight in precision units.""" + def __init__( + self, + *, + precision: builtins.int = ..., + value: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["precision", b"precision", "value", b"value"]) -> None: ... @typing.final class PrecisionTimestamp(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int precision: builtins.int - 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds' + """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds""" value: builtins.int - 'Time passed since 1970-01-01 00:00:00.000000 in UTC for PrecisionTimestampTZ and unspecified timezone for PrecisionTimestamp' - - def __init__(self, *, precision: builtins.int=..., value: builtins.int=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['precision', b'precision', 'value', b'value']) -> None: - ... + """Time passed since 1970-01-01 00:00:00.000000 in UTC for PrecisionTimestampTZ and unspecified timezone for PrecisionTimestamp""" + def __init__( + self, + *, + precision: builtins.int = ..., + value: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["precision", b"precision", "value", b"value"]) -> None: ... @typing.final class Map(google.protobuf.message.Message): @@ -2649,54 +2649,52 @@ class Expression(google.protobuf.message.Message): @typing.final class KeyValue(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + KEY_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int - @property - def key(self) -> global___Expression.Literal: - ... - + def key(self) -> global___Expression.Literal: ... @property - def value(self) -> global___Expression.Literal: - ... - - def __init__(self, *, key: global___Expression.Literal | None=..., value: global___Expression.Literal | None=...) -> None: - ... + def value(self) -> global___Expression.Literal: ... + def __init__( + self, + *, + key: global___Expression.Literal | None = ..., + value: global___Expression.Literal | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... - def HasField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: - ... KEY_VALUES_FIELD_NUMBER: builtins.int - @property - def key_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Literal.Map.KeyValue]: - ... - - def __init__(self, *, key_values: collections.abc.Iterable[global___Expression.Literal.Map.KeyValue] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['key_values', b'key_values']) -> None: - ... + def key_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Literal.Map.KeyValue]: ... + def __init__( + self, + *, + key_values: collections.abc.Iterable[global___Expression.Literal.Map.KeyValue] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key_values", b"key_values"]) -> None: ... @typing.final class IntervalYearToMonth(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + YEARS_FIELD_NUMBER: builtins.int MONTHS_FIELD_NUMBER: builtins.int years: builtins.int months: builtins.int - - def __init__(self, *, years: builtins.int=..., months: builtins.int=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['months', b'months', 'years', b'years']) -> None: - ... + def __init__( + self, + *, + years: builtins.int = ..., + months: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["months", b"months", "years", b"years"]) -> None: ... @typing.final class IntervalDayToSecond(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + DAYS_FIELD_NUMBER: builtins.int SECONDS_FIELD_NUMBER: builtins.int MICROSECONDS_FIELD_NUMBER: builtins.int @@ -2705,87 +2703,85 @@ class Expression(google.protobuf.message.Message): days: builtins.int seconds: builtins.int microseconds: builtins.int - 'use precision and subseconds below, they cover and replace microseconds.' + """use precision and subseconds below, they cover and replace microseconds.""" precision: builtins.int - 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds. Should be used with subseconds below.' + """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds. Should be used with subseconds below.""" subseconds: builtins.int - 'the number of fractional seconds using 1e(-precision) units. Should only be used with precision field, not microseconds.' - - def __init__(self, *, days: builtins.int=..., seconds: builtins.int=..., microseconds: builtins.int=..., precision: builtins.int=..., subseconds: builtins.int=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['microseconds', b'microseconds', 'precision', b'precision', 'precision_mode', b'precision_mode']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['days', b'days', 'microseconds', b'microseconds', 'precision', b'precision', 'precision_mode', b'precision_mode', 'seconds', b'seconds', 'subseconds', b'subseconds']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['precision_mode', b'precision_mode']) -> typing.Literal['microseconds', 'precision'] | None: - ... + """the number of fractional seconds using 1e(-precision) units. Should only be used with precision field, not microseconds.""" + def __init__( + self, + *, + days: builtins.int = ..., + seconds: builtins.int = ..., + microseconds: builtins.int = ..., + precision: builtins.int = ..., + subseconds: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["microseconds", b"microseconds", "precision", b"precision", "precision_mode", b"precision_mode"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["days", b"days", "microseconds", b"microseconds", "precision", b"precision", "precision_mode", b"precision_mode", "seconds", b"seconds", "subseconds", b"subseconds"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["precision_mode", b"precision_mode"]) -> typing.Literal["microseconds", "precision"] | None: ... @typing.final class IntervalCompound(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + INTERVAL_YEAR_TO_MONTH_FIELD_NUMBER: builtins.int INTERVAL_DAY_TO_SECOND_FIELD_NUMBER: builtins.int - @property - def interval_year_to_month(self) -> global___Expression.Literal.IntervalYearToMonth: - ... - + def interval_year_to_month(self) -> global___Expression.Literal.IntervalYearToMonth: ... @property - def interval_day_to_second(self) -> global___Expression.Literal.IntervalDayToSecond: - ... - - def __init__(self, *, interval_year_to_month: global___Expression.Literal.IntervalYearToMonth | None=..., interval_day_to_second: global___Expression.Literal.IntervalDayToSecond | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month']) -> None: - ... + def interval_day_to_second(self) -> global___Expression.Literal.IntervalDayToSecond: ... + def __init__( + self, + *, + interval_year_to_month: global___Expression.Literal.IntervalYearToMonth | None = ..., + interval_day_to_second: global___Expression.Literal.IntervalDayToSecond | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["interval_day_to_second", b"interval_day_to_second", "interval_year_to_month", b"interval_year_to_month"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["interval_day_to_second", b"interval_day_to_second", "interval_year_to_month", b"interval_year_to_month"]) -> None: ... @typing.final class Struct(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - FIELDS_FIELD_NUMBER: builtins.int + FIELDS_FIELD_NUMBER: builtins.int @property def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Literal]: """A possibly heterogeneously typed list of literals""" - def __init__(self, *, fields: collections.abc.Iterable[global___Expression.Literal] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['fields', b'fields']) -> None: - ... + def __init__( + self, + *, + fields: collections.abc.Iterable[global___Expression.Literal] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["fields", b"fields"]) -> None: ... @typing.final class List(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUES_FIELD_NUMBER: builtins.int + VALUES_FIELD_NUMBER: builtins.int @property def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Literal]: """A homogeneously typed list of literals""" - def __init__(self, *, values: collections.abc.Iterable[global___Expression.Literal] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['values', b'values']) -> None: - ... + def __init__( + self, + *, + values: collections.abc.Iterable[global___Expression.Literal] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... @typing.final class UserDefined(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_REFERENCE_FIELD_NUMBER: builtins.int TYPE_PARAMETERS_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int STRUCT_FIELD_NUMBER: builtins.int type_reference: builtins.int - 'points to a type_anchor defined in this plan' - + """points to a type_anchor defined in this plan""" @property def type_parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[proto.type_pb2.Type.Parameter]: """The parameters to be bound to the type class, if the type class is @@ -2800,17 +2796,18 @@ class Expression(google.protobuf.message.Message): def struct(self) -> global___Expression.Literal.Struct: """the value of the literal, serialized using the structure definition in its declaration""" - def __init__(self, *, type_reference: builtins.int=..., type_parameters: collections.abc.Iterable[proto.type_pb2.Type.Parameter] | None=..., value: google.protobuf.any_pb2.Any | None=..., struct: global___Expression.Literal.Struct | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['struct', b'struct', 'val', b'val', 'value', b'value']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['struct', b'struct', 'type_parameters', b'type_parameters', 'type_reference', b'type_reference', 'val', b'val', 'value', b'value']) -> None: - ... + def __init__( + self, + *, + type_reference: builtins.int = ..., + type_parameters: collections.abc.Iterable[proto.type_pb2.Type.Parameter] | None = ..., + value: google.protobuf.any_pb2.Any | None = ..., + struct: global___Expression.Literal.Struct | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["struct", b"struct", "val", b"val", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["struct", b"struct", "type_parameters", b"type_parameters", "type_reference", b"type_reference", "val", b"val", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["val", b"val"]) -> typing.Literal["value", "struct"] | None: ... - def WhichOneof(self, oneof_group: typing.Literal['val', b'val']) -> typing.Literal['value', 'struct'] | None: - ... BOOLEAN_FIELD_NUMBER: builtins.int I8_FIELD_NUMBER: builtins.int I16_FIELD_NUMBER: builtins.int @@ -2854,96 +2851,113 @@ class Expression(google.protobuf.message.Message): string: builtins.str binary: builtins.bytes timestamp: builtins.int - 'Timestamp in units of microseconds since the UNIX epoch.\n Deprecated in favor of `precision_timestamp`.\n ' + """Timestamp in units of microseconds since the UNIX epoch. + Deprecated in favor of `precision_timestamp`. + """ date: builtins.int - 'Date in units of days since the UNIX epoch.' + """Date in units of days since the UNIX epoch.""" time: builtins.int - 'Time in units of microseconds past midnight.\n Deprecated in favor of `precision_time`.\n ' + """Time in units of microseconds past midnight. + Deprecated in favor of `precision_time`. + """ fixed_char: builtins.str fixed_binary: builtins.bytes timestamp_tz: builtins.int - 'Timestamp in units of microseconds since the UNIX epoch.\n Deprecated in favor of `precision_timestamp_tz`\n ' + """Timestamp in units of microseconds since the UNIX epoch. + Deprecated in favor of `precision_timestamp_tz` + """ uuid: builtins.bytes nullable: builtins.bool - 'Whether the literal_type above should be treated as a nullable type.\n Applies to all members of the literal_type oneof EXCEPT:\n * Type null (must be nullable by definition)\n * Type.List empty_list (use Type.List::nullability)\n * Type.Map empty_map (use Type.Map::nullability)\n ' + """Whether the literal_type above should be treated as a nullable type. + Applies to all members of the literal_type oneof EXCEPT: + * Type null (must be nullable by definition) + * Type.List empty_list (use Type.List::nullability) + * Type.Map empty_map (use Type.Map::nullability) + """ type_variation_reference: builtins.int - 'optionally points to a type_variation_anchor defined in this plan.\n Applies to all members of union other than the Typed null (which should\n directly declare the type variation).\n ' - + """optionally points to a type_variation_anchor defined in this plan. + Applies to all members of union other than the Typed null (which should + directly declare the type variation). + """ @property - def interval_year_to_month(self) -> global___Expression.Literal.IntervalYearToMonth: - ... - + def interval_year_to_month(self) -> global___Expression.Literal.IntervalYearToMonth: ... @property - def interval_day_to_second(self) -> global___Expression.Literal.IntervalDayToSecond: - ... - + def interval_day_to_second(self) -> global___Expression.Literal.IntervalDayToSecond: ... @property - def interval_compound(self) -> global___Expression.Literal.IntervalCompound: - ... - + def interval_compound(self) -> global___Expression.Literal.IntervalCompound: ... @property - def var_char(self) -> global___Expression.Literal.VarChar: - ... - + def var_char(self) -> global___Expression.Literal.VarChar: ... @property - def decimal(self) -> global___Expression.Literal.Decimal: - ... - + def decimal(self) -> global___Expression.Literal.Decimal: ... @property def precision_time(self) -> global___Expression.Literal.PrecisionTime: """Time in precision units past midnight.""" @property - def precision_timestamp(self) -> global___Expression.Literal.PrecisionTimestamp: - ... - + def precision_timestamp(self) -> global___Expression.Literal.PrecisionTimestamp: ... @property - def precision_timestamp_tz(self) -> global___Expression.Literal.PrecisionTimestamp: - ... - + def precision_timestamp_tz(self) -> global___Expression.Literal.PrecisionTimestamp: ... @property - def struct(self) -> global___Expression.Literal.Struct: - ... - + def struct(self) -> global___Expression.Literal.Struct: ... @property - def map(self) -> global___Expression.Literal.Map: - ... - + def map(self) -> global___Expression.Literal.Map: ... @property def null(self) -> proto.type_pb2.Type: """a typed null literal""" @property - def list(self) -> global___Expression.Literal.List: - ... - + def list(self) -> global___Expression.Literal.List: ... @property - def empty_list(self) -> proto.type_pb2.Type.List: - ... - + def empty_list(self) -> proto.type_pb2.Type.List: ... @property - def empty_map(self) -> proto.type_pb2.Type.Map: - ... - + def empty_map(self) -> proto.type_pb2.Type.Map: ... @property - def user_defined(self) -> global___Expression.Literal.UserDefined: - ... - - def __init__(self, *, boolean: builtins.bool=..., i8: builtins.int=..., i16: builtins.int=..., i32: builtins.int=..., i64: builtins.int=..., fp32: builtins.float=..., fp64: builtins.float=..., string: builtins.str=..., binary: builtins.bytes=..., timestamp: builtins.int=..., date: builtins.int=..., time: builtins.int=..., interval_year_to_month: global___Expression.Literal.IntervalYearToMonth | None=..., interval_day_to_second: global___Expression.Literal.IntervalDayToSecond | None=..., interval_compound: global___Expression.Literal.IntervalCompound | None=..., fixed_char: builtins.str=..., var_char: global___Expression.Literal.VarChar | None=..., fixed_binary: builtins.bytes=..., decimal: global___Expression.Literal.Decimal | None=..., precision_time: global___Expression.Literal.PrecisionTime | None=..., precision_timestamp: global___Expression.Literal.PrecisionTimestamp | None=..., precision_timestamp_tz: global___Expression.Literal.PrecisionTimestamp | None=..., struct: global___Expression.Literal.Struct | None=..., map: global___Expression.Literal.Map | None=..., timestamp_tz: builtins.int=..., uuid: builtins.bytes=..., null: proto.type_pb2.Type | None=..., list: global___Expression.Literal.List | None=..., empty_list: proto.type_pb2.Type.List | None=..., empty_map: proto.type_pb2.Type.Map | None=..., user_defined: global___Expression.Literal.UserDefined | None=..., nullable: builtins.bool=..., type_variation_reference: builtins.int=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['binary', b'binary', 'boolean', b'boolean', 'date', b'date', 'decimal', b'decimal', 'empty_list', b'empty_list', 'empty_map', b'empty_map', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month', 'list', b'list', 'literal_type', b'literal_type', 'map', b'map', 'null', b'null', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'uuid', b'uuid', 'var_char', b'var_char']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['binary', b'binary', 'boolean', b'boolean', 'date', b'date', 'decimal', b'decimal', 'empty_list', b'empty_list', 'empty_map', b'empty_map', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month', 'list', b'list', 'literal_type', b'literal_type', 'map', b'map', 'null', b'null', 'nullable', b'nullable', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_variation_reference', b'type_variation_reference', 'user_defined', b'user_defined', 'uuid', b'uuid', 'var_char', b'var_char']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['literal_type', b'literal_type']) -> typing.Literal['boolean', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year_to_month', 'interval_day_to_second', 'interval_compound', 'fixed_char', 'var_char', 'fixed_binary', 'decimal', 'precision_time', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'map', 'timestamp_tz', 'uuid', 'null', 'list', 'empty_list', 'empty_map', 'user_defined'] | None: - ... + def user_defined(self) -> global___Expression.Literal.UserDefined: ... + def __init__( + self, + *, + boolean: builtins.bool = ..., + i8: builtins.int = ..., + i16: builtins.int = ..., + i32: builtins.int = ..., + i64: builtins.int = ..., + fp32: builtins.float = ..., + fp64: builtins.float = ..., + string: builtins.str = ..., + binary: builtins.bytes = ..., + timestamp: builtins.int = ..., + date: builtins.int = ..., + time: builtins.int = ..., + interval_year_to_month: global___Expression.Literal.IntervalYearToMonth | None = ..., + interval_day_to_second: global___Expression.Literal.IntervalDayToSecond | None = ..., + interval_compound: global___Expression.Literal.IntervalCompound | None = ..., + fixed_char: builtins.str = ..., + var_char: global___Expression.Literal.VarChar | None = ..., + fixed_binary: builtins.bytes = ..., + decimal: global___Expression.Literal.Decimal | None = ..., + precision_time: global___Expression.Literal.PrecisionTime | None = ..., + precision_timestamp: global___Expression.Literal.PrecisionTimestamp | None = ..., + precision_timestamp_tz: global___Expression.Literal.PrecisionTimestamp | None = ..., + struct: global___Expression.Literal.Struct | None = ..., + map: global___Expression.Literal.Map | None = ..., + timestamp_tz: builtins.int = ..., + uuid: builtins.bytes = ..., + null: proto.type_pb2.Type | None = ..., + list: global___Expression.Literal.List | None = ..., + empty_list: proto.type_pb2.Type.List | None = ..., + empty_map: proto.type_pb2.Type.Map | None = ..., + user_defined: global___Expression.Literal.UserDefined | None = ..., + nullable: builtins.bool = ..., + type_variation_reference: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["binary", b"binary", "boolean", b"boolean", "date", b"date", "decimal", b"decimal", "empty_list", b"empty_list", "empty_map", b"empty_map", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "interval_compound", b"interval_compound", "interval_day_to_second", b"interval_day_to_second", "interval_year_to_month", b"interval_year_to_month", "list", b"list", "literal_type", b"literal_type", "map", b"map", "null", b"null", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "user_defined", b"user_defined", "uuid", b"uuid", "var_char", b"var_char"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["binary", b"binary", "boolean", b"boolean", "date", b"date", "decimal", b"decimal", "empty_list", b"empty_list", "empty_map", b"empty_map", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "interval_compound", b"interval_compound", "interval_day_to_second", b"interval_day_to_second", "interval_year_to_month", b"interval_year_to_month", "list", b"list", "literal_type", b"literal_type", "map", b"map", "null", b"null", "nullable", b"nullable", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "type_variation_reference", b"type_variation_reference", "user_defined", b"user_defined", "uuid", b"uuid", "var_char", b"var_char"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["literal_type", b"literal_type"]) -> typing.Literal["boolean", "i8", "i16", "i32", "i64", "fp32", "fp64", "string", "binary", "timestamp", "date", "time", "interval_year_to_month", "interval_day_to_second", "interval_compound", "fixed_char", "var_char", "fixed_binary", "decimal", "precision_time", "precision_timestamp", "precision_timestamp_tz", "struct", "map", "timestamp_tz", "uuid", "null", "list", "empty_list", "empty_map", "user_defined"] | None: ... @typing.final class Nested(google.protobuf.message.Message): """Expression to dynamically construct nested types.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final @@ -2953,61 +2967,61 @@ class Expression(google.protobuf.message.Message): @typing.final class KeyValue(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + KEY_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int - @property def key(self) -> global___Expression: """Mandatory key/value expressions.""" @property - def value(self) -> global___Expression: - ... - - def __init__(self, *, key: global___Expression | None=..., value: global___Expression | None=...) -> None: - ... + def value(self) -> global___Expression: ... + def __init__( + self, + *, + key: global___Expression | None = ..., + value: global___Expression | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... - def HasField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: - ... KEY_VALUES_FIELD_NUMBER: builtins.int - @property def key_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Nested.Map.KeyValue]: """One or more key-value pairs. To specify an empty map, use Literal.empty_map (otherwise type information would be missing). """ - def __init__(self, *, key_values: collections.abc.Iterable[global___Expression.Nested.Map.KeyValue] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['key_values', b'key_values']) -> None: - ... + def __init__( + self, + *, + key_values: collections.abc.Iterable[global___Expression.Nested.Map.KeyValue] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["key_values", b"key_values"]) -> None: ... @typing.final class Struct(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - FIELDS_FIELD_NUMBER: builtins.int + FIELDS_FIELD_NUMBER: builtins.int @property def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: """Zero or more possibly heterogeneously-typed list of expressions that form the struct fields. """ - def __init__(self, *, fields: collections.abc.Iterable[global___Expression] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['fields', b'fields']) -> None: - ... + def __init__( + self, + *, + fields: collections.abc.Iterable[global___Expression] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["fields", b"fields"]) -> None: ... @typing.final class List(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUES_FIELD_NUMBER: builtins.int + VALUES_FIELD_NUMBER: builtins.int @property def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: """A homogeneously-typed list of one or more expressions that form the @@ -3015,57 +3029,59 @@ class Expression(google.protobuf.message.Message): (otherwise type information would be missing). """ - def __init__(self, *, values: collections.abc.Iterable[global___Expression] | None=...) -> None: - ... + def __init__( + self, + *, + values: collections.abc.Iterable[global___Expression] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... - def ClearField(self, field_name: typing.Literal['values', b'values']) -> None: - ... NULLABLE_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int STRUCT_FIELD_NUMBER: builtins.int LIST_FIELD_NUMBER: builtins.int MAP_FIELD_NUMBER: builtins.int nullable: builtins.bool - 'Whether the returned nested type is nullable.' + """Whether the returned nested type is nullable.""" type_variation_reference: builtins.int - 'Optionally points to a type_variation_anchor defined in this plan for\n the returned nested type.\n ' - + """Optionally points to a type_variation_anchor defined in this plan for + the returned nested type. + """ @property - def struct(self) -> global___Expression.Nested.Struct: - ... - + def struct(self) -> global___Expression.Nested.Struct: ... @property - def list(self) -> global___Expression.Nested.List: - ... - + def list(self) -> global___Expression.Nested.List: ... @property - def map(self) -> global___Expression.Nested.Map: - ... - - def __init__(self, *, nullable: builtins.bool=..., type_variation_reference: builtins.int=..., struct: global___Expression.Nested.Struct | None=..., list: global___Expression.Nested.List | None=..., map: global___Expression.Nested.Map | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['list', b'list', 'map', b'map', 'nested_type', b'nested_type', 'struct', b'struct']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['list', b'list', 'map', b'map', 'nested_type', b'nested_type', 'nullable', b'nullable', 'struct', b'struct', 'type_variation_reference', b'type_variation_reference']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['nested_type', b'nested_type']) -> typing.Literal['struct', 'list', 'map'] | None: - ... + def map(self) -> global___Expression.Nested.Map: ... + def __init__( + self, + *, + nullable: builtins.bool = ..., + type_variation_reference: builtins.int = ..., + struct: global___Expression.Nested.Struct | None = ..., + list: global___Expression.Nested.List | None = ..., + map: global___Expression.Nested.Map | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["list", b"list", "map", b"map", "nested_type", b"nested_type", "struct", b"struct"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["list", b"list", "map", b"map", "nested_type", b"nested_type", "nullable", b"nullable", "struct", b"struct", "type_variation_reference", b"type_variation_reference"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["nested_type", b"nested_type"]) -> typing.Literal["struct", "list", "map"] | None: ... @typing.final class ScalarFunction(google.protobuf.message.Message): """A scalar function call.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + FUNCTION_REFERENCE_FIELD_NUMBER: builtins.int ARGUMENTS_FIELD_NUMBER: builtins.int OPTIONS_FIELD_NUMBER: builtins.int OUTPUT_TYPE_FIELD_NUMBER: builtins.int ARGS_FIELD_NUMBER: builtins.int function_reference: builtins.int - 'Points to a function_anchor defined in this plan, which must refer\n to a scalar function in the associated YAML file. Required; avoid\n using anchor/reference zero.\n ' - + """Points to a function_anchor defined in this plan, which must refer + to a scalar function in the associated YAML file. Required; avoid + using anchor/reference zero. + """ @property def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionArgument]: """The arguments to be bound to the function. This must have exactly the @@ -3098,80 +3114,108 @@ class Expression(google.protobuf.message.Message): def args(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: """Deprecated; use arguments instead.""" - def __init__(self, *, function_reference: builtins.int=..., arguments: collections.abc.Iterable[global___FunctionArgument] | None=..., options: collections.abc.Iterable[global___FunctionOption] | None=..., output_type: proto.type_pb2.Type | None=..., args: collections.abc.Iterable[global___Expression] | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['output_type', b'output_type']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['args', b'args', 'arguments', b'arguments', 'function_reference', b'function_reference', 'options', b'options', 'output_type', b'output_type']) -> None: - ... + def __init__( + self, + *, + function_reference: builtins.int = ..., + arguments: collections.abc.Iterable[global___FunctionArgument] | None = ..., + options: collections.abc.Iterable[global___FunctionOption] | None = ..., + output_type: proto.type_pb2.Type | None = ..., + args: collections.abc.Iterable[global___Expression] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["output_type", b"output_type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["args", b"args", "arguments", b"arguments", "function_reference", b"function_reference", "options", b"options", "output_type", b"output_type"]) -> None: ... @typing.final class WindowFunction(google.protobuf.message.Message): """A window function call.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _BoundsType: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _BoundsTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Expression.WindowFunction._BoundsType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - BOUNDS_TYPE_UNSPECIFIED: Expression.WindowFunction._BoundsType.ValueType - BOUNDS_TYPE_ROWS: Expression.WindowFunction._BoundsType.ValueType - 'The lower and upper bound specify how many rows before and after the current row\n the window should extend.\n ' - BOUNDS_TYPE_RANGE: Expression.WindowFunction._BoundsType.ValueType - 'The lower and upper bound describe a range of values. The window should include all rows\n where the value of the ordering column is greater than or equal to (current_value - lower bound)\n and less than or equal to (current_value + upper bound). This bounds type is only valid if there\n is a single ordering column.\n ' - - class BoundsType(_BoundsType, metaclass=_BoundsTypeEnumTypeWrapper): - ... - BOUNDS_TYPE_UNSPECIFIED: Expression.WindowFunction.BoundsType.ValueType - BOUNDS_TYPE_ROWS: Expression.WindowFunction.BoundsType.ValueType - 'The lower and upper bound specify how many rows before and after the current row\n the window should extend.\n ' - BOUNDS_TYPE_RANGE: Expression.WindowFunction.BoundsType.ValueType - 'The lower and upper bound describe a range of values. The window should include all rows\n where the value of the ordering column is greater than or equal to (current_value - lower bound)\n and less than or equal to (current_value + upper bound). This bounds type is only valid if there\n is a single ordering column.\n ' + BOUNDS_TYPE_UNSPECIFIED: Expression.WindowFunction._BoundsType.ValueType # 0 + BOUNDS_TYPE_ROWS: Expression.WindowFunction._BoundsType.ValueType # 1 + """The lower and upper bound specify how many rows before and after the current row + the window should extend. + """ + BOUNDS_TYPE_RANGE: Expression.WindowFunction._BoundsType.ValueType # 2 + """The lower and upper bound describe a range of values. The window should include all rows + where the value of the ordering column is greater than or equal to (current_value - lower bound) + and less than or equal to (current_value + upper bound). This bounds type is only valid if there + is a single ordering column. + """ + + class BoundsType(_BoundsType, metaclass=_BoundsTypeEnumTypeWrapper): ... + BOUNDS_TYPE_UNSPECIFIED: Expression.WindowFunction.BoundsType.ValueType # 0 + BOUNDS_TYPE_ROWS: Expression.WindowFunction.BoundsType.ValueType # 1 + """The lower and upper bound specify how many rows before and after the current row + the window should extend. + """ + BOUNDS_TYPE_RANGE: Expression.WindowFunction.BoundsType.ValueType # 2 + """The lower and upper bound describe a range of values. The window should include all rows + where the value of the ordering column is greater than or equal to (current_value - lower bound) + and less than or equal to (current_value + upper bound). This bounds type is only valid if there + is a single ordering column. + """ @typing.final class Bound(google.protobuf.message.Message): """Defines one of the two boundaries for the window of a window function.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class Preceding(google.protobuf.message.Message): """Defines that the bound extends this far back from the current record.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + OFFSET_FIELD_NUMBER: builtins.int offset: builtins.int - 'A strictly positive integer specifying the number of records that\n the window extends back from the current record. Required. Use\n CurrentRow for offset zero and Following for negative offsets.\n ' - - def __init__(self, *, offset: builtins.int=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['offset', b'offset']) -> None: - ... + """A strictly positive integer specifying the number of records that + the window extends back from the current record. Required. Use + CurrentRow for offset zero and Following for negative offsets. + """ + def __init__( + self, + *, + offset: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["offset", b"offset"]) -> None: ... @typing.final class Following(google.protobuf.message.Message): """Defines that the bound extends this far ahead of the current record.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + OFFSET_FIELD_NUMBER: builtins.int offset: builtins.int - 'A strictly positive integer specifying the number of records that\n the window extends ahead of the current record. Required. Use\n CurrentRow for offset zero and Preceding for negative offsets.\n ' - - def __init__(self, *, offset: builtins.int=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['offset', b'offset']) -> None: - ... + """A strictly positive integer specifying the number of records that + the window extends ahead of the current record. Required. Use + CurrentRow for offset zero and Preceding for negative offsets. + """ + def __init__( + self, + *, + offset: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["offset", b"offset"]) -> None: ... @typing.final class CurrentRow(google.protobuf.message.Message): """Defines that the bound extends to or from the current record.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__(self) -> None: - ... + def __init__( + self, + ) -> None: ... @typing.final class Unbounded(google.protobuf.message.Message): @@ -3179,15 +3223,17 @@ class Expression(google.protobuf.message.Message): of the partition, and for upper bounds this means the end of the partition. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__(self) -> None: - ... + def __init__( + self, + ) -> None: ... + PRECEDING_FIELD_NUMBER: builtins.int FOLLOWING_FIELD_NUMBER: builtins.int CURRENT_ROW_FIELD_NUMBER: builtins.int UNBOUNDED_FIELD_NUMBER: builtins.int - @property def preceding(self) -> global___Expression.WindowFunction.Bound.Preceding: """The bound extends some number of records behind the current record.""" @@ -3209,17 +3255,18 @@ class Expression(google.protobuf.message.Message): bound. """ - def __init__(self, *, preceding: global___Expression.WindowFunction.Bound.Preceding | None=..., following: global___Expression.WindowFunction.Bound.Following | None=..., current_row: global___Expression.WindowFunction.Bound.CurrentRow | None=..., unbounded: global___Expression.WindowFunction.Bound.Unbounded | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['current_row', b'current_row', 'following', b'following', 'kind', b'kind', 'preceding', b'preceding', 'unbounded', b'unbounded']) -> builtins.bool: - ... + def __init__( + self, + *, + preceding: global___Expression.WindowFunction.Bound.Preceding | None = ..., + following: global___Expression.WindowFunction.Bound.Following | None = ..., + current_row: global___Expression.WindowFunction.Bound.CurrentRow | None = ..., + unbounded: global___Expression.WindowFunction.Bound.Unbounded | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["current_row", b"current_row", "following", b"following", "kind", b"kind", "preceding", b"preceding", "unbounded", b"unbounded"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["current_row", b"current_row", "following", b"following", "kind", b"kind", "preceding", b"preceding", "unbounded", b"unbounded"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["kind", b"kind"]) -> typing.Literal["preceding", "following", "current_row", "unbounded"] | None: ... - def ClearField(self, field_name: typing.Literal['current_row', b'current_row', 'following', b'following', 'kind', b'kind', 'preceding', b'preceding', 'unbounded', b'unbounded']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['kind', b'kind']) -> typing.Literal['preceding', 'following', 'current_row', 'unbounded'] | None: - ... FUNCTION_REFERENCE_FIELD_NUMBER: builtins.int ARGUMENTS_FIELD_NUMBER: builtins.int OPTIONS_FIELD_NUMBER: builtins.int @@ -3233,14 +3280,26 @@ class Expression(google.protobuf.message.Message): UPPER_BOUND_FIELD_NUMBER: builtins.int ARGS_FIELD_NUMBER: builtins.int function_reference: builtins.int - 'Points to a function_anchor defined in this plan. The function must be:\n - a window function\n - an aggregate function\n\n An aggregate function referenced here should be treated as a window\n function with Window Type STREAMING\n\n Required; 0 is considered to be a valid anchor/reference.\n ' + """Points to a function_anchor defined in this plan. The function must be: + - a window function + - an aggregate function + + An aggregate function referenced here should be treated as a window + function with Window Type STREAMING + + Required; 0 is considered to be a valid anchor/reference. + """ phase: global___AggregationPhase.ValueType - 'Describes which part of the window function to perform within the\n context of distributed algorithms. Required. Must be set to\n INITIAL_TO_RESULT for window functions that are not decomposable.\n ' + """Describes which part of the window function to perform within the + context of distributed algorithms. Required. Must be set to + INITIAL_TO_RESULT for window functions that are not decomposable. + """ invocation: global___AggregateFunction.AggregationInvocation.ValueType - 'Specifies whether equivalent records are merged before being aggregated.\n Optional, defaults to AGGREGATION_INVOCATION_ALL.\n ' + """Specifies whether equivalent records are merged before being aggregated. + Optional, defaults to AGGREGATION_INVOCATION_ALL. + """ bounds_type: global___Expression.WindowFunction.BoundsType.ValueType - 'Defines the bounds type: ROWS, RANGE' - + """Defines the bounds type: ROWS, RANGE""" @property def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionArgument]: """The arguments to be bound to the function. This must have exactly the @@ -3311,14 +3370,24 @@ class Expression(google.protobuf.message.Message): def args(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: """Deprecated; use arguments instead.""" - def __init__(self, *, function_reference: builtins.int=..., arguments: collections.abc.Iterable[global___FunctionArgument] | None=..., options: collections.abc.Iterable[global___FunctionOption] | None=..., output_type: proto.type_pb2.Type | None=..., phase: global___AggregationPhase.ValueType=..., sorts: collections.abc.Iterable[global___SortField] | None=..., invocation: global___AggregateFunction.AggregationInvocation.ValueType=..., partitions: collections.abc.Iterable[global___Expression] | None=..., bounds_type: global___Expression.WindowFunction.BoundsType.ValueType=..., lower_bound: global___Expression.WindowFunction.Bound | None=..., upper_bound: global___Expression.WindowFunction.Bound | None=..., args: collections.abc.Iterable[global___Expression] | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['lower_bound', b'lower_bound', 'output_type', b'output_type', 'upper_bound', b'upper_bound']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['args', b'args', 'arguments', b'arguments', 'bounds_type', b'bounds_type', 'function_reference', b'function_reference', 'invocation', b'invocation', 'lower_bound', b'lower_bound', 'options', b'options', 'output_type', b'output_type', 'partitions', b'partitions', 'phase', b'phase', 'sorts', b'sorts', 'upper_bound', b'upper_bound']) -> None: - ... + def __init__( + self, + *, + function_reference: builtins.int = ..., + arguments: collections.abc.Iterable[global___FunctionArgument] | None = ..., + options: collections.abc.Iterable[global___FunctionOption] | None = ..., + output_type: proto.type_pb2.Type | None = ..., + phase: global___AggregationPhase.ValueType = ..., + sorts: collections.abc.Iterable[global___SortField] | None = ..., + invocation: global___AggregateFunction.AggregationInvocation.ValueType = ..., + partitions: collections.abc.Iterable[global___Expression] | None = ..., + bounds_type: global___Expression.WindowFunction.BoundsType.ValueType = ..., + lower_bound: global___Expression.WindowFunction.Bound | None = ..., + upper_bound: global___Expression.WindowFunction.Bound | None = ..., + args: collections.abc.Iterable[global___Expression] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["lower_bound", b"lower_bound", "output_type", b"output_type", "upper_bound", b"upper_bound"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["args", b"args", "arguments", b"arguments", "bounds_type", b"bounds_type", "function_reference", b"function_reference", "invocation", b"invocation", "lower_bound", b"lower_bound", "options", b"options", "output_type", b"output_type", "partitions", b"partitions", "phase", b"phase", "sorts", b"sorts", "upper_bound", b"upper_bound"]) -> None: ... @typing.final class IfThen(google.protobuf.message.Message): @@ -3327,77 +3396,69 @@ class Expression(google.protobuf.message.Message): @typing.final class IfClause(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + IF_FIELD_NUMBER: builtins.int THEN_FIELD_NUMBER: builtins.int - @property - def then(self) -> global___Expression: - ... - - def __init__(self, *, then: global___Expression | None=...) -> None: - ... + def then(self) -> global___Expression: ... + def __init__( + self, + *, + then: global___Expression | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["if", b"if", "then", b"then"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["if", b"if", "then", b"then"]) -> None: ... - def HasField(self, field_name: typing.Literal['if', b'if', 'then', b'then']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['if', b'if', 'then', b'then']) -> None: - ... IFS_FIELD_NUMBER: builtins.int ELSE_FIELD_NUMBER: builtins.int - @property def ifs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.IfThen.IfClause]: """A list of one or more IfClauses""" - def __init__(self, *, ifs: collections.abc.Iterable[global___Expression.IfThen.IfClause] | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['else', b'else']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['else', b'else', 'ifs', b'ifs']) -> None: - ... + def __init__( + self, + *, + ifs: collections.abc.Iterable[global___Expression.IfThen.IfClause] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["else", b"else"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["else", b"else", "ifs", b"ifs"]) -> None: ... @typing.final class Cast(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _FailureBehavior: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _FailureBehaviorEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Expression.Cast._FailureBehavior.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - FAILURE_BEHAVIOR_UNSPECIFIED: Expression.Cast._FailureBehavior.ValueType - FAILURE_BEHAVIOR_RETURN_NULL: Expression.Cast._FailureBehavior.ValueType - FAILURE_BEHAVIOR_THROW_EXCEPTION: Expression.Cast._FailureBehavior.ValueType - - class FailureBehavior(_FailureBehavior, metaclass=_FailureBehaviorEnumTypeWrapper): - ... - FAILURE_BEHAVIOR_UNSPECIFIED: Expression.Cast.FailureBehavior.ValueType - FAILURE_BEHAVIOR_RETURN_NULL: Expression.Cast.FailureBehavior.ValueType - FAILURE_BEHAVIOR_THROW_EXCEPTION: Expression.Cast.FailureBehavior.ValueType + FAILURE_BEHAVIOR_UNSPECIFIED: Expression.Cast._FailureBehavior.ValueType # 0 + FAILURE_BEHAVIOR_RETURN_NULL: Expression.Cast._FailureBehavior.ValueType # 1 + FAILURE_BEHAVIOR_THROW_EXCEPTION: Expression.Cast._FailureBehavior.ValueType # 2 + + class FailureBehavior(_FailureBehavior, metaclass=_FailureBehaviorEnumTypeWrapper): ... + FAILURE_BEHAVIOR_UNSPECIFIED: Expression.Cast.FailureBehavior.ValueType # 0 + FAILURE_BEHAVIOR_RETURN_NULL: Expression.Cast.FailureBehavior.ValueType # 1 + FAILURE_BEHAVIOR_THROW_EXCEPTION: Expression.Cast.FailureBehavior.ValueType # 2 + TYPE_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int FAILURE_BEHAVIOR_FIELD_NUMBER: builtins.int failure_behavior: global___Expression.Cast.FailureBehavior.ValueType - @property - def type(self) -> proto.type_pb2.Type: - ... - + def type(self) -> proto.type_pb2.Type: ... @property - def input(self) -> global___Expression: - ... - - def __init__(self, *, type: proto.type_pb2.Type | None=..., input: global___Expression | None=..., failure_behavior: global___Expression.Cast.FailureBehavior.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['input', b'input', 'type', b'type']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['failure_behavior', b'failure_behavior', 'input', b'input', 'type', b'type']) -> None: - ... + def input(self) -> global___Expression: ... + def __init__( + self, + *, + type: proto.type_pb2.Type | None = ..., + input: global___Expression | None = ..., + failure_behavior: global___Expression.Cast.FailureBehavior.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["input", b"input", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["failure_behavior", b"failure_behavior", "input", b"input", "type", b"type"]) -> None: ... @typing.final class SwitchExpression(google.protobuf.message.Message): @@ -3406,64 +3467,53 @@ class Expression(google.protobuf.message.Message): @typing.final class IfValue(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + IF_FIELD_NUMBER: builtins.int THEN_FIELD_NUMBER: builtins.int - @property - def then(self) -> global___Expression: - ... - - def __init__(self, *, then: global___Expression | None=...) -> None: - ... + def then(self) -> global___Expression: ... + def __init__( + self, + *, + then: global___Expression | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["if", b"if", "then", b"then"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["if", b"if", "then", b"then"]) -> None: ... - def HasField(self, field_name: typing.Literal['if', b'if', 'then', b'then']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['if', b'if', 'then', b'then']) -> None: - ... MATCH_FIELD_NUMBER: builtins.int IFS_FIELD_NUMBER: builtins.int ELSE_FIELD_NUMBER: builtins.int - @property - def match(self) -> global___Expression: - ... - + def match(self) -> global___Expression: ... @property - def ifs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.SwitchExpression.IfValue]: - ... - - def __init__(self, *, match: global___Expression | None=..., ifs: collections.abc.Iterable[global___Expression.SwitchExpression.IfValue] | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['else', b'else', 'match', b'match']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['else', b'else', 'ifs', b'ifs', 'match', b'match']) -> None: - ... + def ifs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.SwitchExpression.IfValue]: ... + def __init__( + self, + *, + match: global___Expression | None = ..., + ifs: collections.abc.Iterable[global___Expression.SwitchExpression.IfValue] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["else", b"else", "match", b"match"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["else", b"else", "ifs", b"ifs", "match", b"match"]) -> None: ... @typing.final class SingularOrList(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + VALUE_FIELD_NUMBER: builtins.int OPTIONS_FIELD_NUMBER: builtins.int - @property - def value(self) -> global___Expression: - ... - + def value(self) -> global___Expression: ... @property - def options(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: - ... - - def __init__(self, *, value: global___Expression | None=..., options: collections.abc.Iterable[global___Expression] | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['options', b'options', 'value', b'value']) -> None: - ... + def options(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: ... + def __init__( + self, + *, + value: global___Expression | None = ..., + options: collections.abc.Iterable[global___Expression] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["options", b"options", "value", b"value"]) -> None: ... @typing.final class MultiOrList(google.protobuf.message.Message): @@ -3472,33 +3522,30 @@ class Expression(google.protobuf.message.Message): @typing.final class Record(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - FIELDS_FIELD_NUMBER: builtins.int + FIELDS_FIELD_NUMBER: builtins.int @property - def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: - ... - - def __init__(self, *, fields: collections.abc.Iterable[global___Expression] | None=...) -> None: - ... + def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: ... + def __init__( + self, + *, + fields: collections.abc.Iterable[global___Expression] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["fields", b"fields"]) -> None: ... - def ClearField(self, field_name: typing.Literal['fields', b'fields']) -> None: - ... VALUE_FIELD_NUMBER: builtins.int OPTIONS_FIELD_NUMBER: builtins.int - @property - def value(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: - ... - + def value(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: ... @property - def options(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.MultiOrList.Record]: - ... - - def __init__(self, *, value: collections.abc.Iterable[global___Expression] | None=..., options: collections.abc.Iterable[global___Expression.MultiOrList.Record] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['options', b'options', 'value', b'value']) -> None: - ... + def options(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.MultiOrList.Record]: ... + def __init__( + self, + *, + value: collections.abc.Iterable[global___Expression] | None = ..., + options: collections.abc.Iterable[global___Expression.MultiOrList.Record] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["options", b"options", "value", b"value"]) -> None: ... @typing.final class EmbeddedFunction(google.protobuf.message.Message): @@ -3507,68 +3554,60 @@ class Expression(google.protobuf.message.Message): @typing.final class PythonPickleFunction(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + FUNCTION_FIELD_NUMBER: builtins.int PREREQUISITE_FIELD_NUMBER: builtins.int function: builtins.bytes - @property - def prerequisite(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - ... - - def __init__(self, *, function: builtins.bytes=..., prerequisite: collections.abc.Iterable[builtins.str] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['function', b'function', 'prerequisite', b'prerequisite']) -> None: - ... + def prerequisite(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + function: builtins.bytes = ..., + prerequisite: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["function", b"function", "prerequisite", b"prerequisite"]) -> None: ... @typing.final class WebAssemblyFunction(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + SCRIPT_FIELD_NUMBER: builtins.int PREREQUISITE_FIELD_NUMBER: builtins.int script: builtins.bytes - @property - def prerequisite(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - ... + def prerequisite(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + script: builtins.bytes = ..., + prerequisite: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["prerequisite", b"prerequisite", "script", b"script"]) -> None: ... - def __init__(self, *, script: builtins.bytes=..., prerequisite: collections.abc.Iterable[builtins.str] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['prerequisite', b'prerequisite', 'script', b'script']) -> None: - ... ARGUMENTS_FIELD_NUMBER: builtins.int OUTPUT_TYPE_FIELD_NUMBER: builtins.int PYTHON_PICKLE_FUNCTION_FIELD_NUMBER: builtins.int WEB_ASSEMBLY_FUNCTION_FIELD_NUMBER: builtins.int - @property - def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: - ... - + def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: ... @property - def output_type(self) -> proto.type_pb2.Type: - ... - + def output_type(self) -> proto.type_pb2.Type: ... @property - def python_pickle_function(self) -> global___Expression.EmbeddedFunction.PythonPickleFunction: - ... - + def python_pickle_function(self) -> global___Expression.EmbeddedFunction.PythonPickleFunction: ... @property - def web_assembly_function(self) -> global___Expression.EmbeddedFunction.WebAssemblyFunction: - ... - - def __init__(self, *, arguments: collections.abc.Iterable[global___Expression] | None=..., output_type: proto.type_pb2.Type | None=..., python_pickle_function: global___Expression.EmbeddedFunction.PythonPickleFunction | None=..., web_assembly_function: global___Expression.EmbeddedFunction.WebAssemblyFunction | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['kind', b'kind', 'output_type', b'output_type', 'python_pickle_function', b'python_pickle_function', 'web_assembly_function', b'web_assembly_function']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['arguments', b'arguments', 'kind', b'kind', 'output_type', b'output_type', 'python_pickle_function', b'python_pickle_function', 'web_assembly_function', b'web_assembly_function']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['kind', b'kind']) -> typing.Literal['python_pickle_function', 'web_assembly_function'] | None: - ... + def web_assembly_function(self) -> global___Expression.EmbeddedFunction.WebAssemblyFunction: ... + def __init__( + self, + *, + arguments: collections.abc.Iterable[global___Expression] | None = ..., + output_type: proto.type_pb2.Type | None = ..., + python_pickle_function: global___Expression.EmbeddedFunction.PythonPickleFunction | None = ..., + web_assembly_function: global___Expression.EmbeddedFunction.WebAssemblyFunction | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["kind", b"kind", "output_type", b"output_type", "python_pickle_function", b"python_pickle_function", "web_assembly_function", b"web_assembly_function"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["arguments", b"arguments", "kind", b"kind", "output_type", b"output_type", "python_pickle_function", b"python_pickle_function", "web_assembly_function", b"web_assembly_function"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["kind", b"kind"]) -> typing.Literal["python_pickle_function", "web_assembly_function"] | None: ... @typing.final class ReferenceSegment(google.protobuf.message.Message): @@ -3580,14 +3619,15 @@ class Expression(google.protobuf.message.Message): (ordinalized in the internal representation here), [2] is a list offset and ['my_map_key'] is a reference into a map field. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class MapKey(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + MAP_KEY_FIELD_NUMBER: builtins.int CHILD_FIELD_NUMBER: builtins.int - @property def map_key(self) -> global___Expression.Literal: """literal based reference to specific possible value in map.""" @@ -3596,83 +3636,76 @@ class Expression(google.protobuf.message.Message): def child(self) -> global___Expression.ReferenceSegment: """Optional child segment""" - def __init__(self, *, map_key: global___Expression.Literal | None=..., child: global___Expression.ReferenceSegment | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['child', b'child', 'map_key', b'map_key']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['child', b'child', 'map_key', b'map_key']) -> None: - ... + def __init__( + self, + *, + map_key: global___Expression.Literal | None = ..., + child: global___Expression.ReferenceSegment | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["child", b"child", "map_key", b"map_key"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["child", b"child", "map_key", b"map_key"]) -> None: ... @typing.final class StructField(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + FIELD_FIELD_NUMBER: builtins.int CHILD_FIELD_NUMBER: builtins.int field: builtins.int - 'zero-indexed ordinal position of field in struct' - + """zero-indexed ordinal position of field in struct""" @property def child(self) -> global___Expression.ReferenceSegment: """Optional child segment""" - def __init__(self, *, field: builtins.int=..., child: global___Expression.ReferenceSegment | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['child', b'child']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['child', b'child', 'field', b'field']) -> None: - ... + def __init__( + self, + *, + field: builtins.int = ..., + child: global___Expression.ReferenceSegment | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["child", b"child"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["child", b"child", "field", b"field"]) -> None: ... @typing.final class ListElement(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + OFFSET_FIELD_NUMBER: builtins.int CHILD_FIELD_NUMBER: builtins.int offset: builtins.int - 'zero-indexed ordinal position of element in list' - + """zero-indexed ordinal position of element in list""" @property def child(self) -> global___Expression.ReferenceSegment: """Optional child segment""" - def __init__(self, *, offset: builtins.int=..., child: global___Expression.ReferenceSegment | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['child', b'child']) -> builtins.bool: - ... + def __init__( + self, + *, + offset: builtins.int = ..., + child: global___Expression.ReferenceSegment | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["child", b"child"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["child", b"child", "offset", b"offset"]) -> None: ... - def ClearField(self, field_name: typing.Literal['child', b'child', 'offset', b'offset']) -> None: - ... MAP_KEY_FIELD_NUMBER: builtins.int STRUCT_FIELD_FIELD_NUMBER: builtins.int LIST_ELEMENT_FIELD_NUMBER: builtins.int - @property - def map_key(self) -> global___Expression.ReferenceSegment.MapKey: - ... - + def map_key(self) -> global___Expression.ReferenceSegment.MapKey: ... @property - def struct_field(self) -> global___Expression.ReferenceSegment.StructField: - ... - + def struct_field(self) -> global___Expression.ReferenceSegment.StructField: ... @property - def list_element(self) -> global___Expression.ReferenceSegment.ListElement: - ... - - def __init__(self, *, map_key: global___Expression.ReferenceSegment.MapKey | None=..., struct_field: global___Expression.ReferenceSegment.StructField | None=..., list_element: global___Expression.ReferenceSegment.ListElement | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['list_element', b'list_element', 'map_key', b'map_key', 'reference_type', b'reference_type', 'struct_field', b'struct_field']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['list_element', b'list_element', 'map_key', b'map_key', 'reference_type', b'reference_type', 'struct_field', b'struct_field']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['reference_type', b'reference_type']) -> typing.Literal['map_key', 'struct_field', 'list_element'] | None: - ... + def list_element(self) -> global___Expression.ReferenceSegment.ListElement: ... + def __init__( + self, + *, + map_key: global___Expression.ReferenceSegment.MapKey | None = ..., + struct_field: global___Expression.ReferenceSegment.StructField | None = ..., + list_element: global___Expression.ReferenceSegment.ListElement | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["list_element", b"list_element", "map_key", b"map_key", "reference_type", b"reference_type", "struct_field", b"struct_field"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["list_element", b"list_element", "map_key", b"map_key", "reference_type", b"reference_type", "struct_field", b"struct_field"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["reference_type", b"reference_type"]) -> typing.Literal["map_key", "struct_field", "list_element"] | None: ... @typing.final class MaskExpression(google.protobuf.message.Message): @@ -3686,73 +3719,64 @@ class Expression(google.protobuf.message.Message): Note that this does not fundamentally alter the structure of data beyond the elimination of unnecessary elements. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class Select(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + STRUCT_FIELD_NUMBER: builtins.int LIST_FIELD_NUMBER: builtins.int MAP_FIELD_NUMBER: builtins.int - @property - def struct(self) -> global___Expression.MaskExpression.StructSelect: - ... - + def struct(self) -> global___Expression.MaskExpression.StructSelect: ... @property - def list(self) -> global___Expression.MaskExpression.ListSelect: - ... - + def list(self) -> global___Expression.MaskExpression.ListSelect: ... @property - def map(self) -> global___Expression.MaskExpression.MapSelect: - ... - - def __init__(self, *, struct: global___Expression.MaskExpression.StructSelect | None=..., list: global___Expression.MaskExpression.ListSelect | None=..., map: global___Expression.MaskExpression.MapSelect | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['list', b'list', 'map', b'map', 'struct', b'struct', 'type', b'type']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['list', b'list', 'map', b'map', 'struct', b'struct', 'type', b'type']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['type', b'type']) -> typing.Literal['struct', 'list', 'map'] | None: - ... + def map(self) -> global___Expression.MaskExpression.MapSelect: ... + def __init__( + self, + *, + struct: global___Expression.MaskExpression.StructSelect | None = ..., + list: global___Expression.MaskExpression.ListSelect | None = ..., + map: global___Expression.MaskExpression.MapSelect | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["list", b"list", "map", b"map", "struct", b"struct", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["list", b"list", "map", b"map", "struct", b"struct", "type", b"type"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["type", b"type"]) -> typing.Literal["struct", "list", "map"] | None: ... @typing.final class StructSelect(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - STRUCT_ITEMS_FIELD_NUMBER: builtins.int + STRUCT_ITEMS_FIELD_NUMBER: builtins.int @property - def struct_items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.MaskExpression.StructItem]: - ... - - def __init__(self, *, struct_items: collections.abc.Iterable[global___Expression.MaskExpression.StructItem] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['struct_items', b'struct_items']) -> None: - ... + def struct_items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.MaskExpression.StructItem]: ... + def __init__( + self, + *, + struct_items: collections.abc.Iterable[global___Expression.MaskExpression.StructItem] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["struct_items", b"struct_items"]) -> None: ... @typing.final class StructItem(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + FIELD_FIELD_NUMBER: builtins.int CHILD_FIELD_NUMBER: builtins.int field: builtins.int - @property - def child(self) -> global___Expression.MaskExpression.Select: - ... - - def __init__(self, *, field: builtins.int=..., child: global___Expression.MaskExpression.Select | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['child', b'child']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['child', b'child', 'field', b'field']) -> None: - ... + def child(self) -> global___Expression.MaskExpression.Select: ... + def __init__( + self, + *, + field: builtins.int = ..., + child: global___Expression.MaskExpression.Select | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["child", b"child"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["child", b"child", "field", b"field"]) -> None: ... @typing.final class ListSelect(google.protobuf.message.Message): @@ -3765,69 +3789,62 @@ class Expression(google.protobuf.message.Message): @typing.final class ListElement(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + FIELD_FIELD_NUMBER: builtins.int field: builtins.int - - def __init__(self, *, field: builtins.int=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['field', b'field']) -> None: - ... + def __init__( + self, + *, + field: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["field", b"field"]) -> None: ... @typing.final class ListSlice(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + START_FIELD_NUMBER: builtins.int END_FIELD_NUMBER: builtins.int start: builtins.int end: builtins.int + def __init__( + self, + *, + start: builtins.int = ..., + end: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["end", b"end", "start", b"start"]) -> None: ... - def __init__(self, *, start: builtins.int=..., end: builtins.int=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['end', b'end', 'start', b'start']) -> None: - ... ITEM_FIELD_NUMBER: builtins.int SLICE_FIELD_NUMBER: builtins.int - @property - def item(self) -> global___Expression.MaskExpression.ListSelect.ListSelectItem.ListElement: - ... - + def item(self) -> global___Expression.MaskExpression.ListSelect.ListSelectItem.ListElement: ... @property - def slice(self) -> global___Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice: - ... + def slice(self) -> global___Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice: ... + def __init__( + self, + *, + item: global___Expression.MaskExpression.ListSelect.ListSelectItem.ListElement | None = ..., + slice: global___Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["item", b"item", "slice", b"slice", "type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["item", b"item", "slice", b"slice", "type", b"type"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["type", b"type"]) -> typing.Literal["item", "slice"] | None: ... - def __init__(self, *, item: global___Expression.MaskExpression.ListSelect.ListSelectItem.ListElement | None=..., slice: global___Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['item', b'item', 'slice', b'slice', 'type', b'type']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['item', b'item', 'slice', b'slice', 'type', b'type']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['type', b'type']) -> typing.Literal['item', 'slice'] | None: - ... SELECTION_FIELD_NUMBER: builtins.int CHILD_FIELD_NUMBER: builtins.int - @property - def selection(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.MaskExpression.ListSelect.ListSelectItem]: - ... - + def selection(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.MaskExpression.ListSelect.ListSelectItem]: ... @property - def child(self) -> global___Expression.MaskExpression.Select: - ... - - def __init__(self, *, selection: collections.abc.Iterable[global___Expression.MaskExpression.ListSelect.ListSelectItem] | None=..., child: global___Expression.MaskExpression.Select | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['child', b'child']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['child', b'child', 'selection', b'selection']) -> None: - ... + def child(self) -> global___Expression.MaskExpression.Select: ... + def __init__( + self, + *, + selection: collections.abc.Iterable[global___Expression.MaskExpression.ListSelect.ListSelectItem] | None = ..., + child: global___Expression.MaskExpression.Select | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["child", b"child"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["child", b"child", "selection", b"selection"]) -> None: ... @typing.final class MapSelect(google.protobuf.message.Message): @@ -3836,75 +3853,69 @@ class Expression(google.protobuf.message.Message): @typing.final class MapKey(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + MAP_KEY_FIELD_NUMBER: builtins.int map_key: builtins.str - - def __init__(self, *, map_key: builtins.str=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['map_key', b'map_key']) -> None: - ... + def __init__( + self, + *, + map_key: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["map_key", b"map_key"]) -> None: ... @typing.final class MapKeyExpression(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + MAP_KEY_EXPRESSION_FIELD_NUMBER: builtins.int map_key_expression: builtins.str + def __init__( + self, + *, + map_key_expression: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["map_key_expression", b"map_key_expression"]) -> None: ... - def __init__(self, *, map_key_expression: builtins.str=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['map_key_expression', b'map_key_expression']) -> None: - ... KEY_FIELD_NUMBER: builtins.int EXPRESSION_FIELD_NUMBER: builtins.int CHILD_FIELD_NUMBER: builtins.int - @property - def key(self) -> global___Expression.MaskExpression.MapSelect.MapKey: - ... - + def key(self) -> global___Expression.MaskExpression.MapSelect.MapKey: ... @property - def expression(self) -> global___Expression.MaskExpression.MapSelect.MapKeyExpression: - ... - + def expression(self) -> global___Expression.MaskExpression.MapSelect.MapKeyExpression: ... @property - def child(self) -> global___Expression.MaskExpression.Select: - ... + def child(self) -> global___Expression.MaskExpression.Select: ... + def __init__( + self, + *, + key: global___Expression.MaskExpression.MapSelect.MapKey | None = ..., + expression: global___Expression.MaskExpression.MapSelect.MapKeyExpression | None = ..., + child: global___Expression.MaskExpression.Select | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["child", b"child", "expression", b"expression", "key", b"key", "select", b"select"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["child", b"child", "expression", b"expression", "key", b"key", "select", b"select"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["select", b"select"]) -> typing.Literal["key", "expression"] | None: ... - def __init__(self, *, key: global___Expression.MaskExpression.MapSelect.MapKey | None=..., expression: global___Expression.MaskExpression.MapSelect.MapKeyExpression | None=..., child: global___Expression.MaskExpression.Select | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['child', b'child', 'expression', b'expression', 'key', b'key', 'select', b'select']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['child', b'child', 'expression', b'expression', 'key', b'key', 'select', b'select']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['select', b'select']) -> typing.Literal['key', 'expression'] | None: - ... SELECT_FIELD_NUMBER: builtins.int MAINTAIN_SINGULAR_STRUCT_FIELD_NUMBER: builtins.int maintain_singular_struct: builtins.bool - @property - def select(self) -> global___Expression.MaskExpression.StructSelect: - ... - - def __init__(self, *, select: global___Expression.MaskExpression.StructSelect | None=..., maintain_singular_struct: builtins.bool=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['select', b'select']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['maintain_singular_struct', b'maintain_singular_struct', 'select', b'select']) -> None: - ... + def select(self) -> global___Expression.MaskExpression.StructSelect: ... + def __init__( + self, + *, + select: global___Expression.MaskExpression.StructSelect | None = ..., + maintain_singular_struct: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["select", b"select"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["maintain_singular_struct", b"maintain_singular_struct", "select", b"select"]) -> None: ... @typing.final class FieldReference(google.protobuf.message.Message): """A reference to an inner part of a complex object. Can reference reference a single element or a masked version of elements """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final @@ -3912,70 +3923,67 @@ class Expression(google.protobuf.message.Message): """Singleton that expresses this FieldReference is rooted off the root incoming record type """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__(self) -> None: - ... + def __init__( + self, + ) -> None: ... @typing.final class OuterReference(google.protobuf.message.Message): """A root reference for the outer relation's subquery""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + STEPS_OUT_FIELD_NUMBER: builtins.int steps_out: builtins.int - "number of subquery boundaries to traverse up for this field's reference\n\n This value must be >= 1\n " + """number of subquery boundaries to traverse up for this field's reference - def __init__(self, *, steps_out: builtins.int=...) -> None: - ... + This value must be >= 1 + """ + def __init__( + self, + *, + steps_out: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["steps_out", b"steps_out"]) -> None: ... - def ClearField(self, field_name: typing.Literal['steps_out', b'steps_out']) -> None: - ... DIRECT_REFERENCE_FIELD_NUMBER: builtins.int MASKED_REFERENCE_FIELD_NUMBER: builtins.int EXPRESSION_FIELD_NUMBER: builtins.int ROOT_REFERENCE_FIELD_NUMBER: builtins.int OUTER_REFERENCE_FIELD_NUMBER: builtins.int - @property - def direct_reference(self) -> global___Expression.ReferenceSegment: - ... - + def direct_reference(self) -> global___Expression.ReferenceSegment: ... @property - def masked_reference(self) -> global___Expression.MaskExpression: - ... - + def masked_reference(self) -> global___Expression.MaskExpression: ... @property - def expression(self) -> global___Expression: - ... - + def expression(self) -> global___Expression: ... @property - def root_reference(self) -> global___Expression.FieldReference.RootReference: - ... - + def root_reference(self) -> global___Expression.FieldReference.RootReference: ... @property - def outer_reference(self) -> global___Expression.FieldReference.OuterReference: - ... - - def __init__(self, *, direct_reference: global___Expression.ReferenceSegment | None=..., masked_reference: global___Expression.MaskExpression | None=..., expression: global___Expression | None=..., root_reference: global___Expression.FieldReference.RootReference | None=..., outer_reference: global___Expression.FieldReference.OuterReference | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['direct_reference', b'direct_reference', 'expression', b'expression', 'masked_reference', b'masked_reference', 'outer_reference', b'outer_reference', 'reference_type', b'reference_type', 'root_reference', b'root_reference', 'root_type', b'root_type']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['direct_reference', b'direct_reference', 'expression', b'expression', 'masked_reference', b'masked_reference', 'outer_reference', b'outer_reference', 'reference_type', b'reference_type', 'root_reference', b'root_reference', 'root_type', b'root_type']) -> None: - ... - + def outer_reference(self) -> global___Expression.FieldReference.OuterReference: ... + def __init__( + self, + *, + direct_reference: global___Expression.ReferenceSegment | None = ..., + masked_reference: global___Expression.MaskExpression | None = ..., + expression: global___Expression | None = ..., + root_reference: global___Expression.FieldReference.RootReference | None = ..., + outer_reference: global___Expression.FieldReference.OuterReference | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["direct_reference", b"direct_reference", "expression", b"expression", "masked_reference", b"masked_reference", "outer_reference", b"outer_reference", "reference_type", b"reference_type", "root_reference", b"root_reference", "root_type", b"root_type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["direct_reference", b"direct_reference", "expression", b"expression", "masked_reference", b"masked_reference", "outer_reference", b"outer_reference", "reference_type", b"reference_type", "root_reference", b"root_reference", "root_type", b"root_type"]) -> None: ... @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['reference_type', b'reference_type']) -> typing.Literal['direct_reference', 'masked_reference'] | None: - ... - + def WhichOneof(self, oneof_group: typing.Literal["reference_type", b"reference_type"]) -> typing.Literal["direct_reference", "masked_reference"] | None: ... @typing.overload - def WhichOneof(self, oneof_group: typing.Literal['root_type', b'root_type']) -> typing.Literal['expression', 'root_reference', 'outer_reference'] | None: - ... + def WhichOneof(self, oneof_group: typing.Literal["root_type", b"root_type"]) -> typing.Literal["expression", "root_reference", "outer_reference"] | None: ... @typing.final class Subquery(google.protobuf.message.Message): """Subquery relation expression""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final @@ -3983,21 +3991,19 @@ class Expression(google.protobuf.message.Message): """A subquery with one row and one column. This is often an aggregate though not required to be. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor - INPUT_FIELD_NUMBER: builtins.int + INPUT_FIELD_NUMBER: builtins.int @property - def input(self) -> global___Rel: - ... - - def __init__(self, *, input: global___Rel | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['input', b'input']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['input', b'input']) -> None: - ... + def input(self) -> global___Rel: ... + def __init__( + self, + *, + input: global___Rel | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["input", b"input"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["input", b"input"]) -> None: ... @typing.final class InPredicate(google.protobuf.message.Message): @@ -4009,66 +4015,61 @@ class Expression(google.protobuf.message.Message): x IN (SELECT * FROM t) (x, y) IN (SELECT a, b FROM t) """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + NEEDLES_FIELD_NUMBER: builtins.int HAYSTACK_FIELD_NUMBER: builtins.int - @property - def needles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: - ... - + def needles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: ... @property - def haystack(self) -> global___Rel: - ... - - def __init__(self, *, needles: collections.abc.Iterable[global___Expression] | None=..., haystack: global___Rel | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['haystack', b'haystack']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['haystack', b'haystack', 'needles', b'needles']) -> None: - ... + def haystack(self) -> global___Rel: ... + def __init__( + self, + *, + needles: collections.abc.Iterable[global___Expression] | None = ..., + haystack: global___Rel | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["haystack", b"haystack"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["haystack", b"haystack", "needles", b"needles"]) -> None: ... @typing.final class SetPredicate(google.protobuf.message.Message): """A predicate over a set of rows in the form of a subquery EXISTS and UNIQUE are common SQL forms of this operation. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _PredicateOp: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _PredicateOpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Expression.Subquery.SetPredicate._PredicateOp.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - PREDICATE_OP_UNSPECIFIED: Expression.Subquery.SetPredicate._PredicateOp.ValueType - PREDICATE_OP_EXISTS: Expression.Subquery.SetPredicate._PredicateOp.ValueType - PREDICATE_OP_UNIQUE: Expression.Subquery.SetPredicate._PredicateOp.ValueType - - class PredicateOp(_PredicateOp, metaclass=_PredicateOpEnumTypeWrapper): - ... - PREDICATE_OP_UNSPECIFIED: Expression.Subquery.SetPredicate.PredicateOp.ValueType - PREDICATE_OP_EXISTS: Expression.Subquery.SetPredicate.PredicateOp.ValueType - PREDICATE_OP_UNIQUE: Expression.Subquery.SetPredicate.PredicateOp.ValueType + PREDICATE_OP_UNSPECIFIED: Expression.Subquery.SetPredicate._PredicateOp.ValueType # 0 + PREDICATE_OP_EXISTS: Expression.Subquery.SetPredicate._PredicateOp.ValueType # 1 + PREDICATE_OP_UNIQUE: Expression.Subquery.SetPredicate._PredicateOp.ValueType # 2 + + class PredicateOp(_PredicateOp, metaclass=_PredicateOpEnumTypeWrapper): ... + PREDICATE_OP_UNSPECIFIED: Expression.Subquery.SetPredicate.PredicateOp.ValueType # 0 + PREDICATE_OP_EXISTS: Expression.Subquery.SetPredicate.PredicateOp.ValueType # 1 + PREDICATE_OP_UNIQUE: Expression.Subquery.SetPredicate.PredicateOp.ValueType # 2 + PREDICATE_OP_FIELD_NUMBER: builtins.int TUPLES_FIELD_NUMBER: builtins.int predicate_op: global___Expression.Subquery.SetPredicate.PredicateOp.ValueType - 'TODO: should allow expressions' - + """TODO: should allow expressions""" @property - def tuples(self) -> global___Rel: - ... - - def __init__(self, *, predicate_op: global___Expression.Subquery.SetPredicate.PredicateOp.ValueType=..., tuples: global___Rel | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['tuples', b'tuples']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['predicate_op', b'predicate_op', 'tuples', b'tuples']) -> None: - ... + def tuples(self) -> global___Rel: ... + def __init__( + self, + *, + predicate_op: global___Expression.Subquery.SetPredicate.PredicateOp.ValueType = ..., + tuples: global___Rel | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["tuples", b"tuples"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["predicate_op", b"predicate_op", "tuples", b"tuples"]) -> None: ... @typing.final class SetComparison(google.protobuf.message.Message): @@ -4079,56 +4080,55 @@ class Expression(google.protobuf.message.Message): FROM t1 WHERE x < ANY(SELECT y from t2) """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _ComparisonOp: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _ComparisonOpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Expression.Subquery.SetComparison._ComparisonOp.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - COMPARISON_OP_UNSPECIFIED: Expression.Subquery.SetComparison._ComparisonOp.ValueType - COMPARISON_OP_EQ: Expression.Subquery.SetComparison._ComparisonOp.ValueType - COMPARISON_OP_NE: Expression.Subquery.SetComparison._ComparisonOp.ValueType - COMPARISON_OP_LT: Expression.Subquery.SetComparison._ComparisonOp.ValueType - COMPARISON_OP_GT: Expression.Subquery.SetComparison._ComparisonOp.ValueType - COMPARISON_OP_LE: Expression.Subquery.SetComparison._ComparisonOp.ValueType - COMPARISON_OP_GE: Expression.Subquery.SetComparison._ComparisonOp.ValueType - - class ComparisonOp(_ComparisonOp, metaclass=_ComparisonOpEnumTypeWrapper): - ... - COMPARISON_OP_UNSPECIFIED: Expression.Subquery.SetComparison.ComparisonOp.ValueType - COMPARISON_OP_EQ: Expression.Subquery.SetComparison.ComparisonOp.ValueType - COMPARISON_OP_NE: Expression.Subquery.SetComparison.ComparisonOp.ValueType - COMPARISON_OP_LT: Expression.Subquery.SetComparison.ComparisonOp.ValueType - COMPARISON_OP_GT: Expression.Subquery.SetComparison.ComparisonOp.ValueType - COMPARISON_OP_LE: Expression.Subquery.SetComparison.ComparisonOp.ValueType - COMPARISON_OP_GE: Expression.Subquery.SetComparison.ComparisonOp.ValueType + COMPARISON_OP_UNSPECIFIED: Expression.Subquery.SetComparison._ComparisonOp.ValueType # 0 + COMPARISON_OP_EQ: Expression.Subquery.SetComparison._ComparisonOp.ValueType # 1 + COMPARISON_OP_NE: Expression.Subquery.SetComparison._ComparisonOp.ValueType # 2 + COMPARISON_OP_LT: Expression.Subquery.SetComparison._ComparisonOp.ValueType # 3 + COMPARISON_OP_GT: Expression.Subquery.SetComparison._ComparisonOp.ValueType # 4 + COMPARISON_OP_LE: Expression.Subquery.SetComparison._ComparisonOp.ValueType # 5 + COMPARISON_OP_GE: Expression.Subquery.SetComparison._ComparisonOp.ValueType # 6 + + class ComparisonOp(_ComparisonOp, metaclass=_ComparisonOpEnumTypeWrapper): ... + COMPARISON_OP_UNSPECIFIED: Expression.Subquery.SetComparison.ComparisonOp.ValueType # 0 + COMPARISON_OP_EQ: Expression.Subquery.SetComparison.ComparisonOp.ValueType # 1 + COMPARISON_OP_NE: Expression.Subquery.SetComparison.ComparisonOp.ValueType # 2 + COMPARISON_OP_LT: Expression.Subquery.SetComparison.ComparisonOp.ValueType # 3 + COMPARISON_OP_GT: Expression.Subquery.SetComparison.ComparisonOp.ValueType # 4 + COMPARISON_OP_LE: Expression.Subquery.SetComparison.ComparisonOp.ValueType # 5 + COMPARISON_OP_GE: Expression.Subquery.SetComparison.ComparisonOp.ValueType # 6 class _ReductionOp: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _ReductionOpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Expression.Subquery.SetComparison._ReductionOp.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - REDUCTION_OP_UNSPECIFIED: Expression.Subquery.SetComparison._ReductionOp.ValueType - REDUCTION_OP_ANY: Expression.Subquery.SetComparison._ReductionOp.ValueType - REDUCTION_OP_ALL: Expression.Subquery.SetComparison._ReductionOp.ValueType - - class ReductionOp(_ReductionOp, metaclass=_ReductionOpEnumTypeWrapper): - ... - REDUCTION_OP_UNSPECIFIED: Expression.Subquery.SetComparison.ReductionOp.ValueType - REDUCTION_OP_ANY: Expression.Subquery.SetComparison.ReductionOp.ValueType - REDUCTION_OP_ALL: Expression.Subquery.SetComparison.ReductionOp.ValueType + REDUCTION_OP_UNSPECIFIED: Expression.Subquery.SetComparison._ReductionOp.ValueType # 0 + REDUCTION_OP_ANY: Expression.Subquery.SetComparison._ReductionOp.ValueType # 1 + REDUCTION_OP_ALL: Expression.Subquery.SetComparison._ReductionOp.ValueType # 2 + + class ReductionOp(_ReductionOp, metaclass=_ReductionOpEnumTypeWrapper): ... + REDUCTION_OP_UNSPECIFIED: Expression.Subquery.SetComparison.ReductionOp.ValueType # 0 + REDUCTION_OP_ANY: Expression.Subquery.SetComparison.ReductionOp.ValueType # 1 + REDUCTION_OP_ALL: Expression.Subquery.SetComparison.ReductionOp.ValueType # 2 + REDUCTION_OP_FIELD_NUMBER: builtins.int COMPARISON_OP_FIELD_NUMBER: builtins.int LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int reduction_op: global___Expression.Subquery.SetComparison.ReductionOp.ValueType - 'ANY or ALL' + """ANY or ALL""" comparison_op: global___Expression.Subquery.SetComparison.ComparisonOp.ValueType - 'A comparison operator' - + """A comparison operator""" @property def left(self) -> global___Expression: """left side of the expression""" @@ -4137,19 +4137,21 @@ class Expression(google.protobuf.message.Message): def right(self) -> global___Rel: """right side of the expression""" - def __init__(self, *, reduction_op: global___Expression.Subquery.SetComparison.ReductionOp.ValueType=..., comparison_op: global___Expression.Subquery.SetComparison.ComparisonOp.ValueType=..., left: global___Expression | None=..., right: global___Rel | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['left', b'left', 'right', b'right']) -> builtins.bool: - ... + def __init__( + self, + *, + reduction_op: global___Expression.Subquery.SetComparison.ReductionOp.ValueType = ..., + comparison_op: global___Expression.Subquery.SetComparison.ComparisonOp.ValueType = ..., + left: global___Expression | None = ..., + right: global___Rel | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["left", b"left", "right", b"right"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["comparison_op", b"comparison_op", "left", b"left", "reduction_op", b"reduction_op", "right", b"right"]) -> None: ... - def ClearField(self, field_name: typing.Literal['comparison_op', b'comparison_op', 'left', b'left', 'reduction_op', b'reduction_op', 'right', b'right']) -> None: - ... SCALAR_FIELD_NUMBER: builtins.int IN_PREDICATE_FIELD_NUMBER: builtins.int SET_PREDICATE_FIELD_NUMBER: builtins.int SET_COMPARISON_FIELD_NUMBER: builtins.int - @property def scalar(self) -> global___Expression.Subquery.Scalar: """Scalar subquery""" @@ -4166,17 +4168,18 @@ class Expression(google.protobuf.message.Message): def set_comparison(self) -> global___Expression.Subquery.SetComparison: """ANY/ALL predicate""" - def __init__(self, *, scalar: global___Expression.Subquery.Scalar | None=..., in_predicate: global___Expression.Subquery.InPredicate | None=..., set_predicate: global___Expression.Subquery.SetPredicate | None=..., set_comparison: global___Expression.Subquery.SetComparison | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['in_predicate', b'in_predicate', 'scalar', b'scalar', 'set_comparison', b'set_comparison', 'set_predicate', b'set_predicate', 'subquery_type', b'subquery_type']) -> builtins.bool: - ... + def __init__( + self, + *, + scalar: global___Expression.Subquery.Scalar | None = ..., + in_predicate: global___Expression.Subquery.InPredicate | None = ..., + set_predicate: global___Expression.Subquery.SetPredicate | None = ..., + set_comparison: global___Expression.Subquery.SetComparison | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["in_predicate", b"in_predicate", "scalar", b"scalar", "set_comparison", b"set_comparison", "set_predicate", b"set_predicate", "subquery_type", b"subquery_type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["in_predicate", b"in_predicate", "scalar", b"scalar", "set_comparison", b"set_comparison", "set_predicate", b"set_predicate", "subquery_type", b"subquery_type"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["subquery_type", b"subquery_type"]) -> typing.Literal["scalar", "in_predicate", "set_predicate", "set_comparison"] | None: ... - def ClearField(self, field_name: typing.Literal['in_predicate', b'in_predicate', 'scalar', b'scalar', 'set_comparison', b'set_comparison', 'set_predicate', b'set_predicate', 'subquery_type', b'subquery_type']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['subquery_type', b'subquery_type']) -> typing.Literal['scalar', 'in_predicate', 'set_predicate', 'set_comparison'] | None: - ... LITERAL_FIELD_NUMBER: builtins.int SELECTION_FIELD_NUMBER: builtins.int SCALAR_FUNCTION_FIELD_NUMBER: builtins.int @@ -4190,55 +4193,30 @@ class Expression(google.protobuf.message.Message): NESTED_FIELD_NUMBER: builtins.int DYNAMIC_PARAMETER_FIELD_NUMBER: builtins.int ENUM_FIELD_NUMBER: builtins.int - @property - def literal(self) -> global___Expression.Literal: - ... - + def literal(self) -> global___Expression.Literal: ... @property - def selection(self) -> global___Expression.FieldReference: - ... - + def selection(self) -> global___Expression.FieldReference: ... @property - def scalar_function(self) -> global___Expression.ScalarFunction: - ... - + def scalar_function(self) -> global___Expression.ScalarFunction: ... @property - def window_function(self) -> global___Expression.WindowFunction: - ... - + def window_function(self) -> global___Expression.WindowFunction: ... @property - def if_then(self) -> global___Expression.IfThen: - ... - + def if_then(self) -> global___Expression.IfThen: ... @property - def switch_expression(self) -> global___Expression.SwitchExpression: - ... - + def switch_expression(self) -> global___Expression.SwitchExpression: ... @property - def singular_or_list(self) -> global___Expression.SingularOrList: - ... - + def singular_or_list(self) -> global___Expression.SingularOrList: ... @property - def multi_or_list(self) -> global___Expression.MultiOrList: - ... - + def multi_or_list(self) -> global___Expression.MultiOrList: ... @property - def cast(self) -> global___Expression.Cast: - ... - + def cast(self) -> global___Expression.Cast: ... @property - def subquery(self) -> global___Expression.Subquery: - ... - + def subquery(self) -> global___Expression.Subquery: ... @property - def nested(self) -> global___Expression.Nested: - ... - + def nested(self) -> global___Expression.Nested: ... @property - def dynamic_parameter(self) -> global___DynamicParameter: - ... - + def dynamic_parameter(self) -> global___DynamicParameter: ... @property def enum(self) -> global___Expression.Enum: """deprecated: enum literals are only sensible in the context of @@ -4246,17 +4224,27 @@ class Expression(google.protobuf.message.Message): used """ - def __init__(self, *, literal: global___Expression.Literal | None=..., selection: global___Expression.FieldReference | None=..., scalar_function: global___Expression.ScalarFunction | None=..., window_function: global___Expression.WindowFunction | None=..., if_then: global___Expression.IfThen | None=..., switch_expression: global___Expression.SwitchExpression | None=..., singular_or_list: global___Expression.SingularOrList | None=..., multi_or_list: global___Expression.MultiOrList | None=..., cast: global___Expression.Cast | None=..., subquery: global___Expression.Subquery | None=..., nested: global___Expression.Nested | None=..., dynamic_parameter: global___DynamicParameter | None=..., enum: global___Expression.Enum | None=...) -> None: - ... + def __init__( + self, + *, + literal: global___Expression.Literal | None = ..., + selection: global___Expression.FieldReference | None = ..., + scalar_function: global___Expression.ScalarFunction | None = ..., + window_function: global___Expression.WindowFunction | None = ..., + if_then: global___Expression.IfThen | None = ..., + switch_expression: global___Expression.SwitchExpression | None = ..., + singular_or_list: global___Expression.SingularOrList | None = ..., + multi_or_list: global___Expression.MultiOrList | None = ..., + cast: global___Expression.Cast | None = ..., + subquery: global___Expression.Subquery | None = ..., + nested: global___Expression.Nested | None = ..., + dynamic_parameter: global___DynamicParameter | None = ..., + enum: global___Expression.Enum | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["cast", b"cast", "dynamic_parameter", b"dynamic_parameter", "enum", b"enum", "if_then", b"if_then", "literal", b"literal", "multi_or_list", b"multi_or_list", "nested", b"nested", "rex_type", b"rex_type", "scalar_function", b"scalar_function", "selection", b"selection", "singular_or_list", b"singular_or_list", "subquery", b"subquery", "switch_expression", b"switch_expression", "window_function", b"window_function"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["cast", b"cast", "dynamic_parameter", b"dynamic_parameter", "enum", b"enum", "if_then", b"if_then", "literal", b"literal", "multi_or_list", b"multi_or_list", "nested", b"nested", "rex_type", b"rex_type", "scalar_function", b"scalar_function", "selection", b"selection", "singular_or_list", b"singular_or_list", "subquery", b"subquery", "switch_expression", b"switch_expression", "window_function", b"window_function"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["rex_type", b"rex_type"]) -> typing.Literal["literal", "selection", "scalar_function", "window_function", "if_then", "switch_expression", "singular_or_list", "multi_or_list", "cast", "subquery", "nested", "dynamic_parameter", "enum"] | None: ... - def HasField(self, field_name: typing.Literal['cast', b'cast', 'dynamic_parameter', b'dynamic_parameter', 'enum', b'enum', 'if_then', b'if_then', 'literal', b'literal', 'multi_or_list', b'multi_or_list', 'nested', b'nested', 'rex_type', b'rex_type', 'scalar_function', b'scalar_function', 'selection', b'selection', 'singular_or_list', b'singular_or_list', 'subquery', b'subquery', 'switch_expression', b'switch_expression', 'window_function', b'window_function']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['cast', b'cast', 'dynamic_parameter', b'dynamic_parameter', 'enum', b'enum', 'if_then', b'if_then', 'literal', b'literal', 'multi_or_list', b'multi_or_list', 'nested', b'nested', 'rex_type', b'rex_type', 'scalar_function', b'scalar_function', 'selection', b'selection', 'singular_or_list', b'singular_or_list', 'subquery', b'subquery', 'switch_expression', b'switch_expression', 'window_function', b'window_function']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['rex_type', b'rex_type']) -> typing.Literal['literal', 'selection', 'scalar_function', 'window_function', 'if_then', 'switch_expression', 'singular_or_list', 'multi_or_list', 'cast', 'subquery', 'nested', 'dynamic_parameter', 'enum'] | None: - ... global___Expression = Expression @typing.final @@ -4264,101 +4252,104 @@ class DynamicParameter(google.protobuf.message.Message): """Expression that represents a dynamic parameter. Dynamic parameters are identified by a surrogate key within a plan. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_FIELD_NUMBER: builtins.int PARAMETER_REFERENCE_FIELD_NUMBER: builtins.int parameter_reference: builtins.int - 'The surrogate key used within a plan to reference a specific parameter binding.' - + """The surrogate key used within a plan to reference a specific parameter binding.""" @property def type(self) -> proto.type_pb2.Type: """The type of the dynamic parameter.""" - def __init__(self, *, type: proto.type_pb2.Type | None=..., parameter_reference: builtins.int=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: - ... + def __init__( + self, + *, + type: proto.type_pb2.Type | None = ..., + parameter_reference: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["parameter_reference", b"parameter_reference", "type", b"type"]) -> None: ... - def ClearField(self, field_name: typing.Literal['parameter_reference', b'parameter_reference', 'type', b'type']) -> None: - ... global___DynamicParameter = DynamicParameter @typing.final class SortField(google.protobuf.message.Message): """The description of a field to sort on (including the direction of sorting and null semantics)""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _SortDirection: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _SortDirectionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SortField._SortDirection.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - SORT_DIRECTION_UNSPECIFIED: SortField._SortDirection.ValueType - SORT_DIRECTION_ASC_NULLS_FIRST: SortField._SortDirection.ValueType - SORT_DIRECTION_ASC_NULLS_LAST: SortField._SortDirection.ValueType - SORT_DIRECTION_DESC_NULLS_FIRST: SortField._SortDirection.ValueType - SORT_DIRECTION_DESC_NULLS_LAST: SortField._SortDirection.ValueType - SORT_DIRECTION_CLUSTERED: SortField._SortDirection.ValueType - - class SortDirection(_SortDirection, metaclass=_SortDirectionEnumTypeWrapper): - ... - SORT_DIRECTION_UNSPECIFIED: SortField.SortDirection.ValueType - SORT_DIRECTION_ASC_NULLS_FIRST: SortField.SortDirection.ValueType - SORT_DIRECTION_ASC_NULLS_LAST: SortField.SortDirection.ValueType - SORT_DIRECTION_DESC_NULLS_FIRST: SortField.SortDirection.ValueType - SORT_DIRECTION_DESC_NULLS_LAST: SortField.SortDirection.ValueType - SORT_DIRECTION_CLUSTERED: SortField.SortDirection.ValueType + SORT_DIRECTION_UNSPECIFIED: SortField._SortDirection.ValueType # 0 + SORT_DIRECTION_ASC_NULLS_FIRST: SortField._SortDirection.ValueType # 1 + SORT_DIRECTION_ASC_NULLS_LAST: SortField._SortDirection.ValueType # 2 + SORT_DIRECTION_DESC_NULLS_FIRST: SortField._SortDirection.ValueType # 3 + SORT_DIRECTION_DESC_NULLS_LAST: SortField._SortDirection.ValueType # 4 + SORT_DIRECTION_CLUSTERED: SortField._SortDirection.ValueType # 5 + + class SortDirection(_SortDirection, metaclass=_SortDirectionEnumTypeWrapper): ... + SORT_DIRECTION_UNSPECIFIED: SortField.SortDirection.ValueType # 0 + SORT_DIRECTION_ASC_NULLS_FIRST: SortField.SortDirection.ValueType # 1 + SORT_DIRECTION_ASC_NULLS_LAST: SortField.SortDirection.ValueType # 2 + SORT_DIRECTION_DESC_NULLS_FIRST: SortField.SortDirection.ValueType # 3 + SORT_DIRECTION_DESC_NULLS_LAST: SortField.SortDirection.ValueType # 4 + SORT_DIRECTION_CLUSTERED: SortField.SortDirection.ValueType # 5 + EXPR_FIELD_NUMBER: builtins.int DIRECTION_FIELD_NUMBER: builtins.int COMPARISON_FUNCTION_REFERENCE_FIELD_NUMBER: builtins.int direction: global___SortField.SortDirection.ValueType comparison_function_reference: builtins.int - @property - def expr(self) -> global___Expression: - ... - - def __init__(self, *, expr: global___Expression | None=..., direction: global___SortField.SortDirection.ValueType=..., comparison_function_reference: builtins.int=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['comparison_function_reference', b'comparison_function_reference', 'direction', b'direction', 'expr', b'expr', 'sort_kind', b'sort_kind']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['comparison_function_reference', b'comparison_function_reference', 'direction', b'direction', 'expr', b'expr', 'sort_kind', b'sort_kind']) -> None: - ... + def expr(self) -> global___Expression: ... + def __init__( + self, + *, + expr: global___Expression | None = ..., + direction: global___SortField.SortDirection.ValueType = ..., + comparison_function_reference: builtins.int = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["comparison_function_reference", b"comparison_function_reference", "direction", b"direction", "expr", b"expr", "sort_kind", b"sort_kind"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["comparison_function_reference", b"comparison_function_reference", "direction", b"direction", "expr", b"expr", "sort_kind", b"sort_kind"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["sort_kind", b"sort_kind"]) -> typing.Literal["direction", "comparison_function_reference"] | None: ... - def WhichOneof(self, oneof_group: typing.Literal['sort_kind', b'sort_kind']) -> typing.Literal['direction', 'comparison_function_reference'] | None: - ... global___SortField = SortField @typing.final class AggregateFunction(google.protobuf.message.Message): """An aggregate function.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor class _AggregationInvocation: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _AggregationInvocationEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AggregateFunction._AggregationInvocation.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - AGGREGATION_INVOCATION_UNSPECIFIED: AggregateFunction._AggregationInvocation.ValueType - 'This default value implies AGGREGATION_INVOCATION_ALL.' - AGGREGATION_INVOCATION_ALL: AggregateFunction._AggregationInvocation.ValueType - 'Use all values in the aggregation calculation.' - AGGREGATION_INVOCATION_DISTINCT: AggregateFunction._AggregationInvocation.ValueType - 'Use only distinct values in the aggregation calculation.' + AGGREGATION_INVOCATION_UNSPECIFIED: AggregateFunction._AggregationInvocation.ValueType # 0 + """This default value implies AGGREGATION_INVOCATION_ALL.""" + AGGREGATION_INVOCATION_ALL: AggregateFunction._AggregationInvocation.ValueType # 1 + """Use all values in the aggregation calculation.""" + AGGREGATION_INVOCATION_DISTINCT: AggregateFunction._AggregationInvocation.ValueType # 2 + """Use only distinct values in the aggregation calculation.""" class AggregationInvocation(_AggregationInvocation, metaclass=_AggregationInvocationEnumTypeWrapper): """Method in which equivalent records are merged before being aggregated.""" - AGGREGATION_INVOCATION_UNSPECIFIED: AggregateFunction.AggregationInvocation.ValueType - 'This default value implies AGGREGATION_INVOCATION_ALL.' - AGGREGATION_INVOCATION_ALL: AggregateFunction.AggregationInvocation.ValueType - 'Use all values in the aggregation calculation.' - AGGREGATION_INVOCATION_DISTINCT: AggregateFunction.AggregationInvocation.ValueType - 'Use only distinct values in the aggregation calculation.' + + AGGREGATION_INVOCATION_UNSPECIFIED: AggregateFunction.AggregationInvocation.ValueType # 0 + """This default value implies AGGREGATION_INVOCATION_ALL.""" + AGGREGATION_INVOCATION_ALL: AggregateFunction.AggregationInvocation.ValueType # 1 + """Use all values in the aggregation calculation.""" + AGGREGATION_INVOCATION_DISTINCT: AggregateFunction.AggregationInvocation.ValueType # 2 + """Use only distinct values in the aggregation calculation.""" + FUNCTION_REFERENCE_FIELD_NUMBER: builtins.int ARGUMENTS_FIELD_NUMBER: builtins.int OPTIONS_FIELD_NUMBER: builtins.int @@ -4368,12 +4359,19 @@ class AggregateFunction(google.protobuf.message.Message): INVOCATION_FIELD_NUMBER: builtins.int ARGS_FIELD_NUMBER: builtins.int function_reference: builtins.int - 'Points to a function_anchor defined in this plan, which must refer\n to an aggregate function in the associated YAML file. Required; 0 is\n considered to be a valid anchor/reference.\n ' + """Points to a function_anchor defined in this plan, which must refer + to an aggregate function in the associated YAML file. Required; 0 is + considered to be a valid anchor/reference. + """ phase: global___AggregationPhase.ValueType - 'Describes which part of the aggregation to perform within the context of\n distributed algorithms. Required. Must be set to INITIAL_TO_RESULT for\n aggregate functions that are not decomposable.\n ' + """Describes which part of the aggregation to perform within the context of + distributed algorithms. Required. Must be set to INITIAL_TO_RESULT for + aggregate functions that are not decomposable. + """ invocation: global___AggregateFunction.AggregationInvocation.ValueType - 'Specifies whether equivalent records are merged before being aggregated.\n Optional, defaults to AGGREGATION_INVOCATION_ALL.\n ' - + """Specifies whether equivalent records are merged before being aggregated. + Optional, defaults to AGGREGATION_INVOCATION_ALL. + """ @property def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionArgument]: """The arguments to be bound to the function. This must have exactly the @@ -4418,14 +4416,21 @@ class AggregateFunction(google.protobuf.message.Message): def args(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: """deprecated; use arguments instead""" - def __init__(self, *, function_reference: builtins.int=..., arguments: collections.abc.Iterable[global___FunctionArgument] | None=..., options: collections.abc.Iterable[global___FunctionOption] | None=..., output_type: proto.type_pb2.Type | None=..., phase: global___AggregationPhase.ValueType=..., sorts: collections.abc.Iterable[global___SortField] | None=..., invocation: global___AggregateFunction.AggregationInvocation.ValueType=..., args: collections.abc.Iterable[global___Expression] | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['output_type', b'output_type']) -> builtins.bool: - ... + def __init__( + self, + *, + function_reference: builtins.int = ..., + arguments: collections.abc.Iterable[global___FunctionArgument] | None = ..., + options: collections.abc.Iterable[global___FunctionOption] | None = ..., + output_type: proto.type_pb2.Type | None = ..., + phase: global___AggregationPhase.ValueType = ..., + sorts: collections.abc.Iterable[global___SortField] | None = ..., + invocation: global___AggregateFunction.AggregationInvocation.ValueType = ..., + args: collections.abc.Iterable[global___Expression] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["output_type", b"output_type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["args", b"args", "arguments", b"arguments", "function_reference", b"function_reference", "invocation", b"invocation", "options", b"options", "output_type", b"output_type", "phase", b"phase", "sorts", b"sorts"]) -> None: ... - def ClearField(self, field_name: typing.Literal['args', b'args', 'arguments', b'arguments', 'function_reference', b'function_reference', 'invocation', b'invocation', 'options', b'options', 'output_type', b'output_type', 'phase', b'phase', 'sorts', b'sorts']) -> None: - ... global___AggregateFunction = AggregateFunction @typing.final @@ -4433,13 +4438,16 @@ class ReferenceRel(google.protobuf.message.Message): """This rel is used to create references, in case we refer to a RelRoot field names will be ignored """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + SUBTREE_ORDINAL_FIELD_NUMBER: builtins.int subtree_ordinal: builtins.int - - def __init__(self, *, subtree_ordinal: builtins.int=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['subtree_ordinal', b'subtree_ordinal']) -> None: - ... -global___ReferenceRel = ReferenceRel \ No newline at end of file + def __init__( + self, + *, + subtree_ordinal: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["subtree_ordinal", b"subtree_ordinal"]) -> None: ... + +global___ReferenceRel = ReferenceRel diff --git a/src/substrait/gen/proto/capabilities_pb2.py b/src/substrait/gen/proto/capabilities_pb2.py index 94872f4..6a32bfa 100644 --- a/src/substrait/gen/proto/capabilities_pb2.py +++ b/src/substrait/gen/proto/capabilities_pb2.py @@ -1,16 +1,39 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: proto/capabilities.proto +# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 5, + '', + 'proto/capabilities.proto' +) +# @@protoc_insertion_point(imports) + _sym_db = _symbol_database.Default() -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18proto/capabilities.proto\x12\x05proto"\xe8\x02\n\x0cCapabilities\x12-\n\x12substrait_versions\x18\x01 \x03(\tR\x11substraitVersions\x12?\n\x1cadvanced_extension_type_urls\x18\x02 \x03(\tR\x19advancedExtensionTypeUrls\x12P\n\x11simple_extensions\x18\x03 \x03(\x0b2#.proto.Capabilities.SimpleExtensionR\x10simpleExtensions\x1a\x95\x01\n\x0fSimpleExtension\x12\x10\n\x03uri\x18\x01 \x01(\tR\x03uri\x12#\n\rfunction_keys\x18\x02 \x03(\tR\x0cfunctionKeys\x12\x1b\n\ttype_keys\x18\x03 \x03(\tR\x08typeKeys\x12.\n\x13type_variation_keys\x18\x04 \x03(\tR\x11typeVariationKeysB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.capabilities_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _CAPABILITIES._serialized_start = 36 - _CAPABILITIES._serialized_end = 396 - _CAPABILITIES_SIMPLEEXTENSION._serialized_start = 247 - _CAPABILITIES_SIMPLEEXTENSION._serialized_end = 396 \ No newline at end of file + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18proto/capabilities.proto\x12\x05proto\"\xe8\x02\n\x0c\x43\x61pabilities\x12-\n\x12substrait_versions\x18\x01 \x03(\tR\x11substraitVersions\x12?\n\x1c\x61\x64vanced_extension_type_urls\x18\x02 \x03(\tR\x19\x61\x64vancedExtensionTypeUrls\x12P\n\x11simple_extensions\x18\x03 \x03(\x0b\x32#.proto.Capabilities.SimpleExtensionR\x10simpleExtensions\x1a\x95\x01\n\x0fSimpleExtension\x12\x10\n\x03uri\x18\x01 \x01(\tR\x03uri\x12#\n\rfunction_keys\x18\x02 \x03(\tR\x0c\x66unctionKeys\x12\x1b\n\ttype_keys\x18\x03 \x03(\tR\x08typeKeys\x12.\n\x13type_variation_keys\x18\x04 \x03(\tR\x11typeVariationKeysB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.capabilities_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' + _globals['_CAPABILITIES']._serialized_start=36 + _globals['_CAPABILITIES']._serialized_end=396 + _globals['_CAPABILITIES_SIMPLEEXTENSION']._serialized_start=247 + _globals['_CAPABILITIES_SIMPLEEXTENSION']._serialized_end=396 +# @@protoc_insertion_point(module_scope) diff --git a/src/substrait/gen/proto/capabilities_pb2.pyi b/src/substrait/gen/proto/capabilities_pb2.pyi index 48419e9..8ee88b1 100644 --- a/src/substrait/gen/proto/capabilities_pb2.pyi +++ b/src/substrait/gen/proto/capabilities_pb2.pyi @@ -2,49 +2,50 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" + import builtins import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.message import typing + DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final class Capabilities(google.protobuf.message.Message): """Defines a set of Capabilities that a system (producer or consumer) supports.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class SimpleExtension(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + URI_FIELD_NUMBER: builtins.int FUNCTION_KEYS_FIELD_NUMBER: builtins.int TYPE_KEYS_FIELD_NUMBER: builtins.int TYPE_VARIATION_KEYS_FIELD_NUMBER: builtins.int uri: builtins.str - @property - def function_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - ... - + def function_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... @property - def type_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - ... - + def type_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... @property - def type_variation_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - ... + def type_variation_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + uri: builtins.str = ..., + function_keys: collections.abc.Iterable[builtins.str] | None = ..., + type_keys: collections.abc.Iterable[builtins.str] | None = ..., + type_variation_keys: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["function_keys", b"function_keys", "type_keys", b"type_keys", "type_variation_keys", b"type_variation_keys", "uri", b"uri"]) -> None: ... - def __init__(self, *, uri: builtins.str=..., function_keys: collections.abc.Iterable[builtins.str] | None=..., type_keys: collections.abc.Iterable[builtins.str] | None=..., type_variation_keys: collections.abc.Iterable[builtins.str] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['function_keys', b'function_keys', 'type_keys', b'type_keys', 'type_variation_keys', b'type_variation_keys', 'uri', b'uri']) -> None: - ... SUBSTRAIT_VERSIONS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_TYPE_URLS_FIELD_NUMBER: builtins.int SIMPLE_EXTENSIONS_FIELD_NUMBER: builtins.int - @property def substrait_versions(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """List of Substrait versions this system supports""" @@ -59,9 +60,13 @@ class Capabilities(google.protobuf.message.Message): def simple_extensions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Capabilities.SimpleExtension]: """list of simple extensions this system supports.""" - def __init__(self, *, substrait_versions: collections.abc.Iterable[builtins.str] | None=..., advanced_extension_type_urls: collections.abc.Iterable[builtins.str] | None=..., simple_extensions: collections.abc.Iterable[global___Capabilities.SimpleExtension] | None=...) -> None: - ... + def __init__( + self, + *, + substrait_versions: collections.abc.Iterable[builtins.str] | None = ..., + advanced_extension_type_urls: collections.abc.Iterable[builtins.str] | None = ..., + simple_extensions: collections.abc.Iterable[global___Capabilities.SimpleExtension] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["advanced_extension_type_urls", b"advanced_extension_type_urls", "simple_extensions", b"simple_extensions", "substrait_versions", b"substrait_versions"]) -> None: ... - def ClearField(self, field_name: typing.Literal['advanced_extension_type_urls', b'advanced_extension_type_urls', 'simple_extensions', b'simple_extensions', 'substrait_versions', b'substrait_versions']) -> None: - ... -global___Capabilities = Capabilities \ No newline at end of file +global___Capabilities = Capabilities diff --git a/src/substrait/gen/proto/extended_expression_pb2.py b/src/substrait/gen/proto/extended_expression_pb2.py index e2293a0..2097a29 100644 --- a/src/substrait/gen/proto/extended_expression_pb2.py +++ b/src/substrait/gen/proto/extended_expression_pb2.py @@ -1,22 +1,45 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: proto/extended_expression.proto +# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 5, + '', + 'proto/extended_expression.proto' +) +# @@protoc_insertion_point(imports) + _sym_db = _symbol_database.Default() -from ..proto import algebra_pb2 as proto_dot_algebra__pb2 -from ..proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 -from ..proto import plan_pb2 as proto_dot_plan__pb2 -from ..proto import type_pb2 as proto_dot_type__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fproto/extended_expression.proto\x12\x05proto\x1a\x13proto/algebra.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/plan.proto\x1a\x10proto/type.proto"\xb0\x01\n\x13ExpressionReference\x123\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionH\x00R\nexpression\x124\n\x07measure\x18\x02 \x01(\x0b2\x18.proto.AggregateFunctionH\x00R\x07measure\x12!\n\x0coutput_names\x18\x03 \x03(\tR\x0boutputNamesB\x0b\n\texpr_type"\xa4\x04\n\x12ExtendedExpression\x12(\n\x07version\x18\x07 \x01(\x0b2\x0e.proto.VersionR\x07version\x12O\n\x0eextension_uris\x18\x01 \x03(\x0b2$.proto.extensions.SimpleExtensionURIB\x02\x18\x01R\rextensionUris\x12K\n\x0eextension_urns\x18\x08 \x03(\x0b2$.proto.extensions.SimpleExtensionURNR\rextensionUrns\x12L\n\nextensions\x18\x02 \x03(\x0b2,.proto.extensions.SimpleExtensionDeclarationR\nextensions\x12?\n\rreferred_expr\x18\x03 \x03(\x0b2\x1a.proto.ExpressionReferenceR\x0creferredExpr\x123\n\x0bbase_schema\x18\x04 \x01(\x0b2\x12.proto.NamedStructR\nbaseSchema\x12T\n\x13advanced_extensions\x18\x05 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x12advancedExtensions\x12,\n\x12expected_type_urls\x18\x06 \x03(\tR\x10expectedTypeUrlsB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.extended_expression_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _EXTENDEDEXPRESSION.fields_by_name['extension_uris']._options = None - _EXTENDEDEXPRESSION.fields_by_name['extension_uris']._serialized_options = b'\x18\x01' - _EXPRESSIONREFERENCE._serialized_start = 135 - _EXPRESSIONREFERENCE._serialized_end = 311 - _EXTENDEDEXPRESSION._serialized_start = 314 - _EXTENDEDEXPRESSION._serialized_end = 862 \ No newline at end of file + + +from proto import algebra_pb2 as proto_dot_algebra__pb2 +from proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 +from proto import plan_pb2 as proto_dot_plan__pb2 +from proto import type_pb2 as proto_dot_type__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fproto/extended_expression.proto\x12\x05proto\x1a\x13proto/algebra.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/plan.proto\x1a\x10proto/type.proto\"\xb0\x01\n\x13\x45xpressionReference\x12\x33\n\nexpression\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionH\x00R\nexpression\x12\x34\n\x07measure\x18\x02 \x01(\x0b\x32\x18.proto.AggregateFunctionH\x00R\x07measure\x12!\n\x0coutput_names\x18\x03 \x03(\tR\x0boutputNamesB\x0b\n\texpr_type\"\xa4\x04\n\x12\x45xtendedExpression\x12(\n\x07version\x18\x07 \x01(\x0b\x32\x0e.proto.VersionR\x07version\x12O\n\x0e\x65xtension_uris\x18\x01 \x03(\x0b\x32$.proto.extensions.SimpleExtensionURIB\x02\x18\x01R\rextensionUris\x12K\n\x0e\x65xtension_urns\x18\x08 \x03(\x0b\x32$.proto.extensions.SimpleExtensionURNR\rextensionUrns\x12L\n\nextensions\x18\x02 \x03(\x0b\x32,.proto.extensions.SimpleExtensionDeclarationR\nextensions\x12?\n\rreferred_expr\x18\x03 \x03(\x0b\x32\x1a.proto.ExpressionReferenceR\x0creferredExpr\x12\x33\n\x0b\x62\x61se_schema\x18\x04 \x01(\x0b\x32\x12.proto.NamedStructR\nbaseSchema\x12T\n\x13\x61\x64vanced_extensions\x18\x05 \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x12\x61\x64vancedExtensions\x12,\n\x12\x65xpected_type_urls\x18\x06 \x03(\tR\x10\x65xpectedTypeUrlsB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.extended_expression_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' + _globals['_EXTENDEDEXPRESSION'].fields_by_name['extension_uris']._loaded_options = None + _globals['_EXTENDEDEXPRESSION'].fields_by_name['extension_uris']._serialized_options = b'\030\001' + _globals['_EXPRESSIONREFERENCE']._serialized_start=135 + _globals['_EXPRESSIONREFERENCE']._serialized_end=311 + _globals['_EXTENDEDEXPRESSION']._serialized_start=314 + _globals['_EXTENDEDEXPRESSION']._serialized_end=862 +# @@protoc_insertion_point(module_scope) diff --git a/src/substrait/gen/proto/extended_expression_pb2.pyi b/src/substrait/gen/proto/extended_expression_pb2.pyi index 27829c8..365cee7 100644 --- a/src/substrait/gen/proto/extended_expression_pb2.pyi +++ b/src/substrait/gen/proto/extended_expression_pb2.pyi @@ -2,45 +2,46 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" + import builtins import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.message -from .. import proto +import proto.algebra_pb2 +import proto.extensions.extensions_pb2 +import proto.plan_pb2 +import proto.type_pb2 import typing + DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final class ExpressionReference(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + EXPRESSION_FIELD_NUMBER: builtins.int MEASURE_FIELD_NUMBER: builtins.int OUTPUT_NAMES_FIELD_NUMBER: builtins.int - @property - def expression(self) -> proto.algebra_pb2.Expression: - ... - + def expression(self) -> proto.algebra_pb2.Expression: ... @property - def measure(self) -> proto.algebra_pb2.AggregateFunction: - ... - + def measure(self) -> proto.algebra_pb2.AggregateFunction: ... @property def output_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """Field names in depth-first order""" - def __init__(self, *, expression: proto.algebra_pb2.Expression | None=..., measure: proto.algebra_pb2.AggregateFunction | None=..., output_names: collections.abc.Iterable[builtins.str] | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['expr_type', b'expr_type', 'expression', b'expression', 'measure', b'measure']) -> builtins.bool: - ... + def __init__( + self, + *, + expression: proto.algebra_pb2.Expression | None = ..., + measure: proto.algebra_pb2.AggregateFunction | None = ..., + output_names: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["expr_type", b"expr_type", "expression", b"expression", "measure", b"measure"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["expr_type", b"expr_type", "expression", b"expression", "measure", b"measure", "output_names", b"output_names"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["expr_type", b"expr_type"]) -> typing.Literal["expression", "measure"] | None: ... - def ClearField(self, field_name: typing.Literal['expr_type', b'expr_type', 'expression', b'expression', 'measure', b'measure', 'output_names', b'output_names']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['expr_type', b'expr_type']) -> typing.Literal['expression', 'measure'] | None: - ... global___ExpressionReference = ExpressionReference @typing.final @@ -48,7 +49,9 @@ class ExtendedExpression(google.protobuf.message.Message): """Describe a set of operations to complete. For compactness sake, identifiers are normalized at the plan level. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + VERSION_FIELD_NUMBER: builtins.int EXTENSION_URIS_FIELD_NUMBER: builtins.int EXTENSION_URNS_FIELD_NUMBER: builtins.int @@ -57,7 +60,6 @@ class ExtendedExpression(google.protobuf.message.Message): BASE_SCHEMA_FIELD_NUMBER: builtins.int ADVANCED_EXTENSIONS_FIELD_NUMBER: builtins.int EXPECTED_TYPE_URLS_FIELD_NUMBER: builtins.int - @property def version(self) -> proto.plan_pb2.Version: """Substrait version of the expression. Optional up to 0.17.0, required for later @@ -85,9 +87,7 @@ class ExtendedExpression(google.protobuf.message.Message): """one or more expression trees with same order in plan rel""" @property - def base_schema(self) -> proto.type_pb2.NamedStruct: - ... - + def base_schema(self) -> proto.type_pb2.NamedStruct: ... @property def advanced_extensions(self) -> proto.extensions.extensions_pb2.AdvancedExtension: """additional extensions associated with this expression.""" @@ -101,12 +101,19 @@ class ExtendedExpression(google.protobuf.message.Message): one or more message types defined here are unknown. """ - def __init__(self, *, version: proto.plan_pb2.Version | None=..., extension_uris: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURI] | None=..., extension_urns: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURN] | None=..., extensions: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionDeclaration] | None=..., referred_expr: collections.abc.Iterable[global___ExpressionReference] | None=..., base_schema: proto.type_pb2.NamedStruct | None=..., advanced_extensions: proto.extensions.extensions_pb2.AdvancedExtension | None=..., expected_type_urls: collections.abc.Iterable[builtins.str] | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['advanced_extensions', b'advanced_extensions', 'base_schema', b'base_schema', 'version', b'version']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extensions', b'advanced_extensions', 'base_schema', b'base_schema', 'expected_type_urls', b'expected_type_urls', 'extension_uris', b'extension_uris', 'extension_urns', b'extension_urns', 'extensions', b'extensions', 'referred_expr', b'referred_expr', 'version', b'version']) -> None: - ... -global___ExtendedExpression = ExtendedExpression \ No newline at end of file + def __init__( + self, + *, + version: proto.plan_pb2.Version | None = ..., + extension_uris: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURI] | None = ..., + extension_urns: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURN] | None = ..., + extensions: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionDeclaration] | None = ..., + referred_expr: collections.abc.Iterable[global___ExpressionReference] | None = ..., + base_schema: proto.type_pb2.NamedStruct | None = ..., + advanced_extensions: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + expected_type_urls: collections.abc.Iterable[builtins.str] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extensions", b"advanced_extensions", "base_schema", b"base_schema", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extensions", b"advanced_extensions", "base_schema", b"base_schema", "expected_type_urls", b"expected_type_urls", "extension_uris", b"extension_uris", "extension_urns", b"extension_urns", "extensions", b"extensions", "referred_expr", b"referred_expr", "version", b"version"]) -> None: ... + +global___ExtendedExpression = ExtendedExpression diff --git a/src/substrait/gen/proto/extensions/__init__.py b/src/substrait/gen/proto/extensions/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/substrait/gen/proto/extensions/__init__.pyi b/src/substrait/gen/proto/extensions/__init__.pyi deleted file mode 100644 index 296a60a..0000000 --- a/src/substrait/gen/proto/extensions/__init__.pyi +++ /dev/null @@ -1 +0,0 @@ -from . import extensions_pb2 diff --git a/src/substrait/gen/proto/extensions/extensions_pb2.py b/src/substrait/gen/proto/extensions/extensions_pb2.py index efd2e87..fbdc0e2 100644 --- a/src/substrait/gen/proto/extensions/extensions_pb2.py +++ b/src/substrait/gen/proto/extensions/extensions_pb2.py @@ -1,35 +1,58 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: proto/extensions/extensions.proto +# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 5, + '', + 'proto/extensions/extensions.proto' +) +# @@protoc_insertion_point(imports) + _sym_db = _symbol_database.Default() + + from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!proto/extensions/extensions.proto\x12\x10proto.extensions\x1a\x19google/protobuf/any.proto"\\\n\x12SimpleExtensionURI\x120\n\x14extension_uri_anchor\x18\x01 \x01(\rR\x12extensionUriAnchor\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri:\x02\x18\x01"X\n\x12SimpleExtensionURN\x120\n\x14extension_urn_anchor\x18\x01 \x01(\rR\x12extensionUrnAnchor\x12\x10\n\x03urn\x18\x02 \x01(\tR\x03urn"\xdc\x07\n\x1aSimpleExtensionDeclaration\x12c\n\x0eextension_type\x18\x01 \x01(\x0b2:.proto.extensions.SimpleExtensionDeclaration.ExtensionTypeH\x00R\rextensionType\x12\x7f\n\x18extension_type_variation\x18\x02 \x01(\x0b2C.proto.extensions.SimpleExtensionDeclaration.ExtensionTypeVariationH\x00R\x16extensionTypeVariation\x12o\n\x12extension_function\x18\x03 \x01(\x0b2>.proto.extensions.SimpleExtensionDeclaration.ExtensionFunctionH\x00R\x11extensionFunction\x1a\xb8\x01\n\rExtensionType\x12:\n\x17extension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15extensionUriReference\x126\n\x17extension_urn_reference\x18\x04 \x01(\rR\x15extensionUrnReference\x12\x1f\n\x0btype_anchor\x18\x02 \x01(\rR\ntypeAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\xd4\x01\n\x16ExtensionTypeVariation\x12:\n\x17extension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15extensionUriReference\x126\n\x17extension_urn_reference\x18\x04 \x01(\rR\x15extensionUrnReference\x122\n\x15type_variation_anchor\x18\x02 \x01(\rR\x13typeVariationAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\xc4\x01\n\x11ExtensionFunction\x12:\n\x17extension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15extensionUriReference\x126\n\x17extension_urn_reference\x18\x04 \x01(\rR\x15extensionUrnReference\x12\'\n\x0ffunction_anchor\x18\x02 \x01(\rR\x0efunctionAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04nameB\x0e\n\x0cmapping_type"\x85\x01\n\x11AdvancedExtension\x128\n\x0coptimization\x18\x01 \x03(\x0b2\x14.google.protobuf.AnyR\x0coptimization\x126\n\x0benhancement\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x0benhancementB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.extensions.extensions_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _SIMPLEEXTENSIONURI._options = None - _SIMPLEEXTENSIONURI._serialized_options = b'\x18\x01' - _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE.fields_by_name['extension_uri_reference']._options = None - _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE.fields_by_name['extension_uri_reference']._serialized_options = b'\x18\x01' - _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION.fields_by_name['extension_uri_reference']._options = None - _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION.fields_by_name['extension_uri_reference']._serialized_options = b'\x18\x01' - _SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION.fields_by_name['extension_uri_reference']._options = None - _SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION.fields_by_name['extension_uri_reference']._serialized_options = b'\x18\x01' - _SIMPLEEXTENSIONURI._serialized_start = 82 - _SIMPLEEXTENSIONURI._serialized_end = 174 - _SIMPLEEXTENSIONURN._serialized_start = 176 - _SIMPLEEXTENSIONURN._serialized_end = 264 - _SIMPLEEXTENSIONDECLARATION._serialized_start = 267 - _SIMPLEEXTENSIONDECLARATION._serialized_end = 1255 - _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE._serialized_start = 641 - _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE._serialized_end = 825 - _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION._serialized_start = 828 - _SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION._serialized_end = 1040 - _SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION._serialized_start = 1043 - _SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION._serialized_end = 1239 - _ADVANCEDEXTENSION._serialized_start = 1258 - _ADVANCEDEXTENSION._serialized_end = 1391 \ No newline at end of file + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!proto/extensions/extensions.proto\x12\x10proto.extensions\x1a\x19google/protobuf/any.proto\"\\\n\x12SimpleExtensionURI\x12\x30\n\x14\x65xtension_uri_anchor\x18\x01 \x01(\rR\x12\x65xtensionUriAnchor\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri:\x02\x18\x01\"X\n\x12SimpleExtensionURN\x12\x30\n\x14\x65xtension_urn_anchor\x18\x01 \x01(\rR\x12\x65xtensionUrnAnchor\x12\x10\n\x03urn\x18\x02 \x01(\tR\x03urn\"\xdc\x07\n\x1aSimpleExtensionDeclaration\x12\x63\n\x0e\x65xtension_type\x18\x01 \x01(\x0b\x32:.proto.extensions.SimpleExtensionDeclaration.ExtensionTypeH\x00R\rextensionType\x12\x7f\n\x18\x65xtension_type_variation\x18\x02 \x01(\x0b\x32\x43.proto.extensions.SimpleExtensionDeclaration.ExtensionTypeVariationH\x00R\x16\x65xtensionTypeVariation\x12o\n\x12\x65xtension_function\x18\x03 \x01(\x0b\x32>.proto.extensions.SimpleExtensionDeclaration.ExtensionFunctionH\x00R\x11\x65xtensionFunction\x1a\xb8\x01\n\rExtensionType\x12:\n\x17\x65xtension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15\x65xtensionUriReference\x12\x36\n\x17\x65xtension_urn_reference\x18\x04 \x01(\rR\x15\x65xtensionUrnReference\x12\x1f\n\x0btype_anchor\x18\x02 \x01(\rR\ntypeAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\xd4\x01\n\x16\x45xtensionTypeVariation\x12:\n\x17\x65xtension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15\x65xtensionUriReference\x12\x36\n\x17\x65xtension_urn_reference\x18\x04 \x01(\rR\x15\x65xtensionUrnReference\x12\x32\n\x15type_variation_anchor\x18\x02 \x01(\rR\x13typeVariationAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\xc4\x01\n\x11\x45xtensionFunction\x12:\n\x17\x65xtension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15\x65xtensionUriReference\x12\x36\n\x17\x65xtension_urn_reference\x18\x04 \x01(\rR\x15\x65xtensionUrnReference\x12\'\n\x0f\x66unction_anchor\x18\x02 \x01(\rR\x0e\x66unctionAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04nameB\x0e\n\x0cmapping_type\"\x85\x01\n\x11\x41\x64vancedExtension\x12\x38\n\x0coptimization\x18\x01 \x03(\x0b\x32\x14.google.protobuf.AnyR\x0coptimization\x12\x36\n\x0b\x65nhancement\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyR\x0b\x65nhancementB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.extensions.extensions_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' + _globals['_SIMPLEEXTENSIONURI']._loaded_options = None + _globals['_SIMPLEEXTENSIONURI']._serialized_options = b'\030\001' + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE'].fields_by_name['extension_uri_reference']._loaded_options = None + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE'].fields_by_name['extension_uri_reference']._serialized_options = b'\030\001' + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION'].fields_by_name['extension_uri_reference']._loaded_options = None + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION'].fields_by_name['extension_uri_reference']._serialized_options = b'\030\001' + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION'].fields_by_name['extension_uri_reference']._loaded_options = None + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION'].fields_by_name['extension_uri_reference']._serialized_options = b'\030\001' + _globals['_SIMPLEEXTENSIONURI']._serialized_start=82 + _globals['_SIMPLEEXTENSIONURI']._serialized_end=174 + _globals['_SIMPLEEXTENSIONURN']._serialized_start=176 + _globals['_SIMPLEEXTENSIONURN']._serialized_end=264 + _globals['_SIMPLEEXTENSIONDECLARATION']._serialized_start=267 + _globals['_SIMPLEEXTENSIONDECLARATION']._serialized_end=1255 + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE']._serialized_start=641 + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE']._serialized_end=825 + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION']._serialized_start=828 + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION']._serialized_end=1040 + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION']._serialized_start=1043 + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION']._serialized_end=1239 + _globals['_ADVANCEDEXTENSION']._serialized_start=1258 + _globals['_ADVANCEDEXTENSION']._serialized_end=1391 +# @@protoc_insertion_point(module_scope) diff --git a/src/substrait/gen/proto/extensions/extensions_pb2.pyi b/src/substrait/gen/proto/extensions/extensions_pb2.pyi index 5b1765c..5fa39e1 100644 --- a/src/substrait/gen/proto/extensions/extensions_pb2.pyi +++ b/src/substrait/gen/proto/extensions/extensions_pb2.pyi @@ -2,6 +2,7 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" + import builtins import collections.abc import google.protobuf.any_pb2 @@ -9,41 +10,57 @@ import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.message import typing + DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final class SimpleExtensionURI(google.protobuf.message.Message): """This message is deprecated, use SimpleExtensionURN moving forwards""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + EXTENSION_URI_ANCHOR_FIELD_NUMBER: builtins.int URI_FIELD_NUMBER: builtins.int extension_uri_anchor: builtins.int - 'A surrogate key used in the context of a single plan used to reference the\n URI associated with an extension.\n ' + """A surrogate key used in the context of a single plan used to reference the + URI associated with an extension. + """ uri: builtins.str - 'The URI where this extension YAML can be retrieved. This is the "namespace"\n of this extension.\n ' - - def __init__(self, *, extension_uri_anchor: builtins.int=..., uri: builtins.str=...) -> None: - ... + """The URI where this extension YAML can be retrieved. This is the "namespace" + of this extension. + """ + def __init__( + self, + *, + extension_uri_anchor: builtins.int = ..., + uri: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["extension_uri_anchor", b"extension_uri_anchor", "uri", b"uri"]) -> None: ... - def ClearField(self, field_name: typing.Literal['extension_uri_anchor', b'extension_uri_anchor', 'uri', b'uri']) -> None: - ... global___SimpleExtensionURI = SimpleExtensionURI @typing.final class SimpleExtensionURN(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + EXTENSION_URN_ANCHOR_FIELD_NUMBER: builtins.int URN_FIELD_NUMBER: builtins.int extension_urn_anchor: builtins.int - 'A surrogate key used in the context of a single plan used to reference the\n URN associated with an extension.\n ' + """A surrogate key used in the context of a single plan used to reference the + URN associated with an extension. + """ urn: builtins.str - 'The extension URN that uniquely identifies this extension. This must follow the\n format extension:: and serves as the "namespace" of this extension.\n ' - - def __init__(self, *, extension_urn_anchor: builtins.int=..., urn: builtins.str=...) -> None: - ... + """The extension URN that uniquely identifies this extension. This must follow the + format extension:: and serves as the "namespace" of this extension. + """ + def __init__( + self, + *, + extension_urn_anchor: builtins.int = ..., + urn: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["extension_urn_anchor", b"extension_urn_anchor", "urn", b"urn"]) -> None: ... - def ClearField(self, field_name: typing.Literal['extension_urn_anchor', b'extension_urn_anchor', 'urn', b'urn']) -> None: - ... global___SimpleExtensionURN = SimpleExtensionURN @typing.final @@ -51,101 +68,130 @@ class SimpleExtensionDeclaration(google.protobuf.message.Message): """Describes a mapping between a specific extension entity and the uri/urn where that extension can be found. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class ExtensionType(google.protobuf.message.Message): """Describes a Type""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + EXTENSION_URI_REFERENCE_FIELD_NUMBER: builtins.int EXTENSION_URN_REFERENCE_FIELD_NUMBER: builtins.int TYPE_ANCHOR_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int extension_uri_reference: builtins.int - 'references the extension_uri_anchor defined for a specific extension URI.\n this is now deprecated and extension_urn_reference should be used instead.\n ' + """references the extension_uri_anchor defined for a specific extension URI. + this is now deprecated and extension_urn_reference should be used instead. + """ extension_urn_reference: builtins.int - 'references the extension_urn_anchor defined for a specific extension URN.\n If both extension_urn_reference and extension_uri_reference are present,\n extension_urn_reference takes precedence.\n ' + """references the extension_urn_anchor defined for a specific extension URN. + If both extension_urn_reference and extension_uri_reference are present, + extension_urn_reference takes precedence. + """ type_anchor: builtins.int - 'A surrogate key used in the context of a single plan to reference a\n specific extension type\n ' + """A surrogate key used in the context of a single plan to reference a + specific extension type + """ name: builtins.str - 'the name of the type in the defined extension YAML.' - - def __init__(self, *, extension_uri_reference: builtins.int=..., extension_urn_reference: builtins.int=..., type_anchor: builtins.int=..., name: builtins.str=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['extension_uri_reference', b'extension_uri_reference', 'extension_urn_reference', b'extension_urn_reference', 'name', b'name', 'type_anchor', b'type_anchor']) -> None: - ... + """the name of the type in the defined extension YAML.""" + def __init__( + self, + *, + extension_uri_reference: builtins.int = ..., + extension_urn_reference: builtins.int = ..., + type_anchor: builtins.int = ..., + name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["extension_uri_reference", b"extension_uri_reference", "extension_urn_reference", b"extension_urn_reference", "name", b"name", "type_anchor", b"type_anchor"]) -> None: ... @typing.final class ExtensionTypeVariation(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + EXTENSION_URI_REFERENCE_FIELD_NUMBER: builtins.int EXTENSION_URN_REFERENCE_FIELD_NUMBER: builtins.int TYPE_VARIATION_ANCHOR_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int extension_uri_reference: builtins.int - 'references the extension_uri_anchor defined for a specific extension URI.\n this is now deprecated and extension_urn_reference should be used instead.\n ' + """references the extension_uri_anchor defined for a specific extension URI. + this is now deprecated and extension_urn_reference should be used instead. + """ extension_urn_reference: builtins.int - 'references the extension_urn_anchor defined for a specific extension URN.\n If both extension_urn_reference and extension_uri_reference are present,\n extension_urn_reference takes precedence.\n ' + """references the extension_urn_anchor defined for a specific extension URN. + If both extension_urn_reference and extension_uri_reference are present, + extension_urn_reference takes precedence. + """ type_variation_anchor: builtins.int - 'A surrogate key used in the context of a single plan to reference a\n specific type variation\n ' + """A surrogate key used in the context of a single plan to reference a + specific type variation + """ name: builtins.str - 'the name of the type in the defined extension YAML.' - - def __init__(self, *, extension_uri_reference: builtins.int=..., extension_urn_reference: builtins.int=..., type_variation_anchor: builtins.int=..., name: builtins.str=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['extension_uri_reference', b'extension_uri_reference', 'extension_urn_reference', b'extension_urn_reference', 'name', b'name', 'type_variation_anchor', b'type_variation_anchor']) -> None: - ... + """the name of the type in the defined extension YAML.""" + def __init__( + self, + *, + extension_uri_reference: builtins.int = ..., + extension_urn_reference: builtins.int = ..., + type_variation_anchor: builtins.int = ..., + name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["extension_uri_reference", b"extension_uri_reference", "extension_urn_reference", b"extension_urn_reference", "name", b"name", "type_variation_anchor", b"type_variation_anchor"]) -> None: ... @typing.final class ExtensionFunction(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + EXTENSION_URI_REFERENCE_FIELD_NUMBER: builtins.int EXTENSION_URN_REFERENCE_FIELD_NUMBER: builtins.int FUNCTION_ANCHOR_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int extension_uri_reference: builtins.int - 'references the extension_uri_anchor defined for a specific extension URI.\n this is now deprecated and extension_urn_reference should be used instead.\n ' + """references the extension_uri_anchor defined for a specific extension URI. + this is now deprecated and extension_urn_reference should be used instead. + """ extension_urn_reference: builtins.int - 'references the extension_urn_anchor defined for a specific extension URN.\n If both extension_urn_reference and extension_uri_reference are present,\n extension_urn_reference takes precedence.\n ' + """references the extension_urn_anchor defined for a specific extension URN. + If both extension_urn_reference and extension_uri_reference are present, + extension_urn_reference takes precedence. + """ function_anchor: builtins.int - 'A surrogate key used in the context of a single plan to reference a\n specific function\n ' + """A surrogate key used in the context of a single plan to reference a + specific function + """ name: builtins.str - 'A function signature compound name' - - def __init__(self, *, extension_uri_reference: builtins.int=..., extension_urn_reference: builtins.int=..., function_anchor: builtins.int=..., name: builtins.str=...) -> None: - ... + """A function signature compound name""" + def __init__( + self, + *, + extension_uri_reference: builtins.int = ..., + extension_urn_reference: builtins.int = ..., + function_anchor: builtins.int = ..., + name: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["extension_uri_reference", b"extension_uri_reference", "extension_urn_reference", b"extension_urn_reference", "function_anchor", b"function_anchor", "name", b"name"]) -> None: ... - def ClearField(self, field_name: typing.Literal['extension_uri_reference', b'extension_uri_reference', 'extension_urn_reference', b'extension_urn_reference', 'function_anchor', b'function_anchor', 'name', b'name']) -> None: - ... EXTENSION_TYPE_FIELD_NUMBER: builtins.int EXTENSION_TYPE_VARIATION_FIELD_NUMBER: builtins.int EXTENSION_FUNCTION_FIELD_NUMBER: builtins.int - @property - def extension_type(self) -> global___SimpleExtensionDeclaration.ExtensionType: - ... - + def extension_type(self) -> global___SimpleExtensionDeclaration.ExtensionType: ... @property - def extension_type_variation(self) -> global___SimpleExtensionDeclaration.ExtensionTypeVariation: - ... - + def extension_type_variation(self) -> global___SimpleExtensionDeclaration.ExtensionTypeVariation: ... @property - def extension_function(self) -> global___SimpleExtensionDeclaration.ExtensionFunction: - ... - - def __init__(self, *, extension_type: global___SimpleExtensionDeclaration.ExtensionType | None=..., extension_type_variation: global___SimpleExtensionDeclaration.ExtensionTypeVariation | None=..., extension_function: global___SimpleExtensionDeclaration.ExtensionFunction | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['extension_function', b'extension_function', 'extension_type', b'extension_type', 'extension_type_variation', b'extension_type_variation', 'mapping_type', b'mapping_type']) -> builtins.bool: - ... + def extension_function(self) -> global___SimpleExtensionDeclaration.ExtensionFunction: ... + def __init__( + self, + *, + extension_type: global___SimpleExtensionDeclaration.ExtensionType | None = ..., + extension_type_variation: global___SimpleExtensionDeclaration.ExtensionTypeVariation | None = ..., + extension_function: global___SimpleExtensionDeclaration.ExtensionFunction | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["extension_function", b"extension_function", "extension_type", b"extension_type", "extension_type_variation", b"extension_type_variation", "mapping_type", b"mapping_type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["extension_function", b"extension_function", "extension_type", b"extension_type", "extension_type_variation", b"extension_type_variation", "mapping_type", b"mapping_type"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["mapping_type", b"mapping_type"]) -> typing.Literal["extension_type", "extension_type_variation", "extension_function"] | None: ... - def ClearField(self, field_name: typing.Literal['extension_function', b'extension_function', 'extension_type', b'extension_type', 'extension_type_variation', b'extension_type_variation', 'mapping_type', b'mapping_type']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['mapping_type', b'mapping_type']) -> typing.Literal['extension_type', 'extension_type_variation', 'extension_function'] | None: - ... global___SimpleExtensionDeclaration = SimpleExtensionDeclaration @typing.final @@ -153,10 +199,11 @@ class AdvancedExtension(google.protobuf.message.Message): """A generic object that can be used to embed additional extension information into the serialized substrait plan. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + OPTIMIZATION_FIELD_NUMBER: builtins.int ENHANCEMENT_FIELD_NUMBER: builtins.int - @property def optimization(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.any_pb2.Any]: """An optimization is helpful information that don't influence semantics. May @@ -167,12 +214,13 @@ class AdvancedExtension(google.protobuf.message.Message): def enhancement(self) -> google.protobuf.any_pb2.Any: """An enhancement alter semantics. Cannot be ignored by a consumer.""" - def __init__(self, *, optimization: collections.abc.Iterable[google.protobuf.any_pb2.Any] | None=..., enhancement: google.protobuf.any_pb2.Any | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['enhancement', b'enhancement']) -> builtins.bool: - ... + def __init__( + self, + *, + optimization: collections.abc.Iterable[google.protobuf.any_pb2.Any] | None = ..., + enhancement: google.protobuf.any_pb2.Any | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["enhancement", b"enhancement"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["enhancement", b"enhancement", "optimization", b"optimization"]) -> None: ... - def ClearField(self, field_name: typing.Literal['enhancement', b'enhancement', 'optimization', b'optimization']) -> None: - ... -global___AdvancedExtension = AdvancedExtension \ No newline at end of file +global___AdvancedExtension = AdvancedExtension diff --git a/src/substrait/gen/proto/function_pb2.py b/src/substrait/gen/proto/function_pb2.py index a76dbbd..5d2a418 100644 --- a/src/substrait/gen/proto/function_pb2.py +++ b/src/substrait/gen/proto/function_pb2.py @@ -1,45 +1,68 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: proto/function.proto +# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 5, + '', + 'proto/function.proto' +) +# @@protoc_insertion_point(imports) + _sym_db = _symbol_database.Default() -from ..proto import parameterized_types_pb2 as proto_dot_parameterized__types__pb2 -from ..proto import type_pb2 as proto_dot_type__pb2 -from ..proto import type_expressions_pb2 as proto_dot_type__expressions__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14proto/function.proto\x12\x05proto\x1a\x1fproto/parameterized_types.proto\x1a\x10proto/type.proto\x1a\x1cproto/type_expressions.proto"\xe9\x18\n\x11FunctionSignature\x1a\xb8\x02\n\x10FinalArgVariadic\x12\x19\n\x08min_args\x18\x01 \x01(\x03R\x07minArgs\x12\x19\n\x08max_args\x18\x02 \x01(\x03R\x07maxArgs\x12`\n\x0bconsistency\x18\x03 \x01(\x0e2>.proto.FunctionSignature.FinalArgVariadic.ParameterConsistencyR\x0bconsistency"\x8b\x01\n\x14ParameterConsistency\x12%\n!PARAMETER_CONSISTENCY_UNSPECIFIED\x10\x00\x12$\n PARAMETER_CONSISTENCY_CONSISTENT\x10\x01\x12&\n"PARAMETER_CONSISTENCY_INCONSISTENT\x10\x02\x1a\x10\n\x0eFinalArgNormal\x1a\xb0\x04\n\x06Scalar\x12?\n\targuments\x18\x02 \x03(\x0b2!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x03(\tR\x04name\x12F\n\x0bdescription\x18\x04 \x01(\x0b2$.proto.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12<\n\x0boutput_type\x18\t \x01(\x0b2\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\n \x01(\x0b2).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12A\n\x06normal\x18\x0b \x01(\x0b2\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12Q\n\x0fimplementations\x18\x0c \x03(\x0b2\'.proto.FunctionSignature.ImplementationR\x0fimplementationsB\x19\n\x17final_variable_behavior\x1a\xa0\x05\n\tAggregate\x12?\n\targuments\x18\x02 \x03(\x0b2!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12F\n\x0bdescription\x18\x04 \x01(\x0b2$.proto.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12<\n\x0boutput_type\x18\t \x01(\x0b2\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\n \x01(\x0b2).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12A\n\x06normal\x18\x0b \x01(\x0b2\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12\x18\n\x07ordered\x18\x0e \x01(\x08R\x07ordered\x12\x17\n\x07max_set\x18\x0c \x01(\x04R\x06maxSet\x128\n\x11intermediate_type\x18\r \x01(\x0b2\x0b.proto.TypeR\x10intermediateType\x12Q\n\x0fimplementations\x18\x0f \x03(\x0b2\'.proto.FunctionSignature.ImplementationR\x0fimplementationsB\x19\n\x17final_variable_behavior\x1a\xdb\x06\n\x06Window\x12?\n\targuments\x18\x02 \x03(\x0b2!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x03(\tR\x04name\x12F\n\x0bdescription\x18\x04 \x01(\x0b2$.proto.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12H\n\x11intermediate_type\x18\t \x01(\x0b2\x1b.proto.DerivationExpressionR\x10intermediateType\x12<\n\x0boutput_type\x18\n \x01(\x0b2\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\x10 \x01(\x0b2).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12A\n\x06normal\x18\x11 \x01(\x0b2\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12\x18\n\x07ordered\x18\x0b \x01(\x08R\x07ordered\x12\x17\n\x07max_set\x18\x0c \x01(\x04R\x06maxSet\x12K\n\x0bwindow_type\x18\x0e \x01(\x0e2*.proto.FunctionSignature.Window.WindowTypeR\nwindowType\x12Q\n\x0fimplementations\x18\x0f \x03(\x0b2\'.proto.FunctionSignature.ImplementationR\x0fimplementations"_\n\nWindowType\x12\x1b\n\x17WINDOW_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15WINDOW_TYPE_STREAMING\x10\x01\x12\x19\n\x15WINDOW_TYPE_PARTITION\x10\x02B\x19\n\x17final_variable_behavior\x1a=\n\x0bDescription\x12\x1a\n\x08language\x18\x01 \x01(\tR\x08language\x12\x12\n\x04body\x18\x02 \x01(\tR\x04body\x1a\xad\x01\n\x0eImplementation\x12@\n\x04type\x18\x01 \x01(\x0e2,.proto.FunctionSignature.Implementation.TypeR\x04type\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri"G\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11TYPE_WEB_ASSEMBLY\x10\x01\x12\x12\n\x0eTYPE_TRINO_JAR\x10\x02\x1a\xe3\x03\n\x08Argument\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12G\n\x05value\x18\x02 \x01(\x0b2/.proto.FunctionSignature.Argument.ValueArgumentH\x00R\x05value\x12D\n\x04type\x18\x03 \x01(\x0b2..proto.FunctionSignature.Argument.TypeArgumentH\x00R\x04type\x12D\n\x04enum\x18\x04 \x01(\x0b2..proto.FunctionSignature.Argument.EnumArgumentH\x00R\x04enum\x1aY\n\rValueArgument\x12,\n\x04type\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x04type\x12\x1a\n\x08constant\x18\x02 \x01(\x08R\x08constant\x1a<\n\x0cTypeArgument\x12,\n\x04type\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x04type\x1aD\n\x0cEnumArgument\x12\x18\n\x07options\x18\x01 \x03(\tR\x07options\x12\x1a\n\x08optional\x18\x02 \x01(\x08R\x08optionalB\x0f\n\rargument_kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.function_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _FUNCTIONSIGNATURE._serialized_start = 113 - _FUNCTIONSIGNATURE._serialized_end = 3290 - _FUNCTIONSIGNATURE_FINALARGVARIADIC._serialized_start = 135 - _FUNCTIONSIGNATURE_FINALARGVARIADIC._serialized_end = 447 - _FUNCTIONSIGNATURE_FINALARGVARIADIC_PARAMETERCONSISTENCY._serialized_start = 308 - _FUNCTIONSIGNATURE_FINALARGVARIADIC_PARAMETERCONSISTENCY._serialized_end = 447 - _FUNCTIONSIGNATURE_FINALARGNORMAL._serialized_start = 449 - _FUNCTIONSIGNATURE_FINALARGNORMAL._serialized_end = 465 - _FUNCTIONSIGNATURE_SCALAR._serialized_start = 468 - _FUNCTIONSIGNATURE_SCALAR._serialized_end = 1028 - _FUNCTIONSIGNATURE_AGGREGATE._serialized_start = 1031 - _FUNCTIONSIGNATURE_AGGREGATE._serialized_end = 1703 - _FUNCTIONSIGNATURE_WINDOW._serialized_start = 1706 - _FUNCTIONSIGNATURE_WINDOW._serialized_end = 2565 - _FUNCTIONSIGNATURE_WINDOW_WINDOWTYPE._serialized_start = 2443 - _FUNCTIONSIGNATURE_WINDOW_WINDOWTYPE._serialized_end = 2538 - _FUNCTIONSIGNATURE_DESCRIPTION._serialized_start = 2567 - _FUNCTIONSIGNATURE_DESCRIPTION._serialized_end = 2628 - _FUNCTIONSIGNATURE_IMPLEMENTATION._serialized_start = 2631 - _FUNCTIONSIGNATURE_IMPLEMENTATION._serialized_end = 2804 - _FUNCTIONSIGNATURE_IMPLEMENTATION_TYPE._serialized_start = 2733 - _FUNCTIONSIGNATURE_IMPLEMENTATION_TYPE._serialized_end = 2804 - _FUNCTIONSIGNATURE_ARGUMENT._serialized_start = 2807 - _FUNCTIONSIGNATURE_ARGUMENT._serialized_end = 3290 - _FUNCTIONSIGNATURE_ARGUMENT_VALUEARGUMENT._serialized_start = 3052 - _FUNCTIONSIGNATURE_ARGUMENT_VALUEARGUMENT._serialized_end = 3141 - _FUNCTIONSIGNATURE_ARGUMENT_TYPEARGUMENT._serialized_start = 3143 - _FUNCTIONSIGNATURE_ARGUMENT_TYPEARGUMENT._serialized_end = 3203 - _FUNCTIONSIGNATURE_ARGUMENT_ENUMARGUMENT._serialized_start = 3205 - _FUNCTIONSIGNATURE_ARGUMENT_ENUMARGUMENT._serialized_end = 3273 \ No newline at end of file + + +from proto import parameterized_types_pb2 as proto_dot_parameterized__types__pb2 +from proto import type_pb2 as proto_dot_type__pb2 +from proto import type_expressions_pb2 as proto_dot_type__expressions__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14proto/function.proto\x12\x05proto\x1a\x1fproto/parameterized_types.proto\x1a\x10proto/type.proto\x1a\x1cproto/type_expressions.proto\"\xe9\x18\n\x11\x46unctionSignature\x1a\xb8\x02\n\x10\x46inalArgVariadic\x12\x19\n\x08min_args\x18\x01 \x01(\x03R\x07minArgs\x12\x19\n\x08max_args\x18\x02 \x01(\x03R\x07maxArgs\x12`\n\x0b\x63onsistency\x18\x03 \x01(\x0e\x32>.proto.FunctionSignature.FinalArgVariadic.ParameterConsistencyR\x0b\x63onsistency\"\x8b\x01\n\x14ParameterConsistency\x12%\n!PARAMETER_CONSISTENCY_UNSPECIFIED\x10\x00\x12$\n PARAMETER_CONSISTENCY_CONSISTENT\x10\x01\x12&\n\"PARAMETER_CONSISTENCY_INCONSISTENT\x10\x02\x1a\x10\n\x0e\x46inalArgNormal\x1a\xb0\x04\n\x06Scalar\x12?\n\targuments\x18\x02 \x03(\x0b\x32!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x03(\tR\x04name\x12\x46\n\x0b\x64\x65scription\x18\x04 \x01(\x0b\x32$.proto.FunctionSignature.DescriptionR\x0b\x64\x65scription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12<\n\x0boutput_type\x18\t \x01(\x0b\x32\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\n \x01(\x0b\x32).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12\x41\n\x06normal\x18\x0b \x01(\x0b\x32\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12Q\n\x0fimplementations\x18\x0c \x03(\x0b\x32\'.proto.FunctionSignature.ImplementationR\x0fimplementationsB\x19\n\x17\x66inal_variable_behavior\x1a\xa0\x05\n\tAggregate\x12?\n\targuments\x18\x02 \x03(\x0b\x32!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x46\n\x0b\x64\x65scription\x18\x04 \x01(\x0b\x32$.proto.FunctionSignature.DescriptionR\x0b\x64\x65scription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12<\n\x0boutput_type\x18\t \x01(\x0b\x32\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\n \x01(\x0b\x32).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12\x41\n\x06normal\x18\x0b \x01(\x0b\x32\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12\x18\n\x07ordered\x18\x0e \x01(\x08R\x07ordered\x12\x17\n\x07max_set\x18\x0c \x01(\x04R\x06maxSet\x12\x38\n\x11intermediate_type\x18\r \x01(\x0b\x32\x0b.proto.TypeR\x10intermediateType\x12Q\n\x0fimplementations\x18\x0f \x03(\x0b\x32\'.proto.FunctionSignature.ImplementationR\x0fimplementationsB\x19\n\x17\x66inal_variable_behavior\x1a\xdb\x06\n\x06Window\x12?\n\targuments\x18\x02 \x03(\x0b\x32!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x03(\tR\x04name\x12\x46\n\x0b\x64\x65scription\x18\x04 \x01(\x0b\x32$.proto.FunctionSignature.DescriptionR\x0b\x64\x65scription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12H\n\x11intermediate_type\x18\t \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x10intermediateType\x12<\n\x0boutput_type\x18\n \x01(\x0b\x32\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\x10 \x01(\x0b\x32).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12\x41\n\x06normal\x18\x11 \x01(\x0b\x32\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12\x18\n\x07ordered\x18\x0b \x01(\x08R\x07ordered\x12\x17\n\x07max_set\x18\x0c \x01(\x04R\x06maxSet\x12K\n\x0bwindow_type\x18\x0e \x01(\x0e\x32*.proto.FunctionSignature.Window.WindowTypeR\nwindowType\x12Q\n\x0fimplementations\x18\x0f \x03(\x0b\x32\'.proto.FunctionSignature.ImplementationR\x0fimplementations\"_\n\nWindowType\x12\x1b\n\x17WINDOW_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15WINDOW_TYPE_STREAMING\x10\x01\x12\x19\n\x15WINDOW_TYPE_PARTITION\x10\x02\x42\x19\n\x17\x66inal_variable_behavior\x1a=\n\x0b\x44\x65scription\x12\x1a\n\x08language\x18\x01 \x01(\tR\x08language\x12\x12\n\x04\x62ody\x18\x02 \x01(\tR\x04\x62ody\x1a\xad\x01\n\x0eImplementation\x12@\n\x04type\x18\x01 \x01(\x0e\x32,.proto.FunctionSignature.Implementation.TypeR\x04type\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri\"G\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11TYPE_WEB_ASSEMBLY\x10\x01\x12\x12\n\x0eTYPE_TRINO_JAR\x10\x02\x1a\xe3\x03\n\x08\x41rgument\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12G\n\x05value\x18\x02 \x01(\x0b\x32/.proto.FunctionSignature.Argument.ValueArgumentH\x00R\x05value\x12\x44\n\x04type\x18\x03 \x01(\x0b\x32..proto.FunctionSignature.Argument.TypeArgumentH\x00R\x04type\x12\x44\n\x04\x65num\x18\x04 \x01(\x0b\x32..proto.FunctionSignature.Argument.EnumArgumentH\x00R\x04\x65num\x1aY\n\rValueArgument\x12,\n\x04type\x18\x01 \x01(\x0b\x32\x18.proto.ParameterizedTypeR\x04type\x12\x1a\n\x08\x63onstant\x18\x02 \x01(\x08R\x08\x63onstant\x1a<\n\x0cTypeArgument\x12,\n\x04type\x18\x01 \x01(\x0b\x32\x18.proto.ParameterizedTypeR\x04type\x1a\x44\n\x0c\x45numArgument\x12\x18\n\x07options\x18\x01 \x03(\tR\x07options\x12\x1a\n\x08optional\x18\x02 \x01(\x08R\x08optionalB\x0f\n\rargument_kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.function_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' + _globals['_FUNCTIONSIGNATURE']._serialized_start=113 + _globals['_FUNCTIONSIGNATURE']._serialized_end=3290 + _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC']._serialized_start=135 + _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC']._serialized_end=447 + _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC_PARAMETERCONSISTENCY']._serialized_start=308 + _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC_PARAMETERCONSISTENCY']._serialized_end=447 + _globals['_FUNCTIONSIGNATURE_FINALARGNORMAL']._serialized_start=449 + _globals['_FUNCTIONSIGNATURE_FINALARGNORMAL']._serialized_end=465 + _globals['_FUNCTIONSIGNATURE_SCALAR']._serialized_start=468 + _globals['_FUNCTIONSIGNATURE_SCALAR']._serialized_end=1028 + _globals['_FUNCTIONSIGNATURE_AGGREGATE']._serialized_start=1031 + _globals['_FUNCTIONSIGNATURE_AGGREGATE']._serialized_end=1703 + _globals['_FUNCTIONSIGNATURE_WINDOW']._serialized_start=1706 + _globals['_FUNCTIONSIGNATURE_WINDOW']._serialized_end=2565 + _globals['_FUNCTIONSIGNATURE_WINDOW_WINDOWTYPE']._serialized_start=2443 + _globals['_FUNCTIONSIGNATURE_WINDOW_WINDOWTYPE']._serialized_end=2538 + _globals['_FUNCTIONSIGNATURE_DESCRIPTION']._serialized_start=2567 + _globals['_FUNCTIONSIGNATURE_DESCRIPTION']._serialized_end=2628 + _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION']._serialized_start=2631 + _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION']._serialized_end=2804 + _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION_TYPE']._serialized_start=2733 + _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION_TYPE']._serialized_end=2804 + _globals['_FUNCTIONSIGNATURE_ARGUMENT']._serialized_start=2807 + _globals['_FUNCTIONSIGNATURE_ARGUMENT']._serialized_end=3290 + _globals['_FUNCTIONSIGNATURE_ARGUMENT_VALUEARGUMENT']._serialized_start=3052 + _globals['_FUNCTIONSIGNATURE_ARGUMENT_VALUEARGUMENT']._serialized_end=3141 + _globals['_FUNCTIONSIGNATURE_ARGUMENT_TYPEARGUMENT']._serialized_start=3143 + _globals['_FUNCTIONSIGNATURE_ARGUMENT_TYPEARGUMENT']._serialized_end=3203 + _globals['_FUNCTIONSIGNATURE_ARGUMENT_ENUMARGUMENT']._serialized_start=3205 + _globals['_FUNCTIONSIGNATURE_ARGUMENT_ENUMARGUMENT']._serialized_end=3273 +# @@protoc_insertion_point(module_scope) diff --git a/src/substrait/gen/proto/function_pb2.pyi b/src/substrait/gen/proto/function_pb2.pyi index 7ab4c5f..461f234 100644 --- a/src/substrait/gen/proto/function_pb2.pyi +++ b/src/substrait/gen/proto/function_pb2.pyi @@ -2,24 +2,30 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" + import builtins import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.internal.enum_type_wrapper import google.protobuf.message -from .. import proto +import proto.parameterized_types_pb2 +import proto.type_expressions_pb2 +import proto.type_pb2 import sys import typing + if sys.version_info >= (3, 10): import typing as typing_extensions else: import typing_extensions + DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final class FunctionSignature(google.protobuf.message.Message): """List of function signatures available.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final @@ -27,50 +33,62 @@ class FunctionSignature(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _ParameterConsistency: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _ParameterConsistencyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[FunctionSignature.FinalArgVariadic._ParameterConsistency.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - PARAMETER_CONSISTENCY_UNSPECIFIED: FunctionSignature.FinalArgVariadic._ParameterConsistency.ValueType - PARAMETER_CONSISTENCY_CONSISTENT: FunctionSignature.FinalArgVariadic._ParameterConsistency.ValueType - 'All argument must be the same concrete type.' - PARAMETER_CONSISTENCY_INCONSISTENT: FunctionSignature.FinalArgVariadic._ParameterConsistency.ValueType - 'Each argument can be any possible concrete type afforded by the bounds\n of any parameter defined in the arguments specification.\n ' - - class ParameterConsistency(_ParameterConsistency, metaclass=_ParameterConsistencyEnumTypeWrapper): - ... - PARAMETER_CONSISTENCY_UNSPECIFIED: FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType - PARAMETER_CONSISTENCY_CONSISTENT: FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType - 'All argument must be the same concrete type.' - PARAMETER_CONSISTENCY_INCONSISTENT: FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType - 'Each argument can be any possible concrete type afforded by the bounds\n of any parameter defined in the arguments specification.\n ' + PARAMETER_CONSISTENCY_UNSPECIFIED: FunctionSignature.FinalArgVariadic._ParameterConsistency.ValueType # 0 + PARAMETER_CONSISTENCY_CONSISTENT: FunctionSignature.FinalArgVariadic._ParameterConsistency.ValueType # 1 + """All argument must be the same concrete type.""" + PARAMETER_CONSISTENCY_INCONSISTENT: FunctionSignature.FinalArgVariadic._ParameterConsistency.ValueType # 2 + """Each argument can be any possible concrete type afforded by the bounds + of any parameter defined in the arguments specification. + """ + + class ParameterConsistency(_ParameterConsistency, metaclass=_ParameterConsistencyEnumTypeWrapper): ... + PARAMETER_CONSISTENCY_UNSPECIFIED: FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType # 0 + PARAMETER_CONSISTENCY_CONSISTENT: FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType # 1 + """All argument must be the same concrete type.""" + PARAMETER_CONSISTENCY_INCONSISTENT: FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType # 2 + """Each argument can be any possible concrete type afforded by the bounds + of any parameter defined in the arguments specification. + """ + MIN_ARGS_FIELD_NUMBER: builtins.int MAX_ARGS_FIELD_NUMBER: builtins.int CONSISTENCY_FIELD_NUMBER: builtins.int min_args: builtins.int - 'the minimum number of arguments allowed for the list of final arguments\n (inclusive).\n ' + """the minimum number of arguments allowed for the list of final arguments + (inclusive). + """ max_args: builtins.int - 'the maximum number of arguments allowed for the list of final arguments\n (exclusive)\n ' + """the maximum number of arguments allowed for the list of final arguments + (exclusive) + """ consistency: global___FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType - 'the type of parameterized type consistency' - - def __init__(self, *, min_args: builtins.int=..., max_args: builtins.int=..., consistency: global___FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['consistency', b'consistency', 'max_args', b'max_args', 'min_args', b'min_args']) -> None: - ... + """the type of parameterized type consistency""" + def __init__( + self, + *, + min_args: builtins.int = ..., + max_args: builtins.int = ..., + consistency: global___FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["consistency", b"consistency", "max_args", b"max_args", "min_args", b"min_args"]) -> None: ... @typing.final class FinalArgNormal(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__(self) -> None: - ... + def __init__( + self, + ) -> None: ... @typing.final class Scalar(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + ARGUMENTS_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int DESCRIPTION_FIELD_NUMBER: builtins.int @@ -82,50 +100,41 @@ class FunctionSignature(google.protobuf.message.Message): IMPLEMENTATIONS_FIELD_NUMBER: builtins.int deterministic: builtins.bool session_dependent: builtins.bool - @property - def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Argument]: - ... - + def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Argument]: ... @property - def name(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - ... - + def name(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... @property - def description(self) -> global___FunctionSignature.Description: - ... - + def description(self) -> global___FunctionSignature.Description: ... @property - def output_type(self) -> proto.type_expressions_pb2.DerivationExpression: - ... - + def output_type(self) -> proto.type_expressions_pb2.DerivationExpression: ... @property - def variadic(self) -> global___FunctionSignature.FinalArgVariadic: - ... - + def variadic(self) -> global___FunctionSignature.FinalArgVariadic: ... @property - def normal(self) -> global___FunctionSignature.FinalArgNormal: - ... - + def normal(self) -> global___FunctionSignature.FinalArgNormal: ... @property - def implementations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Implementation]: - ... - - def __init__(self, *, arguments: collections.abc.Iterable[global___FunctionSignature.Argument] | None=..., name: collections.abc.Iterable[builtins.str] | None=..., description: global___FunctionSignature.Description | None=..., deterministic: builtins.bool=..., session_dependent: builtins.bool=..., output_type: proto.type_expressions_pb2.DerivationExpression | None=..., variadic: global___FunctionSignature.FinalArgVariadic | None=..., normal: global___FunctionSignature.FinalArgNormal | None=..., implementations: collections.abc.Iterable[global___FunctionSignature.Implementation] | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['description', b'description', 'final_variable_behavior', b'final_variable_behavior', 'normal', b'normal', 'output_type', b'output_type', 'variadic', b'variadic']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['arguments', b'arguments', 'description', b'description', 'deterministic', b'deterministic', 'final_variable_behavior', b'final_variable_behavior', 'implementations', b'implementations', 'name', b'name', 'normal', b'normal', 'output_type', b'output_type', 'session_dependent', b'session_dependent', 'variadic', b'variadic']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['final_variable_behavior', b'final_variable_behavior']) -> typing.Literal['variadic', 'normal'] | None: - ... + def implementations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Implementation]: ... + def __init__( + self, + *, + arguments: collections.abc.Iterable[global___FunctionSignature.Argument] | None = ..., + name: collections.abc.Iterable[builtins.str] | None = ..., + description: global___FunctionSignature.Description | None = ..., + deterministic: builtins.bool = ..., + session_dependent: builtins.bool = ..., + output_type: proto.type_expressions_pb2.DerivationExpression | None = ..., + variadic: global___FunctionSignature.FinalArgVariadic | None = ..., + normal: global___FunctionSignature.FinalArgNormal | None = ..., + implementations: collections.abc.Iterable[global___FunctionSignature.Implementation] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["description", b"description", "final_variable_behavior", b"final_variable_behavior", "normal", b"normal", "output_type", b"output_type", "variadic", b"variadic"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["arguments", b"arguments", "description", b"description", "deterministic", b"deterministic", "final_variable_behavior", b"final_variable_behavior", "implementations", b"implementations", "name", b"name", "normal", b"normal", "output_type", b"output_type", "session_dependent", b"session_dependent", "variadic", b"variadic"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["final_variable_behavior", b"final_variable_behavior"]) -> typing.Literal["variadic", "normal"] | None: ... @typing.final class Aggregate(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + ARGUMENTS_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int DESCRIPTION_FIELD_NUMBER: builtins.int @@ -143,66 +152,59 @@ class FunctionSignature(google.protobuf.message.Message): session_dependent: builtins.bool ordered: builtins.bool max_set: builtins.int - @property - def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Argument]: - ... - + def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Argument]: ... @property - def description(self) -> global___FunctionSignature.Description: - ... - + def description(self) -> global___FunctionSignature.Description: ... @property - def output_type(self) -> proto.type_expressions_pb2.DerivationExpression: - ... - + def output_type(self) -> proto.type_expressions_pb2.DerivationExpression: ... @property - def variadic(self) -> global___FunctionSignature.FinalArgVariadic: - ... - + def variadic(self) -> global___FunctionSignature.FinalArgVariadic: ... @property - def normal(self) -> global___FunctionSignature.FinalArgNormal: - ... - + def normal(self) -> global___FunctionSignature.FinalArgNormal: ... @property - def intermediate_type(self) -> proto.type_pb2.Type: - ... - + def intermediate_type(self) -> proto.type_pb2.Type: ... @property - def implementations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Implementation]: - ... - - def __init__(self, *, arguments: collections.abc.Iterable[global___FunctionSignature.Argument] | None=..., name: builtins.str=..., description: global___FunctionSignature.Description | None=..., deterministic: builtins.bool=..., session_dependent: builtins.bool=..., output_type: proto.type_expressions_pb2.DerivationExpression | None=..., variadic: global___FunctionSignature.FinalArgVariadic | None=..., normal: global___FunctionSignature.FinalArgNormal | None=..., ordered: builtins.bool=..., max_set: builtins.int=..., intermediate_type: proto.type_pb2.Type | None=..., implementations: collections.abc.Iterable[global___FunctionSignature.Implementation] | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['description', b'description', 'final_variable_behavior', b'final_variable_behavior', 'intermediate_type', b'intermediate_type', 'normal', b'normal', 'output_type', b'output_type', 'variadic', b'variadic']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['arguments', b'arguments', 'description', b'description', 'deterministic', b'deterministic', 'final_variable_behavior', b'final_variable_behavior', 'implementations', b'implementations', 'intermediate_type', b'intermediate_type', 'max_set', b'max_set', 'name', b'name', 'normal', b'normal', 'ordered', b'ordered', 'output_type', b'output_type', 'session_dependent', b'session_dependent', 'variadic', b'variadic']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['final_variable_behavior', b'final_variable_behavior']) -> typing.Literal['variadic', 'normal'] | None: - ... + def implementations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Implementation]: ... + def __init__( + self, + *, + arguments: collections.abc.Iterable[global___FunctionSignature.Argument] | None = ..., + name: builtins.str = ..., + description: global___FunctionSignature.Description | None = ..., + deterministic: builtins.bool = ..., + session_dependent: builtins.bool = ..., + output_type: proto.type_expressions_pb2.DerivationExpression | None = ..., + variadic: global___FunctionSignature.FinalArgVariadic | None = ..., + normal: global___FunctionSignature.FinalArgNormal | None = ..., + ordered: builtins.bool = ..., + max_set: builtins.int = ..., + intermediate_type: proto.type_pb2.Type | None = ..., + implementations: collections.abc.Iterable[global___FunctionSignature.Implementation] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["description", b"description", "final_variable_behavior", b"final_variable_behavior", "intermediate_type", b"intermediate_type", "normal", b"normal", "output_type", b"output_type", "variadic", b"variadic"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["arguments", b"arguments", "description", b"description", "deterministic", b"deterministic", "final_variable_behavior", b"final_variable_behavior", "implementations", b"implementations", "intermediate_type", b"intermediate_type", "max_set", b"max_set", "name", b"name", "normal", b"normal", "ordered", b"ordered", "output_type", b"output_type", "session_dependent", b"session_dependent", "variadic", b"variadic"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["final_variable_behavior", b"final_variable_behavior"]) -> typing.Literal["variadic", "normal"] | None: ... @typing.final class Window(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _WindowType: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _WindowTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[FunctionSignature.Window._WindowType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - WINDOW_TYPE_UNSPECIFIED: FunctionSignature.Window._WindowType.ValueType - WINDOW_TYPE_STREAMING: FunctionSignature.Window._WindowType.ValueType - WINDOW_TYPE_PARTITION: FunctionSignature.Window._WindowType.ValueType - - class WindowType(_WindowType, metaclass=_WindowTypeEnumTypeWrapper): - ... - WINDOW_TYPE_UNSPECIFIED: FunctionSignature.Window.WindowType.ValueType - WINDOW_TYPE_STREAMING: FunctionSignature.Window.WindowType.ValueType - WINDOW_TYPE_PARTITION: FunctionSignature.Window.WindowType.ValueType + WINDOW_TYPE_UNSPECIFIED: FunctionSignature.Window._WindowType.ValueType # 0 + WINDOW_TYPE_STREAMING: FunctionSignature.Window._WindowType.ValueType # 1 + WINDOW_TYPE_PARTITION: FunctionSignature.Window._WindowType.ValueType # 2 + + class WindowType(_WindowType, metaclass=_WindowTypeEnumTypeWrapper): ... + WINDOW_TYPE_UNSPECIFIED: FunctionSignature.Window.WindowType.ValueType # 0 + WINDOW_TYPE_STREAMING: FunctionSignature.Window.WindowType.ValueType # 1 + WINDOW_TYPE_PARTITION: FunctionSignature.Window.WindowType.ValueType # 2 + ARGUMENTS_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int DESCRIPTION_FIELD_NUMBER: builtins.int @@ -221,94 +223,89 @@ class FunctionSignature(google.protobuf.message.Message): ordered: builtins.bool max_set: builtins.int window_type: global___FunctionSignature.Window.WindowType.ValueType - @property - def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Argument]: - ... - + def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Argument]: ... @property - def name(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - ... - + def name(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... @property - def description(self) -> global___FunctionSignature.Description: - ... - + def description(self) -> global___FunctionSignature.Description: ... @property - def intermediate_type(self) -> proto.type_expressions_pb2.DerivationExpression: - ... - + def intermediate_type(self) -> proto.type_expressions_pb2.DerivationExpression: ... @property - def output_type(self) -> proto.type_expressions_pb2.DerivationExpression: - ... - + def output_type(self) -> proto.type_expressions_pb2.DerivationExpression: ... @property - def variadic(self) -> global___FunctionSignature.FinalArgVariadic: - ... - + def variadic(self) -> global___FunctionSignature.FinalArgVariadic: ... @property - def normal(self) -> global___FunctionSignature.FinalArgNormal: - ... - + def normal(self) -> global___FunctionSignature.FinalArgNormal: ... @property - def implementations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Implementation]: - ... - - def __init__(self, *, arguments: collections.abc.Iterable[global___FunctionSignature.Argument] | None=..., name: collections.abc.Iterable[builtins.str] | None=..., description: global___FunctionSignature.Description | None=..., deterministic: builtins.bool=..., session_dependent: builtins.bool=..., intermediate_type: proto.type_expressions_pb2.DerivationExpression | None=..., output_type: proto.type_expressions_pb2.DerivationExpression | None=..., variadic: global___FunctionSignature.FinalArgVariadic | None=..., normal: global___FunctionSignature.FinalArgNormal | None=..., ordered: builtins.bool=..., max_set: builtins.int=..., window_type: global___FunctionSignature.Window.WindowType.ValueType=..., implementations: collections.abc.Iterable[global___FunctionSignature.Implementation] | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['description', b'description', 'final_variable_behavior', b'final_variable_behavior', 'intermediate_type', b'intermediate_type', 'normal', b'normal', 'output_type', b'output_type', 'variadic', b'variadic']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['arguments', b'arguments', 'description', b'description', 'deterministic', b'deterministic', 'final_variable_behavior', b'final_variable_behavior', 'implementations', b'implementations', 'intermediate_type', b'intermediate_type', 'max_set', b'max_set', 'name', b'name', 'normal', b'normal', 'ordered', b'ordered', 'output_type', b'output_type', 'session_dependent', b'session_dependent', 'variadic', b'variadic', 'window_type', b'window_type']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['final_variable_behavior', b'final_variable_behavior']) -> typing.Literal['variadic', 'normal'] | None: - ... + def implementations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Implementation]: ... + def __init__( + self, + *, + arguments: collections.abc.Iterable[global___FunctionSignature.Argument] | None = ..., + name: collections.abc.Iterable[builtins.str] | None = ..., + description: global___FunctionSignature.Description | None = ..., + deterministic: builtins.bool = ..., + session_dependent: builtins.bool = ..., + intermediate_type: proto.type_expressions_pb2.DerivationExpression | None = ..., + output_type: proto.type_expressions_pb2.DerivationExpression | None = ..., + variadic: global___FunctionSignature.FinalArgVariadic | None = ..., + normal: global___FunctionSignature.FinalArgNormal | None = ..., + ordered: builtins.bool = ..., + max_set: builtins.int = ..., + window_type: global___FunctionSignature.Window.WindowType.ValueType = ..., + implementations: collections.abc.Iterable[global___FunctionSignature.Implementation] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["description", b"description", "final_variable_behavior", b"final_variable_behavior", "intermediate_type", b"intermediate_type", "normal", b"normal", "output_type", b"output_type", "variadic", b"variadic"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["arguments", b"arguments", "description", b"description", "deterministic", b"deterministic", "final_variable_behavior", b"final_variable_behavior", "implementations", b"implementations", "intermediate_type", b"intermediate_type", "max_set", b"max_set", "name", b"name", "normal", b"normal", "ordered", b"ordered", "output_type", b"output_type", "session_dependent", b"session_dependent", "variadic", b"variadic", "window_type", b"window_type"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["final_variable_behavior", b"final_variable_behavior"]) -> typing.Literal["variadic", "normal"] | None: ... @typing.final class Description(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + LANGUAGE_FIELD_NUMBER: builtins.int BODY_FIELD_NUMBER: builtins.int language: builtins.str body: builtins.str - - def __init__(self, *, language: builtins.str=..., body: builtins.str=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['body', b'body', 'language', b'language']) -> None: - ... + def __init__( + self, + *, + language: builtins.str = ..., + body: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["body", b"body", "language", b"language"]) -> None: ... @typing.final class Implementation(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _Type: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[FunctionSignature.Implementation._Type.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - TYPE_UNSPECIFIED: FunctionSignature.Implementation._Type.ValueType - TYPE_WEB_ASSEMBLY: FunctionSignature.Implementation._Type.ValueType - TYPE_TRINO_JAR: FunctionSignature.Implementation._Type.ValueType - - class Type(_Type, metaclass=_TypeEnumTypeWrapper): - ... - TYPE_UNSPECIFIED: FunctionSignature.Implementation.Type.ValueType - TYPE_WEB_ASSEMBLY: FunctionSignature.Implementation.Type.ValueType - TYPE_TRINO_JAR: FunctionSignature.Implementation.Type.ValueType + TYPE_UNSPECIFIED: FunctionSignature.Implementation._Type.ValueType # 0 + TYPE_WEB_ASSEMBLY: FunctionSignature.Implementation._Type.ValueType # 1 + TYPE_TRINO_JAR: FunctionSignature.Implementation._Type.ValueType # 2 + + class Type(_Type, metaclass=_TypeEnumTypeWrapper): ... + TYPE_UNSPECIFIED: FunctionSignature.Implementation.Type.ValueType # 0 + TYPE_WEB_ASSEMBLY: FunctionSignature.Implementation.Type.ValueType # 1 + TYPE_TRINO_JAR: FunctionSignature.Implementation.Type.ValueType # 2 + TYPE_FIELD_NUMBER: builtins.int URI_FIELD_NUMBER: builtins.int type: global___FunctionSignature.Implementation.Type.ValueType uri: builtins.str - - def __init__(self, *, type: global___FunctionSignature.Implementation.Type.ValueType=..., uri: builtins.str=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['type', b'type', 'uri', b'uri']) -> None: - ... + def __init__( + self, + *, + type: global___FunctionSignature.Implementation.Type.ValueType = ..., + uri: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["type", b"type", "uri", b"uri"]) -> None: ... @typing.final class Argument(google.protobuf.message.Message): @@ -317,87 +314,78 @@ class FunctionSignature(google.protobuf.message.Message): @typing.final class ValueArgument(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_FIELD_NUMBER: builtins.int CONSTANT_FIELD_NUMBER: builtins.int constant: builtins.bool - @property - def type(self) -> proto.parameterized_types_pb2.ParameterizedType: - ... - - def __init__(self, *, type: proto.parameterized_types_pb2.ParameterizedType | None=..., constant: builtins.bool=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['constant', b'constant', 'type', b'type']) -> None: - ... + def type(self) -> proto.parameterized_types_pb2.ParameterizedType: ... + def __init__( + self, + *, + type: proto.parameterized_types_pb2.ParameterizedType | None = ..., + constant: builtins.bool = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["constant", b"constant", "type", b"type"]) -> None: ... @typing.final class TypeArgument(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int + TYPE_FIELD_NUMBER: builtins.int @property - def type(self) -> proto.parameterized_types_pb2.ParameterizedType: - ... - - def __init__(self, *, type: proto.parameterized_types_pb2.ParameterizedType | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['type', b'type']) -> None: - ... + def type(self) -> proto.parameterized_types_pb2.ParameterizedType: ... + def __init__( + self, + *, + type: proto.parameterized_types_pb2.ParameterizedType | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["type", b"type"]) -> None: ... @typing.final class EnumArgument(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + OPTIONS_FIELD_NUMBER: builtins.int OPTIONAL_FIELD_NUMBER: builtins.int optional: builtins.bool - @property - def options(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - ... + def options(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def __init__( + self, + *, + options: collections.abc.Iterable[builtins.str] | None = ..., + optional: builtins.bool = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["optional", b"optional", "options", b"options"]) -> None: ... - def __init__(self, *, options: collections.abc.Iterable[builtins.str] | None=..., optional: builtins.bool=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['optional', b'optional', 'options', b'options']) -> None: - ... NAME_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int TYPE_FIELD_NUMBER: builtins.int ENUM_FIELD_NUMBER: builtins.int name: builtins.str - @property - def value(self) -> global___FunctionSignature.Argument.ValueArgument: - ... - + def value(self) -> global___FunctionSignature.Argument.ValueArgument: ... @property - def type(self) -> global___FunctionSignature.Argument.TypeArgument: - ... - + def type(self) -> global___FunctionSignature.Argument.TypeArgument: ... @property - def enum(self) -> global___FunctionSignature.Argument.EnumArgument: - ... - - def __init__(self, *, name: builtins.str=..., value: global___FunctionSignature.Argument.ValueArgument | None=..., type: global___FunctionSignature.Argument.TypeArgument | None=..., enum: global___FunctionSignature.Argument.EnumArgument | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['argument_kind', b'argument_kind', 'enum', b'enum', 'type', b'type', 'value', b'value']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['argument_kind', b'argument_kind', 'enum', b'enum', 'name', b'name', 'type', b'type', 'value', b'value']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['argument_kind', b'argument_kind']) -> typing.Literal['value', 'type', 'enum'] | None: - ... - - def __init__(self) -> None: - ... -global___FunctionSignature = FunctionSignature \ No newline at end of file + def enum(self) -> global___FunctionSignature.Argument.EnumArgument: ... + def __init__( + self, + *, + name: builtins.str = ..., + value: global___FunctionSignature.Argument.ValueArgument | None = ..., + type: global___FunctionSignature.Argument.TypeArgument | None = ..., + enum: global___FunctionSignature.Argument.EnumArgument | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["argument_kind", b"argument_kind", "enum", b"enum", "type", b"type", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["argument_kind", b"argument_kind", "enum", b"enum", "name", b"name", "type", b"type", "value", b"value"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["argument_kind", b"argument_kind"]) -> typing.Literal["value", "type", "enum"] | None: ... + + def __init__( + self, + ) -> None: ... + +global___FunctionSignature = FunctionSignature diff --git a/src/substrait/gen/proto/parameterized_types_pb2.py b/src/substrait/gen/proto/parameterized_types_pb2.py index 7ba0619..3bc9330 100644 --- a/src/substrait/gen/proto/parameterized_types_pb2.py +++ b/src/substrait/gen/proto/parameterized_types_pb2.py @@ -1,59 +1,82 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: proto/parameterized_types.proto +# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 5, + '', + 'proto/parameterized_types.proto' +) +# @@protoc_insertion_point(imports) + _sym_db = _symbol_database.Default() -from ..proto import type_pb2 as proto_dot_type__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fproto/parameterized_types.proto\x12\x05proto\x1a\x10proto/type.proto"\xc0(\n\x11ParameterizedType\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12*\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeB\x02\x18\x01H\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12V\n\x0cinterval_day\x18\x14 \x01(\x0b21.proto.ParameterizedType.ParameterizedIntervalDayH\x00R\x0bintervalDay\x12e\n\x11interval_compound\x18$ \x01(\x0b26.proto.ParameterizedType.ParameterizedIntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x12P\n\nfixed_char\x18\x15 \x01(\x0b2/.proto.ParameterizedType.ParameterizedFixedCharH\x00R\tfixedChar\x12I\n\x07varchar\x18\x16 \x01(\x0b2-.proto.ParameterizedType.ParameterizedVarCharH\x00R\x07varchar\x12V\n\x0cfixed_binary\x18\x17 \x01(\x0b21.proto.ParameterizedType.ParameterizedFixedBinaryH\x00R\x0bfixedBinary\x12I\n\x07decimal\x18\x18 \x01(\x0b2-.proto.ParameterizedType.ParameterizedDecimalH\x00R\x07decimal\x12\\\n\x0eprecision_time\x18% \x01(\x0b23.proto.ParameterizedType.ParameterizedPrecisionTimeH\x00R\rprecisionTime\x12k\n\x13precision_timestamp\x18" \x01(\x0b28.proto.ParameterizedType.ParameterizedPrecisionTimestampH\x00R\x12precisionTimestamp\x12r\n\x16precision_timestamp_tz\x18# \x01(\x0b2:.proto.ParameterizedType.ParameterizedPrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12F\n\x06struct\x18\x19 \x01(\x0b2,.proto.ParameterizedType.ParameterizedStructH\x00R\x06struct\x12@\n\x04list\x18\x1b \x01(\x0b2*.proto.ParameterizedType.ParameterizedListH\x00R\x04list\x12=\n\x03map\x18\x1c \x01(\x0b2).proto.ParameterizedType.ParameterizedMapH\x00R\x03map\x12V\n\x0cuser_defined\x18\x1e \x01(\x0b21.proto.ParameterizedType.ParameterizedUserDefinedH\x00R\x0buserDefined\x126\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x12O\n\x0etype_parameter\x18! \x01(\x0b2&.proto.ParameterizedType.TypeParameterH\x00R\rtypeParameter\x1aU\n\rTypeParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x120\n\x06bounds\x18\x02 \x03(\x0b2\x18.proto.ParameterizedTypeR\x06bounds\x1a\xde\x01\n\x10IntegerParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\\\n\x15range_start_inclusive\x18\x02 \x01(\x0b2(.proto.ParameterizedType.NullableIntegerR\x13rangeStartInclusive\x12X\n\x13range_end_exclusive\x18\x03 \x01(\x0b2(.proto.ParameterizedType.NullableIntegerR\x11rangeEndExclusive\x1a\'\n\x0fNullableInteger\x12\x14\n\x05value\x18\x01 \x01(\x03R\x05value\x1a\xc0\x01\n\x16ParameterizedFixedChar\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbe\x01\n\x14ParameterizedVarChar\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc2\x01\n\x18ParameterizedFixedBinary\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x02\n\x14ParameterizedDecimal\x12<\n\x05scale\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x05scale\x12D\n\tprecision\x18\x02 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc8\x01\n\x18ParameterizedIntervalDay\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xcd\x01\n\x1dParameterizedIntervalCompound\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xca\x01\n\x1aParameterizedPrecisionTime\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xcf\x01\n\x1fParameterizedPrecisionTimestamp\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd1\x01\n!ParameterizedPrecisionTimestampTZ\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xad\x01\n\x13ParameterizedStruct\x12.\n\x05types\x18\x01 \x03(\x0b2\x18.proto.ParameterizedTypeR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1av\n\x18ParameterizedNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12D\n\x06struct\x18\x02 \x01(\x0b2,.proto.ParameterizedType.ParameterizedStructR\x06struct\x1a\xa9\x01\n\x11ParameterizedList\x12,\n\x04type\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd6\x01\n\x10ParameterizedMap\x12*\n\x03key\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x03key\x12.\n\x05value\x18\x02 \x01(\x0b2\x18.proto.ParameterizedTypeR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa5\x01\n\x18ParameterizedUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x86\x01\n\rIntegerOption\x12\x1a\n\x07literal\x18\x01 \x01(\x05H\x00R\x07literal\x12I\n\tparameter\x18\x02 \x01(\x0b2).proto.ParameterizedType.IntegerParameterH\x00R\tparameterB\x0e\n\x0cinteger_typeB\x06\n\x04kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.parameterized_types_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _PARAMETERIZEDTYPE.fields_by_name['timestamp']._options = None - _PARAMETERIZEDTYPE.fields_by_name['timestamp']._serialized_options = b'\x18\x01' - _PARAMETERIZEDTYPE.fields_by_name['time']._options = None - _PARAMETERIZEDTYPE.fields_by_name['time']._serialized_options = b'\x18\x01' - _PARAMETERIZEDTYPE.fields_by_name['timestamp_tz']._options = None - _PARAMETERIZEDTYPE.fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' - _PARAMETERIZEDTYPE.fields_by_name['user_defined_pointer']._options = None - _PARAMETERIZEDTYPE.fields_by_name['user_defined_pointer']._serialized_options = b'\x18\x01' - _PARAMETERIZEDTYPE._serialized_start = 61 - _PARAMETERIZEDTYPE._serialized_end = 5245 - _PARAMETERIZEDTYPE_TYPEPARAMETER._serialized_start = 2012 - _PARAMETERIZEDTYPE_TYPEPARAMETER._serialized_end = 2097 - _PARAMETERIZEDTYPE_INTEGERPARAMETER._serialized_start = 2100 - _PARAMETERIZEDTYPE_INTEGERPARAMETER._serialized_end = 2322 - _PARAMETERIZEDTYPE_NULLABLEINTEGER._serialized_start = 2324 - _PARAMETERIZEDTYPE_NULLABLEINTEGER._serialized_end = 2363 - _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR._serialized_start = 2366 - _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR._serialized_end = 2558 - _PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR._serialized_start = 2561 - _PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR._serialized_end = 2751 - _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY._serialized_start = 2754 - _PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY._serialized_end = 2948 - _PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL._serialized_start = 2951 - _PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL._serialized_end = 3209 - _PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY._serialized_start = 3212 - _PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY._serialized_end = 3412 - _PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND._serialized_start = 3415 - _PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND._serialized_end = 3620 - _PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIME._serialized_start = 3623 - _PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIME._serialized_end = 3825 - _PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP._serialized_start = 3828 - _PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP._serialized_end = 4035 - _PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ._serialized_start = 4038 - _PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ._serialized_end = 4247 - _PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT._serialized_start = 4250 - _PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT._serialized_end = 4423 - _PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT._serialized_start = 4425 - _PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT._serialized_end = 4543 - _PARAMETERIZEDTYPE_PARAMETERIZEDLIST._serialized_start = 4546 - _PARAMETERIZEDTYPE_PARAMETERIZEDLIST._serialized_end = 4715 - _PARAMETERIZEDTYPE_PARAMETERIZEDMAP._serialized_start = 4718 - _PARAMETERIZEDTYPE_PARAMETERIZEDMAP._serialized_end = 4932 - _PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED._serialized_start = 4935 - _PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED._serialized_end = 5100 - _PARAMETERIZEDTYPE_INTEGEROPTION._serialized_start = 5103 - _PARAMETERIZEDTYPE_INTEGEROPTION._serialized_end = 5237 \ No newline at end of file + + +from proto import type_pb2 as proto_dot_type__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fproto/parameterized_types.proto\x12\x05proto\x1a\x10proto/type.proto\"\xc0(\n\x11ParameterizedType\x12)\n\x04\x62ool\x18\x01 \x01(\x0b\x32\x13.proto.Type.BooleanH\x00R\x04\x62ool\x12 \n\x02i8\x18\x02 \x01(\x0b\x32\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b\x32\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b\x32\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b\x32\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04\x66p32\x18\n \x01(\x0b\x32\x10.proto.Type.FP32H\x00R\x04\x66p32\x12&\n\x04\x66p64\x18\x0b \x01(\x0b\x32\x10.proto.Type.FP64H\x00R\x04\x66p64\x12,\n\x06string\x18\x0c \x01(\x0b\x32\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06\x62inary\x18\r \x01(\x0b\x32\x12.proto.Type.BinaryH\x00R\x06\x62inary\x12\x39\n\ttimestamp\x18\x0e \x01(\x0b\x32\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04\x64\x61te\x18\x10 \x01(\x0b\x32\x10.proto.Type.DateH\x00R\x04\x64\x61te\x12*\n\x04time\x18\x11 \x01(\x0b\x32\x10.proto.Type.TimeB\x02\x18\x01H\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b\x32\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12V\n\x0cinterval_day\x18\x14 \x01(\x0b\x32\x31.proto.ParameterizedType.ParameterizedIntervalDayH\x00R\x0bintervalDay\x12\x65\n\x11interval_compound\x18$ \x01(\x0b\x32\x36.proto.ParameterizedType.ParameterizedIntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b\x32\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b\x32\x10.proto.Type.UUIDH\x00R\x04uuid\x12P\n\nfixed_char\x18\x15 \x01(\x0b\x32/.proto.ParameterizedType.ParameterizedFixedCharH\x00R\tfixedChar\x12I\n\x07varchar\x18\x16 \x01(\x0b\x32-.proto.ParameterizedType.ParameterizedVarCharH\x00R\x07varchar\x12V\n\x0c\x66ixed_binary\x18\x17 \x01(\x0b\x32\x31.proto.ParameterizedType.ParameterizedFixedBinaryH\x00R\x0b\x66ixedBinary\x12I\n\x07\x64\x65\x63imal\x18\x18 \x01(\x0b\x32-.proto.ParameterizedType.ParameterizedDecimalH\x00R\x07\x64\x65\x63imal\x12\\\n\x0eprecision_time\x18% \x01(\x0b\x32\x33.proto.ParameterizedType.ParameterizedPrecisionTimeH\x00R\rprecisionTime\x12k\n\x13precision_timestamp\x18\" \x01(\x0b\x32\x38.proto.ParameterizedType.ParameterizedPrecisionTimestampH\x00R\x12precisionTimestamp\x12r\n\x16precision_timestamp_tz\x18# \x01(\x0b\x32:.proto.ParameterizedType.ParameterizedPrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12\x46\n\x06struct\x18\x19 \x01(\x0b\x32,.proto.ParameterizedType.ParameterizedStructH\x00R\x06struct\x12@\n\x04list\x18\x1b \x01(\x0b\x32*.proto.ParameterizedType.ParameterizedListH\x00R\x04list\x12=\n\x03map\x18\x1c \x01(\x0b\x32).proto.ParameterizedType.ParameterizedMapH\x00R\x03map\x12V\n\x0cuser_defined\x18\x1e \x01(\x0b\x32\x31.proto.ParameterizedType.ParameterizedUserDefinedH\x00R\x0buserDefined\x12\x36\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x12O\n\x0etype_parameter\x18! \x01(\x0b\x32&.proto.ParameterizedType.TypeParameterH\x00R\rtypeParameter\x1aU\n\rTypeParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x30\n\x06\x62ounds\x18\x02 \x03(\x0b\x32\x18.proto.ParameterizedTypeR\x06\x62ounds\x1a\xde\x01\n\x10IntegerParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\\\n\x15range_start_inclusive\x18\x02 \x01(\x0b\x32(.proto.ParameterizedType.NullableIntegerR\x13rangeStartInclusive\x12X\n\x13range_end_exclusive\x18\x03 \x01(\x0b\x32(.proto.ParameterizedType.NullableIntegerR\x11rangeEndExclusive\x1a\'\n\x0fNullableInteger\x12\x14\n\x05value\x18\x01 \x01(\x03R\x05value\x1a\xc0\x01\n\x16ParameterizedFixedChar\x12>\n\x06length\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbe\x01\n\x14ParameterizedVarChar\x12>\n\x06length\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc2\x01\n\x18ParameterizedFixedBinary\x12>\n\x06length\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x02\n\x14ParameterizedDecimal\x12<\n\x05scale\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\x05scale\x12\x44\n\tprecision\x18\x02 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x04 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc8\x01\n\x18ParameterizedIntervalDay\x12\x44\n\tprecision\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xcd\x01\n\x1dParameterizedIntervalCompound\x12\x44\n\tprecision\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xca\x01\n\x1aParameterizedPrecisionTime\x12\x44\n\tprecision\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xcf\x01\n\x1fParameterizedPrecisionTimestamp\x12\x44\n\tprecision\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd1\x01\n!ParameterizedPrecisionTimestampTZ\x12\x44\n\tprecision\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xad\x01\n\x13ParameterizedStruct\x12.\n\x05types\x18\x01 \x03(\x0b\x32\x18.proto.ParameterizedTypeR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1av\n\x18ParameterizedNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12\x44\n\x06struct\x18\x02 \x01(\x0b\x32,.proto.ParameterizedType.ParameterizedStructR\x06struct\x1a\xa9\x01\n\x11ParameterizedList\x12,\n\x04type\x18\x01 \x01(\x0b\x32\x18.proto.ParameterizedTypeR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd6\x01\n\x10ParameterizedMap\x12*\n\x03key\x18\x01 \x01(\x0b\x32\x18.proto.ParameterizedTypeR\x03key\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x18.proto.ParameterizedTypeR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x04 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa5\x01\n\x18ParameterizedUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x86\x01\n\rIntegerOption\x12\x1a\n\x07literal\x18\x01 \x01(\x05H\x00R\x07literal\x12I\n\tparameter\x18\x02 \x01(\x0b\x32).proto.ParameterizedType.IntegerParameterH\x00R\tparameterB\x0e\n\x0cinteger_typeB\x06\n\x04kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.parameterized_types_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' + _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp']._loaded_options = None + _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp']._serialized_options = b'\030\001' + _globals['_PARAMETERIZEDTYPE'].fields_by_name['time']._loaded_options = None + _globals['_PARAMETERIZEDTYPE'].fields_by_name['time']._serialized_options = b'\030\001' + _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp_tz']._loaded_options = None + _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp_tz']._serialized_options = b'\030\001' + _globals['_PARAMETERIZEDTYPE'].fields_by_name['user_defined_pointer']._loaded_options = None + _globals['_PARAMETERIZEDTYPE'].fields_by_name['user_defined_pointer']._serialized_options = b'\030\001' + _globals['_PARAMETERIZEDTYPE']._serialized_start=61 + _globals['_PARAMETERIZEDTYPE']._serialized_end=5245 + _globals['_PARAMETERIZEDTYPE_TYPEPARAMETER']._serialized_start=2012 + _globals['_PARAMETERIZEDTYPE_TYPEPARAMETER']._serialized_end=2097 + _globals['_PARAMETERIZEDTYPE_INTEGERPARAMETER']._serialized_start=2100 + _globals['_PARAMETERIZEDTYPE_INTEGERPARAMETER']._serialized_end=2322 + _globals['_PARAMETERIZEDTYPE_NULLABLEINTEGER']._serialized_start=2324 + _globals['_PARAMETERIZEDTYPE_NULLABLEINTEGER']._serialized_end=2363 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR']._serialized_start=2366 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR']._serialized_end=2558 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR']._serialized_start=2561 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR']._serialized_end=2751 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY']._serialized_start=2754 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY']._serialized_end=2948 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL']._serialized_start=2951 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL']._serialized_end=3209 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY']._serialized_start=3212 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY']._serialized_end=3412 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND']._serialized_start=3415 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND']._serialized_end=3620 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIME']._serialized_start=3623 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIME']._serialized_end=3825 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP']._serialized_start=3828 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP']._serialized_end=4035 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ']._serialized_start=4038 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ']._serialized_end=4247 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT']._serialized_start=4250 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT']._serialized_end=4423 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT']._serialized_start=4425 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT']._serialized_end=4543 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDLIST']._serialized_start=4546 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDLIST']._serialized_end=4715 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDMAP']._serialized_start=4718 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDMAP']._serialized_end=4932 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED']._serialized_start=4935 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED']._serialized_end=5100 + _globals['_PARAMETERIZEDTYPE_INTEGEROPTION']._serialized_start=5103 + _globals['_PARAMETERIZEDTYPE_INTEGEROPTION']._serialized_end=5237 +# @@protoc_insertion_point(module_scope) diff --git a/src/substrait/gen/proto/parameterized_types_pb2.pyi b/src/substrait/gen/proto/parameterized_types_pb2.pyi index 2d649ec..45bb072 100644 --- a/src/substrait/gen/proto/parameterized_types_pb2.pyi +++ b/src/substrait/gen/proto/parameterized_types_pb2.pyi @@ -2,13 +2,15 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" + import builtins import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.message -from .. import proto +import proto.type_pb2 import typing + DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final @@ -18,389 +20,373 @@ class ParameterizedType(google.protobuf.message.Message): @typing.final class TypeParameter(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + NAME_FIELD_NUMBER: builtins.int BOUNDS_FIELD_NUMBER: builtins.int name: builtins.str - @property - def bounds(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ParameterizedType]: - ... - - def __init__(self, *, name: builtins.str=..., bounds: collections.abc.Iterable[global___ParameterizedType] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['bounds', b'bounds', 'name', b'name']) -> None: - ... + def bounds(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ParameterizedType]: ... + def __init__( + self, + *, + name: builtins.str = ..., + bounds: collections.abc.Iterable[global___ParameterizedType] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["bounds", b"bounds", "name", b"name"]) -> None: ... @typing.final class IntegerParameter(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + NAME_FIELD_NUMBER: builtins.int RANGE_START_INCLUSIVE_FIELD_NUMBER: builtins.int RANGE_END_EXCLUSIVE_FIELD_NUMBER: builtins.int name: builtins.str - @property - def range_start_inclusive(self) -> global___ParameterizedType.NullableInteger: - ... - + def range_start_inclusive(self) -> global___ParameterizedType.NullableInteger: ... @property - def range_end_exclusive(self) -> global___ParameterizedType.NullableInteger: - ... - - def __init__(self, *, name: builtins.str=..., range_start_inclusive: global___ParameterizedType.NullableInteger | None=..., range_end_exclusive: global___ParameterizedType.NullableInteger | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['range_end_exclusive', b'range_end_exclusive', 'range_start_inclusive', b'range_start_inclusive']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['name', b'name', 'range_end_exclusive', b'range_end_exclusive', 'range_start_inclusive', b'range_start_inclusive']) -> None: - ... + def range_end_exclusive(self) -> global___ParameterizedType.NullableInteger: ... + def __init__( + self, + *, + name: builtins.str = ..., + range_start_inclusive: global___ParameterizedType.NullableInteger | None = ..., + range_end_exclusive: global___ParameterizedType.NullableInteger | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["range_end_exclusive", b"range_end_exclusive", "range_start_inclusive", b"range_start_inclusive"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["name", b"name", "range_end_exclusive", b"range_end_exclusive", "range_start_inclusive", b"range_start_inclusive"]) -> None: ... @typing.final class NullableInteger(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + VALUE_FIELD_NUMBER: builtins.int value: builtins.int - - def __init__(self, *, value: builtins.int=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['value', b'value']) -> None: - ... + def __init__( + self, + *, + value: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ... @typing.final class ParameterizedFixedChar(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + LENGTH_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def length(self) -> global___ParameterizedType.IntegerOption: - ... - - def __init__(self, *, length: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['length', b'length']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'variation_pointer', b'variation_pointer']) -> None: - ... + def length(self) -> global___ParameterizedType.IntegerOption: ... + def __init__( + self, + *, + length: global___ParameterizedType.IntegerOption | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["length", b"length"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ParameterizedVarChar(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + LENGTH_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def length(self) -> global___ParameterizedType.IntegerOption: - ... - - def __init__(self, *, length: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['length', b'length']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'variation_pointer', b'variation_pointer']) -> None: - ... + def length(self) -> global___ParameterizedType.IntegerOption: ... + def __init__( + self, + *, + length: global___ParameterizedType.IntegerOption | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["length", b"length"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ParameterizedFixedBinary(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + LENGTH_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def length(self) -> global___ParameterizedType.IntegerOption: - ... - - def __init__(self, *, length: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['length', b'length']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'variation_pointer', b'variation_pointer']) -> None: - ... + def length(self) -> global___ParameterizedType.IntegerOption: ... + def __init__( + self, + *, + length: global___ParameterizedType.IntegerOption | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["length", b"length"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ParameterizedDecimal(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + SCALE_FIELD_NUMBER: builtins.int PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def scale(self) -> global___ParameterizedType.IntegerOption: - ... - + def scale(self) -> global___ParameterizedType.IntegerOption: ... @property - def precision(self) -> global___ParameterizedType.IntegerOption: - ... - - def __init__(self, *, scale: global___ParameterizedType.IntegerOption | None=..., precision: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['precision', b'precision', 'scale', b'scale']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'scale', b'scale', 'variation_pointer', b'variation_pointer']) -> None: - ... + def precision(self) -> global___ParameterizedType.IntegerOption: ... + def __init__( + self, + *, + scale: global___ParameterizedType.IntegerOption | None = ..., + precision: global___ParameterizedType.IntegerOption | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["precision", b"precision", "scale", b"scale"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "scale", b"scale", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ParameterizedIntervalDay(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def precision(self) -> global___ParameterizedType.IntegerOption: - ... - - def __init__(self, *, precision: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: - ... + def precision(self) -> global___ParameterizedType.IntegerOption: ... + def __init__( + self, + *, + precision: global___ParameterizedType.IntegerOption | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ParameterizedIntervalCompound(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def precision(self) -> global___ParameterizedType.IntegerOption: - ... - - def __init__(self, *, precision: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: - ... + def precision(self) -> global___ParameterizedType.IntegerOption: ... + def __init__( + self, + *, + precision: global___ParameterizedType.IntegerOption | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ParameterizedPrecisionTime(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def precision(self) -> global___ParameterizedType.IntegerOption: - ... - - def __init__(self, *, precision: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: - ... + def precision(self) -> global___ParameterizedType.IntegerOption: ... + def __init__( + self, + *, + precision: global___ParameterizedType.IntegerOption | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ParameterizedPrecisionTimestamp(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def precision(self) -> global___ParameterizedType.IntegerOption: - ... - - def __init__(self, *, precision: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: - ... + def precision(self) -> global___ParameterizedType.IntegerOption: ... + def __init__( + self, + *, + precision: global___ParameterizedType.IntegerOption | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ParameterizedPrecisionTimestampTZ(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def precision(self) -> global___ParameterizedType.IntegerOption: - ... - - def __init__(self, *, precision: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: - ... + def precision(self) -> global___ParameterizedType.IntegerOption: ... + def __init__( + self, + *, + precision: global___ParameterizedType.IntegerOption | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ParameterizedStruct(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPES_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ParameterizedType]: - ... - - def __init__(self, *, types: collections.abc.Iterable[global___ParameterizedType] | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'types', b'types', 'variation_pointer', b'variation_pointer']) -> None: - ... + def types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ParameterizedType]: ... + def __init__( + self, + *, + types: collections.abc.Iterable[global___ParameterizedType] | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "types", b"types", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ParameterizedNamedStruct(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + NAMES_FIELD_NUMBER: builtins.int STRUCT_FIELD_NUMBER: builtins.int - @property def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """list of names in dfs order""" @property - def struct(self) -> global___ParameterizedType.ParameterizedStruct: - ... - - def __init__(self, *, names: collections.abc.Iterable[builtins.str] | None=..., struct: global___ParameterizedType.ParameterizedStruct | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['struct', b'struct']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['names', b'names', 'struct', b'struct']) -> None: - ... + def struct(self) -> global___ParameterizedType.ParameterizedStruct: ... + def __init__( + self, + *, + names: collections.abc.Iterable[builtins.str] | None = ..., + struct: global___ParameterizedType.ParameterizedStruct | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["struct", b"struct"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["names", b"names", "struct", b"struct"]) -> None: ... @typing.final class ParameterizedList(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def type(self) -> global___ParameterizedType: - ... - - def __init__(self, *, type: global___ParameterizedType | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type', b'type', 'variation_pointer', b'variation_pointer']) -> None: - ... + def type(self) -> global___ParameterizedType: ... + def __init__( + self, + *, + type: global___ParameterizedType | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type", b"type", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ParameterizedMap(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + KEY_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def key(self) -> global___ParameterizedType: - ... - + def key(self) -> global___ParameterizedType: ... @property - def value(self) -> global___ParameterizedType: - ... - - def __init__(self, *, key: global___ParameterizedType | None=..., value: global___ParameterizedType | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['key', b'key', 'nullability', b'nullability', 'value', b'value', 'variation_pointer', b'variation_pointer']) -> None: - ... + def value(self) -> global___ParameterizedType: ... + def __init__( + self, + *, + key: global___ParameterizedType | None = ..., + value: global___ParameterizedType | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "nullability", b"nullability", "value", b"value", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ParameterizedUserDefined(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_POINTER_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_pointer: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - - def __init__(self, *, type_pointer: builtins.int=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_pointer', b'type_pointer', 'variation_pointer', b'variation_pointer']) -> None: - ... + def __init__( + self, + *, + type_pointer: builtins.int = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_pointer", b"type_pointer", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class IntegerOption(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + LITERAL_FIELD_NUMBER: builtins.int PARAMETER_FIELD_NUMBER: builtins.int literal: builtins.int - @property - def parameter(self) -> global___ParameterizedType.IntegerParameter: - ... - - def __init__(self, *, literal: builtins.int=..., parameter: global___ParameterizedType.IntegerParameter | None=...) -> None: - ... + def parameter(self) -> global___ParameterizedType.IntegerParameter: ... + def __init__( + self, + *, + literal: builtins.int = ..., + parameter: global___ParameterizedType.IntegerParameter | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["integer_type", b"integer_type", "literal", b"literal", "parameter", b"parameter"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["integer_type", b"integer_type", "literal", b"literal", "parameter", b"parameter"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["integer_type", b"integer_type"]) -> typing.Literal["literal", "parameter"] | None: ... - def HasField(self, field_name: typing.Literal['integer_type', b'integer_type', 'literal', b'literal', 'parameter', b'parameter']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['integer_type', b'integer_type', 'literal', b'literal', 'parameter', b'parameter']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['integer_type', b'integer_type']) -> typing.Literal['literal', 'parameter'] | None: - ... BOOL_FIELD_NUMBER: builtins.int I8_FIELD_NUMBER: builtins.int I16_FIELD_NUMBER: builtins.int @@ -432,133 +418,110 @@ class ParameterizedType(google.protobuf.message.Message): USER_DEFINED_POINTER_FIELD_NUMBER: builtins.int TYPE_PARAMETER_FIELD_NUMBER: builtins.int user_defined_pointer: builtins.int - 'Deprecated in favor of user_defined, which allows nullability and\n variations to be specified. If user_defined_pointer is encountered,\n treat it as being non-nullable and having the default variation.\n ' - + """Deprecated in favor of user_defined, which allows nullability and + variations to be specified. If user_defined_pointer is encountered, + treat it as being non-nullable and having the default variation. + """ @property - def bool(self) -> proto.type_pb2.Type.Boolean: - ... - + def bool(self) -> proto.type_pb2.Type.Boolean: ... @property - def i8(self) -> proto.type_pb2.Type.I8: - ... - + def i8(self) -> proto.type_pb2.Type.I8: ... @property - def i16(self) -> proto.type_pb2.Type.I16: - ... - + def i16(self) -> proto.type_pb2.Type.I16: ... @property - def i32(self) -> proto.type_pb2.Type.I32: - ... - + def i32(self) -> proto.type_pb2.Type.I32: ... @property - def i64(self) -> proto.type_pb2.Type.I64: - ... - + def i64(self) -> proto.type_pb2.Type.I64: ... @property - def fp32(self) -> proto.type_pb2.Type.FP32: - ... - + def fp32(self) -> proto.type_pb2.Type.FP32: ... @property - def fp64(self) -> proto.type_pb2.Type.FP64: - ... - + def fp64(self) -> proto.type_pb2.Type.FP64: ... @property - def string(self) -> proto.type_pb2.Type.String: - ... - + def string(self) -> proto.type_pb2.Type.String: ... @property - def binary(self) -> proto.type_pb2.Type.Binary: - ... - + def binary(self) -> proto.type_pb2.Type.Binary: ... @property def timestamp(self) -> proto.type_pb2.Type.Timestamp: """Deprecated in favor of `ParameterizedPrecisionTimestamp precision_timestamp`""" @property - def date(self) -> proto.type_pb2.Type.Date: - ... - + def date(self) -> proto.type_pb2.Type.Date: ... @property def time(self) -> proto.type_pb2.Type.Time: """Deprecated in favor of `ParameterizedPrecisionTime precision_time`""" @property - def interval_year(self) -> proto.type_pb2.Type.IntervalYear: - ... - + def interval_year(self) -> proto.type_pb2.Type.IntervalYear: ... @property - def interval_day(self) -> global___ParameterizedType.ParameterizedIntervalDay: - ... - + def interval_day(self) -> global___ParameterizedType.ParameterizedIntervalDay: ... @property - def interval_compound(self) -> global___ParameterizedType.ParameterizedIntervalCompound: - ... - + def interval_compound(self) -> global___ParameterizedType.ParameterizedIntervalCompound: ... @property def timestamp_tz(self) -> proto.type_pb2.Type.TimestampTZ: """Deprecated in favor of `ParameterizedPrecisionTimestampTZ precision_timestamp_tz`""" @property - def uuid(self) -> proto.type_pb2.Type.UUID: - ... - + def uuid(self) -> proto.type_pb2.Type.UUID: ... @property - def fixed_char(self) -> global___ParameterizedType.ParameterizedFixedChar: - ... - + def fixed_char(self) -> global___ParameterizedType.ParameterizedFixedChar: ... @property - def varchar(self) -> global___ParameterizedType.ParameterizedVarChar: - ... - + def varchar(self) -> global___ParameterizedType.ParameterizedVarChar: ... @property - def fixed_binary(self) -> global___ParameterizedType.ParameterizedFixedBinary: - ... - + def fixed_binary(self) -> global___ParameterizedType.ParameterizedFixedBinary: ... @property - def decimal(self) -> global___ParameterizedType.ParameterizedDecimal: - ... - + def decimal(self) -> global___ParameterizedType.ParameterizedDecimal: ... @property - def precision_time(self) -> global___ParameterizedType.ParameterizedPrecisionTime: - ... - + def precision_time(self) -> global___ParameterizedType.ParameterizedPrecisionTime: ... @property - def precision_timestamp(self) -> global___ParameterizedType.ParameterizedPrecisionTimestamp: - ... - + def precision_timestamp(self) -> global___ParameterizedType.ParameterizedPrecisionTimestamp: ... @property - def precision_timestamp_tz(self) -> global___ParameterizedType.ParameterizedPrecisionTimestampTZ: - ... - + def precision_timestamp_tz(self) -> global___ParameterizedType.ParameterizedPrecisionTimestampTZ: ... @property - def struct(self) -> global___ParameterizedType.ParameterizedStruct: - ... - + def struct(self) -> global___ParameterizedType.ParameterizedStruct: ... @property - def list(self) -> global___ParameterizedType.ParameterizedList: - ... - + def list(self) -> global___ParameterizedType.ParameterizedList: ... @property - def map(self) -> global___ParameterizedType.ParameterizedMap: - ... - + def map(self) -> global___ParameterizedType.ParameterizedMap: ... @property - def user_defined(self) -> global___ParameterizedType.ParameterizedUserDefined: - ... - + def user_defined(self) -> global___ParameterizedType.ParameterizedUserDefined: ... @property - def type_parameter(self) -> global___ParameterizedType.TypeParameter: - ... - - def __init__(self, *, bool: proto.type_pb2.Type.Boolean | None=..., i8: proto.type_pb2.Type.I8 | None=..., i16: proto.type_pb2.Type.I16 | None=..., i32: proto.type_pb2.Type.I32 | None=..., i64: proto.type_pb2.Type.I64 | None=..., fp32: proto.type_pb2.Type.FP32 | None=..., fp64: proto.type_pb2.Type.FP64 | None=..., string: proto.type_pb2.Type.String | None=..., binary: proto.type_pb2.Type.Binary | None=..., timestamp: proto.type_pb2.Type.Timestamp | None=..., date: proto.type_pb2.Type.Date | None=..., time: proto.type_pb2.Type.Time | None=..., interval_year: proto.type_pb2.Type.IntervalYear | None=..., interval_day: global___ParameterizedType.ParameterizedIntervalDay | None=..., interval_compound: global___ParameterizedType.ParameterizedIntervalCompound | None=..., timestamp_tz: proto.type_pb2.Type.TimestampTZ | None=..., uuid: proto.type_pb2.Type.UUID | None=..., fixed_char: global___ParameterizedType.ParameterizedFixedChar | None=..., varchar: global___ParameterizedType.ParameterizedVarChar | None=..., fixed_binary: global___ParameterizedType.ParameterizedFixedBinary | None=..., decimal: global___ParameterizedType.ParameterizedDecimal | None=..., precision_time: global___ParameterizedType.ParameterizedPrecisionTime | None=..., precision_timestamp: global___ParameterizedType.ParameterizedPrecisionTimestamp | None=..., precision_timestamp_tz: global___ParameterizedType.ParameterizedPrecisionTimestampTZ | None=..., struct: global___ParameterizedType.ParameterizedStruct | None=..., list: global___ParameterizedType.ParameterizedList | None=..., map: global___ParameterizedType.ParameterizedMap | None=..., user_defined: global___ParameterizedType.ParameterizedUserDefined | None=..., user_defined_pointer: builtins.int=..., type_parameter: global___ParameterizedType.TypeParameter | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter', b'type_parameter', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter', b'type_parameter', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['kind', b'kind']) -> typing.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'interval_compound', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'precision_time', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'list', 'map', 'user_defined', 'user_defined_pointer', 'type_parameter'] | None: - ... -global___ParameterizedType = ParameterizedType \ No newline at end of file + def type_parameter(self) -> global___ParameterizedType.TypeParameter: ... + def __init__( + self, + *, + bool: proto.type_pb2.Type.Boolean | None = ..., + i8: proto.type_pb2.Type.I8 | None = ..., + i16: proto.type_pb2.Type.I16 | None = ..., + i32: proto.type_pb2.Type.I32 | None = ..., + i64: proto.type_pb2.Type.I64 | None = ..., + fp32: proto.type_pb2.Type.FP32 | None = ..., + fp64: proto.type_pb2.Type.FP64 | None = ..., + string: proto.type_pb2.Type.String | None = ..., + binary: proto.type_pb2.Type.Binary | None = ..., + timestamp: proto.type_pb2.Type.Timestamp | None = ..., + date: proto.type_pb2.Type.Date | None = ..., + time: proto.type_pb2.Type.Time | None = ..., + interval_year: proto.type_pb2.Type.IntervalYear | None = ..., + interval_day: global___ParameterizedType.ParameterizedIntervalDay | None = ..., + interval_compound: global___ParameterizedType.ParameterizedIntervalCompound | None = ..., + timestamp_tz: proto.type_pb2.Type.TimestampTZ | None = ..., + uuid: proto.type_pb2.Type.UUID | None = ..., + fixed_char: global___ParameterizedType.ParameterizedFixedChar | None = ..., + varchar: global___ParameterizedType.ParameterizedVarChar | None = ..., + fixed_binary: global___ParameterizedType.ParameterizedFixedBinary | None = ..., + decimal: global___ParameterizedType.ParameterizedDecimal | None = ..., + precision_time: global___ParameterizedType.ParameterizedPrecisionTime | None = ..., + precision_timestamp: global___ParameterizedType.ParameterizedPrecisionTimestamp | None = ..., + precision_timestamp_tz: global___ParameterizedType.ParameterizedPrecisionTimestampTZ | None = ..., + struct: global___ParameterizedType.ParameterizedStruct | None = ..., + list: global___ParameterizedType.ParameterizedList | None = ..., + map: global___ParameterizedType.ParameterizedMap | None = ..., + user_defined: global___ParameterizedType.ParameterizedUserDefined | None = ..., + user_defined_pointer: builtins.int = ..., + type_parameter: global___ParameterizedType.TypeParameter | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["binary", b"binary", "bool", b"bool", "date", b"date", "decimal", b"decimal", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "interval_compound", b"interval_compound", "interval_day", b"interval_day", "interval_year", b"interval_year", "kind", b"kind", "list", b"list", "map", b"map", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "type_parameter", b"type_parameter", "user_defined", b"user_defined", "user_defined_pointer", b"user_defined_pointer", "uuid", b"uuid", "varchar", b"varchar"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["binary", b"binary", "bool", b"bool", "date", b"date", "decimal", b"decimal", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "interval_compound", b"interval_compound", "interval_day", b"interval_day", "interval_year", b"interval_year", "kind", b"kind", "list", b"list", "map", b"map", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "type_parameter", b"type_parameter", "user_defined", b"user_defined", "user_defined_pointer", b"user_defined_pointer", "uuid", b"uuid", "varchar", b"varchar"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["kind", b"kind"]) -> typing.Literal["bool", "i8", "i16", "i32", "i64", "fp32", "fp64", "string", "binary", "timestamp", "date", "time", "interval_year", "interval_day", "interval_compound", "timestamp_tz", "uuid", "fixed_char", "varchar", "fixed_binary", "decimal", "precision_time", "precision_timestamp", "precision_timestamp_tz", "struct", "list", "map", "user_defined", "user_defined_pointer", "type_parameter"] | None: ... + +global___ParameterizedType = ParameterizedType diff --git a/src/substrait/gen/proto/plan_pb2.py b/src/substrait/gen/proto/plan_pb2.py index 6cad878..eae3fb0 100644 --- a/src/substrait/gen/proto/plan_pb2.py +++ b/src/substrait/gen/proto/plan_pb2.py @@ -1,27 +1,50 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: proto/plan.proto +# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 5, + '', + 'proto/plan.proto' +) +# @@protoc_insertion_point(imports) + _sym_db = _symbol_database.Default() -from ..proto import algebra_pb2 as proto_dot_algebra__pb2 -from ..proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 -from ..proto import type_pb2 as proto_dot_type__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/plan.proto\x12\x05proto\x1a\x13proto/algebra.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/type.proto"[\n\x07PlanRel\x12\x1e\n\x03rel\x18\x01 \x01(\x0b2\n.proto.RelH\x00R\x03rel\x12$\n\x04root\x18\x02 \x01(\x0b2\x0e.proto.RelRootH\x00R\x04rootB\n\n\x08rel_type"\xd2\x04\n\x04Plan\x12(\n\x07version\x18\x06 \x01(\x0b2\x0e.proto.VersionR\x07version\x12O\n\x0eextension_uris\x18\x01 \x03(\x0b2$.proto.extensions.SimpleExtensionURIB\x02\x18\x01R\rextensionUris\x12K\n\x0eextension_urns\x18\x08 \x03(\x0b2$.proto.extensions.SimpleExtensionURNR\rextensionUrns\x12L\n\nextensions\x18\x02 \x03(\x0b2,.proto.extensions.SimpleExtensionDeclarationR\nextensions\x12,\n\trelations\x18\x03 \x03(\x0b2\x0e.proto.PlanRelR\trelations\x12T\n\x13advanced_extensions\x18\x04 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x12advancedExtensions\x12,\n\x12expected_type_urls\x18\x05 \x03(\tR\x10expectedTypeUrls\x12M\n\x12parameter_bindings\x18\x07 \x03(\x0b2\x1e.proto.DynamicParameterBindingR\x11parameterBindings\x123\n\x0ctype_aliases\x18\t \x03(\x0b2\x10.proto.TypeAliasR\x0btypeAliases"7\n\x0bPlanVersion\x12(\n\x07version\x18\x06 \x01(\x0b2\x0e.proto.VersionR\x07version"\xa9\x01\n\x07Version\x12!\n\x0cmajor_number\x18\x01 \x01(\rR\x0bmajorNumber\x12!\n\x0cminor_number\x18\x02 \x01(\rR\x0bminorNumber\x12!\n\x0cpatch_number\x18\x03 \x01(\rR\x0bpatchNumber\x12\x19\n\x08git_hash\x18\x04 \x01(\tR\x07gitHash\x12\x1a\n\x08producer\x18\x05 \x01(\tR\x08producer"u\n\x17DynamicParameterBinding\x12)\n\x10parameter_anchor\x18\x01 \x01(\rR\x0fparameterAnchor\x12/\n\x05value\x18\x02 \x01(\x0b2\x19.proto.Expression.LiteralR\x05valueB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.plan_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _PLAN.fields_by_name['extension_uris']._options = None - _PLAN.fields_by_name['extension_uris']._serialized_options = b'\x18\x01' - _PLANREL._serialized_start = 101 - _PLANREL._serialized_end = 192 - _PLAN._serialized_start = 195 - _PLAN._serialized_end = 789 - _PLANVERSION._serialized_start = 791 - _PLANVERSION._serialized_end = 846 - _VERSION._serialized_start = 849 - _VERSION._serialized_end = 1018 - _DYNAMICPARAMETERBINDING._serialized_start = 1020 - _DYNAMICPARAMETERBINDING._serialized_end = 1137 \ No newline at end of file + + +from proto import algebra_pb2 as proto_dot_algebra__pb2 +from proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 +from proto import type_pb2 as proto_dot_type__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/plan.proto\x12\x05proto\x1a\x13proto/algebra.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/type.proto\"[\n\x07PlanRel\x12\x1e\n\x03rel\x18\x01 \x01(\x0b\x32\n.proto.RelH\x00R\x03rel\x12$\n\x04root\x18\x02 \x01(\x0b\x32\x0e.proto.RelRootH\x00R\x04rootB\n\n\x08rel_type\"\xd2\x04\n\x04Plan\x12(\n\x07version\x18\x06 \x01(\x0b\x32\x0e.proto.VersionR\x07version\x12O\n\x0e\x65xtension_uris\x18\x01 \x03(\x0b\x32$.proto.extensions.SimpleExtensionURIB\x02\x18\x01R\rextensionUris\x12K\n\x0e\x65xtension_urns\x18\x08 \x03(\x0b\x32$.proto.extensions.SimpleExtensionURNR\rextensionUrns\x12L\n\nextensions\x18\x02 \x03(\x0b\x32,.proto.extensions.SimpleExtensionDeclarationR\nextensions\x12,\n\trelations\x18\x03 \x03(\x0b\x32\x0e.proto.PlanRelR\trelations\x12T\n\x13\x61\x64vanced_extensions\x18\x04 \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x12\x61\x64vancedExtensions\x12,\n\x12\x65xpected_type_urls\x18\x05 \x03(\tR\x10\x65xpectedTypeUrls\x12M\n\x12parameter_bindings\x18\x07 \x03(\x0b\x32\x1e.proto.DynamicParameterBindingR\x11parameterBindings\x12\x33\n\x0ctype_aliases\x18\t \x03(\x0b\x32\x10.proto.TypeAliasR\x0btypeAliases\"7\n\x0bPlanVersion\x12(\n\x07version\x18\x06 \x01(\x0b\x32\x0e.proto.VersionR\x07version\"\xa9\x01\n\x07Version\x12!\n\x0cmajor_number\x18\x01 \x01(\rR\x0bmajorNumber\x12!\n\x0cminor_number\x18\x02 \x01(\rR\x0bminorNumber\x12!\n\x0cpatch_number\x18\x03 \x01(\rR\x0bpatchNumber\x12\x19\n\x08git_hash\x18\x04 \x01(\tR\x07gitHash\x12\x1a\n\x08producer\x18\x05 \x01(\tR\x08producer\"u\n\x17\x44ynamicParameterBinding\x12)\n\x10parameter_anchor\x18\x01 \x01(\rR\x0fparameterAnchor\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.proto.Expression.LiteralR\x05valueB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.plan_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' + _globals['_PLAN'].fields_by_name['extension_uris']._loaded_options = None + _globals['_PLAN'].fields_by_name['extension_uris']._serialized_options = b'\030\001' + _globals['_PLANREL']._serialized_start=101 + _globals['_PLANREL']._serialized_end=192 + _globals['_PLAN']._serialized_start=195 + _globals['_PLAN']._serialized_end=789 + _globals['_PLANVERSION']._serialized_start=791 + _globals['_PLANVERSION']._serialized_end=846 + _globals['_VERSION']._serialized_start=849 + _globals['_VERSION']._serialized_end=1018 + _globals['_DYNAMICPARAMETERBINDING']._serialized_start=1020 + _globals['_DYNAMICPARAMETERBINDING']._serialized_end=1137 +# @@protoc_insertion_point(module_scope) diff --git a/src/substrait/gen/proto/plan_pb2.pyi b/src/substrait/gen/proto/plan_pb2.pyi index fedd441..c1198f6 100644 --- a/src/substrait/gen/proto/plan_pb2.pyi +++ b/src/substrait/gen/proto/plan_pb2.pyi @@ -2,22 +2,27 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" + import builtins import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.message -from .. import proto +import proto.algebra_pb2 +import proto.extensions.extensions_pb2 +import proto.type_pb2 import typing + DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final class PlanRel(google.protobuf.message.Message): """Either a relation or root relation""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + REL_FIELD_NUMBER: builtins.int ROOT_FIELD_NUMBER: builtins.int - @property def rel(self) -> proto.algebra_pb2.Rel: """Any relation (used for references and CTEs)""" @@ -26,17 +31,16 @@ class PlanRel(google.protobuf.message.Message): def root(self) -> proto.algebra_pb2.RelRoot: """The root of a relation tree""" - def __init__(self, *, rel: proto.algebra_pb2.Rel | None=..., root: proto.algebra_pb2.RelRoot | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['rel', b'rel', 'rel_type', b'rel_type', 'root', b'root']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['rel', b'rel', 'rel_type', b'rel_type', 'root', b'root']) -> None: - ... + def __init__( + self, + *, + rel: proto.algebra_pb2.Rel | None = ..., + root: proto.algebra_pb2.RelRoot | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["rel", b"rel", "rel_type", b"rel_type", "root", b"root"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["rel", b"rel", "rel_type", b"rel_type", "root", b"root"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["rel_type", b"rel_type"]) -> typing.Literal["rel", "root"] | None: ... - def WhichOneof(self, oneof_group: typing.Literal['rel_type', b'rel_type']) -> typing.Literal['rel', 'root'] | None: - ... global___PlanRel = PlanRel @typing.final @@ -44,7 +48,9 @@ class Plan(google.protobuf.message.Message): """Describe a set of operations to complete. For compactness sake, identifiers are normalized at the plan level. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + VERSION_FIELD_NUMBER: builtins.int EXTENSION_URIS_FIELD_NUMBER: builtins.int EXTENSION_URNS_FIELD_NUMBER: builtins.int @@ -54,7 +60,6 @@ class Plan(google.protobuf.message.Message): EXPECTED_TYPE_URLS_FIELD_NUMBER: builtins.int PARAMETER_BINDINGS_FIELD_NUMBER: builtins.int TYPE_ALIASES_FIELD_NUMBER: builtins.int - @property def version(self) -> global___Version: """Substrait version of the plan. Optional up to 0.17.0, required for later @@ -109,14 +114,22 @@ class Plan(google.protobuf.message.Message): many fields, nested parameterized types, string as a type parameter). """ - def __init__(self, *, version: global___Version | None=..., extension_uris: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURI] | None=..., extension_urns: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURN] | None=..., extensions: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionDeclaration] | None=..., relations: collections.abc.Iterable[global___PlanRel] | None=..., advanced_extensions: proto.extensions.extensions_pb2.AdvancedExtension | None=..., expected_type_urls: collections.abc.Iterable[builtins.str] | None=..., parameter_bindings: collections.abc.Iterable[global___DynamicParameterBinding] | None=..., type_aliases: collections.abc.Iterable[proto.type_pb2.TypeAlias] | None=...) -> None: - ... + def __init__( + self, + *, + version: global___Version | None = ..., + extension_uris: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURI] | None = ..., + extension_urns: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURN] | None = ..., + extensions: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionDeclaration] | None = ..., + relations: collections.abc.Iterable[global___PlanRel] | None = ..., + advanced_extensions: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., + expected_type_urls: collections.abc.Iterable[builtins.str] | None = ..., + parameter_bindings: collections.abc.Iterable[global___DynamicParameterBinding] | None = ..., + type_aliases: collections.abc.Iterable[proto.type_pb2.TypeAlias] | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["advanced_extensions", b"advanced_extensions", "version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["advanced_extensions", b"advanced_extensions", "expected_type_urls", b"expected_type_urls", "extension_uris", b"extension_uris", "extension_urns", b"extension_urns", "extensions", b"extensions", "parameter_bindings", b"parameter_bindings", "relations", b"relations", "type_aliases", b"type_aliases", "version", b"version"]) -> None: ... - def HasField(self, field_name: typing.Literal['advanced_extensions', b'advanced_extensions', 'version', b'version']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['advanced_extensions', b'advanced_extensions', 'expected_type_urls', b'expected_type_urls', 'extension_uris', b'extension_uris', 'extension_urns', b'extension_urns', 'extensions', b'extensions', 'parameter_bindings', b'parameter_bindings', 'relations', b'relations', 'type_aliases', b'type_aliases', 'version', b'version']) -> None: - ... global___Plan = Plan @typing.final @@ -127,56 +140,75 @@ class PlanVersion(google.protobuf.message.Message): the Substrait version used to deserialize it, such that a consumer can emit a more helpful error message in this case. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor - VERSION_FIELD_NUMBER: builtins.int + VERSION_FIELD_NUMBER: builtins.int @property - def version(self) -> global___Version: - ... - - def __init__(self, *, version: global___Version | None=...) -> None: - ... + def version(self) -> global___Version: ... + def __init__( + self, + *, + version: global___Version | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["version", b"version"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["version", b"version"]) -> None: ... - def HasField(self, field_name: typing.Literal['version', b'version']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['version', b'version']) -> None: - ... global___PlanVersion = PlanVersion @typing.final class Version(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + MAJOR_NUMBER_FIELD_NUMBER: builtins.int MINOR_NUMBER_FIELD_NUMBER: builtins.int PATCH_NUMBER_FIELD_NUMBER: builtins.int GIT_HASH_FIELD_NUMBER: builtins.int PRODUCER_FIELD_NUMBER: builtins.int major_number: builtins.int - 'Substrait version number.' + """Substrait version number.""" minor_number: builtins.int patch_number: builtins.int git_hash: builtins.str - 'If a particular version of Substrait is used that does not correspond to\n a version number exactly (for example when using an unofficial fork or\n using a version that is not yet released or is between versions), set this\n to the full git hash of the utilized commit of\n https://github.com/substrait-io/substrait (or fork thereof), represented\n using a lowercase hex ASCII string 40 characters in length. The version\n number above should be set to the most recent version tag in the history\n of that commit.\n ' + """If a particular version of Substrait is used that does not correspond to + a version number exactly (for example when using an unofficial fork or + using a version that is not yet released or is between versions), set this + to the full git hash of the utilized commit of + https://github.com/substrait-io/substrait (or fork thereof), represented + using a lowercase hex ASCII string 40 characters in length. The version + number above should be set to the most recent version tag in the history + of that commit. + """ producer: builtins.str - 'Identifying information for the producer that created this plan. Under\n ideal circumstances, consumers should not need this information. However,\n it is foreseen that consumers may need to work around bugs in particular\n producers in practice, and therefore may need to know which producer\n created the plan.\n ' - - def __init__(self, *, major_number: builtins.int=..., minor_number: builtins.int=..., patch_number: builtins.int=..., git_hash: builtins.str=..., producer: builtins.str=...) -> None: - ... + """Identifying information for the producer that created this plan. Under + ideal circumstances, consumers should not need this information. However, + it is foreseen that consumers may need to work around bugs in particular + producers in practice, and therefore may need to know which producer + created the plan. + """ + def __init__( + self, + *, + major_number: builtins.int = ..., + minor_number: builtins.int = ..., + patch_number: builtins.int = ..., + git_hash: builtins.str = ..., + producer: builtins.str = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["git_hash", b"git_hash", "major_number", b"major_number", "minor_number", b"minor_number", "patch_number", b"patch_number", "producer", b"producer"]) -> None: ... - def ClearField(self, field_name: typing.Literal['git_hash', b'git_hash', 'major_number', b'major_number', 'minor_number', b'minor_number', 'patch_number', b'patch_number', 'producer', b'producer']) -> None: - ... global___Version = Version @typing.final class DynamicParameterBinding(google.protobuf.message.Message): """Represents a binding for a dynamic parameter.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + PARAMETER_ANCHOR_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int parameter_anchor: builtins.int - 'The parameter anchor that identifies the dynamic parameter reference.' - + """The parameter anchor that identifies the dynamic parameter reference.""" @property def value(self) -> proto.algebra_pb2.Expression.Literal: """The literal value assigned to the parameter at runtime. @@ -184,12 +216,13 @@ class DynamicParameterBinding(google.protobuf.message.Message): DynamicParameter expression in the plan. """ - def __init__(self, *, parameter_anchor: builtins.int=..., value: proto.algebra_pb2.Expression.Literal | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: - ... + def __init__( + self, + *, + parameter_anchor: builtins.int = ..., + value: proto.algebra_pb2.Expression.Literal | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["parameter_anchor", b"parameter_anchor", "value", b"value"]) -> None: ... - def ClearField(self, field_name: typing.Literal['parameter_anchor', b'parameter_anchor', 'value', b'value']) -> None: - ... -global___DynamicParameterBinding = DynamicParameterBinding \ No newline at end of file +global___DynamicParameterBinding = DynamicParameterBinding diff --git a/src/substrait/gen/proto/type_expressions_pb2.py b/src/substrait/gen/proto/type_expressions_pb2.py index fdb8953..6af47ed 100644 --- a/src/substrait/gen/proto/type_expressions_pb2.py +++ b/src/substrait/gen/proto/type_expressions_pb2.py @@ -1,65 +1,88 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: proto/type_expressions.proto +# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 5, + '', + 'proto/type_expressions.proto' +) +# @@protoc_insertion_point(imports) + _sym_db = _symbol_database.Default() -from ..proto import type_pb2 as proto_dot_type__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cproto/type_expressions.proto\x12\x05proto\x1a\x10proto/type.proto"\xfc/\n\x14DerivationExpression\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12*\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeB\x02\x18\x01H\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x12V\n\x0cinterval_day\x18\x14 \x01(\x0b21.proto.DerivationExpression.ExpressionIntervalDayH\x00R\x0bintervalDay\x12e\n\x11interval_compound\x18* \x01(\x0b26.proto.DerivationExpression.ExpressionIntervalCompoundH\x00R\x10intervalCompound\x12P\n\nfixed_char\x18\x15 \x01(\x0b2/.proto.DerivationExpression.ExpressionFixedCharH\x00R\tfixedChar\x12I\n\x07varchar\x18\x16 \x01(\x0b2-.proto.DerivationExpression.ExpressionVarCharH\x00R\x07varchar\x12V\n\x0cfixed_binary\x18\x17 \x01(\x0b21.proto.DerivationExpression.ExpressionFixedBinaryH\x00R\x0bfixedBinary\x12I\n\x07decimal\x18\x18 \x01(\x0b2-.proto.DerivationExpression.ExpressionDecimalH\x00R\x07decimal\x12\\\n\x0eprecision_time\x18+ \x01(\x0b23.proto.DerivationExpression.ExpressionPrecisionTimeH\x00R\rprecisionTime\x12k\n\x13precision_timestamp\x18( \x01(\x0b28.proto.DerivationExpression.ExpressionPrecisionTimestampH\x00R\x12precisionTimestamp\x12r\n\x16precision_timestamp_tz\x18) \x01(\x0b2:.proto.DerivationExpression.ExpressionPrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12F\n\x06struct\x18\x19 \x01(\x0b2,.proto.DerivationExpression.ExpressionStructH\x00R\x06struct\x12@\n\x04list\x18\x1b \x01(\x0b2*.proto.DerivationExpression.ExpressionListH\x00R\x04list\x12=\n\x03map\x18\x1c \x01(\x0b2).proto.DerivationExpression.ExpressionMapH\x00R\x03map\x12V\n\x0cuser_defined\x18\x1e \x01(\x0b21.proto.DerivationExpression.ExpressionUserDefinedH\x00R\x0buserDefined\x126\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x120\n\x13type_parameter_name\x18! \x01(\tH\x00R\x11typeParameterName\x126\n\x16integer_parameter_name\x18" \x01(\tH\x00R\x14integerParameterName\x12)\n\x0finteger_literal\x18# \x01(\x05H\x00R\x0eintegerLiteral\x12@\n\x08unary_op\x18$ \x01(\x0b2#.proto.DerivationExpression.UnaryOpH\x00R\x07unaryOp\x12C\n\tbinary_op\x18% \x01(\x0b2$.proto.DerivationExpression.BinaryOpH\x00R\x08binaryOp\x12=\n\x07if_else\x18& \x01(\x0b2".proto.DerivationExpression.IfElseH\x00R\x06ifElse\x12R\n\x0ereturn_program\x18\' \x01(\x0b2).proto.DerivationExpression.ReturnProgramH\x00R\rreturnProgram\x1a\xb2\x01\n\x13ExpressionFixedChar\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb0\x01\n\x11ExpressionVarChar\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb4\x01\n\x15ExpressionFixedBinary\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x11ExpressionDecimal\x121\n\x05scale\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x05scale\x129\n\tprecision\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x17ExpressionPrecisionTime\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc1\x01\n\x1cExpressionPrecisionTimestamp\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xba\x01\n\x15ExpressionIntervalDay\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbf\x01\n\x1aExpressionIntervalCompound\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc3\x01\n\x1eExpressionPrecisionTimestampTZ\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xad\x01\n\x10ExpressionStruct\x121\n\x05types\x18\x01 \x03(\x0b2\x1b.proto.DerivationExpressionR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1as\n\x15ExpressionNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12D\n\x06struct\x18\x02 \x01(\x0b2,.proto.DerivationExpression.ExpressionStructR\x06struct\x1a\xa9\x01\n\x0eExpressionList\x12/\n\x04type\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd9\x01\n\rExpressionMap\x12-\n\x03key\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x03key\x121\n\x05value\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa2\x01\n\x15ExpressionUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc0\x01\n\x06IfElse\x12>\n\x0cif_condition\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x0bifCondition\x128\n\tif_return\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x08ifReturn\x12<\n\x0belse_return\x18\x03 \x01(\x0b2\x1b.proto.DerivationExpressionR\nelseReturn\x1a\xcf\x01\n\x07UnaryOp\x12H\n\x07op_type\x18\x01 \x01(\x0e2/.proto.DerivationExpression.UnaryOp.UnaryOpTypeR\x06opType\x12-\n\x03arg\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x03arg"K\n\x0bUnaryOpType\x12\x1d\n\x19UNARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19UNARY_OP_TYPE_BOOLEAN_NOT\x10\x01\x1a\xa8\x04\n\x08BinaryOp\x12J\n\x07op_type\x18\x01 \x01(\x0e21.proto.DerivationExpression.BinaryOp.BinaryOpTypeR\x06opType\x12/\n\x04arg1\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04arg1\x12/\n\x04arg2\x18\x03 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04arg2"\xed\x02\n\x0cBinaryOpType\x12\x1e\n\x1aBINARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13BINARY_OP_TYPE_PLUS\x10\x01\x12\x18\n\x14BINARY_OP_TYPE_MINUS\x10\x02\x12\x1b\n\x17BINARY_OP_TYPE_MULTIPLY\x10\x03\x12\x19\n\x15BINARY_OP_TYPE_DIVIDE\x10\x04\x12\x16\n\x12BINARY_OP_TYPE_MIN\x10\x05\x12\x16\n\x12BINARY_OP_TYPE_MAX\x10\x06\x12\x1f\n\x1bBINARY_OP_TYPE_GREATER_THAN\x10\x07\x12\x1c\n\x18BINARY_OP_TYPE_LESS_THAN\x10\x08\x12\x16\n\x12BINARY_OP_TYPE_AND\x10\t\x12\x15\n\x11BINARY_OP_TYPE_OR\x10\n\x12\x19\n\x15BINARY_OP_TYPE_EQUALS\x10\x0b\x12\x19\n\x15BINARY_OP_TYPE_COVERS\x10\x0c\x1a\x8e\x02\n\rReturnProgram\x12V\n\x0bassignments\x18\x01 \x03(\x0b24.proto.DerivationExpression.ReturnProgram.AssignmentR\x0bassignments\x12F\n\x10final_expression\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x0ffinalExpression\x1a]\n\nAssignment\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12;\n\nexpression\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\nexpressionB\x06\n\x04kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.type_expressions_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _DERIVATIONEXPRESSION.fields_by_name['timestamp']._options = None - _DERIVATIONEXPRESSION.fields_by_name['timestamp']._serialized_options = b'\x18\x01' - _DERIVATIONEXPRESSION.fields_by_name['time']._options = None - _DERIVATIONEXPRESSION.fields_by_name['time']._serialized_options = b'\x18\x01' - _DERIVATIONEXPRESSION.fields_by_name['timestamp_tz']._options = None - _DERIVATIONEXPRESSION.fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' - _DERIVATIONEXPRESSION.fields_by_name['user_defined_pointer']._options = None - _DERIVATIONEXPRESSION.fields_by_name['user_defined_pointer']._serialized_options = b'\x18\x01' - _DERIVATIONEXPRESSION._serialized_start = 58 - _DERIVATIONEXPRESSION._serialized_end = 6198 - _DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR._serialized_start = 2363 - _DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR._serialized_end = 2541 - _DERIVATIONEXPRESSION_EXPRESSIONVARCHAR._serialized_start = 2544 - _DERIVATIONEXPRESSION_EXPRESSIONVARCHAR._serialized_end = 2720 - _DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY._serialized_start = 2723 - _DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY._serialized_end = 2903 - _DERIVATIONEXPRESSION_EXPRESSIONDECIMAL._serialized_start = 2906 - _DERIVATIONEXPRESSION_EXPRESSIONDECIMAL._serialized_end = 3139 - _DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIME._serialized_start = 3142 - _DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIME._serialized_end = 3330 - _DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP._serialized_start = 3333 - _DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP._serialized_end = 3526 - _DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY._serialized_start = 3529 - _DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY._serialized_end = 3715 - _DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND._serialized_start = 3718 - _DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND._serialized_end = 3909 - _DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ._serialized_start = 3912 - _DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ._serialized_end = 4107 - _DERIVATIONEXPRESSION_EXPRESSIONSTRUCT._serialized_start = 4110 - _DERIVATIONEXPRESSION_EXPRESSIONSTRUCT._serialized_end = 4283 - _DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT._serialized_start = 4285 - _DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT._serialized_end = 4400 - _DERIVATIONEXPRESSION_EXPRESSIONLIST._serialized_start = 4403 - _DERIVATIONEXPRESSION_EXPRESSIONLIST._serialized_end = 4572 - _DERIVATIONEXPRESSION_EXPRESSIONMAP._serialized_start = 4575 - _DERIVATIONEXPRESSION_EXPRESSIONMAP._serialized_end = 4792 - _DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED._serialized_start = 4795 - _DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED._serialized_end = 4957 - _DERIVATIONEXPRESSION_IFELSE._serialized_start = 4960 - _DERIVATIONEXPRESSION_IFELSE._serialized_end = 5152 - _DERIVATIONEXPRESSION_UNARYOP._serialized_start = 5155 - _DERIVATIONEXPRESSION_UNARYOP._serialized_end = 5362 - _DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE._serialized_start = 5287 - _DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE._serialized_end = 5362 - _DERIVATIONEXPRESSION_BINARYOP._serialized_start = 5365 - _DERIVATIONEXPRESSION_BINARYOP._serialized_end = 5917 - _DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE._serialized_start = 5552 - _DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE._serialized_end = 5917 - _DERIVATIONEXPRESSION_RETURNPROGRAM._serialized_start = 5920 - _DERIVATIONEXPRESSION_RETURNPROGRAM._serialized_end = 6190 - _DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT._serialized_start = 6097 - _DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT._serialized_end = 6190 \ No newline at end of file + + +from proto import type_pb2 as proto_dot_type__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cproto/type_expressions.proto\x12\x05proto\x1a\x10proto/type.proto\"\xfc/\n\x14\x44\x65rivationExpression\x12)\n\x04\x62ool\x18\x01 \x01(\x0b\x32\x13.proto.Type.BooleanH\x00R\x04\x62ool\x12 \n\x02i8\x18\x02 \x01(\x0b\x32\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b\x32\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b\x32\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b\x32\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04\x66p32\x18\n \x01(\x0b\x32\x10.proto.Type.FP32H\x00R\x04\x66p32\x12&\n\x04\x66p64\x18\x0b \x01(\x0b\x32\x10.proto.Type.FP64H\x00R\x04\x66p64\x12,\n\x06string\x18\x0c \x01(\x0b\x32\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06\x62inary\x18\r \x01(\x0b\x32\x12.proto.Type.BinaryH\x00R\x06\x62inary\x12\x39\n\ttimestamp\x18\x0e \x01(\x0b\x32\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04\x64\x61te\x18\x10 \x01(\x0b\x32\x10.proto.Type.DateH\x00R\x04\x64\x61te\x12*\n\x04time\x18\x11 \x01(\x0b\x32\x10.proto.Type.TimeB\x02\x18\x01H\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b\x32\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b\x32\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b\x32\x10.proto.Type.UUIDH\x00R\x04uuid\x12V\n\x0cinterval_day\x18\x14 \x01(\x0b\x32\x31.proto.DerivationExpression.ExpressionIntervalDayH\x00R\x0bintervalDay\x12\x65\n\x11interval_compound\x18* \x01(\x0b\x32\x36.proto.DerivationExpression.ExpressionIntervalCompoundH\x00R\x10intervalCompound\x12P\n\nfixed_char\x18\x15 \x01(\x0b\x32/.proto.DerivationExpression.ExpressionFixedCharH\x00R\tfixedChar\x12I\n\x07varchar\x18\x16 \x01(\x0b\x32-.proto.DerivationExpression.ExpressionVarCharH\x00R\x07varchar\x12V\n\x0c\x66ixed_binary\x18\x17 \x01(\x0b\x32\x31.proto.DerivationExpression.ExpressionFixedBinaryH\x00R\x0b\x66ixedBinary\x12I\n\x07\x64\x65\x63imal\x18\x18 \x01(\x0b\x32-.proto.DerivationExpression.ExpressionDecimalH\x00R\x07\x64\x65\x63imal\x12\\\n\x0eprecision_time\x18+ \x01(\x0b\x32\x33.proto.DerivationExpression.ExpressionPrecisionTimeH\x00R\rprecisionTime\x12k\n\x13precision_timestamp\x18( \x01(\x0b\x32\x38.proto.DerivationExpression.ExpressionPrecisionTimestampH\x00R\x12precisionTimestamp\x12r\n\x16precision_timestamp_tz\x18) \x01(\x0b\x32:.proto.DerivationExpression.ExpressionPrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12\x46\n\x06struct\x18\x19 \x01(\x0b\x32,.proto.DerivationExpression.ExpressionStructH\x00R\x06struct\x12@\n\x04list\x18\x1b \x01(\x0b\x32*.proto.DerivationExpression.ExpressionListH\x00R\x04list\x12=\n\x03map\x18\x1c \x01(\x0b\x32).proto.DerivationExpression.ExpressionMapH\x00R\x03map\x12V\n\x0cuser_defined\x18\x1e \x01(\x0b\x32\x31.proto.DerivationExpression.ExpressionUserDefinedH\x00R\x0buserDefined\x12\x36\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x12\x30\n\x13type_parameter_name\x18! \x01(\tH\x00R\x11typeParameterName\x12\x36\n\x16integer_parameter_name\x18\" \x01(\tH\x00R\x14integerParameterName\x12)\n\x0finteger_literal\x18# \x01(\x05H\x00R\x0eintegerLiteral\x12@\n\x08unary_op\x18$ \x01(\x0b\x32#.proto.DerivationExpression.UnaryOpH\x00R\x07unaryOp\x12\x43\n\tbinary_op\x18% \x01(\x0b\x32$.proto.DerivationExpression.BinaryOpH\x00R\x08\x62inaryOp\x12=\n\x07if_else\x18& \x01(\x0b\x32\".proto.DerivationExpression.IfElseH\x00R\x06ifElse\x12R\n\x0ereturn_program\x18\' \x01(\x0b\x32).proto.DerivationExpression.ReturnProgramH\x00R\rreturnProgram\x1a\xb2\x01\n\x13\x45xpressionFixedChar\x12\x33\n\x06length\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb0\x01\n\x11\x45xpressionVarChar\x12\x33\n\x06length\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb4\x01\n\x15\x45xpressionFixedBinary\x12\x33\n\x06length\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x11\x45xpressionDecimal\x12\x31\n\x05scale\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x05scale\x12\x39\n\tprecision\x18\x02 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x04 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x17\x45xpressionPrecisionTime\x12\x39\n\tprecision\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc1\x01\n\x1c\x45xpressionPrecisionTimestamp\x12\x39\n\tprecision\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xba\x01\n\x15\x45xpressionIntervalDay\x12\x39\n\tprecision\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbf\x01\n\x1a\x45xpressionIntervalCompound\x12\x39\n\tprecision\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc3\x01\n\x1e\x45xpressionPrecisionTimestampTZ\x12\x39\n\tprecision\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xad\x01\n\x10\x45xpressionStruct\x12\x31\n\x05types\x18\x01 \x03(\x0b\x32\x1b.proto.DerivationExpressionR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1as\n\x15\x45xpressionNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12\x44\n\x06struct\x18\x02 \x01(\x0b\x32,.proto.DerivationExpression.ExpressionStructR\x06struct\x1a\xa9\x01\n\x0e\x45xpressionList\x12/\n\x04type\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd9\x01\n\rExpressionMap\x12-\n\x03key\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x03key\x12\x31\n\x05value\x18\x02 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x04 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa2\x01\n\x15\x45xpressionUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc0\x01\n\x06IfElse\x12>\n\x0cif_condition\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x0bifCondition\x12\x38\n\tif_return\x18\x02 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x08ifReturn\x12<\n\x0b\x65lse_return\x18\x03 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\nelseReturn\x1a\xcf\x01\n\x07UnaryOp\x12H\n\x07op_type\x18\x01 \x01(\x0e\x32/.proto.DerivationExpression.UnaryOp.UnaryOpTypeR\x06opType\x12-\n\x03\x61rg\x18\x02 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x03\x61rg\"K\n\x0bUnaryOpType\x12\x1d\n\x19UNARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19UNARY_OP_TYPE_BOOLEAN_NOT\x10\x01\x1a\xa8\x04\n\x08\x42inaryOp\x12J\n\x07op_type\x18\x01 \x01(\x0e\x32\x31.proto.DerivationExpression.BinaryOp.BinaryOpTypeR\x06opType\x12/\n\x04\x61rg1\x18\x02 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x04\x61rg1\x12/\n\x04\x61rg2\x18\x03 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x04\x61rg2\"\xed\x02\n\x0c\x42inaryOpType\x12\x1e\n\x1a\x42INARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13\x42INARY_OP_TYPE_PLUS\x10\x01\x12\x18\n\x14\x42INARY_OP_TYPE_MINUS\x10\x02\x12\x1b\n\x17\x42INARY_OP_TYPE_MULTIPLY\x10\x03\x12\x19\n\x15\x42INARY_OP_TYPE_DIVIDE\x10\x04\x12\x16\n\x12\x42INARY_OP_TYPE_MIN\x10\x05\x12\x16\n\x12\x42INARY_OP_TYPE_MAX\x10\x06\x12\x1f\n\x1b\x42INARY_OP_TYPE_GREATER_THAN\x10\x07\x12\x1c\n\x18\x42INARY_OP_TYPE_LESS_THAN\x10\x08\x12\x16\n\x12\x42INARY_OP_TYPE_AND\x10\t\x12\x15\n\x11\x42INARY_OP_TYPE_OR\x10\n\x12\x19\n\x15\x42INARY_OP_TYPE_EQUALS\x10\x0b\x12\x19\n\x15\x42INARY_OP_TYPE_COVERS\x10\x0c\x1a\x8e\x02\n\rReturnProgram\x12V\n\x0b\x61ssignments\x18\x01 \x03(\x0b\x32\x34.proto.DerivationExpression.ReturnProgram.AssignmentR\x0b\x61ssignments\x12\x46\n\x10\x66inal_expression\x18\x02 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x0f\x66inalExpression\x1a]\n\nAssignment\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12;\n\nexpression\x18\x02 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\nexpressionB\x06\n\x04kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.type_expressions_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' + _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp']._loaded_options = None + _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp']._serialized_options = b'\030\001' + _globals['_DERIVATIONEXPRESSION'].fields_by_name['time']._loaded_options = None + _globals['_DERIVATIONEXPRESSION'].fields_by_name['time']._serialized_options = b'\030\001' + _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp_tz']._loaded_options = None + _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp_tz']._serialized_options = b'\030\001' + _globals['_DERIVATIONEXPRESSION'].fields_by_name['user_defined_pointer']._loaded_options = None + _globals['_DERIVATIONEXPRESSION'].fields_by_name['user_defined_pointer']._serialized_options = b'\030\001' + _globals['_DERIVATIONEXPRESSION']._serialized_start=58 + _globals['_DERIVATIONEXPRESSION']._serialized_end=6198 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR']._serialized_start=2363 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR']._serialized_end=2541 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONVARCHAR']._serialized_start=2544 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONVARCHAR']._serialized_end=2720 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY']._serialized_start=2723 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY']._serialized_end=2903 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONDECIMAL']._serialized_start=2906 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONDECIMAL']._serialized_end=3139 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIME']._serialized_start=3142 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIME']._serialized_end=3330 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP']._serialized_start=3333 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP']._serialized_end=3526 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY']._serialized_start=3529 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY']._serialized_end=3715 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND']._serialized_start=3718 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND']._serialized_end=3909 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ']._serialized_start=3912 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ']._serialized_end=4107 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONSTRUCT']._serialized_start=4110 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONSTRUCT']._serialized_end=4283 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT']._serialized_start=4285 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT']._serialized_end=4400 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONLIST']._serialized_start=4403 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONLIST']._serialized_end=4572 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONMAP']._serialized_start=4575 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONMAP']._serialized_end=4792 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED']._serialized_start=4795 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED']._serialized_end=4957 + _globals['_DERIVATIONEXPRESSION_IFELSE']._serialized_start=4960 + _globals['_DERIVATIONEXPRESSION_IFELSE']._serialized_end=5152 + _globals['_DERIVATIONEXPRESSION_UNARYOP']._serialized_start=5155 + _globals['_DERIVATIONEXPRESSION_UNARYOP']._serialized_end=5362 + _globals['_DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE']._serialized_start=5287 + _globals['_DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE']._serialized_end=5362 + _globals['_DERIVATIONEXPRESSION_BINARYOP']._serialized_start=5365 + _globals['_DERIVATIONEXPRESSION_BINARYOP']._serialized_end=5917 + _globals['_DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE']._serialized_start=5552 + _globals['_DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE']._serialized_end=5917 + _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM']._serialized_start=5920 + _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM']._serialized_end=6190 + _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT']._serialized_start=6097 + _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT']._serialized_end=6190 +# @@protoc_insertion_point(module_scope) diff --git a/src/substrait/gen/proto/type_expressions_pb2.pyi b/src/substrait/gen/proto/type_expressions_pb2.pyi index 73a563b..9fc873a 100644 --- a/src/substrait/gen/proto/type_expressions_pb2.pyi +++ b/src/substrait/gen/proto/type_expressions_pb2.pyi @@ -2,19 +2,22 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" + import builtins import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.internal.enum_type_wrapper import google.protobuf.message -from .. import proto +import proto.type_pb2 import sys import typing + if sys.version_info >= (3, 10): import typing as typing_extensions else: import typing_extensions + DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final @@ -24,435 +27,410 @@ class DerivationExpression(google.protobuf.message.Message): @typing.final class ExpressionFixedChar(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + LENGTH_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def length(self) -> global___DerivationExpression: - ... - - def __init__(self, *, length: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['length', b'length']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'variation_pointer', b'variation_pointer']) -> None: - ... + def length(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + length: global___DerivationExpression | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["length", b"length"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ExpressionVarChar(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + LENGTH_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def length(self) -> global___DerivationExpression: - ... - - def __init__(self, *, length: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['length', b'length']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'variation_pointer', b'variation_pointer']) -> None: - ... + def length(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + length: global___DerivationExpression | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["length", b"length"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ExpressionFixedBinary(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + LENGTH_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def length(self) -> global___DerivationExpression: - ... - - def __init__(self, *, length: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['length', b'length']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'variation_pointer', b'variation_pointer']) -> None: - ... + def length(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + length: global___DerivationExpression | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["length", b"length"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ExpressionDecimal(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + SCALE_FIELD_NUMBER: builtins.int PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def scale(self) -> global___DerivationExpression: - ... - + def scale(self) -> global___DerivationExpression: ... @property - def precision(self) -> global___DerivationExpression: - ... - - def __init__(self, *, scale: global___DerivationExpression | None=..., precision: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['precision', b'precision', 'scale', b'scale']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'scale', b'scale', 'variation_pointer', b'variation_pointer']) -> None: - ... + def precision(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + scale: global___DerivationExpression | None = ..., + precision: global___DerivationExpression | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["precision", b"precision", "scale", b"scale"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "scale", b"scale", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ExpressionPrecisionTime(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def precision(self) -> global___DerivationExpression: - ... - - def __init__(self, *, precision: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: - ... + def precision(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + precision: global___DerivationExpression | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ExpressionPrecisionTimestamp(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def precision(self) -> global___DerivationExpression: - ... - - def __init__(self, *, precision: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: - ... + def precision(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + precision: global___DerivationExpression | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ExpressionIntervalDay(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def precision(self) -> global___DerivationExpression: - ... - - def __init__(self, *, precision: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: - ... + def precision(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + precision: global___DerivationExpression | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ExpressionIntervalCompound(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def precision(self) -> global___DerivationExpression: - ... - - def __init__(self, *, precision: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: - ... + def precision(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + precision: global___DerivationExpression | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ExpressionPrecisionTimestampTZ(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def precision(self) -> global___DerivationExpression: - ... - - def __init__(self, *, precision: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: - ... + def precision(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + precision: global___DerivationExpression | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ExpressionStruct(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPES_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DerivationExpression]: - ... - - def __init__(self, *, types: collections.abc.Iterable[global___DerivationExpression] | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'types', b'types', 'variation_pointer', b'variation_pointer']) -> None: - ... + def types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DerivationExpression]: ... + def __init__( + self, + *, + types: collections.abc.Iterable[global___DerivationExpression] | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "types", b"types", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ExpressionNamedStruct(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + NAMES_FIELD_NUMBER: builtins.int STRUCT_FIELD_NUMBER: builtins.int - @property - def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: - ... - + def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... @property - def struct(self) -> global___DerivationExpression.ExpressionStruct: - ... - - def __init__(self, *, names: collections.abc.Iterable[builtins.str] | None=..., struct: global___DerivationExpression.ExpressionStruct | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['struct', b'struct']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['names', b'names', 'struct', b'struct']) -> None: - ... + def struct(self) -> global___DerivationExpression.ExpressionStruct: ... + def __init__( + self, + *, + names: collections.abc.Iterable[builtins.str] | None = ..., + struct: global___DerivationExpression.ExpressionStruct | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["struct", b"struct"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["names", b"names", "struct", b"struct"]) -> None: ... @typing.final class ExpressionList(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def type(self) -> global___DerivationExpression: - ... - - def __init__(self, *, type: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type', b'type', 'variation_pointer', b'variation_pointer']) -> None: - ... + def type(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + type: global___DerivationExpression | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type", b"type", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ExpressionMap(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + KEY_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - @property - def key(self) -> global___DerivationExpression: - ... - + def key(self) -> global___DerivationExpression: ... @property - def value(self) -> global___DerivationExpression: - ... - - def __init__(self, *, key: global___DerivationExpression | None=..., value: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['key', b'key', 'nullability', b'nullability', 'value', b'value', 'variation_pointer', b'variation_pointer']) -> None: - ... + def value(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + key: global___DerivationExpression | None = ..., + value: global___DerivationExpression | None = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "nullability", b"nullability", "value", b"value", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class ExpressionUserDefined(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_POINTER_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_pointer: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - - def __init__(self, *, type_pointer: builtins.int=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_pointer', b'type_pointer', 'variation_pointer', b'variation_pointer']) -> None: - ... + def __init__( + self, + *, + type_pointer: builtins.int = ..., + variation_pointer: builtins.int = ..., + nullability: proto.type_pb2.Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_pointer", b"type_pointer", "variation_pointer", b"variation_pointer"]) -> None: ... @typing.final class IfElse(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + IF_CONDITION_FIELD_NUMBER: builtins.int IF_RETURN_FIELD_NUMBER: builtins.int ELSE_RETURN_FIELD_NUMBER: builtins.int - @property - def if_condition(self) -> global___DerivationExpression: - ... - + def if_condition(self) -> global___DerivationExpression: ... @property - def if_return(self) -> global___DerivationExpression: - ... - + def if_return(self) -> global___DerivationExpression: ... @property - def else_return(self) -> global___DerivationExpression: - ... - - def __init__(self, *, if_condition: global___DerivationExpression | None=..., if_return: global___DerivationExpression | None=..., else_return: global___DerivationExpression | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['else_return', b'else_return', 'if_condition', b'if_condition', 'if_return', b'if_return']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['else_return', b'else_return', 'if_condition', b'if_condition', 'if_return', b'if_return']) -> None: - ... + def else_return(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + if_condition: global___DerivationExpression | None = ..., + if_return: global___DerivationExpression | None = ..., + else_return: global___DerivationExpression | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["else_return", b"else_return", "if_condition", b"if_condition", "if_return", b"if_return"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["else_return", b"else_return", "if_condition", b"if_condition", "if_return", b"if_return"]) -> None: ... @typing.final class UnaryOp(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _UnaryOpType: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _UnaryOpTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DerivationExpression.UnaryOp._UnaryOpType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - UNARY_OP_TYPE_UNSPECIFIED: DerivationExpression.UnaryOp._UnaryOpType.ValueType - UNARY_OP_TYPE_BOOLEAN_NOT: DerivationExpression.UnaryOp._UnaryOpType.ValueType + UNARY_OP_TYPE_UNSPECIFIED: DerivationExpression.UnaryOp._UnaryOpType.ValueType # 0 + UNARY_OP_TYPE_BOOLEAN_NOT: DerivationExpression.UnaryOp._UnaryOpType.ValueType # 1 + + class UnaryOpType(_UnaryOpType, metaclass=_UnaryOpTypeEnumTypeWrapper): ... + UNARY_OP_TYPE_UNSPECIFIED: DerivationExpression.UnaryOp.UnaryOpType.ValueType # 0 + UNARY_OP_TYPE_BOOLEAN_NOT: DerivationExpression.UnaryOp.UnaryOpType.ValueType # 1 - class UnaryOpType(_UnaryOpType, metaclass=_UnaryOpTypeEnumTypeWrapper): - ... - UNARY_OP_TYPE_UNSPECIFIED: DerivationExpression.UnaryOp.UnaryOpType.ValueType - UNARY_OP_TYPE_BOOLEAN_NOT: DerivationExpression.UnaryOp.UnaryOpType.ValueType OP_TYPE_FIELD_NUMBER: builtins.int ARG_FIELD_NUMBER: builtins.int op_type: global___DerivationExpression.UnaryOp.UnaryOpType.ValueType - @property - def arg(self) -> global___DerivationExpression: - ... - - def __init__(self, *, op_type: global___DerivationExpression.UnaryOp.UnaryOpType.ValueType=..., arg: global___DerivationExpression | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['arg', b'arg']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['arg', b'arg', 'op_type', b'op_type']) -> None: - ... + def arg(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + op_type: global___DerivationExpression.UnaryOp.UnaryOpType.ValueType = ..., + arg: global___DerivationExpression | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["arg", b"arg"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["arg", b"arg", "op_type", b"op_type"]) -> None: ... @typing.final class BinaryOp(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _BinaryOpType: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _BinaryOpTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DerivationExpression.BinaryOp._BinaryOpType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - BINARY_OP_TYPE_UNSPECIFIED: DerivationExpression.BinaryOp._BinaryOpType.ValueType - BINARY_OP_TYPE_PLUS: DerivationExpression.BinaryOp._BinaryOpType.ValueType - BINARY_OP_TYPE_MINUS: DerivationExpression.BinaryOp._BinaryOpType.ValueType - BINARY_OP_TYPE_MULTIPLY: DerivationExpression.BinaryOp._BinaryOpType.ValueType - BINARY_OP_TYPE_DIVIDE: DerivationExpression.BinaryOp._BinaryOpType.ValueType - BINARY_OP_TYPE_MIN: DerivationExpression.BinaryOp._BinaryOpType.ValueType - BINARY_OP_TYPE_MAX: DerivationExpression.BinaryOp._BinaryOpType.ValueType - BINARY_OP_TYPE_GREATER_THAN: DerivationExpression.BinaryOp._BinaryOpType.ValueType - BINARY_OP_TYPE_LESS_THAN: DerivationExpression.BinaryOp._BinaryOpType.ValueType - BINARY_OP_TYPE_AND: DerivationExpression.BinaryOp._BinaryOpType.ValueType - BINARY_OP_TYPE_OR: DerivationExpression.BinaryOp._BinaryOpType.ValueType - BINARY_OP_TYPE_EQUALS: DerivationExpression.BinaryOp._BinaryOpType.ValueType - BINARY_OP_TYPE_COVERS: DerivationExpression.BinaryOp._BinaryOpType.ValueType - - class BinaryOpType(_BinaryOpType, metaclass=_BinaryOpTypeEnumTypeWrapper): - ... - BINARY_OP_TYPE_UNSPECIFIED: DerivationExpression.BinaryOp.BinaryOpType.ValueType - BINARY_OP_TYPE_PLUS: DerivationExpression.BinaryOp.BinaryOpType.ValueType - BINARY_OP_TYPE_MINUS: DerivationExpression.BinaryOp.BinaryOpType.ValueType - BINARY_OP_TYPE_MULTIPLY: DerivationExpression.BinaryOp.BinaryOpType.ValueType - BINARY_OP_TYPE_DIVIDE: DerivationExpression.BinaryOp.BinaryOpType.ValueType - BINARY_OP_TYPE_MIN: DerivationExpression.BinaryOp.BinaryOpType.ValueType - BINARY_OP_TYPE_MAX: DerivationExpression.BinaryOp.BinaryOpType.ValueType - BINARY_OP_TYPE_GREATER_THAN: DerivationExpression.BinaryOp.BinaryOpType.ValueType - BINARY_OP_TYPE_LESS_THAN: DerivationExpression.BinaryOp.BinaryOpType.ValueType - BINARY_OP_TYPE_AND: DerivationExpression.BinaryOp.BinaryOpType.ValueType - BINARY_OP_TYPE_OR: DerivationExpression.BinaryOp.BinaryOpType.ValueType - BINARY_OP_TYPE_EQUALS: DerivationExpression.BinaryOp.BinaryOpType.ValueType - BINARY_OP_TYPE_COVERS: DerivationExpression.BinaryOp.BinaryOpType.ValueType + BINARY_OP_TYPE_UNSPECIFIED: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 0 + BINARY_OP_TYPE_PLUS: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 1 + BINARY_OP_TYPE_MINUS: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 2 + BINARY_OP_TYPE_MULTIPLY: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 3 + BINARY_OP_TYPE_DIVIDE: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 4 + BINARY_OP_TYPE_MIN: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 5 + BINARY_OP_TYPE_MAX: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 6 + BINARY_OP_TYPE_GREATER_THAN: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 7 + BINARY_OP_TYPE_LESS_THAN: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 8 + BINARY_OP_TYPE_AND: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 9 + BINARY_OP_TYPE_OR: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 10 + BINARY_OP_TYPE_EQUALS: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 11 + BINARY_OP_TYPE_COVERS: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 12 + + class BinaryOpType(_BinaryOpType, metaclass=_BinaryOpTypeEnumTypeWrapper): ... + BINARY_OP_TYPE_UNSPECIFIED: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 0 + BINARY_OP_TYPE_PLUS: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 1 + BINARY_OP_TYPE_MINUS: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 2 + BINARY_OP_TYPE_MULTIPLY: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 3 + BINARY_OP_TYPE_DIVIDE: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 4 + BINARY_OP_TYPE_MIN: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 5 + BINARY_OP_TYPE_MAX: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 6 + BINARY_OP_TYPE_GREATER_THAN: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 7 + BINARY_OP_TYPE_LESS_THAN: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 8 + BINARY_OP_TYPE_AND: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 9 + BINARY_OP_TYPE_OR: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 10 + BINARY_OP_TYPE_EQUALS: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 11 + BINARY_OP_TYPE_COVERS: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 12 + OP_TYPE_FIELD_NUMBER: builtins.int ARG1_FIELD_NUMBER: builtins.int ARG2_FIELD_NUMBER: builtins.int op_type: global___DerivationExpression.BinaryOp.BinaryOpType.ValueType - @property - def arg1(self) -> global___DerivationExpression: - ... - + def arg1(self) -> global___DerivationExpression: ... @property - def arg2(self) -> global___DerivationExpression: - ... - - def __init__(self, *, op_type: global___DerivationExpression.BinaryOp.BinaryOpType.ValueType=..., arg1: global___DerivationExpression | None=..., arg2: global___DerivationExpression | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['arg1', b'arg1', 'arg2', b'arg2']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['arg1', b'arg1', 'arg2', b'arg2', 'op_type', b'op_type']) -> None: - ... + def arg2(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + op_type: global___DerivationExpression.BinaryOp.BinaryOpType.ValueType = ..., + arg1: global___DerivationExpression | None = ..., + arg2: global___DerivationExpression | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["arg1", b"arg1", "arg2", b"arg2"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["arg1", b"arg1", "arg2", b"arg2", "op_type", b"op_type"]) -> None: ... @typing.final class ReturnProgram(google.protobuf.message.Message): @@ -461,41 +439,36 @@ class DerivationExpression(google.protobuf.message.Message): @typing.final class Assignment(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + NAME_FIELD_NUMBER: builtins.int EXPRESSION_FIELD_NUMBER: builtins.int name: builtins.str - @property - def expression(self) -> global___DerivationExpression: - ... - - def __init__(self, *, name: builtins.str=..., expression: global___DerivationExpression | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['expression', b'expression']) -> builtins.bool: - ... + def expression(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + name: builtins.str = ..., + expression: global___DerivationExpression | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["expression", b"expression"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["expression", b"expression", "name", b"name"]) -> None: ... - def ClearField(self, field_name: typing.Literal['expression', b'expression', 'name', b'name']) -> None: - ... ASSIGNMENTS_FIELD_NUMBER: builtins.int FINAL_EXPRESSION_FIELD_NUMBER: builtins.int - @property - def assignments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DerivationExpression.ReturnProgram.Assignment]: - ... - + def assignments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DerivationExpression.ReturnProgram.Assignment]: ... @property - def final_expression(self) -> global___DerivationExpression: - ... - - def __init__(self, *, assignments: collections.abc.Iterable[global___DerivationExpression.ReturnProgram.Assignment] | None=..., final_expression: global___DerivationExpression | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['final_expression', b'final_expression']) -> builtins.bool: - ... + def final_expression(self) -> global___DerivationExpression: ... + def __init__( + self, + *, + assignments: collections.abc.Iterable[global___DerivationExpression.ReturnProgram.Assignment] | None = ..., + final_expression: global___DerivationExpression | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["final_expression", b"final_expression"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["assignments", b"assignments", "final_expression", b"final_expression"]) -> None: ... - def ClearField(self, field_name: typing.Literal['assignments', b'assignments', 'final_expression', b'final_expression']) -> None: - ... BOOL_FIELD_NUMBER: builtins.int I8_FIELD_NUMBER: builtins.int I16_FIELD_NUMBER: builtins.int @@ -533,148 +506,125 @@ class DerivationExpression(google.protobuf.message.Message): IF_ELSE_FIELD_NUMBER: builtins.int RETURN_PROGRAM_FIELD_NUMBER: builtins.int user_defined_pointer: builtins.int - 'Deprecated in favor of user_defined, which allows nullability and\n variations to be specified. If user_defined_pointer is encountered,\n treat it as being non-nullable and having the default variation.\n ' + """Deprecated in favor of user_defined, which allows nullability and + variations to be specified. If user_defined_pointer is encountered, + treat it as being non-nullable and having the default variation. + """ type_parameter_name: builtins.str integer_parameter_name: builtins.str integer_literal: builtins.int - @property - def bool(self) -> proto.type_pb2.Type.Boolean: - ... - + def bool(self) -> proto.type_pb2.Type.Boolean: ... @property - def i8(self) -> proto.type_pb2.Type.I8: - ... - + def i8(self) -> proto.type_pb2.Type.I8: ... @property - def i16(self) -> proto.type_pb2.Type.I16: - ... - + def i16(self) -> proto.type_pb2.Type.I16: ... @property - def i32(self) -> proto.type_pb2.Type.I32: - ... - + def i32(self) -> proto.type_pb2.Type.I32: ... @property - def i64(self) -> proto.type_pb2.Type.I64: - ... - + def i64(self) -> proto.type_pb2.Type.I64: ... @property - def fp32(self) -> proto.type_pb2.Type.FP32: - ... - + def fp32(self) -> proto.type_pb2.Type.FP32: ... @property - def fp64(self) -> proto.type_pb2.Type.FP64: - ... - + def fp64(self) -> proto.type_pb2.Type.FP64: ... @property - def string(self) -> proto.type_pb2.Type.String: - ... - + def string(self) -> proto.type_pb2.Type.String: ... @property - def binary(self) -> proto.type_pb2.Type.Binary: - ... - + def binary(self) -> proto.type_pb2.Type.Binary: ... @property def timestamp(self) -> proto.type_pb2.Type.Timestamp: """Deprecated in favor of `ExpressionPrecisionTimestamp precision_timestamp`""" @property - def date(self) -> proto.type_pb2.Type.Date: - ... - + def date(self) -> proto.type_pb2.Type.Date: ... @property def time(self) -> proto.type_pb2.Type.Time: """Deprecated in favor of `ExpressionPrecisionTime precision_time`""" @property - def interval_year(self) -> proto.type_pb2.Type.IntervalYear: - ... - + def interval_year(self) -> proto.type_pb2.Type.IntervalYear: ... @property def timestamp_tz(self) -> proto.type_pb2.Type.TimestampTZ: """Deprecated in favor of `ExpressionPrecisionTimestampTZ precision_timestamp_tz`""" @property - def uuid(self) -> proto.type_pb2.Type.UUID: - ... - + def uuid(self) -> proto.type_pb2.Type.UUID: ... @property - def interval_day(self) -> global___DerivationExpression.ExpressionIntervalDay: - ... - + def interval_day(self) -> global___DerivationExpression.ExpressionIntervalDay: ... @property - def interval_compound(self) -> global___DerivationExpression.ExpressionIntervalCompound: - ... - + def interval_compound(self) -> global___DerivationExpression.ExpressionIntervalCompound: ... @property - def fixed_char(self) -> global___DerivationExpression.ExpressionFixedChar: - ... - + def fixed_char(self) -> global___DerivationExpression.ExpressionFixedChar: ... @property - def varchar(self) -> global___DerivationExpression.ExpressionVarChar: - ... - + def varchar(self) -> global___DerivationExpression.ExpressionVarChar: ... @property - def fixed_binary(self) -> global___DerivationExpression.ExpressionFixedBinary: - ... - + def fixed_binary(self) -> global___DerivationExpression.ExpressionFixedBinary: ... @property - def decimal(self) -> global___DerivationExpression.ExpressionDecimal: - ... - + def decimal(self) -> global___DerivationExpression.ExpressionDecimal: ... @property - def precision_time(self) -> global___DerivationExpression.ExpressionPrecisionTime: - ... - + def precision_time(self) -> global___DerivationExpression.ExpressionPrecisionTime: ... @property - def precision_timestamp(self) -> global___DerivationExpression.ExpressionPrecisionTimestamp: - ... - + def precision_timestamp(self) -> global___DerivationExpression.ExpressionPrecisionTimestamp: ... @property - def precision_timestamp_tz(self) -> global___DerivationExpression.ExpressionPrecisionTimestampTZ: - ... - + def precision_timestamp_tz(self) -> global___DerivationExpression.ExpressionPrecisionTimestampTZ: ... @property - def struct(self) -> global___DerivationExpression.ExpressionStruct: - ... - + def struct(self) -> global___DerivationExpression.ExpressionStruct: ... @property - def list(self) -> global___DerivationExpression.ExpressionList: - ... - + def list(self) -> global___DerivationExpression.ExpressionList: ... @property - def map(self) -> global___DerivationExpression.ExpressionMap: - ... - + def map(self) -> global___DerivationExpression.ExpressionMap: ... @property - def user_defined(self) -> global___DerivationExpression.ExpressionUserDefined: - ... - + def user_defined(self) -> global___DerivationExpression.ExpressionUserDefined: ... @property - def unary_op(self) -> global___DerivationExpression.UnaryOp: - ... - + def unary_op(self) -> global___DerivationExpression.UnaryOp: ... @property - def binary_op(self) -> global___DerivationExpression.BinaryOp: - ... - + def binary_op(self) -> global___DerivationExpression.BinaryOp: ... @property - def if_else(self) -> global___DerivationExpression.IfElse: - ... - + def if_else(self) -> global___DerivationExpression.IfElse: ... @property - def return_program(self) -> global___DerivationExpression.ReturnProgram: - ... - - def __init__(self, *, bool: proto.type_pb2.Type.Boolean | None=..., i8: proto.type_pb2.Type.I8 | None=..., i16: proto.type_pb2.Type.I16 | None=..., i32: proto.type_pb2.Type.I32 | None=..., i64: proto.type_pb2.Type.I64 | None=..., fp32: proto.type_pb2.Type.FP32 | None=..., fp64: proto.type_pb2.Type.FP64 | None=..., string: proto.type_pb2.Type.String | None=..., binary: proto.type_pb2.Type.Binary | None=..., timestamp: proto.type_pb2.Type.Timestamp | None=..., date: proto.type_pb2.Type.Date | None=..., time: proto.type_pb2.Type.Time | None=..., interval_year: proto.type_pb2.Type.IntervalYear | None=..., timestamp_tz: proto.type_pb2.Type.TimestampTZ | None=..., uuid: proto.type_pb2.Type.UUID | None=..., interval_day: global___DerivationExpression.ExpressionIntervalDay | None=..., interval_compound: global___DerivationExpression.ExpressionIntervalCompound | None=..., fixed_char: global___DerivationExpression.ExpressionFixedChar | None=..., varchar: global___DerivationExpression.ExpressionVarChar | None=..., fixed_binary: global___DerivationExpression.ExpressionFixedBinary | None=..., decimal: global___DerivationExpression.ExpressionDecimal | None=..., precision_time: global___DerivationExpression.ExpressionPrecisionTime | None=..., precision_timestamp: global___DerivationExpression.ExpressionPrecisionTimestamp | None=..., precision_timestamp_tz: global___DerivationExpression.ExpressionPrecisionTimestampTZ | None=..., struct: global___DerivationExpression.ExpressionStruct | None=..., list: global___DerivationExpression.ExpressionList | None=..., map: global___DerivationExpression.ExpressionMap | None=..., user_defined: global___DerivationExpression.ExpressionUserDefined | None=..., user_defined_pointer: builtins.int=..., type_parameter_name: builtins.str=..., integer_parameter_name: builtins.str=..., integer_literal: builtins.int=..., unary_op: global___DerivationExpression.UnaryOp | None=..., binary_op: global___DerivationExpression.BinaryOp | None=..., if_else: global___DerivationExpression.IfElse | None=..., return_program: global___DerivationExpression.ReturnProgram | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['binary', b'binary', 'binary_op', b'binary_op', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'if_else', b'if_else', 'integer_literal', b'integer_literal', 'integer_parameter_name', b'integer_parameter_name', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'return_program', b'return_program', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter_name', b'type_parameter_name', 'unary_op', b'unary_op', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['binary', b'binary', 'binary_op', b'binary_op', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'if_else', b'if_else', 'integer_literal', b'integer_literal', 'integer_parameter_name', b'integer_parameter_name', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'return_program', b'return_program', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter_name', b'type_parameter_name', 'unary_op', b'unary_op', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> None: - ... + def return_program(self) -> global___DerivationExpression.ReturnProgram: ... + def __init__( + self, + *, + bool: proto.type_pb2.Type.Boolean | None = ..., + i8: proto.type_pb2.Type.I8 | None = ..., + i16: proto.type_pb2.Type.I16 | None = ..., + i32: proto.type_pb2.Type.I32 | None = ..., + i64: proto.type_pb2.Type.I64 | None = ..., + fp32: proto.type_pb2.Type.FP32 | None = ..., + fp64: proto.type_pb2.Type.FP64 | None = ..., + string: proto.type_pb2.Type.String | None = ..., + binary: proto.type_pb2.Type.Binary | None = ..., + timestamp: proto.type_pb2.Type.Timestamp | None = ..., + date: proto.type_pb2.Type.Date | None = ..., + time: proto.type_pb2.Type.Time | None = ..., + interval_year: proto.type_pb2.Type.IntervalYear | None = ..., + timestamp_tz: proto.type_pb2.Type.TimestampTZ | None = ..., + uuid: proto.type_pb2.Type.UUID | None = ..., + interval_day: global___DerivationExpression.ExpressionIntervalDay | None = ..., + interval_compound: global___DerivationExpression.ExpressionIntervalCompound | None = ..., + fixed_char: global___DerivationExpression.ExpressionFixedChar | None = ..., + varchar: global___DerivationExpression.ExpressionVarChar | None = ..., + fixed_binary: global___DerivationExpression.ExpressionFixedBinary | None = ..., + decimal: global___DerivationExpression.ExpressionDecimal | None = ..., + precision_time: global___DerivationExpression.ExpressionPrecisionTime | None = ..., + precision_timestamp: global___DerivationExpression.ExpressionPrecisionTimestamp | None = ..., + precision_timestamp_tz: global___DerivationExpression.ExpressionPrecisionTimestampTZ | None = ..., + struct: global___DerivationExpression.ExpressionStruct | None = ..., + list: global___DerivationExpression.ExpressionList | None = ..., + map: global___DerivationExpression.ExpressionMap | None = ..., + user_defined: global___DerivationExpression.ExpressionUserDefined | None = ..., + user_defined_pointer: builtins.int = ..., + type_parameter_name: builtins.str = ..., + integer_parameter_name: builtins.str = ..., + integer_literal: builtins.int = ..., + unary_op: global___DerivationExpression.UnaryOp | None = ..., + binary_op: global___DerivationExpression.BinaryOp | None = ..., + if_else: global___DerivationExpression.IfElse | None = ..., + return_program: global___DerivationExpression.ReturnProgram | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["binary", b"binary", "binary_op", b"binary_op", "bool", b"bool", "date", b"date", "decimal", b"decimal", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "if_else", b"if_else", "integer_literal", b"integer_literal", "integer_parameter_name", b"integer_parameter_name", "interval_compound", b"interval_compound", "interval_day", b"interval_day", "interval_year", b"interval_year", "kind", b"kind", "list", b"list", "map", b"map", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "return_program", b"return_program", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "type_parameter_name", b"type_parameter_name", "unary_op", b"unary_op", "user_defined", b"user_defined", "user_defined_pointer", b"user_defined_pointer", "uuid", b"uuid", "varchar", b"varchar"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["binary", b"binary", "binary_op", b"binary_op", "bool", b"bool", "date", b"date", "decimal", b"decimal", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "if_else", b"if_else", "integer_literal", b"integer_literal", "integer_parameter_name", b"integer_parameter_name", "interval_compound", b"interval_compound", "interval_day", b"interval_day", "interval_year", b"interval_year", "kind", b"kind", "list", b"list", "map", b"map", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "return_program", b"return_program", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "type_parameter_name", b"type_parameter_name", "unary_op", b"unary_op", "user_defined", b"user_defined", "user_defined_pointer", b"user_defined_pointer", "uuid", b"uuid", "varchar", b"varchar"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["kind", b"kind"]) -> typing.Literal["bool", "i8", "i16", "i32", "i64", "fp32", "fp64", "string", "binary", "timestamp", "date", "time", "interval_year", "timestamp_tz", "uuid", "interval_day", "interval_compound", "fixed_char", "varchar", "fixed_binary", "decimal", "precision_time", "precision_timestamp", "precision_timestamp_tz", "struct", "list", "map", "user_defined", "user_defined_pointer", "type_parameter_name", "integer_parameter_name", "integer_literal", "unary_op", "binary_op", "if_else", "return_program"] | None: ... - def WhichOneof(self, oneof_group: typing.Literal['kind', b'kind']) -> typing.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'timestamp_tz', 'uuid', 'interval_day', 'interval_compound', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'precision_time', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'list', 'map', 'user_defined', 'user_defined_pointer', 'type_parameter_name', 'integer_parameter_name', 'integer_literal', 'unary_op', 'binary_op', 'if_else', 'return_program'] | None: - ... -global___DerivationExpression = DerivationExpression \ No newline at end of file +global___DerivationExpression = DerivationExpression diff --git a/src/substrait/gen/proto/type_pb2.py b/src/substrait/gen/proto/type_pb2.py index b13d3ac..2643762 100644 --- a/src/substrait/gen/proto/type_pb2.py +++ b/src/substrait/gen/proto/type_pb2.py @@ -1,87 +1,110 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: proto/type.proto +# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" -from google.protobuf.internal import builder as _builder from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 5, + 29, + 5, + '', + 'proto/type.proto' +) +# @@protoc_insertion_point(imports) + _sym_db = _symbol_database.Default() + + from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/type.proto\x12\x05proto\x1a\x1bgoogle/protobuf/empty.proto"\xaf0\n\x04Type\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12&\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeH\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12<\n\x0cinterval_day\x18\x14 \x01(\x0b2\x17.proto.Type.IntervalDayH\x00R\x0bintervalDay\x12K\n\x11interval_compound\x18# \x01(\x0b2\x1c.proto.Type.IntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x126\n\nfixed_char\x18\x15 \x01(\x0b2\x15.proto.Type.FixedCharH\x00R\tfixedChar\x12/\n\x07varchar\x18\x16 \x01(\x0b2\x13.proto.Type.VarCharH\x00R\x07varchar\x12<\n\x0cfixed_binary\x18\x17 \x01(\x0b2\x17.proto.Type.FixedBinaryH\x00R\x0bfixedBinary\x12/\n\x07decimal\x18\x18 \x01(\x0b2\x13.proto.Type.DecimalH\x00R\x07decimal\x12B\n\x0eprecision_time\x18$ \x01(\x0b2\x19.proto.Type.PrecisionTimeH\x00R\rprecisionTime\x12Q\n\x13precision_timestamp\x18! \x01(\x0b2\x1e.proto.Type.PrecisionTimestampH\x00R\x12precisionTimestamp\x12X\n\x16precision_timestamp_tz\x18" \x01(\x0b2 .proto.Type.PrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12,\n\x06struct\x18\x19 \x01(\x0b2\x12.proto.Type.StructH\x00R\x06struct\x12&\n\x04list\x18\x1b \x01(\x0b2\x10.proto.Type.ListH\x00R\x04list\x12#\n\x03map\x18\x1c \x01(\x0b2\x0f.proto.Type.MapH\x00R\x03map\x12<\n\x0cuser_defined\x18\x1e \x01(\x0b2\x17.proto.Type.UserDefinedH\x00R\x0buserDefined\x12C\n\x1buser_defined_type_reference\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x18userDefinedTypeReference\x126\n\x05alias\x18% \x01(\x0b2\x1e.proto.Type.TypeAliasReferenceH\x00R\x05alias\x1a~\n\x07Boolean\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1ay\n\x02I8\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I16\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04FP32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04FP64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06String\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06Binary\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x80\x01\n\tTimestamp\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04Date\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04Time\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x01\n\x0bTimestampTZ\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x83\x01\n\x0cIntervalYear\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb3\x01\n\x0bIntervalDay\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12!\n\tprecision\x18\x03 \x01(\x05H\x00R\tprecision\x88\x01\x01B\x0c\n\n_precision\x1a\xa5\x01\n\x10IntervalCompound\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12\x1c\n\tprecision\x18\x03 \x01(\x05R\tprecision\x1a{\n\x04UUID\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x98\x01\n\tFixedChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x96\x01\n\x07VarChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9a\x01\n\x0bFixedBinary\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb2\x01\n\x07Decimal\x12\x14\n\x05scale\x18\x01 \x01(\x05R\x05scale\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa2\x01\n\rPrecisionTime\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa7\x01\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa9\x01\n\x14PrecisionTimestampTZ\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa0\x01\n\x06Struct\x12!\n\x05types\x18\x01 \x03(\x0b2\x0b.proto.TypeR\x05types\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9c\x01\n\x04List\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x03Map\x12\x1d\n\x03key\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x03key\x12!\n\x05value\x18\x02 \x01(\x0b2\x0b.proto.TypeR\x05value\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12>\n\x0ftype_parameters\x18\x04 \x03(\x0b2\x15.proto.Type.ParameterR\x0etypeParameters\x1a\xda\x01\n\tParameter\x12,\n\x04null\x18\x01 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x04null\x12*\n\tdata_type\x18\x02 \x01(\x0b2\x0b.proto.TypeH\x00R\x08dataType\x12\x1a\n\x07boolean\x18\x03 \x01(\x08H\x00R\x07boolean\x12\x1a\n\x07integer\x18\x04 \x01(\x03H\x00R\x07integer\x12\x14\n\x04enum\x18\x05 \x01(\tH\x00R\x04enum\x12\x18\n\x06string\x18\x06 \x01(\tH\x00R\x06stringB\x0b\n\tparameter\x1a\x81\x01\n\x12TypeAliasReference\x120\n\x14type_alias_reference\x18\x01 \x01(\rR\x12typeAliasReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability"^\n\x0bNullability\x12\x1b\n\x17NULLABILITY_UNSPECIFIED\x10\x00\x12\x18\n\x14NULLABILITY_NULLABLE\x10\x01\x12\x18\n\x14NULLABILITY_REQUIRED\x10\x02B\x06\n\x04kind"X\n\tTypeAlias\x12*\n\x11type_alias_anchor\x18\x01 \x01(\rR\x0ftypeAliasAnchor\x12\x1f\n\x04type\x18\x02 \x01(\x0b2\x0b.proto.TypeR\x04type"O\n\x0bNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12*\n\x06struct\x18\x02 \x01(\x0b2\x12.proto.Type.StructR\x06structB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.type_pb2', globals()) -if _descriptor._USE_C_DESCRIPTORS == False: - DESCRIPTOR._options = None - DESCRIPTOR._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' - _TYPE.fields_by_name['timestamp']._options = None - _TYPE.fields_by_name['timestamp']._serialized_options = b'\x18\x01' - _TYPE.fields_by_name['timestamp_tz']._options = None - _TYPE.fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' - _TYPE.fields_by_name['user_defined_type_reference']._options = None - _TYPE.fields_by_name['user_defined_type_reference']._serialized_options = b'\x18\x01' - _TYPE._serialized_start = 57 - _TYPE._serialized_end = 6248 - _TYPE_BOOLEAN._serialized_start = 1641 - _TYPE_BOOLEAN._serialized_end = 1767 - _TYPE_I8._serialized_start = 1769 - _TYPE_I8._serialized_end = 1890 - _TYPE_I16._serialized_start = 1892 - _TYPE_I16._serialized_end = 2014 - _TYPE_I32._serialized_start = 2016 - _TYPE_I32._serialized_end = 2138 - _TYPE_I64._serialized_start = 2140 - _TYPE_I64._serialized_end = 2262 - _TYPE_FP32._serialized_start = 2264 - _TYPE_FP32._serialized_end = 2387 - _TYPE_FP64._serialized_start = 2389 - _TYPE_FP64._serialized_end = 2512 - _TYPE_STRING._serialized_start = 2514 - _TYPE_STRING._serialized_end = 2639 - _TYPE_BINARY._serialized_start = 2641 - _TYPE_BINARY._serialized_end = 2766 - _TYPE_TIMESTAMP._serialized_start = 2769 - _TYPE_TIMESTAMP._serialized_end = 2897 - _TYPE_DATE._serialized_start = 2899 - _TYPE_DATE._serialized_end = 3022 - _TYPE_TIME._serialized_start = 3024 - _TYPE_TIME._serialized_end = 3147 - _TYPE_TIMESTAMPTZ._serialized_start = 3150 - _TYPE_TIMESTAMPTZ._serialized_end = 3280 - _TYPE_INTERVALYEAR._serialized_start = 3283 - _TYPE_INTERVALYEAR._serialized_end = 3414 - _TYPE_INTERVALDAY._serialized_start = 3417 - _TYPE_INTERVALDAY._serialized_end = 3596 - _TYPE_INTERVALCOMPOUND._serialized_start = 3599 - _TYPE_INTERVALCOMPOUND._serialized_end = 3764 - _TYPE_UUID._serialized_start = 3766 - _TYPE_UUID._serialized_end = 3889 - _TYPE_FIXEDCHAR._serialized_start = 3892 - _TYPE_FIXEDCHAR._serialized_end = 4044 - _TYPE_VARCHAR._serialized_start = 4047 - _TYPE_VARCHAR._serialized_end = 4197 - _TYPE_FIXEDBINARY._serialized_start = 4200 - _TYPE_FIXEDBINARY._serialized_end = 4354 - _TYPE_DECIMAL._serialized_start = 4357 - _TYPE_DECIMAL._serialized_end = 4535 - _TYPE_PRECISIONTIME._serialized_start = 4538 - _TYPE_PRECISIONTIME._serialized_end = 4700 - _TYPE_PRECISIONTIMESTAMP._serialized_start = 4703 - _TYPE_PRECISIONTIMESTAMP._serialized_end = 4870 - _TYPE_PRECISIONTIMESTAMPTZ._serialized_start = 4873 - _TYPE_PRECISIONTIMESTAMPTZ._serialized_end = 5042 - _TYPE_STRUCT._serialized_start = 5045 - _TYPE_STRUCT._serialized_end = 5205 - _TYPE_LIST._serialized_start = 5208 - _TYPE_LIST._serialized_end = 5364 - _TYPE_MAP._serialized_start = 5367 - _TYPE_MAP._serialized_end = 5555 - _TYPE_USERDEFINED._serialized_start = 5558 - _TYPE_USERDEFINED._serialized_end = 5791 - _TYPE_PARAMETER._serialized_start = 5794 - _TYPE_PARAMETER._serialized_end = 6012 - _TYPE_TYPEALIASREFERENCE._serialized_start = 6015 - _TYPE_TYPEALIASREFERENCE._serialized_end = 6144 - _TYPE_NULLABILITY._serialized_start = 6146 - _TYPE_NULLABILITY._serialized_end = 6240 - _TYPEALIAS._serialized_start = 6250 - _TYPEALIAS._serialized_end = 6338 - _NAMEDSTRUCT._serialized_start = 6340 - _NAMEDSTRUCT._serialized_end = 6419 \ No newline at end of file + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/type.proto\x12\x05proto\x1a\x1bgoogle/protobuf/empty.proto\"\xaf\x30\n\x04Type\x12)\n\x04\x62ool\x18\x01 \x01(\x0b\x32\x13.proto.Type.BooleanH\x00R\x04\x62ool\x12 \n\x02i8\x18\x02 \x01(\x0b\x32\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b\x32\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b\x32\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b\x32\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04\x66p32\x18\n \x01(\x0b\x32\x10.proto.Type.FP32H\x00R\x04\x66p32\x12&\n\x04\x66p64\x18\x0b \x01(\x0b\x32\x10.proto.Type.FP64H\x00R\x04\x66p64\x12,\n\x06string\x18\x0c \x01(\x0b\x32\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06\x62inary\x18\r \x01(\x0b\x32\x12.proto.Type.BinaryH\x00R\x06\x62inary\x12\x39\n\ttimestamp\x18\x0e \x01(\x0b\x32\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04\x64\x61te\x18\x10 \x01(\x0b\x32\x10.proto.Type.DateH\x00R\x04\x64\x61te\x12&\n\x04time\x18\x11 \x01(\x0b\x32\x10.proto.Type.TimeH\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b\x32\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12<\n\x0cinterval_day\x18\x14 \x01(\x0b\x32\x17.proto.Type.IntervalDayH\x00R\x0bintervalDay\x12K\n\x11interval_compound\x18# \x01(\x0b\x32\x1c.proto.Type.IntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b\x32\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b\x32\x10.proto.Type.UUIDH\x00R\x04uuid\x12\x36\n\nfixed_char\x18\x15 \x01(\x0b\x32\x15.proto.Type.FixedCharH\x00R\tfixedChar\x12/\n\x07varchar\x18\x16 \x01(\x0b\x32\x13.proto.Type.VarCharH\x00R\x07varchar\x12<\n\x0c\x66ixed_binary\x18\x17 \x01(\x0b\x32\x17.proto.Type.FixedBinaryH\x00R\x0b\x66ixedBinary\x12/\n\x07\x64\x65\x63imal\x18\x18 \x01(\x0b\x32\x13.proto.Type.DecimalH\x00R\x07\x64\x65\x63imal\x12\x42\n\x0eprecision_time\x18$ \x01(\x0b\x32\x19.proto.Type.PrecisionTimeH\x00R\rprecisionTime\x12Q\n\x13precision_timestamp\x18! \x01(\x0b\x32\x1e.proto.Type.PrecisionTimestampH\x00R\x12precisionTimestamp\x12X\n\x16precision_timestamp_tz\x18\" \x01(\x0b\x32 .proto.Type.PrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12,\n\x06struct\x18\x19 \x01(\x0b\x32\x12.proto.Type.StructH\x00R\x06struct\x12&\n\x04list\x18\x1b \x01(\x0b\x32\x10.proto.Type.ListH\x00R\x04list\x12#\n\x03map\x18\x1c \x01(\x0b\x32\x0f.proto.Type.MapH\x00R\x03map\x12<\n\x0cuser_defined\x18\x1e \x01(\x0b\x32\x17.proto.Type.UserDefinedH\x00R\x0buserDefined\x12\x43\n\x1buser_defined_type_reference\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x18userDefinedTypeReference\x12\x36\n\x05\x61lias\x18% \x01(\x0b\x32\x1e.proto.Type.TypeAliasReferenceH\x00R\x05\x61lias\x1a~\n\x07\x42oolean\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1ay\n\x02I8\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I16\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I32\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I64\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04\x46P32\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04\x46P64\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06String\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06\x42inary\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x80\x01\n\tTimestamp\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04\x44\x61te\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04Time\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x01\n\x0bTimestampTZ\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x83\x01\n\x0cIntervalYear\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb3\x01\n\x0bIntervalDay\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x12!\n\tprecision\x18\x03 \x01(\x05H\x00R\tprecision\x88\x01\x01\x42\x0c\n\n_precision\x1a\xa5\x01\n\x10IntervalCompound\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x12\x1c\n\tprecision\x18\x03 \x01(\x05R\tprecision\x1a{\n\x04UUID\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x98\x01\n\tFixedChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x96\x01\n\x07VarChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9a\x01\n\x0b\x46ixedBinary\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb2\x01\n\x07\x44\x65\x63imal\x12\x14\n\x05scale\x18\x01 \x01(\x05R\x05scale\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x12\x38\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x04 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa2\x01\n\rPrecisionTime\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa7\x01\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa9\x01\n\x14PrecisionTimestampTZ\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa0\x01\n\x06Struct\x12!\n\x05types\x18\x01 \x03(\x0b\x32\x0b.proto.TypeR\x05types\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9c\x01\n\x04List\x12\x1f\n\x04type\x18\x01 \x01(\x0b\x32\x0b.proto.TypeR\x04type\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x03Map\x12\x1d\n\x03key\x18\x01 \x01(\x0b\x32\x0b.proto.TypeR\x03key\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x0b.proto.TypeR\x05value\x12\x38\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x04 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x12>\n\x0ftype_parameters\x18\x04 \x03(\x0b\x32\x15.proto.Type.ParameterR\x0etypeParameters\x1a\xda\x01\n\tParameter\x12,\n\x04null\x18\x01 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00R\x04null\x12*\n\tdata_type\x18\x02 \x01(\x0b\x32\x0b.proto.TypeH\x00R\x08\x64\x61taType\x12\x1a\n\x07\x62oolean\x18\x03 \x01(\x08H\x00R\x07\x62oolean\x12\x1a\n\x07integer\x18\x04 \x01(\x03H\x00R\x07integer\x12\x14\n\x04\x65num\x18\x05 \x01(\tH\x00R\x04\x65num\x12\x18\n\x06string\x18\x06 \x01(\tH\x00R\x06stringB\x0b\n\tparameter\x1a\x81\x01\n\x12TypeAliasReference\x12\x30\n\x14type_alias_reference\x18\x01 \x01(\rR\x12typeAliasReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\"^\n\x0bNullability\x12\x1b\n\x17NULLABILITY_UNSPECIFIED\x10\x00\x12\x18\n\x14NULLABILITY_NULLABLE\x10\x01\x12\x18\n\x14NULLABILITY_REQUIRED\x10\x02\x42\x06\n\x04kind\"X\n\tTypeAlias\x12*\n\x11type_alias_anchor\x18\x01 \x01(\rR\x0ftypeAliasAnchor\x12\x1f\n\x04type\x18\x02 \x01(\x0b\x32\x0b.proto.TypeR\x04type\"O\n\x0bNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12*\n\x06struct\x18\x02 \x01(\x0b\x32\x12.proto.Type.StructR\x06structB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.type_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' + _globals['_TYPE'].fields_by_name['timestamp']._loaded_options = None + _globals['_TYPE'].fields_by_name['timestamp']._serialized_options = b'\030\001' + _globals['_TYPE'].fields_by_name['timestamp_tz']._loaded_options = None + _globals['_TYPE'].fields_by_name['timestamp_tz']._serialized_options = b'\030\001' + _globals['_TYPE'].fields_by_name['user_defined_type_reference']._loaded_options = None + _globals['_TYPE'].fields_by_name['user_defined_type_reference']._serialized_options = b'\030\001' + _globals['_TYPE']._serialized_start=57 + _globals['_TYPE']._serialized_end=6248 + _globals['_TYPE_BOOLEAN']._serialized_start=1641 + _globals['_TYPE_BOOLEAN']._serialized_end=1767 + _globals['_TYPE_I8']._serialized_start=1769 + _globals['_TYPE_I8']._serialized_end=1890 + _globals['_TYPE_I16']._serialized_start=1892 + _globals['_TYPE_I16']._serialized_end=2014 + _globals['_TYPE_I32']._serialized_start=2016 + _globals['_TYPE_I32']._serialized_end=2138 + _globals['_TYPE_I64']._serialized_start=2140 + _globals['_TYPE_I64']._serialized_end=2262 + _globals['_TYPE_FP32']._serialized_start=2264 + _globals['_TYPE_FP32']._serialized_end=2387 + _globals['_TYPE_FP64']._serialized_start=2389 + _globals['_TYPE_FP64']._serialized_end=2512 + _globals['_TYPE_STRING']._serialized_start=2514 + _globals['_TYPE_STRING']._serialized_end=2639 + _globals['_TYPE_BINARY']._serialized_start=2641 + _globals['_TYPE_BINARY']._serialized_end=2766 + _globals['_TYPE_TIMESTAMP']._serialized_start=2769 + _globals['_TYPE_TIMESTAMP']._serialized_end=2897 + _globals['_TYPE_DATE']._serialized_start=2899 + _globals['_TYPE_DATE']._serialized_end=3022 + _globals['_TYPE_TIME']._serialized_start=3024 + _globals['_TYPE_TIME']._serialized_end=3147 + _globals['_TYPE_TIMESTAMPTZ']._serialized_start=3150 + _globals['_TYPE_TIMESTAMPTZ']._serialized_end=3280 + _globals['_TYPE_INTERVALYEAR']._serialized_start=3283 + _globals['_TYPE_INTERVALYEAR']._serialized_end=3414 + _globals['_TYPE_INTERVALDAY']._serialized_start=3417 + _globals['_TYPE_INTERVALDAY']._serialized_end=3596 + _globals['_TYPE_INTERVALCOMPOUND']._serialized_start=3599 + _globals['_TYPE_INTERVALCOMPOUND']._serialized_end=3764 + _globals['_TYPE_UUID']._serialized_start=3766 + _globals['_TYPE_UUID']._serialized_end=3889 + _globals['_TYPE_FIXEDCHAR']._serialized_start=3892 + _globals['_TYPE_FIXEDCHAR']._serialized_end=4044 + _globals['_TYPE_VARCHAR']._serialized_start=4047 + _globals['_TYPE_VARCHAR']._serialized_end=4197 + _globals['_TYPE_FIXEDBINARY']._serialized_start=4200 + _globals['_TYPE_FIXEDBINARY']._serialized_end=4354 + _globals['_TYPE_DECIMAL']._serialized_start=4357 + _globals['_TYPE_DECIMAL']._serialized_end=4535 + _globals['_TYPE_PRECISIONTIME']._serialized_start=4538 + _globals['_TYPE_PRECISIONTIME']._serialized_end=4700 + _globals['_TYPE_PRECISIONTIMESTAMP']._serialized_start=4703 + _globals['_TYPE_PRECISIONTIMESTAMP']._serialized_end=4870 + _globals['_TYPE_PRECISIONTIMESTAMPTZ']._serialized_start=4873 + _globals['_TYPE_PRECISIONTIMESTAMPTZ']._serialized_end=5042 + _globals['_TYPE_STRUCT']._serialized_start=5045 + _globals['_TYPE_STRUCT']._serialized_end=5205 + _globals['_TYPE_LIST']._serialized_start=5208 + _globals['_TYPE_LIST']._serialized_end=5364 + _globals['_TYPE_MAP']._serialized_start=5367 + _globals['_TYPE_MAP']._serialized_end=5555 + _globals['_TYPE_USERDEFINED']._serialized_start=5558 + _globals['_TYPE_USERDEFINED']._serialized_end=5791 + _globals['_TYPE_PARAMETER']._serialized_start=5794 + _globals['_TYPE_PARAMETER']._serialized_end=6012 + _globals['_TYPE_TYPEALIASREFERENCE']._serialized_start=6015 + _globals['_TYPE_TYPEALIASREFERENCE']._serialized_end=6144 + _globals['_TYPE_NULLABILITY']._serialized_start=6146 + _globals['_TYPE_NULLABILITY']._serialized_end=6240 + _globals['_TYPEALIAS']._serialized_start=6250 + _globals['_TYPEALIAS']._serialized_end=6338 + _globals['_NAMEDSTRUCT']._serialized_start=6340 + _globals['_NAMEDSTRUCT']._serialized_end=6419 +# @@protoc_insertion_point(module_scope) diff --git a/src/substrait/gen/proto/type_pb2.pyi b/src/substrait/gen/proto/type_pb2.pyi index 4e0b797..99845ac 100644 --- a/src/substrait/gen/proto/type_pb2.pyi +++ b/src/substrait/gen/proto/type_pb2.pyi @@ -2,6 +2,7 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" + import builtins import collections.abc import google.protobuf.descriptor @@ -11,10 +12,12 @@ import google.protobuf.internal.enum_type_wrapper import google.protobuf.message import sys import typing + if sys.version_info >= (3, 10): import typing as typing_extensions else: import typing_extensions + DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final @@ -22,326 +25,373 @@ class Type(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _Nullability: - ValueType = typing.NewType('ValueType', builtins.int) + ValueType = typing.NewType("ValueType", builtins.int) V: typing_extensions.TypeAlias = ValueType class _NullabilityEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Type._Nullability.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - NULLABILITY_UNSPECIFIED: Type._Nullability.ValueType - NULLABILITY_NULLABLE: Type._Nullability.ValueType - NULLABILITY_REQUIRED: Type._Nullability.ValueType + NULLABILITY_UNSPECIFIED: Type._Nullability.ValueType # 0 + NULLABILITY_NULLABLE: Type._Nullability.ValueType # 1 + NULLABILITY_REQUIRED: Type._Nullability.ValueType # 2 - class Nullability(_Nullability, metaclass=_NullabilityEnumTypeWrapper): - ... - NULLABILITY_UNSPECIFIED: Type.Nullability.ValueType - NULLABILITY_NULLABLE: Type.Nullability.ValueType - NULLABILITY_REQUIRED: Type.Nullability.ValueType + class Nullability(_Nullability, metaclass=_NullabilityEnumTypeWrapper): ... + NULLABILITY_UNSPECIFIED: Type.Nullability.ValueType # 0 + NULLABILITY_NULLABLE: Type.Nullability.ValueType # 1 + NULLABILITY_REQUIRED: Type.Nullability.ValueType # 2 @typing.final class Boolean(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class I8(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class I16(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class I32(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class I64(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class FP32(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class FP64(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class String(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class Binary(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class Timestamp(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class Date(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class Time(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class TimestampTZ(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class IntervalYear(google.protobuf.message.Message): """An interval consisting of years and months""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class IntervalDay(google.protobuf.message.Message): """An interval consisting of days, seconds, and microseconds""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int PRECISION_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType precision: builtins.int - 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, etc.\n if unset, treat as 6.\n ' - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=..., precision: builtins.int | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['_precision', b'_precision', 'precision', b'precision']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['_precision', b'_precision', 'nullability', b'nullability', 'precision', b'precision', 'type_variation_reference', b'type_variation_reference']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['_precision', b'_precision']) -> typing.Literal['precision'] | None: - ... + """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, etc. + if unset, treat as 6. + """ + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + precision: builtins.int | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["_precision", b"_precision", "precision", b"precision"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["_precision", b"_precision", "nullability", b"nullability", "precision", b"precision", "type_variation_reference", b"type_variation_reference"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["_precision", b"_precision"]) -> typing.Literal["precision"] | None: ... @typing.final class IntervalCompound(google.protobuf.message.Message): """An interval consisting of the components of both IntervalMonth and IntervalDay""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int PRECISION_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType precision: builtins.int - 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, etc.' - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=..., precision: builtins.int=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, etc.""" + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + precision: builtins.int = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class UUID(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class FixedChar(google.protobuf.message.Message): """Start compound types.""" + DESCRIPTOR: google.protobuf.descriptor.Descriptor + LENGTH_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int length: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, length: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + length: builtins.int = ..., + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class VarChar(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + LENGTH_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int length: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, length: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + length: builtins.int = ..., + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class FixedBinary(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + LENGTH_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int length: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, length: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + length: builtins.int = ..., + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class Decimal(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + SCALE_FIELD_NUMBER: builtins.int PRECISION_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int @@ -350,135 +400,146 @@ class Type(google.protobuf.message.Message): precision: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, scale: builtins.int=..., precision: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'scale', b'scale', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + scale: builtins.int = ..., + precision: builtins.int = ..., + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "scale", b"scale", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class PrecisionTime(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int precision: builtins.int - 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds' + """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds""" type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, precision: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + precision: builtins.int = ..., + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class PrecisionTimestamp(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int precision: builtins.int - 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds' + """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds""" type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, precision: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + precision: builtins.int = ..., + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class PrecisionTimestampTZ(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + PRECISION_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int precision: builtins.int - 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds' + """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds""" type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - - def __init__(self, *, precision: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def __init__( + self, + *, + precision: builtins.int = ..., + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class Struct(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPES_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - @property - def types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Type]: - ... - - def __init__(self, *, types: collections.abc.Iterable[global___Type] | None=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference', 'types', b'types']) -> None: - ... + def types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Type]: ... + def __init__( + self, + *, + types: collections.abc.Iterable[global___Type] | None = ..., + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference", "types", b"types"]) -> None: ... @typing.final class List(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - @property - def type(self) -> global___Type: - ... - - def __init__(self, *, type: global___Type | None=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type', b'type', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def type(self) -> global___Type: ... + def __init__( + self, + *, + type: global___Type | None = ..., + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type", b"type", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class Map(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + KEY_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - @property - def key(self) -> global___Type: - ... - + def key(self) -> global___Type: ... @property - def value(self) -> global___Type: - ... - - def __init__(self, *, key: global___Type | None=..., value: global___Type | None=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['key', b'key', 'nullability', b'nullability', 'type_variation_reference', b'type_variation_reference', 'value', b'value']) -> None: - ... + def value(self) -> global___Type: ... + def __init__( + self, + *, + key: global___Type | None = ..., + value: global___Type | None = ..., + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["key", b"key", "nullability", b"nullability", "type_variation_reference", b"type_variation_reference", "value", b"value"]) -> None: ... @typing.final class UserDefined(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_REFERENCE_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int @@ -486,20 +547,22 @@ class Type(google.protobuf.message.Message): type_reference: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - @property - def type_parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Type.Parameter]: - ... - - def __init__(self, *, type_reference: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=..., type_parameters: collections.abc.Iterable[global___Type.Parameter] | None=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_parameters', b'type_parameters', 'type_reference', b'type_reference', 'type_variation_reference', b'type_variation_reference']) -> None: - ... + def type_parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Type.Parameter]: ... + def __init__( + self, + *, + type_reference: builtins.int = ..., + type_variation_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + type_parameters: collections.abc.Iterable[global___Type.Parameter] | None = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_parameters", b"type_parameters", "type_reference", b"type_reference", "type_variation_reference", b"type_variation_reference"]) -> None: ... @typing.final class Parameter(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + NULL_FIELD_NUMBER: builtins.int DATA_TYPE_FIELD_NUMBER: builtins.int BOOLEAN_FIELD_NUMBER: builtins.int @@ -507,11 +570,10 @@ class Type(google.protobuf.message.Message): ENUM_FIELD_NUMBER: builtins.int STRING_FIELD_NUMBER: builtins.int boolean: builtins.bool - 'Value parameters, like the 10 in VARCHAR<10>.' + """Value parameters, like the 10 in VARCHAR<10>.""" integer: builtins.int enum: builtins.str string: builtins.str - @property def null(self) -> google.protobuf.empty_pb2.Empty: """Explicitly null/unspecified parameter, to select the default value (if @@ -522,32 +584,37 @@ class Type(google.protobuf.message.Message): def data_type(self) -> global___Type: """Data type parameters, like the i32 in LIST.""" - def __init__(self, *, null: google.protobuf.empty_pb2.Empty | None=..., data_type: global___Type | None=..., boolean: builtins.bool=..., integer: builtins.int=..., enum: builtins.str=..., string: builtins.str=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['boolean', b'boolean', 'data_type', b'data_type', 'enum', b'enum', 'integer', b'integer', 'null', b'null', 'parameter', b'parameter', 'string', b'string']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['boolean', b'boolean', 'data_type', b'data_type', 'enum', b'enum', 'integer', b'integer', 'null', b'null', 'parameter', b'parameter', 'string', b'string']) -> None: - ... - - def WhichOneof(self, oneof_group: typing.Literal['parameter', b'parameter']) -> typing.Literal['null', 'data_type', 'boolean', 'integer', 'enum', 'string'] | None: - ... + def __init__( + self, + *, + null: google.protobuf.empty_pb2.Empty | None = ..., + data_type: global___Type | None = ..., + boolean: builtins.bool = ..., + integer: builtins.int = ..., + enum: builtins.str = ..., + string: builtins.str = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["boolean", b"boolean", "data_type", b"data_type", "enum", b"enum", "integer", b"integer", "null", b"null", "parameter", b"parameter", "string", b"string"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["boolean", b"boolean", "data_type", b"data_type", "enum", b"enum", "integer", b"integer", "null", b"null", "parameter", b"parameter", "string", b"string"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["parameter", b"parameter"]) -> typing.Literal["null", "data_type", "boolean", "integer", "enum", "string"] | None: ... @typing.final class TypeAliasReference(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_ALIAS_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_alias_reference: builtins.int nullability: global___Type.Nullability.ValueType - 'Nullability of the referenced type alias. Must be specified.' + """Nullability of the referenced type alias. Must be specified.""" + def __init__( + self, + *, + type_alias_reference: builtins.int = ..., + nullability: global___Type.Nullability.ValueType = ..., + ) -> None: ... + def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_alias_reference", b"type_alias_reference"]) -> None: ... - def __init__(self, *, type_alias_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: - ... - - def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_alias_reference', b'type_alias_reference']) -> None: - ... BOOL_FIELD_NUMBER: builtins.int I8_FIELD_NUMBER: builtins.int I16_FIELD_NUMBER: builtins.int @@ -579,145 +646,129 @@ class Type(google.protobuf.message.Message): USER_DEFINED_TYPE_REFERENCE_FIELD_NUMBER: builtins.int ALIAS_FIELD_NUMBER: builtins.int user_defined_type_reference: builtins.int - 'Deprecated in favor of user_defined, which allows nullability and\n variations to be specified. If user_defined_type_reference is\n encountered, treat it as being non-nullable and having the default\n variation.\n ' - + """Deprecated in favor of user_defined, which allows nullability and + variations to be specified. If user_defined_type_reference is + encountered, treat it as being non-nullable and having the default + variation. + """ @property - def bool(self) -> global___Type.Boolean: - ... - + def bool(self) -> global___Type.Boolean: ... @property - def i8(self) -> global___Type.I8: - ... - + def i8(self) -> global___Type.I8: ... @property - def i16(self) -> global___Type.I16: - ... - + def i16(self) -> global___Type.I16: ... @property - def i32(self) -> global___Type.I32: - ... - + def i32(self) -> global___Type.I32: ... @property - def i64(self) -> global___Type.I64: - ... - + def i64(self) -> global___Type.I64: ... @property - def fp32(self) -> global___Type.FP32: - ... - + def fp32(self) -> global___Type.FP32: ... @property - def fp64(self) -> global___Type.FP64: - ... - + def fp64(self) -> global___Type.FP64: ... @property - def string(self) -> global___Type.String: - ... - + def string(self) -> global___Type.String: ... @property - def binary(self) -> global___Type.Binary: - ... - + def binary(self) -> global___Type.Binary: ... @property def timestamp(self) -> global___Type.Timestamp: """Deprecated in favor of `PrecisionTimestamp precision_timestamp`""" @property - def date(self) -> global___Type.Date: - ... - + def date(self) -> global___Type.Date: ... @property def time(self) -> global___Type.Time: """Deprecated in favor of `PrecisionTime precision_time`""" @property - def interval_year(self) -> global___Type.IntervalYear: - ... - + def interval_year(self) -> global___Type.IntervalYear: ... @property - def interval_day(self) -> global___Type.IntervalDay: - ... - + def interval_day(self) -> global___Type.IntervalDay: ... @property - def interval_compound(self) -> global___Type.IntervalCompound: - ... - + def interval_compound(self) -> global___Type.IntervalCompound: ... @property def timestamp_tz(self) -> global___Type.TimestampTZ: """Deprecated in favor of `PrecisionTimestampTZ precision_timestamp_tz`""" @property - def uuid(self) -> global___Type.UUID: - ... - + def uuid(self) -> global___Type.UUID: ... @property - def fixed_char(self) -> global___Type.FixedChar: - ... - + def fixed_char(self) -> global___Type.FixedChar: ... @property - def varchar(self) -> global___Type.VarChar: - ... - + def varchar(self) -> global___Type.VarChar: ... @property - def fixed_binary(self) -> global___Type.FixedBinary: - ... - + def fixed_binary(self) -> global___Type.FixedBinary: ... @property - def decimal(self) -> global___Type.Decimal: - ... - + def decimal(self) -> global___Type.Decimal: ... @property - def precision_time(self) -> global___Type.PrecisionTime: - ... - + def precision_time(self) -> global___Type.PrecisionTime: ... @property - def precision_timestamp(self) -> global___Type.PrecisionTimestamp: - ... - + def precision_timestamp(self) -> global___Type.PrecisionTimestamp: ... @property def precision_timestamp_tz(self) -> global___Type.PrecisionTimestampTZ: """value is since UNIX epoch in UTC""" @property - def struct(self) -> global___Type.Struct: - ... - + def struct(self) -> global___Type.Struct: ... @property - def list(self) -> global___Type.List: - ... - + def list(self) -> global___Type.List: ... @property - def map(self) -> global___Type.Map: - ... - + def map(self) -> global___Type.Map: ... @property - def user_defined(self) -> global___Type.UserDefined: - ... - + def user_defined(self) -> global___Type.UserDefined: ... @property def alias(self) -> global___Type.TypeAliasReference: """Reference an aliased type in `Plan.type_aliases`.""" - def __init__(self, *, bool: global___Type.Boolean | None=..., i8: global___Type.I8 | None=..., i16: global___Type.I16 | None=..., i32: global___Type.I32 | None=..., i64: global___Type.I64 | None=..., fp32: global___Type.FP32 | None=..., fp64: global___Type.FP64 | None=..., string: global___Type.String | None=..., binary: global___Type.Binary | None=..., timestamp: global___Type.Timestamp | None=..., date: global___Type.Date | None=..., time: global___Type.Time | None=..., interval_year: global___Type.IntervalYear | None=..., interval_day: global___Type.IntervalDay | None=..., interval_compound: global___Type.IntervalCompound | None=..., timestamp_tz: global___Type.TimestampTZ | None=..., uuid: global___Type.UUID | None=..., fixed_char: global___Type.FixedChar | None=..., varchar: global___Type.VarChar | None=..., fixed_binary: global___Type.FixedBinary | None=..., decimal: global___Type.Decimal | None=..., precision_time: global___Type.PrecisionTime | None=..., precision_timestamp: global___Type.PrecisionTimestamp | None=..., precision_timestamp_tz: global___Type.PrecisionTimestampTZ | None=..., struct: global___Type.Struct | None=..., list: global___Type.List | None=..., map: global___Type.Map | None=..., user_defined: global___Type.UserDefined | None=..., user_defined_type_reference: builtins.int=..., alias: global___Type.TypeAliasReference | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['alias', b'alias', 'binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['alias', b'alias', 'binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> None: - ... + def __init__( + self, + *, + bool: global___Type.Boolean | None = ..., + i8: global___Type.I8 | None = ..., + i16: global___Type.I16 | None = ..., + i32: global___Type.I32 | None = ..., + i64: global___Type.I64 | None = ..., + fp32: global___Type.FP32 | None = ..., + fp64: global___Type.FP64 | None = ..., + string: global___Type.String | None = ..., + binary: global___Type.Binary | None = ..., + timestamp: global___Type.Timestamp | None = ..., + date: global___Type.Date | None = ..., + time: global___Type.Time | None = ..., + interval_year: global___Type.IntervalYear | None = ..., + interval_day: global___Type.IntervalDay | None = ..., + interval_compound: global___Type.IntervalCompound | None = ..., + timestamp_tz: global___Type.TimestampTZ | None = ..., + uuid: global___Type.UUID | None = ..., + fixed_char: global___Type.FixedChar | None = ..., + varchar: global___Type.VarChar | None = ..., + fixed_binary: global___Type.FixedBinary | None = ..., + decimal: global___Type.Decimal | None = ..., + precision_time: global___Type.PrecisionTime | None = ..., + precision_timestamp: global___Type.PrecisionTimestamp | None = ..., + precision_timestamp_tz: global___Type.PrecisionTimestampTZ | None = ..., + struct: global___Type.Struct | None = ..., + list: global___Type.List | None = ..., + map: global___Type.Map | None = ..., + user_defined: global___Type.UserDefined | None = ..., + user_defined_type_reference: builtins.int = ..., + alias: global___Type.TypeAliasReference | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["alias", b"alias", "binary", b"binary", "bool", b"bool", "date", b"date", "decimal", b"decimal", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "interval_compound", b"interval_compound", "interval_day", b"interval_day", "interval_year", b"interval_year", "kind", b"kind", "list", b"list", "map", b"map", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "user_defined", b"user_defined", "user_defined_type_reference", b"user_defined_type_reference", "uuid", b"uuid", "varchar", b"varchar"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["alias", b"alias", "binary", b"binary", "bool", b"bool", "date", b"date", "decimal", b"decimal", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "interval_compound", b"interval_compound", "interval_day", b"interval_day", "interval_year", b"interval_year", "kind", b"kind", "list", b"list", "map", b"map", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "user_defined", b"user_defined", "user_defined_type_reference", b"user_defined_type_reference", "uuid", b"uuid", "varchar", b"varchar"]) -> None: ... + def WhichOneof(self, oneof_group: typing.Literal["kind", b"kind"]) -> typing.Literal["bool", "i8", "i16", "i32", "i64", "fp32", "fp64", "string", "binary", "timestamp", "date", "time", "interval_year", "interval_day", "interval_compound", "timestamp_tz", "uuid", "fixed_char", "varchar", "fixed_binary", "decimal", "precision_time", "precision_timestamp", "precision_timestamp_tz", "struct", "list", "map", "user_defined", "user_defined_type_reference", "alias"] | None: ... - def WhichOneof(self, oneof_group: typing.Literal['kind', b'kind']) -> typing.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'interval_compound', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'precision_time', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'list', 'map', 'user_defined', 'user_defined_type_reference', 'alias'] | None: - ... global___Type = Type @typing.final class TypeAlias(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor + TYPE_ALIAS_ANCHOR_FIELD_NUMBER: builtins.int TYPE_FIELD_NUMBER: builtins.int type_alias_anchor: builtins.int - 'A surrogate key used in the context of a single plan to reference a\n specific type alias.\n ' - + """A surrogate key used in the context of a single plan to reference a + specific type alias. + """ @property def type(self) -> global___Type: """A concrete type to be aliased. @@ -729,14 +780,15 @@ class TypeAlias(google.protobuf.message.Message): * Type variation may be specified in the aliased type. """ - def __init__(self, *, type_alias_anchor: builtins.int=..., type: global___Type | None=...) -> None: - ... + def __init__( + self, + *, + type_alias_anchor: builtins.int = ..., + type: global___Type | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["type", b"type", "type_alias_anchor", b"type_alias_anchor"]) -> None: ... - def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: - ... - - def ClearField(self, field_name: typing.Literal['type', b'type', 'type_alias_anchor', b'type_alias_anchor']) -> None: - ... global___TypeAlias = TypeAlias @typing.final @@ -763,24 +815,24 @@ class NamedStruct(google.protobuf.message.Message): * When used to represent a relation schema, the outermost struct's nullability should be NULLABILITY_REQUIRED. """ + DESCRIPTOR: google.protobuf.descriptor.Descriptor + NAMES_FIELD_NUMBER: builtins.int STRUCT_FIELD_NUMBER: builtins.int - @property def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """list of names in dfs order""" @property - def struct(self) -> global___Type.Struct: - ... - - def __init__(self, *, names: collections.abc.Iterable[builtins.str] | None=..., struct: global___Type.Struct | None=...) -> None: - ... - - def HasField(self, field_name: typing.Literal['struct', b'struct']) -> builtins.bool: - ... + def struct(self) -> global___Type.Struct: ... + def __init__( + self, + *, + names: collections.abc.Iterable[builtins.str] | None = ..., + struct: global___Type.Struct | None = ..., + ) -> None: ... + def HasField(self, field_name: typing.Literal["struct", b"struct"]) -> builtins.bool: ... + def ClearField(self, field_name: typing.Literal["names", b"names", "struct", b"struct"]) -> None: ... - def ClearField(self, field_name: typing.Literal['names', b'names', 'struct', b'struct']) -> None: - ... -global___NamedStruct = NamedStruct \ No newline at end of file +global___NamedStruct = NamedStruct From 6c357ad22c7c74c460c5e41ca2ebd74d1ba5de1e Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Wed, 29 Oct 2025 16:04:32 -0400 Subject: [PATCH 16/18] fix: update gen_proto.sh to use uv run protol --- gen_proto.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen_proto.sh b/gen_proto.sh index e7e846b..e047ad3 100755 --- a/gen_proto.sh +++ b/gen_proto.sh @@ -18,7 +18,7 @@ rm -rf "$dest_dir/proto" # Generate the new python protobuf files buf generate -protol --in-place --create-package --python-out "$dest_dir" buf +uv run protol --in-place --create-package --python-out "$dest_dir" buf # Remove the old extension files rm -rf "$extension_dir" From d2f638a2c310796a76eb1930fecb5a9c99580707 Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Wed, 29 Oct 2025 16:04:45 -0400 Subject: [PATCH 17/18] chore: regenerate generate code --- src/substrait/gen/json/simple_extensions.py | 2 +- src/substrait/gen/proto/__init__.py | 0 src/substrait/gen/proto/__init__.pyi | 9 + src/substrait/gen/proto/algebra_pb2.py | 696 ++- src/substrait/gen/proto/algebra_pb2.pyi | 4382 ++++++++--------- src/substrait/gen/proto/capabilities_pb2.py | 36 +- src/substrait/gen/proto/capabilities_pb2.pyi | 45 +- .../gen/proto/extended_expression_pb2.py | 48 +- .../gen/proto/extended_expression_pb2.pyi | 69 +- .../gen/proto/extensions/__init__.py | 0 .../gen/proto/extensions/__init__.pyi | 1 + .../gen/proto/extensions/extensions_pb2.py | 72 +- .../gen/proto/extensions/extensions_pb2.pyi | 192 +- src/substrait/gen/proto/function_pb2.py | 94 +- src/substrait/gen/proto/function_pb2.pyi | 422 +- .../gen/proto/parameterized_types_pb2.py | 122 +- .../gen/proto/parameterized_types_pb2.pyi | 567 ++- src/substrait/gen/proto/plan_pb2.py | 58 +- src/substrait/gen/proto/plan_pb2.pyi | 131 +- .../gen/proto/type_expressions_pb2.py | 134 +- .../gen/proto/type_expressions_pb2.pyi | 702 +-- src/substrait/gen/proto/type_pb2.py | 176 +- src/substrait/gen/proto/type_pb2.pyi | 718 ++- 23 files changed, 4226 insertions(+), 4450 deletions(-) create mode 100644 src/substrait/gen/proto/__init__.py create mode 100644 src/substrait/gen/proto/__init__.pyi create mode 100644 src/substrait/gen/proto/extensions/__init__.py create mode 100644 src/substrait/gen/proto/extensions/__init__.pyi diff --git a/src/substrait/gen/json/simple_extensions.py b/src/substrait/gen/json/simple_extensions.py index e356789..b49f2bf 100644 --- a/src/substrait/gen/json/simple_extensions.py +++ b/src/substrait/gen/json/simple_extensions.py @@ -1,6 +1,6 @@ # generated by datamodel-codegen: # filename: simple_extensions_schema.yaml -# timestamp: 2025-10-29T18:31:02+00:00 +# timestamp: 2025-10-29T20:01:31+00:00 from __future__ import annotations diff --git a/src/substrait/gen/proto/__init__.py b/src/substrait/gen/proto/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/substrait/gen/proto/__init__.pyi b/src/substrait/gen/proto/__init__.pyi new file mode 100644 index 0000000..736ca9f --- /dev/null +++ b/src/substrait/gen/proto/__init__.pyi @@ -0,0 +1,9 @@ +from . import algebra_pb2 +from . import capabilities_pb2 +from . import extended_expression_pb2 +from . import extensions +from . import function_pb2 +from . import parameterized_types_pb2 +from . import plan_pb2 +from . import type_expressions_pb2 +from . import type_pb2 diff --git a/src/substrait/gen/proto/algebra_pb2.py b/src/substrait/gen/proto/algebra_pb2.py index 948d3a5..26c3977 100644 --- a/src/substrait/gen/proto/algebra_pb2.py +++ b/src/substrait/gen/proto/algebra_pb2.py @@ -1,370 +1,350 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: proto/algebra.proto -# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 5, - '', - 'proto/algebra.proto' -) -# @@protoc_insertion_point(imports) - +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/algebra.proto') _sym_db = _symbol_database.Default() - - from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 -from proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 -from proto import type_pb2 as proto_dot_type__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13proto/algebra.proto\x12\x05proto\x1a\x19google/protobuf/any.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/type.proto\"\xba\x0c\n\tRelCommon\x12\x31\n\x06\x64irect\x18\x01 \x01(\x0b\x32\x17.proto.RelCommon.DirectH\x00R\x06\x64irect\x12+\n\x04\x65mit\x18\x02 \x01(\x0b\x32\x15.proto.RelCommon.EmitH\x00R\x04\x65mit\x12)\n\x04hint\x18\x03 \x01(\x0b\x32\x15.proto.RelCommon.HintR\x04hint\x12R\n\x12\x61\x64vanced_extension\x18\x04 \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\x08\n\x06\x44irect\x1a-\n\x04\x45mit\x12%\n\x0eoutput_mapping\x18\x01 \x03(\x05R\routputMapping\x1a\x87\n\n\x04Hint\x12\x31\n\x05stats\x18\x01 \x01(\x0b\x32\x1b.proto.RelCommon.Hint.StatsR\x05stats\x12G\n\nconstraint\x18\x02 \x01(\x0b\x32\'.proto.RelCommon.Hint.RuntimeConstraintR\nconstraint\x12\x14\n\x05\x61lias\x18\x03 \x01(\tR\x05\x61lias\x12!\n\x0coutput_names\x18\x04 \x03(\tR\x0boutputNames\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x12U\n\x12saved_computations\x18\x0b \x03(\x0b\x32&.proto.RelCommon.Hint.SavedComputationR\x11savedComputations\x12X\n\x13loaded_computations\x18\x0c \x03(\x0b\x32\'.proto.RelCommon.Hint.LoadedComputationR\x12loadedComputations\x1a\x99\x01\n\x05Stats\x12\x1b\n\trow_count\x18\x01 \x01(\x01R\x08rowCount\x12\x1f\n\x0brecord_size\x18\x02 \x01(\x01R\nrecordSize\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1ag\n\x11RuntimeConstraint\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\xc8\x01\n\x10SavedComputation\x12%\n\x0e\x63omputation_id\x18\x01 \x01(\x05R\rcomputationId\x12\x39\n\x04type\x18\x02 \x01(\x0e\x32%.proto.RelCommon.Hint.ComputationTypeR\x04type\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\xdc\x01\n\x11LoadedComputation\x12\x38\n\x18\x63omputation_id_reference\x18\x01 \x01(\x05R\x16\x63omputationIdReference\x12\x39\n\x04type\x18\x02 \x01(\x0e\x32%.proto.RelCommon.Hint.ComputationTypeR\x04type\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\x95\x01\n\x0f\x43omputationType\x12 \n\x1c\x43OMPUTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x43OMPUTATION_TYPE_HASHTABLE\x10\x01\x12!\n\x1d\x43OMPUTATION_TYPE_BLOOM_FILTER\x10\x02\x12\x1d\n\x18\x43OMPUTATION_TYPE_UNKNOWN\x10\x8fNB\x0b\n\temit_kind\"\x85\x14\n\x07ReadRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\x33\n\x0b\x62\x61se_schema\x18\x02 \x01(\x0b\x32\x12.proto.NamedStructR\nbaseSchema\x12)\n\x06\x66ilter\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionR\x06\x66ilter\x12?\n\x12\x62\x65st_effort_filter\x18\x0b \x01(\x0b\x32\x11.proto.ExpressionR\x10\x62\x65stEffortFilter\x12@\n\nprojection\x18\x04 \x01(\x0b\x32 .proto.Expression.MaskExpressionR\nprojection\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x12\x42\n\rvirtual_table\x18\x05 \x01(\x0b\x32\x1b.proto.ReadRel.VirtualTableH\x00R\x0cvirtualTable\x12<\n\x0blocal_files\x18\x06 \x01(\x0b\x32\x19.proto.ReadRel.LocalFilesH\x00R\nlocalFiles\x12<\n\x0bnamed_table\x18\x07 \x01(\x0b\x32\x19.proto.ReadRel.NamedTableH\x00R\nnamedTable\x12H\n\x0f\x65xtension_table\x18\x08 \x01(\x0b\x32\x1d.proto.ReadRel.ExtensionTableH\x00R\x0e\x65xtensionTable\x12\x42\n\riceberg_table\x18\t \x01(\x0b\x32\x1b.proto.ReadRel.IcebergTableH\x00R\x0cicebergTable\x1av\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\xfc\x01\n\x0cIcebergTable\x12\x46\n\x06\x64irect\x18\x01 \x01(\x0b\x32,.proto.ReadRel.IcebergTable.MetadataFileReadH\x00R\x06\x64irect\x1a\x95\x01\n\x10MetadataFileRead\x12!\n\x0cmetadata_uri\x18\x01 \x01(\tR\x0bmetadataUri\x12!\n\x0bsnapshot_id\x18\x02 \x01(\tH\x00R\nsnapshotId\x12/\n\x12snapshot_timestamp\x18\x03 \x01(\x03H\x00R\x11snapshotTimestampB\n\n\x08snapshotB\x0c\n\ntable_type\x1a\x8f\x01\n\x0cVirtualTable\x12<\n\x06values\x18\x01 \x03(\x0b\x32 .proto.Expression.Literal.StructB\x02\x18\x01R\x06values\x12\x41\n\x0b\x65xpressions\x18\x02 \x03(\x0b\x32\x1f.proto.Expression.Nested.StructR\x0b\x65xpressions\x1a>\n\x0e\x45xtensionTable\x12,\n\x06\x64\x65tail\x18\x01 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\x1a\xf4\t\n\nLocalFiles\x12;\n\x05items\x18\x01 \x03(\x0b\x32%.proto.ReadRel.LocalFiles.FileOrFilesR\x05items\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\xd4\x08\n\x0b\x46ileOrFiles\x12\x1b\n\x08uri_path\x18\x01 \x01(\tH\x00R\x07uriPath\x12$\n\ruri_path_glob\x18\x02 \x01(\tH\x00R\x0buriPathGlob\x12\x1b\n\x08uri_file\x18\x03 \x01(\tH\x00R\x07uriFile\x12\x1f\n\nuri_folder\x18\x04 \x01(\tH\x00R\turiFolder\x12\'\n\x0fpartition_index\x18\x06 \x01(\x04R\x0epartitionIndex\x12\x14\n\x05start\x18\x07 \x01(\x04R\x05start\x12\x16\n\x06length\x18\x08 \x01(\x04R\x06length\x12T\n\x07parquet\x18\t \x01(\x0b\x32\x38.proto.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptionsH\x01R\x07parquet\x12N\n\x05\x61rrow\x18\n \x01(\x0b\x32\x36.proto.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptionsH\x01R\x05\x61rrow\x12H\n\x03orc\x18\x0b \x01(\x0b\x32\x34.proto.ReadRel.LocalFiles.FileOrFiles.OrcReadOptionsH\x01R\x03orc\x12\x34\n\textension\x18\x0c \x01(\x0b\x32\x14.google.protobuf.AnyH\x01R\textension\x12K\n\x04\x64wrf\x18\r \x01(\x0b\x32\x35.proto.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptionsH\x01R\x04\x64wrf\x12]\n\x04text\x18\x0e \x01(\x0b\x32G.proto.ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptionsH\x01R\x04text\x1a\x14\n\x12ParquetReadOptions\x1a\x12\n\x10\x41rrowReadOptions\x1a\x10\n\x0eOrcReadOptions\x1a\x11\n\x0f\x44wrfReadOptions\x1a\xa1\x02\n!DelimiterSeparatedTextReadOptions\x12\'\n\x0f\x66ield_delimiter\x18\x01 \x01(\tR\x0e\x66ieldDelimiter\x12\"\n\rmax_line_size\x18\x02 \x01(\x04R\x0bmaxLineSize\x12\x14\n\x05quote\x18\x03 \x01(\tR\x05quote\x12/\n\x14header_lines_to_skip\x18\x04 \x01(\x04R\x11headerLinesToSkip\x12\x16\n\x06\x65scape\x18\x05 \x01(\tR\x06\x65scape\x12\x36\n\x15value_treated_as_null\x18\x06 \x01(\tH\x00R\x12valueTreatedAsNull\x88\x01\x01\x42\x18\n\x16_value_treated_as_nullB\x0b\n\tpath_typeB\r\n\x0b\x66ile_formatJ\x04\x08\x05\x10\x06R\x06\x66ormatB\x0b\n\tread_type\"\xe1\x01\n\nProjectRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12\x33\n\x0b\x65xpressions\x18\x03 \x03(\x0b\x32\x11.proto.ExpressionR\x0b\x65xpressions\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xb1\x05\n\x07JoinRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\x1e\n\x04left\x18\x02 \x01(\x0b\x32\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b\x32\n.proto.RelR\x05right\x12\x31\n\nexpression\x18\x04 \x01(\x0b\x32\x11.proto.ExpressionR\nexpression\x12;\n\x10post_join_filter\x18\x05 \x01(\x0b\x32\x11.proto.ExpressionR\x0epostJoinFilter\x12+\n\x04type\x18\x06 \x01(\x0e\x32\x17.proto.JoinRel.JoinTypeR\x04type\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x06\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x08\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c\"\xca\x01\n\x08\x43rossRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\x1e\n\x04left\x18\x02 \x01(\x0b\x32\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b\x32\n.proto.RelR\x05right\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xeb\x02\n\x08\x46\x65tchRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12\x1c\n\x06offset\x18\x03 \x01(\x03\x42\x02\x18\x01H\x00R\x06offset\x12\x34\n\x0boffset_expr\x18\x05 \x01(\x0b\x32\x11.proto.ExpressionH\x00R\noffsetExpr\x12\x1a\n\x05\x63ount\x18\x04 \x01(\x03\x42\x02\x18\x01H\x01R\x05\x63ount\x12\x32\n\ncount_expr\x18\x06 \x01(\x0b\x32\x11.proto.ExpressionH\x01R\tcountExpr\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtensionB\r\n\x0boffset_modeB\x0c\n\ncount_mode\"\xdf\x04\n\x0c\x41ggregateRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12:\n\tgroupings\x18\x03 \x03(\x0b\x32\x1c.proto.AggregateRel.GroupingR\tgroupings\x12\x37\n\x08measures\x18\x04 \x03(\x0b\x32\x1b.proto.AggregateRel.MeasureR\x08measures\x12\x44\n\x14grouping_expressions\x18\x05 \x03(\x0b\x32\x11.proto.ExpressionR\x13groupingExpressions\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\x89\x01\n\x08Grouping\x12H\n\x14grouping_expressions\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionB\x02\x18\x01R\x13groupingExpressions\x12\x33\n\x15\x65xpression_references\x18\x02 \x03(\rR\x14\x65xpressionReferences\x1ah\n\x07Measure\x12\x32\n\x07measure\x18\x01 \x01(\x0b\x32\x18.proto.AggregateFunctionR\x07measure\x12)\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x11.proto.ExpressionR\x06\x66ilter\"\xca\x07\n\x1c\x43onsistentPartitionWindowRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12`\n\x10window_functions\x18\x03 \x03(\x0b\x32\x35.proto.ConsistentPartitionWindowRel.WindowRelFunctionR\x0fwindowFunctions\x12\x46\n\x15partition_expressions\x18\x04 \x03(\x0b\x32\x11.proto.ExpressionR\x14partitionExpressions\x12&\n\x05sorts\x18\x05 \x03(\x0b\x32\x10.proto.SortFieldR\x05sorts\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1a\xb7\x04\n\x11WindowRelFunction\x12-\n\x12\x66unction_reference\x18\x01 \x01(\rR\x11\x66unctionReference\x12\x35\n\targuments\x18\t \x03(\x0b\x32\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b\x32\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b\x32\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e\x32\x17.proto.AggregationPhaseR\x05phase\x12N\n\ninvocation\x18\n \x01(\x0e\x32..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12G\n\x0blower_bound\x18\x05 \x01(\x0b\x32&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b\x32&.proto.Expression.WindowFunction.BoundR\nupperBound\x12L\n\x0b\x62ounds_type\x18\x0c \x01(\x0e\x32+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType\"\xd1\x01\n\x07SortRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12&\n\x05sorts\x18\x03 \x03(\x0b\x32\x10.proto.SortFieldR\x05sorts\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xdc\x01\n\tFilterRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12/\n\tcondition\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionR\tcondition\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xde\x03\n\x06SetRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\"\n\x06inputs\x18\x02 \x03(\x0b\x32\n.proto.RelR\x06inputs\x12#\n\x02op\x18\x03 \x01(\x0e\x32\x13.proto.SetRel.SetOpR\x02op\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\x8c\x02\n\x05SetOp\x12\x16\n\x12SET_OP_UNSPECIFIED\x10\x00\x12\x18\n\x14SET_OP_MINUS_PRIMARY\x10\x01\x12\x1c\n\x18SET_OP_MINUS_PRIMARY_ALL\x10\x07\x12\x19\n\x15SET_OP_MINUS_MULTISET\x10\x02\x12\x1f\n\x1bSET_OP_INTERSECTION_PRIMARY\x10\x03\x12 \n\x1cSET_OP_INTERSECTION_MULTISET\x10\x04\x12$\n SET_OP_INTERSECTION_MULTISET_ALL\x10\x08\x12\x19\n\x15SET_OP_UNION_DISTINCT\x10\x05\x12\x14\n\x10SET_OP_UNION_ALL\x10\x06\"\x8e\x01\n\x12\x45xtensionSingleRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12,\n\x06\x64\x65tail\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\"j\n\x10\x45xtensionLeafRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12,\n\x06\x64\x65tail\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\"\x8f\x01\n\x11\x45xtensionMultiRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\"\n\x06inputs\x18\x02 \x03(\x0b\x32\n.proto.RelR\x06inputs\x12,\n\x06\x64\x65tail\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\"\xe9\x08\n\x0b\x45xchangeRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12\'\n\x0fpartition_count\x18\x03 \x01(\x05R\x0epartitionCount\x12;\n\x07targets\x18\x04 \x03(\x0b\x32!.proto.ExchangeRel.ExchangeTargetR\x07targets\x12N\n\x11scatter_by_fields\x18\x05 \x01(\x0b\x32 .proto.ExchangeRel.ScatterFieldsH\x00R\x0fscatterByFields\x12P\n\rsingle_target\x18\x06 \x01(\x0b\x32).proto.ExchangeRel.SingleBucketExpressionH\x00R\x0csingleTarget\x12M\n\x0cmulti_target\x18\x07 \x01(\x0b\x32(.proto.ExchangeRel.MultiBucketExpressionH\x00R\x0bmultiTarget\x12@\n\x0bround_robin\x18\x08 \x01(\x0b\x32\x1d.proto.ExchangeRel.RoundRobinH\x00R\nroundRobin\x12<\n\tbroadcast\x18\t \x01(\x0b\x32\x1c.proto.ExchangeRel.BroadcastH\x00R\tbroadcast\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1aI\n\rScatterFields\x12\x38\n\x06\x66ields\x18\x01 \x03(\x0b\x32 .proto.Expression.FieldReferenceR\x06\x66ields\x1aK\n\x16SingleBucketExpression\x12\x31\n\nexpression\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionR\nexpression\x1a|\n\x15MultiBucketExpression\x12\x31\n\nexpression\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionR\nexpression\x12\x30\n\x14\x63onstrained_to_count\x18\x02 \x01(\x08R\x12\x63onstrainedToCount\x1a\x0b\n\tBroadcast\x1a\"\n\nRoundRobin\x12\x14\n\x05\x65xact\x18\x01 \x01(\x08R\x05\x65xact\x1a\x8a\x01\n\x0e\x45xchangeTarget\x12!\n\x0cpartition_id\x18\x01 \x03(\x05R\x0bpartitionId\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uri\x12\x32\n\x08\x65xtended\x18\x03 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00R\x08\x65xtendedB\r\n\x0btarget_typeB\x0f\n\rexchange_kind\"\xfc\x02\n\tExpandRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12 \n\x05input\x18\x02 \x01(\x0b\x32\n.proto.RelR\x05input\x12\x34\n\x06\x66ields\x18\x04 \x03(\x0b\x32\x1c.proto.ExpandRel.ExpandFieldR\x06\x66ields\x1a\xa7\x01\n\x0b\x45xpandField\x12J\n\x0fswitching_field\x18\x02 \x01(\x0b\x32\x1f.proto.ExpandRel.SwitchingFieldH\x00R\x0eswitchingField\x12>\n\x10\x63onsistent_field\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionH\x00R\x0f\x63onsistentFieldB\x0c\n\nfield_type\x1a\x43\n\x0eSwitchingField\x12\x31\n\nduplicates\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionR\nduplicates\"A\n\x07RelRoot\x12 \n\x05input\x18\x01 \x01(\x0b\x32\n.proto.RelR\x05input\x12\x14\n\x05names\x18\x02 \x03(\tR\x05names\"\xd0\x08\n\x03Rel\x12$\n\x04read\x18\x01 \x01(\x0b\x32\x0e.proto.ReadRelH\x00R\x04read\x12*\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\x10.proto.FilterRelH\x00R\x06\x66ilter\x12\'\n\x05\x66\x65tch\x18\x03 \x01(\x0b\x32\x0f.proto.FetchRelH\x00R\x05\x66\x65tch\x12\x33\n\taggregate\x18\x04 \x01(\x0b\x32\x13.proto.AggregateRelH\x00R\taggregate\x12$\n\x04sort\x18\x05 \x01(\x0b\x32\x0e.proto.SortRelH\x00R\x04sort\x12$\n\x04join\x18\x06 \x01(\x0b\x32\x0e.proto.JoinRelH\x00R\x04join\x12-\n\x07project\x18\x07 \x01(\x0b\x32\x11.proto.ProjectRelH\x00R\x07project\x12!\n\x03set\x18\x08 \x01(\x0b\x32\r.proto.SetRelH\x00R\x03set\x12\x46\n\x10\x65xtension_single\x18\t \x01(\x0b\x32\x19.proto.ExtensionSingleRelH\x00R\x0f\x65xtensionSingle\x12\x43\n\x0f\x65xtension_multi\x18\n \x01(\x0b\x32\x18.proto.ExtensionMultiRelH\x00R\x0e\x65xtensionMulti\x12@\n\x0e\x65xtension_leaf\x18\x0b \x01(\x0b\x32\x17.proto.ExtensionLeafRelH\x00R\rextensionLeaf\x12\'\n\x05\x63ross\x18\x0c \x01(\x0b\x32\x0f.proto.CrossRelH\x00R\x05\x63ross\x12\x33\n\treference\x18\x15 \x01(\x0b\x32\x13.proto.ReferenceRelH\x00R\treference\x12\'\n\x05write\x18\x13 \x01(\x0b\x32\x0f.proto.WriteRelH\x00R\x05write\x12!\n\x03\x64\x64l\x18\x14 \x01(\x0b\x32\r.proto.DdlRelH\x00R\x03\x64\x64l\x12*\n\x06update\x18\x16 \x01(\x0b\x32\x10.proto.UpdateRelH\x00R\x06update\x12\x31\n\thash_join\x18\r \x01(\x0b\x32\x12.proto.HashJoinRelH\x00R\x08hashJoin\x12\x34\n\nmerge_join\x18\x0e \x01(\x0b\x32\x13.proto.MergeJoinRelH\x00R\tmergeJoin\x12\x44\n\x10nested_loop_join\x18\x12 \x01(\x0b\x32\x18.proto.NestedLoopJoinRelH\x00R\x0enestedLoopJoin\x12=\n\x06window\x18\x11 \x01(\x0b\x32#.proto.ConsistentPartitionWindowRelH\x00R\x06window\x12\x30\n\x08\x65xchange\x18\x0f \x01(\x0b\x32\x12.proto.ExchangeRelH\x00R\x08\x65xchange\x12*\n\x06\x65xpand\x18\x10 \x01(\x0b\x32\x10.proto.ExpandRelH\x00R\x06\x65xpandB\n\n\x08rel_type\"|\n\x10NamedObjectWrite\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"?\n\x0f\x45xtensionObject\x12,\n\x06\x64\x65tail\x18\x01 \x01(\x0b\x32\x14.google.protobuf.AnyR\x06\x64\x65tail\"\x86\x06\n\x06\x44\x64lRel\x12<\n\x0cnamed_object\x18\x01 \x01(\x0b\x32\x17.proto.NamedObjectWriteH\x00R\x0bnamedObject\x12\x43\n\x10\x65xtension_object\x18\x02 \x01(\x0b\x32\x16.proto.ExtensionObjectH\x00R\x0f\x65xtensionObject\x12\x35\n\x0ctable_schema\x18\x03 \x01(\x0b\x32\x12.proto.NamedStructR\x0btableSchema\x12G\n\x0etable_defaults\x18\x04 \x01(\x0b\x32 .proto.Expression.Literal.StructR\rtableDefaults\x12/\n\x06object\x18\x05 \x01(\x0e\x32\x17.proto.DdlRel.DdlObjectR\x06object\x12#\n\x02op\x18\x06 \x01(\x0e\x32\x13.proto.DdlRel.DdlOpR\x02op\x12\x33\n\x0fview_definition\x18\x07 \x01(\x0b\x32\n.proto.RelR\x0eviewDefinition\x12(\n\x06\x63ommon\x18\x08 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12R\n\x12\x61\x64vanced_extension\x18\t \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"R\n\tDdlObject\x12\x1a\n\x16\x44\x44L_OBJECT_UNSPECIFIED\x10\x00\x12\x14\n\x10\x44\x44L_OBJECT_TABLE\x10\x01\x12\x13\n\x0f\x44\x44L_OBJECT_VIEW\x10\x02\"\x8d\x01\n\x05\x44\x64lOp\x12\x16\n\x12\x44\x44L_OP_UNSPECIFIED\x10\x00\x12\x11\n\rDDL_OP_CREATE\x10\x01\x12\x1c\n\x18\x44\x44L_OP_CREATE_OR_REPLACE\x10\x02\x12\x10\n\x0c\x44\x44L_OP_ALTER\x10\x03\x12\x0f\n\x0b\x44\x44L_OP_DROP\x10\x04\x12\x18\n\x14\x44\x44L_OP_DROP_IF_EXIST\x10\x05\x42\x0c\n\nwrite_type\"\x9b\x07\n\x08WriteRel\x12:\n\x0bnamed_table\x18\x01 \x01(\x0b\x32\x17.proto.NamedObjectWriteH\x00R\nnamedTable\x12\x41\n\x0f\x65xtension_table\x18\x02 \x01(\x0b\x32\x16.proto.ExtensionObjectH\x00R\x0e\x65xtensionTable\x12\x35\n\x0ctable_schema\x18\x03 \x01(\x0b\x32\x12.proto.NamedStructR\x0btableSchema\x12\'\n\x02op\x18\x04 \x01(\x0e\x32\x17.proto.WriteRel.WriteOpR\x02op\x12 \n\x05input\x18\x05 \x01(\x0b\x32\n.proto.RelR\x05input\x12;\n\x0b\x63reate_mode\x18\x08 \x01(\x0e\x32\x1a.proto.WriteRel.CreateModeR\ncreateMode\x12\x32\n\x06output\x18\x06 \x01(\x0e\x32\x1a.proto.WriteRel.OutputModeR\x06output\x12(\n\x06\x63ommon\x18\x07 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12R\n\x12\x61\x64vanced_extension\x18\t \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"u\n\x07WriteOp\x12\x18\n\x14WRITE_OP_UNSPECIFIED\x10\x00\x12\x13\n\x0fWRITE_OP_INSERT\x10\x01\x12\x13\n\x0fWRITE_OP_DELETE\x10\x02\x12\x13\n\x0fWRITE_OP_UPDATE\x10\x03\x12\x11\n\rWRITE_OP_CTAS\x10\x04\"\xb1\x01\n\nCreateMode\x12\x1b\n\x17\x43REATE_MODE_UNSPECIFIED\x10\x00\x12 \n\x1c\x43REATE_MODE_APPEND_IF_EXISTS\x10\x01\x12!\n\x1d\x43REATE_MODE_REPLACE_IF_EXISTS\x10\x02\x12 \n\x1c\x43REATE_MODE_IGNORE_IF_EXISTS\x10\x03\x12\x1f\n\x1b\x43REATE_MODE_ERROR_IF_EXISTS\x10\x04\"f\n\nOutputMode\x12\x1b\n\x17OUTPUT_MODE_UNSPECIFIED\x10\x00\x12\x19\n\x15OUTPUT_MODE_NO_OUTPUT\x10\x01\x12 \n\x1cOUTPUT_MODE_MODIFIED_RECORDS\x10\x02\x42\x0c\n\nwrite_type\"\xd3\x03\n\tUpdateRel\x12\x34\n\x0bnamed_table\x18\x01 \x01(\x0b\x32\x11.proto.NamedTableH\x00R\nnamedTable\x12\x35\n\x0ctable_schema\x18\x02 \x01(\x0b\x32\x12.proto.NamedStructR\x0btableSchema\x12/\n\tcondition\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionR\tcondition\x12N\n\x0ftransformations\x18\x04 \x03(\x0b\x32$.proto.UpdateRel.TransformExpressionR\x0ftransformations\x12R\n\x12\x61\x64vanced_extension\x18\x05 \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\x1au\n\x13TransformExpression\x12\x39\n\x0etransformation\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionR\x0etransformation\x12#\n\rcolumn_target\x18\x02 \x01(\x05R\x0c\x63olumnTargetB\r\n\x0bupdate_type\"v\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xab\x04\n\x11\x43omparisonJoinKey\x12\x34\n\x04left\x18\x01 \x01(\x0b\x32 .proto.Expression.FieldReferenceR\x04left\x12\x36\n\x05right\x18\x02 \x01(\x0b\x32 .proto.Expression.FieldReferenceR\x05right\x12G\n\ncomparison\x18\x03 \x01(\x0b\x32\'.proto.ComparisonJoinKey.ComparisonTypeR\ncomparison\x1a\xa5\x01\n\x0e\x43omparisonType\x12G\n\x06simple\x18\x01 \x01(\x0e\x32-.proto.ComparisonJoinKey.SimpleComparisonTypeH\x00R\x06simple\x12<\n\x19\x63ustom_function_reference\x18\x02 \x01(\rH\x00R\x17\x63ustomFunctionReferenceB\x0c\n\ninner_type\"\xb6\x01\n\x14SimpleComparisonType\x12&\n\"SIMPLE_COMPARISON_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19SIMPLE_COMPARISON_TYPE_EQ\x10\x01\x12/\n+SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM\x10\x02\x12&\n\"SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL\x10\x03\"\xd4\x07\n\x0bHashJoinRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\x1e\n\x04left\x18\x02 \x01(\x0b\x32\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b\x32\n.proto.RelR\x05right\x12\x41\n\tleft_keys\x18\x04 \x03(\x0b\x32 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12\x43\n\nright_keys\x18\x05 \x03(\x0b\x32 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b\x32\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b\x32\x11.proto.ExpressionR\x0epostJoinFilter\x12/\n\x04type\x18\x07 \x01(\x0e\x32\x1b.proto.HashJoinRel.JoinTypeR\x04type\x12>\n\x0b\x62uild_input\x18\t \x01(\x0e\x32\x1d.proto.HashJoinRel.BuildInputR\nbuildInput\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c\"V\n\nBuildInput\x12\x1b\n\x17\x42UILD_INPUT_UNSPECIFIED\x10\x00\x12\x14\n\x10\x42UILD_INPUT_LEFT\x10\x01\x12\x15\n\x11\x42UILD_INPUT_RIGHT\x10\x02\"\xbe\x06\n\x0cMergeJoinRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\x1e\n\x04left\x18\x02 \x01(\x0b\x32\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b\x32\n.proto.RelR\x05right\x12\x41\n\tleft_keys\x18\x04 \x03(\x0b\x32 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12\x43\n\nright_keys\x18\x05 \x03(\x0b\x32 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b\x32\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b\x32\x11.proto.ExpressionR\x0epostJoinFilter\x12\x30\n\x04type\x18\x07 \x01(\x0e\x32\x1c.proto.MergeJoinRel.JoinTypeR\x04type\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c\"\x88\x05\n\x11NestedLoopJoinRel\x12(\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\x10.proto.RelCommonR\x06\x63ommon\x12\x1e\n\x04left\x18\x02 \x01(\x0b\x32\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b\x32\n.proto.RelR\x05right\x12\x31\n\nexpression\x18\x04 \x01(\x0b\x32\x11.proto.ExpressionR\nexpression\x12\x35\n\x04type\x18\x05 \x01(\x0e\x32!.proto.NestedLoopJoinRel.JoinTypeR\x04type\x12R\n\x12\x61\x64vanced_extension\x18\n \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x11\x61\x64vancedExtension\"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c\"\x82\x01\n\x10\x46unctionArgument\x12\x14\n\x04\x65num\x18\x01 \x01(\tH\x00R\x04\x65num\x12!\n\x04type\x18\x02 \x01(\x0b\x32\x0b.proto.TypeH\x00R\x04type\x12)\n\x05value\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionH\x00R\x05valueB\n\n\x08\x61rg_type\"D\n\x0e\x46unctionOption\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1e\n\npreference\x18\x02 \x03(\tR\npreference\"\xdfW\n\nExpression\x12\x35\n\x07literal\x18\x01 \x01(\x0b\x32\x19.proto.Expression.LiteralH\x00R\x07literal\x12@\n\tselection\x18\x02 \x01(\x0b\x32 .proto.Expression.FieldReferenceH\x00R\tselection\x12K\n\x0fscalar_function\x18\x03 \x01(\x0b\x32 .proto.Expression.ScalarFunctionH\x00R\x0escalarFunction\x12K\n\x0fwindow_function\x18\x05 \x01(\x0b\x32 .proto.Expression.WindowFunctionH\x00R\x0ewindowFunction\x12\x33\n\x07if_then\x18\x06 \x01(\x0b\x32\x18.proto.Expression.IfThenH\x00R\x06ifThen\x12Q\n\x11switch_expression\x18\x07 \x01(\x0b\x32\".proto.Expression.SwitchExpressionH\x00R\x10switchExpression\x12L\n\x10singular_or_list\x18\x08 \x01(\x0b\x32 .proto.Expression.SingularOrListH\x00R\x0esingularOrList\x12\x43\n\rmulti_or_list\x18\t \x01(\x0b\x32\x1d.proto.Expression.MultiOrListH\x00R\x0bmultiOrList\x12,\n\x04\x63\x61st\x18\x0b \x01(\x0b\x32\x16.proto.Expression.CastH\x00R\x04\x63\x61st\x12\x38\n\x08subquery\x18\x0c \x01(\x0b\x32\x1a.proto.Expression.SubqueryH\x00R\x08subquery\x12\x32\n\x06nested\x18\r \x01(\x0b\x32\x18.proto.Expression.NestedH\x00R\x06nested\x12\x46\n\x11\x64ynamic_parameter\x18\x0e \x01(\x0b\x32\x17.proto.DynamicParameterH\x00R\x10\x64ynamicParameter\x12\x30\n\x04\x65num\x18\n \x01(\x0b\x32\x16.proto.Expression.EnumB\x02\x18\x01H\x00R\x04\x65num\x1a\x86\x01\n\x04\x45num\x12\x1e\n\tspecified\x18\x01 \x01(\tH\x00R\tspecified\x12@\n\x0bunspecified\x18\x02 \x01(\x0b\x32\x1c.proto.Expression.Enum.EmptyH\x00R\x0bunspecified\x1a\x0b\n\x05\x45mpty:\x02\x18\x01:\x02\x18\x01\x42\x0b\n\tenum_kind\x1a\xde\x16\n\x07Literal\x12\x1a\n\x07\x62oolean\x18\x01 \x01(\x08H\x00R\x07\x62oolean\x12\x10\n\x02i8\x18\x02 \x01(\x05H\x00R\x02i8\x12\x12\n\x03i16\x18\x03 \x01(\x05H\x00R\x03i16\x12\x12\n\x03i32\x18\x05 \x01(\x05H\x00R\x03i32\x12\x12\n\x03i64\x18\x07 \x01(\x03H\x00R\x03i64\x12\x14\n\x04\x66p32\x18\n \x01(\x02H\x00R\x04\x66p32\x12\x14\n\x04\x66p64\x18\x0b \x01(\x01H\x00R\x04\x66p64\x12\x18\n\x06string\x18\x0c \x01(\tH\x00R\x06string\x12\x18\n\x06\x62inary\x18\r \x01(\x0cH\x00R\x06\x62inary\x12\"\n\ttimestamp\x18\x0e \x01(\x03\x42\x02\x18\x01H\x00R\ttimestamp\x12\x14\n\x04\x64\x61te\x18\x10 \x01(\x05H\x00R\x04\x64\x61te\x12\x14\n\x04time\x18\x11 \x01(\x03H\x00R\x04time\x12\x64\n\x16interval_year_to_month\x18\x13 \x01(\x0b\x32-.proto.Expression.Literal.IntervalYearToMonthH\x00R\x13intervalYearToMonth\x12\x64\n\x16interval_day_to_second\x18\x14 \x01(\x0b\x32-.proto.Expression.Literal.IntervalDayToSecondH\x00R\x13intervalDayToSecond\x12Y\n\x11interval_compound\x18$ \x01(\x0b\x32*.proto.Expression.Literal.IntervalCompoundH\x00R\x10intervalCompound\x12\x1f\n\nfixed_char\x18\x15 \x01(\tH\x00R\tfixedChar\x12>\n\x08var_char\x18\x16 \x01(\x0b\x32!.proto.Expression.Literal.VarCharH\x00R\x07varChar\x12#\n\x0c\x66ixed_binary\x18\x17 \x01(\x0cH\x00R\x0b\x66ixedBinary\x12=\n\x07\x64\x65\x63imal\x18\x18 \x01(\x0b\x32!.proto.Expression.Literal.DecimalH\x00R\x07\x64\x65\x63imal\x12P\n\x0eprecision_time\x18% \x01(\x0b\x32\'.proto.Expression.Literal.PrecisionTimeH\x00R\rprecisionTime\x12_\n\x13precision_timestamp\x18\" \x01(\x0b\x32,.proto.Expression.Literal.PrecisionTimestampH\x00R\x12precisionTimestamp\x12\x64\n\x16precision_timestamp_tz\x18# \x01(\x0b\x32,.proto.Expression.Literal.PrecisionTimestampH\x00R\x14precisionTimestampTz\x12:\n\x06struct\x18\x19 \x01(\x0b\x32 .proto.Expression.Literal.StructH\x00R\x06struct\x12\x31\n\x03map\x18\x1a \x01(\x0b\x32\x1d.proto.Expression.Literal.MapH\x00R\x03map\x12\'\n\x0ctimestamp_tz\x18\x1b \x01(\x03\x42\x02\x18\x01H\x00R\x0btimestampTz\x12\x14\n\x04uuid\x18\x1c \x01(\x0cH\x00R\x04uuid\x12!\n\x04null\x18\x1d \x01(\x0b\x32\x0b.proto.TypeH\x00R\x04null\x12\x34\n\x04list\x18\x1e \x01(\x0b\x32\x1e.proto.Expression.Literal.ListH\x00R\x04list\x12\x31\n\nempty_list\x18\x1f \x01(\x0b\x32\x10.proto.Type.ListH\x00R\temptyList\x12.\n\tempty_map\x18 \x01(\x0b\x32\x0f.proto.Type.MapH\x00R\x08\x65mptyMap\x12J\n\x0cuser_defined\x18! \x01(\x0b\x32%.proto.Expression.Literal.UserDefinedH\x00R\x0buserDefined\x12\x1a\n\x08nullable\x18\x32 \x01(\x08R\x08nullable\x12\x38\n\x18type_variation_reference\x18\x33 \x01(\rR\x16typeVariationReference\x1a\x37\n\x07VarChar\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x12\x16\n\x06length\x18\x02 \x01(\rR\x06length\x1aS\n\x07\x44\x65\x63imal\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x12\x14\n\x05scale\x18\x03 \x01(\x05R\x05scale\x1a\x43\n\rPrecisionTime\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1aH\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1a\xb6\x01\n\x03Map\x12\x45\n\nkey_values\x18\x01 \x03(\x0b\x32&.proto.Expression.Literal.Map.KeyValueR\tkeyValues\x1ah\n\x08KeyValue\x12+\n\x03key\x18\x01 \x01(\x0b\x32\x19.proto.Expression.LiteralR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.proto.Expression.LiteralR\x05value\x1a\x43\n\x13IntervalYearToMonth\x12\x14\n\x05years\x18\x01 \x01(\x05R\x05years\x12\x16\n\x06months\x18\x02 \x01(\x05R\x06months\x1a\xbf\x01\n\x13IntervalDayToSecond\x12\x12\n\x04\x64\x61ys\x18\x01 \x01(\x05R\x04\x64\x61ys\x12\x18\n\x07seconds\x18\x02 \x01(\x05R\x07seconds\x12(\n\x0cmicroseconds\x18\x03 \x01(\x05\x42\x02\x18\x01H\x00R\x0cmicroseconds\x12\x1e\n\tprecision\x18\x04 \x01(\x05H\x00R\tprecision\x12\x1e\n\nsubseconds\x18\x05 \x01(\x03R\nsubsecondsB\x10\n\x0eprecision_mode\x1a\xda\x01\n\x10IntervalCompound\x12\x62\n\x16interval_year_to_month\x18\x01 \x01(\x0b\x32-.proto.Expression.Literal.IntervalYearToMonthR\x13intervalYearToMonth\x12\x62\n\x16interval_day_to_second\x18\x02 \x01(\x0b\x32-.proto.Expression.Literal.IntervalDayToSecondR\x13intervalDayToSecond\x1a;\n\x06Struct\x12\x31\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x19.proto.Expression.LiteralR\x06\x66ields\x1a\x39\n\x04List\x12\x31\n\x06values\x18\x01 \x03(\x0b\x32\x19.proto.Expression.LiteralR\x06values\x1a\xe5\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x12>\n\x0ftype_parameters\x18\x03 \x03(\x0b\x32\x15.proto.Type.ParameterR\x0etypeParameters\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyH\x00R\x05value\x12:\n\x06struct\x18\x04 \x01(\x0b\x32 .proto.Expression.Literal.StructH\x00R\x06structB\x05\n\x03valB\x0e\n\x0cliteral_type\x1a\x9f\x04\n\x06Nested\x12\x1a\n\x08nullable\x18\x01 \x01(\x08R\x08nullable\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x06struct\x18\x03 \x01(\x0b\x32\x1f.proto.Expression.Nested.StructH\x00R\x06struct\x12\x33\n\x04list\x18\x04 \x01(\x0b\x32\x1d.proto.Expression.Nested.ListH\x00R\x04list\x12\x30\n\x03map\x18\x05 \x01(\x0b\x32\x1c.proto.Expression.Nested.MapH\x00R\x03map\x1a\xa5\x01\n\x03Map\x12\x44\n\nkey_values\x18\x01 \x03(\x0b\x32%.proto.Expression.Nested.Map.KeyValueR\tkeyValues\x1aX\n\x08KeyValue\x12#\n\x03key\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionR\x03key\x12\'\n\x05value\x18\x02 \x01(\x0b\x32\x11.proto.ExpressionR\x05value\x1a\x33\n\x06Struct\x12)\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionR\x06\x66ields\x1a\x31\n\x04List\x12)\n\x06values\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionR\x06valuesB\r\n\x0bnested_type\x1a\x80\x02\n\x0eScalarFunction\x12-\n\x12\x66unction_reference\x18\x01 \x01(\rR\x11\x66unctionReference\x12\x35\n\targuments\x18\x04 \x03(\x0b\x32\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x05 \x03(\x0b\x32\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x03 \x01(\x0b\x32\x0b.proto.TypeR\noutputType\x12)\n\x04\x61rgs\x18\x02 \x03(\x0b\x32\x11.proto.ExpressionB\x02\x18\x01R\x04\x61rgs\x1a\xd5\t\n\x0eWindowFunction\x12-\n\x12\x66unction_reference\x18\x01 \x01(\rR\x11\x66unctionReference\x12\x35\n\targuments\x18\t \x03(\x0b\x32\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b\x32\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b\x32\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e\x32\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b\x32\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\n \x01(\x0e\x32..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12\x31\n\npartitions\x18\x02 \x03(\x0b\x32\x11.proto.ExpressionR\npartitions\x12L\n\x0b\x62ounds_type\x18\x0c \x01(\x0e\x32+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType\x12G\n\x0blower_bound\x18\x05 \x01(\x0b\x32&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b\x32&.proto.Expression.WindowFunction.BoundR\nupperBound\x12)\n\x04\x61rgs\x18\x08 \x03(\x0b\x32\x11.proto.ExpressionB\x02\x18\x01R\x04\x61rgs\x1a\xc0\x03\n\x05\x42ound\x12P\n\tpreceding\x18\x01 \x01(\x0b\x32\x30.proto.Expression.WindowFunction.Bound.PrecedingH\x00R\tpreceding\x12P\n\tfollowing\x18\x02 \x01(\x0b\x32\x30.proto.Expression.WindowFunction.Bound.FollowingH\x00R\tfollowing\x12T\n\x0b\x63urrent_row\x18\x03 \x01(\x0b\x32\x31.proto.Expression.WindowFunction.Bound.CurrentRowH\x00R\ncurrentRow\x12P\n\tunbounded\x18\x04 \x01(\x0b\x32\x30.proto.Expression.WindowFunction.Bound.UnboundedH\x00R\tunbounded\x1a#\n\tPreceding\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a#\n\tFollowing\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a\x0c\n\nCurrentRow\x1a\x0b\n\tUnboundedB\x06\n\x04kind\"V\n\nBoundsType\x12\x1b\n\x17\x42OUNDS_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10\x42OUNDS_TYPE_ROWS\x10\x01\x12\x15\n\x11\x42OUNDS_TYPE_RANGE\x10\x02\x1a\xba\x01\n\x06IfThen\x12\x33\n\x03ifs\x18\x01 \x03(\x0b\x32!.proto.Expression.IfThen.IfClauseR\x03ifs\x12%\n\x04\x65lse\x18\x02 \x01(\x0b\x32\x11.proto.ExpressionR\x04\x65lse\x1aT\n\x08IfClause\x12!\n\x02if\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b\x32\x11.proto.ExpressionR\x04then\x1a\xa0\x02\n\x04\x43\x61st\x12\x1f\n\x04type\x18\x01 \x01(\x0b\x32\x0b.proto.TypeR\x04type\x12\'\n\x05input\x18\x02 \x01(\x0b\x32\x11.proto.ExpressionR\x05input\x12Q\n\x10\x66\x61ilure_behavior\x18\x03 \x01(\x0e\x32&.proto.Expression.Cast.FailureBehaviorR\x0f\x66\x61ilureBehavior\"{\n\x0f\x46\x61ilureBehavior\x12 \n\x1c\x46\x41ILURE_BEHAVIOR_UNSPECIFIED\x10\x00\x12 \n\x1c\x46\x41ILURE_BEHAVIOR_RETURN_NULL\x10\x01\x12$\n FAILURE_BEHAVIOR_THROW_EXCEPTION\x10\x02\x1a\xfd\x01\n\x10SwitchExpression\x12\'\n\x05match\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionR\x05match\x12<\n\x03ifs\x18\x01 \x03(\x0b\x32*.proto.Expression.SwitchExpression.IfValueR\x03ifs\x12%\n\x04\x65lse\x18\x02 \x01(\x0b\x32\x11.proto.ExpressionR\x04\x65lse\x1a[\n\x07IfValue\x12)\n\x02if\x18\x01 \x01(\x0b\x32\x19.proto.Expression.LiteralR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b\x32\x11.proto.ExpressionR\x04then\x1a\x66\n\x0eSingularOrList\x12\'\n\x05value\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionR\x05value\x12+\n\x07options\x18\x02 \x03(\x0b\x32\x11.proto.ExpressionR\x07options\x1a\xab\x01\n\x0bMultiOrList\x12\'\n\x05value\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionR\x05value\x12>\n\x07options\x18\x02 \x03(\x0b\x32$.proto.Expression.MultiOrList.RecordR\x07options\x1a\x33\n\x06Record\x12)\n\x06\x66ields\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionR\x06\x66ields\x1a\x83\x04\n\x10\x45mbeddedFunction\x12/\n\targuments\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionR\targuments\x12,\n\x0boutput_type\x18\x02 \x01(\x0b\x32\x0b.proto.TypeR\noutputType\x12o\n\x16python_pickle_function\x18\x03 \x01(\x0b\x32\x37.proto.Expression.EmbeddedFunction.PythonPickleFunctionH\x00R\x14pythonPickleFunction\x12l\n\x15web_assembly_function\x18\x04 \x01(\x0b\x32\x36.proto.Expression.EmbeddedFunction.WebAssemblyFunctionH\x00R\x13webAssemblyFunction\x1aV\n\x14PythonPickleFunction\x12\x1a\n\x08\x66unction\x18\x01 \x01(\x0cR\x08\x66unction\x12\"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisite\x1aQ\n\x13WebAssemblyFunction\x12\x16\n\x06script\x18\x01 \x01(\x0cR\x06script\x12\"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisiteB\x06\n\x04kind\x1a\xcc\x04\n\x10ReferenceSegment\x12\x44\n\x07map_key\x18\x01 \x01(\x0b\x32).proto.Expression.ReferenceSegment.MapKeyH\x00R\x06mapKey\x12S\n\x0cstruct_field\x18\x02 \x01(\x0b\x32..proto.Expression.ReferenceSegment.StructFieldH\x00R\x0bstructField\x12S\n\x0clist_element\x18\x03 \x01(\x0b\x32..proto.Expression.ReferenceSegment.ListElementH\x00R\x0blistElement\x1av\n\x06MapKey\x12\x32\n\x07map_key\x18\x01 \x01(\x0b\x32\x19.proto.Expression.LiteralR\x06mapKey\x12\x38\n\x05\x63hild\x18\x02 \x01(\x0b\x32\".proto.Expression.ReferenceSegmentR\x05\x63hild\x1a]\n\x0bStructField\x12\x14\n\x05\x66ield\x18\x01 \x01(\x05R\x05\x66ield\x12\x38\n\x05\x63hild\x18\x02 \x01(\x0b\x32\".proto.Expression.ReferenceSegmentR\x05\x63hild\x1a_\n\x0bListElement\x12\x16\n\x06offset\x18\x01 \x01(\x05R\x06offset\x12\x38\n\x05\x63hild\x18\x02 \x01(\x0b\x32\".proto.Expression.ReferenceSegmentR\x05\x63hildB\x10\n\x0ereference_type\x1a\xee\n\n\x0eMaskExpression\x12\x45\n\x06select\x18\x01 \x01(\x0b\x32-.proto.Expression.MaskExpression.StructSelectR\x06select\x12\x38\n\x18maintain_singular_struct\x18\x02 \x01(\x08R\x16maintainSingularStruct\x1a\xdc\x01\n\x06Select\x12G\n\x06struct\x18\x01 \x01(\x0b\x32-.proto.Expression.MaskExpression.StructSelectH\x00R\x06struct\x12\x41\n\x04list\x18\x02 \x01(\x0b\x32+.proto.Expression.MaskExpression.ListSelectH\x00R\x04list\x12>\n\x03map\x18\x03 \x01(\x0b\x32*.proto.Expression.MaskExpression.MapSelectH\x00R\x03mapB\x06\n\x04type\x1a^\n\x0cStructSelect\x12N\n\x0cstruct_items\x18\x01 \x03(\x0b\x32+.proto.Expression.MaskExpression.StructItemR\x0bstructItems\x1a\x61\n\nStructItem\x12\x14\n\x05\x66ield\x18\x01 \x01(\x05R\x05\x66ield\x12=\n\x05\x63hild\x18\x02 \x01(\x0b\x32\'.proto.Expression.MaskExpression.SelectR\x05\x63hild\x1a\xd6\x03\n\nListSelect\x12X\n\tselection\x18\x01 \x03(\x0b\x32:.proto.Expression.MaskExpression.ListSelect.ListSelectItemR\tselection\x12=\n\x05\x63hild\x18\x02 \x01(\x0b\x32\'.proto.Expression.MaskExpression.SelectR\x05\x63hild\x1a\xae\x02\n\x0eListSelectItem\x12\\\n\x04item\x18\x01 \x01(\x0b\x32\x46.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListElementH\x00R\x04item\x12\\\n\x05slice\x18\x02 \x01(\x0b\x32\x44.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListSliceH\x00R\x05slice\x1a#\n\x0bListElement\x12\x14\n\x05\x66ield\x18\x01 \x01(\x05R\x05\x66ield\x1a\x33\n\tListSlice\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03\x65nd\x18\x02 \x01(\x05R\x03\x65ndB\x06\n\x04type\x1a\xdf\x02\n\tMapSelect\x12\x45\n\x03key\x18\x01 \x01(\x0b\x32\x31.proto.Expression.MaskExpression.MapSelect.MapKeyH\x00R\x03key\x12]\n\nexpression\x18\x02 \x01(\x0b\x32;.proto.Expression.MaskExpression.MapSelect.MapKeyExpressionH\x00R\nexpression\x12=\n\x05\x63hild\x18\x03 \x01(\x0b\x32\'.proto.Expression.MaskExpression.SelectR\x05\x63hild\x1a!\n\x06MapKey\x12\x17\n\x07map_key\x18\x01 \x01(\tR\x06mapKey\x1a@\n\x10MapKeyExpression\x12,\n\x12map_key_expression\x18\x01 \x01(\tR\x10mapKeyExpressionB\x08\n\x06select\x1a\xf9\x03\n\x0e\x46ieldReference\x12O\n\x10\x64irect_reference\x18\x01 \x01(\x0b\x32\".proto.Expression.ReferenceSegmentH\x00R\x0f\x64irectReference\x12M\n\x10masked_reference\x18\x02 \x01(\x0b\x32 .proto.Expression.MaskExpressionH\x00R\x0fmaskedReference\x12\x33\n\nexpression\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionH\x01R\nexpression\x12W\n\x0eroot_reference\x18\x04 \x01(\x0b\x32..proto.Expression.FieldReference.RootReferenceH\x01R\rrootReference\x12Z\n\x0fouter_reference\x18\x05 \x01(\x0b\x32/.proto.Expression.FieldReference.OuterReferenceH\x01R\x0eouterReference\x1a\x0f\n\rRootReference\x1a-\n\x0eOuterReference\x12\x1b\n\tsteps_out\x18\x01 \x01(\rR\x08stepsOutB\x10\n\x0ereference_typeB\x0b\n\troot_type\x1a\xe1\t\n\x08Subquery\x12;\n\x06scalar\x18\x01 \x01(\x0b\x32!.proto.Expression.Subquery.ScalarH\x00R\x06scalar\x12K\n\x0cin_predicate\x18\x02 \x01(\x0b\x32&.proto.Expression.Subquery.InPredicateH\x00R\x0binPredicate\x12N\n\rset_predicate\x18\x03 \x01(\x0b\x32\'.proto.Expression.Subquery.SetPredicateH\x00R\x0csetPredicate\x12Q\n\x0eset_comparison\x18\x04 \x01(\x0b\x32(.proto.Expression.Subquery.SetComparisonH\x00R\rsetComparison\x1a*\n\x06Scalar\x12 \n\x05input\x18\x01 \x01(\x0b\x32\n.proto.RelR\x05input\x1a\x62\n\x0bInPredicate\x12+\n\x07needles\x18\x01 \x03(\x0b\x32\x11.proto.ExpressionR\x07needles\x12&\n\x08haystack\x18\x02 \x01(\x0b\x32\n.proto.RelR\x08haystack\x1a\xe9\x01\n\x0cSetPredicate\x12V\n\x0cpredicate_op\x18\x01 \x01(\x0e\x32\x33.proto.Expression.Subquery.SetPredicate.PredicateOpR\x0bpredicateOp\x12\"\n\x06tuples\x18\x02 \x01(\x0b\x32\n.proto.RelR\x06tuples\"]\n\x0bPredicateOp\x12\x1c\n\x18PREDICATE_OP_UNSPECIFIED\x10\x00\x12\x17\n\x13PREDICATE_OP_EXISTS\x10\x01\x12\x17\n\x13PREDICATE_OP_UNIQUE\x10\x02\x1a\x9a\x04\n\rSetComparison\x12W\n\x0creduction_op\x18\x01 \x01(\x0e\x32\x34.proto.Expression.Subquery.SetComparison.ReductionOpR\x0breductionOp\x12Z\n\rcomparison_op\x18\x02 \x01(\x0e\x32\x35.proto.Expression.Subquery.SetComparison.ComparisonOpR\x0c\x63omparisonOp\x12%\n\x04left\x18\x03 \x01(\x0b\x32\x11.proto.ExpressionR\x04left\x12 \n\x05right\x18\x04 \x01(\x0b\x32\n.proto.RelR\x05right\"\xb1\x01\n\x0c\x43omparisonOp\x12\x1d\n\x19\x43OMPARISON_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10\x43OMPARISON_OP_EQ\x10\x01\x12\x14\n\x10\x43OMPARISON_OP_NE\x10\x02\x12\x14\n\x10\x43OMPARISON_OP_LT\x10\x03\x12\x14\n\x10\x43OMPARISON_OP_GT\x10\x04\x12\x14\n\x10\x43OMPARISON_OP_LE\x10\x05\x12\x14\n\x10\x43OMPARISON_OP_GE\x10\x06\"W\n\x0bReductionOp\x12\x1c\n\x18REDUCTION_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10REDUCTION_OP_ANY\x10\x01\x12\x14\n\x10REDUCTION_OP_ALL\x10\x02\x42\x0f\n\rsubquery_typeB\n\n\x08rex_type\"d\n\x10\x44ynamicParameter\x12\x1f\n\x04type\x18\x01 \x01(\x0b\x32\x0b.proto.TypeR\x04type\x12/\n\x13parameter_reference\x18\x02 \x01(\rR\x12parameterReference\"\xa5\x03\n\tSortField\x12%\n\x04\x65xpr\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionR\x04\x65xpr\x12>\n\tdirection\x18\x02 \x01(\x0e\x32\x1e.proto.SortField.SortDirectionH\x00R\tdirection\x12\x44\n\x1d\x63omparison_function_reference\x18\x03 \x01(\rH\x00R\x1b\x63omparisonFunctionReference\"\xdd\x01\n\rSortDirection\x12\x1e\n\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12\"\n\x1eSORT_DIRECTION_ASC_NULLS_FIRST\x10\x01\x12!\n\x1dSORT_DIRECTION_ASC_NULLS_LAST\x10\x02\x12#\n\x1fSORT_DIRECTION_DESC_NULLS_FIRST\x10\x03\x12\"\n\x1eSORT_DIRECTION_DESC_NULLS_LAST\x10\x04\x12\x1c\n\x18SORT_DIRECTION_CLUSTERED\x10\x05\x42\x0b\n\tsort_kind\"\xb1\x04\n\x11\x41ggregateFunction\x12-\n\x12\x66unction_reference\x18\x01 \x01(\rR\x11\x66unctionReference\x12\x35\n\targuments\x18\x07 \x03(\x0b\x32\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x08 \x03(\x0b\x32\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x05 \x01(\x0b\x32\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x04 \x01(\x0e\x32\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b\x32\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\x06 \x01(\x0e\x32..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12)\n\x04\x61rgs\x18\x02 \x03(\x0b\x32\x11.proto.ExpressionB\x02\x18\x01R\x04\x61rgs\"\x84\x01\n\x15\x41ggregationInvocation\x12&\n\"AGGREGATION_INVOCATION_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x41GGREGATION_INVOCATION_ALL\x10\x01\x12#\n\x1f\x41GGREGATION_INVOCATION_DISTINCT\x10\x02\"7\n\x0cReferenceRel\x12\'\n\x0fsubtree_ordinal\x18\x01 \x01(\x05R\x0esubtreeOrdinal*\xef\x01\n\x10\x41ggregationPhase\x12!\n\x1d\x41GGREGATION_PHASE_UNSPECIFIED\x10\x00\x12-\n)AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE\x10\x01\x12\x32\n.AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE\x10\x02\x12\'\n#AGGREGATION_PHASE_INITIAL_TO_RESULT\x10\x03\x12,\n(AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT\x10\x04\x42#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') - +from ..proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 +from ..proto import type_pb2 as proto_dot_type__pb2 +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13proto/algebra.proto\x12\x05proto\x1a\x19google/protobuf/any.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/type.proto"\xba\x0c\n\tRelCommon\x121\n\x06direct\x18\x01 \x01(\x0b2\x17.proto.RelCommon.DirectH\x00R\x06direct\x12+\n\x04emit\x18\x02 \x01(\x0b2\x15.proto.RelCommon.EmitH\x00R\x04emit\x12)\n\x04hint\x18\x03 \x01(\x0b2\x15.proto.RelCommon.HintR\x04hint\x12R\n\x12advanced_extension\x18\x04 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x08\n\x06Direct\x1a-\n\x04Emit\x12%\n\x0eoutput_mapping\x18\x01 \x03(\x05R\routputMapping\x1a\x87\n\n\x04Hint\x121\n\x05stats\x18\x01 \x01(\x0b2\x1b.proto.RelCommon.Hint.StatsR\x05stats\x12G\n\nconstraint\x18\x02 \x01(\x0b2\'.proto.RelCommon.Hint.RuntimeConstraintR\nconstraint\x12\x14\n\x05alias\x18\x03 \x01(\tR\x05alias\x12!\n\x0coutput_names\x18\x04 \x03(\tR\x0boutputNames\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x12U\n\x12saved_computations\x18\x0b \x03(\x0b2&.proto.RelCommon.Hint.SavedComputationR\x11savedComputations\x12X\n\x13loaded_computations\x18\x0c \x03(\x0b2\'.proto.RelCommon.Hint.LoadedComputationR\x12loadedComputations\x1a\x99\x01\n\x05Stats\x12\x1b\n\trow_count\x18\x01 \x01(\x01R\x08rowCount\x12\x1f\n\x0brecord_size\x18\x02 \x01(\x01R\nrecordSize\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1ag\n\x11RuntimeConstraint\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xc8\x01\n\x10SavedComputation\x12%\n\x0ecomputation_id\x18\x01 \x01(\x05R\rcomputationId\x129\n\x04type\x18\x02 \x01(\x0e2%.proto.RelCommon.Hint.ComputationTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xdc\x01\n\x11LoadedComputation\x128\n\x18computation_id_reference\x18\x01 \x01(\x05R\x16computationIdReference\x129\n\x04type\x18\x02 \x01(\x0e2%.proto.RelCommon.Hint.ComputationTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\x95\x01\n\x0fComputationType\x12 \n\x1cCOMPUTATION_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1aCOMPUTATION_TYPE_HASHTABLE\x10\x01\x12!\n\x1dCOMPUTATION_TYPE_BLOOM_FILTER\x10\x02\x12\x1d\n\x18COMPUTATION_TYPE_UNKNOWN\x10\x8fNB\x0b\n\temit_kind"\x85\x14\n\x07ReadRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x123\n\x0bbase_schema\x18\x02 \x01(\x0b2\x12.proto.NamedStructR\nbaseSchema\x12)\n\x06filter\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x06filter\x12?\n\x12best_effort_filter\x18\x0b \x01(\x0b2\x11.proto.ExpressionR\x10bestEffortFilter\x12@\n\nprojection\x18\x04 \x01(\x0b2 .proto.Expression.MaskExpressionR\nprojection\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x12B\n\rvirtual_table\x18\x05 \x01(\x0b2\x1b.proto.ReadRel.VirtualTableH\x00R\x0cvirtualTable\x12<\n\x0blocal_files\x18\x06 \x01(\x0b2\x19.proto.ReadRel.LocalFilesH\x00R\nlocalFiles\x12<\n\x0bnamed_table\x18\x07 \x01(\x0b2\x19.proto.ReadRel.NamedTableH\x00R\nnamedTable\x12H\n\x0fextension_table\x18\x08 \x01(\x0b2\x1d.proto.ReadRel.ExtensionTableH\x00R\x0eextensionTable\x12B\n\riceberg_table\x18\t \x01(\x0b2\x1b.proto.ReadRel.IcebergTableH\x00R\x0cicebergTable\x1av\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xfc\x01\n\x0cIcebergTable\x12F\n\x06direct\x18\x01 \x01(\x0b2,.proto.ReadRel.IcebergTable.MetadataFileReadH\x00R\x06direct\x1a\x95\x01\n\x10MetadataFileRead\x12!\n\x0cmetadata_uri\x18\x01 \x01(\tR\x0bmetadataUri\x12!\n\x0bsnapshot_id\x18\x02 \x01(\tH\x00R\nsnapshotId\x12/\n\x12snapshot_timestamp\x18\x03 \x01(\x03H\x00R\x11snapshotTimestampB\n\n\x08snapshotB\x0c\n\ntable_type\x1a\x8f\x01\n\x0cVirtualTable\x12<\n\x06values\x18\x01 \x03(\x0b2 .proto.Expression.Literal.StructB\x02\x18\x01R\x06values\x12A\n\x0bexpressions\x18\x02 \x03(\x0b2\x1f.proto.Expression.Nested.StructR\x0bexpressions\x1a>\n\x0eExtensionTable\x12,\n\x06detail\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail\x1a\xf4\t\n\nLocalFiles\x12;\n\x05items\x18\x01 \x03(\x0b2%.proto.ReadRel.LocalFiles.FileOrFilesR\x05items\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xd4\x08\n\x0bFileOrFiles\x12\x1b\n\x08uri_path\x18\x01 \x01(\tH\x00R\x07uriPath\x12$\n\ruri_path_glob\x18\x02 \x01(\tH\x00R\x0buriPathGlob\x12\x1b\n\x08uri_file\x18\x03 \x01(\tH\x00R\x07uriFile\x12\x1f\n\nuri_folder\x18\x04 \x01(\tH\x00R\turiFolder\x12\'\n\x0fpartition_index\x18\x06 \x01(\x04R\x0epartitionIndex\x12\x14\n\x05start\x18\x07 \x01(\x04R\x05start\x12\x16\n\x06length\x18\x08 \x01(\x04R\x06length\x12T\n\x07parquet\x18\t \x01(\x0b28.proto.ReadRel.LocalFiles.FileOrFiles.ParquetReadOptionsH\x01R\x07parquet\x12N\n\x05arrow\x18\n \x01(\x0b26.proto.ReadRel.LocalFiles.FileOrFiles.ArrowReadOptionsH\x01R\x05arrow\x12H\n\x03orc\x18\x0b \x01(\x0b24.proto.ReadRel.LocalFiles.FileOrFiles.OrcReadOptionsH\x01R\x03orc\x124\n\textension\x18\x0c \x01(\x0b2\x14.google.protobuf.AnyH\x01R\textension\x12K\n\x04dwrf\x18\r \x01(\x0b25.proto.ReadRel.LocalFiles.FileOrFiles.DwrfReadOptionsH\x01R\x04dwrf\x12]\n\x04text\x18\x0e \x01(\x0b2G.proto.ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptionsH\x01R\x04text\x1a\x14\n\x12ParquetReadOptions\x1a\x12\n\x10ArrowReadOptions\x1a\x10\n\x0eOrcReadOptions\x1a\x11\n\x0fDwrfReadOptions\x1a\xa1\x02\n!DelimiterSeparatedTextReadOptions\x12\'\n\x0ffield_delimiter\x18\x01 \x01(\tR\x0efieldDelimiter\x12"\n\rmax_line_size\x18\x02 \x01(\x04R\x0bmaxLineSize\x12\x14\n\x05quote\x18\x03 \x01(\tR\x05quote\x12/\n\x14header_lines_to_skip\x18\x04 \x01(\x04R\x11headerLinesToSkip\x12\x16\n\x06escape\x18\x05 \x01(\tR\x06escape\x126\n\x15value_treated_as_null\x18\x06 \x01(\tH\x00R\x12valueTreatedAsNull\x88\x01\x01B\x18\n\x16_value_treated_as_nullB\x0b\n\tpath_typeB\r\n\x0bfile_formatJ\x04\x08\x05\x10\x06R\x06formatB\x0b\n\tread_type"\xe1\x01\n\nProjectRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x123\n\x0bexpressions\x18\x03 \x03(\x0b2\x11.proto.ExpressionR\x0bexpressions\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xb1\x05\n\x07JoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x121\n\nexpression\x18\x04 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x12;\n\x10post_join_filter\x18\x05 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x12+\n\x04type\x18\x06 \x01(\x0e2\x17.proto.JoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x06\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x08\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\xca\x01\n\x08CrossRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xeb\x02\n\x08FetchRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12\x1c\n\x06offset\x18\x03 \x01(\x03B\x02\x18\x01H\x00R\x06offset\x124\n\x0boffset_expr\x18\x05 \x01(\x0b2\x11.proto.ExpressionH\x00R\noffsetExpr\x12\x1a\n\x05count\x18\x04 \x01(\x03B\x02\x18\x01H\x01R\x05count\x122\n\ncount_expr\x18\x06 \x01(\x0b2\x11.proto.ExpressionH\x01R\tcountExpr\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtensionB\r\n\x0boffset_modeB\x0c\n\ncount_mode"\xdf\x04\n\x0cAggregateRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12:\n\tgroupings\x18\x03 \x03(\x0b2\x1c.proto.AggregateRel.GroupingR\tgroupings\x127\n\x08measures\x18\x04 \x03(\x0b2\x1b.proto.AggregateRel.MeasureR\x08measures\x12D\n\x14grouping_expressions\x18\x05 \x03(\x0b2\x11.proto.ExpressionR\x13groupingExpressions\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\x89\x01\n\x08Grouping\x12H\n\x14grouping_expressions\x18\x01 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x13groupingExpressions\x123\n\x15expression_references\x18\x02 \x03(\rR\x14expressionReferences\x1ah\n\x07Measure\x122\n\x07measure\x18\x01 \x01(\x0b2\x18.proto.AggregateFunctionR\x07measure\x12)\n\x06filter\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x06filter"\xca\x07\n\x1cConsistentPartitionWindowRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12`\n\x10window_functions\x18\x03 \x03(\x0b25.proto.ConsistentPartitionWindowRel.WindowRelFunctionR\x0fwindowFunctions\x12F\n\x15partition_expressions\x18\x04 \x03(\x0b2\x11.proto.ExpressionR\x14partitionExpressions\x12&\n\x05sorts\x18\x05 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1a\xb7\x04\n\x11WindowRelFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\t \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12N\n\ninvocation\x18\n \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12G\n\x0blower_bound\x18\x05 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nupperBound\x12L\n\x0bbounds_type\x18\x0c \x01(\x0e2+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType"\xd1\x01\n\x07SortRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xdc\x01\n\tFilterRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12/\n\tcondition\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\tcondition\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xde\x03\n\x06SetRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12"\n\x06inputs\x18\x02 \x03(\x0b2\n.proto.RelR\x06inputs\x12#\n\x02op\x18\x03 \x01(\x0e2\x13.proto.SetRel.SetOpR\x02op\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\x8c\x02\n\x05SetOp\x12\x16\n\x12SET_OP_UNSPECIFIED\x10\x00\x12\x18\n\x14SET_OP_MINUS_PRIMARY\x10\x01\x12\x1c\n\x18SET_OP_MINUS_PRIMARY_ALL\x10\x07\x12\x19\n\x15SET_OP_MINUS_MULTISET\x10\x02\x12\x1f\n\x1bSET_OP_INTERSECTION_PRIMARY\x10\x03\x12 \n\x1cSET_OP_INTERSECTION_MULTISET\x10\x04\x12$\n SET_OP_INTERSECTION_MULTISET_ALL\x10\x08\x12\x19\n\x15SET_OP_UNION_DISTINCT\x10\x05\x12\x14\n\x10SET_OP_UNION_ALL\x10\x06"\x8e\x01\n\x12ExtensionSingleRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"j\n\x10ExtensionLeafRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12,\n\x06detail\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x8f\x01\n\x11ExtensionMultiRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12"\n\x06inputs\x18\x02 \x03(\x0b2\n.proto.RelR\x06inputs\x12,\n\x06detail\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\xe9\x08\n\x0bExchangeRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x12\'\n\x0fpartition_count\x18\x03 \x01(\x05R\x0epartitionCount\x12;\n\x07targets\x18\x04 \x03(\x0b2!.proto.ExchangeRel.ExchangeTargetR\x07targets\x12N\n\x11scatter_by_fields\x18\x05 \x01(\x0b2 .proto.ExchangeRel.ScatterFieldsH\x00R\x0fscatterByFields\x12P\n\rsingle_target\x18\x06 \x01(\x0b2).proto.ExchangeRel.SingleBucketExpressionH\x00R\x0csingleTarget\x12M\n\x0cmulti_target\x18\x07 \x01(\x0b2(.proto.ExchangeRel.MultiBucketExpressionH\x00R\x0bmultiTarget\x12@\n\x0bround_robin\x18\x08 \x01(\x0b2\x1d.proto.ExchangeRel.RoundRobinH\x00R\nroundRobin\x12<\n\tbroadcast\x18\t \x01(\x0b2\x1c.proto.ExchangeRel.BroadcastH\x00R\tbroadcast\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1aI\n\rScatterFields\x128\n\x06fields\x18\x01 \x03(\x0b2 .proto.Expression.FieldReferenceR\x06fields\x1aK\n\x16SingleBucketExpression\x121\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x1a|\n\x15MultiBucketExpression\x121\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x120\n\x14constrained_to_count\x18\x02 \x01(\x08R\x12constrainedToCount\x1a\x0b\n\tBroadcast\x1a"\n\nRoundRobin\x12\x14\n\x05exact\x18\x01 \x01(\x08R\x05exact\x1a\x8a\x01\n\x0eExchangeTarget\x12!\n\x0cpartition_id\x18\x01 \x03(\x05R\x0bpartitionId\x12\x12\n\x03uri\x18\x02 \x01(\tH\x00R\x03uri\x122\n\x08extended\x18\x03 \x01(\x0b2\x14.google.protobuf.AnyH\x00R\x08extendedB\r\n\x0btarget_typeB\x0f\n\rexchange_kind"\xfc\x02\n\tExpandRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12 \n\x05input\x18\x02 \x01(\x0b2\n.proto.RelR\x05input\x124\n\x06fields\x18\x04 \x03(\x0b2\x1c.proto.ExpandRel.ExpandFieldR\x06fields\x1a\xa7\x01\n\x0bExpandField\x12J\n\x0fswitching_field\x18\x02 \x01(\x0b2\x1f.proto.ExpandRel.SwitchingFieldH\x00R\x0eswitchingField\x12>\n\x10consistent_field\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x00R\x0fconsistentFieldB\x0c\n\nfield_type\x1aC\n\x0eSwitchingField\x121\n\nduplicates\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\nduplicates"A\n\x07RelRoot\x12 \n\x05input\x18\x01 \x01(\x0b2\n.proto.RelR\x05input\x12\x14\n\x05names\x18\x02 \x03(\tR\x05names"\xd0\x08\n\x03Rel\x12$\n\x04read\x18\x01 \x01(\x0b2\x0e.proto.ReadRelH\x00R\x04read\x12*\n\x06filter\x18\x02 \x01(\x0b2\x10.proto.FilterRelH\x00R\x06filter\x12\'\n\x05fetch\x18\x03 \x01(\x0b2\x0f.proto.FetchRelH\x00R\x05fetch\x123\n\taggregate\x18\x04 \x01(\x0b2\x13.proto.AggregateRelH\x00R\taggregate\x12$\n\x04sort\x18\x05 \x01(\x0b2\x0e.proto.SortRelH\x00R\x04sort\x12$\n\x04join\x18\x06 \x01(\x0b2\x0e.proto.JoinRelH\x00R\x04join\x12-\n\x07project\x18\x07 \x01(\x0b2\x11.proto.ProjectRelH\x00R\x07project\x12!\n\x03set\x18\x08 \x01(\x0b2\r.proto.SetRelH\x00R\x03set\x12F\n\x10extension_single\x18\t \x01(\x0b2\x19.proto.ExtensionSingleRelH\x00R\x0fextensionSingle\x12C\n\x0fextension_multi\x18\n \x01(\x0b2\x18.proto.ExtensionMultiRelH\x00R\x0eextensionMulti\x12@\n\x0eextension_leaf\x18\x0b \x01(\x0b2\x17.proto.ExtensionLeafRelH\x00R\rextensionLeaf\x12\'\n\x05cross\x18\x0c \x01(\x0b2\x0f.proto.CrossRelH\x00R\x05cross\x123\n\treference\x18\x15 \x01(\x0b2\x13.proto.ReferenceRelH\x00R\treference\x12\'\n\x05write\x18\x13 \x01(\x0b2\x0f.proto.WriteRelH\x00R\x05write\x12!\n\x03ddl\x18\x14 \x01(\x0b2\r.proto.DdlRelH\x00R\x03ddl\x12*\n\x06update\x18\x16 \x01(\x0b2\x10.proto.UpdateRelH\x00R\x06update\x121\n\thash_join\x18\r \x01(\x0b2\x12.proto.HashJoinRelH\x00R\x08hashJoin\x124\n\nmerge_join\x18\x0e \x01(\x0b2\x13.proto.MergeJoinRelH\x00R\tmergeJoin\x12D\n\x10nested_loop_join\x18\x12 \x01(\x0b2\x18.proto.NestedLoopJoinRelH\x00R\x0enestedLoopJoin\x12=\n\x06window\x18\x11 \x01(\x0b2#.proto.ConsistentPartitionWindowRelH\x00R\x06window\x120\n\x08exchange\x18\x0f \x01(\x0b2\x12.proto.ExchangeRelH\x00R\x08exchange\x12*\n\x06expand\x18\x10 \x01(\x0b2\x10.proto.ExpandRelH\x00R\x06expandB\n\n\x08rel_type"|\n\x10NamedObjectWrite\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"?\n\x0fExtensionObject\x12,\n\x06detail\x18\x01 \x01(\x0b2\x14.google.protobuf.AnyR\x06detail"\x86\x06\n\x06DdlRel\x12<\n\x0cnamed_object\x18\x01 \x01(\x0b2\x17.proto.NamedObjectWriteH\x00R\x0bnamedObject\x12C\n\x10extension_object\x18\x02 \x01(\x0b2\x16.proto.ExtensionObjectH\x00R\x0fextensionObject\x125\n\x0ctable_schema\x18\x03 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12G\n\x0etable_defaults\x18\x04 \x01(\x0b2 .proto.Expression.Literal.StructR\rtableDefaults\x12/\n\x06object\x18\x05 \x01(\x0e2\x17.proto.DdlRel.DdlObjectR\x06object\x12#\n\x02op\x18\x06 \x01(\x0e2\x13.proto.DdlRel.DdlOpR\x02op\x123\n\x0fview_definition\x18\x07 \x01(\x0b2\n.proto.RelR\x0eviewDefinition\x12(\n\x06common\x18\x08 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12R\n\x12advanced_extension\x18\t \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"R\n\tDdlObject\x12\x1a\n\x16DDL_OBJECT_UNSPECIFIED\x10\x00\x12\x14\n\x10DDL_OBJECT_TABLE\x10\x01\x12\x13\n\x0fDDL_OBJECT_VIEW\x10\x02"\x8d\x01\n\x05DdlOp\x12\x16\n\x12DDL_OP_UNSPECIFIED\x10\x00\x12\x11\n\rDDL_OP_CREATE\x10\x01\x12\x1c\n\x18DDL_OP_CREATE_OR_REPLACE\x10\x02\x12\x10\n\x0cDDL_OP_ALTER\x10\x03\x12\x0f\n\x0bDDL_OP_DROP\x10\x04\x12\x18\n\x14DDL_OP_DROP_IF_EXIST\x10\x05B\x0c\n\nwrite_type"\x9b\x07\n\x08WriteRel\x12:\n\x0bnamed_table\x18\x01 \x01(\x0b2\x17.proto.NamedObjectWriteH\x00R\nnamedTable\x12A\n\x0fextension_table\x18\x02 \x01(\x0b2\x16.proto.ExtensionObjectH\x00R\x0eextensionTable\x125\n\x0ctable_schema\x18\x03 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12\'\n\x02op\x18\x04 \x01(\x0e2\x17.proto.WriteRel.WriteOpR\x02op\x12 \n\x05input\x18\x05 \x01(\x0b2\n.proto.RelR\x05input\x12;\n\x0bcreate_mode\x18\x08 \x01(\x0e2\x1a.proto.WriteRel.CreateModeR\ncreateMode\x122\n\x06output\x18\x06 \x01(\x0e2\x1a.proto.WriteRel.OutputModeR\x06output\x12(\n\x06common\x18\x07 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12R\n\x12advanced_extension\x18\t \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"u\n\x07WriteOp\x12\x18\n\x14WRITE_OP_UNSPECIFIED\x10\x00\x12\x13\n\x0fWRITE_OP_INSERT\x10\x01\x12\x13\n\x0fWRITE_OP_DELETE\x10\x02\x12\x13\n\x0fWRITE_OP_UPDATE\x10\x03\x12\x11\n\rWRITE_OP_CTAS\x10\x04"\xb1\x01\n\nCreateMode\x12\x1b\n\x17CREATE_MODE_UNSPECIFIED\x10\x00\x12 \n\x1cCREATE_MODE_APPEND_IF_EXISTS\x10\x01\x12!\n\x1dCREATE_MODE_REPLACE_IF_EXISTS\x10\x02\x12 \n\x1cCREATE_MODE_IGNORE_IF_EXISTS\x10\x03\x12\x1f\n\x1bCREATE_MODE_ERROR_IF_EXISTS\x10\x04"f\n\nOutputMode\x12\x1b\n\x17OUTPUT_MODE_UNSPECIFIED\x10\x00\x12\x19\n\x15OUTPUT_MODE_NO_OUTPUT\x10\x01\x12 \n\x1cOUTPUT_MODE_MODIFIED_RECORDS\x10\x02B\x0c\n\nwrite_type"\xd3\x03\n\tUpdateRel\x124\n\x0bnamed_table\x18\x01 \x01(\x0b2\x11.proto.NamedTableH\x00R\nnamedTable\x125\n\x0ctable_schema\x18\x02 \x01(\x0b2\x12.proto.NamedStructR\x0btableSchema\x12/\n\tcondition\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\tcondition\x12N\n\x0ftransformations\x18\x04 \x03(\x0b2$.proto.UpdateRel.TransformExpressionR\x0ftransformations\x12R\n\x12advanced_extension\x18\x05 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension\x1au\n\x13TransformExpression\x129\n\x0etransformation\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x0etransformation\x12#\n\rcolumn_target\x18\x02 \x01(\x05R\x0ccolumnTargetB\r\n\x0bupdate_type"v\n\nNamedTable\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xab\x04\n\x11ComparisonJoinKey\x124\n\x04left\x18\x01 \x01(\x0b2 .proto.Expression.FieldReferenceR\x04left\x126\n\x05right\x18\x02 \x01(\x0b2 .proto.Expression.FieldReferenceR\x05right\x12G\n\ncomparison\x18\x03 \x01(\x0b2\'.proto.ComparisonJoinKey.ComparisonTypeR\ncomparison\x1a\xa5\x01\n\x0eComparisonType\x12G\n\x06simple\x18\x01 \x01(\x0e2-.proto.ComparisonJoinKey.SimpleComparisonTypeH\x00R\x06simple\x12<\n\x19custom_function_reference\x18\x02 \x01(\rH\x00R\x17customFunctionReferenceB\x0c\n\ninner_type"\xb6\x01\n\x14SimpleComparisonType\x12&\n"SIMPLE_COMPARISON_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19SIMPLE_COMPARISON_TYPE_EQ\x10\x01\x12/\n+SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM\x10\x02\x12&\n"SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL\x10\x03"\xd4\x07\n\x0bHashJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12A\n\tleft_keys\x18\x04 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12C\n\nright_keys\x18\x05 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b2\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x12/\n\x04type\x18\x07 \x01(\x0e2\x1b.proto.HashJoinRel.JoinTypeR\x04type\x12>\n\x0bbuild_input\x18\t \x01(\x0e2\x1d.proto.HashJoinRel.BuildInputR\nbuildInput\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"V\n\nBuildInput\x12\x1b\n\x17BUILD_INPUT_UNSPECIFIED\x10\x00\x12\x14\n\x10BUILD_INPUT_LEFT\x10\x01\x12\x15\n\x11BUILD_INPUT_RIGHT\x10\x02"\xbe\x06\n\x0cMergeJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x12A\n\tleft_keys\x18\x04 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\x08leftKeys\x12C\n\nright_keys\x18\x05 \x03(\x0b2 .proto.Expression.FieldReferenceB\x02\x18\x01R\trightKeys\x12,\n\x04keys\x18\x08 \x03(\x0b2\x18.proto.ComparisonJoinKeyR\x04keys\x12;\n\x10post_join_filter\x18\x06 \x01(\x0b2\x11.proto.ExpressionR\x0epostJoinFilter\x120\n\x04type\x18\x07 \x01(\x0e2\x1c.proto.MergeJoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\x88\x05\n\x11NestedLoopJoinRel\x12(\n\x06common\x18\x01 \x01(\x0b2\x10.proto.RelCommonR\x06common\x12\x1e\n\x04left\x18\x02 \x01(\x0b2\n.proto.RelR\x04left\x12 \n\x05right\x18\x03 \x01(\x0b2\n.proto.RelR\x05right\x121\n\nexpression\x18\x04 \x01(\x0b2\x11.proto.ExpressionR\nexpression\x125\n\x04type\x18\x05 \x01(\x0e2!.proto.NestedLoopJoinRel.JoinTypeR\x04type\x12R\n\x12advanced_extension\x18\n \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x11advancedExtension"\xc8\x02\n\x08JoinType\x12\x19\n\x15JOIN_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fJOIN_TYPE_INNER\x10\x01\x12\x13\n\x0fJOIN_TYPE_OUTER\x10\x02\x12\x12\n\x0eJOIN_TYPE_LEFT\x10\x03\x12\x13\n\x0fJOIN_TYPE_RIGHT\x10\x04\x12\x17\n\x13JOIN_TYPE_LEFT_SEMI\x10\x05\x12\x18\n\x14JOIN_TYPE_RIGHT_SEMI\x10\x06\x12\x17\n\x13JOIN_TYPE_LEFT_ANTI\x10\x07\x12\x18\n\x14JOIN_TYPE_RIGHT_ANTI\x10\x08\x12\x19\n\x15JOIN_TYPE_LEFT_SINGLE\x10\t\x12\x1a\n\x16JOIN_TYPE_RIGHT_SINGLE\x10\n\x12\x17\n\x13JOIN_TYPE_LEFT_MARK\x10\x0b\x12\x18\n\x14JOIN_TYPE_RIGHT_MARK\x10\x0c"\x82\x01\n\x10FunctionArgument\x12\x14\n\x04enum\x18\x01 \x01(\tH\x00R\x04enum\x12!\n\x04type\x18\x02 \x01(\x0b2\x0b.proto.TypeH\x00R\x04type\x12)\n\x05value\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x00R\x05valueB\n\n\x08arg_type"D\n\x0eFunctionOption\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1e\n\npreference\x18\x02 \x03(\tR\npreference"\xdfW\n\nExpression\x125\n\x07literal\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralH\x00R\x07literal\x12@\n\tselection\x18\x02 \x01(\x0b2 .proto.Expression.FieldReferenceH\x00R\tselection\x12K\n\x0fscalar_function\x18\x03 \x01(\x0b2 .proto.Expression.ScalarFunctionH\x00R\x0escalarFunction\x12K\n\x0fwindow_function\x18\x05 \x01(\x0b2 .proto.Expression.WindowFunctionH\x00R\x0ewindowFunction\x123\n\x07if_then\x18\x06 \x01(\x0b2\x18.proto.Expression.IfThenH\x00R\x06ifThen\x12Q\n\x11switch_expression\x18\x07 \x01(\x0b2".proto.Expression.SwitchExpressionH\x00R\x10switchExpression\x12L\n\x10singular_or_list\x18\x08 \x01(\x0b2 .proto.Expression.SingularOrListH\x00R\x0esingularOrList\x12C\n\rmulti_or_list\x18\t \x01(\x0b2\x1d.proto.Expression.MultiOrListH\x00R\x0bmultiOrList\x12,\n\x04cast\x18\x0b \x01(\x0b2\x16.proto.Expression.CastH\x00R\x04cast\x128\n\x08subquery\x18\x0c \x01(\x0b2\x1a.proto.Expression.SubqueryH\x00R\x08subquery\x122\n\x06nested\x18\r \x01(\x0b2\x18.proto.Expression.NestedH\x00R\x06nested\x12F\n\x11dynamic_parameter\x18\x0e \x01(\x0b2\x17.proto.DynamicParameterH\x00R\x10dynamicParameter\x120\n\x04enum\x18\n \x01(\x0b2\x16.proto.Expression.EnumB\x02\x18\x01H\x00R\x04enum\x1a\x86\x01\n\x04Enum\x12\x1e\n\tspecified\x18\x01 \x01(\tH\x00R\tspecified\x12@\n\x0bunspecified\x18\x02 \x01(\x0b2\x1c.proto.Expression.Enum.EmptyH\x00R\x0bunspecified\x1a\x0b\n\x05Empty:\x02\x18\x01:\x02\x18\x01B\x0b\n\tenum_kind\x1a\xde\x16\n\x07Literal\x12\x1a\n\x07boolean\x18\x01 \x01(\x08H\x00R\x07boolean\x12\x10\n\x02i8\x18\x02 \x01(\x05H\x00R\x02i8\x12\x12\n\x03i16\x18\x03 \x01(\x05H\x00R\x03i16\x12\x12\n\x03i32\x18\x05 \x01(\x05H\x00R\x03i32\x12\x12\n\x03i64\x18\x07 \x01(\x03H\x00R\x03i64\x12\x14\n\x04fp32\x18\n \x01(\x02H\x00R\x04fp32\x12\x14\n\x04fp64\x18\x0b \x01(\x01H\x00R\x04fp64\x12\x18\n\x06string\x18\x0c \x01(\tH\x00R\x06string\x12\x18\n\x06binary\x18\r \x01(\x0cH\x00R\x06binary\x12"\n\ttimestamp\x18\x0e \x01(\x03B\x02\x18\x01H\x00R\ttimestamp\x12\x14\n\x04date\x18\x10 \x01(\x05H\x00R\x04date\x12\x14\n\x04time\x18\x11 \x01(\x03H\x00R\x04time\x12d\n\x16interval_year_to_month\x18\x13 \x01(\x0b2-.proto.Expression.Literal.IntervalYearToMonthH\x00R\x13intervalYearToMonth\x12d\n\x16interval_day_to_second\x18\x14 \x01(\x0b2-.proto.Expression.Literal.IntervalDayToSecondH\x00R\x13intervalDayToSecond\x12Y\n\x11interval_compound\x18$ \x01(\x0b2*.proto.Expression.Literal.IntervalCompoundH\x00R\x10intervalCompound\x12\x1f\n\nfixed_char\x18\x15 \x01(\tH\x00R\tfixedChar\x12>\n\x08var_char\x18\x16 \x01(\x0b2!.proto.Expression.Literal.VarCharH\x00R\x07varChar\x12#\n\x0cfixed_binary\x18\x17 \x01(\x0cH\x00R\x0bfixedBinary\x12=\n\x07decimal\x18\x18 \x01(\x0b2!.proto.Expression.Literal.DecimalH\x00R\x07decimal\x12P\n\x0eprecision_time\x18% \x01(\x0b2\'.proto.Expression.Literal.PrecisionTimeH\x00R\rprecisionTime\x12_\n\x13precision_timestamp\x18" \x01(\x0b2,.proto.Expression.Literal.PrecisionTimestampH\x00R\x12precisionTimestamp\x12d\n\x16precision_timestamp_tz\x18# \x01(\x0b2,.proto.Expression.Literal.PrecisionTimestampH\x00R\x14precisionTimestampTz\x12:\n\x06struct\x18\x19 \x01(\x0b2 .proto.Expression.Literal.StructH\x00R\x06struct\x121\n\x03map\x18\x1a \x01(\x0b2\x1d.proto.Expression.Literal.MapH\x00R\x03map\x12\'\n\x0ctimestamp_tz\x18\x1b \x01(\x03B\x02\x18\x01H\x00R\x0btimestampTz\x12\x14\n\x04uuid\x18\x1c \x01(\x0cH\x00R\x04uuid\x12!\n\x04null\x18\x1d \x01(\x0b2\x0b.proto.TypeH\x00R\x04null\x124\n\x04list\x18\x1e \x01(\x0b2\x1e.proto.Expression.Literal.ListH\x00R\x04list\x121\n\nempty_list\x18\x1f \x01(\x0b2\x10.proto.Type.ListH\x00R\temptyList\x12.\n\tempty_map\x18 \x01(\x0b2\x0f.proto.Type.MapH\x00R\x08emptyMap\x12J\n\x0cuser_defined\x18! \x01(\x0b2%.proto.Expression.Literal.UserDefinedH\x00R\x0buserDefined\x12\x1a\n\x08nullable\x182 \x01(\x08R\x08nullable\x128\n\x18type_variation_reference\x183 \x01(\rR\x16typeVariationReference\x1a7\n\x07VarChar\x12\x14\n\x05value\x18\x01 \x01(\tR\x05value\x12\x16\n\x06length\x18\x02 \x01(\rR\x06length\x1aS\n\x07Decimal\x12\x14\n\x05value\x18\x01 \x01(\x0cR\x05value\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x12\x14\n\x05scale\x18\x03 \x01(\x05R\x05scale\x1aC\n\rPrecisionTime\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1aH\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x14\n\x05value\x18\x02 \x01(\x03R\x05value\x1a\xb6\x01\n\x03Map\x12E\n\nkey_values\x18\x01 \x03(\x0b2&.proto.Expression.Literal.Map.KeyValueR\tkeyValues\x1ah\n\x08KeyValue\x12+\n\x03key\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x03key\x12/\n\x05value\x18\x02 \x01(\x0b2\x19.proto.Expression.LiteralR\x05value\x1aC\n\x13IntervalYearToMonth\x12\x14\n\x05years\x18\x01 \x01(\x05R\x05years\x12\x16\n\x06months\x18\x02 \x01(\x05R\x06months\x1a\xbf\x01\n\x13IntervalDayToSecond\x12\x12\n\x04days\x18\x01 \x01(\x05R\x04days\x12\x18\n\x07seconds\x18\x02 \x01(\x05R\x07seconds\x12(\n\x0cmicroseconds\x18\x03 \x01(\x05B\x02\x18\x01H\x00R\x0cmicroseconds\x12\x1e\n\tprecision\x18\x04 \x01(\x05H\x00R\tprecision\x12\x1e\n\nsubseconds\x18\x05 \x01(\x03R\nsubsecondsB\x10\n\x0eprecision_mode\x1a\xda\x01\n\x10IntervalCompound\x12b\n\x16interval_year_to_month\x18\x01 \x01(\x0b2-.proto.Expression.Literal.IntervalYearToMonthR\x13intervalYearToMonth\x12b\n\x16interval_day_to_second\x18\x02 \x01(\x0b2-.proto.Expression.Literal.IntervalDayToSecondR\x13intervalDayToSecond\x1a;\n\x06Struct\x121\n\x06fields\x18\x01 \x03(\x0b2\x19.proto.Expression.LiteralR\x06fields\x1a9\n\x04List\x121\n\x06values\x18\x01 \x03(\x0b2\x19.proto.Expression.LiteralR\x06values\x1a\xe5\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x12>\n\x0ftype_parameters\x18\x03 \x03(\x0b2\x15.proto.Type.ParameterR\x0etypeParameters\x12,\n\x05value\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyH\x00R\x05value\x12:\n\x06struct\x18\x04 \x01(\x0b2 .proto.Expression.Literal.StructH\x00R\x06structB\x05\n\x03valB\x0e\n\x0cliteral_type\x1a\x9f\x04\n\x06Nested\x12\x1a\n\x08nullable\x18\x01 \x01(\x08R\x08nullable\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x06struct\x18\x03 \x01(\x0b2\x1f.proto.Expression.Nested.StructH\x00R\x06struct\x123\n\x04list\x18\x04 \x01(\x0b2\x1d.proto.Expression.Nested.ListH\x00R\x04list\x120\n\x03map\x18\x05 \x01(\x0b2\x1c.proto.Expression.Nested.MapH\x00R\x03map\x1a\xa5\x01\n\x03Map\x12D\n\nkey_values\x18\x01 \x03(\x0b2%.proto.Expression.Nested.Map.KeyValueR\tkeyValues\x1aX\n\x08KeyValue\x12#\n\x03key\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x03key\x12\'\n\x05value\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x05value\x1a3\n\x06Struct\x12)\n\x06fields\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06fields\x1a1\n\x04List\x12)\n\x06values\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06valuesB\r\n\x0bnested_type\x1a\x80\x02\n\x0eScalarFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\x04 \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x05 \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x03 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12)\n\x04args\x18\x02 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args\x1a\xd5\t\n\x0eWindowFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\t \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x0b \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x07 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x06 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\n \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x121\n\npartitions\x18\x02 \x03(\x0b2\x11.proto.ExpressionR\npartitions\x12L\n\x0bbounds_type\x18\x0c \x01(\x0e2+.proto.Expression.WindowFunction.BoundsTypeR\nboundsType\x12G\n\x0blower_bound\x18\x05 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nlowerBound\x12G\n\x0bupper_bound\x18\x04 \x01(\x0b2&.proto.Expression.WindowFunction.BoundR\nupperBound\x12)\n\x04args\x18\x08 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args\x1a\xc0\x03\n\x05Bound\x12P\n\tpreceding\x18\x01 \x01(\x0b20.proto.Expression.WindowFunction.Bound.PrecedingH\x00R\tpreceding\x12P\n\tfollowing\x18\x02 \x01(\x0b20.proto.Expression.WindowFunction.Bound.FollowingH\x00R\tfollowing\x12T\n\x0bcurrent_row\x18\x03 \x01(\x0b21.proto.Expression.WindowFunction.Bound.CurrentRowH\x00R\ncurrentRow\x12P\n\tunbounded\x18\x04 \x01(\x0b20.proto.Expression.WindowFunction.Bound.UnboundedH\x00R\tunbounded\x1a#\n\tPreceding\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a#\n\tFollowing\x12\x16\n\x06offset\x18\x01 \x01(\x03R\x06offset\x1a\x0c\n\nCurrentRow\x1a\x0b\n\tUnboundedB\x06\n\x04kind"V\n\nBoundsType\x12\x1b\n\x17BOUNDS_TYPE_UNSPECIFIED\x10\x00\x12\x14\n\x10BOUNDS_TYPE_ROWS\x10\x01\x12\x15\n\x11BOUNDS_TYPE_RANGE\x10\x02\x1a\xba\x01\n\x06IfThen\x123\n\x03ifs\x18\x01 \x03(\x0b2!.proto.Expression.IfThen.IfClauseR\x03ifs\x12%\n\x04else\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04else\x1aT\n\x08IfClause\x12!\n\x02if\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04then\x1a\xa0\x02\n\x04Cast\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x12\'\n\x05input\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x05input\x12Q\n\x10failure_behavior\x18\x03 \x01(\x0e2&.proto.Expression.Cast.FailureBehaviorR\x0ffailureBehavior"{\n\x0fFailureBehavior\x12 \n\x1cFAILURE_BEHAVIOR_UNSPECIFIED\x10\x00\x12 \n\x1cFAILURE_BEHAVIOR_RETURN_NULL\x10\x01\x12$\n FAILURE_BEHAVIOR_THROW_EXCEPTION\x10\x02\x1a\xfd\x01\n\x10SwitchExpression\x12\'\n\x05match\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x05match\x12<\n\x03ifs\x18\x01 \x03(\x0b2*.proto.Expression.SwitchExpression.IfValueR\x03ifs\x12%\n\x04else\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04else\x1a[\n\x07IfValue\x12)\n\x02if\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x02if\x12%\n\x04then\x18\x02 \x01(\x0b2\x11.proto.ExpressionR\x04then\x1af\n\x0eSingularOrList\x12\'\n\x05value\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x05value\x12+\n\x07options\x18\x02 \x03(\x0b2\x11.proto.ExpressionR\x07options\x1a\xab\x01\n\x0bMultiOrList\x12\'\n\x05value\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x05value\x12>\n\x07options\x18\x02 \x03(\x0b2$.proto.Expression.MultiOrList.RecordR\x07options\x1a3\n\x06Record\x12)\n\x06fields\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x06fields\x1a\x83\x04\n\x10EmbeddedFunction\x12/\n\targuments\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\targuments\x12,\n\x0boutput_type\x18\x02 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12o\n\x16python_pickle_function\x18\x03 \x01(\x0b27.proto.Expression.EmbeddedFunction.PythonPickleFunctionH\x00R\x14pythonPickleFunction\x12l\n\x15web_assembly_function\x18\x04 \x01(\x0b26.proto.Expression.EmbeddedFunction.WebAssemblyFunctionH\x00R\x13webAssemblyFunction\x1aV\n\x14PythonPickleFunction\x12\x1a\n\x08function\x18\x01 \x01(\x0cR\x08function\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisite\x1aQ\n\x13WebAssemblyFunction\x12\x16\n\x06script\x18\x01 \x01(\x0cR\x06script\x12"\n\x0cprerequisite\x18\x02 \x03(\tR\x0cprerequisiteB\x06\n\x04kind\x1a\xcc\x04\n\x10ReferenceSegment\x12D\n\x07map_key\x18\x01 \x01(\x0b2).proto.Expression.ReferenceSegment.MapKeyH\x00R\x06mapKey\x12S\n\x0cstruct_field\x18\x02 \x01(\x0b2..proto.Expression.ReferenceSegment.StructFieldH\x00R\x0bstructField\x12S\n\x0clist_element\x18\x03 \x01(\x0b2..proto.Expression.ReferenceSegment.ListElementH\x00R\x0blistElement\x1av\n\x06MapKey\x122\n\x07map_key\x18\x01 \x01(\x0b2\x19.proto.Expression.LiteralR\x06mapKey\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05child\x1a]\n\x0bStructField\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05child\x1a_\n\x0bListElement\x12\x16\n\x06offset\x18\x01 \x01(\x05R\x06offset\x128\n\x05child\x18\x02 \x01(\x0b2".proto.Expression.ReferenceSegmentR\x05childB\x10\n\x0ereference_type\x1a\xee\n\n\x0eMaskExpression\x12E\n\x06select\x18\x01 \x01(\x0b2-.proto.Expression.MaskExpression.StructSelectR\x06select\x128\n\x18maintain_singular_struct\x18\x02 \x01(\x08R\x16maintainSingularStruct\x1a\xdc\x01\n\x06Select\x12G\n\x06struct\x18\x01 \x01(\x0b2-.proto.Expression.MaskExpression.StructSelectH\x00R\x06struct\x12A\n\x04list\x18\x02 \x01(\x0b2+.proto.Expression.MaskExpression.ListSelectH\x00R\x04list\x12>\n\x03map\x18\x03 \x01(\x0b2*.proto.Expression.MaskExpression.MapSelectH\x00R\x03mapB\x06\n\x04type\x1a^\n\x0cStructSelect\x12N\n\x0cstruct_items\x18\x01 \x03(\x0b2+.proto.Expression.MaskExpression.StructItemR\x0bstructItems\x1aa\n\nStructItem\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x12=\n\x05child\x18\x02 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a\xd6\x03\n\nListSelect\x12X\n\tselection\x18\x01 \x03(\x0b2:.proto.Expression.MaskExpression.ListSelect.ListSelectItemR\tselection\x12=\n\x05child\x18\x02 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a\xae\x02\n\x0eListSelectItem\x12\\\n\x04item\x18\x01 \x01(\x0b2F.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListElementH\x00R\x04item\x12\\\n\x05slice\x18\x02 \x01(\x0b2D.proto.Expression.MaskExpression.ListSelect.ListSelectItem.ListSliceH\x00R\x05slice\x1a#\n\x0bListElement\x12\x14\n\x05field\x18\x01 \x01(\x05R\x05field\x1a3\n\tListSlice\x12\x14\n\x05start\x18\x01 \x01(\x05R\x05start\x12\x10\n\x03end\x18\x02 \x01(\x05R\x03endB\x06\n\x04type\x1a\xdf\x02\n\tMapSelect\x12E\n\x03key\x18\x01 \x01(\x0b21.proto.Expression.MaskExpression.MapSelect.MapKeyH\x00R\x03key\x12]\n\nexpression\x18\x02 \x01(\x0b2;.proto.Expression.MaskExpression.MapSelect.MapKeyExpressionH\x00R\nexpression\x12=\n\x05child\x18\x03 \x01(\x0b2\'.proto.Expression.MaskExpression.SelectR\x05child\x1a!\n\x06MapKey\x12\x17\n\x07map_key\x18\x01 \x01(\tR\x06mapKey\x1a@\n\x10MapKeyExpression\x12,\n\x12map_key_expression\x18\x01 \x01(\tR\x10mapKeyExpressionB\x08\n\x06select\x1a\xf9\x03\n\x0eFieldReference\x12O\n\x10direct_reference\x18\x01 \x01(\x0b2".proto.Expression.ReferenceSegmentH\x00R\x0fdirectReference\x12M\n\x10masked_reference\x18\x02 \x01(\x0b2 .proto.Expression.MaskExpressionH\x00R\x0fmaskedReference\x123\n\nexpression\x18\x03 \x01(\x0b2\x11.proto.ExpressionH\x01R\nexpression\x12W\n\x0eroot_reference\x18\x04 \x01(\x0b2..proto.Expression.FieldReference.RootReferenceH\x01R\rrootReference\x12Z\n\x0fouter_reference\x18\x05 \x01(\x0b2/.proto.Expression.FieldReference.OuterReferenceH\x01R\x0eouterReference\x1a\x0f\n\rRootReference\x1a-\n\x0eOuterReference\x12\x1b\n\tsteps_out\x18\x01 \x01(\rR\x08stepsOutB\x10\n\x0ereference_typeB\x0b\n\troot_type\x1a\xe1\t\n\x08Subquery\x12;\n\x06scalar\x18\x01 \x01(\x0b2!.proto.Expression.Subquery.ScalarH\x00R\x06scalar\x12K\n\x0cin_predicate\x18\x02 \x01(\x0b2&.proto.Expression.Subquery.InPredicateH\x00R\x0binPredicate\x12N\n\rset_predicate\x18\x03 \x01(\x0b2\'.proto.Expression.Subquery.SetPredicateH\x00R\x0csetPredicate\x12Q\n\x0eset_comparison\x18\x04 \x01(\x0b2(.proto.Expression.Subquery.SetComparisonH\x00R\rsetComparison\x1a*\n\x06Scalar\x12 \n\x05input\x18\x01 \x01(\x0b2\n.proto.RelR\x05input\x1ab\n\x0bInPredicate\x12+\n\x07needles\x18\x01 \x03(\x0b2\x11.proto.ExpressionR\x07needles\x12&\n\x08haystack\x18\x02 \x01(\x0b2\n.proto.RelR\x08haystack\x1a\xe9\x01\n\x0cSetPredicate\x12V\n\x0cpredicate_op\x18\x01 \x01(\x0e23.proto.Expression.Subquery.SetPredicate.PredicateOpR\x0bpredicateOp\x12"\n\x06tuples\x18\x02 \x01(\x0b2\n.proto.RelR\x06tuples"]\n\x0bPredicateOp\x12\x1c\n\x18PREDICATE_OP_UNSPECIFIED\x10\x00\x12\x17\n\x13PREDICATE_OP_EXISTS\x10\x01\x12\x17\n\x13PREDICATE_OP_UNIQUE\x10\x02\x1a\x9a\x04\n\rSetComparison\x12W\n\x0creduction_op\x18\x01 \x01(\x0e24.proto.Expression.Subquery.SetComparison.ReductionOpR\x0breductionOp\x12Z\n\rcomparison_op\x18\x02 \x01(\x0e25.proto.Expression.Subquery.SetComparison.ComparisonOpR\x0ccomparisonOp\x12%\n\x04left\x18\x03 \x01(\x0b2\x11.proto.ExpressionR\x04left\x12 \n\x05right\x18\x04 \x01(\x0b2\n.proto.RelR\x05right"\xb1\x01\n\x0cComparisonOp\x12\x1d\n\x19COMPARISON_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10COMPARISON_OP_EQ\x10\x01\x12\x14\n\x10COMPARISON_OP_NE\x10\x02\x12\x14\n\x10COMPARISON_OP_LT\x10\x03\x12\x14\n\x10COMPARISON_OP_GT\x10\x04\x12\x14\n\x10COMPARISON_OP_LE\x10\x05\x12\x14\n\x10COMPARISON_OP_GE\x10\x06"W\n\x0bReductionOp\x12\x1c\n\x18REDUCTION_OP_UNSPECIFIED\x10\x00\x12\x14\n\x10REDUCTION_OP_ANY\x10\x01\x12\x14\n\x10REDUCTION_OP_ALL\x10\x02B\x0f\n\rsubquery_typeB\n\n\x08rex_type"d\n\x10DynamicParameter\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x12/\n\x13parameter_reference\x18\x02 \x01(\rR\x12parameterReference"\xa5\x03\n\tSortField\x12%\n\x04expr\x18\x01 \x01(\x0b2\x11.proto.ExpressionR\x04expr\x12>\n\tdirection\x18\x02 \x01(\x0e2\x1e.proto.SortField.SortDirectionH\x00R\tdirection\x12D\n\x1dcomparison_function_reference\x18\x03 \x01(\rH\x00R\x1bcomparisonFunctionReference"\xdd\x01\n\rSortDirection\x12\x1e\n\x1aSORT_DIRECTION_UNSPECIFIED\x10\x00\x12"\n\x1eSORT_DIRECTION_ASC_NULLS_FIRST\x10\x01\x12!\n\x1dSORT_DIRECTION_ASC_NULLS_LAST\x10\x02\x12#\n\x1fSORT_DIRECTION_DESC_NULLS_FIRST\x10\x03\x12"\n\x1eSORT_DIRECTION_DESC_NULLS_LAST\x10\x04\x12\x1c\n\x18SORT_DIRECTION_CLUSTERED\x10\x05B\x0b\n\tsort_kind"\xb1\x04\n\x11AggregateFunction\x12-\n\x12function_reference\x18\x01 \x01(\rR\x11functionReference\x125\n\targuments\x18\x07 \x03(\x0b2\x17.proto.FunctionArgumentR\targuments\x12/\n\x07options\x18\x08 \x03(\x0b2\x15.proto.FunctionOptionR\x07options\x12,\n\x0boutput_type\x18\x05 \x01(\x0b2\x0b.proto.TypeR\noutputType\x12-\n\x05phase\x18\x04 \x01(\x0e2\x17.proto.AggregationPhaseR\x05phase\x12&\n\x05sorts\x18\x03 \x03(\x0b2\x10.proto.SortFieldR\x05sorts\x12N\n\ninvocation\x18\x06 \x01(\x0e2..proto.AggregateFunction.AggregationInvocationR\ninvocation\x12)\n\x04args\x18\x02 \x03(\x0b2\x11.proto.ExpressionB\x02\x18\x01R\x04args"\x84\x01\n\x15AggregationInvocation\x12&\n"AGGREGATION_INVOCATION_UNSPECIFIED\x10\x00\x12\x1e\n\x1aAGGREGATION_INVOCATION_ALL\x10\x01\x12#\n\x1fAGGREGATION_INVOCATION_DISTINCT\x10\x02"7\n\x0cReferenceRel\x12\'\n\x0fsubtree_ordinal\x18\x01 \x01(\x05R\x0esubtreeOrdinal*\xef\x01\n\x10AggregationPhase\x12!\n\x1dAGGREGATION_PHASE_UNSPECIFIED\x10\x00\x12-\n)AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE\x10\x01\x122\n.AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE\x10\x02\x12\'\n#AGGREGATION_PHASE_INITIAL_TO_RESULT\x10\x03\x12,\n(AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT\x10\x04B#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.algebra_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' - _globals['_READREL_VIRTUALTABLE'].fields_by_name['values']._loaded_options = None - _globals['_READREL_VIRTUALTABLE'].fields_by_name['values']._serialized_options = b'\030\001' - _globals['_FETCHREL'].fields_by_name['offset']._loaded_options = None - _globals['_FETCHREL'].fields_by_name['offset']._serialized_options = b'\030\001' - _globals['_FETCHREL'].fields_by_name['count']._loaded_options = None - _globals['_FETCHREL'].fields_by_name['count']._serialized_options = b'\030\001' - _globals['_AGGREGATEREL_GROUPING'].fields_by_name['grouping_expressions']._loaded_options = None - _globals['_AGGREGATEREL_GROUPING'].fields_by_name['grouping_expressions']._serialized_options = b'\030\001' - _globals['_HASHJOINREL'].fields_by_name['left_keys']._loaded_options = None - _globals['_HASHJOINREL'].fields_by_name['left_keys']._serialized_options = b'\030\001' - _globals['_HASHJOINREL'].fields_by_name['right_keys']._loaded_options = None - _globals['_HASHJOINREL'].fields_by_name['right_keys']._serialized_options = b'\030\001' - _globals['_MERGEJOINREL'].fields_by_name['left_keys']._loaded_options = None - _globals['_MERGEJOINREL'].fields_by_name['left_keys']._serialized_options = b'\030\001' - _globals['_MERGEJOINREL'].fields_by_name['right_keys']._loaded_options = None - _globals['_MERGEJOINREL'].fields_by_name['right_keys']._serialized_options = b'\030\001' - _globals['_EXPRESSION_ENUM_EMPTY']._loaded_options = None - _globals['_EXPRESSION_ENUM_EMPTY']._serialized_options = b'\030\001' - _globals['_EXPRESSION_ENUM']._loaded_options = None - _globals['_EXPRESSION_ENUM']._serialized_options = b'\030\001' - _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND'].fields_by_name['microseconds']._loaded_options = None - _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND'].fields_by_name['microseconds']._serialized_options = b'\030\001' - _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp']._loaded_options = None - _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp']._serialized_options = b'\030\001' - _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp_tz']._loaded_options = None - _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp_tz']._serialized_options = b'\030\001' - _globals['_EXPRESSION_SCALARFUNCTION'].fields_by_name['args']._loaded_options = None - _globals['_EXPRESSION_SCALARFUNCTION'].fields_by_name['args']._serialized_options = b'\030\001' - _globals['_EXPRESSION_WINDOWFUNCTION'].fields_by_name['args']._loaded_options = None - _globals['_EXPRESSION_WINDOWFUNCTION'].fields_by_name['args']._serialized_options = b'\030\001' - _globals['_EXPRESSION'].fields_by_name['enum']._loaded_options = None - _globals['_EXPRESSION'].fields_by_name['enum']._serialized_options = b'\030\001' - _globals['_AGGREGATEFUNCTION'].fields_by_name['args']._loaded_options = None - _globals['_AGGREGATEFUNCTION'].fields_by_name['args']._serialized_options = b'\030\001' - _globals['_AGGREGATIONPHASE']._serialized_start=29447 - _globals['_AGGREGATIONPHASE']._serialized_end=29686 - _globals['_RELCOMMON']._serialized_start=111 - _globals['_RELCOMMON']._serialized_end=1705 - _globals['_RELCOMMON_DIRECT']._serialized_start=347 - _globals['_RELCOMMON_DIRECT']._serialized_end=355 - _globals['_RELCOMMON_EMIT']._serialized_start=357 - _globals['_RELCOMMON_EMIT']._serialized_end=402 - _globals['_RELCOMMON_HINT']._serialized_start=405 - _globals['_RELCOMMON_HINT']._serialized_end=1692 - _globals['_RELCOMMON_HINT_STATS']._serialized_start=856 - _globals['_RELCOMMON_HINT_STATS']._serialized_end=1009 - _globals['_RELCOMMON_HINT_RUNTIMECONSTRAINT']._serialized_start=1011 - _globals['_RELCOMMON_HINT_RUNTIMECONSTRAINT']._serialized_end=1114 - _globals['_RELCOMMON_HINT_SAVEDCOMPUTATION']._serialized_start=1117 - _globals['_RELCOMMON_HINT_SAVEDCOMPUTATION']._serialized_end=1317 - _globals['_RELCOMMON_HINT_LOADEDCOMPUTATION']._serialized_start=1320 - _globals['_RELCOMMON_HINT_LOADEDCOMPUTATION']._serialized_end=1540 - _globals['_RELCOMMON_HINT_COMPUTATIONTYPE']._serialized_start=1543 - _globals['_RELCOMMON_HINT_COMPUTATIONTYPE']._serialized_end=1692 - _globals['_READREL']._serialized_start=1708 - _globals['_READREL']._serialized_end=4273 - _globals['_READREL_NAMEDTABLE']._serialized_start=2406 - _globals['_READREL_NAMEDTABLE']._serialized_end=2524 - _globals['_READREL_ICEBERGTABLE']._serialized_start=2527 - _globals['_READREL_ICEBERGTABLE']._serialized_end=2779 - _globals['_READREL_ICEBERGTABLE_METADATAFILEREAD']._serialized_start=2616 - _globals['_READREL_ICEBERGTABLE_METADATAFILEREAD']._serialized_end=2765 - _globals['_READREL_VIRTUALTABLE']._serialized_start=2782 - _globals['_READREL_VIRTUALTABLE']._serialized_end=2925 - _globals['_READREL_EXTENSIONTABLE']._serialized_start=2927 - _globals['_READREL_EXTENSIONTABLE']._serialized_end=2989 - _globals['_READREL_LOCALFILES']._serialized_start=2992 - _globals['_READREL_LOCALFILES']._serialized_end=4260 - _globals['_READREL_LOCALFILES_FILEORFILES']._serialized_start=3152 - _globals['_READREL_LOCALFILES_FILEORFILES']._serialized_end=4260 - _globals['_READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS']._serialized_start=3849 - _globals['_READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS']._serialized_end=3869 - _globals['_READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS']._serialized_start=3871 - _globals['_READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS']._serialized_end=3889 - _globals['_READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS']._serialized_start=3891 - _globals['_READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS']._serialized_end=3907 - _globals['_READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS']._serialized_start=3909 - _globals['_READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS']._serialized_end=3926 - _globals['_READREL_LOCALFILES_FILEORFILES_DELIMITERSEPARATEDTEXTREADOPTIONS']._serialized_start=3929 - _globals['_READREL_LOCALFILES_FILEORFILES_DELIMITERSEPARATEDTEXTREADOPTIONS']._serialized_end=4218 - _globals['_PROJECTREL']._serialized_start=4276 - _globals['_PROJECTREL']._serialized_end=4501 - _globals['_JOINREL']._serialized_start=4504 - _globals['_JOINREL']._serialized_end=5193 - _globals['_JOINREL_JOINTYPE']._serialized_start=4865 - _globals['_JOINREL_JOINTYPE']._serialized_end=5193 - _globals['_CROSSREL']._serialized_start=5196 - _globals['_CROSSREL']._serialized_end=5398 - _globals['_FETCHREL']._serialized_start=5401 - _globals['_FETCHREL']._serialized_end=5764 - _globals['_AGGREGATEREL']._serialized_start=5767 - _globals['_AGGREGATEREL']._serialized_end=6374 - _globals['_AGGREGATEREL_GROUPING']._serialized_start=6131 - _globals['_AGGREGATEREL_GROUPING']._serialized_end=6268 - _globals['_AGGREGATEREL_MEASURE']._serialized_start=6270 - _globals['_AGGREGATEREL_MEASURE']._serialized_end=6374 - _globals['_CONSISTENTPARTITIONWINDOWREL']._serialized_start=6377 - _globals['_CONSISTENTPARTITIONWINDOWREL']._serialized_end=7347 - _globals['_CONSISTENTPARTITIONWINDOWREL_WINDOWRELFUNCTION']._serialized_start=6780 - _globals['_CONSISTENTPARTITIONWINDOWREL_WINDOWRELFUNCTION']._serialized_end=7347 - _globals['_SORTREL']._serialized_start=7350 - _globals['_SORTREL']._serialized_end=7559 - _globals['_FILTERREL']._serialized_start=7562 - _globals['_FILTERREL']._serialized_end=7782 - _globals['_SETREL']._serialized_start=7785 - _globals['_SETREL']._serialized_end=8263 - _globals['_SETREL_SETOP']._serialized_start=7995 - _globals['_SETREL_SETOP']._serialized_end=8263 - _globals['_EXTENSIONSINGLEREL']._serialized_start=8266 - _globals['_EXTENSIONSINGLEREL']._serialized_end=8408 - _globals['_EXTENSIONLEAFREL']._serialized_start=8410 - _globals['_EXTENSIONLEAFREL']._serialized_end=8516 - _globals['_EXTENSIONMULTIREL']._serialized_start=8519 - _globals['_EXTENSIONMULTIREL']._serialized_end=8662 - _globals['_EXCHANGEREL']._serialized_start=8665 - _globals['_EXCHANGEREL']._serialized_end=9794 - _globals['_EXCHANGEREL_SCATTERFIELDS']._serialized_start=9311 - _globals['_EXCHANGEREL_SCATTERFIELDS']._serialized_end=9384 - _globals['_EXCHANGEREL_SINGLEBUCKETEXPRESSION']._serialized_start=9386 - _globals['_EXCHANGEREL_SINGLEBUCKETEXPRESSION']._serialized_end=9461 - _globals['_EXCHANGEREL_MULTIBUCKETEXPRESSION']._serialized_start=9463 - _globals['_EXCHANGEREL_MULTIBUCKETEXPRESSION']._serialized_end=9587 - _globals['_EXCHANGEREL_BROADCAST']._serialized_start=9589 - _globals['_EXCHANGEREL_BROADCAST']._serialized_end=9600 - _globals['_EXCHANGEREL_ROUNDROBIN']._serialized_start=9602 - _globals['_EXCHANGEREL_ROUNDROBIN']._serialized_end=9636 - _globals['_EXCHANGEREL_EXCHANGETARGET']._serialized_start=9639 - _globals['_EXCHANGEREL_EXCHANGETARGET']._serialized_end=9777 - _globals['_EXPANDREL']._serialized_start=9797 - _globals['_EXPANDREL']._serialized_end=10177 - _globals['_EXPANDREL_EXPANDFIELD']._serialized_start=9941 - _globals['_EXPANDREL_EXPANDFIELD']._serialized_end=10108 - _globals['_EXPANDREL_SWITCHINGFIELD']._serialized_start=10110 - _globals['_EXPANDREL_SWITCHINGFIELD']._serialized_end=10177 - _globals['_RELROOT']._serialized_start=10179 - _globals['_RELROOT']._serialized_end=10244 - _globals['_REL']._serialized_start=10247 - _globals['_REL']._serialized_end=11351 - _globals['_NAMEDOBJECTWRITE']._serialized_start=11353 - _globals['_NAMEDOBJECTWRITE']._serialized_end=11477 - _globals['_EXTENSIONOBJECT']._serialized_start=11479 - _globals['_EXTENSIONOBJECT']._serialized_end=11542 - _globals['_DDLREL']._serialized_start=11545 - _globals['_DDLREL']._serialized_end=12319 - _globals['_DDLREL_DDLOBJECT']._serialized_start=12079 - _globals['_DDLREL_DDLOBJECT']._serialized_end=12161 - _globals['_DDLREL_DDLOP']._serialized_start=12164 - _globals['_DDLREL_DDLOP']._serialized_end=12305 - _globals['_WRITEREL']._serialized_start=12322 - _globals['_WRITEREL']._serialized_end=13245 - _globals['_WRITEREL_WRITEOP']._serialized_start=12830 - _globals['_WRITEREL_WRITEOP']._serialized_end=12947 - _globals['_WRITEREL_CREATEMODE']._serialized_start=12950 - _globals['_WRITEREL_CREATEMODE']._serialized_end=13127 - _globals['_WRITEREL_OUTPUTMODE']._serialized_start=13129 - _globals['_WRITEREL_OUTPUTMODE']._serialized_end=13231 - _globals['_UPDATEREL']._serialized_start=13248 - _globals['_UPDATEREL']._serialized_end=13715 - _globals['_UPDATEREL_TRANSFORMEXPRESSION']._serialized_start=13583 - _globals['_UPDATEREL_TRANSFORMEXPRESSION']._serialized_end=13700 - _globals['_NAMEDTABLE']._serialized_start=2406 - _globals['_NAMEDTABLE']._serialized_end=2524 - _globals['_COMPARISONJOINKEY']._serialized_start=13838 - _globals['_COMPARISONJOINKEY']._serialized_end=14393 - _globals['_COMPARISONJOINKEY_COMPARISONTYPE']._serialized_start=14043 - _globals['_COMPARISONJOINKEY_COMPARISONTYPE']._serialized_end=14208 - _globals['_COMPARISONJOINKEY_SIMPLECOMPARISONTYPE']._serialized_start=14211 - _globals['_COMPARISONJOINKEY_SIMPLECOMPARISONTYPE']._serialized_end=14393 - _globals['_HASHJOINREL']._serialized_start=14396 - _globals['_HASHJOINREL']._serialized_end=15376 - _globals['_HASHJOINREL_JOINTYPE']._serialized_start=14960 - _globals['_HASHJOINREL_JOINTYPE']._serialized_end=15288 - _globals['_HASHJOINREL_BUILDINPUT']._serialized_start=15290 - _globals['_HASHJOINREL_BUILDINPUT']._serialized_end=15376 - _globals['_MERGEJOINREL']._serialized_start=15379 - _globals['_MERGEJOINREL']._serialized_end=16209 - _globals['_MERGEJOINREL_JOINTYPE']._serialized_start=14960 - _globals['_MERGEJOINREL_JOINTYPE']._serialized_end=15288 - _globals['_NESTEDLOOPJOINREL']._serialized_start=16212 - _globals['_NESTEDLOOPJOINREL']._serialized_end=16860 - _globals['_NESTEDLOOPJOINREL_JOINTYPE']._serialized_start=14960 - _globals['_NESTEDLOOPJOINREL_JOINTYPE']._serialized_end=15288 - _globals['_FUNCTIONARGUMENT']._serialized_start=16863 - _globals['_FUNCTIONARGUMENT']._serialized_end=16993 - _globals['_FUNCTIONOPTION']._serialized_start=16995 - _globals['_FUNCTIONOPTION']._serialized_end=17063 - _globals['_EXPRESSION']._serialized_start=17066 - _globals['_EXPRESSION']._serialized_end=28297 - _globals['_EXPRESSION_ENUM']._serialized_start=17917 - _globals['_EXPRESSION_ENUM']._serialized_end=18051 - _globals['_EXPRESSION_ENUM_EMPTY']._serialized_start=18023 - _globals['_EXPRESSION_ENUM_EMPTY']._serialized_end=18034 - _globals['_EXPRESSION_LITERAL']._serialized_start=18054 - _globals['_EXPRESSION_LITERAL']._serialized_end=20964 - _globals['_EXPRESSION_LITERAL_VARCHAR']._serialized_start=19644 - _globals['_EXPRESSION_LITERAL_VARCHAR']._serialized_end=19699 - _globals['_EXPRESSION_LITERAL_DECIMAL']._serialized_start=19701 - _globals['_EXPRESSION_LITERAL_DECIMAL']._serialized_end=19784 - _globals['_EXPRESSION_LITERAL_PRECISIONTIME']._serialized_start=19786 - _globals['_EXPRESSION_LITERAL_PRECISIONTIME']._serialized_end=19853 - _globals['_EXPRESSION_LITERAL_PRECISIONTIMESTAMP']._serialized_start=19855 - _globals['_EXPRESSION_LITERAL_PRECISIONTIMESTAMP']._serialized_end=19927 - _globals['_EXPRESSION_LITERAL_MAP']._serialized_start=19930 - _globals['_EXPRESSION_LITERAL_MAP']._serialized_end=20112 - _globals['_EXPRESSION_LITERAL_MAP_KEYVALUE']._serialized_start=20008 - _globals['_EXPRESSION_LITERAL_MAP_KEYVALUE']._serialized_end=20112 - _globals['_EXPRESSION_LITERAL_INTERVALYEARTOMONTH']._serialized_start=20114 - _globals['_EXPRESSION_LITERAL_INTERVALYEARTOMONTH']._serialized_end=20181 - _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND']._serialized_start=20184 - _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND']._serialized_end=20375 - _globals['_EXPRESSION_LITERAL_INTERVALCOMPOUND']._serialized_start=20378 - _globals['_EXPRESSION_LITERAL_INTERVALCOMPOUND']._serialized_end=20596 - _globals['_EXPRESSION_LITERAL_STRUCT']._serialized_start=20598 - _globals['_EXPRESSION_LITERAL_STRUCT']._serialized_end=20657 - _globals['_EXPRESSION_LITERAL_LIST']._serialized_start=20659 - _globals['_EXPRESSION_LITERAL_LIST']._serialized_end=20716 - _globals['_EXPRESSION_LITERAL_USERDEFINED']._serialized_start=20719 - _globals['_EXPRESSION_LITERAL_USERDEFINED']._serialized_end=20948 - _globals['_EXPRESSION_NESTED']._serialized_start=20967 - _globals['_EXPRESSION_NESTED']._serialized_end=21510 - _globals['_EXPRESSION_NESTED_MAP']._serialized_start=21226 - _globals['_EXPRESSION_NESTED_MAP']._serialized_end=21391 - _globals['_EXPRESSION_NESTED_MAP_KEYVALUE']._serialized_start=21303 - _globals['_EXPRESSION_NESTED_MAP_KEYVALUE']._serialized_end=21391 - _globals['_EXPRESSION_NESTED_STRUCT']._serialized_start=21393 - _globals['_EXPRESSION_NESTED_STRUCT']._serialized_end=21444 - _globals['_EXPRESSION_NESTED_LIST']._serialized_start=21446 - _globals['_EXPRESSION_NESTED_LIST']._serialized_end=21495 - _globals['_EXPRESSION_SCALARFUNCTION']._serialized_start=21513 - _globals['_EXPRESSION_SCALARFUNCTION']._serialized_end=21769 - _globals['_EXPRESSION_WINDOWFUNCTION']._serialized_start=21772 - _globals['_EXPRESSION_WINDOWFUNCTION']._serialized_end=23009 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND']._serialized_start=22473 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND']._serialized_end=22921 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING']._serialized_start=22814 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING']._serialized_end=22849 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING']._serialized_start=22851 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING']._serialized_end=22886 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW']._serialized_start=22888 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW']._serialized_end=22900 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED']._serialized_start=22902 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED']._serialized_end=22913 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE']._serialized_start=22923 - _globals['_EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE']._serialized_end=23009 - _globals['_EXPRESSION_IFTHEN']._serialized_start=23012 - _globals['_EXPRESSION_IFTHEN']._serialized_end=23198 - _globals['_EXPRESSION_IFTHEN_IFCLAUSE']._serialized_start=23114 - _globals['_EXPRESSION_IFTHEN_IFCLAUSE']._serialized_end=23198 - _globals['_EXPRESSION_CAST']._serialized_start=23201 - _globals['_EXPRESSION_CAST']._serialized_end=23489 - _globals['_EXPRESSION_CAST_FAILUREBEHAVIOR']._serialized_start=23366 - _globals['_EXPRESSION_CAST_FAILUREBEHAVIOR']._serialized_end=23489 - _globals['_EXPRESSION_SWITCHEXPRESSION']._serialized_start=23492 - _globals['_EXPRESSION_SWITCHEXPRESSION']._serialized_end=23745 - _globals['_EXPRESSION_SWITCHEXPRESSION_IFVALUE']._serialized_start=23654 - _globals['_EXPRESSION_SWITCHEXPRESSION_IFVALUE']._serialized_end=23745 - _globals['_EXPRESSION_SINGULARORLIST']._serialized_start=23747 - _globals['_EXPRESSION_SINGULARORLIST']._serialized_end=23849 - _globals['_EXPRESSION_MULTIORLIST']._serialized_start=23852 - _globals['_EXPRESSION_MULTIORLIST']._serialized_end=24023 - _globals['_EXPRESSION_MULTIORLIST_RECORD']._serialized_start=23972 - _globals['_EXPRESSION_MULTIORLIST_RECORD']._serialized_end=24023 - _globals['_EXPRESSION_EMBEDDEDFUNCTION']._serialized_start=24026 - _globals['_EXPRESSION_EMBEDDEDFUNCTION']._serialized_end=24541 - _globals['_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION']._serialized_start=24364 - _globals['_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION']._serialized_end=24450 - _globals['_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION']._serialized_start=24452 - _globals['_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION']._serialized_end=24533 - _globals['_EXPRESSION_REFERENCESEGMENT']._serialized_start=24544 - _globals['_EXPRESSION_REFERENCESEGMENT']._serialized_end=25132 - _globals['_EXPRESSION_REFERENCESEGMENT_MAPKEY']._serialized_start=24804 - _globals['_EXPRESSION_REFERENCESEGMENT_MAPKEY']._serialized_end=24922 - _globals['_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD']._serialized_start=24924 - _globals['_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD']._serialized_end=25017 - _globals['_EXPRESSION_REFERENCESEGMENT_LISTELEMENT']._serialized_start=25019 - _globals['_EXPRESSION_REFERENCESEGMENT_LISTELEMENT']._serialized_end=25114 - _globals['_EXPRESSION_MASKEXPRESSION']._serialized_start=25135 - _globals['_EXPRESSION_MASKEXPRESSION']._serialized_end=26525 - _globals['_EXPRESSION_MASKEXPRESSION_SELECT']._serialized_start=25283 - _globals['_EXPRESSION_MASKEXPRESSION_SELECT']._serialized_end=25503 - _globals['_EXPRESSION_MASKEXPRESSION_STRUCTSELECT']._serialized_start=25505 - _globals['_EXPRESSION_MASKEXPRESSION_STRUCTSELECT']._serialized_end=25599 - _globals['_EXPRESSION_MASKEXPRESSION_STRUCTITEM']._serialized_start=25601 - _globals['_EXPRESSION_MASKEXPRESSION_STRUCTITEM']._serialized_end=25698 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT']._serialized_start=25701 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT']._serialized_end=26171 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM']._serialized_start=25869 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM']._serialized_end=26171 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT']._serialized_start=26075 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT']._serialized_end=26110 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE']._serialized_start=26112 - _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE']._serialized_end=26163 - _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT']._serialized_start=26174 - _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT']._serialized_end=26525 - _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY']._serialized_start=26416 - _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY']._serialized_end=26449 - _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION']._serialized_start=26451 - _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION']._serialized_end=26515 - _globals['_EXPRESSION_FIELDREFERENCE']._serialized_start=26528 - _globals['_EXPRESSION_FIELDREFERENCE']._serialized_end=27033 - _globals['_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE']._serialized_start=26940 - _globals['_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE']._serialized_end=26955 - _globals['_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE']._serialized_start=26957 - _globals['_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE']._serialized_end=27002 - _globals['_EXPRESSION_SUBQUERY']._serialized_start=27036 - _globals['_EXPRESSION_SUBQUERY']._serialized_end=28285 - _globals['_EXPRESSION_SUBQUERY_SCALAR']._serialized_start=27349 - _globals['_EXPRESSION_SUBQUERY_SCALAR']._serialized_end=27391 - _globals['_EXPRESSION_SUBQUERY_INPREDICATE']._serialized_start=27393 - _globals['_EXPRESSION_SUBQUERY_INPREDICATE']._serialized_end=27491 - _globals['_EXPRESSION_SUBQUERY_SETPREDICATE']._serialized_start=27494 - _globals['_EXPRESSION_SUBQUERY_SETPREDICATE']._serialized_end=27727 - _globals['_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP']._serialized_start=27634 - _globals['_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP']._serialized_end=27727 - _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON']._serialized_start=27730 - _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON']._serialized_end=28268 - _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP']._serialized_start=28002 - _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP']._serialized_end=28179 - _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP']._serialized_start=28181 - _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP']._serialized_end=28268 - _globals['_DYNAMICPARAMETER']._serialized_start=28299 - _globals['_DYNAMICPARAMETER']._serialized_end=28399 - _globals['_SORTFIELD']._serialized_start=28402 - _globals['_SORTFIELD']._serialized_end=28823 - _globals['_SORTFIELD_SORTDIRECTION']._serialized_start=28589 - _globals['_SORTFIELD_SORTDIRECTION']._serialized_end=28810 - _globals['_AGGREGATEFUNCTION']._serialized_start=28826 - _globals['_AGGREGATEFUNCTION']._serialized_end=29387 - _globals['_AGGREGATEFUNCTION_AGGREGATIONINVOCATION']._serialized_start=29255 - _globals['_AGGREGATEFUNCTION_AGGREGATIONINVOCATION']._serialized_end=29387 - _globals['_REFERENCEREL']._serialized_start=29389 - _globals['_REFERENCEREL']._serialized_end=29444 -# @@protoc_insertion_point(module_scope) + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _globals['_READREL_VIRTUALTABLE'].fields_by_name['values']._loaded_options = None + _globals['_READREL_VIRTUALTABLE'].fields_by_name['values']._serialized_options = b'\x18\x01' + _globals['_FETCHREL'].fields_by_name['offset']._loaded_options = None + _globals['_FETCHREL'].fields_by_name['offset']._serialized_options = b'\x18\x01' + _globals['_FETCHREL'].fields_by_name['count']._loaded_options = None + _globals['_FETCHREL'].fields_by_name['count']._serialized_options = b'\x18\x01' + _globals['_AGGREGATEREL_GROUPING'].fields_by_name['grouping_expressions']._loaded_options = None + _globals['_AGGREGATEREL_GROUPING'].fields_by_name['grouping_expressions']._serialized_options = b'\x18\x01' + _globals['_HASHJOINREL'].fields_by_name['left_keys']._loaded_options = None + _globals['_HASHJOINREL'].fields_by_name['left_keys']._serialized_options = b'\x18\x01' + _globals['_HASHJOINREL'].fields_by_name['right_keys']._loaded_options = None + _globals['_HASHJOINREL'].fields_by_name['right_keys']._serialized_options = b'\x18\x01' + _globals['_MERGEJOINREL'].fields_by_name['left_keys']._loaded_options = None + _globals['_MERGEJOINREL'].fields_by_name['left_keys']._serialized_options = b'\x18\x01' + _globals['_MERGEJOINREL'].fields_by_name['right_keys']._loaded_options = None + _globals['_MERGEJOINREL'].fields_by_name['right_keys']._serialized_options = b'\x18\x01' + _globals['_EXPRESSION_ENUM_EMPTY']._loaded_options = None + _globals['_EXPRESSION_ENUM_EMPTY']._serialized_options = b'\x18\x01' + _globals['_EXPRESSION_ENUM']._loaded_options = None + _globals['_EXPRESSION_ENUM']._serialized_options = b'\x18\x01' + _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND'].fields_by_name['microseconds']._loaded_options = None + _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND'].fields_by_name['microseconds']._serialized_options = b'\x18\x01' + _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp']._loaded_options = None + _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp']._serialized_options = b'\x18\x01' + _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp_tz']._loaded_options = None + _globals['_EXPRESSION_LITERAL'].fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' + _globals['_EXPRESSION_SCALARFUNCTION'].fields_by_name['args']._loaded_options = None + _globals['_EXPRESSION_SCALARFUNCTION'].fields_by_name['args']._serialized_options = b'\x18\x01' + _globals['_EXPRESSION_WINDOWFUNCTION'].fields_by_name['args']._loaded_options = None + _globals['_EXPRESSION_WINDOWFUNCTION'].fields_by_name['args']._serialized_options = b'\x18\x01' + _globals['_EXPRESSION'].fields_by_name['enum']._loaded_options = None + _globals['_EXPRESSION'].fields_by_name['enum']._serialized_options = b'\x18\x01' + _globals['_AGGREGATEFUNCTION'].fields_by_name['args']._loaded_options = None + _globals['_AGGREGATEFUNCTION'].fields_by_name['args']._serialized_options = b'\x18\x01' + _globals['_AGGREGATIONPHASE']._serialized_start = 29447 + _globals['_AGGREGATIONPHASE']._serialized_end = 29686 + _globals['_RELCOMMON']._serialized_start = 111 + _globals['_RELCOMMON']._serialized_end = 1705 + _globals['_RELCOMMON_DIRECT']._serialized_start = 347 + _globals['_RELCOMMON_DIRECT']._serialized_end = 355 + _globals['_RELCOMMON_EMIT']._serialized_start = 357 + _globals['_RELCOMMON_EMIT']._serialized_end = 402 + _globals['_RELCOMMON_HINT']._serialized_start = 405 + _globals['_RELCOMMON_HINT']._serialized_end = 1692 + _globals['_RELCOMMON_HINT_STATS']._serialized_start = 856 + _globals['_RELCOMMON_HINT_STATS']._serialized_end = 1009 + _globals['_RELCOMMON_HINT_RUNTIMECONSTRAINT']._serialized_start = 1011 + _globals['_RELCOMMON_HINT_RUNTIMECONSTRAINT']._serialized_end = 1114 + _globals['_RELCOMMON_HINT_SAVEDCOMPUTATION']._serialized_start = 1117 + _globals['_RELCOMMON_HINT_SAVEDCOMPUTATION']._serialized_end = 1317 + _globals['_RELCOMMON_HINT_LOADEDCOMPUTATION']._serialized_start = 1320 + _globals['_RELCOMMON_HINT_LOADEDCOMPUTATION']._serialized_end = 1540 + _globals['_RELCOMMON_HINT_COMPUTATIONTYPE']._serialized_start = 1543 + _globals['_RELCOMMON_HINT_COMPUTATIONTYPE']._serialized_end = 1692 + _globals['_READREL']._serialized_start = 1708 + _globals['_READREL']._serialized_end = 4273 + _globals['_READREL_NAMEDTABLE']._serialized_start = 2406 + _globals['_READREL_NAMEDTABLE']._serialized_end = 2524 + _globals['_READREL_ICEBERGTABLE']._serialized_start = 2527 + _globals['_READREL_ICEBERGTABLE']._serialized_end = 2779 + _globals['_READREL_ICEBERGTABLE_METADATAFILEREAD']._serialized_start = 2616 + _globals['_READREL_ICEBERGTABLE_METADATAFILEREAD']._serialized_end = 2765 + _globals['_READREL_VIRTUALTABLE']._serialized_start = 2782 + _globals['_READREL_VIRTUALTABLE']._serialized_end = 2925 + _globals['_READREL_EXTENSIONTABLE']._serialized_start = 2927 + _globals['_READREL_EXTENSIONTABLE']._serialized_end = 2989 + _globals['_READREL_LOCALFILES']._serialized_start = 2992 + _globals['_READREL_LOCALFILES']._serialized_end = 4260 + _globals['_READREL_LOCALFILES_FILEORFILES']._serialized_start = 3152 + _globals['_READREL_LOCALFILES_FILEORFILES']._serialized_end = 4260 + _globals['_READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS']._serialized_start = 3849 + _globals['_READREL_LOCALFILES_FILEORFILES_PARQUETREADOPTIONS']._serialized_end = 3869 + _globals['_READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS']._serialized_start = 3871 + _globals['_READREL_LOCALFILES_FILEORFILES_ARROWREADOPTIONS']._serialized_end = 3889 + _globals['_READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS']._serialized_start = 3891 + _globals['_READREL_LOCALFILES_FILEORFILES_ORCREADOPTIONS']._serialized_end = 3907 + _globals['_READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS']._serialized_start = 3909 + _globals['_READREL_LOCALFILES_FILEORFILES_DWRFREADOPTIONS']._serialized_end = 3926 + _globals['_READREL_LOCALFILES_FILEORFILES_DELIMITERSEPARATEDTEXTREADOPTIONS']._serialized_start = 3929 + _globals['_READREL_LOCALFILES_FILEORFILES_DELIMITERSEPARATEDTEXTREADOPTIONS']._serialized_end = 4218 + _globals['_PROJECTREL']._serialized_start = 4276 + _globals['_PROJECTREL']._serialized_end = 4501 + _globals['_JOINREL']._serialized_start = 4504 + _globals['_JOINREL']._serialized_end = 5193 + _globals['_JOINREL_JOINTYPE']._serialized_start = 4865 + _globals['_JOINREL_JOINTYPE']._serialized_end = 5193 + _globals['_CROSSREL']._serialized_start = 5196 + _globals['_CROSSREL']._serialized_end = 5398 + _globals['_FETCHREL']._serialized_start = 5401 + _globals['_FETCHREL']._serialized_end = 5764 + _globals['_AGGREGATEREL']._serialized_start = 5767 + _globals['_AGGREGATEREL']._serialized_end = 6374 + _globals['_AGGREGATEREL_GROUPING']._serialized_start = 6131 + _globals['_AGGREGATEREL_GROUPING']._serialized_end = 6268 + _globals['_AGGREGATEREL_MEASURE']._serialized_start = 6270 + _globals['_AGGREGATEREL_MEASURE']._serialized_end = 6374 + _globals['_CONSISTENTPARTITIONWINDOWREL']._serialized_start = 6377 + _globals['_CONSISTENTPARTITIONWINDOWREL']._serialized_end = 7347 + _globals['_CONSISTENTPARTITIONWINDOWREL_WINDOWRELFUNCTION']._serialized_start = 6780 + _globals['_CONSISTENTPARTITIONWINDOWREL_WINDOWRELFUNCTION']._serialized_end = 7347 + _globals['_SORTREL']._serialized_start = 7350 + _globals['_SORTREL']._serialized_end = 7559 + _globals['_FILTERREL']._serialized_start = 7562 + _globals['_FILTERREL']._serialized_end = 7782 + _globals['_SETREL']._serialized_start = 7785 + _globals['_SETREL']._serialized_end = 8263 + _globals['_SETREL_SETOP']._serialized_start = 7995 + _globals['_SETREL_SETOP']._serialized_end = 8263 + _globals['_EXTENSIONSINGLEREL']._serialized_start = 8266 + _globals['_EXTENSIONSINGLEREL']._serialized_end = 8408 + _globals['_EXTENSIONLEAFREL']._serialized_start = 8410 + _globals['_EXTENSIONLEAFREL']._serialized_end = 8516 + _globals['_EXTENSIONMULTIREL']._serialized_start = 8519 + _globals['_EXTENSIONMULTIREL']._serialized_end = 8662 + _globals['_EXCHANGEREL']._serialized_start = 8665 + _globals['_EXCHANGEREL']._serialized_end = 9794 + _globals['_EXCHANGEREL_SCATTERFIELDS']._serialized_start = 9311 + _globals['_EXCHANGEREL_SCATTERFIELDS']._serialized_end = 9384 + _globals['_EXCHANGEREL_SINGLEBUCKETEXPRESSION']._serialized_start = 9386 + _globals['_EXCHANGEREL_SINGLEBUCKETEXPRESSION']._serialized_end = 9461 + _globals['_EXCHANGEREL_MULTIBUCKETEXPRESSION']._serialized_start = 9463 + _globals['_EXCHANGEREL_MULTIBUCKETEXPRESSION']._serialized_end = 9587 + _globals['_EXCHANGEREL_BROADCAST']._serialized_start = 9589 + _globals['_EXCHANGEREL_BROADCAST']._serialized_end = 9600 + _globals['_EXCHANGEREL_ROUNDROBIN']._serialized_start = 9602 + _globals['_EXCHANGEREL_ROUNDROBIN']._serialized_end = 9636 + _globals['_EXCHANGEREL_EXCHANGETARGET']._serialized_start = 9639 + _globals['_EXCHANGEREL_EXCHANGETARGET']._serialized_end = 9777 + _globals['_EXPANDREL']._serialized_start = 9797 + _globals['_EXPANDREL']._serialized_end = 10177 + _globals['_EXPANDREL_EXPANDFIELD']._serialized_start = 9941 + _globals['_EXPANDREL_EXPANDFIELD']._serialized_end = 10108 + _globals['_EXPANDREL_SWITCHINGFIELD']._serialized_start = 10110 + _globals['_EXPANDREL_SWITCHINGFIELD']._serialized_end = 10177 + _globals['_RELROOT']._serialized_start = 10179 + _globals['_RELROOT']._serialized_end = 10244 + _globals['_REL']._serialized_start = 10247 + _globals['_REL']._serialized_end = 11351 + _globals['_NAMEDOBJECTWRITE']._serialized_start = 11353 + _globals['_NAMEDOBJECTWRITE']._serialized_end = 11477 + _globals['_EXTENSIONOBJECT']._serialized_start = 11479 + _globals['_EXTENSIONOBJECT']._serialized_end = 11542 + _globals['_DDLREL']._serialized_start = 11545 + _globals['_DDLREL']._serialized_end = 12319 + _globals['_DDLREL_DDLOBJECT']._serialized_start = 12079 + _globals['_DDLREL_DDLOBJECT']._serialized_end = 12161 + _globals['_DDLREL_DDLOP']._serialized_start = 12164 + _globals['_DDLREL_DDLOP']._serialized_end = 12305 + _globals['_WRITEREL']._serialized_start = 12322 + _globals['_WRITEREL']._serialized_end = 13245 + _globals['_WRITEREL_WRITEOP']._serialized_start = 12830 + _globals['_WRITEREL_WRITEOP']._serialized_end = 12947 + _globals['_WRITEREL_CREATEMODE']._serialized_start = 12950 + _globals['_WRITEREL_CREATEMODE']._serialized_end = 13127 + _globals['_WRITEREL_OUTPUTMODE']._serialized_start = 13129 + _globals['_WRITEREL_OUTPUTMODE']._serialized_end = 13231 + _globals['_UPDATEREL']._serialized_start = 13248 + _globals['_UPDATEREL']._serialized_end = 13715 + _globals['_UPDATEREL_TRANSFORMEXPRESSION']._serialized_start = 13583 + _globals['_UPDATEREL_TRANSFORMEXPRESSION']._serialized_end = 13700 + _globals['_NAMEDTABLE']._serialized_start = 2406 + _globals['_NAMEDTABLE']._serialized_end = 2524 + _globals['_COMPARISONJOINKEY']._serialized_start = 13838 + _globals['_COMPARISONJOINKEY']._serialized_end = 14393 + _globals['_COMPARISONJOINKEY_COMPARISONTYPE']._serialized_start = 14043 + _globals['_COMPARISONJOINKEY_COMPARISONTYPE']._serialized_end = 14208 + _globals['_COMPARISONJOINKEY_SIMPLECOMPARISONTYPE']._serialized_start = 14211 + _globals['_COMPARISONJOINKEY_SIMPLECOMPARISONTYPE']._serialized_end = 14393 + _globals['_HASHJOINREL']._serialized_start = 14396 + _globals['_HASHJOINREL']._serialized_end = 15376 + _globals['_HASHJOINREL_JOINTYPE']._serialized_start = 14960 + _globals['_HASHJOINREL_JOINTYPE']._serialized_end = 15288 + _globals['_HASHJOINREL_BUILDINPUT']._serialized_start = 15290 + _globals['_HASHJOINREL_BUILDINPUT']._serialized_end = 15376 + _globals['_MERGEJOINREL']._serialized_start = 15379 + _globals['_MERGEJOINREL']._serialized_end = 16209 + _globals['_MERGEJOINREL_JOINTYPE']._serialized_start = 14960 + _globals['_MERGEJOINREL_JOINTYPE']._serialized_end = 15288 + _globals['_NESTEDLOOPJOINREL']._serialized_start = 16212 + _globals['_NESTEDLOOPJOINREL']._serialized_end = 16860 + _globals['_NESTEDLOOPJOINREL_JOINTYPE']._serialized_start = 14960 + _globals['_NESTEDLOOPJOINREL_JOINTYPE']._serialized_end = 15288 + _globals['_FUNCTIONARGUMENT']._serialized_start = 16863 + _globals['_FUNCTIONARGUMENT']._serialized_end = 16993 + _globals['_FUNCTIONOPTION']._serialized_start = 16995 + _globals['_FUNCTIONOPTION']._serialized_end = 17063 + _globals['_EXPRESSION']._serialized_start = 17066 + _globals['_EXPRESSION']._serialized_end = 28297 + _globals['_EXPRESSION_ENUM']._serialized_start = 17917 + _globals['_EXPRESSION_ENUM']._serialized_end = 18051 + _globals['_EXPRESSION_ENUM_EMPTY']._serialized_start = 18023 + _globals['_EXPRESSION_ENUM_EMPTY']._serialized_end = 18034 + _globals['_EXPRESSION_LITERAL']._serialized_start = 18054 + _globals['_EXPRESSION_LITERAL']._serialized_end = 20964 + _globals['_EXPRESSION_LITERAL_VARCHAR']._serialized_start = 19644 + _globals['_EXPRESSION_LITERAL_VARCHAR']._serialized_end = 19699 + _globals['_EXPRESSION_LITERAL_DECIMAL']._serialized_start = 19701 + _globals['_EXPRESSION_LITERAL_DECIMAL']._serialized_end = 19784 + _globals['_EXPRESSION_LITERAL_PRECISIONTIME']._serialized_start = 19786 + _globals['_EXPRESSION_LITERAL_PRECISIONTIME']._serialized_end = 19853 + _globals['_EXPRESSION_LITERAL_PRECISIONTIMESTAMP']._serialized_start = 19855 + _globals['_EXPRESSION_LITERAL_PRECISIONTIMESTAMP']._serialized_end = 19927 + _globals['_EXPRESSION_LITERAL_MAP']._serialized_start = 19930 + _globals['_EXPRESSION_LITERAL_MAP']._serialized_end = 20112 + _globals['_EXPRESSION_LITERAL_MAP_KEYVALUE']._serialized_start = 20008 + _globals['_EXPRESSION_LITERAL_MAP_KEYVALUE']._serialized_end = 20112 + _globals['_EXPRESSION_LITERAL_INTERVALYEARTOMONTH']._serialized_start = 20114 + _globals['_EXPRESSION_LITERAL_INTERVALYEARTOMONTH']._serialized_end = 20181 + _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND']._serialized_start = 20184 + _globals['_EXPRESSION_LITERAL_INTERVALDAYTOSECOND']._serialized_end = 20375 + _globals['_EXPRESSION_LITERAL_INTERVALCOMPOUND']._serialized_start = 20378 + _globals['_EXPRESSION_LITERAL_INTERVALCOMPOUND']._serialized_end = 20596 + _globals['_EXPRESSION_LITERAL_STRUCT']._serialized_start = 20598 + _globals['_EXPRESSION_LITERAL_STRUCT']._serialized_end = 20657 + _globals['_EXPRESSION_LITERAL_LIST']._serialized_start = 20659 + _globals['_EXPRESSION_LITERAL_LIST']._serialized_end = 20716 + _globals['_EXPRESSION_LITERAL_USERDEFINED']._serialized_start = 20719 + _globals['_EXPRESSION_LITERAL_USERDEFINED']._serialized_end = 20948 + _globals['_EXPRESSION_NESTED']._serialized_start = 20967 + _globals['_EXPRESSION_NESTED']._serialized_end = 21510 + _globals['_EXPRESSION_NESTED_MAP']._serialized_start = 21226 + _globals['_EXPRESSION_NESTED_MAP']._serialized_end = 21391 + _globals['_EXPRESSION_NESTED_MAP_KEYVALUE']._serialized_start = 21303 + _globals['_EXPRESSION_NESTED_MAP_KEYVALUE']._serialized_end = 21391 + _globals['_EXPRESSION_NESTED_STRUCT']._serialized_start = 21393 + _globals['_EXPRESSION_NESTED_STRUCT']._serialized_end = 21444 + _globals['_EXPRESSION_NESTED_LIST']._serialized_start = 21446 + _globals['_EXPRESSION_NESTED_LIST']._serialized_end = 21495 + _globals['_EXPRESSION_SCALARFUNCTION']._serialized_start = 21513 + _globals['_EXPRESSION_SCALARFUNCTION']._serialized_end = 21769 + _globals['_EXPRESSION_WINDOWFUNCTION']._serialized_start = 21772 + _globals['_EXPRESSION_WINDOWFUNCTION']._serialized_end = 23009 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND']._serialized_start = 22473 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND']._serialized_end = 22921 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING']._serialized_start = 22814 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_PRECEDING']._serialized_end = 22849 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING']._serialized_start = 22851 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_FOLLOWING']._serialized_end = 22886 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW']._serialized_start = 22888 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_CURRENTROW']._serialized_end = 22900 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED']._serialized_start = 22902 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUND_UNBOUNDED']._serialized_end = 22913 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE']._serialized_start = 22923 + _globals['_EXPRESSION_WINDOWFUNCTION_BOUNDSTYPE']._serialized_end = 23009 + _globals['_EXPRESSION_IFTHEN']._serialized_start = 23012 + _globals['_EXPRESSION_IFTHEN']._serialized_end = 23198 + _globals['_EXPRESSION_IFTHEN_IFCLAUSE']._serialized_start = 23114 + _globals['_EXPRESSION_IFTHEN_IFCLAUSE']._serialized_end = 23198 + _globals['_EXPRESSION_CAST']._serialized_start = 23201 + _globals['_EXPRESSION_CAST']._serialized_end = 23489 + _globals['_EXPRESSION_CAST_FAILUREBEHAVIOR']._serialized_start = 23366 + _globals['_EXPRESSION_CAST_FAILUREBEHAVIOR']._serialized_end = 23489 + _globals['_EXPRESSION_SWITCHEXPRESSION']._serialized_start = 23492 + _globals['_EXPRESSION_SWITCHEXPRESSION']._serialized_end = 23745 + _globals['_EXPRESSION_SWITCHEXPRESSION_IFVALUE']._serialized_start = 23654 + _globals['_EXPRESSION_SWITCHEXPRESSION_IFVALUE']._serialized_end = 23745 + _globals['_EXPRESSION_SINGULARORLIST']._serialized_start = 23747 + _globals['_EXPRESSION_SINGULARORLIST']._serialized_end = 23849 + _globals['_EXPRESSION_MULTIORLIST']._serialized_start = 23852 + _globals['_EXPRESSION_MULTIORLIST']._serialized_end = 24023 + _globals['_EXPRESSION_MULTIORLIST_RECORD']._serialized_start = 23972 + _globals['_EXPRESSION_MULTIORLIST_RECORD']._serialized_end = 24023 + _globals['_EXPRESSION_EMBEDDEDFUNCTION']._serialized_start = 24026 + _globals['_EXPRESSION_EMBEDDEDFUNCTION']._serialized_end = 24541 + _globals['_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION']._serialized_start = 24364 + _globals['_EXPRESSION_EMBEDDEDFUNCTION_PYTHONPICKLEFUNCTION']._serialized_end = 24450 + _globals['_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION']._serialized_start = 24452 + _globals['_EXPRESSION_EMBEDDEDFUNCTION_WEBASSEMBLYFUNCTION']._serialized_end = 24533 + _globals['_EXPRESSION_REFERENCESEGMENT']._serialized_start = 24544 + _globals['_EXPRESSION_REFERENCESEGMENT']._serialized_end = 25132 + _globals['_EXPRESSION_REFERENCESEGMENT_MAPKEY']._serialized_start = 24804 + _globals['_EXPRESSION_REFERENCESEGMENT_MAPKEY']._serialized_end = 24922 + _globals['_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD']._serialized_start = 24924 + _globals['_EXPRESSION_REFERENCESEGMENT_STRUCTFIELD']._serialized_end = 25017 + _globals['_EXPRESSION_REFERENCESEGMENT_LISTELEMENT']._serialized_start = 25019 + _globals['_EXPRESSION_REFERENCESEGMENT_LISTELEMENT']._serialized_end = 25114 + _globals['_EXPRESSION_MASKEXPRESSION']._serialized_start = 25135 + _globals['_EXPRESSION_MASKEXPRESSION']._serialized_end = 26525 + _globals['_EXPRESSION_MASKEXPRESSION_SELECT']._serialized_start = 25283 + _globals['_EXPRESSION_MASKEXPRESSION_SELECT']._serialized_end = 25503 + _globals['_EXPRESSION_MASKEXPRESSION_STRUCTSELECT']._serialized_start = 25505 + _globals['_EXPRESSION_MASKEXPRESSION_STRUCTSELECT']._serialized_end = 25599 + _globals['_EXPRESSION_MASKEXPRESSION_STRUCTITEM']._serialized_start = 25601 + _globals['_EXPRESSION_MASKEXPRESSION_STRUCTITEM']._serialized_end = 25698 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT']._serialized_start = 25701 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT']._serialized_end = 26171 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM']._serialized_start = 25869 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM']._serialized_end = 26171 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT']._serialized_start = 26075 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTELEMENT']._serialized_end = 26110 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE']._serialized_start = 26112 + _globals['_EXPRESSION_MASKEXPRESSION_LISTSELECT_LISTSELECTITEM_LISTSLICE']._serialized_end = 26163 + _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT']._serialized_start = 26174 + _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT']._serialized_end = 26525 + _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY']._serialized_start = 26416 + _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEY']._serialized_end = 26449 + _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION']._serialized_start = 26451 + _globals['_EXPRESSION_MASKEXPRESSION_MAPSELECT_MAPKEYEXPRESSION']._serialized_end = 26515 + _globals['_EXPRESSION_FIELDREFERENCE']._serialized_start = 26528 + _globals['_EXPRESSION_FIELDREFERENCE']._serialized_end = 27033 + _globals['_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE']._serialized_start = 26940 + _globals['_EXPRESSION_FIELDREFERENCE_ROOTREFERENCE']._serialized_end = 26955 + _globals['_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE']._serialized_start = 26957 + _globals['_EXPRESSION_FIELDREFERENCE_OUTERREFERENCE']._serialized_end = 27002 + _globals['_EXPRESSION_SUBQUERY']._serialized_start = 27036 + _globals['_EXPRESSION_SUBQUERY']._serialized_end = 28285 + _globals['_EXPRESSION_SUBQUERY_SCALAR']._serialized_start = 27349 + _globals['_EXPRESSION_SUBQUERY_SCALAR']._serialized_end = 27391 + _globals['_EXPRESSION_SUBQUERY_INPREDICATE']._serialized_start = 27393 + _globals['_EXPRESSION_SUBQUERY_INPREDICATE']._serialized_end = 27491 + _globals['_EXPRESSION_SUBQUERY_SETPREDICATE']._serialized_start = 27494 + _globals['_EXPRESSION_SUBQUERY_SETPREDICATE']._serialized_end = 27727 + _globals['_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP']._serialized_start = 27634 + _globals['_EXPRESSION_SUBQUERY_SETPREDICATE_PREDICATEOP']._serialized_end = 27727 + _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON']._serialized_start = 27730 + _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON']._serialized_end = 28268 + _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP']._serialized_start = 28002 + _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_COMPARISONOP']._serialized_end = 28179 + _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP']._serialized_start = 28181 + _globals['_EXPRESSION_SUBQUERY_SETCOMPARISON_REDUCTIONOP']._serialized_end = 28268 + _globals['_DYNAMICPARAMETER']._serialized_start = 28299 + _globals['_DYNAMICPARAMETER']._serialized_end = 28399 + _globals['_SORTFIELD']._serialized_start = 28402 + _globals['_SORTFIELD']._serialized_end = 28823 + _globals['_SORTFIELD_SORTDIRECTION']._serialized_start = 28589 + _globals['_SORTFIELD_SORTDIRECTION']._serialized_end = 28810 + _globals['_AGGREGATEFUNCTION']._serialized_start = 28826 + _globals['_AGGREGATEFUNCTION']._serialized_end = 29387 + _globals['_AGGREGATEFUNCTION_AGGREGATIONINVOCATION']._serialized_start = 29255 + _globals['_AGGREGATEFUNCTION_AGGREGATIONINVOCATION']._serialized_end = 29387 + _globals['_REFERENCEREL']._serialized_start = 29389 + _globals['_REFERENCEREL']._serialized_end = 29444 \ No newline at end of file diff --git a/src/substrait/gen/proto/algebra_pb2.pyi b/src/substrait/gen/proto/algebra_pb2.pyi index c655c8b..04b9be3 100644 --- a/src/substrait/gen/proto/algebra_pb2.pyi +++ b/src/substrait/gen/proto/algebra_pb2.pyi @@ -2,7 +2,6 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" - import builtins import collections.abc import google.protobuf.any_pb2 @@ -10,239 +9,191 @@ import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.internal.enum_type_wrapper import google.protobuf.message -import proto.extensions.extensions_pb2 -import proto.type_pb2 +from .. import proto import sys import typing - if sys.version_info >= (3, 10): import typing as typing_extensions else: import typing_extensions - DESCRIPTOR: google.protobuf.descriptor.FileDescriptor class _AggregationPhase: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _AggregationPhaseEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[_AggregationPhase.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - AGGREGATION_PHASE_UNSPECIFIED: _AggregationPhase.ValueType # 0 - """Implies `INTERMEDIATE_TO_RESULT`.""" - AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE: _AggregationPhase.ValueType # 1 - """Specifies that the function should be run only up to the point of - generating an intermediate value, to be further aggregated later using - INTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT. - """ - AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE: _AggregationPhase.ValueType # 2 - """Specifies that the inputs of the aggregate or window function are the - intermediate values of the function, and that the output should also be - an intermediate value, to be further aggregated later using - INTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT. - """ - AGGREGATION_PHASE_INITIAL_TO_RESULT: _AggregationPhase.ValueType # 3 - """A complete invocation: the function should aggregate the given set of - inputs to yield a single return value. This style must be used for - aggregate or window functions that are not decomposable. - """ - AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT: _AggregationPhase.ValueType # 4 - """Specifies that the inputs of the aggregate or window function are the - intermediate values of the function, generated previously using - INITIAL_TO_INTERMEDIATE and possibly INTERMEDIATE_TO_INTERMEDIATE calls. - This call should combine the intermediate values to yield the final - return value. - """ + AGGREGATION_PHASE_UNSPECIFIED: _AggregationPhase.ValueType + 'Implies `INTERMEDIATE_TO_RESULT`.' + AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE: _AggregationPhase.ValueType + 'Specifies that the function should be run only up to the point of\n generating an intermediate value, to be further aggregated later using\n INTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT.\n ' + AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE: _AggregationPhase.ValueType + 'Specifies that the inputs of the aggregate or window function are the\n intermediate values of the function, and that the output should also be\n an intermediate value, to be further aggregated later using\n INTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT.\n ' + AGGREGATION_PHASE_INITIAL_TO_RESULT: _AggregationPhase.ValueType + 'A complete invocation: the function should aggregate the given set of\n inputs to yield a single return value. This style must be used for\n aggregate or window functions that are not decomposable.\n ' + AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT: _AggregationPhase.ValueType + 'Specifies that the inputs of the aggregate or window function are the\n intermediate values of the function, generated previously using\n INITIAL_TO_INTERMEDIATE and possibly INTERMEDIATE_TO_INTERMEDIATE calls.\n This call should combine the intermediate values to yield the final\n return value.\n ' class AggregationPhase(_AggregationPhase, metaclass=_AggregationPhaseEnumTypeWrapper): """Describes which part of an aggregation or window function to perform within the context of distributed algorithms. """ - -AGGREGATION_PHASE_UNSPECIFIED: AggregationPhase.ValueType # 0 -"""Implies `INTERMEDIATE_TO_RESULT`.""" -AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE: AggregationPhase.ValueType # 1 -"""Specifies that the function should be run only up to the point of -generating an intermediate value, to be further aggregated later using -INTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT. -""" -AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE: AggregationPhase.ValueType # 2 -"""Specifies that the inputs of the aggregate or window function are the -intermediate values of the function, and that the output should also be -an intermediate value, to be further aggregated later using -INTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT. -""" -AGGREGATION_PHASE_INITIAL_TO_RESULT: AggregationPhase.ValueType # 3 -"""A complete invocation: the function should aggregate the given set of -inputs to yield a single return value. This style must be used for -aggregate or window functions that are not decomposable. -""" -AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT: AggregationPhase.ValueType # 4 -"""Specifies that the inputs of the aggregate or window function are the -intermediate values of the function, generated previously using -INITIAL_TO_INTERMEDIATE and possibly INTERMEDIATE_TO_INTERMEDIATE calls. -This call should combine the intermediate values to yield the final -return value. -""" +AGGREGATION_PHASE_UNSPECIFIED: AggregationPhase.ValueType +'Implies `INTERMEDIATE_TO_RESULT`.' +AGGREGATION_PHASE_INITIAL_TO_INTERMEDIATE: AggregationPhase.ValueType +'Specifies that the function should be run only up to the point of\ngenerating an intermediate value, to be further aggregated later using\nINTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT.\n' +AGGREGATION_PHASE_INTERMEDIATE_TO_INTERMEDIATE: AggregationPhase.ValueType +'Specifies that the inputs of the aggregate or window function are the\nintermediate values of the function, and that the output should also be\nan intermediate value, to be further aggregated later using\nINTERMEDIATE_TO_INTERMEDIATE or INTERMEDIATE_TO_RESULT.\n' +AGGREGATION_PHASE_INITIAL_TO_RESULT: AggregationPhase.ValueType +'A complete invocation: the function should aggregate the given set of\ninputs to yield a single return value. This style must be used for\naggregate or window functions that are not decomposable.\n' +AGGREGATION_PHASE_INTERMEDIATE_TO_RESULT: AggregationPhase.ValueType +'Specifies that the inputs of the aggregate or window function are the\nintermediate values of the function, generated previously using\nINITIAL_TO_INTERMEDIATE and possibly INTERMEDIATE_TO_INTERMEDIATE calls.\nThis call should combine the intermediate values to yield the final\nreturn value.\n' global___AggregationPhase = AggregationPhase @typing.final class RelCommon(google.protobuf.message.Message): """Common fields for all relational operators""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class Direct(google.protobuf.message.Message): """Direct indicates no change on presence and ordering of fields in the output""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__( - self, - ) -> None: ... + def __init__(self) -> None: + ... @typing.final class Emit(google.protobuf.message.Message): """Remap which fields are output and in which order""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - OUTPUT_MAPPING_FIELD_NUMBER: builtins.int + @property - def output_mapping(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: ... - def __init__( - self, - *, - output_mapping: collections.abc.Iterable[builtins.int] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["output_mapping", b"output_mapping"]) -> None: ... + def output_mapping(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: + ... + + def __init__(self, *, output_mapping: collections.abc.Iterable[builtins.int] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['output_mapping', b'output_mapping']) -> None: + ... @typing.final class Hint(google.protobuf.message.Message): """Changes to the operation that can influence efficiency/performance but should not impact correctness. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor class _ComputationType: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _ComputationTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[RelCommon.Hint._ComputationType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - COMPUTATION_TYPE_UNSPECIFIED: RelCommon.Hint._ComputationType.ValueType # 0 - COMPUTATION_TYPE_HASHTABLE: RelCommon.Hint._ComputationType.ValueType # 1 - COMPUTATION_TYPE_BLOOM_FILTER: RelCommon.Hint._ComputationType.ValueType # 2 - COMPUTATION_TYPE_UNKNOWN: RelCommon.Hint._ComputationType.ValueType # 9999 - - class ComputationType(_ComputationType, metaclass=_ComputationTypeEnumTypeWrapper): ... - COMPUTATION_TYPE_UNSPECIFIED: RelCommon.Hint.ComputationType.ValueType # 0 - COMPUTATION_TYPE_HASHTABLE: RelCommon.Hint.ComputationType.ValueType # 1 - COMPUTATION_TYPE_BLOOM_FILTER: RelCommon.Hint.ComputationType.ValueType # 2 - COMPUTATION_TYPE_UNKNOWN: RelCommon.Hint.ComputationType.ValueType # 9999 + COMPUTATION_TYPE_UNSPECIFIED: RelCommon.Hint._ComputationType.ValueType + COMPUTATION_TYPE_HASHTABLE: RelCommon.Hint._ComputationType.ValueType + COMPUTATION_TYPE_BLOOM_FILTER: RelCommon.Hint._ComputationType.ValueType + COMPUTATION_TYPE_UNKNOWN: RelCommon.Hint._ComputationType.ValueType + + class ComputationType(_ComputationType, metaclass=_ComputationTypeEnumTypeWrapper): + ... + COMPUTATION_TYPE_UNSPECIFIED: RelCommon.Hint.ComputationType.ValueType + COMPUTATION_TYPE_HASHTABLE: RelCommon.Hint.ComputationType.ValueType + COMPUTATION_TYPE_BLOOM_FILTER: RelCommon.Hint.ComputationType.ValueType + COMPUTATION_TYPE_UNKNOWN: RelCommon.Hint.ComputationType.ValueType @typing.final class Stats(google.protobuf.message.Message): """The statistics related to a hint (physical properties of records)""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ROW_COUNT_FIELD_NUMBER: builtins.int RECORD_SIZE_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int row_count: builtins.float record_size: builtins.float + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - row_count: builtins.float = ..., - record_size: builtins.float = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "record_size", b"record_size", "row_count", b"row_count"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, row_count: builtins.float=..., record_size: builtins.float=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'record_size', b'record_size', 'row_count', b'row_count']) -> None: + ... @typing.final class RuntimeConstraint(google.protobuf.message.Message): """TODO: nodes, cpu threads/%, memory, iops, etc.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> None: + ... @typing.final class SavedComputation(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - COMPUTATION_ID_FIELD_NUMBER: builtins.int TYPE_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int computation_id: builtins.int - """The value corresponds to a plan unique number for that datastructure. Any particular - computation may be saved only once but it may be loaded multiple times. - """ + 'The value corresponds to a plan unique number for that datastructure. Any particular\n computation may be saved only once but it may be loaded multiple times.\n ' type: global___RelCommon.Hint.ComputationType.ValueType - """The type of this computation. While a plan may use COMPUTATION_TYPE_UNKNOWN for all - of its types it is recommended to use a more specific type so that the optimization - is more portable. The consumer should be able to decide if an unknown type here - matches the same unknown type at a different plan and ignore the optimization if they - are mismatched. - """ + 'The type of this computation. While a plan may use COMPUTATION_TYPE_UNKNOWN for all\n of its types it is recommended to use a more specific type so that the optimization\n is more portable. The consumer should be able to decide if an unknown type here\n matches the same unknown type at a different plan and ignore the optimization if they\n are mismatched.\n ' + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - computation_id: builtins.int = ..., - type: global___RelCommon.Hint.ComputationType.ValueType = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "computation_id", b"computation_id", "type", b"type"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, computation_id: builtins.int=..., type: global___RelCommon.Hint.ComputationType.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'computation_id', b'computation_id', 'type', b'type']) -> None: + ... @typing.final class LoadedComputation(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - COMPUTATION_ID_REFERENCE_FIELD_NUMBER: builtins.int TYPE_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int computation_id_reference: builtins.int - """The value corresponds to a plan unique number for that datastructure. Any particular - computation may be saved only once but it may be loaded multiple times. - """ + 'The value corresponds to a plan unique number for that datastructure. Any particular\n computation may be saved only once but it may be loaded multiple times.\n ' type: global___RelCommon.Hint.ComputationType.ValueType - """The type of this computation. While a plan may use COMPUTATION_TYPE_UNKNOWN for all - of its types it is recommended to use a more specific type so that the optimization - is more portable. The consumer should be able to decide if an unknown type here - matches the same unknown type at a different plan and ignore the optimization if they - are mismatched. - """ + 'The type of this computation. While a plan may use COMPUTATION_TYPE_UNKNOWN for all\n of its types it is recommended to use a more specific type so that the optimization\n is more portable. The consumer should be able to decide if an unknown type here\n matches the same unknown type at a different plan and ignore the optimization if they\n are mismatched.\n ' + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - computation_id_reference: builtins.int = ..., - type: global___RelCommon.Hint.ComputationType.ValueType = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "computation_id_reference", b"computation_id_reference", "type", b"type"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + def __init__(self, *, computation_id_reference: builtins.int=..., type: global___RelCommon.Hint.ComputationType.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'computation_id_reference', b'computation_id_reference', 'type', b'type']) -> None: + ... STATS_FIELD_NUMBER: builtins.int CONSTRAINT_FIELD_NUMBER: builtins.int ALIAS_FIELD_NUMBER: builtins.int @@ -251,13 +202,16 @@ class RelCommon(google.protobuf.message.Message): SAVED_COMPUTATIONS_FIELD_NUMBER: builtins.int LOADED_COMPUTATIONS_FIELD_NUMBER: builtins.int alias: builtins.str - """Name (alias) for this relation. Can be used for e.g. qualifying the relation (see e.g. - Spark's SubqueryAlias), or debugging. - """ + "Name (alias) for this relation. Can be used for e.g. qualifying the relation (see e.g.\n Spark's SubqueryAlias), or debugging.\n " + @property - def stats(self) -> global___RelCommon.Hint.Stats: ... + def stats(self) -> global___RelCommon.Hint.Stats: + ... + @property - def constraint(self) -> global___RelCommon.Hint.RuntimeConstraint: ... + def constraint(self) -> global___RelCommon.Hint.RuntimeConstraint: + ... + @property def output_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """Assigns alternative output field names for any relation. Equivalent to the names field @@ -265,7 +219,9 @@ class RelCommon(google.protobuf.message.Message): """ @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + @property def saved_computations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RelCommon.Hint.SavedComputation]: """Save or load a system-specific computation for use in optimizing a remote operation. @@ -274,25 +230,22 @@ class RelCommon(google.protobuf.message.Message): """ @property - def loaded_computations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RelCommon.Hint.LoadedComputation]: ... - def __init__( - self, - *, - stats: global___RelCommon.Hint.Stats | None = ..., - constraint: global___RelCommon.Hint.RuntimeConstraint | None = ..., - alias: builtins.str = ..., - output_names: collections.abc.Iterable[builtins.str] | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - saved_computations: collections.abc.Iterable[global___RelCommon.Hint.SavedComputation] | None = ..., - loaded_computations: collections.abc.Iterable[global___RelCommon.Hint.LoadedComputation] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "constraint", b"constraint", "stats", b"stats"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "alias", b"alias", "constraint", b"constraint", "loaded_computations", b"loaded_computations", "output_names", b"output_names", "saved_computations", b"saved_computations", "stats", b"stats"]) -> None: ... + def loaded_computations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___RelCommon.Hint.LoadedComputation]: + ... + + def __init__(self, *, stats: global___RelCommon.Hint.Stats | None=..., constraint: global___RelCommon.Hint.RuntimeConstraint | None=..., alias: builtins.str=..., output_names: collections.abc.Iterable[builtins.str] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=..., saved_computations: collections.abc.Iterable[global___RelCommon.Hint.SavedComputation] | None=..., loaded_computations: collections.abc.Iterable[global___RelCommon.Hint.LoadedComputation] | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'constraint', b'constraint', 'stats', b'stats']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'alias', b'alias', 'constraint', b'constraint', 'loaded_computations', b'loaded_computations', 'output_names', b'output_names', 'saved_computations', b'saved_computations', 'stats', b'stats']) -> None: + ... DIRECT_FIELD_NUMBER: builtins.int EMIT_FIELD_NUMBER: builtins.int HINT_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + @property def direct(self) -> global___RelCommon.Direct: """The underlying relation is output as is (no reordering or projection of columns)""" @@ -302,27 +255,29 @@ class RelCommon(google.protobuf.message.Message): """Allows to control for order and inclusion of fields""" @property - def hint(self) -> global___RelCommon.Hint: ... + def hint(self) -> global___RelCommon.Hint: + ... + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - direct: global___RelCommon.Direct | None = ..., - emit: global___RelCommon.Emit | None = ..., - hint: global___RelCommon.Hint | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "direct", b"direct", "emit", b"emit", "emit_kind", b"emit_kind", "hint", b"hint"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "direct", b"direct", "emit", b"emit", "emit_kind", b"emit_kind", "hint", b"hint"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["emit_kind", b"emit_kind"]) -> typing.Literal["direct", "emit"] | None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, direct: global___RelCommon.Direct | None=..., emit: global___RelCommon.Emit | None=..., hint: global___RelCommon.Hint | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'direct', b'direct', 'emit', b'emit', 'emit_kind', b'emit_kind', 'hint', b'hint']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'direct', b'direct', 'emit', b'emit', 'emit_kind', b'emit_kind', 'hint', b'hint']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['emit_kind', b'emit_kind']) -> typing.Literal['direct', 'emit'] | None: + ... global___RelCommon = RelCommon @typing.final class ReadRel(google.protobuf.message.Message): """The scan operator of base data (physical or virtual), including filtering and projection.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final @@ -330,113 +285,120 @@ class ReadRel(google.protobuf.message.Message): """A base table. The list of string is used to represent namespacing (e.g., mydb.mytable). This assumes shared catalog between systems exchanging a message. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAMES_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + @property - def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + ... + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - names: collections.abc.Iterable[builtins.str] | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "names", b"names"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, names: collections.abc.Iterable[builtins.str] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'names', b'names']) -> None: + ... @typing.final class IcebergTable(google.protobuf.message.Message): """Read an Iceberg Table""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class MetadataFileRead(google.protobuf.message.Message): """Read an Iceberg table using a metadata file. Implicit assumption: required credentials are already known by plan consumer.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - METADATA_URI_FIELD_NUMBER: builtins.int SNAPSHOT_ID_FIELD_NUMBER: builtins.int SNAPSHOT_TIMESTAMP_FIELD_NUMBER: builtins.int metadata_uri: builtins.str - """the specific uri of a metadata file (e.g. s3://mybucket/mytable/-.metadata.json)""" + 'the specific uri of a metadata file (e.g. s3://mybucket/mytable/-.metadata.json)' snapshot_id: builtins.str - """the snapshot id to read.""" + 'the snapshot id to read.' snapshot_timestamp: builtins.int - """the timestamp that should be used to select the snapshot (Time passed in microseconds since 1970-01-01 00:00:00.000000 in UTC)""" - def __init__( - self, - *, - metadata_uri: builtins.str = ..., - snapshot_id: builtins.str = ..., - snapshot_timestamp: builtins.int = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["snapshot", b"snapshot", "snapshot_id", b"snapshot_id", "snapshot_timestamp", b"snapshot_timestamp"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["metadata_uri", b"metadata_uri", "snapshot", b"snapshot", "snapshot_id", b"snapshot_id", "snapshot_timestamp", b"snapshot_timestamp"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["snapshot", b"snapshot"]) -> typing.Literal["snapshot_id", "snapshot_timestamp"] | None: ... + 'the timestamp that should be used to select the snapshot (Time passed in microseconds since 1970-01-01 00:00:00.000000 in UTC)' + def __init__(self, *, metadata_uri: builtins.str=..., snapshot_id: builtins.str=..., snapshot_timestamp: builtins.int=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['snapshot', b'snapshot', 'snapshot_id', b'snapshot_id', 'snapshot_timestamp', b'snapshot_timestamp']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['metadata_uri', b'metadata_uri', 'snapshot', b'snapshot', 'snapshot_id', b'snapshot_id', 'snapshot_timestamp', b'snapshot_timestamp']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['snapshot', b'snapshot']) -> typing.Literal['snapshot_id', 'snapshot_timestamp'] | None: + ... DIRECT_FIELD_NUMBER: builtins.int + @property def direct(self) -> global___ReadRel.IcebergTable.MetadataFileRead: """future: add catalog table types (e.g. rest api, latest metadata in path, etc)""" - def __init__( - self, - *, - direct: global___ReadRel.IcebergTable.MetadataFileRead | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["direct", b"direct", "table_type", b"table_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["direct", b"direct", "table_type", b"table_type"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["table_type", b"table_type"]) -> typing.Literal["direct"] | None: ... + def __init__(self, *, direct: global___ReadRel.IcebergTable.MetadataFileRead | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['direct', b'direct', 'table_type', b'table_type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['direct', b'direct', 'table_type', b'table_type']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['table_type', b'table_type']) -> typing.Literal['direct'] | None: + ... @typing.final class VirtualTable(google.protobuf.message.Message): """A table composed of expressions.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUES_FIELD_NUMBER: builtins.int EXPRESSIONS_FIELD_NUMBER: builtins.int + @property - def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Literal.Struct]: ... + def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Literal.Struct]: + ... + @property - def expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Nested.Struct]: ... - def __init__( - self, - *, - values: collections.abc.Iterable[global___Expression.Literal.Struct] | None = ..., - expressions: collections.abc.Iterable[global___Expression.Nested.Struct] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["expressions", b"expressions", "values", b"values"]) -> None: ... + def expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Nested.Struct]: + ... + + def __init__(self, *, values: collections.abc.Iterable[global___Expression.Literal.Struct] | None=..., expressions: collections.abc.Iterable[global___Expression.Nested.Struct] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['expressions', b'expressions', 'values', b'values']) -> None: + ... @typing.final class ExtensionTable(google.protobuf.message.Message): """A stub type that can be used to extend/introduce new table types outside the specification. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DETAIL_FIELD_NUMBER: builtins.int + @property - def detail(self) -> google.protobuf.any_pb2.Any: ... - def __init__( - self, - *, - detail: google.protobuf.any_pb2.Any | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["detail", b"detail"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["detail", b"detail"]) -> None: ... + def detail(self) -> google.protobuf.any_pb2.Any: + ... + + def __init__(self, *, detail: google.protobuf.any_pb2.Any | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['detail', b'detail']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['detail', b'detail']) -> None: + ... @typing.final class LocalFiles(google.protobuf.message.Message): """Represents a list of files in input of a scan operation""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final @@ -447,49 +409,42 @@ class ReadRel(google.protobuf.message.Message): include the chunk in (e.g. include it in the slice that contains the midpoint of the chunk) """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class ParquetReadOptions(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__( - self, - ) -> None: ... + def __init__(self) -> None: + ... @typing.final class ArrowReadOptions(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__( - self, - ) -> None: ... + def __init__(self) -> None: + ... @typing.final class OrcReadOptions(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__( - self, - ) -> None: ... + def __init__(self) -> None: + ... @typing.final class DwrfReadOptions(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__( - self, - ) -> None: ... + def __init__(self) -> None: + ... @typing.final class DelimiterSeparatedTextReadOptions(google.protobuf.message.Message): """Delimiter separated files may be compressed. The reader should autodetect this and decompress as needed. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FIELD_DELIMITER_FIELD_NUMBER: builtins.int MAX_LINE_SIZE_FIELD_NUMBER: builtins.int QUOTE_FIELD_NUMBER: builtins.int @@ -497,45 +452,29 @@ class ReadRel(google.protobuf.message.Message): ESCAPE_FIELD_NUMBER: builtins.int VALUE_TREATED_AS_NULL_FIELD_NUMBER: builtins.int field_delimiter: builtins.str - """The character(s) used to separate fields. Common values are comma, - tab, and pipe. Multiple characters are allowed. - """ + 'The character(s) used to separate fields. Common values are comma,\n tab, and pipe. Multiple characters are allowed.\n ' max_line_size: builtins.int - """The maximum number of bytes to read from a single line. If a line - exceeds this limit the resulting behavior is undefined. - """ + 'The maximum number of bytes to read from a single line. If a line\n exceeds this limit the resulting behavior is undefined.\n ' quote: builtins.str - """The character(s) used to quote strings. Common values are single - and double quotation marks. - """ + 'The character(s) used to quote strings. Common values are single\n and double quotation marks.\n ' header_lines_to_skip: builtins.int - """The number of lines to skip at the beginning of the file.""" + 'The number of lines to skip at the beginning of the file.' escape: builtins.str - """The character used to escape characters in strings. Backslash is - a common value. Note that a double quote mark can also be used as an - escape character but the external quotes should be removed first. - """ + 'The character used to escape characters in strings. Backslash is\n a common value. Note that a double quote mark can also be used as an\n escape character but the external quotes should be removed first.\n ' value_treated_as_null: builtins.str - """If this value is encountered (including empty string), the resulting - value is null instead. Leave unset to disable. If this value is - provided, the effective schema of this file is comprised entirely of - nullable strings. If not provided, the effective schema is instead - made up of non-nullable strings. - """ - def __init__( - self, - *, - field_delimiter: builtins.str = ..., - max_line_size: builtins.int = ..., - quote: builtins.str = ..., - header_lines_to_skip: builtins.int = ..., - escape: builtins.str = ..., - value_treated_as_null: builtins.str | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["_value_treated_as_null", b"_value_treated_as_null", "value_treated_as_null", b"value_treated_as_null"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_value_treated_as_null", b"_value_treated_as_null", "escape", b"escape", "field_delimiter", b"field_delimiter", "header_lines_to_skip", b"header_lines_to_skip", "max_line_size", b"max_line_size", "quote", b"quote", "value_treated_as_null", b"value_treated_as_null"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["_value_treated_as_null", b"_value_treated_as_null"]) -> typing.Literal["value_treated_as_null"] | None: ... + 'If this value is encountered (including empty string), the resulting\n value is null instead. Leave unset to disable. If this value is\n provided, the effective schema of this file is comprised entirely of\n nullable strings. If not provided, the effective schema is instead\n made up of non-nullable strings.\n ' + + def __init__(self, *, field_delimiter: builtins.str=..., max_line_size: builtins.int=..., quote: builtins.str=..., header_lines_to_skip: builtins.int=..., escape: builtins.str=..., value_treated_as_null: builtins.str | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['_value_treated_as_null', b'_value_treated_as_null', 'value_treated_as_null', b'value_treated_as_null']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['_value_treated_as_null', b'_value_treated_as_null', 'escape', b'escape', 'field_delimiter', b'field_delimiter', 'header_lines_to_skip', b'header_lines_to_skip', 'max_line_size', b'max_line_size', 'quote', b'quote', 'value_treated_as_null', b'value_treated_as_null']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['_value_treated_as_null', b'_value_treated_as_null']) -> typing.Literal['value_treated_as_null'] | None: + ... URI_PATH_FIELD_NUMBER: builtins.int URI_PATH_GLOB_FIELD_NUMBER: builtins.int URI_FILE_FIELD_NUMBER: builtins.int @@ -550,74 +489,79 @@ class ReadRel(google.protobuf.message.Message): DWRF_FIELD_NUMBER: builtins.int TEXT_FIELD_NUMBER: builtins.int uri_path: builtins.str - """A URI that can refer to either a single folder or a single file""" + 'A URI that can refer to either a single folder or a single file' uri_path_glob: builtins.str - """A URI where the path portion is a glob expression that can - identify zero or more paths. - Consumers should support the POSIX syntax. The recursive - globstar (**) may not be supported. - """ + 'A URI where the path portion is a glob expression that can\n identify zero or more paths.\n Consumers should support the POSIX syntax. The recursive\n globstar (**) may not be supported.\n ' uri_file: builtins.str - """A URI that refers to a single file""" + 'A URI that refers to a single file' uri_folder: builtins.str - """A URI that refers to a single folder""" + 'A URI that refers to a single folder' partition_index: builtins.int - """The index of the partition this item belongs to""" + 'The index of the partition this item belongs to' start: builtins.int - """The start position in byte to read from this item""" + 'The start position in byte to read from this item' length: builtins.int - """The length in byte to read from this item""" + 'The length in byte to read from this item' + @property - def parquet(self) -> global___ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions: ... + def parquet(self) -> global___ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions: + ... + @property - def arrow(self) -> global___ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions: ... + def arrow(self) -> global___ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions: + ... + @property - def orc(self) -> global___ReadRel.LocalFiles.FileOrFiles.OrcReadOptions: ... + def orc(self) -> global___ReadRel.LocalFiles.FileOrFiles.OrcReadOptions: + ... + @property - def extension(self) -> google.protobuf.any_pb2.Any: ... + def extension(self) -> google.protobuf.any_pb2.Any: + ... + @property - def dwrf(self) -> global___ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions: ... + def dwrf(self) -> global___ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions: + ... + @property - def text(self) -> global___ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptions: ... - def __init__( - self, - *, - uri_path: builtins.str = ..., - uri_path_glob: builtins.str = ..., - uri_file: builtins.str = ..., - uri_folder: builtins.str = ..., - partition_index: builtins.int = ..., - start: builtins.int = ..., - length: builtins.int = ..., - parquet: global___ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions | None = ..., - arrow: global___ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions | None = ..., - orc: global___ReadRel.LocalFiles.FileOrFiles.OrcReadOptions | None = ..., - extension: google.protobuf.any_pb2.Any | None = ..., - dwrf: global___ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions | None = ..., - text: global___ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptions | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["arrow", b"arrow", "dwrf", b"dwrf", "extension", b"extension", "file_format", b"file_format", "orc", b"orc", "parquet", b"parquet", "path_type", b"path_type", "text", b"text", "uri_file", b"uri_file", "uri_folder", b"uri_folder", "uri_path", b"uri_path", "uri_path_glob", b"uri_path_glob"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["arrow", b"arrow", "dwrf", b"dwrf", "extension", b"extension", "file_format", b"file_format", "length", b"length", "orc", b"orc", "parquet", b"parquet", "partition_index", b"partition_index", "path_type", b"path_type", "start", b"start", "text", b"text", "uri_file", b"uri_file", "uri_folder", b"uri_folder", "uri_path", b"uri_path", "uri_path_glob", b"uri_path_glob"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["file_format", b"file_format"]) -> typing.Literal["parquet", "arrow", "orc", "extension", "dwrf", "text"] | None: ... + def text(self) -> global___ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptions: + ... + + def __init__(self, *, uri_path: builtins.str=..., uri_path_glob: builtins.str=..., uri_file: builtins.str=..., uri_folder: builtins.str=..., partition_index: builtins.int=..., start: builtins.int=..., length: builtins.int=..., parquet: global___ReadRel.LocalFiles.FileOrFiles.ParquetReadOptions | None=..., arrow: global___ReadRel.LocalFiles.FileOrFiles.ArrowReadOptions | None=..., orc: global___ReadRel.LocalFiles.FileOrFiles.OrcReadOptions | None=..., extension: google.protobuf.any_pb2.Any | None=..., dwrf: global___ReadRel.LocalFiles.FileOrFiles.DwrfReadOptions | None=..., text: global___ReadRel.LocalFiles.FileOrFiles.DelimiterSeparatedTextReadOptions | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['arrow', b'arrow', 'dwrf', b'dwrf', 'extension', b'extension', 'file_format', b'file_format', 'orc', b'orc', 'parquet', b'parquet', 'path_type', b'path_type', 'text', b'text', 'uri_file', b'uri_file', 'uri_folder', b'uri_folder', 'uri_path', b'uri_path', 'uri_path_glob', b'uri_path_glob']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['arrow', b'arrow', 'dwrf', b'dwrf', 'extension', b'extension', 'file_format', b'file_format', 'length', b'length', 'orc', b'orc', 'parquet', b'parquet', 'partition_index', b'partition_index', 'path_type', b'path_type', 'start', b'start', 'text', b'text', 'uri_file', b'uri_file', 'uri_folder', b'uri_folder', 'uri_path', b'uri_path', 'uri_path_glob', b'uri_path_glob']) -> None: + ... + @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["path_type", b"path_type"]) -> typing.Literal["uri_path", "uri_path_glob", "uri_file", "uri_folder"] | None: ... + def WhichOneof(self, oneof_group: typing.Literal['file_format', b'file_format']) -> typing.Literal['parquet', 'arrow', 'orc', 'extension', 'dwrf', 'text'] | None: + ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal['path_type', b'path_type']) -> typing.Literal['uri_path', 'uri_path_glob', 'uri_file', 'uri_folder'] | None: + ... ITEMS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + @property - def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ReadRel.LocalFiles.FileOrFiles]: ... + def items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ReadRel.LocalFiles.FileOrFiles]: + ... + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - items: collections.abc.Iterable[global___ReadRel.LocalFiles.FileOrFiles] | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "items", b"items"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, items: collections.abc.Iterable[global___ReadRel.LocalFiles.FileOrFiles] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'items', b'items']) -> None: + ... COMMON_FIELD_NUMBER: builtins.int BASE_SCHEMA_FIELD_NUMBER: builtins.int FILTER_FIELD_NUMBER: builtins.int @@ -629,121 +573,139 @@ class ReadRel(google.protobuf.message.Message): NAMED_TABLE_FIELD_NUMBER: builtins.int EXTENSION_TABLE_FIELD_NUMBER: builtins.int ICEBERG_TABLE_FIELD_NUMBER: builtins.int + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def base_schema(self) -> proto.type_pb2.NamedStruct: ... + def base_schema(self) -> proto.type_pb2.NamedStruct: + ... + @property - def filter(self) -> global___Expression: ... + def filter(self) -> global___Expression: + ... + @property - def best_effort_filter(self) -> global___Expression: ... + def best_effort_filter(self) -> global___Expression: + ... + @property - def projection(self) -> global___Expression.MaskExpression: ... + def projection(self) -> global___Expression.MaskExpression: + ... + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + @property - def virtual_table(self) -> global___ReadRel.VirtualTable: ... + def virtual_table(self) -> global___ReadRel.VirtualTable: + ... + @property - def local_files(self) -> global___ReadRel.LocalFiles: ... + def local_files(self) -> global___ReadRel.LocalFiles: + ... + @property - def named_table(self) -> global___ReadRel.NamedTable: ... + def named_table(self) -> global___ReadRel.NamedTable: + ... + @property - def extension_table(self) -> global___ReadRel.ExtensionTable: ... + def extension_table(self) -> global___ReadRel.ExtensionTable: + ... + @property - def iceberg_table(self) -> global___ReadRel.IcebergTable: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - base_schema: proto.type_pb2.NamedStruct | None = ..., - filter: global___Expression | None = ..., - best_effort_filter: global___Expression | None = ..., - projection: global___Expression.MaskExpression | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - virtual_table: global___ReadRel.VirtualTable | None = ..., - local_files: global___ReadRel.LocalFiles | None = ..., - named_table: global___ReadRel.NamedTable | None = ..., - extension_table: global___ReadRel.ExtensionTable | None = ..., - iceberg_table: global___ReadRel.IcebergTable | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "base_schema", b"base_schema", "best_effort_filter", b"best_effort_filter", "common", b"common", "extension_table", b"extension_table", "filter", b"filter", "iceberg_table", b"iceberg_table", "local_files", b"local_files", "named_table", b"named_table", "projection", b"projection", "read_type", b"read_type", "virtual_table", b"virtual_table"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "base_schema", b"base_schema", "best_effort_filter", b"best_effort_filter", "common", b"common", "extension_table", b"extension_table", "filter", b"filter", "iceberg_table", b"iceberg_table", "local_files", b"local_files", "named_table", b"named_table", "projection", b"projection", "read_type", b"read_type", "virtual_table", b"virtual_table"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["read_type", b"read_type"]) -> typing.Literal["virtual_table", "local_files", "named_table", "extension_table", "iceberg_table"] | None: ... + def iceberg_table(self) -> global___ReadRel.IcebergTable: + ... + + def __init__(self, *, common: global___RelCommon | None=..., base_schema: proto.type_pb2.NamedStruct | None=..., filter: global___Expression | None=..., best_effort_filter: global___Expression | None=..., projection: global___Expression.MaskExpression | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=..., virtual_table: global___ReadRel.VirtualTable | None=..., local_files: global___ReadRel.LocalFiles | None=..., named_table: global___ReadRel.NamedTable | None=..., extension_table: global___ReadRel.ExtensionTable | None=..., iceberg_table: global___ReadRel.IcebergTable | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'base_schema', b'base_schema', 'best_effort_filter', b'best_effort_filter', 'common', b'common', 'extension_table', b'extension_table', 'filter', b'filter', 'iceberg_table', b'iceberg_table', 'local_files', b'local_files', 'named_table', b'named_table', 'projection', b'projection', 'read_type', b'read_type', 'virtual_table', b'virtual_table']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'base_schema', b'base_schema', 'best_effort_filter', b'best_effort_filter', 'common', b'common', 'extension_table', b'extension_table', 'filter', b'filter', 'iceberg_table', b'iceberg_table', 'local_files', b'local_files', 'named_table', b'named_table', 'projection', b'projection', 'read_type', b'read_type', 'virtual_table', b'virtual_table']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['read_type', b'read_type']) -> typing.Literal['virtual_table', 'local_files', 'named_table', 'extension_table', 'iceberg_table'] | None: + ... global___ReadRel = ReadRel @typing.final class ProjectRel(google.protobuf.message.Message): """This operator allows to represent calculated expressions of fields (e.g., a+b). Direct/Emit are used to represent classical relational projections""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int EXPRESSIONS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def input(self) -> global___Rel: ... + def input(self) -> global___Rel: + ... + @property - def expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: ... + def expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: + ... + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - input: global___Rel | None = ..., - expressions: collections.abc.Iterable[global___Expression] | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "input", b"input"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "expressions", b"expressions", "input", b"input"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., expressions: collections.abc.Iterable[global___Expression] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'input', b'input']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'expressions', b'expressions', 'input', b'input']) -> None: + ... global___ProjectRel = ProjectRel @typing.final class JoinRel(google.protobuf.message.Message): """The binary JOIN relational operator left-join-right, including various join types, a join condition and post_join_filter expression""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor class _JoinType: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _JoinTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[JoinRel._JoinType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - JOIN_TYPE_UNSPECIFIED: JoinRel._JoinType.ValueType # 0 - JOIN_TYPE_INNER: JoinRel._JoinType.ValueType # 1 - JOIN_TYPE_OUTER: JoinRel._JoinType.ValueType # 2 - JOIN_TYPE_LEFT: JoinRel._JoinType.ValueType # 3 - JOIN_TYPE_RIGHT: JoinRel._JoinType.ValueType # 4 - JOIN_TYPE_LEFT_SEMI: JoinRel._JoinType.ValueType # 5 - JOIN_TYPE_LEFT_ANTI: JoinRel._JoinType.ValueType # 6 - JOIN_TYPE_LEFT_SINGLE: JoinRel._JoinType.ValueType # 7 - JOIN_TYPE_RIGHT_SEMI: JoinRel._JoinType.ValueType # 8 - JOIN_TYPE_RIGHT_ANTI: JoinRel._JoinType.ValueType # 9 - JOIN_TYPE_RIGHT_SINGLE: JoinRel._JoinType.ValueType # 10 - JOIN_TYPE_LEFT_MARK: JoinRel._JoinType.ValueType # 11 - JOIN_TYPE_RIGHT_MARK: JoinRel._JoinType.ValueType # 12 - - class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): ... - JOIN_TYPE_UNSPECIFIED: JoinRel.JoinType.ValueType # 0 - JOIN_TYPE_INNER: JoinRel.JoinType.ValueType # 1 - JOIN_TYPE_OUTER: JoinRel.JoinType.ValueType # 2 - JOIN_TYPE_LEFT: JoinRel.JoinType.ValueType # 3 - JOIN_TYPE_RIGHT: JoinRel.JoinType.ValueType # 4 - JOIN_TYPE_LEFT_SEMI: JoinRel.JoinType.ValueType # 5 - JOIN_TYPE_LEFT_ANTI: JoinRel.JoinType.ValueType # 6 - JOIN_TYPE_LEFT_SINGLE: JoinRel.JoinType.ValueType # 7 - JOIN_TYPE_RIGHT_SEMI: JoinRel.JoinType.ValueType # 8 - JOIN_TYPE_RIGHT_ANTI: JoinRel.JoinType.ValueType # 9 - JOIN_TYPE_RIGHT_SINGLE: JoinRel.JoinType.ValueType # 10 - JOIN_TYPE_LEFT_MARK: JoinRel.JoinType.ValueType # 11 - JOIN_TYPE_RIGHT_MARK: JoinRel.JoinType.ValueType # 12 - + JOIN_TYPE_UNSPECIFIED: JoinRel._JoinType.ValueType + JOIN_TYPE_INNER: JoinRel._JoinType.ValueType + JOIN_TYPE_OUTER: JoinRel._JoinType.ValueType + JOIN_TYPE_LEFT: JoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT: JoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_SEMI: JoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_ANTI: JoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_SINGLE: JoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_SEMI: JoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_ANTI: JoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_SINGLE: JoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_MARK: JoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_MARK: JoinRel._JoinType.ValueType + + class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): + ... + JOIN_TYPE_UNSPECIFIED: JoinRel.JoinType.ValueType + JOIN_TYPE_INNER: JoinRel.JoinType.ValueType + JOIN_TYPE_OUTER: JoinRel.JoinType.ValueType + JOIN_TYPE_LEFT: JoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT: JoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_SEMI: JoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_ANTI: JoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_SINGLE: JoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_SEMI: JoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_ANTI: JoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_SINGLE: JoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_MARK: JoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_MARK: JoinRel.JoinType.ValueType COMMON_FIELD_NUMBER: builtins.int LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int @@ -752,71 +714,80 @@ class JoinRel(google.protobuf.message.Message): TYPE_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int type: global___JoinRel.JoinType.ValueType + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def left(self) -> global___Rel: ... + def left(self) -> global___Rel: + ... + @property - def right(self) -> global___Rel: ... + def right(self) -> global___Rel: + ... + @property - def expression(self) -> global___Expression: ... + def expression(self) -> global___Expression: + ... + @property - def post_join_filter(self) -> global___Expression: ... + def post_join_filter(self) -> global___Expression: + ... + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - left: global___Rel | None = ..., - right: global___Rel | None = ..., - expression: global___Expression | None = ..., - post_join_filter: global___Expression | None = ..., - type: global___JoinRel.JoinType.ValueType = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "expression", b"expression", "left", b"left", "post_join_filter", b"post_join_filter", "right", b"right"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "expression", b"expression", "left", b"left", "post_join_filter", b"post_join_filter", "right", b"right", "type", b"type"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, common: global___RelCommon | None=..., left: global___Rel | None=..., right: global___Rel | None=..., expression: global___Expression | None=..., post_join_filter: global___Expression | None=..., type: global___JoinRel.JoinType.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'expression', b'expression', 'left', b'left', 'post_join_filter', b'post_join_filter', 'right', b'right']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'expression', b'expression', 'left', b'left', 'post_join_filter', b'post_join_filter', 'right', b'right', 'type', b'type']) -> None: + ... global___JoinRel = JoinRel @typing.final class CrossRel(google.protobuf.message.Message): """Cartesian product relational operator of two tables (left and right)""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - COMMON_FIELD_NUMBER: builtins.int LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def left(self) -> global___Rel: ... + def left(self) -> global___Rel: + ... + @property - def right(self) -> global___Rel: ... + def right(self) -> global___Rel: + ... + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - left: global___Rel | None = ..., - right: global___Rel | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "left", b"left", "right", b"right"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "left", b"left", "right", b"right"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, common: global___RelCommon | None=..., left: global___Rel | None=..., right: global___Rel | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'left', b'left', 'right', b'right']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'left', b'left', 'right', b'right']) -> None: + ... global___CrossRel = CrossRel @typing.final class FetchRel(google.protobuf.message.Message): """The relational operator representing LIMIT/OFFSET or TOP type semantics.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int OFFSET_FIELD_NUMBER: builtins.int @@ -825,18 +796,18 @@ class FetchRel(google.protobuf.message.Message): COUNT_EXPR_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int offset: builtins.int - """the offset expressed in number of records - Deprecated: use `offset_expr` instead - """ + 'the offset expressed in number of records\n Deprecated: use `offset_expr` instead\n ' count: builtins.int - """the amount of records to return - use -1 to signal that ALL records should be returned - Deprecated: use `count_expr` instead - """ + 'the amount of records to return\n use -1 to signal that ALL records should be returned\n Deprecated: use `count_expr` instead\n ' + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def input(self) -> global___Rel: ... + def input(self) -> global___Rel: + ... + @property def offset_expr(self) -> global___Expression: """Expression evaluated into a non-negative integer specifying the number @@ -855,39 +826,38 @@ class FetchRel(google.protobuf.message.Message): """ @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - input: global___Rel | None = ..., - offset: builtins.int = ..., - offset_expr: global___Expression | None = ..., - count: builtins.int = ..., - count_expr: global___Expression | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "count", b"count", "count_expr", b"count_expr", "count_mode", b"count_mode", "input", b"input", "offset", b"offset", "offset_expr", b"offset_expr", "offset_mode", b"offset_mode"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "count", b"count", "count_expr", b"count_expr", "count_mode", b"count_mode", "input", b"input", "offset", b"offset", "offset_expr", b"offset_expr", "offset_mode", b"offset_mode"]) -> None: ... - @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["count_mode", b"count_mode"]) -> typing.Literal["count", "count_expr"] | None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., offset: builtins.int=..., offset_expr: global___Expression | None=..., count: builtins.int=..., count_expr: global___Expression | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'count', b'count', 'count_expr', b'count_expr', 'count_mode', b'count_mode', 'input', b'input', 'offset', b'offset', 'offset_expr', b'offset_expr', 'offset_mode', b'offset_mode']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'count', b'count', 'count_expr', b'count_expr', 'count_mode', b'count_mode', 'input', b'input', 'offset', b'offset', 'offset_expr', b'offset_expr', 'offset_mode', b'offset_mode']) -> None: + ... + @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["offset_mode", b"offset_mode"]) -> typing.Literal["offset", "offset_expr"] | None: ... + def WhichOneof(self, oneof_group: typing.Literal['count_mode', b'count_mode']) -> typing.Literal['count', 'count_expr'] | None: + ... + @typing.overload + def WhichOneof(self, oneof_group: typing.Literal['offset_mode', b'offset_mode']) -> typing.Literal['offset', 'offset_expr'] | None: + ... global___FetchRel = FetchRel @typing.final class AggregateRel(google.protobuf.message.Message): """The relational operator representing a GROUP BY Aggregate""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class Grouping(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - GROUPING_EXPRESSIONS_FIELD_NUMBER: builtins.int EXPRESSION_REFERENCES_FIELD_NUMBER: builtins.int + @property def grouping_expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: """Deprecated in favor of `expression_references` below.""" @@ -898,22 +868,22 @@ class AggregateRel(google.protobuf.message.Message): into the `grouping_expression` list. """ - def __init__( - self, - *, - grouping_expressions: collections.abc.Iterable[global___Expression] | None = ..., - expression_references: collections.abc.Iterable[builtins.int] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["expression_references", b"expression_references", "grouping_expressions", b"grouping_expressions"]) -> None: ... + def __init__(self, *, grouping_expressions: collections.abc.Iterable[global___Expression] | None=..., expression_references: collections.abc.Iterable[builtins.int] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['expression_references', b'expression_references', 'grouping_expressions', b'grouping_expressions']) -> None: + ... @typing.final class Measure(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - MEASURE_FIELD_NUMBER: builtins.int FILTER_FIELD_NUMBER: builtins.int + @property - def measure(self) -> global___AggregateFunction: ... + def measure(self) -> global___AggregateFunction: + ... + @property def filter(self) -> global___Expression: """An optional boolean expression that acts to filter which records are @@ -922,23 +892,25 @@ class AggregateRel(google.protobuf.message.Message): Helps to support SUM() FILTER(WHERE...) syntax without masking opportunities for optimization """ - def __init__( - self, - *, - measure: global___AggregateFunction | None = ..., - filter: global___Expression | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["filter", b"filter", "measure", b"measure"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["filter", b"filter", "measure", b"measure"]) -> None: ... + def __init__(self, *, measure: global___AggregateFunction | None=..., filter: global___Expression | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['filter', b'filter', 'measure', b'measure']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['filter', b'filter', 'measure', b'measure']) -> None: + ... COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int GROUPINGS_FIELD_NUMBER: builtins.int MEASURES_FIELD_NUMBER: builtins.int GROUPING_EXPRESSIONS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property def input(self) -> global___Rel: """Input of the aggregation""" @@ -965,20 +937,17 @@ class AggregateRel(google.protobuf.message.Message): """ @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - input: global___Rel | None = ..., - groupings: collections.abc.Iterable[global___AggregateRel.Grouping] | None = ..., - measures: collections.abc.Iterable[global___AggregateRel.Measure] | None = ..., - grouping_expressions: collections.abc.Iterable[global___Expression] | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "input", b"input"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "grouping_expressions", b"grouping_expressions", "groupings", b"groupings", "input", b"input", "measures", b"measures"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., groupings: collections.abc.Iterable[global___AggregateRel.Grouping] | None=..., measures: collections.abc.Iterable[global___AggregateRel.Measure] | None=..., grouping_expressions: collections.abc.Iterable[global___Expression] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'input', b'input']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'grouping_expressions', b'grouping_expressions', 'groupings', b'groupings', 'input', b'input', 'measures', b'measures']) -> None: + ... global___AggregateRel = AggregateRel @typing.final @@ -987,7 +956,6 @@ class ConsistentPartitionWindowRel(google.protobuf.message.Message): that are related to the current query row. It can be used to execute window functions where all the windows share the same partitioning and ordering. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final @@ -996,9 +964,7 @@ class ConsistentPartitionWindowRel(google.protobuf.message.Message): sorts, and bounds, since those must be consistent across the various functions in this rel. Refer to the `WindowFunction` message for a description of these fields. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FUNCTION_REFERENCE_FIELD_NUMBER: builtins.int ARGUMENTS_FIELD_NUMBER: builtins.int OPTIONS_FIELD_NUMBER: builtins.int @@ -1012,167 +978,188 @@ class ConsistentPartitionWindowRel(google.protobuf.message.Message): phase: global___AggregationPhase.ValueType invocation: global___AggregateFunction.AggregationInvocation.ValueType bounds_type: global___Expression.WindowFunction.BoundsType.ValueType + @property - def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionArgument]: ... + def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionArgument]: + ... + @property - def options(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionOption]: ... + def options(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionOption]: + ... + @property - def output_type(self) -> proto.type_pb2.Type: ... + def output_type(self) -> proto.type_pb2.Type: + ... + @property - def lower_bound(self) -> global___Expression.WindowFunction.Bound: ... + def lower_bound(self) -> global___Expression.WindowFunction.Bound: + ... + @property - def upper_bound(self) -> global___Expression.WindowFunction.Bound: ... - def __init__( - self, - *, - function_reference: builtins.int = ..., - arguments: collections.abc.Iterable[global___FunctionArgument] | None = ..., - options: collections.abc.Iterable[global___FunctionOption] | None = ..., - output_type: proto.type_pb2.Type | None = ..., - phase: global___AggregationPhase.ValueType = ..., - invocation: global___AggregateFunction.AggregationInvocation.ValueType = ..., - lower_bound: global___Expression.WindowFunction.Bound | None = ..., - upper_bound: global___Expression.WindowFunction.Bound | None = ..., - bounds_type: global___Expression.WindowFunction.BoundsType.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["lower_bound", b"lower_bound", "output_type", b"output_type", "upper_bound", b"upper_bound"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["arguments", b"arguments", "bounds_type", b"bounds_type", "function_reference", b"function_reference", "invocation", b"invocation", "lower_bound", b"lower_bound", "options", b"options", "output_type", b"output_type", "phase", b"phase", "upper_bound", b"upper_bound"]) -> None: ... + def upper_bound(self) -> global___Expression.WindowFunction.Bound: + ... + def __init__(self, *, function_reference: builtins.int=..., arguments: collections.abc.Iterable[global___FunctionArgument] | None=..., options: collections.abc.Iterable[global___FunctionOption] | None=..., output_type: proto.type_pb2.Type | None=..., phase: global___AggregationPhase.ValueType=..., invocation: global___AggregateFunction.AggregationInvocation.ValueType=..., lower_bound: global___Expression.WindowFunction.Bound | None=..., upper_bound: global___Expression.WindowFunction.Bound | None=..., bounds_type: global___Expression.WindowFunction.BoundsType.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['lower_bound', b'lower_bound', 'output_type', b'output_type', 'upper_bound', b'upper_bound']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['arguments', b'arguments', 'bounds_type', b'bounds_type', 'function_reference', b'function_reference', 'invocation', b'invocation', 'lower_bound', b'lower_bound', 'options', b'options', 'output_type', b'output_type', 'phase', b'phase', 'upper_bound', b'upper_bound']) -> None: + ... COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int WINDOW_FUNCTIONS_FIELD_NUMBER: builtins.int PARTITION_EXPRESSIONS_FIELD_NUMBER: builtins.int SORTS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def input(self) -> global___Rel: ... + def input(self) -> global___Rel: + ... + @property - def window_functions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ConsistentPartitionWindowRel.WindowRelFunction]: ... + def window_functions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ConsistentPartitionWindowRel.WindowRelFunction]: + ... + @property - def partition_expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: ... + def partition_expressions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: + ... + @property - def sorts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SortField]: ... + def sorts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SortField]: + ... + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - input: global___Rel | None = ..., - window_functions: collections.abc.Iterable[global___ConsistentPartitionWindowRel.WindowRelFunction] | None = ..., - partition_expressions: collections.abc.Iterable[global___Expression] | None = ..., - sorts: collections.abc.Iterable[global___SortField] | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "input", b"input"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "input", b"input", "partition_expressions", b"partition_expressions", "sorts", b"sorts", "window_functions", b"window_functions"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., window_functions: collections.abc.Iterable[global___ConsistentPartitionWindowRel.WindowRelFunction] | None=..., partition_expressions: collections.abc.Iterable[global___Expression] | None=..., sorts: collections.abc.Iterable[global___SortField] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'input', b'input']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'input', b'input', 'partition_expressions', b'partition_expressions', 'sorts', b'sorts', 'window_functions', b'window_functions']) -> None: + ... global___ConsistentPartitionWindowRel = ConsistentPartitionWindowRel @typing.final class SortRel(google.protobuf.message.Message): """The ORDERY BY (or sorting) relational operator. Beside describing a base relation, it includes a list of fields to sort on""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int SORTS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def input(self) -> global___Rel: ... + def input(self) -> global___Rel: + ... + @property - def sorts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SortField]: ... + def sorts(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___SortField]: + ... + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - input: global___Rel | None = ..., - sorts: collections.abc.Iterable[global___SortField] | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "input", b"input"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "input", b"input", "sorts", b"sorts"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., sorts: collections.abc.Iterable[global___SortField] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'input', b'input']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'input', b'input', 'sorts', b'sorts']) -> None: + ... global___SortRel = SortRel @typing.final class FilterRel(google.protobuf.message.Message): """The relational operator capturing simple FILTERs (as in the WHERE clause of SQL)""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int CONDITION_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def input(self) -> global___Rel: ... + def input(self) -> global___Rel: + ... + @property - def condition(self) -> global___Expression: ... + def condition(self) -> global___Expression: + ... + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - input: global___Rel | None = ..., - condition: global___Expression | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "condition", b"condition", "input", b"input"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "condition", b"condition", "input", b"input"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., condition: global___Expression | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'condition', b'condition', 'input', b'input']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'condition', b'condition', 'input', b'input']) -> None: + ... global___FilterRel = FilterRel @typing.final class SetRel(google.protobuf.message.Message): """The relational set operators (intersection/union/etc..)""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor class _SetOp: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _SetOpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SetRel._SetOp.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - SET_OP_UNSPECIFIED: SetRel._SetOp.ValueType # 0 - SET_OP_MINUS_PRIMARY: SetRel._SetOp.ValueType # 1 - SET_OP_MINUS_PRIMARY_ALL: SetRel._SetOp.ValueType # 7 - SET_OP_MINUS_MULTISET: SetRel._SetOp.ValueType # 2 - SET_OP_INTERSECTION_PRIMARY: SetRel._SetOp.ValueType # 3 - SET_OP_INTERSECTION_MULTISET: SetRel._SetOp.ValueType # 4 - SET_OP_INTERSECTION_MULTISET_ALL: SetRel._SetOp.ValueType # 8 - SET_OP_UNION_DISTINCT: SetRel._SetOp.ValueType # 5 - SET_OP_UNION_ALL: SetRel._SetOp.ValueType # 6 - - class SetOp(_SetOp, metaclass=_SetOpEnumTypeWrapper): ... - SET_OP_UNSPECIFIED: SetRel.SetOp.ValueType # 0 - SET_OP_MINUS_PRIMARY: SetRel.SetOp.ValueType # 1 - SET_OP_MINUS_PRIMARY_ALL: SetRel.SetOp.ValueType # 7 - SET_OP_MINUS_MULTISET: SetRel.SetOp.ValueType # 2 - SET_OP_INTERSECTION_PRIMARY: SetRel.SetOp.ValueType # 3 - SET_OP_INTERSECTION_MULTISET: SetRel.SetOp.ValueType # 4 - SET_OP_INTERSECTION_MULTISET_ALL: SetRel.SetOp.ValueType # 8 - SET_OP_UNION_DISTINCT: SetRel.SetOp.ValueType # 5 - SET_OP_UNION_ALL: SetRel.SetOp.ValueType # 6 - + SET_OP_UNSPECIFIED: SetRel._SetOp.ValueType + SET_OP_MINUS_PRIMARY: SetRel._SetOp.ValueType + SET_OP_MINUS_PRIMARY_ALL: SetRel._SetOp.ValueType + SET_OP_MINUS_MULTISET: SetRel._SetOp.ValueType + SET_OP_INTERSECTION_PRIMARY: SetRel._SetOp.ValueType + SET_OP_INTERSECTION_MULTISET: SetRel._SetOp.ValueType + SET_OP_INTERSECTION_MULTISET_ALL: SetRel._SetOp.ValueType + SET_OP_UNION_DISTINCT: SetRel._SetOp.ValueType + SET_OP_UNION_ALL: SetRel._SetOp.ValueType + + class SetOp(_SetOp, metaclass=_SetOpEnumTypeWrapper): + ... + SET_OP_UNSPECIFIED: SetRel.SetOp.ValueType + SET_OP_MINUS_PRIMARY: SetRel.SetOp.ValueType + SET_OP_MINUS_PRIMARY_ALL: SetRel.SetOp.ValueType + SET_OP_MINUS_MULTISET: SetRel.SetOp.ValueType + SET_OP_INTERSECTION_PRIMARY: SetRel.SetOp.ValueType + SET_OP_INTERSECTION_MULTISET: SetRel.SetOp.ValueType + SET_OP_INTERSECTION_MULTISET_ALL: SetRel.SetOp.ValueType + SET_OP_UNION_DISTINCT: SetRel.SetOp.ValueType + SET_OP_UNION_ALL: SetRel.SetOp.ValueType COMMON_FIELD_NUMBER: builtins.int INPUTS_FIELD_NUMBER: builtins.int OP_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int op: global___SetRel.SetOp.ValueType + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property def inputs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Rel]: """The first input is the primary input, the remaining are secondary @@ -1180,192 +1167,195 @@ class SetRel(google.protobuf.message.Message): """ @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - inputs: collections.abc.Iterable[global___Rel] | None = ..., - op: global___SetRel.SetOp.ValueType = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "inputs", b"inputs", "op", b"op"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, common: global___RelCommon | None=..., inputs: collections.abc.Iterable[global___Rel] | None=..., op: global___SetRel.SetOp.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'inputs', b'inputs', 'op', b'op']) -> None: + ... global___SetRel = SetRel @typing.final class ExtensionSingleRel(google.protobuf.message.Message): """Stub to support extension with a single input""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int DETAIL_FIELD_NUMBER: builtins.int + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def input(self) -> global___Rel: ... + def input(self) -> global___Rel: + ... + @property - def detail(self) -> google.protobuf.any_pb2.Any: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - input: global___Rel | None = ..., - detail: google.protobuf.any_pb2.Any | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["common", b"common", "detail", b"detail", "input", b"input"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["common", b"common", "detail", b"detail", "input", b"input"]) -> None: ... + def detail(self) -> google.protobuf.any_pb2.Any: + ... + + def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., detail: google.protobuf.any_pb2.Any | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['common', b'common', 'detail', b'detail', 'input', b'input']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['common', b'common', 'detail', b'detail', 'input', b'input']) -> None: + ... global___ExtensionSingleRel = ExtensionSingleRel @typing.final class ExtensionLeafRel(google.protobuf.message.Message): """Stub to support extension with a zero inputs""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - COMMON_FIELD_NUMBER: builtins.int DETAIL_FIELD_NUMBER: builtins.int + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def detail(self) -> google.protobuf.any_pb2.Any: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - detail: google.protobuf.any_pb2.Any | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["common", b"common", "detail", b"detail"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["common", b"common", "detail", b"detail"]) -> None: ... + def detail(self) -> google.protobuf.any_pb2.Any: + ... + + def __init__(self, *, common: global___RelCommon | None=..., detail: google.protobuf.any_pb2.Any | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['common', b'common', 'detail', b'detail']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['common', b'common', 'detail', b'detail']) -> None: + ... global___ExtensionLeafRel = ExtensionLeafRel @typing.final class ExtensionMultiRel(google.protobuf.message.Message): """Stub to support extension with multiple inputs""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - COMMON_FIELD_NUMBER: builtins.int INPUTS_FIELD_NUMBER: builtins.int DETAIL_FIELD_NUMBER: builtins.int + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def inputs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Rel]: ... + def inputs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Rel]: + ... + @property - def detail(self) -> google.protobuf.any_pb2.Any: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - inputs: collections.abc.Iterable[global___Rel] | None = ..., - detail: google.protobuf.any_pb2.Any | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["common", b"common", "detail", b"detail"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["common", b"common", "detail", b"detail", "inputs", b"inputs"]) -> None: ... + def detail(self) -> google.protobuf.any_pb2.Any: + ... + + def __init__(self, *, common: global___RelCommon | None=..., inputs: collections.abc.Iterable[global___Rel] | None=..., detail: google.protobuf.any_pb2.Any | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['common', b'common', 'detail', b'detail']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['common', b'common', 'detail', b'detail', 'inputs', b'inputs']) -> None: + ... global___ExtensionMultiRel = ExtensionMultiRel @typing.final class ExchangeRel(google.protobuf.message.Message): """A redistribution operation""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class ScatterFields(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - FIELDS_FIELD_NUMBER: builtins.int + @property - def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: ... - def __init__( - self, - *, - fields: collections.abc.Iterable[global___Expression.FieldReference] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["fields", b"fields"]) -> None: ... + def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: + ... + + def __init__(self, *, fields: collections.abc.Iterable[global___Expression.FieldReference] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['fields', b'fields']) -> None: + ... @typing.final class SingleBucketExpression(google.protobuf.message.Message): """Returns a single bucket number per record.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXPRESSION_FIELD_NUMBER: builtins.int + @property - def expression(self) -> global___Expression: ... - def __init__( - self, - *, - expression: global___Expression | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["expression", b"expression"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["expression", b"expression"]) -> None: ... + def expression(self) -> global___Expression: + ... + + def __init__(self, *, expression: global___Expression | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['expression', b'expression']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['expression', b'expression']) -> None: + ... @typing.final class MultiBucketExpression(google.protobuf.message.Message): """Returns zero or more bucket numbers per record""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXPRESSION_FIELD_NUMBER: builtins.int CONSTRAINED_TO_COUNT_FIELD_NUMBER: builtins.int constrained_to_count: builtins.bool + @property - def expression(self) -> global___Expression: ... - def __init__( - self, - *, - expression: global___Expression | None = ..., - constrained_to_count: builtins.bool = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["expression", b"expression"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["constrained_to_count", b"constrained_to_count", "expression", b"expression"]) -> None: ... + def expression(self) -> global___Expression: + ... + + def __init__(self, *, expression: global___Expression | None=..., constrained_to_count: builtins.bool=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['expression', b'expression']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['constrained_to_count', b'constrained_to_count', 'expression', b'expression']) -> None: + ... @typing.final class Broadcast(google.protobuf.message.Message): """Send all data to every target.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__( - self, - ) -> None: ... + def __init__(self) -> None: + ... @typing.final class RoundRobin(google.protobuf.message.Message): """Route approximately""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXACT_FIELD_NUMBER: builtins.int exact: builtins.bool - """whether the round robin behavior is required to exact (per record) or - approximate. Defaults to approximate. - """ - def __init__( - self, - *, - exact: builtins.bool = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["exact", b"exact"]) -> None: ... + 'whether the round robin behavior is required to exact (per record) or\n approximate. Defaults to approximate.\n ' + + def __init__(self, *, exact: builtins.bool=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['exact', b'exact']) -> None: + ... @typing.final class ExchangeTarget(google.protobuf.message.Message): """The message to describe partition targets of an exchange""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARTITION_ID_FIELD_NUMBER: builtins.int URI_FIELD_NUMBER: builtins.int EXTENDED_FIELD_NUMBER: builtins.int uri: builtins.str + @property def partition_id(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.int]: """Describes the partition id(s) to send. If this is empty, all data is sent @@ -1373,18 +1363,20 @@ class ExchangeRel(google.protobuf.message.Message): """ @property - def extended(self) -> google.protobuf.any_pb2.Any: ... - def __init__( - self, - *, - partition_id: collections.abc.Iterable[builtins.int] | None = ..., - uri: builtins.str = ..., - extended: google.protobuf.any_pb2.Any | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["extended", b"extended", "target_type", b"target_type", "uri", b"uri"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["extended", b"extended", "partition_id", b"partition_id", "target_type", b"target_type", "uri", b"uri"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["target_type", b"target_type"]) -> typing.Literal["uri", "extended"] | None: ... + def extended(self) -> google.protobuf.any_pb2.Any: + ... + + def __init__(self, *, partition_id: collections.abc.Iterable[builtins.int] | None=..., uri: builtins.str=..., extended: google.protobuf.any_pb2.Any | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['extended', b'extended', 'target_type', b'target_type', 'uri', b'uri']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['extended', b'extended', 'partition_id', b'partition_id', 'target_type', b'target_type', 'uri', b'uri']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['target_type', b'target_type']) -> typing.Literal['uri', 'extended'] | None: + ... COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int PARTITION_COUNT_FIELD_NUMBER: builtins.int @@ -1396,42 +1388,54 @@ class ExchangeRel(google.protobuf.message.Message): BROADCAST_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int partition_count: builtins.int + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def input(self) -> global___Rel: ... + def input(self) -> global___Rel: + ... + @property - def targets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExchangeRel.ExchangeTarget]: ... + def targets(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExchangeRel.ExchangeTarget]: + ... + @property - def scatter_by_fields(self) -> global___ExchangeRel.ScatterFields: ... + def scatter_by_fields(self) -> global___ExchangeRel.ScatterFields: + ... + @property - def single_target(self) -> global___ExchangeRel.SingleBucketExpression: ... + def single_target(self) -> global___ExchangeRel.SingleBucketExpression: + ... + @property - def multi_target(self) -> global___ExchangeRel.MultiBucketExpression: ... + def multi_target(self) -> global___ExchangeRel.MultiBucketExpression: + ... + @property - def round_robin(self) -> global___ExchangeRel.RoundRobin: ... + def round_robin(self) -> global___ExchangeRel.RoundRobin: + ... + @property - def broadcast(self) -> global___ExchangeRel.Broadcast: ... + def broadcast(self) -> global___ExchangeRel.Broadcast: + ... + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - input: global___Rel | None = ..., - partition_count: builtins.int = ..., - targets: collections.abc.Iterable[global___ExchangeRel.ExchangeTarget] | None = ..., - scatter_by_fields: global___ExchangeRel.ScatterFields | None = ..., - single_target: global___ExchangeRel.SingleBucketExpression | None = ..., - multi_target: global___ExchangeRel.MultiBucketExpression | None = ..., - round_robin: global___ExchangeRel.RoundRobin | None = ..., - broadcast: global___ExchangeRel.Broadcast | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "broadcast", b"broadcast", "common", b"common", "exchange_kind", b"exchange_kind", "input", b"input", "multi_target", b"multi_target", "round_robin", b"round_robin", "scatter_by_fields", b"scatter_by_fields", "single_target", b"single_target"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "broadcast", b"broadcast", "common", b"common", "exchange_kind", b"exchange_kind", "input", b"input", "multi_target", b"multi_target", "partition_count", b"partition_count", "round_robin", b"round_robin", "scatter_by_fields", b"scatter_by_fields", "single_target", b"single_target", "targets", b"targets"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["exchange_kind", b"exchange_kind"]) -> typing.Literal["scatter_by_fields", "single_target", "multi_target", "round_robin", "broadcast"] | None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., partition_count: builtins.int=..., targets: collections.abc.Iterable[global___ExchangeRel.ExchangeTarget] | None=..., scatter_by_fields: global___ExchangeRel.ScatterFields | None=..., single_target: global___ExchangeRel.SingleBucketExpression | None=..., multi_target: global___ExchangeRel.MultiBucketExpression | None=..., round_robin: global___ExchangeRel.RoundRobin | None=..., broadcast: global___ExchangeRel.Broadcast | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'broadcast', b'broadcast', 'common', b'common', 'exchange_kind', b'exchange_kind', 'input', b'input', 'multi_target', b'multi_target', 'round_robin', b'round_robin', 'scatter_by_fields', b'scatter_by_fields', 'single_target', b'single_target']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'broadcast', b'broadcast', 'common', b'common', 'exchange_kind', b'exchange_kind', 'input', b'input', 'multi_target', b'multi_target', 'partition_count', b'partition_count', 'round_robin', b'round_robin', 'scatter_by_fields', b'scatter_by_fields', 'single_target', b'single_target', 'targets', b'targets']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['exchange_kind', b'exchange_kind']) -> typing.Literal['scatter_by_fields', 'single_target', 'multi_target', 'round_robin', 'broadcast'] | None: + ... global___ExchangeRel = ExchangeRel @typing.final @@ -1442,15 +1446,14 @@ class ExpandRel(google.protobuf.message.Message): In addition to a field being emitted per input field an extra int64 field is emitted which contains a zero-indexed ordinal corresponding to the duplicate definition. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class ExpandField(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - SWITCHING_FIELD_FIELD_NUMBER: builtins.int CONSISTENT_FIELD_FIELD_NUMBER: builtins.int + @property def switching_field(self) -> global___ExpandRel.SwitchingField: """Field that switches output based on which duplicate is being output. Every @@ -1465,41 +1468,46 @@ class ExpandRel(google.protobuf.message.Message): to a switching_field that lists the same expression multiple times. """ - def __init__( - self, - *, - switching_field: global___ExpandRel.SwitchingField | None = ..., - consistent_field: global___Expression | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["consistent_field", b"consistent_field", "field_type", b"field_type", "switching_field", b"switching_field"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["consistent_field", b"consistent_field", "field_type", b"field_type", "switching_field", b"switching_field"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["field_type", b"field_type"]) -> typing.Literal["switching_field", "consistent_field"] | None: ... + def __init__(self, *, switching_field: global___ExpandRel.SwitchingField | None=..., consistent_field: global___Expression | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['consistent_field', b'consistent_field', 'field_type', b'field_type', 'switching_field', b'switching_field']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['consistent_field', b'consistent_field', 'field_type', b'field_type', 'switching_field', b'switching_field']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['field_type', b'field_type']) -> typing.Literal['switching_field', 'consistent_field'] | None: + ... @typing.final class SwitchingField(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - DUPLICATES_FIELD_NUMBER: builtins.int + @property def duplicates(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: """All duplicates must return the same type class but may differ in nullability. The effective type of the output field will be nullable if any of the duplicate expressions are nullable. """ - def __init__( - self, - *, - duplicates: collections.abc.Iterable[global___Expression] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["duplicates", b"duplicates"]) -> None: ... + def __init__(self, *, duplicates: collections.abc.Iterable[global___Expression] | None=...) -> None: + ... + def ClearField(self, field_name: typing.Literal['duplicates', b'duplicates']) -> None: + ... COMMON_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int FIELDS_FIELD_NUMBER: builtins.int + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def input(self) -> global___Rel: ... + def input(self) -> global___Rel: + ... + @property def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ExpandRel.ExpandField]: """There should be one definition here for each input field. Any fields beyond the provided @@ -1507,16 +1515,14 @@ class ExpandRel(google.protobuf.message.Message): expression was provided). """ - def __init__( - self, - *, - common: global___RelCommon | None = ..., - input: global___Rel | None = ..., - fields: collections.abc.Iterable[global___ExpandRel.ExpandField] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["common", b"common", "input", b"input"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["common", b"common", "fields", b"fields", "input", b"input"]) -> None: ... + def __init__(self, *, common: global___RelCommon | None=..., input: global___Rel | None=..., fields: collections.abc.Iterable[global___ExpandRel.ExpandField] | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['common', b'common', 'input', b'input']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['common', b'common', 'fields', b'fields', 'input', b'input']) -> None: + ... global___ExpandRel = ExpandRel @typing.final @@ -1525,11 +1531,10 @@ class RelRoot(google.protobuf.message.Message): This is for use at the root of a `Rel` tree. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INPUT_FIELD_NUMBER: builtins.int NAMES_FIELD_NUMBER: builtins.int + @property def input(self) -> global___Rel: """A relation""" @@ -1538,23 +1543,20 @@ class RelRoot(google.protobuf.message.Message): def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """Field names in depth-first order""" - def __init__( - self, - *, - input: global___Rel | None = ..., - names: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["input", b"input"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["input", b"input", "names", b"names"]) -> None: ... + def __init__(self, *, input: global___Rel | None=..., names: collections.abc.Iterable[builtins.str] | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['input', b'input']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['input', b'input', 'names', b'names']) -> None: + ... global___RelRoot = RelRoot @typing.final class Rel(google.protobuf.message.Message): """A relation (used internally in a plan)""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - READ_FIELD_NUMBER: builtins.int FILTER_FIELD_NUMBER: builtins.int FETCH_FIELD_NUMBER: builtins.int @@ -1577,92 +1579,115 @@ class Rel(google.protobuf.message.Message): WINDOW_FIELD_NUMBER: builtins.int EXCHANGE_FIELD_NUMBER: builtins.int EXPAND_FIELD_NUMBER: builtins.int + @property - def read(self) -> global___ReadRel: ... + def read(self) -> global___ReadRel: + ... + @property - def filter(self) -> global___FilterRel: ... + def filter(self) -> global___FilterRel: + ... + @property - def fetch(self) -> global___FetchRel: ... + def fetch(self) -> global___FetchRel: + ... + @property - def aggregate(self) -> global___AggregateRel: ... + def aggregate(self) -> global___AggregateRel: + ... + @property - def sort(self) -> global___SortRel: ... + def sort(self) -> global___SortRel: + ... + @property - def join(self) -> global___JoinRel: ... + def join(self) -> global___JoinRel: + ... + @property - def project(self) -> global___ProjectRel: ... + def project(self) -> global___ProjectRel: + ... + @property - def set(self) -> global___SetRel: ... + def set(self) -> global___SetRel: + ... + @property - def extension_single(self) -> global___ExtensionSingleRel: ... + def extension_single(self) -> global___ExtensionSingleRel: + ... + @property - def extension_multi(self) -> global___ExtensionMultiRel: ... + def extension_multi(self) -> global___ExtensionMultiRel: + ... + @property - def extension_leaf(self) -> global___ExtensionLeafRel: ... + def extension_leaf(self) -> global___ExtensionLeafRel: + ... + @property - def cross(self) -> global___CrossRel: ... + def cross(self) -> global___CrossRel: + ... + @property - def reference(self) -> global___ReferenceRel: ... + def reference(self) -> global___ReferenceRel: + ... + @property - def write(self) -> global___WriteRel: ... + def write(self) -> global___WriteRel: + ... + @property - def ddl(self) -> global___DdlRel: ... + def ddl(self) -> global___DdlRel: + ... + @property - def update(self) -> global___UpdateRel: ... + def update(self) -> global___UpdateRel: + ... + @property def hash_join(self) -> global___HashJoinRel: """Physical relations""" @property - def merge_join(self) -> global___MergeJoinRel: ... - @property - def nested_loop_join(self) -> global___NestedLoopJoinRel: ... - @property - def window(self) -> global___ConsistentPartitionWindowRel: ... - @property - def exchange(self) -> global___ExchangeRel: ... - @property - def expand(self) -> global___ExpandRel: ... - def __init__( - self, - *, - read: global___ReadRel | None = ..., - filter: global___FilterRel | None = ..., - fetch: global___FetchRel | None = ..., - aggregate: global___AggregateRel | None = ..., - sort: global___SortRel | None = ..., - join: global___JoinRel | None = ..., - project: global___ProjectRel | None = ..., - set: global___SetRel | None = ..., - extension_single: global___ExtensionSingleRel | None = ..., - extension_multi: global___ExtensionMultiRel | None = ..., - extension_leaf: global___ExtensionLeafRel | None = ..., - cross: global___CrossRel | None = ..., - reference: global___ReferenceRel | None = ..., - write: global___WriteRel | None = ..., - ddl: global___DdlRel | None = ..., - update: global___UpdateRel | None = ..., - hash_join: global___HashJoinRel | None = ..., - merge_join: global___MergeJoinRel | None = ..., - nested_loop_join: global___NestedLoopJoinRel | None = ..., - window: global___ConsistentPartitionWindowRel | None = ..., - exchange: global___ExchangeRel | None = ..., - expand: global___ExpandRel | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["aggregate", b"aggregate", "cross", b"cross", "ddl", b"ddl", "exchange", b"exchange", "expand", b"expand", "extension_leaf", b"extension_leaf", "extension_multi", b"extension_multi", "extension_single", b"extension_single", "fetch", b"fetch", "filter", b"filter", "hash_join", b"hash_join", "join", b"join", "merge_join", b"merge_join", "nested_loop_join", b"nested_loop_join", "project", b"project", "read", b"read", "reference", b"reference", "rel_type", b"rel_type", "set", b"set", "sort", b"sort", "update", b"update", "window", b"window", "write", b"write"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["aggregate", b"aggregate", "cross", b"cross", "ddl", b"ddl", "exchange", b"exchange", "expand", b"expand", "extension_leaf", b"extension_leaf", "extension_multi", b"extension_multi", "extension_single", b"extension_single", "fetch", b"fetch", "filter", b"filter", "hash_join", b"hash_join", "join", b"join", "merge_join", b"merge_join", "nested_loop_join", b"nested_loop_join", "project", b"project", "read", b"read", "reference", b"reference", "rel_type", b"rel_type", "set", b"set", "sort", b"sort", "update", b"update", "window", b"window", "write", b"write"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["rel_type", b"rel_type"]) -> typing.Literal["read", "filter", "fetch", "aggregate", "sort", "join", "project", "set", "extension_single", "extension_multi", "extension_leaf", "cross", "reference", "write", "ddl", "update", "hash_join", "merge_join", "nested_loop_join", "window", "exchange", "expand"] | None: ... + def merge_join(self) -> global___MergeJoinRel: + ... + + @property + def nested_loop_join(self) -> global___NestedLoopJoinRel: + ... + @property + def window(self) -> global___ConsistentPartitionWindowRel: + ... + + @property + def exchange(self) -> global___ExchangeRel: + ... + + @property + def expand(self) -> global___ExpandRel: + ... + + def __init__(self, *, read: global___ReadRel | None=..., filter: global___FilterRel | None=..., fetch: global___FetchRel | None=..., aggregate: global___AggregateRel | None=..., sort: global___SortRel | None=..., join: global___JoinRel | None=..., project: global___ProjectRel | None=..., set: global___SetRel | None=..., extension_single: global___ExtensionSingleRel | None=..., extension_multi: global___ExtensionMultiRel | None=..., extension_leaf: global___ExtensionLeafRel | None=..., cross: global___CrossRel | None=..., reference: global___ReferenceRel | None=..., write: global___WriteRel | None=..., ddl: global___DdlRel | None=..., update: global___UpdateRel | None=..., hash_join: global___HashJoinRel | None=..., merge_join: global___MergeJoinRel | None=..., nested_loop_join: global___NestedLoopJoinRel | None=..., window: global___ConsistentPartitionWindowRel | None=..., exchange: global___ExchangeRel | None=..., expand: global___ExpandRel | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['aggregate', b'aggregate', 'cross', b'cross', 'ddl', b'ddl', 'exchange', b'exchange', 'expand', b'expand', 'extension_leaf', b'extension_leaf', 'extension_multi', b'extension_multi', 'extension_single', b'extension_single', 'fetch', b'fetch', 'filter', b'filter', 'hash_join', b'hash_join', 'join', b'join', 'merge_join', b'merge_join', 'nested_loop_join', b'nested_loop_join', 'project', b'project', 'read', b'read', 'reference', b'reference', 'rel_type', b'rel_type', 'set', b'set', 'sort', b'sort', 'update', b'update', 'window', b'window', 'write', b'write']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['aggregate', b'aggregate', 'cross', b'cross', 'ddl', b'ddl', 'exchange', b'exchange', 'expand', b'expand', 'extension_leaf', b'extension_leaf', 'extension_multi', b'extension_multi', 'extension_single', b'extension_single', 'fetch', b'fetch', 'filter', b'filter', 'hash_join', b'hash_join', 'join', b'join', 'merge_join', b'merge_join', 'nested_loop_join', b'nested_loop_join', 'project', b'project', 'read', b'read', 'reference', b'reference', 'rel_type', b'rel_type', 'set', b'set', 'sort', b'sort', 'update', b'update', 'window', b'window', 'write', b'write']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['rel_type', b'rel_type']) -> typing.Literal['read', 'filter', 'fetch', 'aggregate', 'sort', 'join', 'project', 'set', 'extension_single', 'extension_multi', 'extension_leaf', 'cross', 'reference', 'write', 'ddl', 'update', 'hash_join', 'merge_join', 'nested_loop_join', 'window', 'exchange', 'expand'] | None: + ... global___Rel = Rel @typing.final class NamedObjectWrite(google.protobuf.message.Message): """A base object for writing (e.g., a table or a view).""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAMES_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + @property def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """The list of string is used to represent namespacing (e.g., mydb.mytable). @@ -1670,16 +1695,17 @@ class NamedObjectWrite(google.protobuf.message.Message): """ @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - names: collections.abc.Iterable[builtins.str] | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "names", b"names"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + def __init__(self, *, names: collections.abc.Iterable[builtins.str] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'names', b'names']) -> None: + ... global___NamedObjectWrite = NamedObjectWrite @typing.final @@ -1687,20 +1713,21 @@ class ExtensionObject(google.protobuf.message.Message): """A stub type that can be used to extend/introduce new table types outside the specification. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - DETAIL_FIELD_NUMBER: builtins.int + @property - def detail(self) -> google.protobuf.any_pb2.Any: ... - def __init__( - self, - *, - detail: google.protobuf.any_pb2.Any | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["detail", b"detail"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["detail", b"detail"]) -> None: ... + def detail(self) -> google.protobuf.any_pb2.Any: + ... + + def __init__(self, *, detail: google.protobuf.any_pb2.Any | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['detail', b'detail']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['detail', b'detail']) -> None: + ... global___ExtensionObject = ExtensionObject @typing.final @@ -1708,55 +1735,56 @@ class DdlRel(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _DdlObject: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _DdlObjectEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DdlRel._DdlObject.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - DDL_OBJECT_UNSPECIFIED: DdlRel._DdlObject.ValueType # 0 - DDL_OBJECT_TABLE: DdlRel._DdlObject.ValueType # 1 - """A Table object in the system""" - DDL_OBJECT_VIEW: DdlRel._DdlObject.ValueType # 2 - """A View object in the system""" - - class DdlObject(_DdlObject, metaclass=_DdlObjectEnumTypeWrapper): ... - DDL_OBJECT_UNSPECIFIED: DdlRel.DdlObject.ValueType # 0 - DDL_OBJECT_TABLE: DdlRel.DdlObject.ValueType # 1 - """A Table object in the system""" - DDL_OBJECT_VIEW: DdlRel.DdlObject.ValueType # 2 - """A View object in the system""" + DDL_OBJECT_UNSPECIFIED: DdlRel._DdlObject.ValueType + DDL_OBJECT_TABLE: DdlRel._DdlObject.ValueType + 'A Table object in the system' + DDL_OBJECT_VIEW: DdlRel._DdlObject.ValueType + 'A View object in the system' + + class DdlObject(_DdlObject, metaclass=_DdlObjectEnumTypeWrapper): + ... + DDL_OBJECT_UNSPECIFIED: DdlRel.DdlObject.ValueType + DDL_OBJECT_TABLE: DdlRel.DdlObject.ValueType + 'A Table object in the system' + DDL_OBJECT_VIEW: DdlRel.DdlObject.ValueType + 'A View object in the system' class _DdlOp: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _DdlOpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DdlRel._DdlOp.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - DDL_OP_UNSPECIFIED: DdlRel._DdlOp.ValueType # 0 - DDL_OP_CREATE: DdlRel._DdlOp.ValueType # 1 - """A create operation (for any object)""" - DDL_OP_CREATE_OR_REPLACE: DdlRel._DdlOp.ValueType # 2 - """A create operation if the object does not exist, or replaces it (equivalent to a DROP + CREATE) if the object already exists""" - DDL_OP_ALTER: DdlRel._DdlOp.ValueType # 3 - """An operation that modifies the schema (e.g., column names, types, default values) for the target object""" - DDL_OP_DROP: DdlRel._DdlOp.ValueType # 4 - """An operation that removes an object from the system""" - DDL_OP_DROP_IF_EXIST: DdlRel._DdlOp.ValueType # 5 - """An operation that removes an object from the system (without throwing an exception if the object did not exist)""" - - class DdlOp(_DdlOp, metaclass=_DdlOpEnumTypeWrapper): ... - DDL_OP_UNSPECIFIED: DdlRel.DdlOp.ValueType # 0 - DDL_OP_CREATE: DdlRel.DdlOp.ValueType # 1 - """A create operation (for any object)""" - DDL_OP_CREATE_OR_REPLACE: DdlRel.DdlOp.ValueType # 2 - """A create operation if the object does not exist, or replaces it (equivalent to a DROP + CREATE) if the object already exists""" - DDL_OP_ALTER: DdlRel.DdlOp.ValueType # 3 - """An operation that modifies the schema (e.g., column names, types, default values) for the target object""" - DDL_OP_DROP: DdlRel.DdlOp.ValueType # 4 - """An operation that removes an object from the system""" - DDL_OP_DROP_IF_EXIST: DdlRel.DdlOp.ValueType # 5 - """An operation that removes an object from the system (without throwing an exception if the object did not exist)""" - + DDL_OP_UNSPECIFIED: DdlRel._DdlOp.ValueType + DDL_OP_CREATE: DdlRel._DdlOp.ValueType + 'A create operation (for any object)' + DDL_OP_CREATE_OR_REPLACE: DdlRel._DdlOp.ValueType + 'A create operation if the object does not exist, or replaces it (equivalent to a DROP + CREATE) if the object already exists' + DDL_OP_ALTER: DdlRel._DdlOp.ValueType + 'An operation that modifies the schema (e.g., column names, types, default values) for the target object' + DDL_OP_DROP: DdlRel._DdlOp.ValueType + 'An operation that removes an object from the system' + DDL_OP_DROP_IF_EXIST: DdlRel._DdlOp.ValueType + 'An operation that removes an object from the system (without throwing an exception if the object did not exist)' + + class DdlOp(_DdlOp, metaclass=_DdlOpEnumTypeWrapper): + ... + DDL_OP_UNSPECIFIED: DdlRel.DdlOp.ValueType + DDL_OP_CREATE: DdlRel.DdlOp.ValueType + 'A create operation (for any object)' + DDL_OP_CREATE_OR_REPLACE: DdlRel.DdlOp.ValueType + 'A create operation if the object does not exist, or replaces it (equivalent to a DROP + CREATE) if the object already exists' + DDL_OP_ALTER: DdlRel.DdlOp.ValueType + 'An operation that modifies the schema (e.g., column names, types, default values) for the target object' + DDL_OP_DROP: DdlRel.DdlOp.ValueType + 'An operation that removes an object from the system' + DDL_OP_DROP_IF_EXIST: DdlRel.DdlOp.ValueType + 'An operation that removes an object from the system (without throwing an exception if the object did not exist)' NAMED_OBJECT_FIELD_NUMBER: builtins.int EXTENSION_OBJECT_FIELD_NUMBER: builtins.int TABLE_SCHEMA_FIELD_NUMBER: builtins.int @@ -1767,13 +1795,18 @@ class DdlRel(google.protobuf.message.Message): COMMON_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int object: global___DdlRel.DdlObject.ValueType - """Which type of object we operate on""" + 'Which type of object we operate on' op: global___DdlRel.DdlOp.ValueType - """The type of operation to perform""" + 'The type of operation to perform' + @property - def named_object(self) -> global___NamedObjectWrite: ... + def named_object(self) -> global___NamedObjectWrite: + ... + @property - def extension_object(self) -> global___ExtensionObject: ... + def extension_object(self) -> global___ExtensionObject: + ... + @property def table_schema(self) -> proto.type_pb2.NamedStruct: """The columns that will be modified (representing after-image of a schema change)""" @@ -1791,26 +1824,24 @@ class DdlRel(google.protobuf.message.Message): """The body of the CREATE VIEW""" @property - def common(self) -> global___RelCommon: ... - @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - named_object: global___NamedObjectWrite | None = ..., - extension_object: global___ExtensionObject | None = ..., - table_schema: proto.type_pb2.NamedStruct | None = ..., - table_defaults: global___Expression.Literal.Struct | None = ..., - object: global___DdlRel.DdlObject.ValueType = ..., - op: global___DdlRel.DdlOp.ValueType = ..., - view_definition: global___Rel | None = ..., - common: global___RelCommon | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "extension_object", b"extension_object", "named_object", b"named_object", "table_defaults", b"table_defaults", "table_schema", b"table_schema", "view_definition", b"view_definition", "write_type", b"write_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "extension_object", b"extension_object", "named_object", b"named_object", "object", b"object", "op", b"op", "table_defaults", b"table_defaults", "table_schema", b"table_schema", "view_definition", b"view_definition", "write_type", b"write_type"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["write_type", b"write_type"]) -> typing.Literal["named_object", "extension_object"] | None: ... + def common(self) -> global___RelCommon: + ... + + @property + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, named_object: global___NamedObjectWrite | None=..., extension_object: global___ExtensionObject | None=..., table_schema: proto.type_pb2.NamedStruct | None=..., table_defaults: global___Expression.Literal.Struct | None=..., object: global___DdlRel.DdlObject.ValueType=..., op: global___DdlRel.DdlOp.ValueType=..., view_definition: global___Rel | None=..., common: global___RelCommon | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'extension_object', b'extension_object', 'named_object', b'named_object', 'table_defaults', b'table_defaults', 'table_schema', b'table_schema', 'view_definition', b'view_definition', 'write_type', b'write_type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'extension_object', b'extension_object', 'named_object', b'named_object', 'object', b'object', 'op', b'op', 'table_defaults', b'table_defaults', 'table_schema', b'table_schema', 'view_definition', b'view_definition', 'write_type', b'write_type']) -> None: + ... + def WhichOneof(self, oneof_group: typing.Literal['write_type', b'write_type']) -> typing.Literal['named_object', 'extension_object'] | None: + ... global___DdlRel = DdlRel @typing.final @@ -1818,92 +1849,83 @@ class WriteRel(google.protobuf.message.Message): """The operator that modifies the content of a database (operates on 1 table at a time, but record-selection/source can be based on joining of multiple tables). """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor class _WriteOp: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _WriteOpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[WriteRel._WriteOp.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - WRITE_OP_UNSPECIFIED: WriteRel._WriteOp.ValueType # 0 - WRITE_OP_INSERT: WriteRel._WriteOp.ValueType # 1 - """The insert of new records in a table""" - WRITE_OP_DELETE: WriteRel._WriteOp.ValueType # 2 - """The removal of records from a table""" - WRITE_OP_UPDATE: WriteRel._WriteOp.ValueType # 3 - """The modification of existing records within a table""" - WRITE_OP_CTAS: WriteRel._WriteOp.ValueType # 4 - """The Creation of a new table, and the insert of new records in the table""" - - class WriteOp(_WriteOp, metaclass=_WriteOpEnumTypeWrapper): ... - WRITE_OP_UNSPECIFIED: WriteRel.WriteOp.ValueType # 0 - WRITE_OP_INSERT: WriteRel.WriteOp.ValueType # 1 - """The insert of new records in a table""" - WRITE_OP_DELETE: WriteRel.WriteOp.ValueType # 2 - """The removal of records from a table""" - WRITE_OP_UPDATE: WriteRel.WriteOp.ValueType # 3 - """The modification of existing records within a table""" - WRITE_OP_CTAS: WriteRel.WriteOp.ValueType # 4 - """The Creation of a new table, and the insert of new records in the table""" + WRITE_OP_UNSPECIFIED: WriteRel._WriteOp.ValueType + WRITE_OP_INSERT: WriteRel._WriteOp.ValueType + 'The insert of new records in a table' + WRITE_OP_DELETE: WriteRel._WriteOp.ValueType + 'The removal of records from a table' + WRITE_OP_UPDATE: WriteRel._WriteOp.ValueType + 'The modification of existing records within a table' + WRITE_OP_CTAS: WriteRel._WriteOp.ValueType + 'The Creation of a new table, and the insert of new records in the table' + + class WriteOp(_WriteOp, metaclass=_WriteOpEnumTypeWrapper): + ... + WRITE_OP_UNSPECIFIED: WriteRel.WriteOp.ValueType + WRITE_OP_INSERT: WriteRel.WriteOp.ValueType + 'The insert of new records in a table' + WRITE_OP_DELETE: WriteRel.WriteOp.ValueType + 'The removal of records from a table' + WRITE_OP_UPDATE: WriteRel.WriteOp.ValueType + 'The modification of existing records within a table' + WRITE_OP_CTAS: WriteRel.WriteOp.ValueType + 'The Creation of a new table, and the insert of new records in the table' class _CreateMode: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _CreateModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[WriteRel._CreateMode.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - CREATE_MODE_UNSPECIFIED: WriteRel._CreateMode.ValueType # 0 - CREATE_MODE_APPEND_IF_EXISTS: WriteRel._CreateMode.ValueType # 1 - """Append the data to the table if it already exists""" - CREATE_MODE_REPLACE_IF_EXISTS: WriteRel._CreateMode.ValueType # 2 - """Replace the table if it already exists ("OR REPLACE")""" - CREATE_MODE_IGNORE_IF_EXISTS: WriteRel._CreateMode.ValueType # 3 - """Ignore the request if the table already exists ("IF NOT EXISTS")""" - CREATE_MODE_ERROR_IF_EXISTS: WriteRel._CreateMode.ValueType # 4 - """Throw an error if the table already exists (default behavior)""" - - class CreateMode(_CreateMode, metaclass=_CreateModeEnumTypeWrapper): ... - CREATE_MODE_UNSPECIFIED: WriteRel.CreateMode.ValueType # 0 - CREATE_MODE_APPEND_IF_EXISTS: WriteRel.CreateMode.ValueType # 1 - """Append the data to the table if it already exists""" - CREATE_MODE_REPLACE_IF_EXISTS: WriteRel.CreateMode.ValueType # 2 - """Replace the table if it already exists ("OR REPLACE")""" - CREATE_MODE_IGNORE_IF_EXISTS: WriteRel.CreateMode.ValueType # 3 - """Ignore the request if the table already exists ("IF NOT EXISTS")""" - CREATE_MODE_ERROR_IF_EXISTS: WriteRel.CreateMode.ValueType # 4 - """Throw an error if the table already exists (default behavior)""" + CREATE_MODE_UNSPECIFIED: WriteRel._CreateMode.ValueType + CREATE_MODE_APPEND_IF_EXISTS: WriteRel._CreateMode.ValueType + 'Append the data to the table if it already exists' + CREATE_MODE_REPLACE_IF_EXISTS: WriteRel._CreateMode.ValueType + 'Replace the table if it already exists ("OR REPLACE")' + CREATE_MODE_IGNORE_IF_EXISTS: WriteRel._CreateMode.ValueType + 'Ignore the request if the table already exists ("IF NOT EXISTS")' + CREATE_MODE_ERROR_IF_EXISTS: WriteRel._CreateMode.ValueType + 'Throw an error if the table already exists (default behavior)' + + class CreateMode(_CreateMode, metaclass=_CreateModeEnumTypeWrapper): + ... + CREATE_MODE_UNSPECIFIED: WriteRel.CreateMode.ValueType + CREATE_MODE_APPEND_IF_EXISTS: WriteRel.CreateMode.ValueType + 'Append the data to the table if it already exists' + CREATE_MODE_REPLACE_IF_EXISTS: WriteRel.CreateMode.ValueType + 'Replace the table if it already exists ("OR REPLACE")' + CREATE_MODE_IGNORE_IF_EXISTS: WriteRel.CreateMode.ValueType + 'Ignore the request if the table already exists ("IF NOT EXISTS")' + CREATE_MODE_ERROR_IF_EXISTS: WriteRel.CreateMode.ValueType + 'Throw an error if the table already exists (default behavior)' class _OutputMode: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _OutputModeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[WriteRel._OutputMode.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - OUTPUT_MODE_UNSPECIFIED: WriteRel._OutputMode.ValueType # 0 - OUTPUT_MODE_NO_OUTPUT: WriteRel._OutputMode.ValueType # 1 - """return no records at all""" - OUTPUT_MODE_MODIFIED_RECORDS: WriteRel._OutputMode.ValueType # 2 - """this mode makes the operator return all the record INSERTED/DELETED/UPDATED by the operator. - The operator returns the AFTER-image of any change. This can be further manipulated by operators upstreams - (e.g., retunring the typical "count of modified records"). - For scenarios in which the BEFORE image is required, the user must implement a spool (via references to - subplans in the body of the Rel input) and return those with anounter PlanRel.relations. - """ - - class OutputMode(_OutputMode, metaclass=_OutputModeEnumTypeWrapper): ... - OUTPUT_MODE_UNSPECIFIED: WriteRel.OutputMode.ValueType # 0 - OUTPUT_MODE_NO_OUTPUT: WriteRel.OutputMode.ValueType # 1 - """return no records at all""" - OUTPUT_MODE_MODIFIED_RECORDS: WriteRel.OutputMode.ValueType # 2 - """this mode makes the operator return all the record INSERTED/DELETED/UPDATED by the operator. - The operator returns the AFTER-image of any change. This can be further manipulated by operators upstreams - (e.g., retunring the typical "count of modified records"). - For scenarios in which the BEFORE image is required, the user must implement a spool (via references to - subplans in the body of the Rel input) and return those with anounter PlanRel.relations. - """ - + OUTPUT_MODE_UNSPECIFIED: WriteRel._OutputMode.ValueType + OUTPUT_MODE_NO_OUTPUT: WriteRel._OutputMode.ValueType + 'return no records at all' + OUTPUT_MODE_MODIFIED_RECORDS: WriteRel._OutputMode.ValueType + 'this mode makes the operator return all the record INSERTED/DELETED/UPDATED by the operator.\n The operator returns the AFTER-image of any change. This can be further manipulated by operators upstreams\n (e.g., retunring the typical "count of modified records").\n For scenarios in which the BEFORE image is required, the user must implement a spool (via references to\n subplans in the body of the Rel input) and return those with anounter PlanRel.relations.\n ' + + class OutputMode(_OutputMode, metaclass=_OutputModeEnumTypeWrapper): + ... + OUTPUT_MODE_UNSPECIFIED: WriteRel.OutputMode.ValueType + OUTPUT_MODE_NO_OUTPUT: WriteRel.OutputMode.ValueType + 'return no records at all' + OUTPUT_MODE_MODIFIED_RECORDS: WriteRel.OutputMode.ValueType + 'this mode makes the operator return all the record INSERTED/DELETED/UPDATED by the operator.\n The operator returns the AFTER-image of any change. This can be further manipulated by operators upstreams\n (e.g., retunring the typical "count of modified records").\n For scenarios in which the BEFORE image is required, the user must implement a spool (via references to\n subplans in the body of the Rel input) and return those with anounter PlanRel.relations.\n ' NAMED_TABLE_FIELD_NUMBER: builtins.int EXTENSION_TABLE_FIELD_NUMBER: builtins.int TABLE_SCHEMA_FIELD_NUMBER: builtins.int @@ -1914,15 +1936,20 @@ class WriteRel(google.protobuf.message.Message): COMMON_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int op: global___WriteRel.WriteOp.ValueType - """The type of operation to perform""" + 'The type of operation to perform' create_mode: global___WriteRel.CreateMode.ValueType - """Used with CTAS to determine what to do if the table already exists""" + 'Used with CTAS to determine what to do if the table already exists' output: global___WriteRel.OutputMode.ValueType - """Output mode determines what is the output of executing this rel""" + 'Output mode determines what is the output of executing this rel' + @property - def named_table(self) -> global___NamedObjectWrite: ... + def named_table(self) -> global___NamedObjectWrite: + ... + @property - def extension_table(self) -> global___ExtensionObject: ... + def extension_table(self) -> global___ExtensionObject: + ... + @property def table_schema(self) -> proto.type_pb2.NamedStruct: """The schema of the table (must align with Rel input (e.g., number of leaf fields must match))""" @@ -1936,62 +1963,61 @@ class WriteRel(google.protobuf.message.Message): """ @property - def common(self) -> global___RelCommon: ... - @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - named_table: global___NamedObjectWrite | None = ..., - extension_table: global___ExtensionObject | None = ..., - table_schema: proto.type_pb2.NamedStruct | None = ..., - op: global___WriteRel.WriteOp.ValueType = ..., - input: global___Rel | None = ..., - create_mode: global___WriteRel.CreateMode.ValueType = ..., - output: global___WriteRel.OutputMode.ValueType = ..., - common: global___RelCommon | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "extension_table", b"extension_table", "input", b"input", "named_table", b"named_table", "table_schema", b"table_schema", "write_type", b"write_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "create_mode", b"create_mode", "extension_table", b"extension_table", "input", b"input", "named_table", b"named_table", "op", b"op", "output", b"output", "table_schema", b"table_schema", "write_type", b"write_type"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["write_type", b"write_type"]) -> typing.Literal["named_table", "extension_table"] | None: ... + def common(self) -> global___RelCommon: + ... + + @property + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, named_table: global___NamedObjectWrite | None=..., extension_table: global___ExtensionObject | None=..., table_schema: proto.type_pb2.NamedStruct | None=..., op: global___WriteRel.WriteOp.ValueType=..., input: global___Rel | None=..., create_mode: global___WriteRel.CreateMode.ValueType=..., output: global___WriteRel.OutputMode.ValueType=..., common: global___RelCommon | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'extension_table', b'extension_table', 'input', b'input', 'named_table', b'named_table', 'table_schema', b'table_schema', 'write_type', b'write_type']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'create_mode', b'create_mode', 'extension_table', b'extension_table', 'input', b'input', 'named_table', b'named_table', 'op', b'op', 'output', b'output', 'table_schema', b'table_schema', 'write_type', b'write_type']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['write_type', b'write_type']) -> typing.Literal['named_table', 'extension_table'] | None: + ... global___WriteRel = WriteRel @typing.final class UpdateRel(google.protobuf.message.Message): """The operator that modifies the columns of a table""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class TransformExpression(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TRANSFORMATION_FIELD_NUMBER: builtins.int COLUMN_TARGET_FIELD_NUMBER: builtins.int column_target: builtins.int - """index of the column to apply the transformation to""" + 'index of the column to apply the transformation to' + @property def transformation(self) -> global___Expression: """the transformation to apply""" - def __init__( - self, - *, - transformation: global___Expression | None = ..., - column_target: builtins.int = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["transformation", b"transformation"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["column_target", b"column_target", "transformation", b"transformation"]) -> None: ... + def __init__(self, *, transformation: global___Expression | None=..., column_target: builtins.int=...) -> None: + ... + def HasField(self, field_name: typing.Literal['transformation', b'transformation']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['column_target', b'column_target', 'transformation', b'transformation']) -> None: + ... NAMED_TABLE_FIELD_NUMBER: builtins.int TABLE_SCHEMA_FIELD_NUMBER: builtins.int CONDITION_FIELD_NUMBER: builtins.int TRANSFORMATIONS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + @property - def named_table(self) -> global___NamedTable: ... + def named_table(self) -> global___NamedTable: + ... + @property def table_schema(self) -> proto.type_pb2.NamedStruct: """The full schema of the named_table""" @@ -2005,20 +2031,20 @@ class UpdateRel(google.protobuf.message.Message): """The list of transformations to apply to the columns of the named_table""" @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - named_table: global___NamedTable | None = ..., - table_schema: proto.type_pb2.NamedStruct | None = ..., - condition: global___Expression | None = ..., - transformations: collections.abc.Iterable[global___UpdateRel.TransformExpression] | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "condition", b"condition", "named_table", b"named_table", "table_schema", b"table_schema", "update_type", b"update_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "condition", b"condition", "named_table", b"named_table", "table_schema", b"table_schema", "transformations", b"transformations", "update_type", b"update_type"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["update_type", b"update_type"]) -> typing.Literal["named_table"] | None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, named_table: global___NamedTable | None=..., table_schema: proto.type_pb2.NamedStruct | None=..., condition: global___Expression | None=..., transformations: collections.abc.Iterable[global___UpdateRel.TransformExpression] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'condition', b'condition', 'named_table', b'named_table', 'table_schema', b'table_schema', 'update_type', b'update_type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'condition', b'condition', 'named_table', b'named_table', 'table_schema', b'table_schema', 'transformations', b'transformations', 'update_type', b'update_type']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['update_type', b'update_type']) -> typing.Literal['named_table'] | None: + ... global___UpdateRel = UpdateRel @typing.final @@ -2026,24 +2052,26 @@ class NamedTable(google.protobuf.message.Message): """A base table. The list of string is used to represent namespacing (e.g., mydb.mytable). This assumes shared catalog between systems exchanging a message. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAMES_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int + @property - def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + ... + @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - names: collections.abc.Iterable[builtins.str] | None = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "names", b"names"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, names: collections.abc.Iterable[builtins.str] | None=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'names', b'names']) -> None: + ... global___NamedTable = NamedTable @typing.final @@ -2052,83 +2080,60 @@ class ComparisonJoinKey(google.protobuf.message.Message): expression is an series of comparisons between fields that are ANDed together. The behavior of this comparison is flexible """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor class _SimpleComparisonType: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _SimpleComparisonTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[ComparisonJoinKey._SimpleComparisonType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - SIMPLE_COMPARISON_TYPE_UNSPECIFIED: ComparisonJoinKey._SimpleComparisonType.ValueType # 0 - SIMPLE_COMPARISON_TYPE_EQ: ComparisonJoinKey._SimpleComparisonType.ValueType # 1 - """Returns true only if both values are equal and not null""" - SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM: ComparisonJoinKey._SimpleComparisonType.ValueType # 2 - """Returns true if both values are equal and not null - Returns true if both values are null - Returns false if one value is null and the other value is not null - - This can be expressed as a = b OR (isnull(a) AND isnull(b)) - """ - SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL: ComparisonJoinKey._SimpleComparisonType.ValueType # 3 - """Returns true if both values are equal and not null - Returns true if either value is null - - This can be expressed as a = b OR isnull(a = b) - """ + SIMPLE_COMPARISON_TYPE_UNSPECIFIED: ComparisonJoinKey._SimpleComparisonType.ValueType + SIMPLE_COMPARISON_TYPE_EQ: ComparisonJoinKey._SimpleComparisonType.ValueType + 'Returns true only if both values are equal and not null' + SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM: ComparisonJoinKey._SimpleComparisonType.ValueType + 'Returns true if both values are equal and not null\n Returns true if both values are null\n Returns false if one value is null and the other value is not null\n\n This can be expressed as a = b OR (isnull(a) AND isnull(b))\n ' + SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL: ComparisonJoinKey._SimpleComparisonType.ValueType + 'Returns true if both values are equal and not null\n Returns true if either value is null\n\n This can be expressed as a = b OR isnull(a = b)\n ' class SimpleComparisonType(_SimpleComparisonType, metaclass=_SimpleComparisonTypeEnumTypeWrapper): """Most joins will use one of the following behaviors. To avoid the complexity of a function lookup we define the common behaviors here """ - - SIMPLE_COMPARISON_TYPE_UNSPECIFIED: ComparisonJoinKey.SimpleComparisonType.ValueType # 0 - SIMPLE_COMPARISON_TYPE_EQ: ComparisonJoinKey.SimpleComparisonType.ValueType # 1 - """Returns true only if both values are equal and not null""" - SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM: ComparisonJoinKey.SimpleComparisonType.ValueType # 2 - """Returns true if both values are equal and not null - Returns true if both values are null - Returns false if one value is null and the other value is not null - - This can be expressed as a = b OR (isnull(a) AND isnull(b)) - """ - SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL: ComparisonJoinKey.SimpleComparisonType.ValueType # 3 - """Returns true if both values are equal and not null - Returns true if either value is null - - This can be expressed as a = b OR isnull(a = b) - """ + SIMPLE_COMPARISON_TYPE_UNSPECIFIED: ComparisonJoinKey.SimpleComparisonType.ValueType + SIMPLE_COMPARISON_TYPE_EQ: ComparisonJoinKey.SimpleComparisonType.ValueType + 'Returns true only if both values are equal and not null' + SIMPLE_COMPARISON_TYPE_IS_NOT_DISTINCT_FROM: ComparisonJoinKey.SimpleComparisonType.ValueType + 'Returns true if both values are equal and not null\n Returns true if both values are null\n Returns false if one value is null and the other value is not null\n\n This can be expressed as a = b OR (isnull(a) AND isnull(b))\n ' + SIMPLE_COMPARISON_TYPE_MIGHT_EQUAL: ComparisonJoinKey.SimpleComparisonType.ValueType + 'Returns true if both values are equal and not null\n Returns true if either value is null\n\n This can be expressed as a = b OR isnull(a = b)\n ' @typing.final class ComparisonType(google.protobuf.message.Message): """Describes how the relation should consider if two rows are a match""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SIMPLE_FIELD_NUMBER: builtins.int CUSTOM_FUNCTION_REFERENCE_FIELD_NUMBER: builtins.int simple: global___ComparisonJoinKey.SimpleComparisonType.ValueType - """One of the simple comparison behaviors is used""" + 'One of the simple comparison behaviors is used' custom_function_reference: builtins.int - """A custom comparison behavior is used. This can happen, for example, when using - collations, where we might want to do something like a case-insensitive comparison. + 'A custom comparison behavior is used. This can happen, for example, when using\n collations, where we might want to do something like a case-insensitive comparison.\n\n This must be a binary function with a boolean return type\n ' - This must be a binary function with a boolean return type - """ - def __init__( - self, - *, - simple: global___ComparisonJoinKey.SimpleComparisonType.ValueType = ..., - custom_function_reference: builtins.int = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["custom_function_reference", b"custom_function_reference", "inner_type", b"inner_type", "simple", b"simple"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["custom_function_reference", b"custom_function_reference", "inner_type", b"inner_type", "simple", b"simple"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["inner_type", b"inner_type"]) -> typing.Literal["simple", "custom_function_reference"] | None: ... + def __init__(self, *, simple: global___ComparisonJoinKey.SimpleComparisonType.ValueType=..., custom_function_reference: builtins.int=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['custom_function_reference', b'custom_function_reference', 'inner_type', b'inner_type', 'simple', b'simple']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['custom_function_reference', b'custom_function_reference', 'inner_type', b'inner_type', 'simple', b'simple']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['inner_type', b'inner_type']) -> typing.Literal['simple', 'custom_function_reference'] | None: + ... LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int COMPARISON_FIELD_NUMBER: builtins.int + @property def left(self) -> global___Expression.FieldReference: """The key to compare from the left table""" @@ -2141,16 +2146,14 @@ class ComparisonJoinKey(google.protobuf.message.Message): def comparison(self) -> global___ComparisonJoinKey.ComparisonType: """Describes how to compare the two keys""" - def __init__( - self, - *, - left: global___Expression.FieldReference | None = ..., - right: global___Expression.FieldReference | None = ..., - comparison: global___ComparisonJoinKey.ComparisonType | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["comparison", b"comparison", "left", b"left", "right", b"right"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["comparison", b"comparison", "left", b"left", "right", b"right"]) -> None: ... + def __init__(self, *, left: global___Expression.FieldReference | None=..., right: global___Expression.FieldReference | None=..., comparison: global___ComparisonJoinKey.ComparisonType | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['comparison', b'comparison', 'left', b'left', 'right', b'right']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['comparison', b'comparison', 'left', b'left', 'right', b'right']) -> None: + ... global___ComparisonJoinKey = ComparisonJoinKey @typing.final @@ -2160,59 +2163,59 @@ class HashJoinRel(google.protobuf.message.Message): Two rows are a match if the comparison function returns true for all keys """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor class _JoinType: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _JoinTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[HashJoinRel._JoinType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - JOIN_TYPE_UNSPECIFIED: HashJoinRel._JoinType.ValueType # 0 - JOIN_TYPE_INNER: HashJoinRel._JoinType.ValueType # 1 - JOIN_TYPE_OUTER: HashJoinRel._JoinType.ValueType # 2 - JOIN_TYPE_LEFT: HashJoinRel._JoinType.ValueType # 3 - JOIN_TYPE_RIGHT: HashJoinRel._JoinType.ValueType # 4 - JOIN_TYPE_LEFT_SEMI: HashJoinRel._JoinType.ValueType # 5 - JOIN_TYPE_RIGHT_SEMI: HashJoinRel._JoinType.ValueType # 6 - JOIN_TYPE_LEFT_ANTI: HashJoinRel._JoinType.ValueType # 7 - JOIN_TYPE_RIGHT_ANTI: HashJoinRel._JoinType.ValueType # 8 - JOIN_TYPE_LEFT_SINGLE: HashJoinRel._JoinType.ValueType # 9 - JOIN_TYPE_RIGHT_SINGLE: HashJoinRel._JoinType.ValueType # 10 - JOIN_TYPE_LEFT_MARK: HashJoinRel._JoinType.ValueType # 11 - JOIN_TYPE_RIGHT_MARK: HashJoinRel._JoinType.ValueType # 12 - - class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): ... - JOIN_TYPE_UNSPECIFIED: HashJoinRel.JoinType.ValueType # 0 - JOIN_TYPE_INNER: HashJoinRel.JoinType.ValueType # 1 - JOIN_TYPE_OUTER: HashJoinRel.JoinType.ValueType # 2 - JOIN_TYPE_LEFT: HashJoinRel.JoinType.ValueType # 3 - JOIN_TYPE_RIGHT: HashJoinRel.JoinType.ValueType # 4 - JOIN_TYPE_LEFT_SEMI: HashJoinRel.JoinType.ValueType # 5 - JOIN_TYPE_RIGHT_SEMI: HashJoinRel.JoinType.ValueType # 6 - JOIN_TYPE_LEFT_ANTI: HashJoinRel.JoinType.ValueType # 7 - JOIN_TYPE_RIGHT_ANTI: HashJoinRel.JoinType.ValueType # 8 - JOIN_TYPE_LEFT_SINGLE: HashJoinRel.JoinType.ValueType # 9 - JOIN_TYPE_RIGHT_SINGLE: HashJoinRel.JoinType.ValueType # 10 - JOIN_TYPE_LEFT_MARK: HashJoinRel.JoinType.ValueType # 11 - JOIN_TYPE_RIGHT_MARK: HashJoinRel.JoinType.ValueType # 12 + JOIN_TYPE_UNSPECIFIED: HashJoinRel._JoinType.ValueType + JOIN_TYPE_INNER: HashJoinRel._JoinType.ValueType + JOIN_TYPE_OUTER: HashJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT: HashJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT: HashJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_SEMI: HashJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_SEMI: HashJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_ANTI: HashJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_ANTI: HashJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_SINGLE: HashJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_SINGLE: HashJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_MARK: HashJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_MARK: HashJoinRel._JoinType.ValueType + + class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): + ... + JOIN_TYPE_UNSPECIFIED: HashJoinRel.JoinType.ValueType + JOIN_TYPE_INNER: HashJoinRel.JoinType.ValueType + JOIN_TYPE_OUTER: HashJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT: HashJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT: HashJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_SEMI: HashJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_SEMI: HashJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_ANTI: HashJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_ANTI: HashJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_SINGLE: HashJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_SINGLE: HashJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_MARK: HashJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_MARK: HashJoinRel.JoinType.ValueType class _BuildInput: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _BuildInputEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[HashJoinRel._BuildInput.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - BUILD_INPUT_UNSPECIFIED: HashJoinRel._BuildInput.ValueType # 0 - BUILD_INPUT_LEFT: HashJoinRel._BuildInput.ValueType # 1 - BUILD_INPUT_RIGHT: HashJoinRel._BuildInput.ValueType # 2 - - class BuildInput(_BuildInput, metaclass=_BuildInputEnumTypeWrapper): ... - BUILD_INPUT_UNSPECIFIED: HashJoinRel.BuildInput.ValueType # 0 - BUILD_INPUT_LEFT: HashJoinRel.BuildInput.ValueType # 1 - BUILD_INPUT_RIGHT: HashJoinRel.BuildInput.ValueType # 2 - + BUILD_INPUT_UNSPECIFIED: HashJoinRel._BuildInput.ValueType + BUILD_INPUT_LEFT: HashJoinRel._BuildInput.ValueType + BUILD_INPUT_RIGHT: HashJoinRel._BuildInput.ValueType + + class BuildInput(_BuildInput, metaclass=_BuildInputEnumTypeWrapper): + ... + BUILD_INPUT_UNSPECIFIED: HashJoinRel.BuildInput.ValueType + BUILD_INPUT_LEFT: HashJoinRel.BuildInput.ValueType + BUILD_INPUT_RIGHT: HashJoinRel.BuildInput.ValueType COMMON_FIELD_NUMBER: builtins.int LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int @@ -2225,13 +2228,20 @@ class HashJoinRel(google.protobuf.message.Message): ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int type: global___HashJoinRel.JoinType.ValueType build_input: global___HashJoinRel.BuildInput.ValueType - """Specifies which side of input to build the hash table for this hash join. Default is `BUILD_INPUT_RIGHT`.""" + 'Specifies which side of input to build the hash table for this hash join. Default is `BUILD_INPUT_RIGHT`.' + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def left(self) -> global___Rel: ... + def left(self) -> global___Rel: + ... + @property - def right(self) -> global___Rel: ... + def right(self) -> global___Rel: + ... + @property def left_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: """These fields are deprecated in favor of `keys`. If they are set then @@ -2240,7 +2250,9 @@ class HashJoinRel(google.protobuf.message.Message): """ @property - def right_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: ... + def right_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: + ... + @property def keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ComparisonJoinKey]: """One or more keys to join on. The relation is invalid if this is empty @@ -2259,26 +2271,21 @@ class HashJoinRel(google.protobuf.message.Message): """ @property - def post_join_filter(self) -> global___Expression: ... - @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - left: global___Rel | None = ..., - right: global___Rel | None = ..., - left_keys: collections.abc.Iterable[global___Expression.FieldReference] | None = ..., - right_keys: collections.abc.Iterable[global___Expression.FieldReference] | None = ..., - keys: collections.abc.Iterable[global___ComparisonJoinKey] | None = ..., - post_join_filter: global___Expression | None = ..., - type: global___HashJoinRel.JoinType.ValueType = ..., - build_input: global___HashJoinRel.BuildInput.ValueType = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "left", b"left", "post_join_filter", b"post_join_filter", "right", b"right"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "build_input", b"build_input", "common", b"common", "keys", b"keys", "left", b"left", "left_keys", b"left_keys", "post_join_filter", b"post_join_filter", "right", b"right", "right_keys", b"right_keys", "type", b"type"]) -> None: ... + def post_join_filter(self) -> global___Expression: + ... + + @property + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, common: global___RelCommon | None=..., left: global___Rel | None=..., right: global___Rel | None=..., left_keys: collections.abc.Iterable[global___Expression.FieldReference] | None=..., right_keys: collections.abc.Iterable[global___Expression.FieldReference] | None=..., keys: collections.abc.Iterable[global___ComparisonJoinKey] | None=..., post_join_filter: global___Expression | None=..., type: global___HashJoinRel.JoinType.ValueType=..., build_input: global___HashJoinRel.BuildInput.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'left', b'left', 'post_join_filter', b'post_join_filter', 'right', b'right']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'build_input', b'build_input', 'common', b'common', 'keys', b'keys', 'left', b'left', 'left_keys', b'left_keys', 'post_join_filter', b'post_join_filter', 'right', b'right', 'right_keys', b'right_keys', 'type', b'type']) -> None: + ... global___HashJoinRel = HashJoinRel @typing.final @@ -2286,44 +2293,43 @@ class MergeJoinRel(google.protobuf.message.Message): """The merge equijoin does a join by taking advantage of two sets that are sorted on the join keys. This allows the join operation to be done in a streaming fashion. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor class _JoinType: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _JoinTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[MergeJoinRel._JoinType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - JOIN_TYPE_UNSPECIFIED: MergeJoinRel._JoinType.ValueType # 0 - JOIN_TYPE_INNER: MergeJoinRel._JoinType.ValueType # 1 - JOIN_TYPE_OUTER: MergeJoinRel._JoinType.ValueType # 2 - JOIN_TYPE_LEFT: MergeJoinRel._JoinType.ValueType # 3 - JOIN_TYPE_RIGHT: MergeJoinRel._JoinType.ValueType # 4 - JOIN_TYPE_LEFT_SEMI: MergeJoinRel._JoinType.ValueType # 5 - JOIN_TYPE_RIGHT_SEMI: MergeJoinRel._JoinType.ValueType # 6 - JOIN_TYPE_LEFT_ANTI: MergeJoinRel._JoinType.ValueType # 7 - JOIN_TYPE_RIGHT_ANTI: MergeJoinRel._JoinType.ValueType # 8 - JOIN_TYPE_LEFT_SINGLE: MergeJoinRel._JoinType.ValueType # 9 - JOIN_TYPE_RIGHT_SINGLE: MergeJoinRel._JoinType.ValueType # 10 - JOIN_TYPE_LEFT_MARK: MergeJoinRel._JoinType.ValueType # 11 - JOIN_TYPE_RIGHT_MARK: MergeJoinRel._JoinType.ValueType # 12 - - class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): ... - JOIN_TYPE_UNSPECIFIED: MergeJoinRel.JoinType.ValueType # 0 - JOIN_TYPE_INNER: MergeJoinRel.JoinType.ValueType # 1 - JOIN_TYPE_OUTER: MergeJoinRel.JoinType.ValueType # 2 - JOIN_TYPE_LEFT: MergeJoinRel.JoinType.ValueType # 3 - JOIN_TYPE_RIGHT: MergeJoinRel.JoinType.ValueType # 4 - JOIN_TYPE_LEFT_SEMI: MergeJoinRel.JoinType.ValueType # 5 - JOIN_TYPE_RIGHT_SEMI: MergeJoinRel.JoinType.ValueType # 6 - JOIN_TYPE_LEFT_ANTI: MergeJoinRel.JoinType.ValueType # 7 - JOIN_TYPE_RIGHT_ANTI: MergeJoinRel.JoinType.ValueType # 8 - JOIN_TYPE_LEFT_SINGLE: MergeJoinRel.JoinType.ValueType # 9 - JOIN_TYPE_RIGHT_SINGLE: MergeJoinRel.JoinType.ValueType # 10 - JOIN_TYPE_LEFT_MARK: MergeJoinRel.JoinType.ValueType # 11 - JOIN_TYPE_RIGHT_MARK: MergeJoinRel.JoinType.ValueType # 12 - + JOIN_TYPE_UNSPECIFIED: MergeJoinRel._JoinType.ValueType + JOIN_TYPE_INNER: MergeJoinRel._JoinType.ValueType + JOIN_TYPE_OUTER: MergeJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT: MergeJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT: MergeJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_SEMI: MergeJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_SEMI: MergeJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_ANTI: MergeJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_ANTI: MergeJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_SINGLE: MergeJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_SINGLE: MergeJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_MARK: MergeJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_MARK: MergeJoinRel._JoinType.ValueType + + class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): + ... + JOIN_TYPE_UNSPECIFIED: MergeJoinRel.JoinType.ValueType + JOIN_TYPE_INNER: MergeJoinRel.JoinType.ValueType + JOIN_TYPE_OUTER: MergeJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT: MergeJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT: MergeJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_SEMI: MergeJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_SEMI: MergeJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_ANTI: MergeJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_ANTI: MergeJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_SINGLE: MergeJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_SINGLE: MergeJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_MARK: MergeJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_MARK: MergeJoinRel.JoinType.ValueType COMMON_FIELD_NUMBER: builtins.int LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int @@ -2334,12 +2340,19 @@ class MergeJoinRel(google.protobuf.message.Message): TYPE_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int type: global___MergeJoinRel.JoinType.ValueType + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def left(self) -> global___Rel: ... + def left(self) -> global___Rel: + ... + @property - def right(self) -> global___Rel: ... + def right(self) -> global___Rel: + ... + @property def left_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: """These fields are deprecated in favor of `keys`. If they are set then @@ -2348,7 +2361,9 @@ class MergeJoinRel(google.protobuf.message.Message): """ @property - def right_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: ... + def right_keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.FieldReference]: + ... + @property def keys(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ComparisonJoinKey]: """One or more keys to join on. The relation is invalid if this is empty @@ -2369,25 +2384,21 @@ class MergeJoinRel(google.protobuf.message.Message): """ @property - def post_join_filter(self) -> global___Expression: ... - @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - left: global___Rel | None = ..., - right: global___Rel | None = ..., - left_keys: collections.abc.Iterable[global___Expression.FieldReference] | None = ..., - right_keys: collections.abc.Iterable[global___Expression.FieldReference] | None = ..., - keys: collections.abc.Iterable[global___ComparisonJoinKey] | None = ..., - post_join_filter: global___Expression | None = ..., - type: global___MergeJoinRel.JoinType.ValueType = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "left", b"left", "post_join_filter", b"post_join_filter", "right", b"right"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "keys", b"keys", "left", b"left", "left_keys", b"left_keys", "post_join_filter", b"post_join_filter", "right", b"right", "right_keys", b"right_keys", "type", b"type"]) -> None: ... + def post_join_filter(self) -> global___Expression: + ... + + @property + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, common: global___RelCommon | None=..., left: global___Rel | None=..., right: global___Rel | None=..., left_keys: collections.abc.Iterable[global___Expression.FieldReference] | None=..., right_keys: collections.abc.Iterable[global___Expression.FieldReference] | None=..., keys: collections.abc.Iterable[global___ComparisonJoinKey] | None=..., post_join_filter: global___Expression | None=..., type: global___MergeJoinRel.JoinType.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'left', b'left', 'post_join_filter', b'post_join_filter', 'right', b'right']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'keys', b'keys', 'left', b'left', 'left_keys', b'left_keys', 'post_join_filter', b'post_join_filter', 'right', b'right', 'right_keys', b'right_keys', 'type', b'type']) -> None: + ... global___MergeJoinRel = MergeJoinRel @typing.final @@ -2395,44 +2406,43 @@ class NestedLoopJoinRel(google.protobuf.message.Message): """The nested loop join (NLJ) operator will hold the entire right input and iterate over it using the left input, evaluating the join expression on the Cartesian product of all rows. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor class _JoinType: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _JoinTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[NestedLoopJoinRel._JoinType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - JOIN_TYPE_UNSPECIFIED: NestedLoopJoinRel._JoinType.ValueType # 0 - JOIN_TYPE_INNER: NestedLoopJoinRel._JoinType.ValueType # 1 - JOIN_TYPE_OUTER: NestedLoopJoinRel._JoinType.ValueType # 2 - JOIN_TYPE_LEFT: NestedLoopJoinRel._JoinType.ValueType # 3 - JOIN_TYPE_RIGHT: NestedLoopJoinRel._JoinType.ValueType # 4 - JOIN_TYPE_LEFT_SEMI: NestedLoopJoinRel._JoinType.ValueType # 5 - JOIN_TYPE_RIGHT_SEMI: NestedLoopJoinRel._JoinType.ValueType # 6 - JOIN_TYPE_LEFT_ANTI: NestedLoopJoinRel._JoinType.ValueType # 7 - JOIN_TYPE_RIGHT_ANTI: NestedLoopJoinRel._JoinType.ValueType # 8 - JOIN_TYPE_LEFT_SINGLE: NestedLoopJoinRel._JoinType.ValueType # 9 - JOIN_TYPE_RIGHT_SINGLE: NestedLoopJoinRel._JoinType.ValueType # 10 - JOIN_TYPE_LEFT_MARK: NestedLoopJoinRel._JoinType.ValueType # 11 - JOIN_TYPE_RIGHT_MARK: NestedLoopJoinRel._JoinType.ValueType # 12 - - class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): ... - JOIN_TYPE_UNSPECIFIED: NestedLoopJoinRel.JoinType.ValueType # 0 - JOIN_TYPE_INNER: NestedLoopJoinRel.JoinType.ValueType # 1 - JOIN_TYPE_OUTER: NestedLoopJoinRel.JoinType.ValueType # 2 - JOIN_TYPE_LEFT: NestedLoopJoinRel.JoinType.ValueType # 3 - JOIN_TYPE_RIGHT: NestedLoopJoinRel.JoinType.ValueType # 4 - JOIN_TYPE_LEFT_SEMI: NestedLoopJoinRel.JoinType.ValueType # 5 - JOIN_TYPE_RIGHT_SEMI: NestedLoopJoinRel.JoinType.ValueType # 6 - JOIN_TYPE_LEFT_ANTI: NestedLoopJoinRel.JoinType.ValueType # 7 - JOIN_TYPE_RIGHT_ANTI: NestedLoopJoinRel.JoinType.ValueType # 8 - JOIN_TYPE_LEFT_SINGLE: NestedLoopJoinRel.JoinType.ValueType # 9 - JOIN_TYPE_RIGHT_SINGLE: NestedLoopJoinRel.JoinType.ValueType # 10 - JOIN_TYPE_LEFT_MARK: NestedLoopJoinRel.JoinType.ValueType # 11 - JOIN_TYPE_RIGHT_MARK: NestedLoopJoinRel.JoinType.ValueType # 12 - + JOIN_TYPE_UNSPECIFIED: NestedLoopJoinRel._JoinType.ValueType + JOIN_TYPE_INNER: NestedLoopJoinRel._JoinType.ValueType + JOIN_TYPE_OUTER: NestedLoopJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT: NestedLoopJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT: NestedLoopJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_SEMI: NestedLoopJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_SEMI: NestedLoopJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_ANTI: NestedLoopJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_ANTI: NestedLoopJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_SINGLE: NestedLoopJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_SINGLE: NestedLoopJoinRel._JoinType.ValueType + JOIN_TYPE_LEFT_MARK: NestedLoopJoinRel._JoinType.ValueType + JOIN_TYPE_RIGHT_MARK: NestedLoopJoinRel._JoinType.ValueType + + class JoinType(_JoinType, metaclass=_JoinTypeEnumTypeWrapper): + ... + JOIN_TYPE_UNSPECIFIED: NestedLoopJoinRel.JoinType.ValueType + JOIN_TYPE_INNER: NestedLoopJoinRel.JoinType.ValueType + JOIN_TYPE_OUTER: NestedLoopJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT: NestedLoopJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT: NestedLoopJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_SEMI: NestedLoopJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_SEMI: NestedLoopJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_ANTI: NestedLoopJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_ANTI: NestedLoopJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_SINGLE: NestedLoopJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_SINGLE: NestedLoopJoinRel.JoinType.ValueType + JOIN_TYPE_LEFT_MARK: NestedLoopJoinRel.JoinType.ValueType + JOIN_TYPE_RIGHT_MARK: NestedLoopJoinRel.JoinType.ValueType COMMON_FIELD_NUMBER: builtins.int LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int @@ -2440,58 +2450,65 @@ class NestedLoopJoinRel(google.protobuf.message.Message): TYPE_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_FIELD_NUMBER: builtins.int type: global___NestedLoopJoinRel.JoinType.ValueType + @property - def common(self) -> global___RelCommon: ... + def common(self) -> global___RelCommon: + ... + @property - def left(self) -> global___Rel: ... + def left(self) -> global___Rel: + ... + @property - def right(self) -> global___Rel: ... + def right(self) -> global___Rel: + ... + @property def expression(self) -> global___Expression: """optional, defaults to true (a cartesian join)""" @property - def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: ... - def __init__( - self, - *, - common: global___RelCommon | None = ..., - left: global___Rel | None = ..., - right: global___Rel | None = ..., - expression: global___Expression | None = ..., - type: global___NestedLoopJoinRel.JoinType.ValueType = ..., - advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "expression", b"expression", "left", b"left", "right", b"right"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extension", b"advanced_extension", "common", b"common", "expression", b"expression", "left", b"left", "right", b"right", "type", b"type"]) -> None: ... + def advanced_extension(self) -> proto.extensions.extensions_pb2.AdvancedExtension: + ... + + def __init__(self, *, common: global___RelCommon | None=..., left: global___Rel | None=..., right: global___Rel | None=..., expression: global___Expression | None=..., type: global___NestedLoopJoinRel.JoinType.ValueType=..., advanced_extension: proto.extensions.extensions_pb2.AdvancedExtension | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'expression', b'expression', 'left', b'left', 'right', b'right']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['advanced_extension', b'advanced_extension', 'common', b'common', 'expression', b'expression', 'left', b'left', 'right', b'right', 'type', b'type']) -> None: + ... global___NestedLoopJoinRel = NestedLoopJoinRel @typing.final class FunctionArgument(google.protobuf.message.Message): """The argument of a function""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - ENUM_FIELD_NUMBER: builtins.int TYPE_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int enum: builtins.str + @property - def type(self) -> proto.type_pb2.Type: ... + def type(self) -> proto.type_pb2.Type: + ... + @property - def value(self) -> global___Expression: ... - def __init__( - self, - *, - enum: builtins.str = ..., - type: proto.type_pb2.Type | None = ..., - value: global___Expression | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["arg_type", b"arg_type", "enum", b"enum", "type", b"type", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["arg_type", b"arg_type", "enum", b"enum", "type", b"type", "value", b"value"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["arg_type", b"arg_type"]) -> typing.Literal["enum", "type", "value"] | None: ... + def value(self) -> global___Expression: + ... + + def __init__(self, *, enum: builtins.str=..., type: proto.type_pb2.Type | None=..., value: global___Expression | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['arg_type', b'arg_type', 'enum', b'enum', 'type', b'type', 'value', b'value']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['arg_type', b'arg_type', 'enum', b'enum', 'type', b'type', 'value', b'value']) -> None: + ... + def WhichOneof(self, oneof_group: typing.Literal['arg_type', b'arg_type']) -> typing.Literal['enum', 'type', 'value'] | None: + ... global___FunctionArgument = FunctionArgument @typing.final @@ -2499,16 +2516,12 @@ class FunctionOption(google.protobuf.message.Message): """An optional function argument. Typically used for specifying behavior in invalid or corner cases. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int PREFERENCE_FIELD_NUMBER: builtins.int name: builtins.str - """Name of the option to set. If the consumer does not recognize the - option, it must reject the plan. The name is matched case-insensitively - with option names defined for the function. - """ + 'Name of the option to set. If the consumer does not recognize the\n option, it must reject the plan. The name is matched case-insensitively\n with option names defined for the function.\n ' + @property def preference(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """List of behavior options allowed by the producer. At least one must be @@ -2519,14 +2532,11 @@ class FunctionOption(google.protobuf.message.Message): match one of the option values defined for the option. """ - def __init__( - self, - *, - name: builtins.str = ..., - preference: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["name", b"name", "preference", b"preference"]) -> None: ... + def __init__(self, *, name: builtins.str=..., preference: collections.abc.Iterable[builtins.str] | None=...) -> None: + ... + def ClearField(self, field_name: typing.Literal['name', b'name', 'preference', b'preference']) -> None: + ... global___FunctionOption = FunctionOption @typing.final @@ -2541,24 +2551,27 @@ class Expression(google.protobuf.message.Message): class Empty(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__( - self, - ) -> None: ... - + def __init__(self) -> None: + ... SPECIFIED_FIELD_NUMBER: builtins.int UNSPECIFIED_FIELD_NUMBER: builtins.int specified: builtins.str + @property - def unspecified(self) -> global___Expression.Enum.Empty: ... - def __init__( - self, - *, - specified: builtins.str = ..., - unspecified: global___Expression.Enum.Empty | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["enum_kind", b"enum_kind", "specified", b"specified", "unspecified", b"unspecified"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["enum_kind", b"enum_kind", "specified", b"specified", "unspecified", b"unspecified"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["enum_kind", b"enum_kind"]) -> typing.Literal["specified", "unspecified"] | None: ... + def unspecified(self) -> global___Expression.Enum.Empty: + ... + + def __init__(self, *, specified: builtins.str=..., unspecified: global___Expression.Enum.Empty | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['enum_kind', b'enum_kind', 'specified', b'specified', 'unspecified', b'unspecified']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['enum_kind', b'enum_kind', 'specified', b'specified', 'unspecified', b'unspecified']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['enum_kind', b'enum_kind']) -> typing.Literal['specified', 'unspecified'] | None: + ... @typing.final class Literal(google.protobuf.message.Message): @@ -2567,80 +2580,67 @@ class Expression(google.protobuf.message.Message): @typing.final class VarChar(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUE_FIELD_NUMBER: builtins.int LENGTH_FIELD_NUMBER: builtins.int value: builtins.str length: builtins.int - def __init__( - self, - *, - value: builtins.str = ..., - length: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["length", b"length", "value", b"value"]) -> None: ... + + def __init__(self, *, value: builtins.str=..., length: builtins.int=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['length', b'length', 'value', b'value']) -> None: + ... @typing.final class Decimal(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUE_FIELD_NUMBER: builtins.int PRECISION_FIELD_NUMBER: builtins.int SCALE_FIELD_NUMBER: builtins.int value: builtins.bytes - """little-endian twos-complement integer representation of complete value - (ignoring precision) Always 16 bytes in length - """ + 'little-endian twos-complement integer representation of complete value\n (ignoring precision) Always 16 bytes in length\n ' precision: builtins.int - """The maximum number of digits allowed in the value. - the maximum precision is 38. - """ + 'The maximum number of digits allowed in the value.\n the maximum precision is 38.\n ' scale: builtins.int - """declared scale of decimal literal""" - def __init__( - self, - *, - value: builtins.bytes = ..., - precision: builtins.int = ..., - scale: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["precision", b"precision", "scale", b"scale", "value", b"value"]) -> None: ... + 'declared scale of decimal literal' + + def __init__(self, *, value: builtins.bytes=..., precision: builtins.int=..., scale: builtins.int=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['precision', b'precision', 'scale', b'scale', 'value', b'value']) -> None: + ... @typing.final class PrecisionTime(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int precision: builtins.int - """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds""" + 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds' value: builtins.int - """Time passed since midnight in precision units.""" - def __init__( - self, - *, - precision: builtins.int = ..., - value: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["precision", b"precision", "value", b"value"]) -> None: ... + 'Time passed since midnight in precision units.' + + def __init__(self, *, precision: builtins.int=..., value: builtins.int=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['precision', b'precision', 'value', b'value']) -> None: + ... @typing.final class PrecisionTimestamp(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int precision: builtins.int - """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds""" + 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds' value: builtins.int - """Time passed since 1970-01-01 00:00:00.000000 in UTC for PrecisionTimestampTZ and unspecified timezone for PrecisionTimestamp""" - def __init__( - self, - *, - precision: builtins.int = ..., - value: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["precision", b"precision", "value", b"value"]) -> None: ... + 'Time passed since 1970-01-01 00:00:00.000000 in UTC for PrecisionTimestampTZ and unspecified timezone for PrecisionTimestamp' + + def __init__(self, *, precision: builtins.int=..., value: builtins.int=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['precision', b'precision', 'value', b'value']) -> None: + ... @typing.final class Map(google.protobuf.message.Message): @@ -2649,52 +2649,54 @@ class Expression(google.protobuf.message.Message): @typing.final class KeyValue(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int + @property - def key(self) -> global___Expression.Literal: ... + def key(self) -> global___Expression.Literal: + ... + @property - def value(self) -> global___Expression.Literal: ... - def __init__( - self, - *, - key: global___Expression.Literal | None = ..., - value: global___Expression.Literal | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + def value(self) -> global___Expression.Literal: + ... + + def __init__(self, *, key: global___Expression.Literal | None=..., value: global___Expression.Literal | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + ... KEY_VALUES_FIELD_NUMBER: builtins.int + @property - def key_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Literal.Map.KeyValue]: ... - def __init__( - self, - *, - key_values: collections.abc.Iterable[global___Expression.Literal.Map.KeyValue] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["key_values", b"key_values"]) -> None: ... + def key_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Literal.Map.KeyValue]: + ... + + def __init__(self, *, key_values: collections.abc.Iterable[global___Expression.Literal.Map.KeyValue] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['key_values', b'key_values']) -> None: + ... @typing.final class IntervalYearToMonth(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - YEARS_FIELD_NUMBER: builtins.int MONTHS_FIELD_NUMBER: builtins.int years: builtins.int months: builtins.int - def __init__( - self, - *, - years: builtins.int = ..., - months: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["months", b"months", "years", b"years"]) -> None: ... + + def __init__(self, *, years: builtins.int=..., months: builtins.int=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['months', b'months', 'years', b'years']) -> None: + ... @typing.final class IntervalDayToSecond(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - DAYS_FIELD_NUMBER: builtins.int SECONDS_FIELD_NUMBER: builtins.int MICROSECONDS_FIELD_NUMBER: builtins.int @@ -2703,85 +2705,87 @@ class Expression(google.protobuf.message.Message): days: builtins.int seconds: builtins.int microseconds: builtins.int - """use precision and subseconds below, they cover and replace microseconds.""" + 'use precision and subseconds below, they cover and replace microseconds.' precision: builtins.int - """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds. Should be used with subseconds below.""" + 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds. Should be used with subseconds below.' subseconds: builtins.int - """the number of fractional seconds using 1e(-precision) units. Should only be used with precision field, not microseconds.""" - def __init__( - self, - *, - days: builtins.int = ..., - seconds: builtins.int = ..., - microseconds: builtins.int = ..., - precision: builtins.int = ..., - subseconds: builtins.int = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["microseconds", b"microseconds", "precision", b"precision", "precision_mode", b"precision_mode"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["days", b"days", "microseconds", b"microseconds", "precision", b"precision", "precision_mode", b"precision_mode", "seconds", b"seconds", "subseconds", b"subseconds"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["precision_mode", b"precision_mode"]) -> typing.Literal["microseconds", "precision"] | None: ... + 'the number of fractional seconds using 1e(-precision) units. Should only be used with precision field, not microseconds.' + + def __init__(self, *, days: builtins.int=..., seconds: builtins.int=..., microseconds: builtins.int=..., precision: builtins.int=..., subseconds: builtins.int=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['microseconds', b'microseconds', 'precision', b'precision', 'precision_mode', b'precision_mode']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['days', b'days', 'microseconds', b'microseconds', 'precision', b'precision', 'precision_mode', b'precision_mode', 'seconds', b'seconds', 'subseconds', b'subseconds']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['precision_mode', b'precision_mode']) -> typing.Literal['microseconds', 'precision'] | None: + ... @typing.final class IntervalCompound(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - INTERVAL_YEAR_TO_MONTH_FIELD_NUMBER: builtins.int INTERVAL_DAY_TO_SECOND_FIELD_NUMBER: builtins.int + @property - def interval_year_to_month(self) -> global___Expression.Literal.IntervalYearToMonth: ... + def interval_year_to_month(self) -> global___Expression.Literal.IntervalYearToMonth: + ... + @property - def interval_day_to_second(self) -> global___Expression.Literal.IntervalDayToSecond: ... - def __init__( - self, - *, - interval_year_to_month: global___Expression.Literal.IntervalYearToMonth | None = ..., - interval_day_to_second: global___Expression.Literal.IntervalDayToSecond | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["interval_day_to_second", b"interval_day_to_second", "interval_year_to_month", b"interval_year_to_month"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["interval_day_to_second", b"interval_day_to_second", "interval_year_to_month", b"interval_year_to_month"]) -> None: ... + def interval_day_to_second(self) -> global___Expression.Literal.IntervalDayToSecond: + ... + + def __init__(self, *, interval_year_to_month: global___Expression.Literal.IntervalYearToMonth | None=..., interval_day_to_second: global___Expression.Literal.IntervalDayToSecond | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month']) -> None: + ... @typing.final class Struct(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - FIELDS_FIELD_NUMBER: builtins.int + @property def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Literal]: """A possibly heterogeneously typed list of literals""" - def __init__( - self, - *, - fields: collections.abc.Iterable[global___Expression.Literal] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["fields", b"fields"]) -> None: ... + def __init__(self, *, fields: collections.abc.Iterable[global___Expression.Literal] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['fields', b'fields']) -> None: + ... @typing.final class List(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUES_FIELD_NUMBER: builtins.int + @property def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Literal]: """A homogeneously typed list of literals""" - def __init__( - self, - *, - values: collections.abc.Iterable[global___Expression.Literal] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + def __init__(self, *, values: collections.abc.Iterable[global___Expression.Literal] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['values', b'values']) -> None: + ... @typing.final class UserDefined(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_REFERENCE_FIELD_NUMBER: builtins.int TYPE_PARAMETERS_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int STRUCT_FIELD_NUMBER: builtins.int type_reference: builtins.int - """points to a type_anchor defined in this plan""" + 'points to a type_anchor defined in this plan' + @property def type_parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[proto.type_pb2.Type.Parameter]: """The parameters to be bound to the type class, if the type class is @@ -2796,18 +2800,17 @@ class Expression(google.protobuf.message.Message): def struct(self) -> global___Expression.Literal.Struct: """the value of the literal, serialized using the structure definition in its declaration""" - def __init__( - self, - *, - type_reference: builtins.int = ..., - type_parameters: collections.abc.Iterable[proto.type_pb2.Type.Parameter] | None = ..., - value: google.protobuf.any_pb2.Any | None = ..., - struct: global___Expression.Literal.Struct | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["struct", b"struct", "val", b"val", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["struct", b"struct", "type_parameters", b"type_parameters", "type_reference", b"type_reference", "val", b"val", "value", b"value"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["val", b"val"]) -> typing.Literal["value", "struct"] | None: ... + def __init__(self, *, type_reference: builtins.int=..., type_parameters: collections.abc.Iterable[proto.type_pb2.Type.Parameter] | None=..., value: google.protobuf.any_pb2.Any | None=..., struct: global___Expression.Literal.Struct | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['struct', b'struct', 'val', b'val', 'value', b'value']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['struct', b'struct', 'type_parameters', b'type_parameters', 'type_reference', b'type_reference', 'val', b'val', 'value', b'value']) -> None: + ... + def WhichOneof(self, oneof_group: typing.Literal['val', b'val']) -> typing.Literal['value', 'struct'] | None: + ... BOOLEAN_FIELD_NUMBER: builtins.int I8_FIELD_NUMBER: builtins.int I16_FIELD_NUMBER: builtins.int @@ -2851,113 +2854,96 @@ class Expression(google.protobuf.message.Message): string: builtins.str binary: builtins.bytes timestamp: builtins.int - """Timestamp in units of microseconds since the UNIX epoch. - Deprecated in favor of `precision_timestamp`. - """ + 'Timestamp in units of microseconds since the UNIX epoch.\n Deprecated in favor of `precision_timestamp`.\n ' date: builtins.int - """Date in units of days since the UNIX epoch.""" + 'Date in units of days since the UNIX epoch.' time: builtins.int - """Time in units of microseconds past midnight. - Deprecated in favor of `precision_time`. - """ + 'Time in units of microseconds past midnight.\n Deprecated in favor of `precision_time`.\n ' fixed_char: builtins.str fixed_binary: builtins.bytes timestamp_tz: builtins.int - """Timestamp in units of microseconds since the UNIX epoch. - Deprecated in favor of `precision_timestamp_tz` - """ + 'Timestamp in units of microseconds since the UNIX epoch.\n Deprecated in favor of `precision_timestamp_tz`\n ' uuid: builtins.bytes nullable: builtins.bool - """Whether the literal_type above should be treated as a nullable type. - Applies to all members of the literal_type oneof EXCEPT: - * Type null (must be nullable by definition) - * Type.List empty_list (use Type.List::nullability) - * Type.Map empty_map (use Type.Map::nullability) - """ + 'Whether the literal_type above should be treated as a nullable type.\n Applies to all members of the literal_type oneof EXCEPT:\n * Type null (must be nullable by definition)\n * Type.List empty_list (use Type.List::nullability)\n * Type.Map empty_map (use Type.Map::nullability)\n ' type_variation_reference: builtins.int - """optionally points to a type_variation_anchor defined in this plan. - Applies to all members of union other than the Typed null (which should - directly declare the type variation). - """ + 'optionally points to a type_variation_anchor defined in this plan.\n Applies to all members of union other than the Typed null (which should\n directly declare the type variation).\n ' + @property - def interval_year_to_month(self) -> global___Expression.Literal.IntervalYearToMonth: ... + def interval_year_to_month(self) -> global___Expression.Literal.IntervalYearToMonth: + ... + @property - def interval_day_to_second(self) -> global___Expression.Literal.IntervalDayToSecond: ... + def interval_day_to_second(self) -> global___Expression.Literal.IntervalDayToSecond: + ... + @property - def interval_compound(self) -> global___Expression.Literal.IntervalCompound: ... + def interval_compound(self) -> global___Expression.Literal.IntervalCompound: + ... + @property - def var_char(self) -> global___Expression.Literal.VarChar: ... + def var_char(self) -> global___Expression.Literal.VarChar: + ... + @property - def decimal(self) -> global___Expression.Literal.Decimal: ... + def decimal(self) -> global___Expression.Literal.Decimal: + ... + @property def precision_time(self) -> global___Expression.Literal.PrecisionTime: """Time in precision units past midnight.""" @property - def precision_timestamp(self) -> global___Expression.Literal.PrecisionTimestamp: ... + def precision_timestamp(self) -> global___Expression.Literal.PrecisionTimestamp: + ... + @property - def precision_timestamp_tz(self) -> global___Expression.Literal.PrecisionTimestamp: ... + def precision_timestamp_tz(self) -> global___Expression.Literal.PrecisionTimestamp: + ... + @property - def struct(self) -> global___Expression.Literal.Struct: ... + def struct(self) -> global___Expression.Literal.Struct: + ... + @property - def map(self) -> global___Expression.Literal.Map: ... + def map(self) -> global___Expression.Literal.Map: + ... + @property def null(self) -> proto.type_pb2.Type: """a typed null literal""" @property - def list(self) -> global___Expression.Literal.List: ... + def list(self) -> global___Expression.Literal.List: + ... + @property - def empty_list(self) -> proto.type_pb2.Type.List: ... + def empty_list(self) -> proto.type_pb2.Type.List: + ... + @property - def empty_map(self) -> proto.type_pb2.Type.Map: ... + def empty_map(self) -> proto.type_pb2.Type.Map: + ... + @property - def user_defined(self) -> global___Expression.Literal.UserDefined: ... - def __init__( - self, - *, - boolean: builtins.bool = ..., - i8: builtins.int = ..., - i16: builtins.int = ..., - i32: builtins.int = ..., - i64: builtins.int = ..., - fp32: builtins.float = ..., - fp64: builtins.float = ..., - string: builtins.str = ..., - binary: builtins.bytes = ..., - timestamp: builtins.int = ..., - date: builtins.int = ..., - time: builtins.int = ..., - interval_year_to_month: global___Expression.Literal.IntervalYearToMonth | None = ..., - interval_day_to_second: global___Expression.Literal.IntervalDayToSecond | None = ..., - interval_compound: global___Expression.Literal.IntervalCompound | None = ..., - fixed_char: builtins.str = ..., - var_char: global___Expression.Literal.VarChar | None = ..., - fixed_binary: builtins.bytes = ..., - decimal: global___Expression.Literal.Decimal | None = ..., - precision_time: global___Expression.Literal.PrecisionTime | None = ..., - precision_timestamp: global___Expression.Literal.PrecisionTimestamp | None = ..., - precision_timestamp_tz: global___Expression.Literal.PrecisionTimestamp | None = ..., - struct: global___Expression.Literal.Struct | None = ..., - map: global___Expression.Literal.Map | None = ..., - timestamp_tz: builtins.int = ..., - uuid: builtins.bytes = ..., - null: proto.type_pb2.Type | None = ..., - list: global___Expression.Literal.List | None = ..., - empty_list: proto.type_pb2.Type.List | None = ..., - empty_map: proto.type_pb2.Type.Map | None = ..., - user_defined: global___Expression.Literal.UserDefined | None = ..., - nullable: builtins.bool = ..., - type_variation_reference: builtins.int = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["binary", b"binary", "boolean", b"boolean", "date", b"date", "decimal", b"decimal", "empty_list", b"empty_list", "empty_map", b"empty_map", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "interval_compound", b"interval_compound", "interval_day_to_second", b"interval_day_to_second", "interval_year_to_month", b"interval_year_to_month", "list", b"list", "literal_type", b"literal_type", "map", b"map", "null", b"null", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "user_defined", b"user_defined", "uuid", b"uuid", "var_char", b"var_char"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["binary", b"binary", "boolean", b"boolean", "date", b"date", "decimal", b"decimal", "empty_list", b"empty_list", "empty_map", b"empty_map", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "interval_compound", b"interval_compound", "interval_day_to_second", b"interval_day_to_second", "interval_year_to_month", b"interval_year_to_month", "list", b"list", "literal_type", b"literal_type", "map", b"map", "null", b"null", "nullable", b"nullable", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "type_variation_reference", b"type_variation_reference", "user_defined", b"user_defined", "uuid", b"uuid", "var_char", b"var_char"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["literal_type", b"literal_type"]) -> typing.Literal["boolean", "i8", "i16", "i32", "i64", "fp32", "fp64", "string", "binary", "timestamp", "date", "time", "interval_year_to_month", "interval_day_to_second", "interval_compound", "fixed_char", "var_char", "fixed_binary", "decimal", "precision_time", "precision_timestamp", "precision_timestamp_tz", "struct", "map", "timestamp_tz", "uuid", "null", "list", "empty_list", "empty_map", "user_defined"] | None: ... + def user_defined(self) -> global___Expression.Literal.UserDefined: + ... + + def __init__(self, *, boolean: builtins.bool=..., i8: builtins.int=..., i16: builtins.int=..., i32: builtins.int=..., i64: builtins.int=..., fp32: builtins.float=..., fp64: builtins.float=..., string: builtins.str=..., binary: builtins.bytes=..., timestamp: builtins.int=..., date: builtins.int=..., time: builtins.int=..., interval_year_to_month: global___Expression.Literal.IntervalYearToMonth | None=..., interval_day_to_second: global___Expression.Literal.IntervalDayToSecond | None=..., interval_compound: global___Expression.Literal.IntervalCompound | None=..., fixed_char: builtins.str=..., var_char: global___Expression.Literal.VarChar | None=..., fixed_binary: builtins.bytes=..., decimal: global___Expression.Literal.Decimal | None=..., precision_time: global___Expression.Literal.PrecisionTime | None=..., precision_timestamp: global___Expression.Literal.PrecisionTimestamp | None=..., precision_timestamp_tz: global___Expression.Literal.PrecisionTimestamp | None=..., struct: global___Expression.Literal.Struct | None=..., map: global___Expression.Literal.Map | None=..., timestamp_tz: builtins.int=..., uuid: builtins.bytes=..., null: proto.type_pb2.Type | None=..., list: global___Expression.Literal.List | None=..., empty_list: proto.type_pb2.Type.List | None=..., empty_map: proto.type_pb2.Type.Map | None=..., user_defined: global___Expression.Literal.UserDefined | None=..., nullable: builtins.bool=..., type_variation_reference: builtins.int=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['binary', b'binary', 'boolean', b'boolean', 'date', b'date', 'decimal', b'decimal', 'empty_list', b'empty_list', 'empty_map', b'empty_map', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month', 'list', b'list', 'literal_type', b'literal_type', 'map', b'map', 'null', b'null', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'uuid', b'uuid', 'var_char', b'var_char']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['binary', b'binary', 'boolean', b'boolean', 'date', b'date', 'decimal', b'decimal', 'empty_list', b'empty_list', 'empty_map', b'empty_map', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day_to_second', b'interval_day_to_second', 'interval_year_to_month', b'interval_year_to_month', 'list', b'list', 'literal_type', b'literal_type', 'map', b'map', 'null', b'null', 'nullable', b'nullable', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_variation_reference', b'type_variation_reference', 'user_defined', b'user_defined', 'uuid', b'uuid', 'var_char', b'var_char']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['literal_type', b'literal_type']) -> typing.Literal['boolean', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year_to_month', 'interval_day_to_second', 'interval_compound', 'fixed_char', 'var_char', 'fixed_binary', 'decimal', 'precision_time', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'map', 'timestamp_tz', 'uuid', 'null', 'list', 'empty_list', 'empty_map', 'user_defined'] | None: + ... @typing.final class Nested(google.protobuf.message.Message): """Expression to dynamically construct nested types.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final @@ -2967,61 +2953,61 @@ class Expression(google.protobuf.message.Message): @typing.final class KeyValue(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int + @property def key(self) -> global___Expression: """Mandatory key/value expressions.""" @property - def value(self) -> global___Expression: ... - def __init__( - self, - *, - key: global___Expression | None = ..., - value: global___Expression | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> None: ... + def value(self) -> global___Expression: + ... + + def __init__(self, *, key: global___Expression | None=..., value: global___Expression | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> None: + ... KEY_VALUES_FIELD_NUMBER: builtins.int + @property def key_values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.Nested.Map.KeyValue]: """One or more key-value pairs. To specify an empty map, use Literal.empty_map (otherwise type information would be missing). """ - def __init__( - self, - *, - key_values: collections.abc.Iterable[global___Expression.Nested.Map.KeyValue] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["key_values", b"key_values"]) -> None: ... + def __init__(self, *, key_values: collections.abc.Iterable[global___Expression.Nested.Map.KeyValue] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['key_values', b'key_values']) -> None: + ... @typing.final class Struct(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - FIELDS_FIELD_NUMBER: builtins.int + @property def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: """Zero or more possibly heterogeneously-typed list of expressions that form the struct fields. """ - def __init__( - self, - *, - fields: collections.abc.Iterable[global___Expression] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["fields", b"fields"]) -> None: ... + def __init__(self, *, fields: collections.abc.Iterable[global___Expression] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['fields', b'fields']) -> None: + ... @typing.final class List(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUES_FIELD_NUMBER: builtins.int + @property def values(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: """A homogeneously-typed list of one or more expressions that form the @@ -3029,59 +3015,57 @@ class Expression(google.protobuf.message.Message): (otherwise type information would be missing). """ - def __init__( - self, - *, - values: collections.abc.Iterable[global___Expression] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["values", b"values"]) -> None: ... + def __init__(self, *, values: collections.abc.Iterable[global___Expression] | None=...) -> None: + ... + def ClearField(self, field_name: typing.Literal['values', b'values']) -> None: + ... NULLABLE_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int STRUCT_FIELD_NUMBER: builtins.int LIST_FIELD_NUMBER: builtins.int MAP_FIELD_NUMBER: builtins.int nullable: builtins.bool - """Whether the returned nested type is nullable.""" + 'Whether the returned nested type is nullable.' type_variation_reference: builtins.int - """Optionally points to a type_variation_anchor defined in this plan for - the returned nested type. - """ + 'Optionally points to a type_variation_anchor defined in this plan for\n the returned nested type.\n ' + @property - def struct(self) -> global___Expression.Nested.Struct: ... + def struct(self) -> global___Expression.Nested.Struct: + ... + @property - def list(self) -> global___Expression.Nested.List: ... + def list(self) -> global___Expression.Nested.List: + ... + @property - def map(self) -> global___Expression.Nested.Map: ... - def __init__( - self, - *, - nullable: builtins.bool = ..., - type_variation_reference: builtins.int = ..., - struct: global___Expression.Nested.Struct | None = ..., - list: global___Expression.Nested.List | None = ..., - map: global___Expression.Nested.Map | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["list", b"list", "map", b"map", "nested_type", b"nested_type", "struct", b"struct"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["list", b"list", "map", b"map", "nested_type", b"nested_type", "nullable", b"nullable", "struct", b"struct", "type_variation_reference", b"type_variation_reference"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["nested_type", b"nested_type"]) -> typing.Literal["struct", "list", "map"] | None: ... + def map(self) -> global___Expression.Nested.Map: + ... + + def __init__(self, *, nullable: builtins.bool=..., type_variation_reference: builtins.int=..., struct: global___Expression.Nested.Struct | None=..., list: global___Expression.Nested.List | None=..., map: global___Expression.Nested.Map | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['list', b'list', 'map', b'map', 'nested_type', b'nested_type', 'struct', b'struct']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['list', b'list', 'map', b'map', 'nested_type', b'nested_type', 'nullable', b'nullable', 'struct', b'struct', 'type_variation_reference', b'type_variation_reference']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['nested_type', b'nested_type']) -> typing.Literal['struct', 'list', 'map'] | None: + ... @typing.final class ScalarFunction(google.protobuf.message.Message): """A scalar function call.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - FUNCTION_REFERENCE_FIELD_NUMBER: builtins.int ARGUMENTS_FIELD_NUMBER: builtins.int OPTIONS_FIELD_NUMBER: builtins.int OUTPUT_TYPE_FIELD_NUMBER: builtins.int ARGS_FIELD_NUMBER: builtins.int function_reference: builtins.int - """Points to a function_anchor defined in this plan, which must refer - to a scalar function in the associated YAML file. Required; avoid - using anchor/reference zero. - """ + 'Points to a function_anchor defined in this plan, which must refer\n to a scalar function in the associated YAML file. Required; avoid\n using anchor/reference zero.\n ' + @property def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionArgument]: """The arguments to be bound to the function. This must have exactly the @@ -3114,108 +3098,80 @@ class Expression(google.protobuf.message.Message): def args(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: """Deprecated; use arguments instead.""" - def __init__( - self, - *, - function_reference: builtins.int = ..., - arguments: collections.abc.Iterable[global___FunctionArgument] | None = ..., - options: collections.abc.Iterable[global___FunctionOption] | None = ..., - output_type: proto.type_pb2.Type | None = ..., - args: collections.abc.Iterable[global___Expression] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["output_type", b"output_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["args", b"args", "arguments", b"arguments", "function_reference", b"function_reference", "options", b"options", "output_type", b"output_type"]) -> None: ... + def __init__(self, *, function_reference: builtins.int=..., arguments: collections.abc.Iterable[global___FunctionArgument] | None=..., options: collections.abc.Iterable[global___FunctionOption] | None=..., output_type: proto.type_pb2.Type | None=..., args: collections.abc.Iterable[global___Expression] | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['output_type', b'output_type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['args', b'args', 'arguments', b'arguments', 'function_reference', b'function_reference', 'options', b'options', 'output_type', b'output_type']) -> None: + ... @typing.final class WindowFunction(google.protobuf.message.Message): """A window function call.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor class _BoundsType: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _BoundsTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Expression.WindowFunction._BoundsType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - BOUNDS_TYPE_UNSPECIFIED: Expression.WindowFunction._BoundsType.ValueType # 0 - BOUNDS_TYPE_ROWS: Expression.WindowFunction._BoundsType.ValueType # 1 - """The lower and upper bound specify how many rows before and after the current row - the window should extend. - """ - BOUNDS_TYPE_RANGE: Expression.WindowFunction._BoundsType.ValueType # 2 - """The lower and upper bound describe a range of values. The window should include all rows - where the value of the ordering column is greater than or equal to (current_value - lower bound) - and less than or equal to (current_value + upper bound). This bounds type is only valid if there - is a single ordering column. - """ - - class BoundsType(_BoundsType, metaclass=_BoundsTypeEnumTypeWrapper): ... - BOUNDS_TYPE_UNSPECIFIED: Expression.WindowFunction.BoundsType.ValueType # 0 - BOUNDS_TYPE_ROWS: Expression.WindowFunction.BoundsType.ValueType # 1 - """The lower and upper bound specify how many rows before and after the current row - the window should extend. - """ - BOUNDS_TYPE_RANGE: Expression.WindowFunction.BoundsType.ValueType # 2 - """The lower and upper bound describe a range of values. The window should include all rows - where the value of the ordering column is greater than or equal to (current_value - lower bound) - and less than or equal to (current_value + upper bound). This bounds type is only valid if there - is a single ordering column. - """ + BOUNDS_TYPE_UNSPECIFIED: Expression.WindowFunction._BoundsType.ValueType + BOUNDS_TYPE_ROWS: Expression.WindowFunction._BoundsType.ValueType + 'The lower and upper bound specify how many rows before and after the current row\n the window should extend.\n ' + BOUNDS_TYPE_RANGE: Expression.WindowFunction._BoundsType.ValueType + 'The lower and upper bound describe a range of values. The window should include all rows\n where the value of the ordering column is greater than or equal to (current_value - lower bound)\n and less than or equal to (current_value + upper bound). This bounds type is only valid if there\n is a single ordering column.\n ' + + class BoundsType(_BoundsType, metaclass=_BoundsTypeEnumTypeWrapper): + ... + BOUNDS_TYPE_UNSPECIFIED: Expression.WindowFunction.BoundsType.ValueType + BOUNDS_TYPE_ROWS: Expression.WindowFunction.BoundsType.ValueType + 'The lower and upper bound specify how many rows before and after the current row\n the window should extend.\n ' + BOUNDS_TYPE_RANGE: Expression.WindowFunction.BoundsType.ValueType + 'The lower and upper bound describe a range of values. The window should include all rows\n where the value of the ordering column is greater than or equal to (current_value - lower bound)\n and less than or equal to (current_value + upper bound). This bounds type is only valid if there\n is a single ordering column.\n ' @typing.final class Bound(google.protobuf.message.Message): """Defines one of the two boundaries for the window of a window function.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class Preceding(google.protobuf.message.Message): """Defines that the bound extends this far back from the current record.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - OFFSET_FIELD_NUMBER: builtins.int offset: builtins.int - """A strictly positive integer specifying the number of records that - the window extends back from the current record. Required. Use - CurrentRow for offset zero and Following for negative offsets. - """ - def __init__( - self, - *, - offset: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["offset", b"offset"]) -> None: ... + 'A strictly positive integer specifying the number of records that\n the window extends back from the current record. Required. Use\n CurrentRow for offset zero and Following for negative offsets.\n ' + + def __init__(self, *, offset: builtins.int=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['offset', b'offset']) -> None: + ... @typing.final class Following(google.protobuf.message.Message): """Defines that the bound extends this far ahead of the current record.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - OFFSET_FIELD_NUMBER: builtins.int offset: builtins.int - """A strictly positive integer specifying the number of records that - the window extends ahead of the current record. Required. Use - CurrentRow for offset zero and Preceding for negative offsets. - """ - def __init__( - self, - *, - offset: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["offset", b"offset"]) -> None: ... + 'A strictly positive integer specifying the number of records that\n the window extends ahead of the current record. Required. Use\n CurrentRow for offset zero and Preceding for negative offsets.\n ' + + def __init__(self, *, offset: builtins.int=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['offset', b'offset']) -> None: + ... @typing.final class CurrentRow(google.protobuf.message.Message): """Defines that the bound extends to or from the current record.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__( - self, - ) -> None: ... + def __init__(self) -> None: + ... @typing.final class Unbounded(google.protobuf.message.Message): @@ -3223,17 +3179,15 @@ class Expression(google.protobuf.message.Message): of the partition, and for upper bounds this means the end of the partition. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__( - self, - ) -> None: ... - + def __init__(self) -> None: + ... PRECEDING_FIELD_NUMBER: builtins.int FOLLOWING_FIELD_NUMBER: builtins.int CURRENT_ROW_FIELD_NUMBER: builtins.int UNBOUNDED_FIELD_NUMBER: builtins.int + @property def preceding(self) -> global___Expression.WindowFunction.Bound.Preceding: """The bound extends some number of records behind the current record.""" @@ -3255,18 +3209,17 @@ class Expression(google.protobuf.message.Message): bound. """ - def __init__( - self, - *, - preceding: global___Expression.WindowFunction.Bound.Preceding | None = ..., - following: global___Expression.WindowFunction.Bound.Following | None = ..., - current_row: global___Expression.WindowFunction.Bound.CurrentRow | None = ..., - unbounded: global___Expression.WindowFunction.Bound.Unbounded | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["current_row", b"current_row", "following", b"following", "kind", b"kind", "preceding", b"preceding", "unbounded", b"unbounded"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["current_row", b"current_row", "following", b"following", "kind", b"kind", "preceding", b"preceding", "unbounded", b"unbounded"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["kind", b"kind"]) -> typing.Literal["preceding", "following", "current_row", "unbounded"] | None: ... + def __init__(self, *, preceding: global___Expression.WindowFunction.Bound.Preceding | None=..., following: global___Expression.WindowFunction.Bound.Following | None=..., current_row: global___Expression.WindowFunction.Bound.CurrentRow | None=..., unbounded: global___Expression.WindowFunction.Bound.Unbounded | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['current_row', b'current_row', 'following', b'following', 'kind', b'kind', 'preceding', b'preceding', 'unbounded', b'unbounded']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['current_row', b'current_row', 'following', b'following', 'kind', b'kind', 'preceding', b'preceding', 'unbounded', b'unbounded']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['kind', b'kind']) -> typing.Literal['preceding', 'following', 'current_row', 'unbounded'] | None: + ... FUNCTION_REFERENCE_FIELD_NUMBER: builtins.int ARGUMENTS_FIELD_NUMBER: builtins.int OPTIONS_FIELD_NUMBER: builtins.int @@ -3280,26 +3233,14 @@ class Expression(google.protobuf.message.Message): UPPER_BOUND_FIELD_NUMBER: builtins.int ARGS_FIELD_NUMBER: builtins.int function_reference: builtins.int - """Points to a function_anchor defined in this plan. The function must be: - - a window function - - an aggregate function - - An aggregate function referenced here should be treated as a window - function with Window Type STREAMING - - Required; 0 is considered to be a valid anchor/reference. - """ + 'Points to a function_anchor defined in this plan. The function must be:\n - a window function\n - an aggregate function\n\n An aggregate function referenced here should be treated as a window\n function with Window Type STREAMING\n\n Required; 0 is considered to be a valid anchor/reference.\n ' phase: global___AggregationPhase.ValueType - """Describes which part of the window function to perform within the - context of distributed algorithms. Required. Must be set to - INITIAL_TO_RESULT for window functions that are not decomposable. - """ + 'Describes which part of the window function to perform within the\n context of distributed algorithms. Required. Must be set to\n INITIAL_TO_RESULT for window functions that are not decomposable.\n ' invocation: global___AggregateFunction.AggregationInvocation.ValueType - """Specifies whether equivalent records are merged before being aggregated. - Optional, defaults to AGGREGATION_INVOCATION_ALL. - """ + 'Specifies whether equivalent records are merged before being aggregated.\n Optional, defaults to AGGREGATION_INVOCATION_ALL.\n ' bounds_type: global___Expression.WindowFunction.BoundsType.ValueType - """Defines the bounds type: ROWS, RANGE""" + 'Defines the bounds type: ROWS, RANGE' + @property def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionArgument]: """The arguments to be bound to the function. This must have exactly the @@ -3370,24 +3311,14 @@ class Expression(google.protobuf.message.Message): def args(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: """Deprecated; use arguments instead.""" - def __init__( - self, - *, - function_reference: builtins.int = ..., - arguments: collections.abc.Iterable[global___FunctionArgument] | None = ..., - options: collections.abc.Iterable[global___FunctionOption] | None = ..., - output_type: proto.type_pb2.Type | None = ..., - phase: global___AggregationPhase.ValueType = ..., - sorts: collections.abc.Iterable[global___SortField] | None = ..., - invocation: global___AggregateFunction.AggregationInvocation.ValueType = ..., - partitions: collections.abc.Iterable[global___Expression] | None = ..., - bounds_type: global___Expression.WindowFunction.BoundsType.ValueType = ..., - lower_bound: global___Expression.WindowFunction.Bound | None = ..., - upper_bound: global___Expression.WindowFunction.Bound | None = ..., - args: collections.abc.Iterable[global___Expression] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["lower_bound", b"lower_bound", "output_type", b"output_type", "upper_bound", b"upper_bound"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["args", b"args", "arguments", b"arguments", "bounds_type", b"bounds_type", "function_reference", b"function_reference", "invocation", b"invocation", "lower_bound", b"lower_bound", "options", b"options", "output_type", b"output_type", "partitions", b"partitions", "phase", b"phase", "sorts", b"sorts", "upper_bound", b"upper_bound"]) -> None: ... + def __init__(self, *, function_reference: builtins.int=..., arguments: collections.abc.Iterable[global___FunctionArgument] | None=..., options: collections.abc.Iterable[global___FunctionOption] | None=..., output_type: proto.type_pb2.Type | None=..., phase: global___AggregationPhase.ValueType=..., sorts: collections.abc.Iterable[global___SortField] | None=..., invocation: global___AggregateFunction.AggregationInvocation.ValueType=..., partitions: collections.abc.Iterable[global___Expression] | None=..., bounds_type: global___Expression.WindowFunction.BoundsType.ValueType=..., lower_bound: global___Expression.WindowFunction.Bound | None=..., upper_bound: global___Expression.WindowFunction.Bound | None=..., args: collections.abc.Iterable[global___Expression] | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['lower_bound', b'lower_bound', 'output_type', b'output_type', 'upper_bound', b'upper_bound']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['args', b'args', 'arguments', b'arguments', 'bounds_type', b'bounds_type', 'function_reference', b'function_reference', 'invocation', b'invocation', 'lower_bound', b'lower_bound', 'options', b'options', 'output_type', b'output_type', 'partitions', b'partitions', 'phase', b'phase', 'sorts', b'sorts', 'upper_bound', b'upper_bound']) -> None: + ... @typing.final class IfThen(google.protobuf.message.Message): @@ -3396,69 +3327,77 @@ class Expression(google.protobuf.message.Message): @typing.final class IfClause(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - IF_FIELD_NUMBER: builtins.int THEN_FIELD_NUMBER: builtins.int + @property - def then(self) -> global___Expression: ... - def __init__( - self, - *, - then: global___Expression | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["if", b"if", "then", b"then"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["if", b"if", "then", b"then"]) -> None: ... + def then(self) -> global___Expression: + ... + + def __init__(self, *, then: global___Expression | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['if', b'if', 'then', b'then']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['if', b'if', 'then', b'then']) -> None: + ... IFS_FIELD_NUMBER: builtins.int ELSE_FIELD_NUMBER: builtins.int + @property def ifs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.IfThen.IfClause]: """A list of one or more IfClauses""" - def __init__( - self, - *, - ifs: collections.abc.Iterable[global___Expression.IfThen.IfClause] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["else", b"else"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["else", b"else", "ifs", b"ifs"]) -> None: ... + def __init__(self, *, ifs: collections.abc.Iterable[global___Expression.IfThen.IfClause] | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['else', b'else']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['else', b'else', 'ifs', b'ifs']) -> None: + ... @typing.final class Cast(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _FailureBehavior: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _FailureBehaviorEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Expression.Cast._FailureBehavior.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - FAILURE_BEHAVIOR_UNSPECIFIED: Expression.Cast._FailureBehavior.ValueType # 0 - FAILURE_BEHAVIOR_RETURN_NULL: Expression.Cast._FailureBehavior.ValueType # 1 - FAILURE_BEHAVIOR_THROW_EXCEPTION: Expression.Cast._FailureBehavior.ValueType # 2 - - class FailureBehavior(_FailureBehavior, metaclass=_FailureBehaviorEnumTypeWrapper): ... - FAILURE_BEHAVIOR_UNSPECIFIED: Expression.Cast.FailureBehavior.ValueType # 0 - FAILURE_BEHAVIOR_RETURN_NULL: Expression.Cast.FailureBehavior.ValueType # 1 - FAILURE_BEHAVIOR_THROW_EXCEPTION: Expression.Cast.FailureBehavior.ValueType # 2 - + FAILURE_BEHAVIOR_UNSPECIFIED: Expression.Cast._FailureBehavior.ValueType + FAILURE_BEHAVIOR_RETURN_NULL: Expression.Cast._FailureBehavior.ValueType + FAILURE_BEHAVIOR_THROW_EXCEPTION: Expression.Cast._FailureBehavior.ValueType + + class FailureBehavior(_FailureBehavior, metaclass=_FailureBehaviorEnumTypeWrapper): + ... + FAILURE_BEHAVIOR_UNSPECIFIED: Expression.Cast.FailureBehavior.ValueType + FAILURE_BEHAVIOR_RETURN_NULL: Expression.Cast.FailureBehavior.ValueType + FAILURE_BEHAVIOR_THROW_EXCEPTION: Expression.Cast.FailureBehavior.ValueType TYPE_FIELD_NUMBER: builtins.int INPUT_FIELD_NUMBER: builtins.int FAILURE_BEHAVIOR_FIELD_NUMBER: builtins.int failure_behavior: global___Expression.Cast.FailureBehavior.ValueType + @property - def type(self) -> proto.type_pb2.Type: ... + def type(self) -> proto.type_pb2.Type: + ... + @property - def input(self) -> global___Expression: ... - def __init__( - self, - *, - type: proto.type_pb2.Type | None = ..., - input: global___Expression | None = ..., - failure_behavior: global___Expression.Cast.FailureBehavior.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["input", b"input", "type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["failure_behavior", b"failure_behavior", "input", b"input", "type", b"type"]) -> None: ... + def input(self) -> global___Expression: + ... + + def __init__(self, *, type: proto.type_pb2.Type | None=..., input: global___Expression | None=..., failure_behavior: global___Expression.Cast.FailureBehavior.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['input', b'input', 'type', b'type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['failure_behavior', b'failure_behavior', 'input', b'input', 'type', b'type']) -> None: + ... @typing.final class SwitchExpression(google.protobuf.message.Message): @@ -3467,53 +3406,64 @@ class Expression(google.protobuf.message.Message): @typing.final class IfValue(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - IF_FIELD_NUMBER: builtins.int THEN_FIELD_NUMBER: builtins.int + @property - def then(self) -> global___Expression: ... - def __init__( - self, - *, - then: global___Expression | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["if", b"if", "then", b"then"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["if", b"if", "then", b"then"]) -> None: ... + def then(self) -> global___Expression: + ... + + def __init__(self, *, then: global___Expression | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['if', b'if', 'then', b'then']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['if', b'if', 'then', b'then']) -> None: + ... MATCH_FIELD_NUMBER: builtins.int IFS_FIELD_NUMBER: builtins.int ELSE_FIELD_NUMBER: builtins.int + @property - def match(self) -> global___Expression: ... + def match(self) -> global___Expression: + ... + @property - def ifs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.SwitchExpression.IfValue]: ... - def __init__( - self, - *, - match: global___Expression | None = ..., - ifs: collections.abc.Iterable[global___Expression.SwitchExpression.IfValue] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["else", b"else", "match", b"match"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["else", b"else", "ifs", b"ifs", "match", b"match"]) -> None: ... + def ifs(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.SwitchExpression.IfValue]: + ... + + def __init__(self, *, match: global___Expression | None=..., ifs: collections.abc.Iterable[global___Expression.SwitchExpression.IfValue] | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['else', b'else', 'match', b'match']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['else', b'else', 'ifs', b'ifs', 'match', b'match']) -> None: + ... @typing.final class SingularOrList(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUE_FIELD_NUMBER: builtins.int OPTIONS_FIELD_NUMBER: builtins.int + @property - def value(self) -> global___Expression: ... + def value(self) -> global___Expression: + ... + @property - def options(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: ... - def __init__( - self, - *, - value: global___Expression | None = ..., - options: collections.abc.Iterable[global___Expression] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["options", b"options", "value", b"value"]) -> None: ... + def options(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: + ... + + def __init__(self, *, value: global___Expression | None=..., options: collections.abc.Iterable[global___Expression] | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['options', b'options', 'value', b'value']) -> None: + ... @typing.final class MultiOrList(google.protobuf.message.Message): @@ -3522,30 +3472,33 @@ class Expression(google.protobuf.message.Message): @typing.final class Record(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - FIELDS_FIELD_NUMBER: builtins.int + @property - def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: ... - def __init__( - self, - *, - fields: collections.abc.Iterable[global___Expression] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["fields", b"fields"]) -> None: ... + def fields(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: + ... + + def __init__(self, *, fields: collections.abc.Iterable[global___Expression] | None=...) -> None: + ... + def ClearField(self, field_name: typing.Literal['fields', b'fields']) -> None: + ... VALUE_FIELD_NUMBER: builtins.int OPTIONS_FIELD_NUMBER: builtins.int + @property - def value(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: ... + def value(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: + ... + @property - def options(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.MultiOrList.Record]: ... - def __init__( - self, - *, - value: collections.abc.Iterable[global___Expression] | None = ..., - options: collections.abc.Iterable[global___Expression.MultiOrList.Record] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["options", b"options", "value", b"value"]) -> None: ... + def options(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.MultiOrList.Record]: + ... + + def __init__(self, *, value: collections.abc.Iterable[global___Expression] | None=..., options: collections.abc.Iterable[global___Expression.MultiOrList.Record] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['options', b'options', 'value', b'value']) -> None: + ... @typing.final class EmbeddedFunction(google.protobuf.message.Message): @@ -3554,60 +3507,68 @@ class Expression(google.protobuf.message.Message): @typing.final class PythonPickleFunction(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - FUNCTION_FIELD_NUMBER: builtins.int PREREQUISITE_FIELD_NUMBER: builtins.int function: builtins.bytes + @property - def prerequisite(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... - def __init__( - self, - *, - function: builtins.bytes = ..., - prerequisite: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["function", b"function", "prerequisite", b"prerequisite"]) -> None: ... + def prerequisite(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + ... + + def __init__(self, *, function: builtins.bytes=..., prerequisite: collections.abc.Iterable[builtins.str] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['function', b'function', 'prerequisite', b'prerequisite']) -> None: + ... @typing.final class WebAssemblyFunction(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - SCRIPT_FIELD_NUMBER: builtins.int PREREQUISITE_FIELD_NUMBER: builtins.int script: builtins.bytes + @property - def prerequisite(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... - def __init__( - self, - *, - script: builtins.bytes = ..., - prerequisite: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["prerequisite", b"prerequisite", "script", b"script"]) -> None: ... + def prerequisite(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + ... + def __init__(self, *, script: builtins.bytes=..., prerequisite: collections.abc.Iterable[builtins.str] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['prerequisite', b'prerequisite', 'script', b'script']) -> None: + ... ARGUMENTS_FIELD_NUMBER: builtins.int OUTPUT_TYPE_FIELD_NUMBER: builtins.int PYTHON_PICKLE_FUNCTION_FIELD_NUMBER: builtins.int WEB_ASSEMBLY_FUNCTION_FIELD_NUMBER: builtins.int + @property - def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: ... + def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: + ... + @property - def output_type(self) -> proto.type_pb2.Type: ... + def output_type(self) -> proto.type_pb2.Type: + ... + @property - def python_pickle_function(self) -> global___Expression.EmbeddedFunction.PythonPickleFunction: ... + def python_pickle_function(self) -> global___Expression.EmbeddedFunction.PythonPickleFunction: + ... + @property - def web_assembly_function(self) -> global___Expression.EmbeddedFunction.WebAssemblyFunction: ... - def __init__( - self, - *, - arguments: collections.abc.Iterable[global___Expression] | None = ..., - output_type: proto.type_pb2.Type | None = ..., - python_pickle_function: global___Expression.EmbeddedFunction.PythonPickleFunction | None = ..., - web_assembly_function: global___Expression.EmbeddedFunction.WebAssemblyFunction | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["kind", b"kind", "output_type", b"output_type", "python_pickle_function", b"python_pickle_function", "web_assembly_function", b"web_assembly_function"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["arguments", b"arguments", "kind", b"kind", "output_type", b"output_type", "python_pickle_function", b"python_pickle_function", "web_assembly_function", b"web_assembly_function"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["kind", b"kind"]) -> typing.Literal["python_pickle_function", "web_assembly_function"] | None: ... + def web_assembly_function(self) -> global___Expression.EmbeddedFunction.WebAssemblyFunction: + ... + + def __init__(self, *, arguments: collections.abc.Iterable[global___Expression] | None=..., output_type: proto.type_pb2.Type | None=..., python_pickle_function: global___Expression.EmbeddedFunction.PythonPickleFunction | None=..., web_assembly_function: global___Expression.EmbeddedFunction.WebAssemblyFunction | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['kind', b'kind', 'output_type', b'output_type', 'python_pickle_function', b'python_pickle_function', 'web_assembly_function', b'web_assembly_function']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['arguments', b'arguments', 'kind', b'kind', 'output_type', b'output_type', 'python_pickle_function', b'python_pickle_function', 'web_assembly_function', b'web_assembly_function']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['kind', b'kind']) -> typing.Literal['python_pickle_function', 'web_assembly_function'] | None: + ... @typing.final class ReferenceSegment(google.protobuf.message.Message): @@ -3619,15 +3580,14 @@ class Expression(google.protobuf.message.Message): (ordinalized in the internal representation here), [2] is a list offset and ['my_map_key'] is a reference into a map field. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class MapKey(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - MAP_KEY_FIELD_NUMBER: builtins.int CHILD_FIELD_NUMBER: builtins.int + @property def map_key(self) -> global___Expression.Literal: """literal based reference to specific possible value in map.""" @@ -3636,76 +3596,83 @@ class Expression(google.protobuf.message.Message): def child(self) -> global___Expression.ReferenceSegment: """Optional child segment""" - def __init__( - self, - *, - map_key: global___Expression.Literal | None = ..., - child: global___Expression.ReferenceSegment | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["child", b"child", "map_key", b"map_key"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["child", b"child", "map_key", b"map_key"]) -> None: ... + def __init__(self, *, map_key: global___Expression.Literal | None=..., child: global___Expression.ReferenceSegment | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['child', b'child', 'map_key', b'map_key']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['child', b'child', 'map_key', b'map_key']) -> None: + ... @typing.final class StructField(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - FIELD_FIELD_NUMBER: builtins.int CHILD_FIELD_NUMBER: builtins.int field: builtins.int - """zero-indexed ordinal position of field in struct""" + 'zero-indexed ordinal position of field in struct' + @property def child(self) -> global___Expression.ReferenceSegment: """Optional child segment""" - def __init__( - self, - *, - field: builtins.int = ..., - child: global___Expression.ReferenceSegment | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["child", b"child"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["child", b"child", "field", b"field"]) -> None: ... + def __init__(self, *, field: builtins.int=..., child: global___Expression.ReferenceSegment | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['child', b'child']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['child', b'child', 'field', b'field']) -> None: + ... @typing.final class ListElement(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - OFFSET_FIELD_NUMBER: builtins.int CHILD_FIELD_NUMBER: builtins.int offset: builtins.int - """zero-indexed ordinal position of element in list""" + 'zero-indexed ordinal position of element in list' + @property def child(self) -> global___Expression.ReferenceSegment: """Optional child segment""" - def __init__( - self, - *, - offset: builtins.int = ..., - child: global___Expression.ReferenceSegment | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["child", b"child"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["child", b"child", "offset", b"offset"]) -> None: ... + def __init__(self, *, offset: builtins.int=..., child: global___Expression.ReferenceSegment | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['child', b'child']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['child', b'child', 'offset', b'offset']) -> None: + ... MAP_KEY_FIELD_NUMBER: builtins.int STRUCT_FIELD_FIELD_NUMBER: builtins.int LIST_ELEMENT_FIELD_NUMBER: builtins.int + @property - def map_key(self) -> global___Expression.ReferenceSegment.MapKey: ... + def map_key(self) -> global___Expression.ReferenceSegment.MapKey: + ... + @property - def struct_field(self) -> global___Expression.ReferenceSegment.StructField: ... + def struct_field(self) -> global___Expression.ReferenceSegment.StructField: + ... + @property - def list_element(self) -> global___Expression.ReferenceSegment.ListElement: ... - def __init__( - self, - *, - map_key: global___Expression.ReferenceSegment.MapKey | None = ..., - struct_field: global___Expression.ReferenceSegment.StructField | None = ..., - list_element: global___Expression.ReferenceSegment.ListElement | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["list_element", b"list_element", "map_key", b"map_key", "reference_type", b"reference_type", "struct_field", b"struct_field"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["list_element", b"list_element", "map_key", b"map_key", "reference_type", b"reference_type", "struct_field", b"struct_field"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["reference_type", b"reference_type"]) -> typing.Literal["map_key", "struct_field", "list_element"] | None: ... + def list_element(self) -> global___Expression.ReferenceSegment.ListElement: + ... + + def __init__(self, *, map_key: global___Expression.ReferenceSegment.MapKey | None=..., struct_field: global___Expression.ReferenceSegment.StructField | None=..., list_element: global___Expression.ReferenceSegment.ListElement | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['list_element', b'list_element', 'map_key', b'map_key', 'reference_type', b'reference_type', 'struct_field', b'struct_field']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['list_element', b'list_element', 'map_key', b'map_key', 'reference_type', b'reference_type', 'struct_field', b'struct_field']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['reference_type', b'reference_type']) -> typing.Literal['map_key', 'struct_field', 'list_element'] | None: + ... @typing.final class MaskExpression(google.protobuf.message.Message): @@ -3719,64 +3686,73 @@ class Expression(google.protobuf.message.Message): Note that this does not fundamentally alter the structure of data beyond the elimination of unnecessary elements. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class Select(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - STRUCT_FIELD_NUMBER: builtins.int LIST_FIELD_NUMBER: builtins.int MAP_FIELD_NUMBER: builtins.int + @property - def struct(self) -> global___Expression.MaskExpression.StructSelect: ... + def struct(self) -> global___Expression.MaskExpression.StructSelect: + ... + @property - def list(self) -> global___Expression.MaskExpression.ListSelect: ... + def list(self) -> global___Expression.MaskExpression.ListSelect: + ... + @property - def map(self) -> global___Expression.MaskExpression.MapSelect: ... - def __init__( - self, - *, - struct: global___Expression.MaskExpression.StructSelect | None = ..., - list: global___Expression.MaskExpression.ListSelect | None = ..., - map: global___Expression.MaskExpression.MapSelect | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["list", b"list", "map", b"map", "struct", b"struct", "type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["list", b"list", "map", b"map", "struct", b"struct", "type", b"type"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["type", b"type"]) -> typing.Literal["struct", "list", "map"] | None: ... + def map(self) -> global___Expression.MaskExpression.MapSelect: + ... + + def __init__(self, *, struct: global___Expression.MaskExpression.StructSelect | None=..., list: global___Expression.MaskExpression.ListSelect | None=..., map: global___Expression.MaskExpression.MapSelect | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['list', b'list', 'map', b'map', 'struct', b'struct', 'type', b'type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['list', b'list', 'map', b'map', 'struct', b'struct', 'type', b'type']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['type', b'type']) -> typing.Literal['struct', 'list', 'map'] | None: + ... @typing.final class StructSelect(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - STRUCT_ITEMS_FIELD_NUMBER: builtins.int + @property - def struct_items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.MaskExpression.StructItem]: ... - def __init__( - self, - *, - struct_items: collections.abc.Iterable[global___Expression.MaskExpression.StructItem] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["struct_items", b"struct_items"]) -> None: ... + def struct_items(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.MaskExpression.StructItem]: + ... + + def __init__(self, *, struct_items: collections.abc.Iterable[global___Expression.MaskExpression.StructItem] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['struct_items', b'struct_items']) -> None: + ... @typing.final class StructItem(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - FIELD_FIELD_NUMBER: builtins.int CHILD_FIELD_NUMBER: builtins.int field: builtins.int + @property - def child(self) -> global___Expression.MaskExpression.Select: ... - def __init__( - self, - *, - field: builtins.int = ..., - child: global___Expression.MaskExpression.Select | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["child", b"child"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["child", b"child", "field", b"field"]) -> None: ... + def child(self) -> global___Expression.MaskExpression.Select: + ... + + def __init__(self, *, field: builtins.int=..., child: global___Expression.MaskExpression.Select | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['child', b'child']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['child', b'child', 'field', b'field']) -> None: + ... @typing.final class ListSelect(google.protobuf.message.Message): @@ -3789,62 +3765,69 @@ class Expression(google.protobuf.message.Message): @typing.final class ListElement(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - FIELD_FIELD_NUMBER: builtins.int field: builtins.int - def __init__( - self, - *, - field: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["field", b"field"]) -> None: ... + + def __init__(self, *, field: builtins.int=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['field', b'field']) -> None: + ... @typing.final class ListSlice(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - START_FIELD_NUMBER: builtins.int END_FIELD_NUMBER: builtins.int start: builtins.int end: builtins.int - def __init__( - self, - *, - start: builtins.int = ..., - end: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["end", b"end", "start", b"start"]) -> None: ... + def __init__(self, *, start: builtins.int=..., end: builtins.int=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['end', b'end', 'start', b'start']) -> None: + ... ITEM_FIELD_NUMBER: builtins.int SLICE_FIELD_NUMBER: builtins.int + @property - def item(self) -> global___Expression.MaskExpression.ListSelect.ListSelectItem.ListElement: ... + def item(self) -> global___Expression.MaskExpression.ListSelect.ListSelectItem.ListElement: + ... + @property - def slice(self) -> global___Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice: ... - def __init__( - self, - *, - item: global___Expression.MaskExpression.ListSelect.ListSelectItem.ListElement | None = ..., - slice: global___Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["item", b"item", "slice", b"slice", "type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["item", b"item", "slice", b"slice", "type", b"type"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["type", b"type"]) -> typing.Literal["item", "slice"] | None: ... + def slice(self) -> global___Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice: + ... + def __init__(self, *, item: global___Expression.MaskExpression.ListSelect.ListSelectItem.ListElement | None=..., slice: global___Expression.MaskExpression.ListSelect.ListSelectItem.ListSlice | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['item', b'item', 'slice', b'slice', 'type', b'type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['item', b'item', 'slice', b'slice', 'type', b'type']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['type', b'type']) -> typing.Literal['item', 'slice'] | None: + ... SELECTION_FIELD_NUMBER: builtins.int CHILD_FIELD_NUMBER: builtins.int + @property - def selection(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.MaskExpression.ListSelect.ListSelectItem]: ... + def selection(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression.MaskExpression.ListSelect.ListSelectItem]: + ... + @property - def child(self) -> global___Expression.MaskExpression.Select: ... - def __init__( - self, - *, - selection: collections.abc.Iterable[global___Expression.MaskExpression.ListSelect.ListSelectItem] | None = ..., - child: global___Expression.MaskExpression.Select | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["child", b"child"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["child", b"child", "selection", b"selection"]) -> None: ... + def child(self) -> global___Expression.MaskExpression.Select: + ... + + def __init__(self, *, selection: collections.abc.Iterable[global___Expression.MaskExpression.ListSelect.ListSelectItem] | None=..., child: global___Expression.MaskExpression.Select | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['child', b'child']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['child', b'child', 'selection', b'selection']) -> None: + ... @typing.final class MapSelect(google.protobuf.message.Message): @@ -3853,69 +3836,75 @@ class Expression(google.protobuf.message.Message): @typing.final class MapKey(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - MAP_KEY_FIELD_NUMBER: builtins.int map_key: builtins.str - def __init__( - self, - *, - map_key: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["map_key", b"map_key"]) -> None: ... + + def __init__(self, *, map_key: builtins.str=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['map_key', b'map_key']) -> None: + ... @typing.final class MapKeyExpression(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - MAP_KEY_EXPRESSION_FIELD_NUMBER: builtins.int map_key_expression: builtins.str - def __init__( - self, - *, - map_key_expression: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["map_key_expression", b"map_key_expression"]) -> None: ... + def __init__(self, *, map_key_expression: builtins.str=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['map_key_expression', b'map_key_expression']) -> None: + ... KEY_FIELD_NUMBER: builtins.int EXPRESSION_FIELD_NUMBER: builtins.int CHILD_FIELD_NUMBER: builtins.int + @property - def key(self) -> global___Expression.MaskExpression.MapSelect.MapKey: ... + def key(self) -> global___Expression.MaskExpression.MapSelect.MapKey: + ... + @property - def expression(self) -> global___Expression.MaskExpression.MapSelect.MapKeyExpression: ... + def expression(self) -> global___Expression.MaskExpression.MapSelect.MapKeyExpression: + ... + @property - def child(self) -> global___Expression.MaskExpression.Select: ... - def __init__( - self, - *, - key: global___Expression.MaskExpression.MapSelect.MapKey | None = ..., - expression: global___Expression.MaskExpression.MapSelect.MapKeyExpression | None = ..., - child: global___Expression.MaskExpression.Select | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["child", b"child", "expression", b"expression", "key", b"key", "select", b"select"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["child", b"child", "expression", b"expression", "key", b"key", "select", b"select"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["select", b"select"]) -> typing.Literal["key", "expression"] | None: ... + def child(self) -> global___Expression.MaskExpression.Select: + ... + def __init__(self, *, key: global___Expression.MaskExpression.MapSelect.MapKey | None=..., expression: global___Expression.MaskExpression.MapSelect.MapKeyExpression | None=..., child: global___Expression.MaskExpression.Select | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['child', b'child', 'expression', b'expression', 'key', b'key', 'select', b'select']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['child', b'child', 'expression', b'expression', 'key', b'key', 'select', b'select']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['select', b'select']) -> typing.Literal['key', 'expression'] | None: + ... SELECT_FIELD_NUMBER: builtins.int MAINTAIN_SINGULAR_STRUCT_FIELD_NUMBER: builtins.int maintain_singular_struct: builtins.bool + @property - def select(self) -> global___Expression.MaskExpression.StructSelect: ... - def __init__( - self, - *, - select: global___Expression.MaskExpression.StructSelect | None = ..., - maintain_singular_struct: builtins.bool = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["select", b"select"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["maintain_singular_struct", b"maintain_singular_struct", "select", b"select"]) -> None: ... + def select(self) -> global___Expression.MaskExpression.StructSelect: + ... + + def __init__(self, *, select: global___Expression.MaskExpression.StructSelect | None=..., maintain_singular_struct: builtins.bool=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['select', b'select']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['maintain_singular_struct', b'maintain_singular_struct', 'select', b'select']) -> None: + ... @typing.final class FieldReference(google.protobuf.message.Message): """A reference to an inner part of a complex object. Can reference reference a single element or a masked version of elements """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final @@ -3923,67 +3912,70 @@ class Expression(google.protobuf.message.Message): """Singleton that expresses this FieldReference is rooted off the root incoming record type """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__( - self, - ) -> None: ... + def __init__(self) -> None: + ... @typing.final class OuterReference(google.protobuf.message.Message): """A root reference for the outer relation's subquery""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - STEPS_OUT_FIELD_NUMBER: builtins.int steps_out: builtins.int - """number of subquery boundaries to traverse up for this field's reference + "number of subquery boundaries to traverse up for this field's reference\n\n This value must be >= 1\n " - This value must be >= 1 - """ - def __init__( - self, - *, - steps_out: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["steps_out", b"steps_out"]) -> None: ... + def __init__(self, *, steps_out: builtins.int=...) -> None: + ... + def ClearField(self, field_name: typing.Literal['steps_out', b'steps_out']) -> None: + ... DIRECT_REFERENCE_FIELD_NUMBER: builtins.int MASKED_REFERENCE_FIELD_NUMBER: builtins.int EXPRESSION_FIELD_NUMBER: builtins.int ROOT_REFERENCE_FIELD_NUMBER: builtins.int OUTER_REFERENCE_FIELD_NUMBER: builtins.int + @property - def direct_reference(self) -> global___Expression.ReferenceSegment: ... + def direct_reference(self) -> global___Expression.ReferenceSegment: + ... + @property - def masked_reference(self) -> global___Expression.MaskExpression: ... + def masked_reference(self) -> global___Expression.MaskExpression: + ... + @property - def expression(self) -> global___Expression: ... + def expression(self) -> global___Expression: + ... + @property - def root_reference(self) -> global___Expression.FieldReference.RootReference: ... + def root_reference(self) -> global___Expression.FieldReference.RootReference: + ... + @property - def outer_reference(self) -> global___Expression.FieldReference.OuterReference: ... - def __init__( - self, - *, - direct_reference: global___Expression.ReferenceSegment | None = ..., - masked_reference: global___Expression.MaskExpression | None = ..., - expression: global___Expression | None = ..., - root_reference: global___Expression.FieldReference.RootReference | None = ..., - outer_reference: global___Expression.FieldReference.OuterReference | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["direct_reference", b"direct_reference", "expression", b"expression", "masked_reference", b"masked_reference", "outer_reference", b"outer_reference", "reference_type", b"reference_type", "root_reference", b"root_reference", "root_type", b"root_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["direct_reference", b"direct_reference", "expression", b"expression", "masked_reference", b"masked_reference", "outer_reference", b"outer_reference", "reference_type", b"reference_type", "root_reference", b"root_reference", "root_type", b"root_type"]) -> None: ... + def outer_reference(self) -> global___Expression.FieldReference.OuterReference: + ... + + def __init__(self, *, direct_reference: global___Expression.ReferenceSegment | None=..., masked_reference: global___Expression.MaskExpression | None=..., expression: global___Expression | None=..., root_reference: global___Expression.FieldReference.RootReference | None=..., outer_reference: global___Expression.FieldReference.OuterReference | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['direct_reference', b'direct_reference', 'expression', b'expression', 'masked_reference', b'masked_reference', 'outer_reference', b'outer_reference', 'reference_type', b'reference_type', 'root_reference', b'root_reference', 'root_type', b'root_type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['direct_reference', b'direct_reference', 'expression', b'expression', 'masked_reference', b'masked_reference', 'outer_reference', b'outer_reference', 'reference_type', b'reference_type', 'root_reference', b'root_reference', 'root_type', b'root_type']) -> None: + ... + @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["reference_type", b"reference_type"]) -> typing.Literal["direct_reference", "masked_reference"] | None: ... + def WhichOneof(self, oneof_group: typing.Literal['reference_type', b'reference_type']) -> typing.Literal['direct_reference', 'masked_reference'] | None: + ... + @typing.overload - def WhichOneof(self, oneof_group: typing.Literal["root_type", b"root_type"]) -> typing.Literal["expression", "root_reference", "outer_reference"] | None: ... + def WhichOneof(self, oneof_group: typing.Literal['root_type', b'root_type']) -> typing.Literal['expression', 'root_reference', 'outer_reference'] | None: + ... @typing.final class Subquery(google.protobuf.message.Message): """Subquery relation expression""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final @@ -3991,19 +3983,21 @@ class Expression(google.protobuf.message.Message): """A subquery with one row and one column. This is often an aggregate though not required to be. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - INPUT_FIELD_NUMBER: builtins.int + @property - def input(self) -> global___Rel: ... - def __init__( - self, - *, - input: global___Rel | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["input", b"input"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["input", b"input"]) -> None: ... + def input(self) -> global___Rel: + ... + + def __init__(self, *, input: global___Rel | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['input', b'input']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['input', b'input']) -> None: + ... @typing.final class InPredicate(google.protobuf.message.Message): @@ -4015,61 +4009,66 @@ class Expression(google.protobuf.message.Message): x IN (SELECT * FROM t) (x, y) IN (SELECT a, b FROM t) """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NEEDLES_FIELD_NUMBER: builtins.int HAYSTACK_FIELD_NUMBER: builtins.int + @property - def needles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: ... + def needles(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: + ... + @property - def haystack(self) -> global___Rel: ... - def __init__( - self, - *, - needles: collections.abc.Iterable[global___Expression] | None = ..., - haystack: global___Rel | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["haystack", b"haystack"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["haystack", b"haystack", "needles", b"needles"]) -> None: ... + def haystack(self) -> global___Rel: + ... + + def __init__(self, *, needles: collections.abc.Iterable[global___Expression] | None=..., haystack: global___Rel | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['haystack', b'haystack']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['haystack', b'haystack', 'needles', b'needles']) -> None: + ... @typing.final class SetPredicate(google.protobuf.message.Message): """A predicate over a set of rows in the form of a subquery EXISTS and UNIQUE are common SQL forms of this operation. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor class _PredicateOp: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _PredicateOpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Expression.Subquery.SetPredicate._PredicateOp.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - PREDICATE_OP_UNSPECIFIED: Expression.Subquery.SetPredicate._PredicateOp.ValueType # 0 - PREDICATE_OP_EXISTS: Expression.Subquery.SetPredicate._PredicateOp.ValueType # 1 - PREDICATE_OP_UNIQUE: Expression.Subquery.SetPredicate._PredicateOp.ValueType # 2 - - class PredicateOp(_PredicateOp, metaclass=_PredicateOpEnumTypeWrapper): ... - PREDICATE_OP_UNSPECIFIED: Expression.Subquery.SetPredicate.PredicateOp.ValueType # 0 - PREDICATE_OP_EXISTS: Expression.Subquery.SetPredicate.PredicateOp.ValueType # 1 - PREDICATE_OP_UNIQUE: Expression.Subquery.SetPredicate.PredicateOp.ValueType # 2 - + PREDICATE_OP_UNSPECIFIED: Expression.Subquery.SetPredicate._PredicateOp.ValueType + PREDICATE_OP_EXISTS: Expression.Subquery.SetPredicate._PredicateOp.ValueType + PREDICATE_OP_UNIQUE: Expression.Subquery.SetPredicate._PredicateOp.ValueType + + class PredicateOp(_PredicateOp, metaclass=_PredicateOpEnumTypeWrapper): + ... + PREDICATE_OP_UNSPECIFIED: Expression.Subquery.SetPredicate.PredicateOp.ValueType + PREDICATE_OP_EXISTS: Expression.Subquery.SetPredicate.PredicateOp.ValueType + PREDICATE_OP_UNIQUE: Expression.Subquery.SetPredicate.PredicateOp.ValueType PREDICATE_OP_FIELD_NUMBER: builtins.int TUPLES_FIELD_NUMBER: builtins.int predicate_op: global___Expression.Subquery.SetPredicate.PredicateOp.ValueType - """TODO: should allow expressions""" + 'TODO: should allow expressions' + @property - def tuples(self) -> global___Rel: ... - def __init__( - self, - *, - predicate_op: global___Expression.Subquery.SetPredicate.PredicateOp.ValueType = ..., - tuples: global___Rel | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["tuples", b"tuples"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["predicate_op", b"predicate_op", "tuples", b"tuples"]) -> None: ... + def tuples(self) -> global___Rel: + ... + + def __init__(self, *, predicate_op: global___Expression.Subquery.SetPredicate.PredicateOp.ValueType=..., tuples: global___Rel | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['tuples', b'tuples']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['predicate_op', b'predicate_op', 'tuples', b'tuples']) -> None: + ... @typing.final class SetComparison(google.protobuf.message.Message): @@ -4080,55 +4079,56 @@ class Expression(google.protobuf.message.Message): FROM t1 WHERE x < ANY(SELECT y from t2) """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor class _ComparisonOp: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _ComparisonOpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Expression.Subquery.SetComparison._ComparisonOp.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - COMPARISON_OP_UNSPECIFIED: Expression.Subquery.SetComparison._ComparisonOp.ValueType # 0 - COMPARISON_OP_EQ: Expression.Subquery.SetComparison._ComparisonOp.ValueType # 1 - COMPARISON_OP_NE: Expression.Subquery.SetComparison._ComparisonOp.ValueType # 2 - COMPARISON_OP_LT: Expression.Subquery.SetComparison._ComparisonOp.ValueType # 3 - COMPARISON_OP_GT: Expression.Subquery.SetComparison._ComparisonOp.ValueType # 4 - COMPARISON_OP_LE: Expression.Subquery.SetComparison._ComparisonOp.ValueType # 5 - COMPARISON_OP_GE: Expression.Subquery.SetComparison._ComparisonOp.ValueType # 6 - - class ComparisonOp(_ComparisonOp, metaclass=_ComparisonOpEnumTypeWrapper): ... - COMPARISON_OP_UNSPECIFIED: Expression.Subquery.SetComparison.ComparisonOp.ValueType # 0 - COMPARISON_OP_EQ: Expression.Subquery.SetComparison.ComparisonOp.ValueType # 1 - COMPARISON_OP_NE: Expression.Subquery.SetComparison.ComparisonOp.ValueType # 2 - COMPARISON_OP_LT: Expression.Subquery.SetComparison.ComparisonOp.ValueType # 3 - COMPARISON_OP_GT: Expression.Subquery.SetComparison.ComparisonOp.ValueType # 4 - COMPARISON_OP_LE: Expression.Subquery.SetComparison.ComparisonOp.ValueType # 5 - COMPARISON_OP_GE: Expression.Subquery.SetComparison.ComparisonOp.ValueType # 6 + COMPARISON_OP_UNSPECIFIED: Expression.Subquery.SetComparison._ComparisonOp.ValueType + COMPARISON_OP_EQ: Expression.Subquery.SetComparison._ComparisonOp.ValueType + COMPARISON_OP_NE: Expression.Subquery.SetComparison._ComparisonOp.ValueType + COMPARISON_OP_LT: Expression.Subquery.SetComparison._ComparisonOp.ValueType + COMPARISON_OP_GT: Expression.Subquery.SetComparison._ComparisonOp.ValueType + COMPARISON_OP_LE: Expression.Subquery.SetComparison._ComparisonOp.ValueType + COMPARISON_OP_GE: Expression.Subquery.SetComparison._ComparisonOp.ValueType + + class ComparisonOp(_ComparisonOp, metaclass=_ComparisonOpEnumTypeWrapper): + ... + COMPARISON_OP_UNSPECIFIED: Expression.Subquery.SetComparison.ComparisonOp.ValueType + COMPARISON_OP_EQ: Expression.Subquery.SetComparison.ComparisonOp.ValueType + COMPARISON_OP_NE: Expression.Subquery.SetComparison.ComparisonOp.ValueType + COMPARISON_OP_LT: Expression.Subquery.SetComparison.ComparisonOp.ValueType + COMPARISON_OP_GT: Expression.Subquery.SetComparison.ComparisonOp.ValueType + COMPARISON_OP_LE: Expression.Subquery.SetComparison.ComparisonOp.ValueType + COMPARISON_OP_GE: Expression.Subquery.SetComparison.ComparisonOp.ValueType class _ReductionOp: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _ReductionOpEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Expression.Subquery.SetComparison._ReductionOp.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - REDUCTION_OP_UNSPECIFIED: Expression.Subquery.SetComparison._ReductionOp.ValueType # 0 - REDUCTION_OP_ANY: Expression.Subquery.SetComparison._ReductionOp.ValueType # 1 - REDUCTION_OP_ALL: Expression.Subquery.SetComparison._ReductionOp.ValueType # 2 - - class ReductionOp(_ReductionOp, metaclass=_ReductionOpEnumTypeWrapper): ... - REDUCTION_OP_UNSPECIFIED: Expression.Subquery.SetComparison.ReductionOp.ValueType # 0 - REDUCTION_OP_ANY: Expression.Subquery.SetComparison.ReductionOp.ValueType # 1 - REDUCTION_OP_ALL: Expression.Subquery.SetComparison.ReductionOp.ValueType # 2 - + REDUCTION_OP_UNSPECIFIED: Expression.Subquery.SetComparison._ReductionOp.ValueType + REDUCTION_OP_ANY: Expression.Subquery.SetComparison._ReductionOp.ValueType + REDUCTION_OP_ALL: Expression.Subquery.SetComparison._ReductionOp.ValueType + + class ReductionOp(_ReductionOp, metaclass=_ReductionOpEnumTypeWrapper): + ... + REDUCTION_OP_UNSPECIFIED: Expression.Subquery.SetComparison.ReductionOp.ValueType + REDUCTION_OP_ANY: Expression.Subquery.SetComparison.ReductionOp.ValueType + REDUCTION_OP_ALL: Expression.Subquery.SetComparison.ReductionOp.ValueType REDUCTION_OP_FIELD_NUMBER: builtins.int COMPARISON_OP_FIELD_NUMBER: builtins.int LEFT_FIELD_NUMBER: builtins.int RIGHT_FIELD_NUMBER: builtins.int reduction_op: global___Expression.Subquery.SetComparison.ReductionOp.ValueType - """ANY or ALL""" + 'ANY or ALL' comparison_op: global___Expression.Subquery.SetComparison.ComparisonOp.ValueType - """A comparison operator""" + 'A comparison operator' + @property def left(self) -> global___Expression: """left side of the expression""" @@ -4137,21 +4137,19 @@ class Expression(google.protobuf.message.Message): def right(self) -> global___Rel: """right side of the expression""" - def __init__( - self, - *, - reduction_op: global___Expression.Subquery.SetComparison.ReductionOp.ValueType = ..., - comparison_op: global___Expression.Subquery.SetComparison.ComparisonOp.ValueType = ..., - left: global___Expression | None = ..., - right: global___Rel | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["left", b"left", "right", b"right"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["comparison_op", b"comparison_op", "left", b"left", "reduction_op", b"reduction_op", "right", b"right"]) -> None: ... + def __init__(self, *, reduction_op: global___Expression.Subquery.SetComparison.ReductionOp.ValueType=..., comparison_op: global___Expression.Subquery.SetComparison.ComparisonOp.ValueType=..., left: global___Expression | None=..., right: global___Rel | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['left', b'left', 'right', b'right']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['comparison_op', b'comparison_op', 'left', b'left', 'reduction_op', b'reduction_op', 'right', b'right']) -> None: + ... SCALAR_FIELD_NUMBER: builtins.int IN_PREDICATE_FIELD_NUMBER: builtins.int SET_PREDICATE_FIELD_NUMBER: builtins.int SET_COMPARISON_FIELD_NUMBER: builtins.int + @property def scalar(self) -> global___Expression.Subquery.Scalar: """Scalar subquery""" @@ -4168,18 +4166,17 @@ class Expression(google.protobuf.message.Message): def set_comparison(self) -> global___Expression.Subquery.SetComparison: """ANY/ALL predicate""" - def __init__( - self, - *, - scalar: global___Expression.Subquery.Scalar | None = ..., - in_predicate: global___Expression.Subquery.InPredicate | None = ..., - set_predicate: global___Expression.Subquery.SetPredicate | None = ..., - set_comparison: global___Expression.Subquery.SetComparison | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["in_predicate", b"in_predicate", "scalar", b"scalar", "set_comparison", b"set_comparison", "set_predicate", b"set_predicate", "subquery_type", b"subquery_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["in_predicate", b"in_predicate", "scalar", b"scalar", "set_comparison", b"set_comparison", "set_predicate", b"set_predicate", "subquery_type", b"subquery_type"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["subquery_type", b"subquery_type"]) -> typing.Literal["scalar", "in_predicate", "set_predicate", "set_comparison"] | None: ... + def __init__(self, *, scalar: global___Expression.Subquery.Scalar | None=..., in_predicate: global___Expression.Subquery.InPredicate | None=..., set_predicate: global___Expression.Subquery.SetPredicate | None=..., set_comparison: global___Expression.Subquery.SetComparison | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['in_predicate', b'in_predicate', 'scalar', b'scalar', 'set_comparison', b'set_comparison', 'set_predicate', b'set_predicate', 'subquery_type', b'subquery_type']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['in_predicate', b'in_predicate', 'scalar', b'scalar', 'set_comparison', b'set_comparison', 'set_predicate', b'set_predicate', 'subquery_type', b'subquery_type']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['subquery_type', b'subquery_type']) -> typing.Literal['scalar', 'in_predicate', 'set_predicate', 'set_comparison'] | None: + ... LITERAL_FIELD_NUMBER: builtins.int SELECTION_FIELD_NUMBER: builtins.int SCALAR_FUNCTION_FIELD_NUMBER: builtins.int @@ -4193,30 +4190,55 @@ class Expression(google.protobuf.message.Message): NESTED_FIELD_NUMBER: builtins.int DYNAMIC_PARAMETER_FIELD_NUMBER: builtins.int ENUM_FIELD_NUMBER: builtins.int + @property - def literal(self) -> global___Expression.Literal: ... + def literal(self) -> global___Expression.Literal: + ... + @property - def selection(self) -> global___Expression.FieldReference: ... + def selection(self) -> global___Expression.FieldReference: + ... + @property - def scalar_function(self) -> global___Expression.ScalarFunction: ... + def scalar_function(self) -> global___Expression.ScalarFunction: + ... + @property - def window_function(self) -> global___Expression.WindowFunction: ... + def window_function(self) -> global___Expression.WindowFunction: + ... + @property - def if_then(self) -> global___Expression.IfThen: ... + def if_then(self) -> global___Expression.IfThen: + ... + @property - def switch_expression(self) -> global___Expression.SwitchExpression: ... + def switch_expression(self) -> global___Expression.SwitchExpression: + ... + @property - def singular_or_list(self) -> global___Expression.SingularOrList: ... + def singular_or_list(self) -> global___Expression.SingularOrList: + ... + @property - def multi_or_list(self) -> global___Expression.MultiOrList: ... + def multi_or_list(self) -> global___Expression.MultiOrList: + ... + @property - def cast(self) -> global___Expression.Cast: ... + def cast(self) -> global___Expression.Cast: + ... + @property - def subquery(self) -> global___Expression.Subquery: ... + def subquery(self) -> global___Expression.Subquery: + ... + @property - def nested(self) -> global___Expression.Nested: ... + def nested(self) -> global___Expression.Nested: + ... + @property - def dynamic_parameter(self) -> global___DynamicParameter: ... + def dynamic_parameter(self) -> global___DynamicParameter: + ... + @property def enum(self) -> global___Expression.Enum: """deprecated: enum literals are only sensible in the context of @@ -4224,27 +4246,17 @@ class Expression(google.protobuf.message.Message): used """ - def __init__( - self, - *, - literal: global___Expression.Literal | None = ..., - selection: global___Expression.FieldReference | None = ..., - scalar_function: global___Expression.ScalarFunction | None = ..., - window_function: global___Expression.WindowFunction | None = ..., - if_then: global___Expression.IfThen | None = ..., - switch_expression: global___Expression.SwitchExpression | None = ..., - singular_or_list: global___Expression.SingularOrList | None = ..., - multi_or_list: global___Expression.MultiOrList | None = ..., - cast: global___Expression.Cast | None = ..., - subquery: global___Expression.Subquery | None = ..., - nested: global___Expression.Nested | None = ..., - dynamic_parameter: global___DynamicParameter | None = ..., - enum: global___Expression.Enum | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["cast", b"cast", "dynamic_parameter", b"dynamic_parameter", "enum", b"enum", "if_then", b"if_then", "literal", b"literal", "multi_or_list", b"multi_or_list", "nested", b"nested", "rex_type", b"rex_type", "scalar_function", b"scalar_function", "selection", b"selection", "singular_or_list", b"singular_or_list", "subquery", b"subquery", "switch_expression", b"switch_expression", "window_function", b"window_function"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["cast", b"cast", "dynamic_parameter", b"dynamic_parameter", "enum", b"enum", "if_then", b"if_then", "literal", b"literal", "multi_or_list", b"multi_or_list", "nested", b"nested", "rex_type", b"rex_type", "scalar_function", b"scalar_function", "selection", b"selection", "singular_or_list", b"singular_or_list", "subquery", b"subquery", "switch_expression", b"switch_expression", "window_function", b"window_function"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["rex_type", b"rex_type"]) -> typing.Literal["literal", "selection", "scalar_function", "window_function", "if_then", "switch_expression", "singular_or_list", "multi_or_list", "cast", "subquery", "nested", "dynamic_parameter", "enum"] | None: ... + def __init__(self, *, literal: global___Expression.Literal | None=..., selection: global___Expression.FieldReference | None=..., scalar_function: global___Expression.ScalarFunction | None=..., window_function: global___Expression.WindowFunction | None=..., if_then: global___Expression.IfThen | None=..., switch_expression: global___Expression.SwitchExpression | None=..., singular_or_list: global___Expression.SingularOrList | None=..., multi_or_list: global___Expression.MultiOrList | None=..., cast: global___Expression.Cast | None=..., subquery: global___Expression.Subquery | None=..., nested: global___Expression.Nested | None=..., dynamic_parameter: global___DynamicParameter | None=..., enum: global___Expression.Enum | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['cast', b'cast', 'dynamic_parameter', b'dynamic_parameter', 'enum', b'enum', 'if_then', b'if_then', 'literal', b'literal', 'multi_or_list', b'multi_or_list', 'nested', b'nested', 'rex_type', b'rex_type', 'scalar_function', b'scalar_function', 'selection', b'selection', 'singular_or_list', b'singular_or_list', 'subquery', b'subquery', 'switch_expression', b'switch_expression', 'window_function', b'window_function']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['cast', b'cast', 'dynamic_parameter', b'dynamic_parameter', 'enum', b'enum', 'if_then', b'if_then', 'literal', b'literal', 'multi_or_list', b'multi_or_list', 'nested', b'nested', 'rex_type', b'rex_type', 'scalar_function', b'scalar_function', 'selection', b'selection', 'singular_or_list', b'singular_or_list', 'subquery', b'subquery', 'switch_expression', b'switch_expression', 'window_function', b'window_function']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['rex_type', b'rex_type']) -> typing.Literal['literal', 'selection', 'scalar_function', 'window_function', 'if_then', 'switch_expression', 'singular_or_list', 'multi_or_list', 'cast', 'subquery', 'nested', 'dynamic_parameter', 'enum'] | None: + ... global___Expression = Expression @typing.final @@ -4252,104 +4264,101 @@ class DynamicParameter(google.protobuf.message.Message): """Expression that represents a dynamic parameter. Dynamic parameters are identified by a surrogate key within a plan. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int PARAMETER_REFERENCE_FIELD_NUMBER: builtins.int parameter_reference: builtins.int - """The surrogate key used within a plan to reference a specific parameter binding.""" + 'The surrogate key used within a plan to reference a specific parameter binding.' + @property def type(self) -> proto.type_pb2.Type: """The type of the dynamic parameter.""" - def __init__( - self, - *, - type: proto.type_pb2.Type | None = ..., - parameter_reference: builtins.int = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["parameter_reference", b"parameter_reference", "type", b"type"]) -> None: ... + def __init__(self, *, type: proto.type_pb2.Type | None=..., parameter_reference: builtins.int=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['parameter_reference', b'parameter_reference', 'type', b'type']) -> None: + ... global___DynamicParameter = DynamicParameter @typing.final class SortField(google.protobuf.message.Message): """The description of a field to sort on (including the direction of sorting and null semantics)""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor class _SortDirection: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _SortDirectionEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[SortField._SortDirection.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - SORT_DIRECTION_UNSPECIFIED: SortField._SortDirection.ValueType # 0 - SORT_DIRECTION_ASC_NULLS_FIRST: SortField._SortDirection.ValueType # 1 - SORT_DIRECTION_ASC_NULLS_LAST: SortField._SortDirection.ValueType # 2 - SORT_DIRECTION_DESC_NULLS_FIRST: SortField._SortDirection.ValueType # 3 - SORT_DIRECTION_DESC_NULLS_LAST: SortField._SortDirection.ValueType # 4 - SORT_DIRECTION_CLUSTERED: SortField._SortDirection.ValueType # 5 - - class SortDirection(_SortDirection, metaclass=_SortDirectionEnumTypeWrapper): ... - SORT_DIRECTION_UNSPECIFIED: SortField.SortDirection.ValueType # 0 - SORT_DIRECTION_ASC_NULLS_FIRST: SortField.SortDirection.ValueType # 1 - SORT_DIRECTION_ASC_NULLS_LAST: SortField.SortDirection.ValueType # 2 - SORT_DIRECTION_DESC_NULLS_FIRST: SortField.SortDirection.ValueType # 3 - SORT_DIRECTION_DESC_NULLS_LAST: SortField.SortDirection.ValueType # 4 - SORT_DIRECTION_CLUSTERED: SortField.SortDirection.ValueType # 5 - + SORT_DIRECTION_UNSPECIFIED: SortField._SortDirection.ValueType + SORT_DIRECTION_ASC_NULLS_FIRST: SortField._SortDirection.ValueType + SORT_DIRECTION_ASC_NULLS_LAST: SortField._SortDirection.ValueType + SORT_DIRECTION_DESC_NULLS_FIRST: SortField._SortDirection.ValueType + SORT_DIRECTION_DESC_NULLS_LAST: SortField._SortDirection.ValueType + SORT_DIRECTION_CLUSTERED: SortField._SortDirection.ValueType + + class SortDirection(_SortDirection, metaclass=_SortDirectionEnumTypeWrapper): + ... + SORT_DIRECTION_UNSPECIFIED: SortField.SortDirection.ValueType + SORT_DIRECTION_ASC_NULLS_FIRST: SortField.SortDirection.ValueType + SORT_DIRECTION_ASC_NULLS_LAST: SortField.SortDirection.ValueType + SORT_DIRECTION_DESC_NULLS_FIRST: SortField.SortDirection.ValueType + SORT_DIRECTION_DESC_NULLS_LAST: SortField.SortDirection.ValueType + SORT_DIRECTION_CLUSTERED: SortField.SortDirection.ValueType EXPR_FIELD_NUMBER: builtins.int DIRECTION_FIELD_NUMBER: builtins.int COMPARISON_FUNCTION_REFERENCE_FIELD_NUMBER: builtins.int direction: global___SortField.SortDirection.ValueType comparison_function_reference: builtins.int + @property - def expr(self) -> global___Expression: ... - def __init__( - self, - *, - expr: global___Expression | None = ..., - direction: global___SortField.SortDirection.ValueType = ..., - comparison_function_reference: builtins.int = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["comparison_function_reference", b"comparison_function_reference", "direction", b"direction", "expr", b"expr", "sort_kind", b"sort_kind"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["comparison_function_reference", b"comparison_function_reference", "direction", b"direction", "expr", b"expr", "sort_kind", b"sort_kind"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["sort_kind", b"sort_kind"]) -> typing.Literal["direction", "comparison_function_reference"] | None: ... + def expr(self) -> global___Expression: + ... + + def __init__(self, *, expr: global___Expression | None=..., direction: global___SortField.SortDirection.ValueType=..., comparison_function_reference: builtins.int=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['comparison_function_reference', b'comparison_function_reference', 'direction', b'direction', 'expr', b'expr', 'sort_kind', b'sort_kind']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['comparison_function_reference', b'comparison_function_reference', 'direction', b'direction', 'expr', b'expr', 'sort_kind', b'sort_kind']) -> None: + ... + def WhichOneof(self, oneof_group: typing.Literal['sort_kind', b'sort_kind']) -> typing.Literal['direction', 'comparison_function_reference'] | None: + ... global___SortField = SortField @typing.final class AggregateFunction(google.protobuf.message.Message): """An aggregate function.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor class _AggregationInvocation: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _AggregationInvocationEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[AggregateFunction._AggregationInvocation.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - AGGREGATION_INVOCATION_UNSPECIFIED: AggregateFunction._AggregationInvocation.ValueType # 0 - """This default value implies AGGREGATION_INVOCATION_ALL.""" - AGGREGATION_INVOCATION_ALL: AggregateFunction._AggregationInvocation.ValueType # 1 - """Use all values in the aggregation calculation.""" - AGGREGATION_INVOCATION_DISTINCT: AggregateFunction._AggregationInvocation.ValueType # 2 - """Use only distinct values in the aggregation calculation.""" + AGGREGATION_INVOCATION_UNSPECIFIED: AggregateFunction._AggregationInvocation.ValueType + 'This default value implies AGGREGATION_INVOCATION_ALL.' + AGGREGATION_INVOCATION_ALL: AggregateFunction._AggregationInvocation.ValueType + 'Use all values in the aggregation calculation.' + AGGREGATION_INVOCATION_DISTINCT: AggregateFunction._AggregationInvocation.ValueType + 'Use only distinct values in the aggregation calculation.' class AggregationInvocation(_AggregationInvocation, metaclass=_AggregationInvocationEnumTypeWrapper): """Method in which equivalent records are merged before being aggregated.""" - - AGGREGATION_INVOCATION_UNSPECIFIED: AggregateFunction.AggregationInvocation.ValueType # 0 - """This default value implies AGGREGATION_INVOCATION_ALL.""" - AGGREGATION_INVOCATION_ALL: AggregateFunction.AggregationInvocation.ValueType # 1 - """Use all values in the aggregation calculation.""" - AGGREGATION_INVOCATION_DISTINCT: AggregateFunction.AggregationInvocation.ValueType # 2 - """Use only distinct values in the aggregation calculation.""" - + AGGREGATION_INVOCATION_UNSPECIFIED: AggregateFunction.AggregationInvocation.ValueType + 'This default value implies AGGREGATION_INVOCATION_ALL.' + AGGREGATION_INVOCATION_ALL: AggregateFunction.AggregationInvocation.ValueType + 'Use all values in the aggregation calculation.' + AGGREGATION_INVOCATION_DISTINCT: AggregateFunction.AggregationInvocation.ValueType + 'Use only distinct values in the aggregation calculation.' FUNCTION_REFERENCE_FIELD_NUMBER: builtins.int ARGUMENTS_FIELD_NUMBER: builtins.int OPTIONS_FIELD_NUMBER: builtins.int @@ -4359,19 +4368,12 @@ class AggregateFunction(google.protobuf.message.Message): INVOCATION_FIELD_NUMBER: builtins.int ARGS_FIELD_NUMBER: builtins.int function_reference: builtins.int - """Points to a function_anchor defined in this plan, which must refer - to an aggregate function in the associated YAML file. Required; 0 is - considered to be a valid anchor/reference. - """ + 'Points to a function_anchor defined in this plan, which must refer\n to an aggregate function in the associated YAML file. Required; 0 is\n considered to be a valid anchor/reference.\n ' phase: global___AggregationPhase.ValueType - """Describes which part of the aggregation to perform within the context of - distributed algorithms. Required. Must be set to INITIAL_TO_RESULT for - aggregate functions that are not decomposable. - """ + 'Describes which part of the aggregation to perform within the context of\n distributed algorithms. Required. Must be set to INITIAL_TO_RESULT for\n aggregate functions that are not decomposable.\n ' invocation: global___AggregateFunction.AggregationInvocation.ValueType - """Specifies whether equivalent records are merged before being aggregated. - Optional, defaults to AGGREGATION_INVOCATION_ALL. - """ + 'Specifies whether equivalent records are merged before being aggregated.\n Optional, defaults to AGGREGATION_INVOCATION_ALL.\n ' + @property def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionArgument]: """The arguments to be bound to the function. This must have exactly the @@ -4416,21 +4418,14 @@ class AggregateFunction(google.protobuf.message.Message): def args(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Expression]: """deprecated; use arguments instead""" - def __init__( - self, - *, - function_reference: builtins.int = ..., - arguments: collections.abc.Iterable[global___FunctionArgument] | None = ..., - options: collections.abc.Iterable[global___FunctionOption] | None = ..., - output_type: proto.type_pb2.Type | None = ..., - phase: global___AggregationPhase.ValueType = ..., - sorts: collections.abc.Iterable[global___SortField] | None = ..., - invocation: global___AggregateFunction.AggregationInvocation.ValueType = ..., - args: collections.abc.Iterable[global___Expression] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["output_type", b"output_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["args", b"args", "arguments", b"arguments", "function_reference", b"function_reference", "invocation", b"invocation", "options", b"options", "output_type", b"output_type", "phase", b"phase", "sorts", b"sorts"]) -> None: ... + def __init__(self, *, function_reference: builtins.int=..., arguments: collections.abc.Iterable[global___FunctionArgument] | None=..., options: collections.abc.Iterable[global___FunctionOption] | None=..., output_type: proto.type_pb2.Type | None=..., phase: global___AggregationPhase.ValueType=..., sorts: collections.abc.Iterable[global___SortField] | None=..., invocation: global___AggregateFunction.AggregationInvocation.ValueType=..., args: collections.abc.Iterable[global___Expression] | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['output_type', b'output_type']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['args', b'args', 'arguments', b'arguments', 'function_reference', b'function_reference', 'invocation', b'invocation', 'options', b'options', 'output_type', b'output_type', 'phase', b'phase', 'sorts', b'sorts']) -> None: + ... global___AggregateFunction = AggregateFunction @typing.final @@ -4438,16 +4433,13 @@ class ReferenceRel(google.protobuf.message.Message): """This rel is used to create references, in case we refer to a RelRoot field names will be ignored """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - SUBTREE_ORDINAL_FIELD_NUMBER: builtins.int subtree_ordinal: builtins.int - def __init__( - self, - *, - subtree_ordinal: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["subtree_ordinal", b"subtree_ordinal"]) -> None: ... - -global___ReferenceRel = ReferenceRel + + def __init__(self, *, subtree_ordinal: builtins.int=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['subtree_ordinal', b'subtree_ordinal']) -> None: + ... +global___ReferenceRel = ReferenceRel \ No newline at end of file diff --git a/src/substrait/gen/proto/capabilities_pb2.py b/src/substrait/gen/proto/capabilities_pb2.py index 6a32bfa..3fb01ca 100644 --- a/src/substrait/gen/proto/capabilities_pb2.py +++ b/src/substrait/gen/proto/capabilities_pb2.py @@ -1,39 +1,19 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: proto/capabilities.proto -# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 5, - '', - 'proto/capabilities.proto' -) -# @@protoc_insertion_point(imports) - +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/capabilities.proto') _sym_db = _symbol_database.Default() - - - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18proto/capabilities.proto\x12\x05proto\"\xe8\x02\n\x0c\x43\x61pabilities\x12-\n\x12substrait_versions\x18\x01 \x03(\tR\x11substraitVersions\x12?\n\x1c\x61\x64vanced_extension_type_urls\x18\x02 \x03(\tR\x19\x61\x64vancedExtensionTypeUrls\x12P\n\x11simple_extensions\x18\x03 \x03(\x0b\x32#.proto.Capabilities.SimpleExtensionR\x10simpleExtensions\x1a\x95\x01\n\x0fSimpleExtension\x12\x10\n\x03uri\x18\x01 \x01(\tR\x03uri\x12#\n\rfunction_keys\x18\x02 \x03(\tR\x0c\x66unctionKeys\x12\x1b\n\ttype_keys\x18\x03 \x03(\tR\x08typeKeys\x12.\n\x13type_variation_keys\x18\x04 \x03(\tR\x11typeVariationKeysB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') - +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x18proto/capabilities.proto\x12\x05proto"\xe8\x02\n\x0cCapabilities\x12-\n\x12substrait_versions\x18\x01 \x03(\tR\x11substraitVersions\x12?\n\x1cadvanced_extension_type_urls\x18\x02 \x03(\tR\x19advancedExtensionTypeUrls\x12P\n\x11simple_extensions\x18\x03 \x03(\x0b2#.proto.Capabilities.SimpleExtensionR\x10simpleExtensions\x1a\x95\x01\n\x0fSimpleExtension\x12\x10\n\x03uri\x18\x01 \x01(\tR\x03uri\x12#\n\rfunction_keys\x18\x02 \x03(\tR\x0cfunctionKeys\x12\x1b\n\ttype_keys\x18\x03 \x03(\tR\x08typeKeys\x12.\n\x13type_variation_keys\x18\x04 \x03(\tR\x11typeVariationKeysB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.capabilities_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' - _globals['_CAPABILITIES']._serialized_start=36 - _globals['_CAPABILITIES']._serialized_end=396 - _globals['_CAPABILITIES_SIMPLEEXTENSION']._serialized_start=247 - _globals['_CAPABILITIES_SIMPLEEXTENSION']._serialized_end=396 -# @@protoc_insertion_point(module_scope) + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _globals['_CAPABILITIES']._serialized_start = 36 + _globals['_CAPABILITIES']._serialized_end = 396 + _globals['_CAPABILITIES_SIMPLEEXTENSION']._serialized_start = 247 + _globals['_CAPABILITIES_SIMPLEEXTENSION']._serialized_end = 396 \ No newline at end of file diff --git a/src/substrait/gen/proto/capabilities_pb2.pyi b/src/substrait/gen/proto/capabilities_pb2.pyi index 8ee88b1..48419e9 100644 --- a/src/substrait/gen/proto/capabilities_pb2.pyi +++ b/src/substrait/gen/proto/capabilities_pb2.pyi @@ -2,50 +2,49 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" - import builtins import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.message import typing - DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final class Capabilities(google.protobuf.message.Message): """Defines a set of Capabilities that a system (producer or consumer) supports.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class SimpleExtension(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - URI_FIELD_NUMBER: builtins.int FUNCTION_KEYS_FIELD_NUMBER: builtins.int TYPE_KEYS_FIELD_NUMBER: builtins.int TYPE_VARIATION_KEYS_FIELD_NUMBER: builtins.int uri: builtins.str + @property - def function_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def function_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + ... + @property - def type_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def type_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + ... + @property - def type_variation_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... - def __init__( - self, - *, - uri: builtins.str = ..., - function_keys: collections.abc.Iterable[builtins.str] | None = ..., - type_keys: collections.abc.Iterable[builtins.str] | None = ..., - type_variation_keys: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["function_keys", b"function_keys", "type_keys", b"type_keys", "type_variation_keys", b"type_variation_keys", "uri", b"uri"]) -> None: ... + def type_variation_keys(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + ... + def __init__(self, *, uri: builtins.str=..., function_keys: collections.abc.Iterable[builtins.str] | None=..., type_keys: collections.abc.Iterable[builtins.str] | None=..., type_variation_keys: collections.abc.Iterable[builtins.str] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['function_keys', b'function_keys', 'type_keys', b'type_keys', 'type_variation_keys', b'type_variation_keys', 'uri', b'uri']) -> None: + ... SUBSTRAIT_VERSIONS_FIELD_NUMBER: builtins.int ADVANCED_EXTENSION_TYPE_URLS_FIELD_NUMBER: builtins.int SIMPLE_EXTENSIONS_FIELD_NUMBER: builtins.int + @property def substrait_versions(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """List of Substrait versions this system supports""" @@ -60,13 +59,9 @@ class Capabilities(google.protobuf.message.Message): def simple_extensions(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Capabilities.SimpleExtension]: """list of simple extensions this system supports.""" - def __init__( - self, - *, - substrait_versions: collections.abc.Iterable[builtins.str] | None = ..., - advanced_extension_type_urls: collections.abc.Iterable[builtins.str] | None = ..., - simple_extensions: collections.abc.Iterable[global___Capabilities.SimpleExtension] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["advanced_extension_type_urls", b"advanced_extension_type_urls", "simple_extensions", b"simple_extensions", "substrait_versions", b"substrait_versions"]) -> None: ... + def __init__(self, *, substrait_versions: collections.abc.Iterable[builtins.str] | None=..., advanced_extension_type_urls: collections.abc.Iterable[builtins.str] | None=..., simple_extensions: collections.abc.Iterable[global___Capabilities.SimpleExtension] | None=...) -> None: + ... -global___Capabilities = Capabilities + def ClearField(self, field_name: typing.Literal['advanced_extension_type_urls', b'advanced_extension_type_urls', 'simple_extensions', b'simple_extensions', 'substrait_versions', b'substrait_versions']) -> None: + ... +global___Capabilities = Capabilities \ No newline at end of file diff --git a/src/substrait/gen/proto/extended_expression_pb2.py b/src/substrait/gen/proto/extended_expression_pb2.py index 2097a29..cc612b9 100644 --- a/src/substrait/gen/proto/extended_expression_pb2.py +++ b/src/substrait/gen/proto/extended_expression_pb2.py @@ -1,45 +1,25 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: proto/extended_expression.proto -# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 5, - '', - 'proto/extended_expression.proto' -) -# @@protoc_insertion_point(imports) - +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/extended_expression.proto') _sym_db = _symbol_database.Default() - - -from proto import algebra_pb2 as proto_dot_algebra__pb2 -from proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 -from proto import plan_pb2 as proto_dot_plan__pb2 -from proto import type_pb2 as proto_dot_type__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fproto/extended_expression.proto\x12\x05proto\x1a\x13proto/algebra.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/plan.proto\x1a\x10proto/type.proto\"\xb0\x01\n\x13\x45xpressionReference\x12\x33\n\nexpression\x18\x01 \x01(\x0b\x32\x11.proto.ExpressionH\x00R\nexpression\x12\x34\n\x07measure\x18\x02 \x01(\x0b\x32\x18.proto.AggregateFunctionH\x00R\x07measure\x12!\n\x0coutput_names\x18\x03 \x03(\tR\x0boutputNamesB\x0b\n\texpr_type\"\xa4\x04\n\x12\x45xtendedExpression\x12(\n\x07version\x18\x07 \x01(\x0b\x32\x0e.proto.VersionR\x07version\x12O\n\x0e\x65xtension_uris\x18\x01 \x03(\x0b\x32$.proto.extensions.SimpleExtensionURIB\x02\x18\x01R\rextensionUris\x12K\n\x0e\x65xtension_urns\x18\x08 \x03(\x0b\x32$.proto.extensions.SimpleExtensionURNR\rextensionUrns\x12L\n\nextensions\x18\x02 \x03(\x0b\x32,.proto.extensions.SimpleExtensionDeclarationR\nextensions\x12?\n\rreferred_expr\x18\x03 \x03(\x0b\x32\x1a.proto.ExpressionReferenceR\x0creferredExpr\x12\x33\n\x0b\x62\x61se_schema\x18\x04 \x01(\x0b\x32\x12.proto.NamedStructR\nbaseSchema\x12T\n\x13\x61\x64vanced_extensions\x18\x05 \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x12\x61\x64vancedExtensions\x12,\n\x12\x65xpected_type_urls\x18\x06 \x03(\tR\x10\x65xpectedTypeUrlsB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') - +from ..proto import algebra_pb2 as proto_dot_algebra__pb2 +from ..proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 +from ..proto import plan_pb2 as proto_dot_plan__pb2 +from ..proto import type_pb2 as proto_dot_type__pb2 +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fproto/extended_expression.proto\x12\x05proto\x1a\x13proto/algebra.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/plan.proto\x1a\x10proto/type.proto"\xb0\x01\n\x13ExpressionReference\x123\n\nexpression\x18\x01 \x01(\x0b2\x11.proto.ExpressionH\x00R\nexpression\x124\n\x07measure\x18\x02 \x01(\x0b2\x18.proto.AggregateFunctionH\x00R\x07measure\x12!\n\x0coutput_names\x18\x03 \x03(\tR\x0boutputNamesB\x0b\n\texpr_type"\xa4\x04\n\x12ExtendedExpression\x12(\n\x07version\x18\x07 \x01(\x0b2\x0e.proto.VersionR\x07version\x12O\n\x0eextension_uris\x18\x01 \x03(\x0b2$.proto.extensions.SimpleExtensionURIB\x02\x18\x01R\rextensionUris\x12K\n\x0eextension_urns\x18\x08 \x03(\x0b2$.proto.extensions.SimpleExtensionURNR\rextensionUrns\x12L\n\nextensions\x18\x02 \x03(\x0b2,.proto.extensions.SimpleExtensionDeclarationR\nextensions\x12?\n\rreferred_expr\x18\x03 \x03(\x0b2\x1a.proto.ExpressionReferenceR\x0creferredExpr\x123\n\x0bbase_schema\x18\x04 \x01(\x0b2\x12.proto.NamedStructR\nbaseSchema\x12T\n\x13advanced_extensions\x18\x05 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x12advancedExtensions\x12,\n\x12expected_type_urls\x18\x06 \x03(\tR\x10expectedTypeUrlsB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.extended_expression_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' - _globals['_EXTENDEDEXPRESSION'].fields_by_name['extension_uris']._loaded_options = None - _globals['_EXTENDEDEXPRESSION'].fields_by_name['extension_uris']._serialized_options = b'\030\001' - _globals['_EXPRESSIONREFERENCE']._serialized_start=135 - _globals['_EXPRESSIONREFERENCE']._serialized_end=311 - _globals['_EXTENDEDEXPRESSION']._serialized_start=314 - _globals['_EXTENDEDEXPRESSION']._serialized_end=862 -# @@protoc_insertion_point(module_scope) + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _globals['_EXTENDEDEXPRESSION'].fields_by_name['extension_uris']._loaded_options = None + _globals['_EXTENDEDEXPRESSION'].fields_by_name['extension_uris']._serialized_options = b'\x18\x01' + _globals['_EXPRESSIONREFERENCE']._serialized_start = 135 + _globals['_EXPRESSIONREFERENCE']._serialized_end = 311 + _globals['_EXTENDEDEXPRESSION']._serialized_start = 314 + _globals['_EXTENDEDEXPRESSION']._serialized_end = 862 \ No newline at end of file diff --git a/src/substrait/gen/proto/extended_expression_pb2.pyi b/src/substrait/gen/proto/extended_expression_pb2.pyi index 365cee7..27829c8 100644 --- a/src/substrait/gen/proto/extended_expression_pb2.pyi +++ b/src/substrait/gen/proto/extended_expression_pb2.pyi @@ -2,46 +2,45 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" - import builtins import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.message -import proto.algebra_pb2 -import proto.extensions.extensions_pb2 -import proto.plan_pb2 -import proto.type_pb2 +from .. import proto import typing - DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final class ExpressionReference(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXPRESSION_FIELD_NUMBER: builtins.int MEASURE_FIELD_NUMBER: builtins.int OUTPUT_NAMES_FIELD_NUMBER: builtins.int + @property - def expression(self) -> proto.algebra_pb2.Expression: ... + def expression(self) -> proto.algebra_pb2.Expression: + ... + @property - def measure(self) -> proto.algebra_pb2.AggregateFunction: ... + def measure(self) -> proto.algebra_pb2.AggregateFunction: + ... + @property def output_names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """Field names in depth-first order""" - def __init__( - self, - *, - expression: proto.algebra_pb2.Expression | None = ..., - measure: proto.algebra_pb2.AggregateFunction | None = ..., - output_names: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["expr_type", b"expr_type", "expression", b"expression", "measure", b"measure"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["expr_type", b"expr_type", "expression", b"expression", "measure", b"measure", "output_names", b"output_names"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["expr_type", b"expr_type"]) -> typing.Literal["expression", "measure"] | None: ... + def __init__(self, *, expression: proto.algebra_pb2.Expression | None=..., measure: proto.algebra_pb2.AggregateFunction | None=..., output_names: collections.abc.Iterable[builtins.str] | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['expr_type', b'expr_type', 'expression', b'expression', 'measure', b'measure']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['expr_type', b'expr_type', 'expression', b'expression', 'measure', b'measure', 'output_names', b'output_names']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['expr_type', b'expr_type']) -> typing.Literal['expression', 'measure'] | None: + ... global___ExpressionReference = ExpressionReference @typing.final @@ -49,9 +48,7 @@ class ExtendedExpression(google.protobuf.message.Message): """Describe a set of operations to complete. For compactness sake, identifiers are normalized at the plan level. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VERSION_FIELD_NUMBER: builtins.int EXTENSION_URIS_FIELD_NUMBER: builtins.int EXTENSION_URNS_FIELD_NUMBER: builtins.int @@ -60,6 +57,7 @@ class ExtendedExpression(google.protobuf.message.Message): BASE_SCHEMA_FIELD_NUMBER: builtins.int ADVANCED_EXTENSIONS_FIELD_NUMBER: builtins.int EXPECTED_TYPE_URLS_FIELD_NUMBER: builtins.int + @property def version(self) -> proto.plan_pb2.Version: """Substrait version of the expression. Optional up to 0.17.0, required for later @@ -87,7 +85,9 @@ class ExtendedExpression(google.protobuf.message.Message): """one or more expression trees with same order in plan rel""" @property - def base_schema(self) -> proto.type_pb2.NamedStruct: ... + def base_schema(self) -> proto.type_pb2.NamedStruct: + ... + @property def advanced_extensions(self) -> proto.extensions.extensions_pb2.AdvancedExtension: """additional extensions associated with this expression.""" @@ -101,19 +101,12 @@ class ExtendedExpression(google.protobuf.message.Message): one or more message types defined here are unknown. """ - def __init__( - self, - *, - version: proto.plan_pb2.Version | None = ..., - extension_uris: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURI] | None = ..., - extension_urns: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURN] | None = ..., - extensions: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionDeclaration] | None = ..., - referred_expr: collections.abc.Iterable[global___ExpressionReference] | None = ..., - base_schema: proto.type_pb2.NamedStruct | None = ..., - advanced_extensions: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - expected_type_urls: collections.abc.Iterable[builtins.str] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extensions", b"advanced_extensions", "base_schema", b"base_schema", "version", b"version"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extensions", b"advanced_extensions", "base_schema", b"base_schema", "expected_type_urls", b"expected_type_urls", "extension_uris", b"extension_uris", "extension_urns", b"extension_urns", "extensions", b"extensions", "referred_expr", b"referred_expr", "version", b"version"]) -> None: ... - -global___ExtendedExpression = ExtendedExpression + def __init__(self, *, version: proto.plan_pb2.Version | None=..., extension_uris: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURI] | None=..., extension_urns: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURN] | None=..., extensions: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionDeclaration] | None=..., referred_expr: collections.abc.Iterable[global___ExpressionReference] | None=..., base_schema: proto.type_pb2.NamedStruct | None=..., advanced_extensions: proto.extensions.extensions_pb2.AdvancedExtension | None=..., expected_type_urls: collections.abc.Iterable[builtins.str] | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['advanced_extensions', b'advanced_extensions', 'base_schema', b'base_schema', 'version', b'version']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extensions', b'advanced_extensions', 'base_schema', b'base_schema', 'expected_type_urls', b'expected_type_urls', 'extension_uris', b'extension_uris', 'extension_urns', b'extension_urns', 'extensions', b'extensions', 'referred_expr', b'referred_expr', 'version', b'version']) -> None: + ... +global___ExtendedExpression = ExtendedExpression \ No newline at end of file diff --git a/src/substrait/gen/proto/extensions/__init__.py b/src/substrait/gen/proto/extensions/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/substrait/gen/proto/extensions/__init__.pyi b/src/substrait/gen/proto/extensions/__init__.pyi new file mode 100644 index 0000000..296a60a --- /dev/null +++ b/src/substrait/gen/proto/extensions/__init__.pyi @@ -0,0 +1 @@ +from . import extensions_pb2 diff --git a/src/substrait/gen/proto/extensions/extensions_pb2.py b/src/substrait/gen/proto/extensions/extensions_pb2.py index fbdc0e2..cd74ec8 100644 --- a/src/substrait/gen/proto/extensions/extensions_pb2.py +++ b/src/substrait/gen/proto/extensions/extensions_pb2.py @@ -1,58 +1,38 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: proto/extensions/extensions.proto -# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 5, - '', - 'proto/extensions/extensions.proto' -) -# @@protoc_insertion_point(imports) - +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/extensions/extensions.proto') _sym_db = _symbol_database.Default() - - from google.protobuf import any_pb2 as google_dot_protobuf_dot_any__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!proto/extensions/extensions.proto\x12\x10proto.extensions\x1a\x19google/protobuf/any.proto\"\\\n\x12SimpleExtensionURI\x12\x30\n\x14\x65xtension_uri_anchor\x18\x01 \x01(\rR\x12\x65xtensionUriAnchor\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri:\x02\x18\x01\"X\n\x12SimpleExtensionURN\x12\x30\n\x14\x65xtension_urn_anchor\x18\x01 \x01(\rR\x12\x65xtensionUrnAnchor\x12\x10\n\x03urn\x18\x02 \x01(\tR\x03urn\"\xdc\x07\n\x1aSimpleExtensionDeclaration\x12\x63\n\x0e\x65xtension_type\x18\x01 \x01(\x0b\x32:.proto.extensions.SimpleExtensionDeclaration.ExtensionTypeH\x00R\rextensionType\x12\x7f\n\x18\x65xtension_type_variation\x18\x02 \x01(\x0b\x32\x43.proto.extensions.SimpleExtensionDeclaration.ExtensionTypeVariationH\x00R\x16\x65xtensionTypeVariation\x12o\n\x12\x65xtension_function\x18\x03 \x01(\x0b\x32>.proto.extensions.SimpleExtensionDeclaration.ExtensionFunctionH\x00R\x11\x65xtensionFunction\x1a\xb8\x01\n\rExtensionType\x12:\n\x17\x65xtension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15\x65xtensionUriReference\x12\x36\n\x17\x65xtension_urn_reference\x18\x04 \x01(\rR\x15\x65xtensionUrnReference\x12\x1f\n\x0btype_anchor\x18\x02 \x01(\rR\ntypeAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\xd4\x01\n\x16\x45xtensionTypeVariation\x12:\n\x17\x65xtension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15\x65xtensionUriReference\x12\x36\n\x17\x65xtension_urn_reference\x18\x04 \x01(\rR\x15\x65xtensionUrnReference\x12\x32\n\x15type_variation_anchor\x18\x02 \x01(\rR\x13typeVariationAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\xc4\x01\n\x11\x45xtensionFunction\x12:\n\x17\x65xtension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15\x65xtensionUriReference\x12\x36\n\x17\x65xtension_urn_reference\x18\x04 \x01(\rR\x15\x65xtensionUrnReference\x12\'\n\x0f\x66unction_anchor\x18\x02 \x01(\rR\x0e\x66unctionAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04nameB\x0e\n\x0cmapping_type\"\x85\x01\n\x11\x41\x64vancedExtension\x12\x38\n\x0coptimization\x18\x01 \x03(\x0b\x32\x14.google.protobuf.AnyR\x0coptimization\x12\x36\n\x0b\x65nhancement\x18\x02 \x01(\x0b\x32\x14.google.protobuf.AnyR\x0b\x65nhancementB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') - +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!proto/extensions/extensions.proto\x12\x10proto.extensions\x1a\x19google/protobuf/any.proto"\\\n\x12SimpleExtensionURI\x120\n\x14extension_uri_anchor\x18\x01 \x01(\rR\x12extensionUriAnchor\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri:\x02\x18\x01"X\n\x12SimpleExtensionURN\x120\n\x14extension_urn_anchor\x18\x01 \x01(\rR\x12extensionUrnAnchor\x12\x10\n\x03urn\x18\x02 \x01(\tR\x03urn"\xdc\x07\n\x1aSimpleExtensionDeclaration\x12c\n\x0eextension_type\x18\x01 \x01(\x0b2:.proto.extensions.SimpleExtensionDeclaration.ExtensionTypeH\x00R\rextensionType\x12\x7f\n\x18extension_type_variation\x18\x02 \x01(\x0b2C.proto.extensions.SimpleExtensionDeclaration.ExtensionTypeVariationH\x00R\x16extensionTypeVariation\x12o\n\x12extension_function\x18\x03 \x01(\x0b2>.proto.extensions.SimpleExtensionDeclaration.ExtensionFunctionH\x00R\x11extensionFunction\x1a\xb8\x01\n\rExtensionType\x12:\n\x17extension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15extensionUriReference\x126\n\x17extension_urn_reference\x18\x04 \x01(\rR\x15extensionUrnReference\x12\x1f\n\x0btype_anchor\x18\x02 \x01(\rR\ntypeAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\xd4\x01\n\x16ExtensionTypeVariation\x12:\n\x17extension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15extensionUriReference\x126\n\x17extension_urn_reference\x18\x04 \x01(\rR\x15extensionUrnReference\x122\n\x15type_variation_anchor\x18\x02 \x01(\rR\x13typeVariationAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x1a\xc4\x01\n\x11ExtensionFunction\x12:\n\x17extension_uri_reference\x18\x01 \x01(\rB\x02\x18\x01R\x15extensionUriReference\x126\n\x17extension_urn_reference\x18\x04 \x01(\rR\x15extensionUrnReference\x12\'\n\x0ffunction_anchor\x18\x02 \x01(\rR\x0efunctionAnchor\x12\x12\n\x04name\x18\x03 \x01(\tR\x04nameB\x0e\n\x0cmapping_type"\x85\x01\n\x11AdvancedExtension\x128\n\x0coptimization\x18\x01 \x03(\x0b2\x14.google.protobuf.AnyR\x0coptimization\x126\n\x0benhancement\x18\x02 \x01(\x0b2\x14.google.protobuf.AnyR\x0benhancementB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.extensions.extensions_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' - _globals['_SIMPLEEXTENSIONURI']._loaded_options = None - _globals['_SIMPLEEXTENSIONURI']._serialized_options = b'\030\001' - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE'].fields_by_name['extension_uri_reference']._loaded_options = None - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE'].fields_by_name['extension_uri_reference']._serialized_options = b'\030\001' - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION'].fields_by_name['extension_uri_reference']._loaded_options = None - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION'].fields_by_name['extension_uri_reference']._serialized_options = b'\030\001' - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION'].fields_by_name['extension_uri_reference']._loaded_options = None - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION'].fields_by_name['extension_uri_reference']._serialized_options = b'\030\001' - _globals['_SIMPLEEXTENSIONURI']._serialized_start=82 - _globals['_SIMPLEEXTENSIONURI']._serialized_end=174 - _globals['_SIMPLEEXTENSIONURN']._serialized_start=176 - _globals['_SIMPLEEXTENSIONURN']._serialized_end=264 - _globals['_SIMPLEEXTENSIONDECLARATION']._serialized_start=267 - _globals['_SIMPLEEXTENSIONDECLARATION']._serialized_end=1255 - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE']._serialized_start=641 - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE']._serialized_end=825 - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION']._serialized_start=828 - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION']._serialized_end=1040 - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION']._serialized_start=1043 - _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION']._serialized_end=1239 - _globals['_ADVANCEDEXTENSION']._serialized_start=1258 - _globals['_ADVANCEDEXTENSION']._serialized_end=1391 -# @@protoc_insertion_point(module_scope) + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _globals['_SIMPLEEXTENSIONURI']._loaded_options = None + _globals['_SIMPLEEXTENSIONURI']._serialized_options = b'\x18\x01' + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE'].fields_by_name['extension_uri_reference']._loaded_options = None + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE'].fields_by_name['extension_uri_reference']._serialized_options = b'\x18\x01' + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION'].fields_by_name['extension_uri_reference']._loaded_options = None + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION'].fields_by_name['extension_uri_reference']._serialized_options = b'\x18\x01' + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION'].fields_by_name['extension_uri_reference']._loaded_options = None + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION'].fields_by_name['extension_uri_reference']._serialized_options = b'\x18\x01' + _globals['_SIMPLEEXTENSIONURI']._serialized_start = 82 + _globals['_SIMPLEEXTENSIONURI']._serialized_end = 174 + _globals['_SIMPLEEXTENSIONURN']._serialized_start = 176 + _globals['_SIMPLEEXTENSIONURN']._serialized_end = 264 + _globals['_SIMPLEEXTENSIONDECLARATION']._serialized_start = 267 + _globals['_SIMPLEEXTENSIONDECLARATION']._serialized_end = 1255 + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE']._serialized_start = 641 + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPE']._serialized_end = 825 + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION']._serialized_start = 828 + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONTYPEVARIATION']._serialized_end = 1040 + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION']._serialized_start = 1043 + _globals['_SIMPLEEXTENSIONDECLARATION_EXTENSIONFUNCTION']._serialized_end = 1239 + _globals['_ADVANCEDEXTENSION']._serialized_start = 1258 + _globals['_ADVANCEDEXTENSION']._serialized_end = 1391 \ No newline at end of file diff --git a/src/substrait/gen/proto/extensions/extensions_pb2.pyi b/src/substrait/gen/proto/extensions/extensions_pb2.pyi index 5fa39e1..5b1765c 100644 --- a/src/substrait/gen/proto/extensions/extensions_pb2.pyi +++ b/src/substrait/gen/proto/extensions/extensions_pb2.pyi @@ -2,7 +2,6 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" - import builtins import collections.abc import google.protobuf.any_pb2 @@ -10,57 +9,41 @@ import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.message import typing - DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final class SimpleExtensionURI(google.protobuf.message.Message): """This message is deprecated, use SimpleExtensionURN moving forwards""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXTENSION_URI_ANCHOR_FIELD_NUMBER: builtins.int URI_FIELD_NUMBER: builtins.int extension_uri_anchor: builtins.int - """A surrogate key used in the context of a single plan used to reference the - URI associated with an extension. - """ + 'A surrogate key used in the context of a single plan used to reference the\n URI associated with an extension.\n ' uri: builtins.str - """The URI where this extension YAML can be retrieved. This is the "namespace" - of this extension. - """ - def __init__( - self, - *, - extension_uri_anchor: builtins.int = ..., - uri: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["extension_uri_anchor", b"extension_uri_anchor", "uri", b"uri"]) -> None: ... + 'The URI where this extension YAML can be retrieved. This is the "namespace"\n of this extension.\n ' + + def __init__(self, *, extension_uri_anchor: builtins.int=..., uri: builtins.str=...) -> None: + ... + def ClearField(self, field_name: typing.Literal['extension_uri_anchor', b'extension_uri_anchor', 'uri', b'uri']) -> None: + ... global___SimpleExtensionURI = SimpleExtensionURI @typing.final class SimpleExtensionURN(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXTENSION_URN_ANCHOR_FIELD_NUMBER: builtins.int URN_FIELD_NUMBER: builtins.int extension_urn_anchor: builtins.int - """A surrogate key used in the context of a single plan used to reference the - URN associated with an extension. - """ + 'A surrogate key used in the context of a single plan used to reference the\n URN associated with an extension.\n ' urn: builtins.str - """The extension URN that uniquely identifies this extension. This must follow the - format extension:: and serves as the "namespace" of this extension. - """ - def __init__( - self, - *, - extension_urn_anchor: builtins.int = ..., - urn: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["extension_urn_anchor", b"extension_urn_anchor", "urn", b"urn"]) -> None: ... + 'The extension URN that uniquely identifies this extension. This must follow the\n format extension:: and serves as the "namespace" of this extension.\n ' + def __init__(self, *, extension_urn_anchor: builtins.int=..., urn: builtins.str=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['extension_urn_anchor', b'extension_urn_anchor', 'urn', b'urn']) -> None: + ... global___SimpleExtensionURN = SimpleExtensionURN @typing.final @@ -68,130 +51,101 @@ class SimpleExtensionDeclaration(google.protobuf.message.Message): """Describes a mapping between a specific extension entity and the uri/urn where that extension can be found. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final class ExtensionType(google.protobuf.message.Message): """Describes a Type""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXTENSION_URI_REFERENCE_FIELD_NUMBER: builtins.int EXTENSION_URN_REFERENCE_FIELD_NUMBER: builtins.int TYPE_ANCHOR_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int extension_uri_reference: builtins.int - """references the extension_uri_anchor defined for a specific extension URI. - this is now deprecated and extension_urn_reference should be used instead. - """ + 'references the extension_uri_anchor defined for a specific extension URI.\n this is now deprecated and extension_urn_reference should be used instead.\n ' extension_urn_reference: builtins.int - """references the extension_urn_anchor defined for a specific extension URN. - If both extension_urn_reference and extension_uri_reference are present, - extension_urn_reference takes precedence. - """ + 'references the extension_urn_anchor defined for a specific extension URN.\n If both extension_urn_reference and extension_uri_reference are present,\n extension_urn_reference takes precedence.\n ' type_anchor: builtins.int - """A surrogate key used in the context of a single plan to reference a - specific extension type - """ + 'A surrogate key used in the context of a single plan to reference a\n specific extension type\n ' name: builtins.str - """the name of the type in the defined extension YAML.""" - def __init__( - self, - *, - extension_uri_reference: builtins.int = ..., - extension_urn_reference: builtins.int = ..., - type_anchor: builtins.int = ..., - name: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["extension_uri_reference", b"extension_uri_reference", "extension_urn_reference", b"extension_urn_reference", "name", b"name", "type_anchor", b"type_anchor"]) -> None: ... + 'the name of the type in the defined extension YAML.' + + def __init__(self, *, extension_uri_reference: builtins.int=..., extension_urn_reference: builtins.int=..., type_anchor: builtins.int=..., name: builtins.str=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['extension_uri_reference', b'extension_uri_reference', 'extension_urn_reference', b'extension_urn_reference', 'name', b'name', 'type_anchor', b'type_anchor']) -> None: + ... @typing.final class ExtensionTypeVariation(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXTENSION_URI_REFERENCE_FIELD_NUMBER: builtins.int EXTENSION_URN_REFERENCE_FIELD_NUMBER: builtins.int TYPE_VARIATION_ANCHOR_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int extension_uri_reference: builtins.int - """references the extension_uri_anchor defined for a specific extension URI. - this is now deprecated and extension_urn_reference should be used instead. - """ + 'references the extension_uri_anchor defined for a specific extension URI.\n this is now deprecated and extension_urn_reference should be used instead.\n ' extension_urn_reference: builtins.int - """references the extension_urn_anchor defined for a specific extension URN. - If both extension_urn_reference and extension_uri_reference are present, - extension_urn_reference takes precedence. - """ + 'references the extension_urn_anchor defined for a specific extension URN.\n If both extension_urn_reference and extension_uri_reference are present,\n extension_urn_reference takes precedence.\n ' type_variation_anchor: builtins.int - """A surrogate key used in the context of a single plan to reference a - specific type variation - """ + 'A surrogate key used in the context of a single plan to reference a\n specific type variation\n ' name: builtins.str - """the name of the type in the defined extension YAML.""" - def __init__( - self, - *, - extension_uri_reference: builtins.int = ..., - extension_urn_reference: builtins.int = ..., - type_variation_anchor: builtins.int = ..., - name: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["extension_uri_reference", b"extension_uri_reference", "extension_urn_reference", b"extension_urn_reference", "name", b"name", "type_variation_anchor", b"type_variation_anchor"]) -> None: ... + 'the name of the type in the defined extension YAML.' + + def __init__(self, *, extension_uri_reference: builtins.int=..., extension_urn_reference: builtins.int=..., type_variation_anchor: builtins.int=..., name: builtins.str=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['extension_uri_reference', b'extension_uri_reference', 'extension_urn_reference', b'extension_urn_reference', 'name', b'name', 'type_variation_anchor', b'type_variation_anchor']) -> None: + ... @typing.final class ExtensionFunction(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - EXTENSION_URI_REFERENCE_FIELD_NUMBER: builtins.int EXTENSION_URN_REFERENCE_FIELD_NUMBER: builtins.int FUNCTION_ANCHOR_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int extension_uri_reference: builtins.int - """references the extension_uri_anchor defined for a specific extension URI. - this is now deprecated and extension_urn_reference should be used instead. - """ + 'references the extension_uri_anchor defined for a specific extension URI.\n this is now deprecated and extension_urn_reference should be used instead.\n ' extension_urn_reference: builtins.int - """references the extension_urn_anchor defined for a specific extension URN. - If both extension_urn_reference and extension_uri_reference are present, - extension_urn_reference takes precedence. - """ + 'references the extension_urn_anchor defined for a specific extension URN.\n If both extension_urn_reference and extension_uri_reference are present,\n extension_urn_reference takes precedence.\n ' function_anchor: builtins.int - """A surrogate key used in the context of a single plan to reference a - specific function - """ + 'A surrogate key used in the context of a single plan to reference a\n specific function\n ' name: builtins.str - """A function signature compound name""" - def __init__( - self, - *, - extension_uri_reference: builtins.int = ..., - extension_urn_reference: builtins.int = ..., - function_anchor: builtins.int = ..., - name: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["extension_uri_reference", b"extension_uri_reference", "extension_urn_reference", b"extension_urn_reference", "function_anchor", b"function_anchor", "name", b"name"]) -> None: ... + 'A function signature compound name' + + def __init__(self, *, extension_uri_reference: builtins.int=..., extension_urn_reference: builtins.int=..., function_anchor: builtins.int=..., name: builtins.str=...) -> None: + ... + def ClearField(self, field_name: typing.Literal['extension_uri_reference', b'extension_uri_reference', 'extension_urn_reference', b'extension_urn_reference', 'function_anchor', b'function_anchor', 'name', b'name']) -> None: + ... EXTENSION_TYPE_FIELD_NUMBER: builtins.int EXTENSION_TYPE_VARIATION_FIELD_NUMBER: builtins.int EXTENSION_FUNCTION_FIELD_NUMBER: builtins.int + @property - def extension_type(self) -> global___SimpleExtensionDeclaration.ExtensionType: ... + def extension_type(self) -> global___SimpleExtensionDeclaration.ExtensionType: + ... + @property - def extension_type_variation(self) -> global___SimpleExtensionDeclaration.ExtensionTypeVariation: ... + def extension_type_variation(self) -> global___SimpleExtensionDeclaration.ExtensionTypeVariation: + ... + @property - def extension_function(self) -> global___SimpleExtensionDeclaration.ExtensionFunction: ... - def __init__( - self, - *, - extension_type: global___SimpleExtensionDeclaration.ExtensionType | None = ..., - extension_type_variation: global___SimpleExtensionDeclaration.ExtensionTypeVariation | None = ..., - extension_function: global___SimpleExtensionDeclaration.ExtensionFunction | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["extension_function", b"extension_function", "extension_type", b"extension_type", "extension_type_variation", b"extension_type_variation", "mapping_type", b"mapping_type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["extension_function", b"extension_function", "extension_type", b"extension_type", "extension_type_variation", b"extension_type_variation", "mapping_type", b"mapping_type"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["mapping_type", b"mapping_type"]) -> typing.Literal["extension_type", "extension_type_variation", "extension_function"] | None: ... + def extension_function(self) -> global___SimpleExtensionDeclaration.ExtensionFunction: + ... + + def __init__(self, *, extension_type: global___SimpleExtensionDeclaration.ExtensionType | None=..., extension_type_variation: global___SimpleExtensionDeclaration.ExtensionTypeVariation | None=..., extension_function: global___SimpleExtensionDeclaration.ExtensionFunction | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['extension_function', b'extension_function', 'extension_type', b'extension_type', 'extension_type_variation', b'extension_type_variation', 'mapping_type', b'mapping_type']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['extension_function', b'extension_function', 'extension_type', b'extension_type', 'extension_type_variation', b'extension_type_variation', 'mapping_type', b'mapping_type']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['mapping_type', b'mapping_type']) -> typing.Literal['extension_type', 'extension_type_variation', 'extension_function'] | None: + ... global___SimpleExtensionDeclaration = SimpleExtensionDeclaration @typing.final @@ -199,11 +153,10 @@ class AdvancedExtension(google.protobuf.message.Message): """A generic object that can be used to embed additional extension information into the serialized substrait plan. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - OPTIMIZATION_FIELD_NUMBER: builtins.int ENHANCEMENT_FIELD_NUMBER: builtins.int + @property def optimization(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[google.protobuf.any_pb2.Any]: """An optimization is helpful information that don't influence semantics. May @@ -214,13 +167,12 @@ class AdvancedExtension(google.protobuf.message.Message): def enhancement(self) -> google.protobuf.any_pb2.Any: """An enhancement alter semantics. Cannot be ignored by a consumer.""" - def __init__( - self, - *, - optimization: collections.abc.Iterable[google.protobuf.any_pb2.Any] | None = ..., - enhancement: google.protobuf.any_pb2.Any | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["enhancement", b"enhancement"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["enhancement", b"enhancement", "optimization", b"optimization"]) -> None: ... + def __init__(self, *, optimization: collections.abc.Iterable[google.protobuf.any_pb2.Any] | None=..., enhancement: google.protobuf.any_pb2.Any | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['enhancement', b'enhancement']) -> builtins.bool: + ... -global___AdvancedExtension = AdvancedExtension + def ClearField(self, field_name: typing.Literal['enhancement', b'enhancement', 'optimization', b'optimization']) -> None: + ... +global___AdvancedExtension = AdvancedExtension \ No newline at end of file diff --git a/src/substrait/gen/proto/function_pb2.py b/src/substrait/gen/proto/function_pb2.py index 5d2a418..7c656e0 100644 --- a/src/substrait/gen/proto/function_pb2.py +++ b/src/substrait/gen/proto/function_pb2.py @@ -1,68 +1,48 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: proto/function.proto -# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 5, - '', - 'proto/function.proto' -) -# @@protoc_insertion_point(imports) - +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/function.proto') _sym_db = _symbol_database.Default() - - -from proto import parameterized_types_pb2 as proto_dot_parameterized__types__pb2 -from proto import type_pb2 as proto_dot_type__pb2 -from proto import type_expressions_pb2 as proto_dot_type__expressions__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14proto/function.proto\x12\x05proto\x1a\x1fproto/parameterized_types.proto\x1a\x10proto/type.proto\x1a\x1cproto/type_expressions.proto\"\xe9\x18\n\x11\x46unctionSignature\x1a\xb8\x02\n\x10\x46inalArgVariadic\x12\x19\n\x08min_args\x18\x01 \x01(\x03R\x07minArgs\x12\x19\n\x08max_args\x18\x02 \x01(\x03R\x07maxArgs\x12`\n\x0b\x63onsistency\x18\x03 \x01(\x0e\x32>.proto.FunctionSignature.FinalArgVariadic.ParameterConsistencyR\x0b\x63onsistency\"\x8b\x01\n\x14ParameterConsistency\x12%\n!PARAMETER_CONSISTENCY_UNSPECIFIED\x10\x00\x12$\n PARAMETER_CONSISTENCY_CONSISTENT\x10\x01\x12&\n\"PARAMETER_CONSISTENCY_INCONSISTENT\x10\x02\x1a\x10\n\x0e\x46inalArgNormal\x1a\xb0\x04\n\x06Scalar\x12?\n\targuments\x18\x02 \x03(\x0b\x32!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x03(\tR\x04name\x12\x46\n\x0b\x64\x65scription\x18\x04 \x01(\x0b\x32$.proto.FunctionSignature.DescriptionR\x0b\x64\x65scription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12<\n\x0boutput_type\x18\t \x01(\x0b\x32\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\n \x01(\x0b\x32).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12\x41\n\x06normal\x18\x0b \x01(\x0b\x32\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12Q\n\x0fimplementations\x18\x0c \x03(\x0b\x32\'.proto.FunctionSignature.ImplementationR\x0fimplementationsB\x19\n\x17\x66inal_variable_behavior\x1a\xa0\x05\n\tAggregate\x12?\n\targuments\x18\x02 \x03(\x0b\x32!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x46\n\x0b\x64\x65scription\x18\x04 \x01(\x0b\x32$.proto.FunctionSignature.DescriptionR\x0b\x64\x65scription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12<\n\x0boutput_type\x18\t \x01(\x0b\x32\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\n \x01(\x0b\x32).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12\x41\n\x06normal\x18\x0b \x01(\x0b\x32\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12\x18\n\x07ordered\x18\x0e \x01(\x08R\x07ordered\x12\x17\n\x07max_set\x18\x0c \x01(\x04R\x06maxSet\x12\x38\n\x11intermediate_type\x18\r \x01(\x0b\x32\x0b.proto.TypeR\x10intermediateType\x12Q\n\x0fimplementations\x18\x0f \x03(\x0b\x32\'.proto.FunctionSignature.ImplementationR\x0fimplementationsB\x19\n\x17\x66inal_variable_behavior\x1a\xdb\x06\n\x06Window\x12?\n\targuments\x18\x02 \x03(\x0b\x32!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x03(\tR\x04name\x12\x46\n\x0b\x64\x65scription\x18\x04 \x01(\x0b\x32$.proto.FunctionSignature.DescriptionR\x0b\x64\x65scription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12H\n\x11intermediate_type\x18\t \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x10intermediateType\x12<\n\x0boutput_type\x18\n \x01(\x0b\x32\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\x10 \x01(\x0b\x32).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12\x41\n\x06normal\x18\x11 \x01(\x0b\x32\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12\x18\n\x07ordered\x18\x0b \x01(\x08R\x07ordered\x12\x17\n\x07max_set\x18\x0c \x01(\x04R\x06maxSet\x12K\n\x0bwindow_type\x18\x0e \x01(\x0e\x32*.proto.FunctionSignature.Window.WindowTypeR\nwindowType\x12Q\n\x0fimplementations\x18\x0f \x03(\x0b\x32\'.proto.FunctionSignature.ImplementationR\x0fimplementations\"_\n\nWindowType\x12\x1b\n\x17WINDOW_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15WINDOW_TYPE_STREAMING\x10\x01\x12\x19\n\x15WINDOW_TYPE_PARTITION\x10\x02\x42\x19\n\x17\x66inal_variable_behavior\x1a=\n\x0b\x44\x65scription\x12\x1a\n\x08language\x18\x01 \x01(\tR\x08language\x12\x12\n\x04\x62ody\x18\x02 \x01(\tR\x04\x62ody\x1a\xad\x01\n\x0eImplementation\x12@\n\x04type\x18\x01 \x01(\x0e\x32,.proto.FunctionSignature.Implementation.TypeR\x04type\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri\"G\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11TYPE_WEB_ASSEMBLY\x10\x01\x12\x12\n\x0eTYPE_TRINO_JAR\x10\x02\x1a\xe3\x03\n\x08\x41rgument\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12G\n\x05value\x18\x02 \x01(\x0b\x32/.proto.FunctionSignature.Argument.ValueArgumentH\x00R\x05value\x12\x44\n\x04type\x18\x03 \x01(\x0b\x32..proto.FunctionSignature.Argument.TypeArgumentH\x00R\x04type\x12\x44\n\x04\x65num\x18\x04 \x01(\x0b\x32..proto.FunctionSignature.Argument.EnumArgumentH\x00R\x04\x65num\x1aY\n\rValueArgument\x12,\n\x04type\x18\x01 \x01(\x0b\x32\x18.proto.ParameterizedTypeR\x04type\x12\x1a\n\x08\x63onstant\x18\x02 \x01(\x08R\x08\x63onstant\x1a<\n\x0cTypeArgument\x12,\n\x04type\x18\x01 \x01(\x0b\x32\x18.proto.ParameterizedTypeR\x04type\x1a\x44\n\x0c\x45numArgument\x12\x18\n\x07options\x18\x01 \x03(\tR\x07options\x12\x1a\n\x08optional\x18\x02 \x01(\x08R\x08optionalB\x0f\n\rargument_kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') - +from ..proto import parameterized_types_pb2 as proto_dot_parameterized__types__pb2 +from ..proto import type_pb2 as proto_dot_type__pb2 +from ..proto import type_expressions_pb2 as proto_dot_type__expressions__pb2 +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x14proto/function.proto\x12\x05proto\x1a\x1fproto/parameterized_types.proto\x1a\x10proto/type.proto\x1a\x1cproto/type_expressions.proto"\xe9\x18\n\x11FunctionSignature\x1a\xb8\x02\n\x10FinalArgVariadic\x12\x19\n\x08min_args\x18\x01 \x01(\x03R\x07minArgs\x12\x19\n\x08max_args\x18\x02 \x01(\x03R\x07maxArgs\x12`\n\x0bconsistency\x18\x03 \x01(\x0e2>.proto.FunctionSignature.FinalArgVariadic.ParameterConsistencyR\x0bconsistency"\x8b\x01\n\x14ParameterConsistency\x12%\n!PARAMETER_CONSISTENCY_UNSPECIFIED\x10\x00\x12$\n PARAMETER_CONSISTENCY_CONSISTENT\x10\x01\x12&\n"PARAMETER_CONSISTENCY_INCONSISTENT\x10\x02\x1a\x10\n\x0eFinalArgNormal\x1a\xb0\x04\n\x06Scalar\x12?\n\targuments\x18\x02 \x03(\x0b2!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x03(\tR\x04name\x12F\n\x0bdescription\x18\x04 \x01(\x0b2$.proto.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12<\n\x0boutput_type\x18\t \x01(\x0b2\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\n \x01(\x0b2).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12A\n\x06normal\x18\x0b \x01(\x0b2\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12Q\n\x0fimplementations\x18\x0c \x03(\x0b2\'.proto.FunctionSignature.ImplementationR\x0fimplementationsB\x19\n\x17final_variable_behavior\x1a\xa0\x05\n\tAggregate\x12?\n\targuments\x18\x02 \x03(\x0b2!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12F\n\x0bdescription\x18\x04 \x01(\x0b2$.proto.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12<\n\x0boutput_type\x18\t \x01(\x0b2\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\n \x01(\x0b2).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12A\n\x06normal\x18\x0b \x01(\x0b2\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12\x18\n\x07ordered\x18\x0e \x01(\x08R\x07ordered\x12\x17\n\x07max_set\x18\x0c \x01(\x04R\x06maxSet\x128\n\x11intermediate_type\x18\r \x01(\x0b2\x0b.proto.TypeR\x10intermediateType\x12Q\n\x0fimplementations\x18\x0f \x03(\x0b2\'.proto.FunctionSignature.ImplementationR\x0fimplementationsB\x19\n\x17final_variable_behavior\x1a\xdb\x06\n\x06Window\x12?\n\targuments\x18\x02 \x03(\x0b2!.proto.FunctionSignature.ArgumentR\targuments\x12\x12\n\x04name\x18\x03 \x03(\tR\x04name\x12F\n\x0bdescription\x18\x04 \x01(\x0b2$.proto.FunctionSignature.DescriptionR\x0bdescription\x12$\n\rdeterministic\x18\x07 \x01(\x08R\rdeterministic\x12+\n\x11session_dependent\x18\x08 \x01(\x08R\x10sessionDependent\x12H\n\x11intermediate_type\x18\t \x01(\x0b2\x1b.proto.DerivationExpressionR\x10intermediateType\x12<\n\x0boutput_type\x18\n \x01(\x0b2\x1b.proto.DerivationExpressionR\noutputType\x12G\n\x08variadic\x18\x10 \x01(\x0b2).proto.FunctionSignature.FinalArgVariadicH\x00R\x08variadic\x12A\n\x06normal\x18\x11 \x01(\x0b2\'.proto.FunctionSignature.FinalArgNormalH\x00R\x06normal\x12\x18\n\x07ordered\x18\x0b \x01(\x08R\x07ordered\x12\x17\n\x07max_set\x18\x0c \x01(\x04R\x06maxSet\x12K\n\x0bwindow_type\x18\x0e \x01(\x0e2*.proto.FunctionSignature.Window.WindowTypeR\nwindowType\x12Q\n\x0fimplementations\x18\x0f \x03(\x0b2\'.proto.FunctionSignature.ImplementationR\x0fimplementations"_\n\nWindowType\x12\x1b\n\x17WINDOW_TYPE_UNSPECIFIED\x10\x00\x12\x19\n\x15WINDOW_TYPE_STREAMING\x10\x01\x12\x19\n\x15WINDOW_TYPE_PARTITION\x10\x02B\x19\n\x17final_variable_behavior\x1a=\n\x0bDescription\x12\x1a\n\x08language\x18\x01 \x01(\tR\x08language\x12\x12\n\x04body\x18\x02 \x01(\tR\x04body\x1a\xad\x01\n\x0eImplementation\x12@\n\x04type\x18\x01 \x01(\x0e2,.proto.FunctionSignature.Implementation.TypeR\x04type\x12\x10\n\x03uri\x18\x02 \x01(\tR\x03uri"G\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x15\n\x11TYPE_WEB_ASSEMBLY\x10\x01\x12\x12\n\x0eTYPE_TRINO_JAR\x10\x02\x1a\xe3\x03\n\x08Argument\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12G\n\x05value\x18\x02 \x01(\x0b2/.proto.FunctionSignature.Argument.ValueArgumentH\x00R\x05value\x12D\n\x04type\x18\x03 \x01(\x0b2..proto.FunctionSignature.Argument.TypeArgumentH\x00R\x04type\x12D\n\x04enum\x18\x04 \x01(\x0b2..proto.FunctionSignature.Argument.EnumArgumentH\x00R\x04enum\x1aY\n\rValueArgument\x12,\n\x04type\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x04type\x12\x1a\n\x08constant\x18\x02 \x01(\x08R\x08constant\x1a<\n\x0cTypeArgument\x12,\n\x04type\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x04type\x1aD\n\x0cEnumArgument\x12\x18\n\x07options\x18\x01 \x03(\tR\x07options\x12\x1a\n\x08optional\x18\x02 \x01(\x08R\x08optionalB\x0f\n\rargument_kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.function_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' - _globals['_FUNCTIONSIGNATURE']._serialized_start=113 - _globals['_FUNCTIONSIGNATURE']._serialized_end=3290 - _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC']._serialized_start=135 - _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC']._serialized_end=447 - _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC_PARAMETERCONSISTENCY']._serialized_start=308 - _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC_PARAMETERCONSISTENCY']._serialized_end=447 - _globals['_FUNCTIONSIGNATURE_FINALARGNORMAL']._serialized_start=449 - _globals['_FUNCTIONSIGNATURE_FINALARGNORMAL']._serialized_end=465 - _globals['_FUNCTIONSIGNATURE_SCALAR']._serialized_start=468 - _globals['_FUNCTIONSIGNATURE_SCALAR']._serialized_end=1028 - _globals['_FUNCTIONSIGNATURE_AGGREGATE']._serialized_start=1031 - _globals['_FUNCTIONSIGNATURE_AGGREGATE']._serialized_end=1703 - _globals['_FUNCTIONSIGNATURE_WINDOW']._serialized_start=1706 - _globals['_FUNCTIONSIGNATURE_WINDOW']._serialized_end=2565 - _globals['_FUNCTIONSIGNATURE_WINDOW_WINDOWTYPE']._serialized_start=2443 - _globals['_FUNCTIONSIGNATURE_WINDOW_WINDOWTYPE']._serialized_end=2538 - _globals['_FUNCTIONSIGNATURE_DESCRIPTION']._serialized_start=2567 - _globals['_FUNCTIONSIGNATURE_DESCRIPTION']._serialized_end=2628 - _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION']._serialized_start=2631 - _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION']._serialized_end=2804 - _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION_TYPE']._serialized_start=2733 - _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION_TYPE']._serialized_end=2804 - _globals['_FUNCTIONSIGNATURE_ARGUMENT']._serialized_start=2807 - _globals['_FUNCTIONSIGNATURE_ARGUMENT']._serialized_end=3290 - _globals['_FUNCTIONSIGNATURE_ARGUMENT_VALUEARGUMENT']._serialized_start=3052 - _globals['_FUNCTIONSIGNATURE_ARGUMENT_VALUEARGUMENT']._serialized_end=3141 - _globals['_FUNCTIONSIGNATURE_ARGUMENT_TYPEARGUMENT']._serialized_start=3143 - _globals['_FUNCTIONSIGNATURE_ARGUMENT_TYPEARGUMENT']._serialized_end=3203 - _globals['_FUNCTIONSIGNATURE_ARGUMENT_ENUMARGUMENT']._serialized_start=3205 - _globals['_FUNCTIONSIGNATURE_ARGUMENT_ENUMARGUMENT']._serialized_end=3273 -# @@protoc_insertion_point(module_scope) + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _globals['_FUNCTIONSIGNATURE']._serialized_start = 113 + _globals['_FUNCTIONSIGNATURE']._serialized_end = 3290 + _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC']._serialized_start = 135 + _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC']._serialized_end = 447 + _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC_PARAMETERCONSISTENCY']._serialized_start = 308 + _globals['_FUNCTIONSIGNATURE_FINALARGVARIADIC_PARAMETERCONSISTENCY']._serialized_end = 447 + _globals['_FUNCTIONSIGNATURE_FINALARGNORMAL']._serialized_start = 449 + _globals['_FUNCTIONSIGNATURE_FINALARGNORMAL']._serialized_end = 465 + _globals['_FUNCTIONSIGNATURE_SCALAR']._serialized_start = 468 + _globals['_FUNCTIONSIGNATURE_SCALAR']._serialized_end = 1028 + _globals['_FUNCTIONSIGNATURE_AGGREGATE']._serialized_start = 1031 + _globals['_FUNCTIONSIGNATURE_AGGREGATE']._serialized_end = 1703 + _globals['_FUNCTIONSIGNATURE_WINDOW']._serialized_start = 1706 + _globals['_FUNCTIONSIGNATURE_WINDOW']._serialized_end = 2565 + _globals['_FUNCTIONSIGNATURE_WINDOW_WINDOWTYPE']._serialized_start = 2443 + _globals['_FUNCTIONSIGNATURE_WINDOW_WINDOWTYPE']._serialized_end = 2538 + _globals['_FUNCTIONSIGNATURE_DESCRIPTION']._serialized_start = 2567 + _globals['_FUNCTIONSIGNATURE_DESCRIPTION']._serialized_end = 2628 + _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION']._serialized_start = 2631 + _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION']._serialized_end = 2804 + _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION_TYPE']._serialized_start = 2733 + _globals['_FUNCTIONSIGNATURE_IMPLEMENTATION_TYPE']._serialized_end = 2804 + _globals['_FUNCTIONSIGNATURE_ARGUMENT']._serialized_start = 2807 + _globals['_FUNCTIONSIGNATURE_ARGUMENT']._serialized_end = 3290 + _globals['_FUNCTIONSIGNATURE_ARGUMENT_VALUEARGUMENT']._serialized_start = 3052 + _globals['_FUNCTIONSIGNATURE_ARGUMENT_VALUEARGUMENT']._serialized_end = 3141 + _globals['_FUNCTIONSIGNATURE_ARGUMENT_TYPEARGUMENT']._serialized_start = 3143 + _globals['_FUNCTIONSIGNATURE_ARGUMENT_TYPEARGUMENT']._serialized_end = 3203 + _globals['_FUNCTIONSIGNATURE_ARGUMENT_ENUMARGUMENT']._serialized_start = 3205 + _globals['_FUNCTIONSIGNATURE_ARGUMENT_ENUMARGUMENT']._serialized_end = 3273 \ No newline at end of file diff --git a/src/substrait/gen/proto/function_pb2.pyi b/src/substrait/gen/proto/function_pb2.pyi index 461f234..7ab4c5f 100644 --- a/src/substrait/gen/proto/function_pb2.pyi +++ b/src/substrait/gen/proto/function_pb2.pyi @@ -2,30 +2,24 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" - import builtins import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.internal.enum_type_wrapper import google.protobuf.message -import proto.parameterized_types_pb2 -import proto.type_expressions_pb2 -import proto.type_pb2 +from .. import proto import sys import typing - if sys.version_info >= (3, 10): import typing as typing_extensions else: import typing_extensions - DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final class FunctionSignature(google.protobuf.message.Message): """List of function signatures available.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor @typing.final @@ -33,62 +27,50 @@ class FunctionSignature(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _ParameterConsistency: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _ParameterConsistencyEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[FunctionSignature.FinalArgVariadic._ParameterConsistency.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - PARAMETER_CONSISTENCY_UNSPECIFIED: FunctionSignature.FinalArgVariadic._ParameterConsistency.ValueType # 0 - PARAMETER_CONSISTENCY_CONSISTENT: FunctionSignature.FinalArgVariadic._ParameterConsistency.ValueType # 1 - """All argument must be the same concrete type.""" - PARAMETER_CONSISTENCY_INCONSISTENT: FunctionSignature.FinalArgVariadic._ParameterConsistency.ValueType # 2 - """Each argument can be any possible concrete type afforded by the bounds - of any parameter defined in the arguments specification. - """ - - class ParameterConsistency(_ParameterConsistency, metaclass=_ParameterConsistencyEnumTypeWrapper): ... - PARAMETER_CONSISTENCY_UNSPECIFIED: FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType # 0 - PARAMETER_CONSISTENCY_CONSISTENT: FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType # 1 - """All argument must be the same concrete type.""" - PARAMETER_CONSISTENCY_INCONSISTENT: FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType # 2 - """Each argument can be any possible concrete type afforded by the bounds - of any parameter defined in the arguments specification. - """ - + PARAMETER_CONSISTENCY_UNSPECIFIED: FunctionSignature.FinalArgVariadic._ParameterConsistency.ValueType + PARAMETER_CONSISTENCY_CONSISTENT: FunctionSignature.FinalArgVariadic._ParameterConsistency.ValueType + 'All argument must be the same concrete type.' + PARAMETER_CONSISTENCY_INCONSISTENT: FunctionSignature.FinalArgVariadic._ParameterConsistency.ValueType + 'Each argument can be any possible concrete type afforded by the bounds\n of any parameter defined in the arguments specification.\n ' + + class ParameterConsistency(_ParameterConsistency, metaclass=_ParameterConsistencyEnumTypeWrapper): + ... + PARAMETER_CONSISTENCY_UNSPECIFIED: FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType + PARAMETER_CONSISTENCY_CONSISTENT: FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType + 'All argument must be the same concrete type.' + PARAMETER_CONSISTENCY_INCONSISTENT: FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType + 'Each argument can be any possible concrete type afforded by the bounds\n of any parameter defined in the arguments specification.\n ' MIN_ARGS_FIELD_NUMBER: builtins.int MAX_ARGS_FIELD_NUMBER: builtins.int CONSISTENCY_FIELD_NUMBER: builtins.int min_args: builtins.int - """the minimum number of arguments allowed for the list of final arguments - (inclusive). - """ + 'the minimum number of arguments allowed for the list of final arguments\n (inclusive).\n ' max_args: builtins.int - """the maximum number of arguments allowed for the list of final arguments - (exclusive) - """ + 'the maximum number of arguments allowed for the list of final arguments\n (exclusive)\n ' consistency: global___FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType - """the type of parameterized type consistency""" - def __init__( - self, - *, - min_args: builtins.int = ..., - max_args: builtins.int = ..., - consistency: global___FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["consistency", b"consistency", "max_args", b"max_args", "min_args", b"min_args"]) -> None: ... + 'the type of parameterized type consistency' + + def __init__(self, *, min_args: builtins.int=..., max_args: builtins.int=..., consistency: global___FunctionSignature.FinalArgVariadic.ParameterConsistency.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['consistency', b'consistency', 'max_args', b'max_args', 'min_args', b'min_args']) -> None: + ... @typing.final class FinalArgNormal(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - def __init__( - self, - ) -> None: ... + def __init__(self) -> None: + ... @typing.final class Scalar(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - ARGUMENTS_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int DESCRIPTION_FIELD_NUMBER: builtins.int @@ -100,41 +82,50 @@ class FunctionSignature(google.protobuf.message.Message): IMPLEMENTATIONS_FIELD_NUMBER: builtins.int deterministic: builtins.bool session_dependent: builtins.bool + @property - def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Argument]: ... + def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Argument]: + ... + @property - def name(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def name(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + ... + @property - def description(self) -> global___FunctionSignature.Description: ... + def description(self) -> global___FunctionSignature.Description: + ... + @property - def output_type(self) -> proto.type_expressions_pb2.DerivationExpression: ... + def output_type(self) -> proto.type_expressions_pb2.DerivationExpression: + ... + @property - def variadic(self) -> global___FunctionSignature.FinalArgVariadic: ... + def variadic(self) -> global___FunctionSignature.FinalArgVariadic: + ... + @property - def normal(self) -> global___FunctionSignature.FinalArgNormal: ... + def normal(self) -> global___FunctionSignature.FinalArgNormal: + ... + @property - def implementations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Implementation]: ... - def __init__( - self, - *, - arguments: collections.abc.Iterable[global___FunctionSignature.Argument] | None = ..., - name: collections.abc.Iterable[builtins.str] | None = ..., - description: global___FunctionSignature.Description | None = ..., - deterministic: builtins.bool = ..., - session_dependent: builtins.bool = ..., - output_type: proto.type_expressions_pb2.DerivationExpression | None = ..., - variadic: global___FunctionSignature.FinalArgVariadic | None = ..., - normal: global___FunctionSignature.FinalArgNormal | None = ..., - implementations: collections.abc.Iterable[global___FunctionSignature.Implementation] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["description", b"description", "final_variable_behavior", b"final_variable_behavior", "normal", b"normal", "output_type", b"output_type", "variadic", b"variadic"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["arguments", b"arguments", "description", b"description", "deterministic", b"deterministic", "final_variable_behavior", b"final_variable_behavior", "implementations", b"implementations", "name", b"name", "normal", b"normal", "output_type", b"output_type", "session_dependent", b"session_dependent", "variadic", b"variadic"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["final_variable_behavior", b"final_variable_behavior"]) -> typing.Literal["variadic", "normal"] | None: ... + def implementations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Implementation]: + ... + + def __init__(self, *, arguments: collections.abc.Iterable[global___FunctionSignature.Argument] | None=..., name: collections.abc.Iterable[builtins.str] | None=..., description: global___FunctionSignature.Description | None=..., deterministic: builtins.bool=..., session_dependent: builtins.bool=..., output_type: proto.type_expressions_pb2.DerivationExpression | None=..., variadic: global___FunctionSignature.FinalArgVariadic | None=..., normal: global___FunctionSignature.FinalArgNormal | None=..., implementations: collections.abc.Iterable[global___FunctionSignature.Implementation] | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['description', b'description', 'final_variable_behavior', b'final_variable_behavior', 'normal', b'normal', 'output_type', b'output_type', 'variadic', b'variadic']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['arguments', b'arguments', 'description', b'description', 'deterministic', b'deterministic', 'final_variable_behavior', b'final_variable_behavior', 'implementations', b'implementations', 'name', b'name', 'normal', b'normal', 'output_type', b'output_type', 'session_dependent', b'session_dependent', 'variadic', b'variadic']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['final_variable_behavior', b'final_variable_behavior']) -> typing.Literal['variadic', 'normal'] | None: + ... @typing.final class Aggregate(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - ARGUMENTS_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int DESCRIPTION_FIELD_NUMBER: builtins.int @@ -152,59 +143,66 @@ class FunctionSignature(google.protobuf.message.Message): session_dependent: builtins.bool ordered: builtins.bool max_set: builtins.int + @property - def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Argument]: ... + def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Argument]: + ... + @property - def description(self) -> global___FunctionSignature.Description: ... + def description(self) -> global___FunctionSignature.Description: + ... + @property - def output_type(self) -> proto.type_expressions_pb2.DerivationExpression: ... + def output_type(self) -> proto.type_expressions_pb2.DerivationExpression: + ... + @property - def variadic(self) -> global___FunctionSignature.FinalArgVariadic: ... + def variadic(self) -> global___FunctionSignature.FinalArgVariadic: + ... + @property - def normal(self) -> global___FunctionSignature.FinalArgNormal: ... + def normal(self) -> global___FunctionSignature.FinalArgNormal: + ... + @property - def intermediate_type(self) -> proto.type_pb2.Type: ... + def intermediate_type(self) -> proto.type_pb2.Type: + ... + @property - def implementations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Implementation]: ... - def __init__( - self, - *, - arguments: collections.abc.Iterable[global___FunctionSignature.Argument] | None = ..., - name: builtins.str = ..., - description: global___FunctionSignature.Description | None = ..., - deterministic: builtins.bool = ..., - session_dependent: builtins.bool = ..., - output_type: proto.type_expressions_pb2.DerivationExpression | None = ..., - variadic: global___FunctionSignature.FinalArgVariadic | None = ..., - normal: global___FunctionSignature.FinalArgNormal | None = ..., - ordered: builtins.bool = ..., - max_set: builtins.int = ..., - intermediate_type: proto.type_pb2.Type | None = ..., - implementations: collections.abc.Iterable[global___FunctionSignature.Implementation] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["description", b"description", "final_variable_behavior", b"final_variable_behavior", "intermediate_type", b"intermediate_type", "normal", b"normal", "output_type", b"output_type", "variadic", b"variadic"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["arguments", b"arguments", "description", b"description", "deterministic", b"deterministic", "final_variable_behavior", b"final_variable_behavior", "implementations", b"implementations", "intermediate_type", b"intermediate_type", "max_set", b"max_set", "name", b"name", "normal", b"normal", "ordered", b"ordered", "output_type", b"output_type", "session_dependent", b"session_dependent", "variadic", b"variadic"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["final_variable_behavior", b"final_variable_behavior"]) -> typing.Literal["variadic", "normal"] | None: ... + def implementations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Implementation]: + ... + + def __init__(self, *, arguments: collections.abc.Iterable[global___FunctionSignature.Argument] | None=..., name: builtins.str=..., description: global___FunctionSignature.Description | None=..., deterministic: builtins.bool=..., session_dependent: builtins.bool=..., output_type: proto.type_expressions_pb2.DerivationExpression | None=..., variadic: global___FunctionSignature.FinalArgVariadic | None=..., normal: global___FunctionSignature.FinalArgNormal | None=..., ordered: builtins.bool=..., max_set: builtins.int=..., intermediate_type: proto.type_pb2.Type | None=..., implementations: collections.abc.Iterable[global___FunctionSignature.Implementation] | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['description', b'description', 'final_variable_behavior', b'final_variable_behavior', 'intermediate_type', b'intermediate_type', 'normal', b'normal', 'output_type', b'output_type', 'variadic', b'variadic']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['arguments', b'arguments', 'description', b'description', 'deterministic', b'deterministic', 'final_variable_behavior', b'final_variable_behavior', 'implementations', b'implementations', 'intermediate_type', b'intermediate_type', 'max_set', b'max_set', 'name', b'name', 'normal', b'normal', 'ordered', b'ordered', 'output_type', b'output_type', 'session_dependent', b'session_dependent', 'variadic', b'variadic']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['final_variable_behavior', b'final_variable_behavior']) -> typing.Literal['variadic', 'normal'] | None: + ... @typing.final class Window(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _WindowType: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _WindowTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[FunctionSignature.Window._WindowType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - WINDOW_TYPE_UNSPECIFIED: FunctionSignature.Window._WindowType.ValueType # 0 - WINDOW_TYPE_STREAMING: FunctionSignature.Window._WindowType.ValueType # 1 - WINDOW_TYPE_PARTITION: FunctionSignature.Window._WindowType.ValueType # 2 - - class WindowType(_WindowType, metaclass=_WindowTypeEnumTypeWrapper): ... - WINDOW_TYPE_UNSPECIFIED: FunctionSignature.Window.WindowType.ValueType # 0 - WINDOW_TYPE_STREAMING: FunctionSignature.Window.WindowType.ValueType # 1 - WINDOW_TYPE_PARTITION: FunctionSignature.Window.WindowType.ValueType # 2 - + WINDOW_TYPE_UNSPECIFIED: FunctionSignature.Window._WindowType.ValueType + WINDOW_TYPE_STREAMING: FunctionSignature.Window._WindowType.ValueType + WINDOW_TYPE_PARTITION: FunctionSignature.Window._WindowType.ValueType + + class WindowType(_WindowType, metaclass=_WindowTypeEnumTypeWrapper): + ... + WINDOW_TYPE_UNSPECIFIED: FunctionSignature.Window.WindowType.ValueType + WINDOW_TYPE_STREAMING: FunctionSignature.Window.WindowType.ValueType + WINDOW_TYPE_PARTITION: FunctionSignature.Window.WindowType.ValueType ARGUMENTS_FIELD_NUMBER: builtins.int NAME_FIELD_NUMBER: builtins.int DESCRIPTION_FIELD_NUMBER: builtins.int @@ -223,89 +221,94 @@ class FunctionSignature(google.protobuf.message.Message): ordered: builtins.bool max_set: builtins.int window_type: global___FunctionSignature.Window.WindowType.ValueType + @property - def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Argument]: ... + def arguments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Argument]: + ... + @property - def name(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def name(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + ... + @property - def description(self) -> global___FunctionSignature.Description: ... + def description(self) -> global___FunctionSignature.Description: + ... + @property - def intermediate_type(self) -> proto.type_expressions_pb2.DerivationExpression: ... + def intermediate_type(self) -> proto.type_expressions_pb2.DerivationExpression: + ... + @property - def output_type(self) -> proto.type_expressions_pb2.DerivationExpression: ... + def output_type(self) -> proto.type_expressions_pb2.DerivationExpression: + ... + @property - def variadic(self) -> global___FunctionSignature.FinalArgVariadic: ... + def variadic(self) -> global___FunctionSignature.FinalArgVariadic: + ... + @property - def normal(self) -> global___FunctionSignature.FinalArgNormal: ... + def normal(self) -> global___FunctionSignature.FinalArgNormal: + ... + @property - def implementations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Implementation]: ... - def __init__( - self, - *, - arguments: collections.abc.Iterable[global___FunctionSignature.Argument] | None = ..., - name: collections.abc.Iterable[builtins.str] | None = ..., - description: global___FunctionSignature.Description | None = ..., - deterministic: builtins.bool = ..., - session_dependent: builtins.bool = ..., - intermediate_type: proto.type_expressions_pb2.DerivationExpression | None = ..., - output_type: proto.type_expressions_pb2.DerivationExpression | None = ..., - variadic: global___FunctionSignature.FinalArgVariadic | None = ..., - normal: global___FunctionSignature.FinalArgNormal | None = ..., - ordered: builtins.bool = ..., - max_set: builtins.int = ..., - window_type: global___FunctionSignature.Window.WindowType.ValueType = ..., - implementations: collections.abc.Iterable[global___FunctionSignature.Implementation] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["description", b"description", "final_variable_behavior", b"final_variable_behavior", "intermediate_type", b"intermediate_type", "normal", b"normal", "output_type", b"output_type", "variadic", b"variadic"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["arguments", b"arguments", "description", b"description", "deterministic", b"deterministic", "final_variable_behavior", b"final_variable_behavior", "implementations", b"implementations", "intermediate_type", b"intermediate_type", "max_set", b"max_set", "name", b"name", "normal", b"normal", "ordered", b"ordered", "output_type", b"output_type", "session_dependent", b"session_dependent", "variadic", b"variadic", "window_type", b"window_type"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["final_variable_behavior", b"final_variable_behavior"]) -> typing.Literal["variadic", "normal"] | None: ... + def implementations(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___FunctionSignature.Implementation]: + ... + + def __init__(self, *, arguments: collections.abc.Iterable[global___FunctionSignature.Argument] | None=..., name: collections.abc.Iterable[builtins.str] | None=..., description: global___FunctionSignature.Description | None=..., deterministic: builtins.bool=..., session_dependent: builtins.bool=..., intermediate_type: proto.type_expressions_pb2.DerivationExpression | None=..., output_type: proto.type_expressions_pb2.DerivationExpression | None=..., variadic: global___FunctionSignature.FinalArgVariadic | None=..., normal: global___FunctionSignature.FinalArgNormal | None=..., ordered: builtins.bool=..., max_set: builtins.int=..., window_type: global___FunctionSignature.Window.WindowType.ValueType=..., implementations: collections.abc.Iterable[global___FunctionSignature.Implementation] | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['description', b'description', 'final_variable_behavior', b'final_variable_behavior', 'intermediate_type', b'intermediate_type', 'normal', b'normal', 'output_type', b'output_type', 'variadic', b'variadic']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['arguments', b'arguments', 'description', b'description', 'deterministic', b'deterministic', 'final_variable_behavior', b'final_variable_behavior', 'implementations', b'implementations', 'intermediate_type', b'intermediate_type', 'max_set', b'max_set', 'name', b'name', 'normal', b'normal', 'ordered', b'ordered', 'output_type', b'output_type', 'session_dependent', b'session_dependent', 'variadic', b'variadic', 'window_type', b'window_type']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['final_variable_behavior', b'final_variable_behavior']) -> typing.Literal['variadic', 'normal'] | None: + ... @typing.final class Description(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - LANGUAGE_FIELD_NUMBER: builtins.int BODY_FIELD_NUMBER: builtins.int language: builtins.str body: builtins.str - def __init__( - self, - *, - language: builtins.str = ..., - body: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["body", b"body", "language", b"language"]) -> None: ... + + def __init__(self, *, language: builtins.str=..., body: builtins.str=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['body', b'body', 'language', b'language']) -> None: + ... @typing.final class Implementation(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _Type: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _TypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[FunctionSignature.Implementation._Type.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - TYPE_UNSPECIFIED: FunctionSignature.Implementation._Type.ValueType # 0 - TYPE_WEB_ASSEMBLY: FunctionSignature.Implementation._Type.ValueType # 1 - TYPE_TRINO_JAR: FunctionSignature.Implementation._Type.ValueType # 2 - - class Type(_Type, metaclass=_TypeEnumTypeWrapper): ... - TYPE_UNSPECIFIED: FunctionSignature.Implementation.Type.ValueType # 0 - TYPE_WEB_ASSEMBLY: FunctionSignature.Implementation.Type.ValueType # 1 - TYPE_TRINO_JAR: FunctionSignature.Implementation.Type.ValueType # 2 - + TYPE_UNSPECIFIED: FunctionSignature.Implementation._Type.ValueType + TYPE_WEB_ASSEMBLY: FunctionSignature.Implementation._Type.ValueType + TYPE_TRINO_JAR: FunctionSignature.Implementation._Type.ValueType + + class Type(_Type, metaclass=_TypeEnumTypeWrapper): + ... + TYPE_UNSPECIFIED: FunctionSignature.Implementation.Type.ValueType + TYPE_WEB_ASSEMBLY: FunctionSignature.Implementation.Type.ValueType + TYPE_TRINO_JAR: FunctionSignature.Implementation.Type.ValueType TYPE_FIELD_NUMBER: builtins.int URI_FIELD_NUMBER: builtins.int type: global___FunctionSignature.Implementation.Type.ValueType uri: builtins.str - def __init__( - self, - *, - type: global___FunctionSignature.Implementation.Type.ValueType = ..., - uri: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["type", b"type", "uri", b"uri"]) -> None: ... + + def __init__(self, *, type: global___FunctionSignature.Implementation.Type.ValueType=..., uri: builtins.str=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['type', b'type', 'uri', b'uri']) -> None: + ... @typing.final class Argument(google.protobuf.message.Message): @@ -314,78 +317,87 @@ class FunctionSignature(google.protobuf.message.Message): @typing.final class ValueArgument(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int CONSTANT_FIELD_NUMBER: builtins.int constant: builtins.bool + @property - def type(self) -> proto.parameterized_types_pb2.ParameterizedType: ... - def __init__( - self, - *, - type: proto.parameterized_types_pb2.ParameterizedType | None = ..., - constant: builtins.bool = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["constant", b"constant", "type", b"type"]) -> None: ... + def type(self) -> proto.parameterized_types_pb2.ParameterizedType: + ... + + def __init__(self, *, type: proto.parameterized_types_pb2.ParameterizedType | None=..., constant: builtins.bool=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['constant', b'constant', 'type', b'type']) -> None: + ... @typing.final class TypeArgument(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int + @property - def type(self) -> proto.parameterized_types_pb2.ParameterizedType: ... - def __init__( - self, - *, - type: proto.parameterized_types_pb2.ParameterizedType | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["type", b"type"]) -> None: ... + def type(self) -> proto.parameterized_types_pb2.ParameterizedType: + ... + + def __init__(self, *, type: proto.parameterized_types_pb2.ParameterizedType | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['type', b'type']) -> None: + ... @typing.final class EnumArgument(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - OPTIONS_FIELD_NUMBER: builtins.int OPTIONAL_FIELD_NUMBER: builtins.int optional: builtins.bool + @property - def options(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... - def __init__( - self, - *, - options: collections.abc.Iterable[builtins.str] | None = ..., - optional: builtins.bool = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["optional", b"optional", "options", b"options"]) -> None: ... + def options(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + ... + def __init__(self, *, options: collections.abc.Iterable[builtins.str] | None=..., optional: builtins.bool=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['optional', b'optional', 'options', b'options']) -> None: + ... NAME_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int TYPE_FIELD_NUMBER: builtins.int ENUM_FIELD_NUMBER: builtins.int name: builtins.str + @property - def value(self) -> global___FunctionSignature.Argument.ValueArgument: ... + def value(self) -> global___FunctionSignature.Argument.ValueArgument: + ... + @property - def type(self) -> global___FunctionSignature.Argument.TypeArgument: ... + def type(self) -> global___FunctionSignature.Argument.TypeArgument: + ... + @property - def enum(self) -> global___FunctionSignature.Argument.EnumArgument: ... - def __init__( - self, - *, - name: builtins.str = ..., - value: global___FunctionSignature.Argument.ValueArgument | None = ..., - type: global___FunctionSignature.Argument.TypeArgument | None = ..., - enum: global___FunctionSignature.Argument.EnumArgument | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["argument_kind", b"argument_kind", "enum", b"enum", "type", b"type", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["argument_kind", b"argument_kind", "enum", b"enum", "name", b"name", "type", b"type", "value", b"value"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["argument_kind", b"argument_kind"]) -> typing.Literal["value", "type", "enum"] | None: ... - - def __init__( - self, - ) -> None: ... - -global___FunctionSignature = FunctionSignature + def enum(self) -> global___FunctionSignature.Argument.EnumArgument: + ... + + def __init__(self, *, name: builtins.str=..., value: global___FunctionSignature.Argument.ValueArgument | None=..., type: global___FunctionSignature.Argument.TypeArgument | None=..., enum: global___FunctionSignature.Argument.EnumArgument | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['argument_kind', b'argument_kind', 'enum', b'enum', 'type', b'type', 'value', b'value']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['argument_kind', b'argument_kind', 'enum', b'enum', 'name', b'name', 'type', b'type', 'value', b'value']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['argument_kind', b'argument_kind']) -> typing.Literal['value', 'type', 'enum'] | None: + ... + + def __init__(self) -> None: + ... +global___FunctionSignature = FunctionSignature \ No newline at end of file diff --git a/src/substrait/gen/proto/parameterized_types_pb2.py b/src/substrait/gen/proto/parameterized_types_pb2.py index 3bc9330..c53edb2 100644 --- a/src/substrait/gen/proto/parameterized_types_pb2.py +++ b/src/substrait/gen/proto/parameterized_types_pb2.py @@ -1,82 +1,62 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: proto/parameterized_types.proto -# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 5, - '', - 'proto/parameterized_types.proto' -) -# @@protoc_insertion_point(imports) - +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/parameterized_types.proto') _sym_db = _symbol_database.Default() - - -from proto import type_pb2 as proto_dot_type__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fproto/parameterized_types.proto\x12\x05proto\x1a\x10proto/type.proto\"\xc0(\n\x11ParameterizedType\x12)\n\x04\x62ool\x18\x01 \x01(\x0b\x32\x13.proto.Type.BooleanH\x00R\x04\x62ool\x12 \n\x02i8\x18\x02 \x01(\x0b\x32\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b\x32\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b\x32\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b\x32\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04\x66p32\x18\n \x01(\x0b\x32\x10.proto.Type.FP32H\x00R\x04\x66p32\x12&\n\x04\x66p64\x18\x0b \x01(\x0b\x32\x10.proto.Type.FP64H\x00R\x04\x66p64\x12,\n\x06string\x18\x0c \x01(\x0b\x32\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06\x62inary\x18\r \x01(\x0b\x32\x12.proto.Type.BinaryH\x00R\x06\x62inary\x12\x39\n\ttimestamp\x18\x0e \x01(\x0b\x32\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04\x64\x61te\x18\x10 \x01(\x0b\x32\x10.proto.Type.DateH\x00R\x04\x64\x61te\x12*\n\x04time\x18\x11 \x01(\x0b\x32\x10.proto.Type.TimeB\x02\x18\x01H\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b\x32\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12V\n\x0cinterval_day\x18\x14 \x01(\x0b\x32\x31.proto.ParameterizedType.ParameterizedIntervalDayH\x00R\x0bintervalDay\x12\x65\n\x11interval_compound\x18$ \x01(\x0b\x32\x36.proto.ParameterizedType.ParameterizedIntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b\x32\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b\x32\x10.proto.Type.UUIDH\x00R\x04uuid\x12P\n\nfixed_char\x18\x15 \x01(\x0b\x32/.proto.ParameterizedType.ParameterizedFixedCharH\x00R\tfixedChar\x12I\n\x07varchar\x18\x16 \x01(\x0b\x32-.proto.ParameterizedType.ParameterizedVarCharH\x00R\x07varchar\x12V\n\x0c\x66ixed_binary\x18\x17 \x01(\x0b\x32\x31.proto.ParameterizedType.ParameterizedFixedBinaryH\x00R\x0b\x66ixedBinary\x12I\n\x07\x64\x65\x63imal\x18\x18 \x01(\x0b\x32-.proto.ParameterizedType.ParameterizedDecimalH\x00R\x07\x64\x65\x63imal\x12\\\n\x0eprecision_time\x18% \x01(\x0b\x32\x33.proto.ParameterizedType.ParameterizedPrecisionTimeH\x00R\rprecisionTime\x12k\n\x13precision_timestamp\x18\" \x01(\x0b\x32\x38.proto.ParameterizedType.ParameterizedPrecisionTimestampH\x00R\x12precisionTimestamp\x12r\n\x16precision_timestamp_tz\x18# \x01(\x0b\x32:.proto.ParameterizedType.ParameterizedPrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12\x46\n\x06struct\x18\x19 \x01(\x0b\x32,.proto.ParameterizedType.ParameterizedStructH\x00R\x06struct\x12@\n\x04list\x18\x1b \x01(\x0b\x32*.proto.ParameterizedType.ParameterizedListH\x00R\x04list\x12=\n\x03map\x18\x1c \x01(\x0b\x32).proto.ParameterizedType.ParameterizedMapH\x00R\x03map\x12V\n\x0cuser_defined\x18\x1e \x01(\x0b\x32\x31.proto.ParameterizedType.ParameterizedUserDefinedH\x00R\x0buserDefined\x12\x36\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x12O\n\x0etype_parameter\x18! \x01(\x0b\x32&.proto.ParameterizedType.TypeParameterH\x00R\rtypeParameter\x1aU\n\rTypeParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x30\n\x06\x62ounds\x18\x02 \x03(\x0b\x32\x18.proto.ParameterizedTypeR\x06\x62ounds\x1a\xde\x01\n\x10IntegerParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\\\n\x15range_start_inclusive\x18\x02 \x01(\x0b\x32(.proto.ParameterizedType.NullableIntegerR\x13rangeStartInclusive\x12X\n\x13range_end_exclusive\x18\x03 \x01(\x0b\x32(.proto.ParameterizedType.NullableIntegerR\x11rangeEndExclusive\x1a\'\n\x0fNullableInteger\x12\x14\n\x05value\x18\x01 \x01(\x03R\x05value\x1a\xc0\x01\n\x16ParameterizedFixedChar\x12>\n\x06length\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbe\x01\n\x14ParameterizedVarChar\x12>\n\x06length\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc2\x01\n\x18ParameterizedFixedBinary\x12>\n\x06length\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x02\n\x14ParameterizedDecimal\x12<\n\x05scale\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\x05scale\x12\x44\n\tprecision\x18\x02 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x04 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc8\x01\n\x18ParameterizedIntervalDay\x12\x44\n\tprecision\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xcd\x01\n\x1dParameterizedIntervalCompound\x12\x44\n\tprecision\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xca\x01\n\x1aParameterizedPrecisionTime\x12\x44\n\tprecision\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xcf\x01\n\x1fParameterizedPrecisionTimestamp\x12\x44\n\tprecision\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd1\x01\n!ParameterizedPrecisionTimestampTZ\x12\x44\n\tprecision\x18\x01 \x01(\x0b\x32&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xad\x01\n\x13ParameterizedStruct\x12.\n\x05types\x18\x01 \x03(\x0b\x32\x18.proto.ParameterizedTypeR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1av\n\x18ParameterizedNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12\x44\n\x06struct\x18\x02 \x01(\x0b\x32,.proto.ParameterizedType.ParameterizedStructR\x06struct\x1a\xa9\x01\n\x11ParameterizedList\x12,\n\x04type\x18\x01 \x01(\x0b\x32\x18.proto.ParameterizedTypeR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd6\x01\n\x10ParameterizedMap\x12*\n\x03key\x18\x01 \x01(\x0b\x32\x18.proto.ParameterizedTypeR\x03key\x12.\n\x05value\x18\x02 \x01(\x0b\x32\x18.proto.ParameterizedTypeR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x04 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa5\x01\n\x18ParameterizedUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x86\x01\n\rIntegerOption\x12\x1a\n\x07literal\x18\x01 \x01(\x05H\x00R\x07literal\x12I\n\tparameter\x18\x02 \x01(\x0b\x32).proto.ParameterizedType.IntegerParameterH\x00R\tparameterB\x0e\n\x0cinteger_typeB\x06\n\x04kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') - +from ..proto import type_pb2 as proto_dot_type__pb2 +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fproto/parameterized_types.proto\x12\x05proto\x1a\x10proto/type.proto"\xc0(\n\x11ParameterizedType\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12*\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeB\x02\x18\x01H\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12V\n\x0cinterval_day\x18\x14 \x01(\x0b21.proto.ParameterizedType.ParameterizedIntervalDayH\x00R\x0bintervalDay\x12e\n\x11interval_compound\x18$ \x01(\x0b26.proto.ParameterizedType.ParameterizedIntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x12P\n\nfixed_char\x18\x15 \x01(\x0b2/.proto.ParameterizedType.ParameterizedFixedCharH\x00R\tfixedChar\x12I\n\x07varchar\x18\x16 \x01(\x0b2-.proto.ParameterizedType.ParameterizedVarCharH\x00R\x07varchar\x12V\n\x0cfixed_binary\x18\x17 \x01(\x0b21.proto.ParameterizedType.ParameterizedFixedBinaryH\x00R\x0bfixedBinary\x12I\n\x07decimal\x18\x18 \x01(\x0b2-.proto.ParameterizedType.ParameterizedDecimalH\x00R\x07decimal\x12\\\n\x0eprecision_time\x18% \x01(\x0b23.proto.ParameterizedType.ParameterizedPrecisionTimeH\x00R\rprecisionTime\x12k\n\x13precision_timestamp\x18" \x01(\x0b28.proto.ParameterizedType.ParameterizedPrecisionTimestampH\x00R\x12precisionTimestamp\x12r\n\x16precision_timestamp_tz\x18# \x01(\x0b2:.proto.ParameterizedType.ParameterizedPrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12F\n\x06struct\x18\x19 \x01(\x0b2,.proto.ParameterizedType.ParameterizedStructH\x00R\x06struct\x12@\n\x04list\x18\x1b \x01(\x0b2*.proto.ParameterizedType.ParameterizedListH\x00R\x04list\x12=\n\x03map\x18\x1c \x01(\x0b2).proto.ParameterizedType.ParameterizedMapH\x00R\x03map\x12V\n\x0cuser_defined\x18\x1e \x01(\x0b21.proto.ParameterizedType.ParameterizedUserDefinedH\x00R\x0buserDefined\x126\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x12O\n\x0etype_parameter\x18! \x01(\x0b2&.proto.ParameterizedType.TypeParameterH\x00R\rtypeParameter\x1aU\n\rTypeParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x120\n\x06bounds\x18\x02 \x03(\x0b2\x18.proto.ParameterizedTypeR\x06bounds\x1a\xde\x01\n\x10IntegerParameter\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\\\n\x15range_start_inclusive\x18\x02 \x01(\x0b2(.proto.ParameterizedType.NullableIntegerR\x13rangeStartInclusive\x12X\n\x13range_end_exclusive\x18\x03 \x01(\x0b2(.proto.ParameterizedType.NullableIntegerR\x11rangeEndExclusive\x1a\'\n\x0fNullableInteger\x12\x14\n\x05value\x18\x01 \x01(\x03R\x05value\x1a\xc0\x01\n\x16ParameterizedFixedChar\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbe\x01\n\x14ParameterizedVarChar\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc2\x01\n\x18ParameterizedFixedBinary\x12>\n\x06length\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x02\n\x14ParameterizedDecimal\x12<\n\x05scale\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\x05scale\x12D\n\tprecision\x18\x02 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc8\x01\n\x18ParameterizedIntervalDay\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xcd\x01\n\x1dParameterizedIntervalCompound\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xca\x01\n\x1aParameterizedPrecisionTime\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xcf\x01\n\x1fParameterizedPrecisionTimestamp\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd1\x01\n!ParameterizedPrecisionTimestampTZ\x12D\n\tprecision\x18\x01 \x01(\x0b2&.proto.ParameterizedType.IntegerOptionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xad\x01\n\x13ParameterizedStruct\x12.\n\x05types\x18\x01 \x03(\x0b2\x18.proto.ParameterizedTypeR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1av\n\x18ParameterizedNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12D\n\x06struct\x18\x02 \x01(\x0b2,.proto.ParameterizedType.ParameterizedStructR\x06struct\x1a\xa9\x01\n\x11ParameterizedList\x12,\n\x04type\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd6\x01\n\x10ParameterizedMap\x12*\n\x03key\x18\x01 \x01(\x0b2\x18.proto.ParameterizedTypeR\x03key\x12.\n\x05value\x18\x02 \x01(\x0b2\x18.proto.ParameterizedTypeR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa5\x01\n\x18ParameterizedUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x86\x01\n\rIntegerOption\x12\x1a\n\x07literal\x18\x01 \x01(\x05H\x00R\x07literal\x12I\n\tparameter\x18\x02 \x01(\x0b2).proto.ParameterizedType.IntegerParameterH\x00R\tparameterB\x0e\n\x0cinteger_typeB\x06\n\x04kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.parameterized_types_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' - _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp']._loaded_options = None - _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp']._serialized_options = b'\030\001' - _globals['_PARAMETERIZEDTYPE'].fields_by_name['time']._loaded_options = None - _globals['_PARAMETERIZEDTYPE'].fields_by_name['time']._serialized_options = b'\030\001' - _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp_tz']._loaded_options = None - _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp_tz']._serialized_options = b'\030\001' - _globals['_PARAMETERIZEDTYPE'].fields_by_name['user_defined_pointer']._loaded_options = None - _globals['_PARAMETERIZEDTYPE'].fields_by_name['user_defined_pointer']._serialized_options = b'\030\001' - _globals['_PARAMETERIZEDTYPE']._serialized_start=61 - _globals['_PARAMETERIZEDTYPE']._serialized_end=5245 - _globals['_PARAMETERIZEDTYPE_TYPEPARAMETER']._serialized_start=2012 - _globals['_PARAMETERIZEDTYPE_TYPEPARAMETER']._serialized_end=2097 - _globals['_PARAMETERIZEDTYPE_INTEGERPARAMETER']._serialized_start=2100 - _globals['_PARAMETERIZEDTYPE_INTEGERPARAMETER']._serialized_end=2322 - _globals['_PARAMETERIZEDTYPE_NULLABLEINTEGER']._serialized_start=2324 - _globals['_PARAMETERIZEDTYPE_NULLABLEINTEGER']._serialized_end=2363 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR']._serialized_start=2366 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR']._serialized_end=2558 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR']._serialized_start=2561 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR']._serialized_end=2751 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY']._serialized_start=2754 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY']._serialized_end=2948 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL']._serialized_start=2951 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL']._serialized_end=3209 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY']._serialized_start=3212 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY']._serialized_end=3412 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND']._serialized_start=3415 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND']._serialized_end=3620 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIME']._serialized_start=3623 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIME']._serialized_end=3825 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP']._serialized_start=3828 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP']._serialized_end=4035 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ']._serialized_start=4038 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ']._serialized_end=4247 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT']._serialized_start=4250 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT']._serialized_end=4423 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT']._serialized_start=4425 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT']._serialized_end=4543 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDLIST']._serialized_start=4546 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDLIST']._serialized_end=4715 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDMAP']._serialized_start=4718 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDMAP']._serialized_end=4932 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED']._serialized_start=4935 - _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED']._serialized_end=5100 - _globals['_PARAMETERIZEDTYPE_INTEGEROPTION']._serialized_start=5103 - _globals['_PARAMETERIZEDTYPE_INTEGEROPTION']._serialized_end=5237 -# @@protoc_insertion_point(module_scope) + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp']._loaded_options = None + _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp']._serialized_options = b'\x18\x01' + _globals['_PARAMETERIZEDTYPE'].fields_by_name['time']._loaded_options = None + _globals['_PARAMETERIZEDTYPE'].fields_by_name['time']._serialized_options = b'\x18\x01' + _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp_tz']._loaded_options = None + _globals['_PARAMETERIZEDTYPE'].fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' + _globals['_PARAMETERIZEDTYPE'].fields_by_name['user_defined_pointer']._loaded_options = None + _globals['_PARAMETERIZEDTYPE'].fields_by_name['user_defined_pointer']._serialized_options = b'\x18\x01' + _globals['_PARAMETERIZEDTYPE']._serialized_start = 61 + _globals['_PARAMETERIZEDTYPE']._serialized_end = 5245 + _globals['_PARAMETERIZEDTYPE_TYPEPARAMETER']._serialized_start = 2012 + _globals['_PARAMETERIZEDTYPE_TYPEPARAMETER']._serialized_end = 2097 + _globals['_PARAMETERIZEDTYPE_INTEGERPARAMETER']._serialized_start = 2100 + _globals['_PARAMETERIZEDTYPE_INTEGERPARAMETER']._serialized_end = 2322 + _globals['_PARAMETERIZEDTYPE_NULLABLEINTEGER']._serialized_start = 2324 + _globals['_PARAMETERIZEDTYPE_NULLABLEINTEGER']._serialized_end = 2363 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR']._serialized_start = 2366 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDCHAR']._serialized_end = 2558 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR']._serialized_start = 2561 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDVARCHAR']._serialized_end = 2751 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY']._serialized_start = 2754 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDFIXEDBINARY']._serialized_end = 2948 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL']._serialized_start = 2951 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDDECIMAL']._serialized_end = 3209 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY']._serialized_start = 3212 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALDAY']._serialized_end = 3412 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND']._serialized_start = 3415 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDINTERVALCOMPOUND']._serialized_end = 3620 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIME']._serialized_start = 3623 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIME']._serialized_end = 3825 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP']._serialized_start = 3828 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMP']._serialized_end = 4035 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ']._serialized_start = 4038 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDPRECISIONTIMESTAMPTZ']._serialized_end = 4247 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT']._serialized_start = 4250 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDSTRUCT']._serialized_end = 4423 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT']._serialized_start = 4425 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDNAMEDSTRUCT']._serialized_end = 4543 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDLIST']._serialized_start = 4546 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDLIST']._serialized_end = 4715 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDMAP']._serialized_start = 4718 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDMAP']._serialized_end = 4932 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED']._serialized_start = 4935 + _globals['_PARAMETERIZEDTYPE_PARAMETERIZEDUSERDEFINED']._serialized_end = 5100 + _globals['_PARAMETERIZEDTYPE_INTEGEROPTION']._serialized_start = 5103 + _globals['_PARAMETERIZEDTYPE_INTEGEROPTION']._serialized_end = 5237 \ No newline at end of file diff --git a/src/substrait/gen/proto/parameterized_types_pb2.pyi b/src/substrait/gen/proto/parameterized_types_pb2.pyi index 45bb072..2d649ec 100644 --- a/src/substrait/gen/proto/parameterized_types_pb2.pyi +++ b/src/substrait/gen/proto/parameterized_types_pb2.pyi @@ -2,15 +2,13 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" - import builtins import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.message -import proto.type_pb2 +from .. import proto import typing - DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final @@ -20,373 +18,389 @@ class ParameterizedType(google.protobuf.message.Message): @typing.final class TypeParameter(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int BOUNDS_FIELD_NUMBER: builtins.int name: builtins.str + @property - def bounds(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ParameterizedType]: ... - def __init__( - self, - *, - name: builtins.str = ..., - bounds: collections.abc.Iterable[global___ParameterizedType] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["bounds", b"bounds", "name", b"name"]) -> None: ... + def bounds(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ParameterizedType]: + ... + + def __init__(self, *, name: builtins.str=..., bounds: collections.abc.Iterable[global___ParameterizedType] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['bounds', b'bounds', 'name', b'name']) -> None: + ... @typing.final class IntegerParameter(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int RANGE_START_INCLUSIVE_FIELD_NUMBER: builtins.int RANGE_END_EXCLUSIVE_FIELD_NUMBER: builtins.int name: builtins.str + @property - def range_start_inclusive(self) -> global___ParameterizedType.NullableInteger: ... + def range_start_inclusive(self) -> global___ParameterizedType.NullableInteger: + ... + @property - def range_end_exclusive(self) -> global___ParameterizedType.NullableInteger: ... - def __init__( - self, - *, - name: builtins.str = ..., - range_start_inclusive: global___ParameterizedType.NullableInteger | None = ..., - range_end_exclusive: global___ParameterizedType.NullableInteger | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["range_end_exclusive", b"range_end_exclusive", "range_start_inclusive", b"range_start_inclusive"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["name", b"name", "range_end_exclusive", b"range_end_exclusive", "range_start_inclusive", b"range_start_inclusive"]) -> None: ... + def range_end_exclusive(self) -> global___ParameterizedType.NullableInteger: + ... + + def __init__(self, *, name: builtins.str=..., range_start_inclusive: global___ParameterizedType.NullableInteger | None=..., range_end_exclusive: global___ParameterizedType.NullableInteger | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['range_end_exclusive', b'range_end_exclusive', 'range_start_inclusive', b'range_start_inclusive']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['name', b'name', 'range_end_exclusive', b'range_end_exclusive', 'range_start_inclusive', b'range_start_inclusive']) -> None: + ... @typing.final class NullableInteger(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - VALUE_FIELD_NUMBER: builtins.int value: builtins.int - def __init__( - self, - *, - value: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["value", b"value"]) -> None: ... + + def __init__(self, *, value: builtins.int=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['value', b'value']) -> None: + ... @typing.final class ParameterizedFixedChar(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - LENGTH_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def length(self) -> global___ParameterizedType.IntegerOption: ... - def __init__( - self, - *, - length: global___ParameterizedType.IntegerOption | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["length", b"length"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "variation_pointer", b"variation_pointer"]) -> None: ... + def length(self) -> global___ParameterizedType.IntegerOption: + ... + + def __init__(self, *, length: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['length', b'length']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ParameterizedVarChar(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - LENGTH_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def length(self) -> global___ParameterizedType.IntegerOption: ... - def __init__( - self, - *, - length: global___ParameterizedType.IntegerOption | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["length", b"length"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "variation_pointer", b"variation_pointer"]) -> None: ... + def length(self) -> global___ParameterizedType.IntegerOption: + ... + + def __init__(self, *, length: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['length', b'length']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ParameterizedFixedBinary(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - LENGTH_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def length(self) -> global___ParameterizedType.IntegerOption: ... - def __init__( - self, - *, - length: global___ParameterizedType.IntegerOption | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["length", b"length"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "variation_pointer", b"variation_pointer"]) -> None: ... + def length(self) -> global___ParameterizedType.IntegerOption: + ... + + def __init__(self, *, length: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['length', b'length']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ParameterizedDecimal(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - SCALE_FIELD_NUMBER: builtins.int PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def scale(self) -> global___ParameterizedType.IntegerOption: ... + def scale(self) -> global___ParameterizedType.IntegerOption: + ... + @property - def precision(self) -> global___ParameterizedType.IntegerOption: ... - def __init__( - self, - *, - scale: global___ParameterizedType.IntegerOption | None = ..., - precision: global___ParameterizedType.IntegerOption | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["precision", b"precision", "scale", b"scale"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "scale", b"scale", "variation_pointer", b"variation_pointer"]) -> None: ... + def precision(self) -> global___ParameterizedType.IntegerOption: + ... + + def __init__(self, *, scale: global___ParameterizedType.IntegerOption | None=..., precision: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['precision', b'precision', 'scale', b'scale']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'scale', b'scale', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ParameterizedIntervalDay(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def precision(self) -> global___ParameterizedType.IntegerOption: ... - def __init__( - self, - *, - precision: global___ParameterizedType.IntegerOption | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... + def precision(self) -> global___ParameterizedType.IntegerOption: + ... + + def __init__(self, *, precision: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ParameterizedIntervalCompound(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def precision(self) -> global___ParameterizedType.IntegerOption: ... - def __init__( - self, - *, - precision: global___ParameterizedType.IntegerOption | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... + def precision(self) -> global___ParameterizedType.IntegerOption: + ... + + def __init__(self, *, precision: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ParameterizedPrecisionTime(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def precision(self) -> global___ParameterizedType.IntegerOption: ... - def __init__( - self, - *, - precision: global___ParameterizedType.IntegerOption | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... + def precision(self) -> global___ParameterizedType.IntegerOption: + ... + + def __init__(self, *, precision: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ParameterizedPrecisionTimestamp(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def precision(self) -> global___ParameterizedType.IntegerOption: ... - def __init__( - self, - *, - precision: global___ParameterizedType.IntegerOption | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... + def precision(self) -> global___ParameterizedType.IntegerOption: + ... + + def __init__(self, *, precision: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ParameterizedPrecisionTimestampTZ(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def precision(self) -> global___ParameterizedType.IntegerOption: ... - def __init__( - self, - *, - precision: global___ParameterizedType.IntegerOption | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... + def precision(self) -> global___ParameterizedType.IntegerOption: + ... + + def __init__(self, *, precision: global___ParameterizedType.IntegerOption | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ParameterizedStruct(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPES_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ParameterizedType]: ... - def __init__( - self, - *, - types: collections.abc.Iterable[global___ParameterizedType] | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "types", b"types", "variation_pointer", b"variation_pointer"]) -> None: ... + def types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___ParameterizedType]: + ... + + def __init__(self, *, types: collections.abc.Iterable[global___ParameterizedType] | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'types', b'types', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ParameterizedNamedStruct(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAMES_FIELD_NUMBER: builtins.int STRUCT_FIELD_NUMBER: builtins.int + @property def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """list of names in dfs order""" @property - def struct(self) -> global___ParameterizedType.ParameterizedStruct: ... - def __init__( - self, - *, - names: collections.abc.Iterable[builtins.str] | None = ..., - struct: global___ParameterizedType.ParameterizedStruct | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["struct", b"struct"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["names", b"names", "struct", b"struct"]) -> None: ... + def struct(self) -> global___ParameterizedType.ParameterizedStruct: + ... + + def __init__(self, *, names: collections.abc.Iterable[builtins.str] | None=..., struct: global___ParameterizedType.ParameterizedStruct | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['struct', b'struct']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['names', b'names', 'struct', b'struct']) -> None: + ... @typing.final class ParameterizedList(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def type(self) -> global___ParameterizedType: ... - def __init__( - self, - *, - type: global___ParameterizedType | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type", b"type", "variation_pointer", b"variation_pointer"]) -> None: ... + def type(self) -> global___ParameterizedType: + ... + + def __init__(self, *, type: global___ParameterizedType | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type', b'type', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ParameterizedMap(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def key(self) -> global___ParameterizedType: ... + def key(self) -> global___ParameterizedType: + ... + @property - def value(self) -> global___ParameterizedType: ... - def __init__( - self, - *, - key: global___ParameterizedType | None = ..., - value: global___ParameterizedType | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["key", b"key", "nullability", b"nullability", "value", b"value", "variation_pointer", b"variation_pointer"]) -> None: ... + def value(self) -> global___ParameterizedType: + ... + + def __init__(self, *, key: global___ParameterizedType | None=..., value: global___ParameterizedType | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['key', b'key', 'nullability', b'nullability', 'value', b'value', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ParameterizedUserDefined(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_POINTER_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_pointer: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - def __init__( - self, - *, - type_pointer: builtins.int = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_pointer", b"type_pointer", "variation_pointer", b"variation_pointer"]) -> None: ... + + def __init__(self, *, type_pointer: builtins.int=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_pointer', b'type_pointer', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class IntegerOption(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - LITERAL_FIELD_NUMBER: builtins.int PARAMETER_FIELD_NUMBER: builtins.int literal: builtins.int + @property - def parameter(self) -> global___ParameterizedType.IntegerParameter: ... - def __init__( - self, - *, - literal: builtins.int = ..., - parameter: global___ParameterizedType.IntegerParameter | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["integer_type", b"integer_type", "literal", b"literal", "parameter", b"parameter"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["integer_type", b"integer_type", "literal", b"literal", "parameter", b"parameter"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["integer_type", b"integer_type"]) -> typing.Literal["literal", "parameter"] | None: ... + def parameter(self) -> global___ParameterizedType.IntegerParameter: + ... + + def __init__(self, *, literal: builtins.int=..., parameter: global___ParameterizedType.IntegerParameter | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['integer_type', b'integer_type', 'literal', b'literal', 'parameter', b'parameter']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['integer_type', b'integer_type', 'literal', b'literal', 'parameter', b'parameter']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['integer_type', b'integer_type']) -> typing.Literal['literal', 'parameter'] | None: + ... BOOL_FIELD_NUMBER: builtins.int I8_FIELD_NUMBER: builtins.int I16_FIELD_NUMBER: builtins.int @@ -418,110 +432,133 @@ class ParameterizedType(google.protobuf.message.Message): USER_DEFINED_POINTER_FIELD_NUMBER: builtins.int TYPE_PARAMETER_FIELD_NUMBER: builtins.int user_defined_pointer: builtins.int - """Deprecated in favor of user_defined, which allows nullability and - variations to be specified. If user_defined_pointer is encountered, - treat it as being non-nullable and having the default variation. - """ + 'Deprecated in favor of user_defined, which allows nullability and\n variations to be specified. If user_defined_pointer is encountered,\n treat it as being non-nullable and having the default variation.\n ' + @property - def bool(self) -> proto.type_pb2.Type.Boolean: ... + def bool(self) -> proto.type_pb2.Type.Boolean: + ... + @property - def i8(self) -> proto.type_pb2.Type.I8: ... + def i8(self) -> proto.type_pb2.Type.I8: + ... + @property - def i16(self) -> proto.type_pb2.Type.I16: ... + def i16(self) -> proto.type_pb2.Type.I16: + ... + @property - def i32(self) -> proto.type_pb2.Type.I32: ... + def i32(self) -> proto.type_pb2.Type.I32: + ... + @property - def i64(self) -> proto.type_pb2.Type.I64: ... + def i64(self) -> proto.type_pb2.Type.I64: + ... + @property - def fp32(self) -> proto.type_pb2.Type.FP32: ... + def fp32(self) -> proto.type_pb2.Type.FP32: + ... + @property - def fp64(self) -> proto.type_pb2.Type.FP64: ... + def fp64(self) -> proto.type_pb2.Type.FP64: + ... + @property - def string(self) -> proto.type_pb2.Type.String: ... + def string(self) -> proto.type_pb2.Type.String: + ... + @property - def binary(self) -> proto.type_pb2.Type.Binary: ... + def binary(self) -> proto.type_pb2.Type.Binary: + ... + @property def timestamp(self) -> proto.type_pb2.Type.Timestamp: """Deprecated in favor of `ParameterizedPrecisionTimestamp precision_timestamp`""" @property - def date(self) -> proto.type_pb2.Type.Date: ... + def date(self) -> proto.type_pb2.Type.Date: + ... + @property def time(self) -> proto.type_pb2.Type.Time: """Deprecated in favor of `ParameterizedPrecisionTime precision_time`""" @property - def interval_year(self) -> proto.type_pb2.Type.IntervalYear: ... + def interval_year(self) -> proto.type_pb2.Type.IntervalYear: + ... + @property - def interval_day(self) -> global___ParameterizedType.ParameterizedIntervalDay: ... + def interval_day(self) -> global___ParameterizedType.ParameterizedIntervalDay: + ... + @property - def interval_compound(self) -> global___ParameterizedType.ParameterizedIntervalCompound: ... + def interval_compound(self) -> global___ParameterizedType.ParameterizedIntervalCompound: + ... + @property def timestamp_tz(self) -> proto.type_pb2.Type.TimestampTZ: """Deprecated in favor of `ParameterizedPrecisionTimestampTZ precision_timestamp_tz`""" @property - def uuid(self) -> proto.type_pb2.Type.UUID: ... + def uuid(self) -> proto.type_pb2.Type.UUID: + ... + @property - def fixed_char(self) -> global___ParameterizedType.ParameterizedFixedChar: ... + def fixed_char(self) -> global___ParameterizedType.ParameterizedFixedChar: + ... + @property - def varchar(self) -> global___ParameterizedType.ParameterizedVarChar: ... + def varchar(self) -> global___ParameterizedType.ParameterizedVarChar: + ... + @property - def fixed_binary(self) -> global___ParameterizedType.ParameterizedFixedBinary: ... + def fixed_binary(self) -> global___ParameterizedType.ParameterizedFixedBinary: + ... + @property - def decimal(self) -> global___ParameterizedType.ParameterizedDecimal: ... + def decimal(self) -> global___ParameterizedType.ParameterizedDecimal: + ... + @property - def precision_time(self) -> global___ParameterizedType.ParameterizedPrecisionTime: ... + def precision_time(self) -> global___ParameterizedType.ParameterizedPrecisionTime: + ... + @property - def precision_timestamp(self) -> global___ParameterizedType.ParameterizedPrecisionTimestamp: ... + def precision_timestamp(self) -> global___ParameterizedType.ParameterizedPrecisionTimestamp: + ... + @property - def precision_timestamp_tz(self) -> global___ParameterizedType.ParameterizedPrecisionTimestampTZ: ... + def precision_timestamp_tz(self) -> global___ParameterizedType.ParameterizedPrecisionTimestampTZ: + ... + @property - def struct(self) -> global___ParameterizedType.ParameterizedStruct: ... + def struct(self) -> global___ParameterizedType.ParameterizedStruct: + ... + @property - def list(self) -> global___ParameterizedType.ParameterizedList: ... + def list(self) -> global___ParameterizedType.ParameterizedList: + ... + @property - def map(self) -> global___ParameterizedType.ParameterizedMap: ... + def map(self) -> global___ParameterizedType.ParameterizedMap: + ... + @property - def user_defined(self) -> global___ParameterizedType.ParameterizedUserDefined: ... + def user_defined(self) -> global___ParameterizedType.ParameterizedUserDefined: + ... + @property - def type_parameter(self) -> global___ParameterizedType.TypeParameter: ... - def __init__( - self, - *, - bool: proto.type_pb2.Type.Boolean | None = ..., - i8: proto.type_pb2.Type.I8 | None = ..., - i16: proto.type_pb2.Type.I16 | None = ..., - i32: proto.type_pb2.Type.I32 | None = ..., - i64: proto.type_pb2.Type.I64 | None = ..., - fp32: proto.type_pb2.Type.FP32 | None = ..., - fp64: proto.type_pb2.Type.FP64 | None = ..., - string: proto.type_pb2.Type.String | None = ..., - binary: proto.type_pb2.Type.Binary | None = ..., - timestamp: proto.type_pb2.Type.Timestamp | None = ..., - date: proto.type_pb2.Type.Date | None = ..., - time: proto.type_pb2.Type.Time | None = ..., - interval_year: proto.type_pb2.Type.IntervalYear | None = ..., - interval_day: global___ParameterizedType.ParameterizedIntervalDay | None = ..., - interval_compound: global___ParameterizedType.ParameterizedIntervalCompound | None = ..., - timestamp_tz: proto.type_pb2.Type.TimestampTZ | None = ..., - uuid: proto.type_pb2.Type.UUID | None = ..., - fixed_char: global___ParameterizedType.ParameterizedFixedChar | None = ..., - varchar: global___ParameterizedType.ParameterizedVarChar | None = ..., - fixed_binary: global___ParameterizedType.ParameterizedFixedBinary | None = ..., - decimal: global___ParameterizedType.ParameterizedDecimal | None = ..., - precision_time: global___ParameterizedType.ParameterizedPrecisionTime | None = ..., - precision_timestamp: global___ParameterizedType.ParameterizedPrecisionTimestamp | None = ..., - precision_timestamp_tz: global___ParameterizedType.ParameterizedPrecisionTimestampTZ | None = ..., - struct: global___ParameterizedType.ParameterizedStruct | None = ..., - list: global___ParameterizedType.ParameterizedList | None = ..., - map: global___ParameterizedType.ParameterizedMap | None = ..., - user_defined: global___ParameterizedType.ParameterizedUserDefined | None = ..., - user_defined_pointer: builtins.int = ..., - type_parameter: global___ParameterizedType.TypeParameter | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["binary", b"binary", "bool", b"bool", "date", b"date", "decimal", b"decimal", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "interval_compound", b"interval_compound", "interval_day", b"interval_day", "interval_year", b"interval_year", "kind", b"kind", "list", b"list", "map", b"map", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "type_parameter", b"type_parameter", "user_defined", b"user_defined", "user_defined_pointer", b"user_defined_pointer", "uuid", b"uuid", "varchar", b"varchar"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["binary", b"binary", "bool", b"bool", "date", b"date", "decimal", b"decimal", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "interval_compound", b"interval_compound", "interval_day", b"interval_day", "interval_year", b"interval_year", "kind", b"kind", "list", b"list", "map", b"map", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "type_parameter", b"type_parameter", "user_defined", b"user_defined", "user_defined_pointer", b"user_defined_pointer", "uuid", b"uuid", "varchar", b"varchar"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["kind", b"kind"]) -> typing.Literal["bool", "i8", "i16", "i32", "i64", "fp32", "fp64", "string", "binary", "timestamp", "date", "time", "interval_year", "interval_day", "interval_compound", "timestamp_tz", "uuid", "fixed_char", "varchar", "fixed_binary", "decimal", "precision_time", "precision_timestamp", "precision_timestamp_tz", "struct", "list", "map", "user_defined", "user_defined_pointer", "type_parameter"] | None: ... - -global___ParameterizedType = ParameterizedType + def type_parameter(self) -> global___ParameterizedType.TypeParameter: + ... + + def __init__(self, *, bool: proto.type_pb2.Type.Boolean | None=..., i8: proto.type_pb2.Type.I8 | None=..., i16: proto.type_pb2.Type.I16 | None=..., i32: proto.type_pb2.Type.I32 | None=..., i64: proto.type_pb2.Type.I64 | None=..., fp32: proto.type_pb2.Type.FP32 | None=..., fp64: proto.type_pb2.Type.FP64 | None=..., string: proto.type_pb2.Type.String | None=..., binary: proto.type_pb2.Type.Binary | None=..., timestamp: proto.type_pb2.Type.Timestamp | None=..., date: proto.type_pb2.Type.Date | None=..., time: proto.type_pb2.Type.Time | None=..., interval_year: proto.type_pb2.Type.IntervalYear | None=..., interval_day: global___ParameterizedType.ParameterizedIntervalDay | None=..., interval_compound: global___ParameterizedType.ParameterizedIntervalCompound | None=..., timestamp_tz: proto.type_pb2.Type.TimestampTZ | None=..., uuid: proto.type_pb2.Type.UUID | None=..., fixed_char: global___ParameterizedType.ParameterizedFixedChar | None=..., varchar: global___ParameterizedType.ParameterizedVarChar | None=..., fixed_binary: global___ParameterizedType.ParameterizedFixedBinary | None=..., decimal: global___ParameterizedType.ParameterizedDecimal | None=..., precision_time: global___ParameterizedType.ParameterizedPrecisionTime | None=..., precision_timestamp: global___ParameterizedType.ParameterizedPrecisionTimestamp | None=..., precision_timestamp_tz: global___ParameterizedType.ParameterizedPrecisionTimestampTZ | None=..., struct: global___ParameterizedType.ParameterizedStruct | None=..., list: global___ParameterizedType.ParameterizedList | None=..., map: global___ParameterizedType.ParameterizedMap | None=..., user_defined: global___ParameterizedType.ParameterizedUserDefined | None=..., user_defined_pointer: builtins.int=..., type_parameter: global___ParameterizedType.TypeParameter | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter', b'type_parameter', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter', b'type_parameter', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['kind', b'kind']) -> typing.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'interval_compound', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'precision_time', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'list', 'map', 'user_defined', 'user_defined_pointer', 'type_parameter'] | None: + ... +global___ParameterizedType = ParameterizedType \ No newline at end of file diff --git a/src/substrait/gen/proto/plan_pb2.py b/src/substrait/gen/proto/plan_pb2.py index eae3fb0..357716b 100644 --- a/src/substrait/gen/proto/plan_pb2.py +++ b/src/substrait/gen/proto/plan_pb2.py @@ -1,50 +1,30 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: proto/plan.proto -# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 5, - '', - 'proto/plan.proto' -) -# @@protoc_insertion_point(imports) - +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/plan.proto') _sym_db = _symbol_database.Default() - - -from proto import algebra_pb2 as proto_dot_algebra__pb2 -from proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 -from proto import type_pb2 as proto_dot_type__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/plan.proto\x12\x05proto\x1a\x13proto/algebra.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/type.proto\"[\n\x07PlanRel\x12\x1e\n\x03rel\x18\x01 \x01(\x0b\x32\n.proto.RelH\x00R\x03rel\x12$\n\x04root\x18\x02 \x01(\x0b\x32\x0e.proto.RelRootH\x00R\x04rootB\n\n\x08rel_type\"\xd2\x04\n\x04Plan\x12(\n\x07version\x18\x06 \x01(\x0b\x32\x0e.proto.VersionR\x07version\x12O\n\x0e\x65xtension_uris\x18\x01 \x03(\x0b\x32$.proto.extensions.SimpleExtensionURIB\x02\x18\x01R\rextensionUris\x12K\n\x0e\x65xtension_urns\x18\x08 \x03(\x0b\x32$.proto.extensions.SimpleExtensionURNR\rextensionUrns\x12L\n\nextensions\x18\x02 \x03(\x0b\x32,.proto.extensions.SimpleExtensionDeclarationR\nextensions\x12,\n\trelations\x18\x03 \x03(\x0b\x32\x0e.proto.PlanRelR\trelations\x12T\n\x13\x61\x64vanced_extensions\x18\x04 \x01(\x0b\x32#.proto.extensions.AdvancedExtensionR\x12\x61\x64vancedExtensions\x12,\n\x12\x65xpected_type_urls\x18\x05 \x03(\tR\x10\x65xpectedTypeUrls\x12M\n\x12parameter_bindings\x18\x07 \x03(\x0b\x32\x1e.proto.DynamicParameterBindingR\x11parameterBindings\x12\x33\n\x0ctype_aliases\x18\t \x03(\x0b\x32\x10.proto.TypeAliasR\x0btypeAliases\"7\n\x0bPlanVersion\x12(\n\x07version\x18\x06 \x01(\x0b\x32\x0e.proto.VersionR\x07version\"\xa9\x01\n\x07Version\x12!\n\x0cmajor_number\x18\x01 \x01(\rR\x0bmajorNumber\x12!\n\x0cminor_number\x18\x02 \x01(\rR\x0bminorNumber\x12!\n\x0cpatch_number\x18\x03 \x01(\rR\x0bpatchNumber\x12\x19\n\x08git_hash\x18\x04 \x01(\tR\x07gitHash\x12\x1a\n\x08producer\x18\x05 \x01(\tR\x08producer\"u\n\x17\x44ynamicParameterBinding\x12)\n\x10parameter_anchor\x18\x01 \x01(\rR\x0fparameterAnchor\x12/\n\x05value\x18\x02 \x01(\x0b\x32\x19.proto.Expression.LiteralR\x05valueB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') - +from ..proto import algebra_pb2 as proto_dot_algebra__pb2 +from ..proto.extensions import extensions_pb2 as proto_dot_extensions_dot_extensions__pb2 +from ..proto import type_pb2 as proto_dot_type__pb2 +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/plan.proto\x12\x05proto\x1a\x13proto/algebra.proto\x1a!proto/extensions/extensions.proto\x1a\x10proto/type.proto"[\n\x07PlanRel\x12\x1e\n\x03rel\x18\x01 \x01(\x0b2\n.proto.RelH\x00R\x03rel\x12$\n\x04root\x18\x02 \x01(\x0b2\x0e.proto.RelRootH\x00R\x04rootB\n\n\x08rel_type"\xd2\x04\n\x04Plan\x12(\n\x07version\x18\x06 \x01(\x0b2\x0e.proto.VersionR\x07version\x12O\n\x0eextension_uris\x18\x01 \x03(\x0b2$.proto.extensions.SimpleExtensionURIB\x02\x18\x01R\rextensionUris\x12K\n\x0eextension_urns\x18\x08 \x03(\x0b2$.proto.extensions.SimpleExtensionURNR\rextensionUrns\x12L\n\nextensions\x18\x02 \x03(\x0b2,.proto.extensions.SimpleExtensionDeclarationR\nextensions\x12,\n\trelations\x18\x03 \x03(\x0b2\x0e.proto.PlanRelR\trelations\x12T\n\x13advanced_extensions\x18\x04 \x01(\x0b2#.proto.extensions.AdvancedExtensionR\x12advancedExtensions\x12,\n\x12expected_type_urls\x18\x05 \x03(\tR\x10expectedTypeUrls\x12M\n\x12parameter_bindings\x18\x07 \x03(\x0b2\x1e.proto.DynamicParameterBindingR\x11parameterBindings\x123\n\x0ctype_aliases\x18\t \x03(\x0b2\x10.proto.TypeAliasR\x0btypeAliases"7\n\x0bPlanVersion\x12(\n\x07version\x18\x06 \x01(\x0b2\x0e.proto.VersionR\x07version"\xa9\x01\n\x07Version\x12!\n\x0cmajor_number\x18\x01 \x01(\rR\x0bmajorNumber\x12!\n\x0cminor_number\x18\x02 \x01(\rR\x0bminorNumber\x12!\n\x0cpatch_number\x18\x03 \x01(\rR\x0bpatchNumber\x12\x19\n\x08git_hash\x18\x04 \x01(\tR\x07gitHash\x12\x1a\n\x08producer\x18\x05 \x01(\tR\x08producer"u\n\x17DynamicParameterBinding\x12)\n\x10parameter_anchor\x18\x01 \x01(\rR\x0fparameterAnchor\x12/\n\x05value\x18\x02 \x01(\x0b2\x19.proto.Expression.LiteralR\x05valueB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.plan_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' - _globals['_PLAN'].fields_by_name['extension_uris']._loaded_options = None - _globals['_PLAN'].fields_by_name['extension_uris']._serialized_options = b'\030\001' - _globals['_PLANREL']._serialized_start=101 - _globals['_PLANREL']._serialized_end=192 - _globals['_PLAN']._serialized_start=195 - _globals['_PLAN']._serialized_end=789 - _globals['_PLANVERSION']._serialized_start=791 - _globals['_PLANVERSION']._serialized_end=846 - _globals['_VERSION']._serialized_start=849 - _globals['_VERSION']._serialized_end=1018 - _globals['_DYNAMICPARAMETERBINDING']._serialized_start=1020 - _globals['_DYNAMICPARAMETERBINDING']._serialized_end=1137 -# @@protoc_insertion_point(module_scope) + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _globals['_PLAN'].fields_by_name['extension_uris']._loaded_options = None + _globals['_PLAN'].fields_by_name['extension_uris']._serialized_options = b'\x18\x01' + _globals['_PLANREL']._serialized_start = 101 + _globals['_PLANREL']._serialized_end = 192 + _globals['_PLAN']._serialized_start = 195 + _globals['_PLAN']._serialized_end = 789 + _globals['_PLANVERSION']._serialized_start = 791 + _globals['_PLANVERSION']._serialized_end = 846 + _globals['_VERSION']._serialized_start = 849 + _globals['_VERSION']._serialized_end = 1018 + _globals['_DYNAMICPARAMETERBINDING']._serialized_start = 1020 + _globals['_DYNAMICPARAMETERBINDING']._serialized_end = 1137 \ No newline at end of file diff --git a/src/substrait/gen/proto/plan_pb2.pyi b/src/substrait/gen/proto/plan_pb2.pyi index c1198f6..fedd441 100644 --- a/src/substrait/gen/proto/plan_pb2.pyi +++ b/src/substrait/gen/proto/plan_pb2.pyi @@ -2,27 +2,22 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" - import builtins import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.message -import proto.algebra_pb2 -import proto.extensions.extensions_pb2 -import proto.type_pb2 +from .. import proto import typing - DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final class PlanRel(google.protobuf.message.Message): """Either a relation or root relation""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - REL_FIELD_NUMBER: builtins.int ROOT_FIELD_NUMBER: builtins.int + @property def rel(self) -> proto.algebra_pb2.Rel: """Any relation (used for references and CTEs)""" @@ -31,16 +26,17 @@ class PlanRel(google.protobuf.message.Message): def root(self) -> proto.algebra_pb2.RelRoot: """The root of a relation tree""" - def __init__( - self, - *, - rel: proto.algebra_pb2.Rel | None = ..., - root: proto.algebra_pb2.RelRoot | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["rel", b"rel", "rel_type", b"rel_type", "root", b"root"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["rel", b"rel", "rel_type", b"rel_type", "root", b"root"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["rel_type", b"rel_type"]) -> typing.Literal["rel", "root"] | None: ... + def __init__(self, *, rel: proto.algebra_pb2.Rel | None=..., root: proto.algebra_pb2.RelRoot | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['rel', b'rel', 'rel_type', b'rel_type', 'root', b'root']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['rel', b'rel', 'rel_type', b'rel_type', 'root', b'root']) -> None: + ... + def WhichOneof(self, oneof_group: typing.Literal['rel_type', b'rel_type']) -> typing.Literal['rel', 'root'] | None: + ... global___PlanRel = PlanRel @typing.final @@ -48,9 +44,7 @@ class Plan(google.protobuf.message.Message): """Describe a set of operations to complete. For compactness sake, identifiers are normalized at the plan level. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VERSION_FIELD_NUMBER: builtins.int EXTENSION_URIS_FIELD_NUMBER: builtins.int EXTENSION_URNS_FIELD_NUMBER: builtins.int @@ -60,6 +54,7 @@ class Plan(google.protobuf.message.Message): EXPECTED_TYPE_URLS_FIELD_NUMBER: builtins.int PARAMETER_BINDINGS_FIELD_NUMBER: builtins.int TYPE_ALIASES_FIELD_NUMBER: builtins.int + @property def version(self) -> global___Version: """Substrait version of the plan. Optional up to 0.17.0, required for later @@ -114,22 +109,14 @@ class Plan(google.protobuf.message.Message): many fields, nested parameterized types, string as a type parameter). """ - def __init__( - self, - *, - version: global___Version | None = ..., - extension_uris: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURI] | None = ..., - extension_urns: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURN] | None = ..., - extensions: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionDeclaration] | None = ..., - relations: collections.abc.Iterable[global___PlanRel] | None = ..., - advanced_extensions: proto.extensions.extensions_pb2.AdvancedExtension | None = ..., - expected_type_urls: collections.abc.Iterable[builtins.str] | None = ..., - parameter_bindings: collections.abc.Iterable[global___DynamicParameterBinding] | None = ..., - type_aliases: collections.abc.Iterable[proto.type_pb2.TypeAlias] | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["advanced_extensions", b"advanced_extensions", "version", b"version"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["advanced_extensions", b"advanced_extensions", "expected_type_urls", b"expected_type_urls", "extension_uris", b"extension_uris", "extension_urns", b"extension_urns", "extensions", b"extensions", "parameter_bindings", b"parameter_bindings", "relations", b"relations", "type_aliases", b"type_aliases", "version", b"version"]) -> None: ... + def __init__(self, *, version: global___Version | None=..., extension_uris: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURI] | None=..., extension_urns: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionURN] | None=..., extensions: collections.abc.Iterable[proto.extensions.extensions_pb2.SimpleExtensionDeclaration] | None=..., relations: collections.abc.Iterable[global___PlanRel] | None=..., advanced_extensions: proto.extensions.extensions_pb2.AdvancedExtension | None=..., expected_type_urls: collections.abc.Iterable[builtins.str] | None=..., parameter_bindings: collections.abc.Iterable[global___DynamicParameterBinding] | None=..., type_aliases: collections.abc.Iterable[proto.type_pb2.TypeAlias] | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['advanced_extensions', b'advanced_extensions', 'version', b'version']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['advanced_extensions', b'advanced_extensions', 'expected_type_urls', b'expected_type_urls', 'extension_uris', b'extension_uris', 'extension_urns', b'extension_urns', 'extensions', b'extensions', 'parameter_bindings', b'parameter_bindings', 'relations', b'relations', 'type_aliases', b'type_aliases', 'version', b'version']) -> None: + ... global___Plan = Plan @typing.final @@ -140,75 +127,56 @@ class PlanVersion(google.protobuf.message.Message): the Substrait version used to deserialize it, such that a consumer can emit a more helpful error message in this case. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - VERSION_FIELD_NUMBER: builtins.int + @property - def version(self) -> global___Version: ... - def __init__( - self, - *, - version: global___Version | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["version", b"version"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["version", b"version"]) -> None: ... + def version(self) -> global___Version: + ... + + def __init__(self, *, version: global___Version | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['version', b'version']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['version', b'version']) -> None: + ... global___PlanVersion = PlanVersion @typing.final class Version(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - MAJOR_NUMBER_FIELD_NUMBER: builtins.int MINOR_NUMBER_FIELD_NUMBER: builtins.int PATCH_NUMBER_FIELD_NUMBER: builtins.int GIT_HASH_FIELD_NUMBER: builtins.int PRODUCER_FIELD_NUMBER: builtins.int major_number: builtins.int - """Substrait version number.""" + 'Substrait version number.' minor_number: builtins.int patch_number: builtins.int git_hash: builtins.str - """If a particular version of Substrait is used that does not correspond to - a version number exactly (for example when using an unofficial fork or - using a version that is not yet released or is between versions), set this - to the full git hash of the utilized commit of - https://github.com/substrait-io/substrait (or fork thereof), represented - using a lowercase hex ASCII string 40 characters in length. The version - number above should be set to the most recent version tag in the history - of that commit. - """ + 'If a particular version of Substrait is used that does not correspond to\n a version number exactly (for example when using an unofficial fork or\n using a version that is not yet released or is between versions), set this\n to the full git hash of the utilized commit of\n https://github.com/substrait-io/substrait (or fork thereof), represented\n using a lowercase hex ASCII string 40 characters in length. The version\n number above should be set to the most recent version tag in the history\n of that commit.\n ' producer: builtins.str - """Identifying information for the producer that created this plan. Under - ideal circumstances, consumers should not need this information. However, - it is foreseen that consumers may need to work around bugs in particular - producers in practice, and therefore may need to know which producer - created the plan. - """ - def __init__( - self, - *, - major_number: builtins.int = ..., - minor_number: builtins.int = ..., - patch_number: builtins.int = ..., - git_hash: builtins.str = ..., - producer: builtins.str = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["git_hash", b"git_hash", "major_number", b"major_number", "minor_number", b"minor_number", "patch_number", b"patch_number", "producer", b"producer"]) -> None: ... + 'Identifying information for the producer that created this plan. Under\n ideal circumstances, consumers should not need this information. However,\n it is foreseen that consumers may need to work around bugs in particular\n producers in practice, and therefore may need to know which producer\n created the plan.\n ' + + def __init__(self, *, major_number: builtins.int=..., minor_number: builtins.int=..., patch_number: builtins.int=..., git_hash: builtins.str=..., producer: builtins.str=...) -> None: + ... + def ClearField(self, field_name: typing.Literal['git_hash', b'git_hash', 'major_number', b'major_number', 'minor_number', b'minor_number', 'patch_number', b'patch_number', 'producer', b'producer']) -> None: + ... global___Version = Version @typing.final class DynamicParameterBinding(google.protobuf.message.Message): """Represents a binding for a dynamic parameter.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - PARAMETER_ANCHOR_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int parameter_anchor: builtins.int - """The parameter anchor that identifies the dynamic parameter reference.""" + 'The parameter anchor that identifies the dynamic parameter reference.' + @property def value(self) -> proto.algebra_pb2.Expression.Literal: """The literal value assigned to the parameter at runtime. @@ -216,13 +184,12 @@ class DynamicParameterBinding(google.protobuf.message.Message): DynamicParameter expression in the plan. """ - def __init__( - self, - *, - parameter_anchor: builtins.int = ..., - value: proto.algebra_pb2.Expression.Literal | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["parameter_anchor", b"parameter_anchor", "value", b"value"]) -> None: ... + def __init__(self, *, parameter_anchor: builtins.int=..., value: proto.algebra_pb2.Expression.Literal | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['value', b'value']) -> builtins.bool: + ... -global___DynamicParameterBinding = DynamicParameterBinding + def ClearField(self, field_name: typing.Literal['parameter_anchor', b'parameter_anchor', 'value', b'value']) -> None: + ... +global___DynamicParameterBinding = DynamicParameterBinding \ No newline at end of file diff --git a/src/substrait/gen/proto/type_expressions_pb2.py b/src/substrait/gen/proto/type_expressions_pb2.py index 6af47ed..c1adae7 100644 --- a/src/substrait/gen/proto/type_expressions_pb2.py +++ b/src/substrait/gen/proto/type_expressions_pb2.py @@ -1,88 +1,68 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: proto/type_expressions.proto -# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 5, - '', - 'proto/type_expressions.proto' -) -# @@protoc_insertion_point(imports) - +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/type_expressions.proto') _sym_db = _symbol_database.Default() - - -from proto import type_pb2 as proto_dot_type__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cproto/type_expressions.proto\x12\x05proto\x1a\x10proto/type.proto\"\xfc/\n\x14\x44\x65rivationExpression\x12)\n\x04\x62ool\x18\x01 \x01(\x0b\x32\x13.proto.Type.BooleanH\x00R\x04\x62ool\x12 \n\x02i8\x18\x02 \x01(\x0b\x32\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b\x32\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b\x32\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b\x32\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04\x66p32\x18\n \x01(\x0b\x32\x10.proto.Type.FP32H\x00R\x04\x66p32\x12&\n\x04\x66p64\x18\x0b \x01(\x0b\x32\x10.proto.Type.FP64H\x00R\x04\x66p64\x12,\n\x06string\x18\x0c \x01(\x0b\x32\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06\x62inary\x18\r \x01(\x0b\x32\x12.proto.Type.BinaryH\x00R\x06\x62inary\x12\x39\n\ttimestamp\x18\x0e \x01(\x0b\x32\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04\x64\x61te\x18\x10 \x01(\x0b\x32\x10.proto.Type.DateH\x00R\x04\x64\x61te\x12*\n\x04time\x18\x11 \x01(\x0b\x32\x10.proto.Type.TimeB\x02\x18\x01H\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b\x32\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b\x32\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b\x32\x10.proto.Type.UUIDH\x00R\x04uuid\x12V\n\x0cinterval_day\x18\x14 \x01(\x0b\x32\x31.proto.DerivationExpression.ExpressionIntervalDayH\x00R\x0bintervalDay\x12\x65\n\x11interval_compound\x18* \x01(\x0b\x32\x36.proto.DerivationExpression.ExpressionIntervalCompoundH\x00R\x10intervalCompound\x12P\n\nfixed_char\x18\x15 \x01(\x0b\x32/.proto.DerivationExpression.ExpressionFixedCharH\x00R\tfixedChar\x12I\n\x07varchar\x18\x16 \x01(\x0b\x32-.proto.DerivationExpression.ExpressionVarCharH\x00R\x07varchar\x12V\n\x0c\x66ixed_binary\x18\x17 \x01(\x0b\x32\x31.proto.DerivationExpression.ExpressionFixedBinaryH\x00R\x0b\x66ixedBinary\x12I\n\x07\x64\x65\x63imal\x18\x18 \x01(\x0b\x32-.proto.DerivationExpression.ExpressionDecimalH\x00R\x07\x64\x65\x63imal\x12\\\n\x0eprecision_time\x18+ \x01(\x0b\x32\x33.proto.DerivationExpression.ExpressionPrecisionTimeH\x00R\rprecisionTime\x12k\n\x13precision_timestamp\x18( \x01(\x0b\x32\x38.proto.DerivationExpression.ExpressionPrecisionTimestampH\x00R\x12precisionTimestamp\x12r\n\x16precision_timestamp_tz\x18) \x01(\x0b\x32:.proto.DerivationExpression.ExpressionPrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12\x46\n\x06struct\x18\x19 \x01(\x0b\x32,.proto.DerivationExpression.ExpressionStructH\x00R\x06struct\x12@\n\x04list\x18\x1b \x01(\x0b\x32*.proto.DerivationExpression.ExpressionListH\x00R\x04list\x12=\n\x03map\x18\x1c \x01(\x0b\x32).proto.DerivationExpression.ExpressionMapH\x00R\x03map\x12V\n\x0cuser_defined\x18\x1e \x01(\x0b\x32\x31.proto.DerivationExpression.ExpressionUserDefinedH\x00R\x0buserDefined\x12\x36\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x12\x30\n\x13type_parameter_name\x18! \x01(\tH\x00R\x11typeParameterName\x12\x36\n\x16integer_parameter_name\x18\" \x01(\tH\x00R\x14integerParameterName\x12)\n\x0finteger_literal\x18# \x01(\x05H\x00R\x0eintegerLiteral\x12@\n\x08unary_op\x18$ \x01(\x0b\x32#.proto.DerivationExpression.UnaryOpH\x00R\x07unaryOp\x12\x43\n\tbinary_op\x18% \x01(\x0b\x32$.proto.DerivationExpression.BinaryOpH\x00R\x08\x62inaryOp\x12=\n\x07if_else\x18& \x01(\x0b\x32\".proto.DerivationExpression.IfElseH\x00R\x06ifElse\x12R\n\x0ereturn_program\x18\' \x01(\x0b\x32).proto.DerivationExpression.ReturnProgramH\x00R\rreturnProgram\x1a\xb2\x01\n\x13\x45xpressionFixedChar\x12\x33\n\x06length\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb0\x01\n\x11\x45xpressionVarChar\x12\x33\n\x06length\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb4\x01\n\x15\x45xpressionFixedBinary\x12\x33\n\x06length\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x11\x45xpressionDecimal\x12\x31\n\x05scale\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x05scale\x12\x39\n\tprecision\x18\x02 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x04 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x17\x45xpressionPrecisionTime\x12\x39\n\tprecision\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc1\x01\n\x1c\x45xpressionPrecisionTimestamp\x12\x39\n\tprecision\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xba\x01\n\x15\x45xpressionIntervalDay\x12\x39\n\tprecision\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbf\x01\n\x1a\x45xpressionIntervalCompound\x12\x39\n\tprecision\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc3\x01\n\x1e\x45xpressionPrecisionTimestampTZ\x12\x39\n\tprecision\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xad\x01\n\x10\x45xpressionStruct\x12\x31\n\x05types\x18\x01 \x03(\x0b\x32\x1b.proto.DerivationExpressionR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1as\n\x15\x45xpressionNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12\x44\n\x06struct\x18\x02 \x01(\x0b\x32,.proto.DerivationExpression.ExpressionStructR\x06struct\x1a\xa9\x01\n\x0e\x45xpressionList\x12/\n\x04type\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd9\x01\n\rExpressionMap\x12-\n\x03key\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x03key\x12\x31\n\x05value\x18\x02 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x04 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa2\x01\n\x15\x45xpressionUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc0\x01\n\x06IfElse\x12>\n\x0cif_condition\x18\x01 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x0bifCondition\x12\x38\n\tif_return\x18\x02 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x08ifReturn\x12<\n\x0b\x65lse_return\x18\x03 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\nelseReturn\x1a\xcf\x01\n\x07UnaryOp\x12H\n\x07op_type\x18\x01 \x01(\x0e\x32/.proto.DerivationExpression.UnaryOp.UnaryOpTypeR\x06opType\x12-\n\x03\x61rg\x18\x02 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x03\x61rg\"K\n\x0bUnaryOpType\x12\x1d\n\x19UNARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19UNARY_OP_TYPE_BOOLEAN_NOT\x10\x01\x1a\xa8\x04\n\x08\x42inaryOp\x12J\n\x07op_type\x18\x01 \x01(\x0e\x32\x31.proto.DerivationExpression.BinaryOp.BinaryOpTypeR\x06opType\x12/\n\x04\x61rg1\x18\x02 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x04\x61rg1\x12/\n\x04\x61rg2\x18\x03 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x04\x61rg2\"\xed\x02\n\x0c\x42inaryOpType\x12\x1e\n\x1a\x42INARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13\x42INARY_OP_TYPE_PLUS\x10\x01\x12\x18\n\x14\x42INARY_OP_TYPE_MINUS\x10\x02\x12\x1b\n\x17\x42INARY_OP_TYPE_MULTIPLY\x10\x03\x12\x19\n\x15\x42INARY_OP_TYPE_DIVIDE\x10\x04\x12\x16\n\x12\x42INARY_OP_TYPE_MIN\x10\x05\x12\x16\n\x12\x42INARY_OP_TYPE_MAX\x10\x06\x12\x1f\n\x1b\x42INARY_OP_TYPE_GREATER_THAN\x10\x07\x12\x1c\n\x18\x42INARY_OP_TYPE_LESS_THAN\x10\x08\x12\x16\n\x12\x42INARY_OP_TYPE_AND\x10\t\x12\x15\n\x11\x42INARY_OP_TYPE_OR\x10\n\x12\x19\n\x15\x42INARY_OP_TYPE_EQUALS\x10\x0b\x12\x19\n\x15\x42INARY_OP_TYPE_COVERS\x10\x0c\x1a\x8e\x02\n\rReturnProgram\x12V\n\x0b\x61ssignments\x18\x01 \x03(\x0b\x32\x34.proto.DerivationExpression.ReturnProgram.AssignmentR\x0b\x61ssignments\x12\x46\n\x10\x66inal_expression\x18\x02 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\x0f\x66inalExpression\x1a]\n\nAssignment\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12;\n\nexpression\x18\x02 \x01(\x0b\x32\x1b.proto.DerivationExpressionR\nexpressionB\x06\n\x04kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') - +from ..proto import type_pb2 as proto_dot_type__pb2 +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1cproto/type_expressions.proto\x12\x05proto\x1a\x10proto/type.proto"\xfc/\n\x14DerivationExpression\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12*\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeB\x02\x18\x01H\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x12V\n\x0cinterval_day\x18\x14 \x01(\x0b21.proto.DerivationExpression.ExpressionIntervalDayH\x00R\x0bintervalDay\x12e\n\x11interval_compound\x18* \x01(\x0b26.proto.DerivationExpression.ExpressionIntervalCompoundH\x00R\x10intervalCompound\x12P\n\nfixed_char\x18\x15 \x01(\x0b2/.proto.DerivationExpression.ExpressionFixedCharH\x00R\tfixedChar\x12I\n\x07varchar\x18\x16 \x01(\x0b2-.proto.DerivationExpression.ExpressionVarCharH\x00R\x07varchar\x12V\n\x0cfixed_binary\x18\x17 \x01(\x0b21.proto.DerivationExpression.ExpressionFixedBinaryH\x00R\x0bfixedBinary\x12I\n\x07decimal\x18\x18 \x01(\x0b2-.proto.DerivationExpression.ExpressionDecimalH\x00R\x07decimal\x12\\\n\x0eprecision_time\x18+ \x01(\x0b23.proto.DerivationExpression.ExpressionPrecisionTimeH\x00R\rprecisionTime\x12k\n\x13precision_timestamp\x18( \x01(\x0b28.proto.DerivationExpression.ExpressionPrecisionTimestampH\x00R\x12precisionTimestamp\x12r\n\x16precision_timestamp_tz\x18) \x01(\x0b2:.proto.DerivationExpression.ExpressionPrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12F\n\x06struct\x18\x19 \x01(\x0b2,.proto.DerivationExpression.ExpressionStructH\x00R\x06struct\x12@\n\x04list\x18\x1b \x01(\x0b2*.proto.DerivationExpression.ExpressionListH\x00R\x04list\x12=\n\x03map\x18\x1c \x01(\x0b2).proto.DerivationExpression.ExpressionMapH\x00R\x03map\x12V\n\x0cuser_defined\x18\x1e \x01(\x0b21.proto.DerivationExpression.ExpressionUserDefinedH\x00R\x0buserDefined\x126\n\x14user_defined_pointer\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x12userDefinedPointer\x120\n\x13type_parameter_name\x18! \x01(\tH\x00R\x11typeParameterName\x126\n\x16integer_parameter_name\x18" \x01(\tH\x00R\x14integerParameterName\x12)\n\x0finteger_literal\x18# \x01(\x05H\x00R\x0eintegerLiteral\x12@\n\x08unary_op\x18$ \x01(\x0b2#.proto.DerivationExpression.UnaryOpH\x00R\x07unaryOp\x12C\n\tbinary_op\x18% \x01(\x0b2$.proto.DerivationExpression.BinaryOpH\x00R\x08binaryOp\x12=\n\x07if_else\x18& \x01(\x0b2".proto.DerivationExpression.IfElseH\x00R\x06ifElse\x12R\n\x0ereturn_program\x18\' \x01(\x0b2).proto.DerivationExpression.ReturnProgramH\x00R\rreturnProgram\x1a\xb2\x01\n\x13ExpressionFixedChar\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb0\x01\n\x11ExpressionVarChar\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb4\x01\n\x15ExpressionFixedBinary\x123\n\x06length\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x06length\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x11ExpressionDecimal\x121\n\x05scale\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x05scale\x129\n\tprecision\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x17ExpressionPrecisionTime\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc1\x01\n\x1cExpressionPrecisionTimestamp\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xba\x01\n\x15ExpressionIntervalDay\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbf\x01\n\x1aExpressionIntervalCompound\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc3\x01\n\x1eExpressionPrecisionTimestampTZ\x129\n\tprecision\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\tprecision\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xad\x01\n\x10ExpressionStruct\x121\n\x05types\x18\x01 \x03(\x0b2\x1b.proto.DerivationExpressionR\x05types\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1as\n\x15ExpressionNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12D\n\x06struct\x18\x02 \x01(\x0b2,.proto.DerivationExpression.ExpressionStructR\x06struct\x1a\xa9\x01\n\x0eExpressionList\x12/\n\x04type\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04type\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xd9\x01\n\rExpressionMap\x12-\n\x03key\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x03key\x121\n\x05value\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x05value\x12+\n\x11variation_pointer\x18\x03 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa2\x01\n\x15ExpressionUserDefined\x12!\n\x0ctype_pointer\x18\x01 \x01(\rR\x0btypePointer\x12+\n\x11variation_pointer\x18\x02 \x01(\rR\x10variationPointer\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xc0\x01\n\x06IfElse\x12>\n\x0cif_condition\x18\x01 \x01(\x0b2\x1b.proto.DerivationExpressionR\x0bifCondition\x128\n\tif_return\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x08ifReturn\x12<\n\x0belse_return\x18\x03 \x01(\x0b2\x1b.proto.DerivationExpressionR\nelseReturn\x1a\xcf\x01\n\x07UnaryOp\x12H\n\x07op_type\x18\x01 \x01(\x0e2/.proto.DerivationExpression.UnaryOp.UnaryOpTypeR\x06opType\x12-\n\x03arg\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x03arg"K\n\x0bUnaryOpType\x12\x1d\n\x19UNARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x1d\n\x19UNARY_OP_TYPE_BOOLEAN_NOT\x10\x01\x1a\xa8\x04\n\x08BinaryOp\x12J\n\x07op_type\x18\x01 \x01(\x0e21.proto.DerivationExpression.BinaryOp.BinaryOpTypeR\x06opType\x12/\n\x04arg1\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04arg1\x12/\n\x04arg2\x18\x03 \x01(\x0b2\x1b.proto.DerivationExpressionR\x04arg2"\xed\x02\n\x0cBinaryOpType\x12\x1e\n\x1aBINARY_OP_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13BINARY_OP_TYPE_PLUS\x10\x01\x12\x18\n\x14BINARY_OP_TYPE_MINUS\x10\x02\x12\x1b\n\x17BINARY_OP_TYPE_MULTIPLY\x10\x03\x12\x19\n\x15BINARY_OP_TYPE_DIVIDE\x10\x04\x12\x16\n\x12BINARY_OP_TYPE_MIN\x10\x05\x12\x16\n\x12BINARY_OP_TYPE_MAX\x10\x06\x12\x1f\n\x1bBINARY_OP_TYPE_GREATER_THAN\x10\x07\x12\x1c\n\x18BINARY_OP_TYPE_LESS_THAN\x10\x08\x12\x16\n\x12BINARY_OP_TYPE_AND\x10\t\x12\x15\n\x11BINARY_OP_TYPE_OR\x10\n\x12\x19\n\x15BINARY_OP_TYPE_EQUALS\x10\x0b\x12\x19\n\x15BINARY_OP_TYPE_COVERS\x10\x0c\x1a\x8e\x02\n\rReturnProgram\x12V\n\x0bassignments\x18\x01 \x03(\x0b24.proto.DerivationExpression.ReturnProgram.AssignmentR\x0bassignments\x12F\n\x10final_expression\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\x0ffinalExpression\x1a]\n\nAssignment\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12;\n\nexpression\x18\x02 \x01(\x0b2\x1b.proto.DerivationExpressionR\nexpressionB\x06\n\x04kindB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.type_expressions_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' - _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp']._loaded_options = None - _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp']._serialized_options = b'\030\001' - _globals['_DERIVATIONEXPRESSION'].fields_by_name['time']._loaded_options = None - _globals['_DERIVATIONEXPRESSION'].fields_by_name['time']._serialized_options = b'\030\001' - _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp_tz']._loaded_options = None - _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp_tz']._serialized_options = b'\030\001' - _globals['_DERIVATIONEXPRESSION'].fields_by_name['user_defined_pointer']._loaded_options = None - _globals['_DERIVATIONEXPRESSION'].fields_by_name['user_defined_pointer']._serialized_options = b'\030\001' - _globals['_DERIVATIONEXPRESSION']._serialized_start=58 - _globals['_DERIVATIONEXPRESSION']._serialized_end=6198 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR']._serialized_start=2363 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR']._serialized_end=2541 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONVARCHAR']._serialized_start=2544 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONVARCHAR']._serialized_end=2720 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY']._serialized_start=2723 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY']._serialized_end=2903 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONDECIMAL']._serialized_start=2906 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONDECIMAL']._serialized_end=3139 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIME']._serialized_start=3142 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIME']._serialized_end=3330 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP']._serialized_start=3333 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP']._serialized_end=3526 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY']._serialized_start=3529 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY']._serialized_end=3715 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND']._serialized_start=3718 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND']._serialized_end=3909 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ']._serialized_start=3912 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ']._serialized_end=4107 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONSTRUCT']._serialized_start=4110 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONSTRUCT']._serialized_end=4283 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT']._serialized_start=4285 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT']._serialized_end=4400 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONLIST']._serialized_start=4403 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONLIST']._serialized_end=4572 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONMAP']._serialized_start=4575 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONMAP']._serialized_end=4792 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED']._serialized_start=4795 - _globals['_DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED']._serialized_end=4957 - _globals['_DERIVATIONEXPRESSION_IFELSE']._serialized_start=4960 - _globals['_DERIVATIONEXPRESSION_IFELSE']._serialized_end=5152 - _globals['_DERIVATIONEXPRESSION_UNARYOP']._serialized_start=5155 - _globals['_DERIVATIONEXPRESSION_UNARYOP']._serialized_end=5362 - _globals['_DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE']._serialized_start=5287 - _globals['_DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE']._serialized_end=5362 - _globals['_DERIVATIONEXPRESSION_BINARYOP']._serialized_start=5365 - _globals['_DERIVATIONEXPRESSION_BINARYOP']._serialized_end=5917 - _globals['_DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE']._serialized_start=5552 - _globals['_DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE']._serialized_end=5917 - _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM']._serialized_start=5920 - _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM']._serialized_end=6190 - _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT']._serialized_start=6097 - _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT']._serialized_end=6190 -# @@protoc_insertion_point(module_scope) + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp']._loaded_options = None + _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp']._serialized_options = b'\x18\x01' + _globals['_DERIVATIONEXPRESSION'].fields_by_name['time']._loaded_options = None + _globals['_DERIVATIONEXPRESSION'].fields_by_name['time']._serialized_options = b'\x18\x01' + _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp_tz']._loaded_options = None + _globals['_DERIVATIONEXPRESSION'].fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' + _globals['_DERIVATIONEXPRESSION'].fields_by_name['user_defined_pointer']._loaded_options = None + _globals['_DERIVATIONEXPRESSION'].fields_by_name['user_defined_pointer']._serialized_options = b'\x18\x01' + _globals['_DERIVATIONEXPRESSION']._serialized_start = 58 + _globals['_DERIVATIONEXPRESSION']._serialized_end = 6198 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR']._serialized_start = 2363 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDCHAR']._serialized_end = 2541 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONVARCHAR']._serialized_start = 2544 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONVARCHAR']._serialized_end = 2720 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY']._serialized_start = 2723 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONFIXEDBINARY']._serialized_end = 2903 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONDECIMAL']._serialized_start = 2906 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONDECIMAL']._serialized_end = 3139 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIME']._serialized_start = 3142 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIME']._serialized_end = 3330 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP']._serialized_start = 3333 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMP']._serialized_end = 3526 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY']._serialized_start = 3529 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALDAY']._serialized_end = 3715 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND']._serialized_start = 3718 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONINTERVALCOMPOUND']._serialized_end = 3909 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ']._serialized_start = 3912 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONPRECISIONTIMESTAMPTZ']._serialized_end = 4107 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONSTRUCT']._serialized_start = 4110 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONSTRUCT']._serialized_end = 4283 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT']._serialized_start = 4285 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONNAMEDSTRUCT']._serialized_end = 4400 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONLIST']._serialized_start = 4403 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONLIST']._serialized_end = 4572 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONMAP']._serialized_start = 4575 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONMAP']._serialized_end = 4792 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED']._serialized_start = 4795 + _globals['_DERIVATIONEXPRESSION_EXPRESSIONUSERDEFINED']._serialized_end = 4957 + _globals['_DERIVATIONEXPRESSION_IFELSE']._serialized_start = 4960 + _globals['_DERIVATIONEXPRESSION_IFELSE']._serialized_end = 5152 + _globals['_DERIVATIONEXPRESSION_UNARYOP']._serialized_start = 5155 + _globals['_DERIVATIONEXPRESSION_UNARYOP']._serialized_end = 5362 + _globals['_DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE']._serialized_start = 5287 + _globals['_DERIVATIONEXPRESSION_UNARYOP_UNARYOPTYPE']._serialized_end = 5362 + _globals['_DERIVATIONEXPRESSION_BINARYOP']._serialized_start = 5365 + _globals['_DERIVATIONEXPRESSION_BINARYOP']._serialized_end = 5917 + _globals['_DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE']._serialized_start = 5552 + _globals['_DERIVATIONEXPRESSION_BINARYOP_BINARYOPTYPE']._serialized_end = 5917 + _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM']._serialized_start = 5920 + _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM']._serialized_end = 6190 + _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT']._serialized_start = 6097 + _globals['_DERIVATIONEXPRESSION_RETURNPROGRAM_ASSIGNMENT']._serialized_end = 6190 \ No newline at end of file diff --git a/src/substrait/gen/proto/type_expressions_pb2.pyi b/src/substrait/gen/proto/type_expressions_pb2.pyi index 9fc873a..73a563b 100644 --- a/src/substrait/gen/proto/type_expressions_pb2.pyi +++ b/src/substrait/gen/proto/type_expressions_pb2.pyi @@ -2,22 +2,19 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" - import builtins import collections.abc import google.protobuf.descriptor import google.protobuf.internal.containers import google.protobuf.internal.enum_type_wrapper import google.protobuf.message -import proto.type_pb2 +from .. import proto import sys import typing - if sys.version_info >= (3, 10): import typing as typing_extensions else: import typing_extensions - DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final @@ -27,410 +24,435 @@ class DerivationExpression(google.protobuf.message.Message): @typing.final class ExpressionFixedChar(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - LENGTH_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def length(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - length: global___DerivationExpression | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["length", b"length"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "variation_pointer", b"variation_pointer"]) -> None: ... + def length(self) -> global___DerivationExpression: + ... + + def __init__(self, *, length: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['length', b'length']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ExpressionVarChar(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - LENGTH_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def length(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - length: global___DerivationExpression | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["length", b"length"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "variation_pointer", b"variation_pointer"]) -> None: ... + def length(self) -> global___DerivationExpression: + ... + + def __init__(self, *, length: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['length', b'length']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ExpressionFixedBinary(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - LENGTH_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def length(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - length: global___DerivationExpression | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["length", b"length"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "variation_pointer", b"variation_pointer"]) -> None: ... + def length(self) -> global___DerivationExpression: + ... + + def __init__(self, *, length: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['length', b'length']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ExpressionDecimal(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - SCALE_FIELD_NUMBER: builtins.int PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def scale(self) -> global___DerivationExpression: ... + def scale(self) -> global___DerivationExpression: + ... + @property - def precision(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - scale: global___DerivationExpression | None = ..., - precision: global___DerivationExpression | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["precision", b"precision", "scale", b"scale"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "scale", b"scale", "variation_pointer", b"variation_pointer"]) -> None: ... + def precision(self) -> global___DerivationExpression: + ... + + def __init__(self, *, scale: global___DerivationExpression | None=..., precision: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['precision', b'precision', 'scale', b'scale']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'scale', b'scale', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ExpressionPrecisionTime(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def precision(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - precision: global___DerivationExpression | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... + def precision(self) -> global___DerivationExpression: + ... + + def __init__(self, *, precision: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ExpressionPrecisionTimestamp(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def precision(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - precision: global___DerivationExpression | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... + def precision(self) -> global___DerivationExpression: + ... + + def __init__(self, *, precision: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ExpressionIntervalDay(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def precision(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - precision: global___DerivationExpression | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... + def precision(self) -> global___DerivationExpression: + ... + + def __init__(self, *, precision: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ExpressionIntervalCompound(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def precision(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - precision: global___DerivationExpression | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... + def precision(self) -> global___DerivationExpression: + ... + + def __init__(self, *, precision: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ExpressionPrecisionTimestampTZ(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def precision(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - precision: global___DerivationExpression | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["precision", b"precision"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "variation_pointer", b"variation_pointer"]) -> None: ... + def precision(self) -> global___DerivationExpression: + ... + + def __init__(self, *, precision: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['precision', b'precision']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ExpressionStruct(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPES_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DerivationExpression]: ... - def __init__( - self, - *, - types: collections.abc.Iterable[global___DerivationExpression] | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "types", b"types", "variation_pointer", b"variation_pointer"]) -> None: ... + def types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DerivationExpression]: + ... + + def __init__(self, *, types: collections.abc.Iterable[global___DerivationExpression] | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'types', b'types', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ExpressionNamedStruct(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAMES_FIELD_NUMBER: builtins.int STRUCT_FIELD_NUMBER: builtins.int + @property - def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: ... + def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: + ... + @property - def struct(self) -> global___DerivationExpression.ExpressionStruct: ... - def __init__( - self, - *, - names: collections.abc.Iterable[builtins.str] | None = ..., - struct: global___DerivationExpression.ExpressionStruct | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["struct", b"struct"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["names", b"names", "struct", b"struct"]) -> None: ... + def struct(self) -> global___DerivationExpression.ExpressionStruct: + ... + + def __init__(self, *, names: collections.abc.Iterable[builtins.str] | None=..., struct: global___DerivationExpression.ExpressionStruct | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['struct', b'struct']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['names', b'names', 'struct', b'struct']) -> None: + ... @typing.final class ExpressionList(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def type(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - type: global___DerivationExpression | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type", b"type", "variation_pointer", b"variation_pointer"]) -> None: ... + def type(self) -> global___DerivationExpression: + ... + + def __init__(self, *, type: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type', b'type', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ExpressionMap(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType + @property - def key(self) -> global___DerivationExpression: ... + def key(self) -> global___DerivationExpression: + ... + @property - def value(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - key: global___DerivationExpression | None = ..., - value: global___DerivationExpression | None = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["key", b"key", "nullability", b"nullability", "value", b"value", "variation_pointer", b"variation_pointer"]) -> None: ... + def value(self) -> global___DerivationExpression: + ... + + def __init__(self, *, key: global___DerivationExpression | None=..., value: global___DerivationExpression | None=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['key', b'key', 'nullability', b'nullability', 'value', b'value', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class ExpressionUserDefined(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_POINTER_FIELD_NUMBER: builtins.int VARIATION_POINTER_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_pointer: builtins.int variation_pointer: builtins.int nullability: proto.type_pb2.Type.Nullability.ValueType - def __init__( - self, - *, - type_pointer: builtins.int = ..., - variation_pointer: builtins.int = ..., - nullability: proto.type_pb2.Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_pointer", b"type_pointer", "variation_pointer", b"variation_pointer"]) -> None: ... + + def __init__(self, *, type_pointer: builtins.int=..., variation_pointer: builtins.int=..., nullability: proto.type_pb2.Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_pointer', b'type_pointer', 'variation_pointer', b'variation_pointer']) -> None: + ... @typing.final class IfElse(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - IF_CONDITION_FIELD_NUMBER: builtins.int IF_RETURN_FIELD_NUMBER: builtins.int ELSE_RETURN_FIELD_NUMBER: builtins.int + @property - def if_condition(self) -> global___DerivationExpression: ... + def if_condition(self) -> global___DerivationExpression: + ... + @property - def if_return(self) -> global___DerivationExpression: ... + def if_return(self) -> global___DerivationExpression: + ... + @property - def else_return(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - if_condition: global___DerivationExpression | None = ..., - if_return: global___DerivationExpression | None = ..., - else_return: global___DerivationExpression | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["else_return", b"else_return", "if_condition", b"if_condition", "if_return", b"if_return"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["else_return", b"else_return", "if_condition", b"if_condition", "if_return", b"if_return"]) -> None: ... + def else_return(self) -> global___DerivationExpression: + ... + + def __init__(self, *, if_condition: global___DerivationExpression | None=..., if_return: global___DerivationExpression | None=..., else_return: global___DerivationExpression | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['else_return', b'else_return', 'if_condition', b'if_condition', 'if_return', b'if_return']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['else_return', b'else_return', 'if_condition', b'if_condition', 'if_return', b'if_return']) -> None: + ... @typing.final class UnaryOp(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _UnaryOpType: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _UnaryOpTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DerivationExpression.UnaryOp._UnaryOpType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - UNARY_OP_TYPE_UNSPECIFIED: DerivationExpression.UnaryOp._UnaryOpType.ValueType # 0 - UNARY_OP_TYPE_BOOLEAN_NOT: DerivationExpression.UnaryOp._UnaryOpType.ValueType # 1 - - class UnaryOpType(_UnaryOpType, metaclass=_UnaryOpTypeEnumTypeWrapper): ... - UNARY_OP_TYPE_UNSPECIFIED: DerivationExpression.UnaryOp.UnaryOpType.ValueType # 0 - UNARY_OP_TYPE_BOOLEAN_NOT: DerivationExpression.UnaryOp.UnaryOpType.ValueType # 1 + UNARY_OP_TYPE_UNSPECIFIED: DerivationExpression.UnaryOp._UnaryOpType.ValueType + UNARY_OP_TYPE_BOOLEAN_NOT: DerivationExpression.UnaryOp._UnaryOpType.ValueType + class UnaryOpType(_UnaryOpType, metaclass=_UnaryOpTypeEnumTypeWrapper): + ... + UNARY_OP_TYPE_UNSPECIFIED: DerivationExpression.UnaryOp.UnaryOpType.ValueType + UNARY_OP_TYPE_BOOLEAN_NOT: DerivationExpression.UnaryOp.UnaryOpType.ValueType OP_TYPE_FIELD_NUMBER: builtins.int ARG_FIELD_NUMBER: builtins.int op_type: global___DerivationExpression.UnaryOp.UnaryOpType.ValueType + @property - def arg(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - op_type: global___DerivationExpression.UnaryOp.UnaryOpType.ValueType = ..., - arg: global___DerivationExpression | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["arg", b"arg"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["arg", b"arg", "op_type", b"op_type"]) -> None: ... + def arg(self) -> global___DerivationExpression: + ... + + def __init__(self, *, op_type: global___DerivationExpression.UnaryOp.UnaryOpType.ValueType=..., arg: global___DerivationExpression | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['arg', b'arg']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['arg', b'arg', 'op_type', b'op_type']) -> None: + ... @typing.final class BinaryOp(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _BinaryOpType: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _BinaryOpTypeEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[DerivationExpression.BinaryOp._BinaryOpType.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - BINARY_OP_TYPE_UNSPECIFIED: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 0 - BINARY_OP_TYPE_PLUS: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 1 - BINARY_OP_TYPE_MINUS: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 2 - BINARY_OP_TYPE_MULTIPLY: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 3 - BINARY_OP_TYPE_DIVIDE: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 4 - BINARY_OP_TYPE_MIN: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 5 - BINARY_OP_TYPE_MAX: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 6 - BINARY_OP_TYPE_GREATER_THAN: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 7 - BINARY_OP_TYPE_LESS_THAN: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 8 - BINARY_OP_TYPE_AND: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 9 - BINARY_OP_TYPE_OR: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 10 - BINARY_OP_TYPE_EQUALS: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 11 - BINARY_OP_TYPE_COVERS: DerivationExpression.BinaryOp._BinaryOpType.ValueType # 12 - - class BinaryOpType(_BinaryOpType, metaclass=_BinaryOpTypeEnumTypeWrapper): ... - BINARY_OP_TYPE_UNSPECIFIED: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 0 - BINARY_OP_TYPE_PLUS: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 1 - BINARY_OP_TYPE_MINUS: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 2 - BINARY_OP_TYPE_MULTIPLY: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 3 - BINARY_OP_TYPE_DIVIDE: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 4 - BINARY_OP_TYPE_MIN: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 5 - BINARY_OP_TYPE_MAX: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 6 - BINARY_OP_TYPE_GREATER_THAN: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 7 - BINARY_OP_TYPE_LESS_THAN: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 8 - BINARY_OP_TYPE_AND: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 9 - BINARY_OP_TYPE_OR: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 10 - BINARY_OP_TYPE_EQUALS: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 11 - BINARY_OP_TYPE_COVERS: DerivationExpression.BinaryOp.BinaryOpType.ValueType # 12 - + BINARY_OP_TYPE_UNSPECIFIED: DerivationExpression.BinaryOp._BinaryOpType.ValueType + BINARY_OP_TYPE_PLUS: DerivationExpression.BinaryOp._BinaryOpType.ValueType + BINARY_OP_TYPE_MINUS: DerivationExpression.BinaryOp._BinaryOpType.ValueType + BINARY_OP_TYPE_MULTIPLY: DerivationExpression.BinaryOp._BinaryOpType.ValueType + BINARY_OP_TYPE_DIVIDE: DerivationExpression.BinaryOp._BinaryOpType.ValueType + BINARY_OP_TYPE_MIN: DerivationExpression.BinaryOp._BinaryOpType.ValueType + BINARY_OP_TYPE_MAX: DerivationExpression.BinaryOp._BinaryOpType.ValueType + BINARY_OP_TYPE_GREATER_THAN: DerivationExpression.BinaryOp._BinaryOpType.ValueType + BINARY_OP_TYPE_LESS_THAN: DerivationExpression.BinaryOp._BinaryOpType.ValueType + BINARY_OP_TYPE_AND: DerivationExpression.BinaryOp._BinaryOpType.ValueType + BINARY_OP_TYPE_OR: DerivationExpression.BinaryOp._BinaryOpType.ValueType + BINARY_OP_TYPE_EQUALS: DerivationExpression.BinaryOp._BinaryOpType.ValueType + BINARY_OP_TYPE_COVERS: DerivationExpression.BinaryOp._BinaryOpType.ValueType + + class BinaryOpType(_BinaryOpType, metaclass=_BinaryOpTypeEnumTypeWrapper): + ... + BINARY_OP_TYPE_UNSPECIFIED: DerivationExpression.BinaryOp.BinaryOpType.ValueType + BINARY_OP_TYPE_PLUS: DerivationExpression.BinaryOp.BinaryOpType.ValueType + BINARY_OP_TYPE_MINUS: DerivationExpression.BinaryOp.BinaryOpType.ValueType + BINARY_OP_TYPE_MULTIPLY: DerivationExpression.BinaryOp.BinaryOpType.ValueType + BINARY_OP_TYPE_DIVIDE: DerivationExpression.BinaryOp.BinaryOpType.ValueType + BINARY_OP_TYPE_MIN: DerivationExpression.BinaryOp.BinaryOpType.ValueType + BINARY_OP_TYPE_MAX: DerivationExpression.BinaryOp.BinaryOpType.ValueType + BINARY_OP_TYPE_GREATER_THAN: DerivationExpression.BinaryOp.BinaryOpType.ValueType + BINARY_OP_TYPE_LESS_THAN: DerivationExpression.BinaryOp.BinaryOpType.ValueType + BINARY_OP_TYPE_AND: DerivationExpression.BinaryOp.BinaryOpType.ValueType + BINARY_OP_TYPE_OR: DerivationExpression.BinaryOp.BinaryOpType.ValueType + BINARY_OP_TYPE_EQUALS: DerivationExpression.BinaryOp.BinaryOpType.ValueType + BINARY_OP_TYPE_COVERS: DerivationExpression.BinaryOp.BinaryOpType.ValueType OP_TYPE_FIELD_NUMBER: builtins.int ARG1_FIELD_NUMBER: builtins.int ARG2_FIELD_NUMBER: builtins.int op_type: global___DerivationExpression.BinaryOp.BinaryOpType.ValueType + @property - def arg1(self) -> global___DerivationExpression: ... + def arg1(self) -> global___DerivationExpression: + ... + @property - def arg2(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - op_type: global___DerivationExpression.BinaryOp.BinaryOpType.ValueType = ..., - arg1: global___DerivationExpression | None = ..., - arg2: global___DerivationExpression | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["arg1", b"arg1", "arg2", b"arg2"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["arg1", b"arg1", "arg2", b"arg2", "op_type", b"op_type"]) -> None: ... + def arg2(self) -> global___DerivationExpression: + ... + + def __init__(self, *, op_type: global___DerivationExpression.BinaryOp.BinaryOpType.ValueType=..., arg1: global___DerivationExpression | None=..., arg2: global___DerivationExpression | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['arg1', b'arg1', 'arg2', b'arg2']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['arg1', b'arg1', 'arg2', b'arg2', 'op_type', b'op_type']) -> None: + ... @typing.final class ReturnProgram(google.protobuf.message.Message): @@ -439,36 +461,41 @@ class DerivationExpression(google.protobuf.message.Message): @typing.final class Assignment(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAME_FIELD_NUMBER: builtins.int EXPRESSION_FIELD_NUMBER: builtins.int name: builtins.str + @property - def expression(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - name: builtins.str = ..., - expression: global___DerivationExpression | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["expression", b"expression"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["expression", b"expression", "name", b"name"]) -> None: ... + def expression(self) -> global___DerivationExpression: + ... + + def __init__(self, *, name: builtins.str=..., expression: global___DerivationExpression | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['expression', b'expression']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['expression', b'expression', 'name', b'name']) -> None: + ... ASSIGNMENTS_FIELD_NUMBER: builtins.int FINAL_EXPRESSION_FIELD_NUMBER: builtins.int + @property - def assignments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DerivationExpression.ReturnProgram.Assignment]: ... + def assignments(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___DerivationExpression.ReturnProgram.Assignment]: + ... + @property - def final_expression(self) -> global___DerivationExpression: ... - def __init__( - self, - *, - assignments: collections.abc.Iterable[global___DerivationExpression.ReturnProgram.Assignment] | None = ..., - final_expression: global___DerivationExpression | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["final_expression", b"final_expression"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["assignments", b"assignments", "final_expression", b"final_expression"]) -> None: ... + def final_expression(self) -> global___DerivationExpression: + ... + + def __init__(self, *, assignments: collections.abc.Iterable[global___DerivationExpression.ReturnProgram.Assignment] | None=..., final_expression: global___DerivationExpression | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['final_expression', b'final_expression']) -> builtins.bool: + ... + def ClearField(self, field_name: typing.Literal['assignments', b'assignments', 'final_expression', b'final_expression']) -> None: + ... BOOL_FIELD_NUMBER: builtins.int I8_FIELD_NUMBER: builtins.int I16_FIELD_NUMBER: builtins.int @@ -506,125 +533,148 @@ class DerivationExpression(google.protobuf.message.Message): IF_ELSE_FIELD_NUMBER: builtins.int RETURN_PROGRAM_FIELD_NUMBER: builtins.int user_defined_pointer: builtins.int - """Deprecated in favor of user_defined, which allows nullability and - variations to be specified. If user_defined_pointer is encountered, - treat it as being non-nullable and having the default variation. - """ + 'Deprecated in favor of user_defined, which allows nullability and\n variations to be specified. If user_defined_pointer is encountered,\n treat it as being non-nullable and having the default variation.\n ' type_parameter_name: builtins.str integer_parameter_name: builtins.str integer_literal: builtins.int + @property - def bool(self) -> proto.type_pb2.Type.Boolean: ... + def bool(self) -> proto.type_pb2.Type.Boolean: + ... + @property - def i8(self) -> proto.type_pb2.Type.I8: ... + def i8(self) -> proto.type_pb2.Type.I8: + ... + @property - def i16(self) -> proto.type_pb2.Type.I16: ... + def i16(self) -> proto.type_pb2.Type.I16: + ... + @property - def i32(self) -> proto.type_pb2.Type.I32: ... + def i32(self) -> proto.type_pb2.Type.I32: + ... + @property - def i64(self) -> proto.type_pb2.Type.I64: ... + def i64(self) -> proto.type_pb2.Type.I64: + ... + @property - def fp32(self) -> proto.type_pb2.Type.FP32: ... + def fp32(self) -> proto.type_pb2.Type.FP32: + ... + @property - def fp64(self) -> proto.type_pb2.Type.FP64: ... + def fp64(self) -> proto.type_pb2.Type.FP64: + ... + @property - def string(self) -> proto.type_pb2.Type.String: ... + def string(self) -> proto.type_pb2.Type.String: + ... + @property - def binary(self) -> proto.type_pb2.Type.Binary: ... + def binary(self) -> proto.type_pb2.Type.Binary: + ... + @property def timestamp(self) -> proto.type_pb2.Type.Timestamp: """Deprecated in favor of `ExpressionPrecisionTimestamp precision_timestamp`""" @property - def date(self) -> proto.type_pb2.Type.Date: ... + def date(self) -> proto.type_pb2.Type.Date: + ... + @property def time(self) -> proto.type_pb2.Type.Time: """Deprecated in favor of `ExpressionPrecisionTime precision_time`""" @property - def interval_year(self) -> proto.type_pb2.Type.IntervalYear: ... + def interval_year(self) -> proto.type_pb2.Type.IntervalYear: + ... + @property def timestamp_tz(self) -> proto.type_pb2.Type.TimestampTZ: """Deprecated in favor of `ExpressionPrecisionTimestampTZ precision_timestamp_tz`""" @property - def uuid(self) -> proto.type_pb2.Type.UUID: ... + def uuid(self) -> proto.type_pb2.Type.UUID: + ... + @property - def interval_day(self) -> global___DerivationExpression.ExpressionIntervalDay: ... + def interval_day(self) -> global___DerivationExpression.ExpressionIntervalDay: + ... + @property - def interval_compound(self) -> global___DerivationExpression.ExpressionIntervalCompound: ... + def interval_compound(self) -> global___DerivationExpression.ExpressionIntervalCompound: + ... + @property - def fixed_char(self) -> global___DerivationExpression.ExpressionFixedChar: ... + def fixed_char(self) -> global___DerivationExpression.ExpressionFixedChar: + ... + @property - def varchar(self) -> global___DerivationExpression.ExpressionVarChar: ... + def varchar(self) -> global___DerivationExpression.ExpressionVarChar: + ... + @property - def fixed_binary(self) -> global___DerivationExpression.ExpressionFixedBinary: ... + def fixed_binary(self) -> global___DerivationExpression.ExpressionFixedBinary: + ... + @property - def decimal(self) -> global___DerivationExpression.ExpressionDecimal: ... + def decimal(self) -> global___DerivationExpression.ExpressionDecimal: + ... + @property - def precision_time(self) -> global___DerivationExpression.ExpressionPrecisionTime: ... + def precision_time(self) -> global___DerivationExpression.ExpressionPrecisionTime: + ... + @property - def precision_timestamp(self) -> global___DerivationExpression.ExpressionPrecisionTimestamp: ... + def precision_timestamp(self) -> global___DerivationExpression.ExpressionPrecisionTimestamp: + ... + @property - def precision_timestamp_tz(self) -> global___DerivationExpression.ExpressionPrecisionTimestampTZ: ... + def precision_timestamp_tz(self) -> global___DerivationExpression.ExpressionPrecisionTimestampTZ: + ... + @property - def struct(self) -> global___DerivationExpression.ExpressionStruct: ... + def struct(self) -> global___DerivationExpression.ExpressionStruct: + ... + @property - def list(self) -> global___DerivationExpression.ExpressionList: ... + def list(self) -> global___DerivationExpression.ExpressionList: + ... + @property - def map(self) -> global___DerivationExpression.ExpressionMap: ... + def map(self) -> global___DerivationExpression.ExpressionMap: + ... + @property - def user_defined(self) -> global___DerivationExpression.ExpressionUserDefined: ... + def user_defined(self) -> global___DerivationExpression.ExpressionUserDefined: + ... + @property - def unary_op(self) -> global___DerivationExpression.UnaryOp: ... + def unary_op(self) -> global___DerivationExpression.UnaryOp: + ... + @property - def binary_op(self) -> global___DerivationExpression.BinaryOp: ... + def binary_op(self) -> global___DerivationExpression.BinaryOp: + ... + @property - def if_else(self) -> global___DerivationExpression.IfElse: ... + def if_else(self) -> global___DerivationExpression.IfElse: + ... + @property - def return_program(self) -> global___DerivationExpression.ReturnProgram: ... - def __init__( - self, - *, - bool: proto.type_pb2.Type.Boolean | None = ..., - i8: proto.type_pb2.Type.I8 | None = ..., - i16: proto.type_pb2.Type.I16 | None = ..., - i32: proto.type_pb2.Type.I32 | None = ..., - i64: proto.type_pb2.Type.I64 | None = ..., - fp32: proto.type_pb2.Type.FP32 | None = ..., - fp64: proto.type_pb2.Type.FP64 | None = ..., - string: proto.type_pb2.Type.String | None = ..., - binary: proto.type_pb2.Type.Binary | None = ..., - timestamp: proto.type_pb2.Type.Timestamp | None = ..., - date: proto.type_pb2.Type.Date | None = ..., - time: proto.type_pb2.Type.Time | None = ..., - interval_year: proto.type_pb2.Type.IntervalYear | None = ..., - timestamp_tz: proto.type_pb2.Type.TimestampTZ | None = ..., - uuid: proto.type_pb2.Type.UUID | None = ..., - interval_day: global___DerivationExpression.ExpressionIntervalDay | None = ..., - interval_compound: global___DerivationExpression.ExpressionIntervalCompound | None = ..., - fixed_char: global___DerivationExpression.ExpressionFixedChar | None = ..., - varchar: global___DerivationExpression.ExpressionVarChar | None = ..., - fixed_binary: global___DerivationExpression.ExpressionFixedBinary | None = ..., - decimal: global___DerivationExpression.ExpressionDecimal | None = ..., - precision_time: global___DerivationExpression.ExpressionPrecisionTime | None = ..., - precision_timestamp: global___DerivationExpression.ExpressionPrecisionTimestamp | None = ..., - precision_timestamp_tz: global___DerivationExpression.ExpressionPrecisionTimestampTZ | None = ..., - struct: global___DerivationExpression.ExpressionStruct | None = ..., - list: global___DerivationExpression.ExpressionList | None = ..., - map: global___DerivationExpression.ExpressionMap | None = ..., - user_defined: global___DerivationExpression.ExpressionUserDefined | None = ..., - user_defined_pointer: builtins.int = ..., - type_parameter_name: builtins.str = ..., - integer_parameter_name: builtins.str = ..., - integer_literal: builtins.int = ..., - unary_op: global___DerivationExpression.UnaryOp | None = ..., - binary_op: global___DerivationExpression.BinaryOp | None = ..., - if_else: global___DerivationExpression.IfElse | None = ..., - return_program: global___DerivationExpression.ReturnProgram | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["binary", b"binary", "binary_op", b"binary_op", "bool", b"bool", "date", b"date", "decimal", b"decimal", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "if_else", b"if_else", "integer_literal", b"integer_literal", "integer_parameter_name", b"integer_parameter_name", "interval_compound", b"interval_compound", "interval_day", b"interval_day", "interval_year", b"interval_year", "kind", b"kind", "list", b"list", "map", b"map", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "return_program", b"return_program", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "type_parameter_name", b"type_parameter_name", "unary_op", b"unary_op", "user_defined", b"user_defined", "user_defined_pointer", b"user_defined_pointer", "uuid", b"uuid", "varchar", b"varchar"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["binary", b"binary", "binary_op", b"binary_op", "bool", b"bool", "date", b"date", "decimal", b"decimal", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "if_else", b"if_else", "integer_literal", b"integer_literal", "integer_parameter_name", b"integer_parameter_name", "interval_compound", b"interval_compound", "interval_day", b"interval_day", "interval_year", b"interval_year", "kind", b"kind", "list", b"list", "map", b"map", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "return_program", b"return_program", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "type_parameter_name", b"type_parameter_name", "unary_op", b"unary_op", "user_defined", b"user_defined", "user_defined_pointer", b"user_defined_pointer", "uuid", b"uuid", "varchar", b"varchar"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["kind", b"kind"]) -> typing.Literal["bool", "i8", "i16", "i32", "i64", "fp32", "fp64", "string", "binary", "timestamp", "date", "time", "interval_year", "timestamp_tz", "uuid", "interval_day", "interval_compound", "fixed_char", "varchar", "fixed_binary", "decimal", "precision_time", "precision_timestamp", "precision_timestamp_tz", "struct", "list", "map", "user_defined", "user_defined_pointer", "type_parameter_name", "integer_parameter_name", "integer_literal", "unary_op", "binary_op", "if_else", "return_program"] | None: ... + def return_program(self) -> global___DerivationExpression.ReturnProgram: + ... + + def __init__(self, *, bool: proto.type_pb2.Type.Boolean | None=..., i8: proto.type_pb2.Type.I8 | None=..., i16: proto.type_pb2.Type.I16 | None=..., i32: proto.type_pb2.Type.I32 | None=..., i64: proto.type_pb2.Type.I64 | None=..., fp32: proto.type_pb2.Type.FP32 | None=..., fp64: proto.type_pb2.Type.FP64 | None=..., string: proto.type_pb2.Type.String | None=..., binary: proto.type_pb2.Type.Binary | None=..., timestamp: proto.type_pb2.Type.Timestamp | None=..., date: proto.type_pb2.Type.Date | None=..., time: proto.type_pb2.Type.Time | None=..., interval_year: proto.type_pb2.Type.IntervalYear | None=..., timestamp_tz: proto.type_pb2.Type.TimestampTZ | None=..., uuid: proto.type_pb2.Type.UUID | None=..., interval_day: global___DerivationExpression.ExpressionIntervalDay | None=..., interval_compound: global___DerivationExpression.ExpressionIntervalCompound | None=..., fixed_char: global___DerivationExpression.ExpressionFixedChar | None=..., varchar: global___DerivationExpression.ExpressionVarChar | None=..., fixed_binary: global___DerivationExpression.ExpressionFixedBinary | None=..., decimal: global___DerivationExpression.ExpressionDecimal | None=..., precision_time: global___DerivationExpression.ExpressionPrecisionTime | None=..., precision_timestamp: global___DerivationExpression.ExpressionPrecisionTimestamp | None=..., precision_timestamp_tz: global___DerivationExpression.ExpressionPrecisionTimestampTZ | None=..., struct: global___DerivationExpression.ExpressionStruct | None=..., list: global___DerivationExpression.ExpressionList | None=..., map: global___DerivationExpression.ExpressionMap | None=..., user_defined: global___DerivationExpression.ExpressionUserDefined | None=..., user_defined_pointer: builtins.int=..., type_parameter_name: builtins.str=..., integer_parameter_name: builtins.str=..., integer_literal: builtins.int=..., unary_op: global___DerivationExpression.UnaryOp | None=..., binary_op: global___DerivationExpression.BinaryOp | None=..., if_else: global___DerivationExpression.IfElse | None=..., return_program: global___DerivationExpression.ReturnProgram | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['binary', b'binary', 'binary_op', b'binary_op', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'if_else', b'if_else', 'integer_literal', b'integer_literal', 'integer_parameter_name', b'integer_parameter_name', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'return_program', b'return_program', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter_name', b'type_parameter_name', 'unary_op', b'unary_op', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['binary', b'binary', 'binary_op', b'binary_op', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'if_else', b'if_else', 'integer_literal', b'integer_literal', 'integer_parameter_name', b'integer_parameter_name', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'return_program', b'return_program', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'type_parameter_name', b'type_parameter_name', 'unary_op', b'unary_op', 'user_defined', b'user_defined', 'user_defined_pointer', b'user_defined_pointer', 'uuid', b'uuid', 'varchar', b'varchar']) -> None: + ... -global___DerivationExpression = DerivationExpression + def WhichOneof(self, oneof_group: typing.Literal['kind', b'kind']) -> typing.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'timestamp_tz', 'uuid', 'interval_day', 'interval_compound', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'precision_time', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'list', 'map', 'user_defined', 'user_defined_pointer', 'type_parameter_name', 'integer_parameter_name', 'integer_literal', 'unary_op', 'binary_op', 'if_else', 'return_program'] | None: + ... +global___DerivationExpression = DerivationExpression \ No newline at end of file diff --git a/src/substrait/gen/proto/type_pb2.py b/src/substrait/gen/proto/type_pb2.py index 2643762..018007e 100644 --- a/src/substrait/gen/proto/type_pb2.py +++ b/src/substrait/gen/proto/type_pb2.py @@ -1,110 +1,90 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: proto/type.proto -# Protobuf Python Version: 5.29.5 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool from google.protobuf import runtime_version as _runtime_version from google.protobuf import symbol_database as _symbol_database from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 5, - 29, - 5, - '', - 'proto/type.proto' -) -# @@protoc_insertion_point(imports) - +_runtime_version.ValidateProtobufRuntimeVersion(_runtime_version.Domain.PUBLIC, 5, 29, 5, '', 'proto/type.proto') _sym_db = _symbol_database.Default() - - from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/type.proto\x12\x05proto\x1a\x1bgoogle/protobuf/empty.proto\"\xaf\x30\n\x04Type\x12)\n\x04\x62ool\x18\x01 \x01(\x0b\x32\x13.proto.Type.BooleanH\x00R\x04\x62ool\x12 \n\x02i8\x18\x02 \x01(\x0b\x32\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b\x32\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b\x32\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b\x32\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04\x66p32\x18\n \x01(\x0b\x32\x10.proto.Type.FP32H\x00R\x04\x66p32\x12&\n\x04\x66p64\x18\x0b \x01(\x0b\x32\x10.proto.Type.FP64H\x00R\x04\x66p64\x12,\n\x06string\x18\x0c \x01(\x0b\x32\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06\x62inary\x18\r \x01(\x0b\x32\x12.proto.Type.BinaryH\x00R\x06\x62inary\x12\x39\n\ttimestamp\x18\x0e \x01(\x0b\x32\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04\x64\x61te\x18\x10 \x01(\x0b\x32\x10.proto.Type.DateH\x00R\x04\x64\x61te\x12&\n\x04time\x18\x11 \x01(\x0b\x32\x10.proto.Type.TimeH\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b\x32\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12<\n\x0cinterval_day\x18\x14 \x01(\x0b\x32\x17.proto.Type.IntervalDayH\x00R\x0bintervalDay\x12K\n\x11interval_compound\x18# \x01(\x0b\x32\x1c.proto.Type.IntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b\x32\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b\x32\x10.proto.Type.UUIDH\x00R\x04uuid\x12\x36\n\nfixed_char\x18\x15 \x01(\x0b\x32\x15.proto.Type.FixedCharH\x00R\tfixedChar\x12/\n\x07varchar\x18\x16 \x01(\x0b\x32\x13.proto.Type.VarCharH\x00R\x07varchar\x12<\n\x0c\x66ixed_binary\x18\x17 \x01(\x0b\x32\x17.proto.Type.FixedBinaryH\x00R\x0b\x66ixedBinary\x12/\n\x07\x64\x65\x63imal\x18\x18 \x01(\x0b\x32\x13.proto.Type.DecimalH\x00R\x07\x64\x65\x63imal\x12\x42\n\x0eprecision_time\x18$ \x01(\x0b\x32\x19.proto.Type.PrecisionTimeH\x00R\rprecisionTime\x12Q\n\x13precision_timestamp\x18! \x01(\x0b\x32\x1e.proto.Type.PrecisionTimestampH\x00R\x12precisionTimestamp\x12X\n\x16precision_timestamp_tz\x18\" \x01(\x0b\x32 .proto.Type.PrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12,\n\x06struct\x18\x19 \x01(\x0b\x32\x12.proto.Type.StructH\x00R\x06struct\x12&\n\x04list\x18\x1b \x01(\x0b\x32\x10.proto.Type.ListH\x00R\x04list\x12#\n\x03map\x18\x1c \x01(\x0b\x32\x0f.proto.Type.MapH\x00R\x03map\x12<\n\x0cuser_defined\x18\x1e \x01(\x0b\x32\x17.proto.Type.UserDefinedH\x00R\x0buserDefined\x12\x43\n\x1buser_defined_type_reference\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x18userDefinedTypeReference\x12\x36\n\x05\x61lias\x18% \x01(\x0b\x32\x1e.proto.Type.TypeAliasReferenceH\x00R\x05\x61lias\x1a~\n\x07\x42oolean\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1ay\n\x02I8\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I16\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I32\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I64\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04\x46P32\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04\x46P64\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06String\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06\x42inary\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x80\x01\n\tTimestamp\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04\x44\x61te\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04Time\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x01\n\x0bTimestampTZ\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x83\x01\n\x0cIntervalYear\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb3\x01\n\x0bIntervalDay\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x12!\n\tprecision\x18\x03 \x01(\x05H\x00R\tprecision\x88\x01\x01\x42\x0c\n\n_precision\x1a\xa5\x01\n\x10IntervalCompound\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x12\x1c\n\tprecision\x18\x03 \x01(\x05R\tprecision\x1a{\n\x04UUID\x12\x38\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x98\x01\n\tFixedChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x96\x01\n\x07VarChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9a\x01\n\x0b\x46ixedBinary\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb2\x01\n\x07\x44\x65\x63imal\x12\x14\n\x05scale\x18\x01 \x01(\x05R\x05scale\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x12\x38\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x04 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa2\x01\n\rPrecisionTime\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa7\x01\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa9\x01\n\x14PrecisionTimestampTZ\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa0\x01\n\x06Struct\x12!\n\x05types\x18\x01 \x03(\x0b\x32\x0b.proto.TypeR\x05types\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9c\x01\n\x04List\x12\x1f\n\x04type\x18\x01 \x01(\x0b\x32\x0b.proto.TypeR\x04type\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x03Map\x12\x1d\n\x03key\x18\x01 \x01(\x0b\x32\x0b.proto.TypeR\x03key\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x0b.proto.TypeR\x05value\x12\x38\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x04 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x12\x38\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x12\x39\n\x0bnullability\x18\x03 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\x12>\n\x0ftype_parameters\x18\x04 \x03(\x0b\x32\x15.proto.Type.ParameterR\x0etypeParameters\x1a\xda\x01\n\tParameter\x12,\n\x04null\x18\x01 \x01(\x0b\x32\x16.google.protobuf.EmptyH\x00R\x04null\x12*\n\tdata_type\x18\x02 \x01(\x0b\x32\x0b.proto.TypeH\x00R\x08\x64\x61taType\x12\x1a\n\x07\x62oolean\x18\x03 \x01(\x08H\x00R\x07\x62oolean\x12\x1a\n\x07integer\x18\x04 \x01(\x03H\x00R\x07integer\x12\x14\n\x04\x65num\x18\x05 \x01(\tH\x00R\x04\x65num\x12\x18\n\x06string\x18\x06 \x01(\tH\x00R\x06stringB\x0b\n\tparameter\x1a\x81\x01\n\x12TypeAliasReference\x12\x30\n\x14type_alias_reference\x18\x01 \x01(\rR\x12typeAliasReference\x12\x39\n\x0bnullability\x18\x02 \x01(\x0e\x32\x17.proto.Type.NullabilityR\x0bnullability\"^\n\x0bNullability\x12\x1b\n\x17NULLABILITY_UNSPECIFIED\x10\x00\x12\x18\n\x14NULLABILITY_NULLABLE\x10\x01\x12\x18\n\x14NULLABILITY_REQUIRED\x10\x02\x42\x06\n\x04kind\"X\n\tTypeAlias\x12*\n\x11type_alias_anchor\x18\x01 \x01(\rR\x0ftypeAliasAnchor\x12\x1f\n\x04type\x18\x02 \x01(\x0b\x32\x0b.proto.TypeR\x04type\"O\n\x0bNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12*\n\x06struct\x18\x02 \x01(\x0b\x32\x12.proto.Type.StructR\x06structB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') - +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x10proto/type.proto\x12\x05proto\x1a\x1bgoogle/protobuf/empty.proto"\xaf0\n\x04Type\x12)\n\x04bool\x18\x01 \x01(\x0b2\x13.proto.Type.BooleanH\x00R\x04bool\x12 \n\x02i8\x18\x02 \x01(\x0b2\x0e.proto.Type.I8H\x00R\x02i8\x12#\n\x03i16\x18\x03 \x01(\x0b2\x0f.proto.Type.I16H\x00R\x03i16\x12#\n\x03i32\x18\x05 \x01(\x0b2\x0f.proto.Type.I32H\x00R\x03i32\x12#\n\x03i64\x18\x07 \x01(\x0b2\x0f.proto.Type.I64H\x00R\x03i64\x12&\n\x04fp32\x18\n \x01(\x0b2\x10.proto.Type.FP32H\x00R\x04fp32\x12&\n\x04fp64\x18\x0b \x01(\x0b2\x10.proto.Type.FP64H\x00R\x04fp64\x12,\n\x06string\x18\x0c \x01(\x0b2\x12.proto.Type.StringH\x00R\x06string\x12,\n\x06binary\x18\r \x01(\x0b2\x12.proto.Type.BinaryH\x00R\x06binary\x129\n\ttimestamp\x18\x0e \x01(\x0b2\x15.proto.Type.TimestampB\x02\x18\x01H\x00R\ttimestamp\x12&\n\x04date\x18\x10 \x01(\x0b2\x10.proto.Type.DateH\x00R\x04date\x12&\n\x04time\x18\x11 \x01(\x0b2\x10.proto.Type.TimeH\x00R\x04time\x12?\n\rinterval_year\x18\x13 \x01(\x0b2\x18.proto.Type.IntervalYearH\x00R\x0cintervalYear\x12<\n\x0cinterval_day\x18\x14 \x01(\x0b2\x17.proto.Type.IntervalDayH\x00R\x0bintervalDay\x12K\n\x11interval_compound\x18# \x01(\x0b2\x1c.proto.Type.IntervalCompoundH\x00R\x10intervalCompound\x12@\n\x0ctimestamp_tz\x18\x1d \x01(\x0b2\x17.proto.Type.TimestampTZB\x02\x18\x01H\x00R\x0btimestampTz\x12&\n\x04uuid\x18 \x01(\x0b2\x10.proto.Type.UUIDH\x00R\x04uuid\x126\n\nfixed_char\x18\x15 \x01(\x0b2\x15.proto.Type.FixedCharH\x00R\tfixedChar\x12/\n\x07varchar\x18\x16 \x01(\x0b2\x13.proto.Type.VarCharH\x00R\x07varchar\x12<\n\x0cfixed_binary\x18\x17 \x01(\x0b2\x17.proto.Type.FixedBinaryH\x00R\x0bfixedBinary\x12/\n\x07decimal\x18\x18 \x01(\x0b2\x13.proto.Type.DecimalH\x00R\x07decimal\x12B\n\x0eprecision_time\x18$ \x01(\x0b2\x19.proto.Type.PrecisionTimeH\x00R\rprecisionTime\x12Q\n\x13precision_timestamp\x18! \x01(\x0b2\x1e.proto.Type.PrecisionTimestampH\x00R\x12precisionTimestamp\x12X\n\x16precision_timestamp_tz\x18" \x01(\x0b2 .proto.Type.PrecisionTimestampTZH\x00R\x14precisionTimestampTz\x12,\n\x06struct\x18\x19 \x01(\x0b2\x12.proto.Type.StructH\x00R\x06struct\x12&\n\x04list\x18\x1b \x01(\x0b2\x10.proto.Type.ListH\x00R\x04list\x12#\n\x03map\x18\x1c \x01(\x0b2\x0f.proto.Type.MapH\x00R\x03map\x12<\n\x0cuser_defined\x18\x1e \x01(\x0b2\x17.proto.Type.UserDefinedH\x00R\x0buserDefined\x12C\n\x1buser_defined_type_reference\x18\x1f \x01(\rB\x02\x18\x01H\x00R\x18userDefinedTypeReference\x126\n\x05alias\x18% \x01(\x0b2\x1e.proto.Type.TypeAliasReferenceH\x00R\x05alias\x1a~\n\x07Boolean\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1ay\n\x02I8\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I16\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1az\n\x03I64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04FP32\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04FP64\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06String\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a}\n\x06Binary\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x80\x01\n\tTimestamp\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04Date\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a{\n\x04Time\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x82\x01\n\x0bTimestampTZ\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x83\x01\n\x0cIntervalYear\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb3\x01\n\x0bIntervalDay\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12!\n\tprecision\x18\x03 \x01(\x05H\x00R\tprecision\x88\x01\x01B\x0c\n\n_precision\x1a\xa5\x01\n\x10IntervalCompound\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12\x1c\n\tprecision\x18\x03 \x01(\x05R\tprecision\x1a{\n\x04UUID\x128\n\x18type_variation_reference\x18\x01 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x98\x01\n\tFixedChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x96\x01\n\x07VarChar\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9a\x01\n\x0bFixedBinary\x12\x16\n\x06length\x18\x01 \x01(\x05R\x06length\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xb2\x01\n\x07Decimal\x12\x14\n\x05scale\x18\x01 \x01(\x05R\x05scale\x12\x1c\n\tprecision\x18\x02 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa2\x01\n\rPrecisionTime\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa7\x01\n\x12PrecisionTimestamp\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa9\x01\n\x14PrecisionTimestampTZ\x12\x1c\n\tprecision\x18\x01 \x01(\x05R\tprecision\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xa0\x01\n\x06Struct\x12!\n\x05types\x18\x01 \x03(\x0b2\x0b.proto.TypeR\x05types\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\x9c\x01\n\x04List\x12\x1f\n\x04type\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x04type\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xbc\x01\n\x03Map\x12\x1d\n\x03key\x18\x01 \x01(\x0b2\x0b.proto.TypeR\x03key\x12!\n\x05value\x18\x02 \x01(\x0b2\x0b.proto.TypeR\x05value\x128\n\x18type_variation_reference\x18\x03 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x04 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x1a\xe9\x01\n\x0bUserDefined\x12%\n\x0etype_reference\x18\x01 \x01(\rR\rtypeReference\x128\n\x18type_variation_reference\x18\x02 \x01(\rR\x16typeVariationReference\x129\n\x0bnullability\x18\x03 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability\x12>\n\x0ftype_parameters\x18\x04 \x03(\x0b2\x15.proto.Type.ParameterR\x0etypeParameters\x1a\xda\x01\n\tParameter\x12,\n\x04null\x18\x01 \x01(\x0b2\x16.google.protobuf.EmptyH\x00R\x04null\x12*\n\tdata_type\x18\x02 \x01(\x0b2\x0b.proto.TypeH\x00R\x08dataType\x12\x1a\n\x07boolean\x18\x03 \x01(\x08H\x00R\x07boolean\x12\x1a\n\x07integer\x18\x04 \x01(\x03H\x00R\x07integer\x12\x14\n\x04enum\x18\x05 \x01(\tH\x00R\x04enum\x12\x18\n\x06string\x18\x06 \x01(\tH\x00R\x06stringB\x0b\n\tparameter\x1a\x81\x01\n\x12TypeAliasReference\x120\n\x14type_alias_reference\x18\x01 \x01(\rR\x12typeAliasReference\x129\n\x0bnullability\x18\x02 \x01(\x0e2\x17.proto.Type.NullabilityR\x0bnullability"^\n\x0bNullability\x12\x1b\n\x17NULLABILITY_UNSPECIFIED\x10\x00\x12\x18\n\x14NULLABILITY_NULLABLE\x10\x01\x12\x18\n\x14NULLABILITY_REQUIRED\x10\x02B\x06\n\x04kind"X\n\tTypeAlias\x12*\n\x11type_alias_anchor\x18\x01 \x01(\rR\x0ftypeAliasAnchor\x12\x1f\n\x04type\x18\x02 \x01(\x0b2\x0b.proto.TypeR\x04type"O\n\x0bNamedStruct\x12\x14\n\x05names\x18\x01 \x03(\tR\x05names\x12*\n\x06struct\x18\x02 \x01(\x0b2\x12.proto.Type.StructR\x06structB#\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobufb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'proto.type_pb2', _globals) if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\016io.proto.protoP\001\252\002\016Proto.Protobuf' - _globals['_TYPE'].fields_by_name['timestamp']._loaded_options = None - _globals['_TYPE'].fields_by_name['timestamp']._serialized_options = b'\030\001' - _globals['_TYPE'].fields_by_name['timestamp_tz']._loaded_options = None - _globals['_TYPE'].fields_by_name['timestamp_tz']._serialized_options = b'\030\001' - _globals['_TYPE'].fields_by_name['user_defined_type_reference']._loaded_options = None - _globals['_TYPE'].fields_by_name['user_defined_type_reference']._serialized_options = b'\030\001' - _globals['_TYPE']._serialized_start=57 - _globals['_TYPE']._serialized_end=6248 - _globals['_TYPE_BOOLEAN']._serialized_start=1641 - _globals['_TYPE_BOOLEAN']._serialized_end=1767 - _globals['_TYPE_I8']._serialized_start=1769 - _globals['_TYPE_I8']._serialized_end=1890 - _globals['_TYPE_I16']._serialized_start=1892 - _globals['_TYPE_I16']._serialized_end=2014 - _globals['_TYPE_I32']._serialized_start=2016 - _globals['_TYPE_I32']._serialized_end=2138 - _globals['_TYPE_I64']._serialized_start=2140 - _globals['_TYPE_I64']._serialized_end=2262 - _globals['_TYPE_FP32']._serialized_start=2264 - _globals['_TYPE_FP32']._serialized_end=2387 - _globals['_TYPE_FP64']._serialized_start=2389 - _globals['_TYPE_FP64']._serialized_end=2512 - _globals['_TYPE_STRING']._serialized_start=2514 - _globals['_TYPE_STRING']._serialized_end=2639 - _globals['_TYPE_BINARY']._serialized_start=2641 - _globals['_TYPE_BINARY']._serialized_end=2766 - _globals['_TYPE_TIMESTAMP']._serialized_start=2769 - _globals['_TYPE_TIMESTAMP']._serialized_end=2897 - _globals['_TYPE_DATE']._serialized_start=2899 - _globals['_TYPE_DATE']._serialized_end=3022 - _globals['_TYPE_TIME']._serialized_start=3024 - _globals['_TYPE_TIME']._serialized_end=3147 - _globals['_TYPE_TIMESTAMPTZ']._serialized_start=3150 - _globals['_TYPE_TIMESTAMPTZ']._serialized_end=3280 - _globals['_TYPE_INTERVALYEAR']._serialized_start=3283 - _globals['_TYPE_INTERVALYEAR']._serialized_end=3414 - _globals['_TYPE_INTERVALDAY']._serialized_start=3417 - _globals['_TYPE_INTERVALDAY']._serialized_end=3596 - _globals['_TYPE_INTERVALCOMPOUND']._serialized_start=3599 - _globals['_TYPE_INTERVALCOMPOUND']._serialized_end=3764 - _globals['_TYPE_UUID']._serialized_start=3766 - _globals['_TYPE_UUID']._serialized_end=3889 - _globals['_TYPE_FIXEDCHAR']._serialized_start=3892 - _globals['_TYPE_FIXEDCHAR']._serialized_end=4044 - _globals['_TYPE_VARCHAR']._serialized_start=4047 - _globals['_TYPE_VARCHAR']._serialized_end=4197 - _globals['_TYPE_FIXEDBINARY']._serialized_start=4200 - _globals['_TYPE_FIXEDBINARY']._serialized_end=4354 - _globals['_TYPE_DECIMAL']._serialized_start=4357 - _globals['_TYPE_DECIMAL']._serialized_end=4535 - _globals['_TYPE_PRECISIONTIME']._serialized_start=4538 - _globals['_TYPE_PRECISIONTIME']._serialized_end=4700 - _globals['_TYPE_PRECISIONTIMESTAMP']._serialized_start=4703 - _globals['_TYPE_PRECISIONTIMESTAMP']._serialized_end=4870 - _globals['_TYPE_PRECISIONTIMESTAMPTZ']._serialized_start=4873 - _globals['_TYPE_PRECISIONTIMESTAMPTZ']._serialized_end=5042 - _globals['_TYPE_STRUCT']._serialized_start=5045 - _globals['_TYPE_STRUCT']._serialized_end=5205 - _globals['_TYPE_LIST']._serialized_start=5208 - _globals['_TYPE_LIST']._serialized_end=5364 - _globals['_TYPE_MAP']._serialized_start=5367 - _globals['_TYPE_MAP']._serialized_end=5555 - _globals['_TYPE_USERDEFINED']._serialized_start=5558 - _globals['_TYPE_USERDEFINED']._serialized_end=5791 - _globals['_TYPE_PARAMETER']._serialized_start=5794 - _globals['_TYPE_PARAMETER']._serialized_end=6012 - _globals['_TYPE_TYPEALIASREFERENCE']._serialized_start=6015 - _globals['_TYPE_TYPEALIASREFERENCE']._serialized_end=6144 - _globals['_TYPE_NULLABILITY']._serialized_start=6146 - _globals['_TYPE_NULLABILITY']._serialized_end=6240 - _globals['_TYPEALIAS']._serialized_start=6250 - _globals['_TYPEALIAS']._serialized_end=6338 - _globals['_NAMEDSTRUCT']._serialized_start=6340 - _globals['_NAMEDSTRUCT']._serialized_end=6419 -# @@protoc_insertion_point(module_scope) + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\x0eio.proto.protoP\x01\xaa\x02\x0eProto.Protobuf' + _globals['_TYPE'].fields_by_name['timestamp']._loaded_options = None + _globals['_TYPE'].fields_by_name['timestamp']._serialized_options = b'\x18\x01' + _globals['_TYPE'].fields_by_name['timestamp_tz']._loaded_options = None + _globals['_TYPE'].fields_by_name['timestamp_tz']._serialized_options = b'\x18\x01' + _globals['_TYPE'].fields_by_name['user_defined_type_reference']._loaded_options = None + _globals['_TYPE'].fields_by_name['user_defined_type_reference']._serialized_options = b'\x18\x01' + _globals['_TYPE']._serialized_start = 57 + _globals['_TYPE']._serialized_end = 6248 + _globals['_TYPE_BOOLEAN']._serialized_start = 1641 + _globals['_TYPE_BOOLEAN']._serialized_end = 1767 + _globals['_TYPE_I8']._serialized_start = 1769 + _globals['_TYPE_I8']._serialized_end = 1890 + _globals['_TYPE_I16']._serialized_start = 1892 + _globals['_TYPE_I16']._serialized_end = 2014 + _globals['_TYPE_I32']._serialized_start = 2016 + _globals['_TYPE_I32']._serialized_end = 2138 + _globals['_TYPE_I64']._serialized_start = 2140 + _globals['_TYPE_I64']._serialized_end = 2262 + _globals['_TYPE_FP32']._serialized_start = 2264 + _globals['_TYPE_FP32']._serialized_end = 2387 + _globals['_TYPE_FP64']._serialized_start = 2389 + _globals['_TYPE_FP64']._serialized_end = 2512 + _globals['_TYPE_STRING']._serialized_start = 2514 + _globals['_TYPE_STRING']._serialized_end = 2639 + _globals['_TYPE_BINARY']._serialized_start = 2641 + _globals['_TYPE_BINARY']._serialized_end = 2766 + _globals['_TYPE_TIMESTAMP']._serialized_start = 2769 + _globals['_TYPE_TIMESTAMP']._serialized_end = 2897 + _globals['_TYPE_DATE']._serialized_start = 2899 + _globals['_TYPE_DATE']._serialized_end = 3022 + _globals['_TYPE_TIME']._serialized_start = 3024 + _globals['_TYPE_TIME']._serialized_end = 3147 + _globals['_TYPE_TIMESTAMPTZ']._serialized_start = 3150 + _globals['_TYPE_TIMESTAMPTZ']._serialized_end = 3280 + _globals['_TYPE_INTERVALYEAR']._serialized_start = 3283 + _globals['_TYPE_INTERVALYEAR']._serialized_end = 3414 + _globals['_TYPE_INTERVALDAY']._serialized_start = 3417 + _globals['_TYPE_INTERVALDAY']._serialized_end = 3596 + _globals['_TYPE_INTERVALCOMPOUND']._serialized_start = 3599 + _globals['_TYPE_INTERVALCOMPOUND']._serialized_end = 3764 + _globals['_TYPE_UUID']._serialized_start = 3766 + _globals['_TYPE_UUID']._serialized_end = 3889 + _globals['_TYPE_FIXEDCHAR']._serialized_start = 3892 + _globals['_TYPE_FIXEDCHAR']._serialized_end = 4044 + _globals['_TYPE_VARCHAR']._serialized_start = 4047 + _globals['_TYPE_VARCHAR']._serialized_end = 4197 + _globals['_TYPE_FIXEDBINARY']._serialized_start = 4200 + _globals['_TYPE_FIXEDBINARY']._serialized_end = 4354 + _globals['_TYPE_DECIMAL']._serialized_start = 4357 + _globals['_TYPE_DECIMAL']._serialized_end = 4535 + _globals['_TYPE_PRECISIONTIME']._serialized_start = 4538 + _globals['_TYPE_PRECISIONTIME']._serialized_end = 4700 + _globals['_TYPE_PRECISIONTIMESTAMP']._serialized_start = 4703 + _globals['_TYPE_PRECISIONTIMESTAMP']._serialized_end = 4870 + _globals['_TYPE_PRECISIONTIMESTAMPTZ']._serialized_start = 4873 + _globals['_TYPE_PRECISIONTIMESTAMPTZ']._serialized_end = 5042 + _globals['_TYPE_STRUCT']._serialized_start = 5045 + _globals['_TYPE_STRUCT']._serialized_end = 5205 + _globals['_TYPE_LIST']._serialized_start = 5208 + _globals['_TYPE_LIST']._serialized_end = 5364 + _globals['_TYPE_MAP']._serialized_start = 5367 + _globals['_TYPE_MAP']._serialized_end = 5555 + _globals['_TYPE_USERDEFINED']._serialized_start = 5558 + _globals['_TYPE_USERDEFINED']._serialized_end = 5791 + _globals['_TYPE_PARAMETER']._serialized_start = 5794 + _globals['_TYPE_PARAMETER']._serialized_end = 6012 + _globals['_TYPE_TYPEALIASREFERENCE']._serialized_start = 6015 + _globals['_TYPE_TYPEALIASREFERENCE']._serialized_end = 6144 + _globals['_TYPE_NULLABILITY']._serialized_start = 6146 + _globals['_TYPE_NULLABILITY']._serialized_end = 6240 + _globals['_TYPEALIAS']._serialized_start = 6250 + _globals['_TYPEALIAS']._serialized_end = 6338 + _globals['_NAMEDSTRUCT']._serialized_start = 6340 + _globals['_NAMEDSTRUCT']._serialized_end = 6419 \ No newline at end of file diff --git a/src/substrait/gen/proto/type_pb2.pyi b/src/substrait/gen/proto/type_pb2.pyi index 99845ac..4e0b797 100644 --- a/src/substrait/gen/proto/type_pb2.pyi +++ b/src/substrait/gen/proto/type_pb2.pyi @@ -2,7 +2,6 @@ @generated by mypy-protobuf. Do not edit manually! isort:skip_file SPDX-License-Identifier: Apache-2.0""" - import builtins import collections.abc import google.protobuf.descriptor @@ -12,12 +11,10 @@ import google.protobuf.internal.enum_type_wrapper import google.protobuf.message import sys import typing - if sys.version_info >= (3, 10): import typing as typing_extensions else: import typing_extensions - DESCRIPTOR: google.protobuf.descriptor.FileDescriptor @typing.final @@ -25,373 +22,326 @@ class Type(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor class _Nullability: - ValueType = typing.NewType("ValueType", builtins.int) + ValueType = typing.NewType('ValueType', builtins.int) V: typing_extensions.TypeAlias = ValueType class _NullabilityEnumTypeWrapper(google.protobuf.internal.enum_type_wrapper._EnumTypeWrapper[Type._Nullability.ValueType], builtins.type): DESCRIPTOR: google.protobuf.descriptor.EnumDescriptor - NULLABILITY_UNSPECIFIED: Type._Nullability.ValueType # 0 - NULLABILITY_NULLABLE: Type._Nullability.ValueType # 1 - NULLABILITY_REQUIRED: Type._Nullability.ValueType # 2 + NULLABILITY_UNSPECIFIED: Type._Nullability.ValueType + NULLABILITY_NULLABLE: Type._Nullability.ValueType + NULLABILITY_REQUIRED: Type._Nullability.ValueType - class Nullability(_Nullability, metaclass=_NullabilityEnumTypeWrapper): ... - NULLABILITY_UNSPECIFIED: Type.Nullability.ValueType # 0 - NULLABILITY_NULLABLE: Type.Nullability.ValueType # 1 - NULLABILITY_REQUIRED: Type.Nullability.ValueType # 2 + class Nullability(_Nullability, metaclass=_NullabilityEnumTypeWrapper): + ... + NULLABILITY_UNSPECIFIED: Type.Nullability.ValueType + NULLABILITY_NULLABLE: Type.Nullability.ValueType + NULLABILITY_REQUIRED: Type.Nullability.ValueType @typing.final class Boolean(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class I8(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class I16(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class I32(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class I64(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class FP32(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class FP64(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class String(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class Binary(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class Timestamp(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class Date(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class Time(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class TimestampTZ(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class IntervalYear(google.protobuf.message.Message): """An interval consisting of years and months""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class IntervalDay(google.protobuf.message.Message): """An interval consisting of days, seconds, and microseconds""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int PRECISION_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType precision: builtins.int - """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, etc. - if unset, treat as 6. - """ - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - precision: builtins.int | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["_precision", b"_precision", "precision", b"precision"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["_precision", b"_precision", "nullability", b"nullability", "precision", b"precision", "type_variation_reference", b"type_variation_reference"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["_precision", b"_precision"]) -> typing.Literal["precision"] | None: ... + 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, etc.\n if unset, treat as 6.\n ' + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=..., precision: builtins.int | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['_precision', b'_precision', 'precision', b'precision']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['_precision', b'_precision', 'nullability', b'nullability', 'precision', b'precision', 'type_variation_reference', b'type_variation_reference']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['_precision', b'_precision']) -> typing.Literal['precision'] | None: + ... @typing.final class IntervalCompound(google.protobuf.message.Message): """An interval consisting of the components of both IntervalMonth and IntervalDay""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int PRECISION_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType precision: builtins.int - """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, etc.""" - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - precision: builtins.int = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "type_variation_reference", b"type_variation_reference"]) -> None: ... + 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, etc.' + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=..., precision: builtins.int=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class UUID(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class FixedChar(google.protobuf.message.Message): """Start compound types.""" - DESCRIPTOR: google.protobuf.descriptor.Descriptor - LENGTH_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int length: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - length: builtins.int = ..., - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, length: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class VarChar(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - LENGTH_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int length: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - length: builtins.int = ..., - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, length: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class FixedBinary(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - LENGTH_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int length: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - length: builtins.int = ..., - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["length", b"length", "nullability", b"nullability", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, length: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['length', b'length', 'nullability', b'nullability', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class Decimal(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - SCALE_FIELD_NUMBER: builtins.int PRECISION_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int @@ -400,146 +350,135 @@ class Type(google.protobuf.message.Message): precision: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - scale: builtins.int = ..., - precision: builtins.int = ..., - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "scale", b"scale", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, scale: builtins.int=..., precision: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'scale', b'scale', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class PrecisionTime(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int precision: builtins.int - """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds""" + 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds' type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - precision: builtins.int = ..., - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, precision: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class PrecisionTimestamp(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int precision: builtins.int - """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds""" + 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds' type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - precision: builtins.int = ..., - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, precision: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class PrecisionTimestampTZ(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - PRECISION_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int precision: builtins.int - """Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds""" + 'Sub-second precision, 0 means the value given is in seconds, 3 is milliseconds, 6 microseconds, 9 is nanoseconds, 12 is picoseconds' type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType - def __init__( - self, - *, - precision: builtins.int = ..., - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "precision", b"precision", "type_variation_reference", b"type_variation_reference"]) -> None: ... + + def __init__(self, *, precision: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'precision', b'precision', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class Struct(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPES_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType + @property - def types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Type]: ... - def __init__( - self, - *, - types: collections.abc.Iterable[global___Type] | None = ..., - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_variation_reference", b"type_variation_reference", "types", b"types"]) -> None: ... + def types(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Type]: + ... + + def __init__(self, *, types: collections.abc.Iterable[global___Type] | None=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_variation_reference', b'type_variation_reference', 'types', b'types']) -> None: + ... @typing.final class List(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType + @property - def type(self) -> global___Type: ... - def __init__( - self, - *, - type: global___Type | None = ..., - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type", b"type", "type_variation_reference", b"type_variation_reference"]) -> None: ... + def type(self) -> global___Type: + ... + + def __init__(self, *, type: global___Type | None=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type', b'type', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class Map(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - KEY_FIELD_NUMBER: builtins.int VALUE_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType + @property - def key(self) -> global___Type: ... + def key(self) -> global___Type: + ... + @property - def value(self) -> global___Type: ... - def __init__( - self, - *, - key: global___Type | None = ..., - value: global___Type | None = ..., - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["key", b"key", "value", b"value"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["key", b"key", "nullability", b"nullability", "type_variation_reference", b"type_variation_reference", "value", b"value"]) -> None: ... + def value(self) -> global___Type: + ... + + def __init__(self, *, key: global___Type | None=..., value: global___Type | None=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['key', b'key', 'value', b'value']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['key', b'key', 'nullability', b'nullability', 'type_variation_reference', b'type_variation_reference', 'value', b'value']) -> None: + ... @typing.final class UserDefined(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_REFERENCE_FIELD_NUMBER: builtins.int TYPE_VARIATION_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int @@ -547,22 +486,20 @@ class Type(google.protobuf.message.Message): type_reference: builtins.int type_variation_reference: builtins.int nullability: global___Type.Nullability.ValueType + @property - def type_parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Type.Parameter]: ... - def __init__( - self, - *, - type_reference: builtins.int = ..., - type_variation_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - type_parameters: collections.abc.Iterable[global___Type.Parameter] | None = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_parameters", b"type_parameters", "type_reference", b"type_reference", "type_variation_reference", b"type_variation_reference"]) -> None: ... + def type_parameters(self) -> google.protobuf.internal.containers.RepeatedCompositeFieldContainer[global___Type.Parameter]: + ... + + def __init__(self, *, type_reference: builtins.int=..., type_variation_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=..., type_parameters: collections.abc.Iterable[global___Type.Parameter] | None=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_parameters', b'type_parameters', 'type_reference', b'type_reference', 'type_variation_reference', b'type_variation_reference']) -> None: + ... @typing.final class Parameter(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - NULL_FIELD_NUMBER: builtins.int DATA_TYPE_FIELD_NUMBER: builtins.int BOOLEAN_FIELD_NUMBER: builtins.int @@ -570,10 +507,11 @@ class Type(google.protobuf.message.Message): ENUM_FIELD_NUMBER: builtins.int STRING_FIELD_NUMBER: builtins.int boolean: builtins.bool - """Value parameters, like the 10 in VARCHAR<10>.""" + 'Value parameters, like the 10 in VARCHAR<10>.' integer: builtins.int enum: builtins.str string: builtins.str + @property def null(self) -> google.protobuf.empty_pb2.Empty: """Explicitly null/unspecified parameter, to select the default value (if @@ -584,37 +522,32 @@ class Type(google.protobuf.message.Message): def data_type(self) -> global___Type: """Data type parameters, like the i32 in LIST.""" - def __init__( - self, - *, - null: google.protobuf.empty_pb2.Empty | None = ..., - data_type: global___Type | None = ..., - boolean: builtins.bool = ..., - integer: builtins.int = ..., - enum: builtins.str = ..., - string: builtins.str = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["boolean", b"boolean", "data_type", b"data_type", "enum", b"enum", "integer", b"integer", "null", b"null", "parameter", b"parameter", "string", b"string"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["boolean", b"boolean", "data_type", b"data_type", "enum", b"enum", "integer", b"integer", "null", b"null", "parameter", b"parameter", "string", b"string"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["parameter", b"parameter"]) -> typing.Literal["null", "data_type", "boolean", "integer", "enum", "string"] | None: ... + def __init__(self, *, null: google.protobuf.empty_pb2.Empty | None=..., data_type: global___Type | None=..., boolean: builtins.bool=..., integer: builtins.int=..., enum: builtins.str=..., string: builtins.str=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['boolean', b'boolean', 'data_type', b'data_type', 'enum', b'enum', 'integer', b'integer', 'null', b'null', 'parameter', b'parameter', 'string', b'string']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['boolean', b'boolean', 'data_type', b'data_type', 'enum', b'enum', 'integer', b'integer', 'null', b'null', 'parameter', b'parameter', 'string', b'string']) -> None: + ... + + def WhichOneof(self, oneof_group: typing.Literal['parameter', b'parameter']) -> typing.Literal['null', 'data_type', 'boolean', 'integer', 'enum', 'string'] | None: + ... @typing.final class TypeAliasReference(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_ALIAS_REFERENCE_FIELD_NUMBER: builtins.int NULLABILITY_FIELD_NUMBER: builtins.int type_alias_reference: builtins.int nullability: global___Type.Nullability.ValueType - """Nullability of the referenced type alias. Must be specified.""" - def __init__( - self, - *, - type_alias_reference: builtins.int = ..., - nullability: global___Type.Nullability.ValueType = ..., - ) -> None: ... - def ClearField(self, field_name: typing.Literal["nullability", b"nullability", "type_alias_reference", b"type_alias_reference"]) -> None: ... + 'Nullability of the referenced type alias. Must be specified.' + def __init__(self, *, type_alias_reference: builtins.int=..., nullability: global___Type.Nullability.ValueType=...) -> None: + ... + + def ClearField(self, field_name: typing.Literal['nullability', b'nullability', 'type_alias_reference', b'type_alias_reference']) -> None: + ... BOOL_FIELD_NUMBER: builtins.int I8_FIELD_NUMBER: builtins.int I16_FIELD_NUMBER: builtins.int @@ -646,129 +579,145 @@ class Type(google.protobuf.message.Message): USER_DEFINED_TYPE_REFERENCE_FIELD_NUMBER: builtins.int ALIAS_FIELD_NUMBER: builtins.int user_defined_type_reference: builtins.int - """Deprecated in favor of user_defined, which allows nullability and - variations to be specified. If user_defined_type_reference is - encountered, treat it as being non-nullable and having the default - variation. - """ + 'Deprecated in favor of user_defined, which allows nullability and\n variations to be specified. If user_defined_type_reference is\n encountered, treat it as being non-nullable and having the default\n variation.\n ' + @property - def bool(self) -> global___Type.Boolean: ... + def bool(self) -> global___Type.Boolean: + ... + @property - def i8(self) -> global___Type.I8: ... + def i8(self) -> global___Type.I8: + ... + @property - def i16(self) -> global___Type.I16: ... + def i16(self) -> global___Type.I16: + ... + @property - def i32(self) -> global___Type.I32: ... + def i32(self) -> global___Type.I32: + ... + @property - def i64(self) -> global___Type.I64: ... + def i64(self) -> global___Type.I64: + ... + @property - def fp32(self) -> global___Type.FP32: ... + def fp32(self) -> global___Type.FP32: + ... + @property - def fp64(self) -> global___Type.FP64: ... + def fp64(self) -> global___Type.FP64: + ... + @property - def string(self) -> global___Type.String: ... + def string(self) -> global___Type.String: + ... + @property - def binary(self) -> global___Type.Binary: ... + def binary(self) -> global___Type.Binary: + ... + @property def timestamp(self) -> global___Type.Timestamp: """Deprecated in favor of `PrecisionTimestamp precision_timestamp`""" @property - def date(self) -> global___Type.Date: ... + def date(self) -> global___Type.Date: + ... + @property def time(self) -> global___Type.Time: """Deprecated in favor of `PrecisionTime precision_time`""" @property - def interval_year(self) -> global___Type.IntervalYear: ... + def interval_year(self) -> global___Type.IntervalYear: + ... + @property - def interval_day(self) -> global___Type.IntervalDay: ... + def interval_day(self) -> global___Type.IntervalDay: + ... + @property - def interval_compound(self) -> global___Type.IntervalCompound: ... + def interval_compound(self) -> global___Type.IntervalCompound: + ... + @property def timestamp_tz(self) -> global___Type.TimestampTZ: """Deprecated in favor of `PrecisionTimestampTZ precision_timestamp_tz`""" @property - def uuid(self) -> global___Type.UUID: ... + def uuid(self) -> global___Type.UUID: + ... + @property - def fixed_char(self) -> global___Type.FixedChar: ... + def fixed_char(self) -> global___Type.FixedChar: + ... + @property - def varchar(self) -> global___Type.VarChar: ... + def varchar(self) -> global___Type.VarChar: + ... + @property - def fixed_binary(self) -> global___Type.FixedBinary: ... + def fixed_binary(self) -> global___Type.FixedBinary: + ... + @property - def decimal(self) -> global___Type.Decimal: ... + def decimal(self) -> global___Type.Decimal: + ... + @property - def precision_time(self) -> global___Type.PrecisionTime: ... + def precision_time(self) -> global___Type.PrecisionTime: + ... + @property - def precision_timestamp(self) -> global___Type.PrecisionTimestamp: ... + def precision_timestamp(self) -> global___Type.PrecisionTimestamp: + ... + @property def precision_timestamp_tz(self) -> global___Type.PrecisionTimestampTZ: """value is since UNIX epoch in UTC""" @property - def struct(self) -> global___Type.Struct: ... + def struct(self) -> global___Type.Struct: + ... + @property - def list(self) -> global___Type.List: ... + def list(self) -> global___Type.List: + ... + @property - def map(self) -> global___Type.Map: ... + def map(self) -> global___Type.Map: + ... + @property - def user_defined(self) -> global___Type.UserDefined: ... + def user_defined(self) -> global___Type.UserDefined: + ... + @property def alias(self) -> global___Type.TypeAliasReference: """Reference an aliased type in `Plan.type_aliases`.""" - def __init__( - self, - *, - bool: global___Type.Boolean | None = ..., - i8: global___Type.I8 | None = ..., - i16: global___Type.I16 | None = ..., - i32: global___Type.I32 | None = ..., - i64: global___Type.I64 | None = ..., - fp32: global___Type.FP32 | None = ..., - fp64: global___Type.FP64 | None = ..., - string: global___Type.String | None = ..., - binary: global___Type.Binary | None = ..., - timestamp: global___Type.Timestamp | None = ..., - date: global___Type.Date | None = ..., - time: global___Type.Time | None = ..., - interval_year: global___Type.IntervalYear | None = ..., - interval_day: global___Type.IntervalDay | None = ..., - interval_compound: global___Type.IntervalCompound | None = ..., - timestamp_tz: global___Type.TimestampTZ | None = ..., - uuid: global___Type.UUID | None = ..., - fixed_char: global___Type.FixedChar | None = ..., - varchar: global___Type.VarChar | None = ..., - fixed_binary: global___Type.FixedBinary | None = ..., - decimal: global___Type.Decimal | None = ..., - precision_time: global___Type.PrecisionTime | None = ..., - precision_timestamp: global___Type.PrecisionTimestamp | None = ..., - precision_timestamp_tz: global___Type.PrecisionTimestampTZ | None = ..., - struct: global___Type.Struct | None = ..., - list: global___Type.List | None = ..., - map: global___Type.Map | None = ..., - user_defined: global___Type.UserDefined | None = ..., - user_defined_type_reference: builtins.int = ..., - alias: global___Type.TypeAliasReference | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["alias", b"alias", "binary", b"binary", "bool", b"bool", "date", b"date", "decimal", b"decimal", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "interval_compound", b"interval_compound", "interval_day", b"interval_day", "interval_year", b"interval_year", "kind", b"kind", "list", b"list", "map", b"map", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "user_defined", b"user_defined", "user_defined_type_reference", b"user_defined_type_reference", "uuid", b"uuid", "varchar", b"varchar"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["alias", b"alias", "binary", b"binary", "bool", b"bool", "date", b"date", "decimal", b"decimal", "fixed_binary", b"fixed_binary", "fixed_char", b"fixed_char", "fp32", b"fp32", "fp64", b"fp64", "i16", b"i16", "i32", b"i32", "i64", b"i64", "i8", b"i8", "interval_compound", b"interval_compound", "interval_day", b"interval_day", "interval_year", b"interval_year", "kind", b"kind", "list", b"list", "map", b"map", "precision_time", b"precision_time", "precision_timestamp", b"precision_timestamp", "precision_timestamp_tz", b"precision_timestamp_tz", "string", b"string", "struct", b"struct", "time", b"time", "timestamp", b"timestamp", "timestamp_tz", b"timestamp_tz", "user_defined", b"user_defined", "user_defined_type_reference", b"user_defined_type_reference", "uuid", b"uuid", "varchar", b"varchar"]) -> None: ... - def WhichOneof(self, oneof_group: typing.Literal["kind", b"kind"]) -> typing.Literal["bool", "i8", "i16", "i32", "i64", "fp32", "fp64", "string", "binary", "timestamp", "date", "time", "interval_year", "interval_day", "interval_compound", "timestamp_tz", "uuid", "fixed_char", "varchar", "fixed_binary", "decimal", "precision_time", "precision_timestamp", "precision_timestamp_tz", "struct", "list", "map", "user_defined", "user_defined_type_reference", "alias"] | None: ... + def __init__(self, *, bool: global___Type.Boolean | None=..., i8: global___Type.I8 | None=..., i16: global___Type.I16 | None=..., i32: global___Type.I32 | None=..., i64: global___Type.I64 | None=..., fp32: global___Type.FP32 | None=..., fp64: global___Type.FP64 | None=..., string: global___Type.String | None=..., binary: global___Type.Binary | None=..., timestamp: global___Type.Timestamp | None=..., date: global___Type.Date | None=..., time: global___Type.Time | None=..., interval_year: global___Type.IntervalYear | None=..., interval_day: global___Type.IntervalDay | None=..., interval_compound: global___Type.IntervalCompound | None=..., timestamp_tz: global___Type.TimestampTZ | None=..., uuid: global___Type.UUID | None=..., fixed_char: global___Type.FixedChar | None=..., varchar: global___Type.VarChar | None=..., fixed_binary: global___Type.FixedBinary | None=..., decimal: global___Type.Decimal | None=..., precision_time: global___Type.PrecisionTime | None=..., precision_timestamp: global___Type.PrecisionTimestamp | None=..., precision_timestamp_tz: global___Type.PrecisionTimestampTZ | None=..., struct: global___Type.Struct | None=..., list: global___Type.List | None=..., map: global___Type.Map | None=..., user_defined: global___Type.UserDefined | None=..., user_defined_type_reference: builtins.int=..., alias: global___Type.TypeAliasReference | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['alias', b'alias', 'binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['alias', b'alias', 'binary', b'binary', 'bool', b'bool', 'date', b'date', 'decimal', b'decimal', 'fixed_binary', b'fixed_binary', 'fixed_char', b'fixed_char', 'fp32', b'fp32', 'fp64', b'fp64', 'i16', b'i16', 'i32', b'i32', 'i64', b'i64', 'i8', b'i8', 'interval_compound', b'interval_compound', 'interval_day', b'interval_day', 'interval_year', b'interval_year', 'kind', b'kind', 'list', b'list', 'map', b'map', 'precision_time', b'precision_time', 'precision_timestamp', b'precision_timestamp', 'precision_timestamp_tz', b'precision_timestamp_tz', 'string', b'string', 'struct', b'struct', 'time', b'time', 'timestamp', b'timestamp', 'timestamp_tz', b'timestamp_tz', 'user_defined', b'user_defined', 'user_defined_type_reference', b'user_defined_type_reference', 'uuid', b'uuid', 'varchar', b'varchar']) -> None: + ... + def WhichOneof(self, oneof_group: typing.Literal['kind', b'kind']) -> typing.Literal['bool', 'i8', 'i16', 'i32', 'i64', 'fp32', 'fp64', 'string', 'binary', 'timestamp', 'date', 'time', 'interval_year', 'interval_day', 'interval_compound', 'timestamp_tz', 'uuid', 'fixed_char', 'varchar', 'fixed_binary', 'decimal', 'precision_time', 'precision_timestamp', 'precision_timestamp_tz', 'struct', 'list', 'map', 'user_defined', 'user_defined_type_reference', 'alias'] | None: + ... global___Type = Type @typing.final class TypeAlias(google.protobuf.message.Message): DESCRIPTOR: google.protobuf.descriptor.Descriptor - TYPE_ALIAS_ANCHOR_FIELD_NUMBER: builtins.int TYPE_FIELD_NUMBER: builtins.int type_alias_anchor: builtins.int - """A surrogate key used in the context of a single plan to reference a - specific type alias. - """ + 'A surrogate key used in the context of a single plan to reference a\n specific type alias.\n ' + @property def type(self) -> global___Type: """A concrete type to be aliased. @@ -780,15 +729,14 @@ class TypeAlias(google.protobuf.message.Message): * Type variation may be specified in the aliased type. """ - def __init__( - self, - *, - type_alias_anchor: builtins.int = ..., - type: global___Type | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["type", b"type"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["type", b"type", "type_alias_anchor", b"type_alias_anchor"]) -> None: ... + def __init__(self, *, type_alias_anchor: builtins.int=..., type: global___Type | None=...) -> None: + ... + def HasField(self, field_name: typing.Literal['type', b'type']) -> builtins.bool: + ... + + def ClearField(self, field_name: typing.Literal['type', b'type', 'type_alias_anchor', b'type_alias_anchor']) -> None: + ... global___TypeAlias = TypeAlias @typing.final @@ -815,24 +763,24 @@ class NamedStruct(google.protobuf.message.Message): * When used to represent a relation schema, the outermost struct's nullability should be NULLABILITY_REQUIRED. """ - DESCRIPTOR: google.protobuf.descriptor.Descriptor - NAMES_FIELD_NUMBER: builtins.int STRUCT_FIELD_NUMBER: builtins.int + @property def names(self) -> google.protobuf.internal.containers.RepeatedScalarFieldContainer[builtins.str]: """list of names in dfs order""" @property - def struct(self) -> global___Type.Struct: ... - def __init__( - self, - *, - names: collections.abc.Iterable[builtins.str] | None = ..., - struct: global___Type.Struct | None = ..., - ) -> None: ... - def HasField(self, field_name: typing.Literal["struct", b"struct"]) -> builtins.bool: ... - def ClearField(self, field_name: typing.Literal["names", b"names", "struct", b"struct"]) -> None: ... + def struct(self) -> global___Type.Struct: + ... + + def __init__(self, *, names: collections.abc.Iterable[builtins.str] | None=..., struct: global___Type.Struct | None=...) -> None: + ... + + def HasField(self, field_name: typing.Literal['struct', b'struct']) -> builtins.bool: + ... -global___NamedStruct = NamedStruct + def ClearField(self, field_name: typing.Literal['names', b'names', 'struct', b'struct']) -> None: + ... +global___NamedStruct = NamedStruct \ No newline at end of file From 44b68f4e92114a05bba2197d81684e908750d5ee Mon Sep 17 00:00:00 2001 From: Ben Bellick Date: Thu, 30 Oct 2025 09:16:36 -0400 Subject: [PATCH 18/18] fix: drop timestamp from codegen --- .github/workflows/codegen-check.yml | 6 +++--- Makefile | 3 ++- src/substrait/gen/json/simple_extensions.py | 1 - 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/codegen-check.yml b/.github/workflows/codegen-check.yml index 299fd7c..33bebbc 100644 --- a/.github/workflows/codegen-check.yml +++ b/.github/workflows/codegen-check.yml @@ -27,13 +27,13 @@ jobs: ./gen_proto.sh make codegen-extensions - - name: Check for uncommitted changes (ignoring timestamps) + - name: Check for uncommitted changes run: | # Check for diffs, ignoring timestamp lines - if ! git diff -I '#.*timestamp:.*' --quiet --exit-code src/substrait/gen/; then + if ! git diff --quiet --exit-code src/substrait/gen/; then echo "Code generation produced changes. Generated code is out of sync!" echo "" - git diff -I '#.*timestamp:.*' src/substrait/gen/ + git diff src/substrait/gen/ echo "" echo "To fix this, run:" echo " make antlr" diff --git a/Makefile b/Makefile index 54782b1..4e95eb6 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,8 @@ codegen-extensions: --input-file-type jsonschema \ --input third_party/substrait/text/simple_extensions_schema.yaml \ --output src/substrait/gen/json/simple_extensions.py \ - --output-model-type dataclasses.dataclass + --output-model-type dataclasses.dataclass \ + --disable-timestamp lint: uvx ruff@0.11.11 check diff --git a/src/substrait/gen/json/simple_extensions.py b/src/substrait/gen/json/simple_extensions.py index b49f2bf..2885bb4 100644 --- a/src/substrait/gen/json/simple_extensions.py +++ b/src/substrait/gen/json/simple_extensions.py @@ -1,6 +1,5 @@ # generated by datamodel-codegen: # filename: simple_extensions_schema.yaml -# timestamp: 2025-10-29T20:01:31+00:00 from __future__ import annotations