sqlglot.parsers.clickhouse
1from __future__ import annotations 2 3import typing as t 4 5from collections import deque 6 7from sqlglot import exp, parser 8from sqlglot.dialects.dialect import ( 9 build_date_delta, 10 build_formatted_time, 11 build_json_extract_path, 12 build_like, 13) 14from sqlglot.helper import seq_get 15from sqlglot.tokens import Token, TokenType 16from builtins import type as Type 17 18if t.TYPE_CHECKING: 19 from sqlglot._typing import E 20 from collections.abc import Mapping, Sequence, Collection 21 22 23def _build_datetime_format( 24 expr_type: Type[E], 25) -> t.Callable: 26 def _builder(args: list, dialect: t.Any) -> E: 27 expr = build_formatted_time(expr_type)(args, dialect) 28 29 timezone = seq_get(args, 2) 30 if timezone: 31 expr.set("zone", timezone) 32 33 return expr 34 35 return _builder 36 37 38def _build_count_if(args: list) -> exp.CountIf | exp.CombinedAggFunc: 39 if len(args) == 1: 40 return exp.CountIf(this=seq_get(args, 0)) 41 42 return exp.CombinedAggFunc(this="countIf", expressions=args) 43 44 45def _build_str_to_date(args: list) -> exp.Cast | exp.Anonymous: 46 if len(args) == 3: 47 return exp.Anonymous(this="STR_TO_DATE", expressions=args) 48 49 strtodate = exp.StrToDate.from_arg_list(args) 50 return exp.cast(strtodate, exp.DType.DATETIME.into_expr()) 51 52 53def _build_timestamp_trunc(unit: str) -> t.Callable[[list], exp.TimestampTrunc]: 54 return lambda args: exp.TimestampTrunc( 55 this=seq_get(args, 0), unit=exp.var(unit), zone=seq_get(args, 1) 56 ) 57 58 59def _build_split_by_char(args: list) -> exp.Split | exp.Anonymous: 60 sep = seq_get(args, 0) 61 if isinstance(sep, exp.Literal): 62 sep_value = sep.to_py() 63 if isinstance(sep_value, str) and len(sep_value.encode("utf-8")) == 1: 64 return _build_split(exp.Split)(args) 65 66 return exp.Anonymous(this="splitByChar", expressions=args) 67 68 69def _build_split(exp_class: Type[E]) -> t.Callable[[list], E]: 70 return lambda args: exp_class( 71 this=seq_get(args, 1), expression=seq_get(args, 0), limit=seq_get(args, 2) 72 ) 73 74 75# Skip the 'week' unit since ClickHouse's toStartOfWeek 76# uses an extra mode argument to specify the first day of the week 77TIMESTAMP_TRUNC_UNITS = { 78 "MICROSECOND", 79 "MILLISECOND", 80 "SECOND", 81 "MINUTE", 82 "HOUR", 83 "DAY", 84 "MONTH", 85 "QUARTER", 86 "YEAR", 87} 88 89 90AGG_FUNCTIONS = { 91 "count", 92 "min", 93 "max", 94 "sum", 95 "avg", 96 "any", 97 "stddevPop", 98 "stddevSamp", 99 "varPop", 100 "varSamp", 101 "corr", 102 "covarPop", 103 "covarSamp", 104 "entropy", 105 "exponentialMovingAverage", 106 "intervalLengthSum", 107 "kolmogorovSmirnovTest", 108 "mannWhitneyUTest", 109 "median", 110 "rankCorr", 111 "sumKahan", 112 "studentTTest", 113 "welchTTest", 114 "anyHeavy", 115 "anyLast", 116 "boundingRatio", 117 "first_value", 118 "last_value", 119 "argMin", 120 "argMax", 121 "avgWeighted", 122 "topK", 123 "approx_top_sum", 124 "topKWeighted", 125 "deltaSum", 126 "deltaSumTimestamp", 127 "groupArray", 128 "groupArrayLast", 129 "groupConcat", 130 "groupUniqArray", 131 "groupArrayInsertAt", 132 "groupArrayMovingAvg", 133 "groupArrayMovingSum", 134 "groupArraySample", 135 "groupBitAnd", 136 "groupBitOr", 137 "groupBitXor", 138 "groupBitmap", 139 "groupBitmapAnd", 140 "groupBitmapOr", 141 "groupBitmapXor", 142 "sumWithOverflow", 143 "sumMap", 144 "minMap", 145 "maxMap", 146 "skewSamp", 147 "skewPop", 148 "kurtSamp", 149 "kurtPop", 150 "uniq", 151 "uniqExact", 152 "uniqCombined", 153 "uniqCombined64", 154 "uniqHLL12", 155 "uniqTheta", 156 "quantile", 157 "quantiles", 158 "quantileExact", 159 "quantilesExact", 160 "quantilesExactExclusive", 161 "quantileExactLow", 162 "quantilesExactLow", 163 "quantileExactHigh", 164 "quantilesExactHigh", 165 "quantileExactWeighted", 166 "quantilesExactWeighted", 167 "quantileTiming", 168 "quantilesTiming", 169 "quantileTimingWeighted", 170 "quantilesTimingWeighted", 171 "quantileDeterministic", 172 "quantilesDeterministic", 173 "quantileTDigest", 174 "quantilesTDigest", 175 "quantileTDigestWeighted", 176 "quantilesTDigestWeighted", 177 "quantileBFloat16", 178 "quantilesBFloat16", 179 "quantileBFloat16Weighted", 180 "quantilesBFloat16Weighted", 181 "simpleLinearRegression", 182 "stochasticLinearRegression", 183 "stochasticLogisticRegression", 184 "categoricalInformationValue", 185 "contingency", 186 "cramersV", 187 "cramersVBiasCorrected", 188 "theilsU", 189 "maxIntersections", 190 "maxIntersectionsPosition", 191 "meanZTest", 192 "quantileInterpolatedWeighted", 193 "quantilesInterpolatedWeighted", 194 "quantileGK", 195 "quantilesGK", 196 "sparkBar", 197 "sumCount", 198 "largestTriangleThreeBuckets", 199 "histogram", 200 "sequenceMatch", 201 "sequenceCount", 202 "windowFunnel", 203 "retention", 204 "uniqUpTo", 205 "sequenceNextNode", 206 "exponentialTimeDecayedAvg", 207} 208 209# Sorted longest-first so that compound suffixes (e.g. "SimpleState") are matched 210# before their sub-suffixes (e.g. "State") when resolving multi-combinator functions. 211AGG_FUNCTIONS_SUFFIXES: list[str] = sorted( 212 [ 213 "If", 214 "Array", 215 "ArrayIf", 216 "Map", 217 "SimpleState", 218 "State", 219 "Merge", 220 "MergeState", 221 "ForEach", 222 "Distinct", 223 "OrDefault", 224 "OrNull", 225 "Resample", 226 "ArgMin", 227 "ArgMax", 228 ], 229 key=len, 230 reverse=True, 231) 232 233# Memoized examples of all 0- and 1-suffix aggregate function names 234AGG_FUNC_MAPPING: Mapping[str, tuple[str, str | None]] = { 235 f"{f}{sfx}": (f, sfx) for sfx in AGG_FUNCTIONS_SUFFIXES for f in AGG_FUNCTIONS 236} | {f: (f, None) for f in AGG_FUNCTIONS} 237 238 239class ClickHouseParser(parser.Parser): 240 # Tested in ClickHouse's playground, it seems that the following two queries do the same thing 241 # * select x from t1 union all select x from t2 limit 1; 242 # * select x from t1 union all (select x from t2 limit 1); 243 MODIFIERS_ATTACHED_TO_SET_OP = False 244 INTERVAL_SPANS = False 245 OPTIONAL_ALIAS_TOKEN_CTE = False 246 JOINS_HAVE_EQUAL_PRECEDENCE = True 247 248 FUNCTIONS = { 249 **{ 250 k: v 251 for k, v in parser.Parser.FUNCTIONS.items() 252 if k not in ("TRANSFORM", "APPROX_TOP_SUM") 253 }, 254 **{f"TOSTARTOF{unit}": _build_timestamp_trunc(unit=unit) for unit in TIMESTAMP_TRUNC_UNITS}, 255 "ANY": exp.AnyValue.from_arg_list, 256 "ARRAYCOMPACT": exp.ArrayCompact.from_arg_list, 257 "ARRAYCONCAT": exp.ArrayConcat.from_arg_list, 258 "ARRAYDISTINCT": exp.ArrayDistinct.from_arg_list, 259 "ARRAYEXCEPT": exp.ArrayExcept.from_arg_list, 260 "ARRAYSUM": exp.ArraySum.from_arg_list, 261 "ARRAYMAX": exp.ArrayMax.from_arg_list, 262 "ARRAYMIN": exp.ArrayMin.from_arg_list, 263 "ARRAYREVERSE": exp.ArrayReverse.from_arg_list, 264 "ARRAYSLICE": exp.ArraySlice.from_arg_list, 265 "CURRENTDATABASE": exp.CurrentDatabase.from_arg_list, 266 "CURRENTSCHEMAS": exp.CurrentSchemas.from_arg_list, 267 "COUNTIF": _build_count_if, 268 "CITYHASH64": exp.CityHash64.from_arg_list, 269 "COSINEDISTANCE": exp.CosineDistance.from_arg_list, 270 "VERSION": exp.CurrentVersion.from_arg_list, 271 "DATE_ADD": build_date_delta(exp.DateAdd, default_unit=None), 272 "DATEADD": build_date_delta(exp.DateAdd, default_unit=None), 273 "DATE_DIFF": build_date_delta(exp.DateDiff, default_unit=None, supports_timezone=True), 274 "DATEDIFF": build_date_delta(exp.DateDiff, default_unit=None, supports_timezone=True), 275 "DATE_FORMAT": _build_datetime_format(exp.TimeToStr), 276 "DATE_SUB": build_date_delta(exp.DateSub, default_unit=None), 277 "DATESUB": build_date_delta(exp.DateSub, default_unit=None), 278 "FORMATDATETIME": _build_datetime_format(exp.TimeToStr), 279 "HAS": exp.ArrayContains.from_arg_list, 280 "ILIKE": build_like(exp.ILike), 281 "JSONEXTRACTSTRING": build_json_extract_path( 282 exp.JSONExtractScalar, zero_based_indexing=False 283 ), 284 "LENGTH": lambda args: exp.Length(this=seq_get(args, 0), binary=True), 285 "LIKE": build_like(exp.Like), 286 "L2Distance": exp.EuclideanDistance.from_arg_list, 287 "MAP": parser.build_var_map, 288 "MATCH": exp.RegexpLike.from_arg_list, 289 "NOTLIKE": build_like(exp.Like, not_like=True), 290 "PARSEDATETIME": _build_datetime_format(exp.ParseDatetime), 291 "RANDCANONICAL": exp.Rand.from_arg_list, 292 "STR_TO_DATE": _build_str_to_date, 293 "TIMESTAMP_SUB": build_date_delta(exp.TimestampSub, default_unit=None), 294 "TIMESTAMPSUB": build_date_delta(exp.TimestampSub, default_unit=None), 295 "TIMESTAMP_ADD": build_date_delta(exp.TimestampAdd, default_unit=None), 296 "TIMESTAMPADD": build_date_delta(exp.TimestampAdd, default_unit=None), 297 "TOMONDAY": _build_timestamp_trunc("WEEK"), 298 "UNIQ": exp.ApproxDistinct.from_arg_list, 299 "MD5": exp.MD5Digest.from_arg_list, 300 "SHA256": lambda args: exp.SHA2(this=seq_get(args, 0), length=exp.Literal.number(256)), 301 "SHA512": lambda args: exp.SHA2(this=seq_get(args, 0), length=exp.Literal.number(512)), 302 "SPLITBYCHAR": _build_split_by_char, 303 "SPLITBYREGEXP": _build_split(exp.RegexpSplit), 304 "SPLITBYSTRING": _build_split(exp.Split), 305 "SUBSTRINGINDEX": exp.SubstringIndex.from_arg_list, 306 "TOTYPENAME": exp.Typeof.from_arg_list, 307 "EDITDISTANCE": exp.Levenshtein.from_arg_list, 308 "JAROWINKLERSIMILARITY": exp.JarowinklerSimilarity.from_arg_list, 309 "LEVENSHTEINDISTANCE": exp.Levenshtein.from_arg_list, 310 "UTCTIMESTAMP": exp.UtcTimestamp.from_arg_list, 311 } 312 313 AGG_FUNCTIONS = AGG_FUNCTIONS 314 AGG_FUNCTIONS_SUFFIXES = AGG_FUNCTIONS_SUFFIXES 315 316 FUNC_TOKENS = { 317 *parser.Parser.FUNC_TOKENS, 318 TokenType.AND, 319 TokenType.FILE, 320 TokenType.OR, 321 TokenType.SET, 322 } 323 324 RESERVED_TOKENS = parser.Parser.RESERVED_TOKENS - {TokenType.SELECT} 325 326 ID_VAR_TOKENS = { 327 *parser.Parser.ID_VAR_TOKENS, 328 TokenType.LIKE, 329 } 330 331 AGG_FUNC_MAPPING = AGG_FUNC_MAPPING 332 333 @classmethod 334 def _resolve_clickhouse_agg(cls, name: str) -> tuple[str, Sequence[str]] | None: 335 # ClickHouse allows chaining multiple combinators on aggregate functions. 336 # See https://clickhouse.com/docs/sql-reference/aggregate-functions/combinators 337 # N.B. this resolution allows any suffix stack, including ones that ClickHouse rejects 338 # syntactically such as sumMergeMerge (due to repeated adjacent suffixes) 339 340 # Until we are able to identify a 1- or 0-suffix aggregate function by name, 341 # repeatedly strip and queue suffixes (checking longer suffixes first, see comment on 342 # AGG_FUNCTIONS_SUFFIXES_SORTED). This loop only runs for 2 or more suffixes, 343 # as AGG_FUNC_MAPPING memoizes all 0- and 1-suffix 344 accumulated_suffixes: deque[str] = deque() 345 while (parts := AGG_FUNC_MAPPING.get(name)) is None: 346 for suffix in AGG_FUNCTIONS_SUFFIXES: 347 if name.endswith(suffix) and len(name) != len(suffix): 348 accumulated_suffixes.appendleft(suffix) 349 name = name[: -len(suffix)] 350 break 351 else: 352 return None 353 354 # We now have a 0- or 1-suffix aggregate 355 agg_func_name, inner_suffix = parts 356 if inner_suffix: 357 # this is a 1-suffix aggregate (either naturally or via repeated suffix 358 # stripping). prepend the innermost suffix. 359 accumulated_suffixes.appendleft(inner_suffix) 360 361 return (agg_func_name, accumulated_suffixes) 362 363 FUNCTION_PARSERS = { 364 **{k: v for k, v in parser.Parser.FUNCTION_PARSERS.items() if k != "MATCH"}, 365 "ARRAYJOIN": lambda self: self.expression(exp.Explode(this=self._parse_expression())), 366 "GROUPCONCAT": lambda self: self._parse_group_concat(), 367 "QUANTILE": lambda self: self._parse_quantile(), 368 "MEDIAN": lambda self: self._parse_quantile(), 369 "COLUMNS": lambda self: self._parse_columns(), 370 "TUPLE": lambda self: exp.Struct.from_arg_list(self._parse_function_args(alias=True)), 371 "AND": lambda self: exp.and_(*self._parse_function_args(alias=False)), 372 "OR": lambda self: exp.or_(*self._parse_function_args(alias=False)), 373 "XOR": lambda self: exp.xor(*self._parse_function_args(alias=False)), 374 } 375 376 PROPERTY_PARSERS = { 377 **{k: v for k, v in parser.Parser.PROPERTY_PARSERS.items() if k != "DYNAMIC"}, 378 "ENGINE": lambda self: self._parse_engine_property(), 379 "UUID": lambda self: self.expression(exp.UuidProperty(this=self._parse_string())), 380 } 381 382 NO_PAREN_FUNCTION_PARSERS = { 383 k: v for k, v in parser.Parser.NO_PAREN_FUNCTION_PARSERS.items() if k != "ANY" 384 } 385 386 NO_PAREN_FUNCTIONS = { 387 k: v 388 for k, v in parser.Parser.NO_PAREN_FUNCTIONS.items() 389 if k != TokenType.CURRENT_TIMESTAMP 390 } 391 392 RANGE_PARSERS = { 393 **parser.Parser.RANGE_PARSERS, 394 TokenType.GLOBAL: lambda self, this: self._parse_global_in(this), 395 } 396 397 COLUMN_OPERATORS = { 398 **{k: v for k, v in parser.Parser.COLUMN_OPERATORS.items() if k != TokenType.PLACEHOLDER}, 399 TokenType.DOTCARET: lambda self, this, field: self.expression( 400 exp.NestedJSONSelect(this=this, expression=field) 401 ), 402 } 403 404 JOIN_KINDS = { 405 *parser.Parser.JOIN_KINDS, 406 TokenType.ALL, 407 TokenType.ANY, 408 TokenType.ASOF, 409 TokenType.ARRAY, 410 } 411 412 TABLE_ALIAS_TOKENS = parser.Parser.TABLE_ALIAS_TOKENS - { 413 TokenType.ALL, 414 TokenType.ANY, 415 TokenType.ARRAY, 416 TokenType.ASOF, 417 TokenType.FINAL, 418 TokenType.FORMAT, 419 TokenType.SETTINGS, 420 } 421 422 ALIAS_TOKENS = parser.Parser.ALIAS_TOKENS - { 423 TokenType.FORMAT, 424 } 425 426 LOG_DEFAULTS_TO_LN = True 427 428 QUERY_MODIFIER_PARSERS = { 429 **parser.Parser.QUERY_MODIFIER_PARSERS, 430 TokenType.SETTINGS: lambda self: ( 431 "settings", 432 self._advance() or self._parse_csv(self._parse_assignment), 433 ), 434 TokenType.FORMAT: lambda self: ("format", self._advance() or self._parse_id_var()), 435 } 436 437 CONSTRAINT_PARSERS = { 438 **parser.Parser.CONSTRAINT_PARSERS, 439 "INDEX": lambda self: self._parse_index_constraint(), 440 "CODEC": lambda self: self._parse_compress(), 441 "ASSUME": lambda self: self._parse_assume_constraint(), 442 } 443 444 ALTER_PARSERS = { 445 **parser.Parser.ALTER_PARSERS, 446 "MODIFY": lambda self: self._parse_alter_table_modify(), 447 "REPLACE": lambda self: self._parse_alter_table_replace(), 448 } 449 450 SCHEMA_UNNAMED_CONSTRAINTS = { 451 *parser.Parser.SCHEMA_UNNAMED_CONSTRAINTS, 452 "INDEX", 453 } - {"CHECK"} 454 455 PLACEHOLDER_PARSERS = { 456 **parser.Parser.PLACEHOLDER_PARSERS, 457 TokenType.L_BRACE: lambda self: self._parse_query_parameter(), 458 } 459 460 STATEMENT_PARSERS = { 461 **parser.Parser.STATEMENT_PARSERS, 462 TokenType.DETACH: lambda self: self._parse_detach(), 463 } 464 465 def _parse_wrapped_select_or_assignment(self) -> exp.Expr | None: 466 return self._parse_wrapped( 467 lambda: self._parse_select() or self._parse_assignment(), optional=True 468 ) 469 470 def _parse_check_constraint(self) -> exp.CheckColumnConstraint | None: 471 return self.expression( 472 exp.CheckColumnConstraint(this=self._parse_wrapped_select_or_assignment()) 473 ) 474 475 def _parse_assume_constraint(self) -> exp.AssumeColumnConstraint | None: 476 return self.expression( 477 exp.AssumeColumnConstraint(this=self._parse_wrapped_select_or_assignment()) 478 ) 479 480 def _parse_engine_property(self) -> exp.EngineProperty: 481 self._match(TokenType.EQ) 482 return self.expression( 483 exp.EngineProperty(this=self._parse_field(any_token=True, anonymous_func=True)) 484 ) 485 486 # https://clickhouse.com/docs/en/sql-reference/statements/create/function 487 def _parse_user_defined_function_expression(self) -> exp.Expr | None: 488 return self._parse_lambda() 489 490 def _parse_types( 491 self, 492 check_func: bool = False, 493 schema: bool = False, 494 allow_identifiers: bool = True, 495 with_collation: bool = False, 496 ) -> exp.Expr | None: 497 dtype = super()._parse_types( 498 check_func=check_func, 499 schema=schema, 500 allow_identifiers=allow_identifiers, 501 with_collation=with_collation, 502 ) 503 if isinstance(dtype, exp.DataType) and dtype.args.get("nullable") is not True: 504 # Mark every type as non-nullable which is ClickHouse's default, unless it's 505 # already marked as nullable. This marker helps us transpile types from other 506 # dialects to ClickHouse, so that we can e.g. produce `CAST(x AS Nullable(String))` 507 # from `CAST(x AS TEXT)`. If there is a `NULL` value in `x`, the former would 508 # fail in ClickHouse without the `Nullable` type constructor. 509 dtype.set("nullable", False) 510 511 return dtype 512 513 def _parse_extract(self) -> exp.Extract | exp.Anonymous: 514 index = self._index 515 this = self._parse_bitwise() 516 if self._match(TokenType.FROM): 517 self._retreat(index) 518 return super()._parse_extract() 519 520 # We return Anonymous here because extract and regexpExtract have different semantics, 521 # so parsing extract(foo, bar) into RegexpExtract can potentially break queries. E.g., 522 # `extract('foobar', 'b')` works, but ClickHouse crashes for `regexpExtract('foobar', 'b')`. 523 # 524 # TODO: can we somehow convert the former into an equivalent `regexpExtract` call? 525 self._match(TokenType.COMMA) 526 return self.expression( 527 exp.Anonymous(this="extract", expressions=[this, self._parse_bitwise()]) 528 ) 529 530 def _parse_assignment(self) -> exp.Expr | None: 531 this = super()._parse_assignment() 532 533 if self._match(TokenType.PLACEHOLDER): 534 return self.expression( 535 exp.If( 536 this=this, 537 true=self._parse_assignment(), 538 false=self._match(TokenType.COLON) and self._parse_assignment(), 539 ) 540 ) 541 542 return this 543 544 def _parse_query_parameter(self) -> exp.Expr | None: 545 """ 546 Parse a placeholder expression like SELECT {abc: UInt32} or FROM {table: Identifier} 547 https://clickhouse.com/docs/en/sql-reference/syntax#defining-and-using-query-parameters 548 """ 549 index = self._index 550 551 this = self._parse_id_var() 552 self._match(TokenType.COLON) 553 kind = self._parse_types(check_func=False, allow_identifiers=False) or ( 554 self._match_text_seq("IDENTIFIER") and "Identifier" 555 ) 556 557 if not kind: 558 self._retreat(index) 559 return None 560 elif not self._match(TokenType.R_BRACE): 561 self.raise_error("Expecting }") 562 563 if isinstance(this, exp.Identifier) and not this.quoted: 564 this = exp.var(this.name) 565 566 return self.expression(exp.Placeholder(this=this, kind=kind)) 567 568 def _parse_bracket(self, this: exp.Expr | None = None) -> exp.Expr | None: 569 if this: 570 bracket_json_type = None 571 572 while self._match_pair(TokenType.L_BRACKET, TokenType.R_BRACKET): 573 bracket_json_type = exp.DataType( 574 this=exp.DType.ARRAY, 575 expressions=[ 576 bracket_json_type 577 or exp.DType.JSON.into_expr(dialect=self.dialect, nullable=False) 578 ], 579 nested=True, 580 ) 581 582 if bracket_json_type: 583 return self.expression(exp.JSONCast(this=this, to=bracket_json_type)) 584 585 l_brace = self._match(TokenType.L_BRACE, advance=False) 586 bracket = super()._parse_bracket(this) 587 588 if l_brace and isinstance(bracket, exp.Struct): 589 varmap = exp.VarMap(keys=exp.Array(), values=exp.Array()) 590 for expression in bracket.expressions: 591 if not isinstance(expression, exp.PropertyEQ): 592 break 593 594 varmap.args["keys"].append("expressions", exp.Literal.string(expression.name)) 595 varmap.args["values"].append("expressions", expression.expression) 596 597 return varmap 598 599 return bracket 600 601 def _parse_global_in(self, this: exp.Expr | None) -> exp.Not | exp.In: 602 is_negated = self._match(TokenType.NOT) 603 in_expr: exp.In | None = None 604 if self._match(TokenType.IN): 605 in_expr = self._parse_in(this) 606 in_expr.set("is_global", True) 607 return self.expression(exp.Not(this=in_expr)) if is_negated else t.cast(exp.In, in_expr) 608 609 def _parse_table( 610 self, 611 schema: bool = False, 612 joins: bool = False, 613 alias_tokens: Collection[TokenType] | None = None, 614 parse_bracket: bool = False, 615 is_db_reference: bool = False, 616 parse_partition: bool = False, 617 consume_pipe: bool = False, 618 ) -> exp.Expr | None: 619 this = super()._parse_table( 620 schema=schema, 621 joins=joins, 622 alias_tokens=alias_tokens, 623 parse_bracket=parse_bracket, 624 is_db_reference=is_db_reference, 625 ) 626 627 if isinstance(this, exp.Table): 628 inner = this.this 629 alias = this.args.get("alias") 630 631 if isinstance(inner, exp.GenerateSeries) and alias and not alias.columns: 632 alias.set("columns", [exp.to_identifier("generate_series")]) 633 634 if self._match(TokenType.FINAL): 635 this = self.expression(exp.Final(this=this)) 636 637 return this 638 639 def _parse_position(self, haystack_first: bool = False) -> exp.StrPosition: 640 return super()._parse_position(haystack_first=True) 641 642 # https://clickhouse.com/docs/en/sql-reference/statements/select/with/ 643 def _parse_cte(self) -> exp.CTE | None: 644 # WITH <identifier> AS <subquery expression> 645 cte: exp.CTE | None = self._try_parse(super()._parse_cte) 646 647 if not cte: 648 # WITH <expression> AS <identifier> 649 cte = self.expression( 650 exp.CTE(this=self._parse_assignment(), alias=self._parse_table_alias(), scalar=True) 651 ) 652 653 return cte 654 655 def _parse_join_parts( 656 self, 657 ) -> tuple[Token | None, Token | None, Token | None]: 658 is_global = self._prev if self._match(TokenType.GLOBAL) else None 659 660 kind_pre = self._prev if self._match_set(self.JOIN_KINDS) else None 661 side = self._prev if self._match_set(self.JOIN_SIDES) else None 662 kind = self._prev if self._match_set(self.JOIN_KINDS) else None 663 664 return is_global, side or kind, kind_pre or kind 665 666 def _parse_join( 667 self, 668 skip_join_token: bool = False, 669 parse_bracket: bool = False, 670 alias_tokens: t.Collection[TokenType] | None = None, 671 ) -> exp.Join | None: 672 join = super()._parse_join( 673 skip_join_token=skip_join_token, parse_bracket=True, alias_tokens=alias_tokens 674 ) 675 if join: 676 method = join.args.get("method") 677 join.set("method", None) 678 join.set("global_", method) 679 680 # tbl ARRAY JOIN arr <-- this should be a `Column` reference, not a `Table` 681 # https://clickhouse.com/docs/en/sql-reference/statements/select/array-join 682 if join.kind == "ARRAY": 683 for table in join.find_all(exp.Table): 684 table.replace(table.to_column()) 685 686 return join 687 688 def _parse_function( 689 self, 690 functions: dict[str, t.Callable] | None = None, 691 anonymous: bool = False, 692 optional_parens: bool = True, 693 any_token: bool = False, 694 ) -> exp.Expr | None: 695 expr = super()._parse_function( 696 functions=functions, 697 anonymous=anonymous, 698 optional_parens=optional_parens, 699 any_token=any_token, 700 ) 701 702 func = expr.this if isinstance(expr, exp.Window) else expr 703 704 # Aggregate functions can be split in 2 parts: <func_name><suffix[es]> 705 parts = self._resolve_clickhouse_agg(func.this) if isinstance(func, exp.Anonymous) else None 706 707 if parts: 708 anon_func: exp.Anonymous = t.cast(exp.Anonymous, func) 709 params = self._parse_func_params(anon_func) 710 711 if len(parts[1]) > 0: 712 exp_class: Type[exp.Expr] = ( 713 exp.CombinedParameterizedAgg if params else exp.CombinedAggFunc 714 ) 715 else: 716 exp_class = exp.ParameterizedAgg if params else exp.AnonymousAggFunc 717 718 instance = exp_class(this=anon_func.this, expressions=anon_func.expressions) 719 if params: 720 instance.set("params", params) 721 func = self.expression(instance) 722 723 if isinstance(expr, exp.Window): 724 # The window's func was parsed as Anonymous in base parser, fix its 725 # type to be ClickHouse style CombinedAnonymousAggFunc / AnonymousAggFunc 726 expr.set("this", func) 727 elif params: 728 # Params have blocked super()._parse_function() from parsing the following window 729 # (if that exists) as they're standing between the function call and the window spec 730 expr = self._parse_window(func) 731 else: 732 expr = func 733 734 return expr 735 736 def _parse_func_params(self, this: exp.Func | None = None) -> list[exp.Expr] | None: 737 if self._match_pair(TokenType.R_PAREN, TokenType.L_PAREN): 738 return self._parse_csv(self._parse_lambda) 739 740 if self._match(TokenType.L_PAREN): 741 params = self._parse_csv(self._parse_lambda) 742 self._match_r_paren(this) 743 return params 744 745 return None 746 747 def _parse_group_concat(self) -> exp.GroupConcat: 748 args = self._parse_csv(self._parse_lambda) 749 params = self._parse_func_params() 750 751 if params: 752 # groupConcat(sep [, limit])(expr) 753 separator = seq_get(args, 0) 754 limit = seq_get(args, 1) 755 this: exp.Expr | None = seq_get(params, 0) 756 if limit is not None: 757 this = exp.Limit(this=this, expression=limit) 758 return self.expression(exp.GroupConcat(this=this, separator=separator)) 759 760 # groupConcat(expr) 761 return self.expression(exp.GroupConcat(this=seq_get(args, 0))) 762 763 def _parse_quantile(self) -> exp.Quantile: 764 this = self._parse_lambda() 765 params = self._parse_func_params() 766 if params: 767 return self.expression(exp.Quantile(this=params[0], quantile=this)) 768 return self.expression(exp.Quantile(this=this, quantile=exp.Literal.number(0.5))) 769 770 def _parse_wrapped_id_vars(self, optional: bool = False) -> list[exp.Expr]: 771 return super()._parse_wrapped_id_vars(optional=True) 772 773 def _parse_column_def( 774 self, this: exp.Expr | None, computed_column: bool = True 775 ) -> exp.Expr | None: 776 if self._match(TokenType.DOT): 777 return exp.Dot(this=this, expression=self._parse_id_var()) 778 779 return super()._parse_column_def(this, computed_column=computed_column) 780 781 def _parse_primary_key( 782 self, 783 wrapped_optional: bool = False, 784 in_props: bool = False, 785 named_primary_key: bool = False, 786 ) -> exp.PrimaryKeyColumnConstraint | exp.PrimaryKey: 787 return super()._parse_primary_key( 788 wrapped_optional=wrapped_optional or in_props, 789 in_props=in_props, 790 named_primary_key=named_primary_key, 791 ) 792 793 def _parse_on_property(self) -> exp.Expr | None: 794 index = self._index 795 if self._match_text_seq("CLUSTER"): 796 this = self._parse_string() or self._parse_id_var() 797 if this: 798 return self.expression(exp.OnCluster(this=this)) 799 else: 800 self._retreat(index) 801 return None 802 803 def _parse_index_constraint(self, kind: str | None = None) -> exp.IndexColumnConstraint: 804 # INDEX name1 expr TYPE type1(args) GRANULARITY value 805 this = self._parse_id_var() 806 expression = self._parse_assignment() 807 808 index_type = self._match_text_seq("TYPE") and (self._parse_function() or self._parse_var()) 809 810 granularity = self._match_text_seq("GRANULARITY") and self._parse_term() 811 812 return self.expression( 813 exp.IndexColumnConstraint( 814 this=this, expression=expression, index_type=index_type, granularity=granularity 815 ) 816 ) 817 818 def _parse_partition(self) -> exp.Partition | None: 819 # https://clickhouse.com/docs/en/sql-reference/statements/alter/partition#how-to-set-partition-expression 820 if not self._match(TokenType.PARTITION): 821 return None 822 823 if self._match_text_seq("ID"): 824 # Corresponds to the PARTITION ID <string_value> syntax 825 expressions: list[exp.Expr] = [ 826 self.expression(exp.PartitionId(this=self._parse_string())) 827 ] 828 else: 829 expressions = self._parse_expressions() 830 831 return self.expression(exp.Partition(expressions=expressions)) 832 833 def _parse_alter_table_replace(self) -> exp.Expr | None: 834 partition = self._parse_partition() 835 836 if not partition or not self._match(TokenType.FROM): 837 return None 838 839 return self.expression( 840 exp.ReplacePartition(expression=partition, source=self._parse_table_parts()) 841 ) 842 843 def _parse_alter_table_modify(self) -> exp.Expr | None: 844 if properties := self._parse_properties(): 845 return self.expression(exp.AlterModifySqlSecurity(expressions=properties.expressions)) 846 return None 847 848 def _parse_definer(self) -> exp.DefinerProperty | None: 849 self._match(TokenType.EQ) 850 if self._match(TokenType.CURRENT_USER): 851 return exp.DefinerProperty(this=exp.Var(this=self._prev.text.upper())) 852 return exp.DefinerProperty(this=self._parse_string()) 853 854 def _parse_projection_def(self) -> exp.ProjectionDef | None: 855 if not self._match_text_seq("PROJECTION"): 856 return None 857 858 return self.expression( 859 exp.ProjectionDef( 860 this=self._parse_id_var(), expression=self._parse_wrapped(self._parse_statement) 861 ) 862 ) 863 864 def _parse_constraint(self) -> exp.Expr | None: 865 return super()._parse_constraint() or self._parse_projection_def() 866 867 def _parse_alias(self, this: exp.Expr | None, explicit: bool = False) -> exp.Expr | None: 868 # In clickhouse "SELECT <expr> APPLY(...)" is a query modifier, 869 # so "APPLY" shouldn't be parsed as <expr>'s alias. However, "SELECT <expr> apply" is a valid alias 870 if self._match_pair(TokenType.APPLY, TokenType.L_PAREN, advance=False): 871 return this 872 873 return super()._parse_alias(this=this, explicit=explicit) 874 875 def _parse_expression(self) -> exp.Expr | None: 876 this = super()._parse_expression() 877 878 # Clickhouse allows "SELECT <expr> [APPLY(func)] [...]]" modifier 879 while self._match_pair(TokenType.APPLY, TokenType.L_PAREN): 880 this = exp.Apply(this=this, expression=self._parse_var(any_token=True)) 881 self._match(TokenType.R_PAREN) 882 883 return this 884 885 def _parse_columns(self) -> exp.Expr: 886 this: exp.Expr = self.expression(exp.Columns(this=self._parse_lambda())) 887 888 while self._next and self._match_text_seq(")", "APPLY", "("): 889 self._match(TokenType.R_PAREN) 890 this = exp.Apply(this=this, expression=self._parse_var(any_token=True)) 891 return this 892 893 def _parse_value(self, values: bool = True) -> exp.Tuple | None: 894 value = super()._parse_value(values=values) 895 if not value: 896 return None 897 898 # In Clickhouse "SELECT * FROM VALUES (1, 2, 3)" generates a table with a single column, in contrast 899 # to other dialects. For this case, we canonicalize the values into a tuple-of-tuples AST if it's not already one. 900 # In INSERT INTO statements the same clause actually references multiple columns (opposite semantics), 901 # but the final result is not altered by the extra parentheses. 902 # Note: Clickhouse allows VALUES([structure], value, ...) so the branch checks for the last expression 903 expressions = value.expressions 904 if values and not isinstance(expressions[-1], exp.Tuple): 905 value.set( 906 "expressions", 907 [self.expression(exp.Tuple(expressions=[expr])) for expr in expressions], 908 ) 909 910 return value 911 912 def _parse_partitioned_by(self) -> exp.PartitionedByProperty: 913 # ClickHouse allows custom expressions as partition key 914 # https://clickhouse.com/docs/engines/table-engines/mergetree-family/custom-partitioning-key 915 return self.expression(exp.PartitionedByProperty(this=self._parse_assignment())) 916 917 def _parse_detach(self) -> exp.Detach: 918 kind = self._match_set(self.DB_CREATABLES) and self._prev.text.upper() 919 exists = self._parse_exists() 920 this = self._parse_table_parts() 921 922 return self.expression( 923 exp.Detach( 924 this=this, 925 kind=kind, 926 exists=exists, 927 cluster=self._parse_on_property() if self._match(TokenType.ON) else None, 928 permanent=self._match_text_seq("PERMANENTLY"), 929 sync=self._match_text_seq("SYNC"), 930 ) 931 )
TIMESTAMP_TRUNC_UNITS =
{'MINUTE', 'QUARTER', 'MONTH', 'YEAR', 'MICROSECOND', 'HOUR', 'SECOND', 'MILLISECOND', 'DAY'}
AGG_FUNCTIONS =
{'sumKahan', 'quantilesExactHigh', 'any', 'uniqTheta', 'groupBitXor', 'theilsU', 'boundingRatio', 'histogram', 'kolmogorovSmirnovTest', 'groupBitmapXor', 'quantileDeterministic', 'varPop', 'first_value', 'uniqHLL12', 'minMap', 'simpleLinearRegression', 'quantilesInterpolatedWeighted', 'max', 'quantileTDigestWeighted', 'groupUniqArray', 'meanZTest', 'stochasticLogisticRegression', 'cramersVBiasCorrected', 'covarPop', 'count', 'deltaSum', 'quantileInterpolatedWeighted', 'quantileGK', 'anyHeavy', 'uniqUpTo', 'studentTTest', 'varSamp', 'groupBitmapOr', 'argMin', 'contingency', 'quantilesExactLow', 'covarSamp', 'mannWhitneyUTest', 'quantilesExactWeighted', 'quantileTimingWeighted', 'min', 'approx_top_sum', 'uniq', 'quantilesExact', 'retention', 'uniqExact', 'stochasticLinearRegression', 'quantilesExactExclusive', 'sparkBar', 'skewPop', 'groupArrayMovingAvg', 'median', 'groupArrayLast', 'kurtPop', 'exponentialMovingAverage', 'sequenceNextNode', 'quantile', 'groupArrayInsertAt', 'sum', 'quantileBFloat16', 'rankCorr', 'quantileTDigest', 'maxIntersectionsPosition', 'sumMap', 'kurtSamp', 'exponentialTimeDecayedAvg', 'avgWeighted', 'topKWeighted', 'largestTriangleThreeBuckets', 'groupArraySample', 'quantileExactHigh', 'windowFunnel', 'quantileExactWeighted', 'quantileExactLow', 'maxMap', 'welchTTest', 'groupBitOr', 'quantiles', 'avg', 'cramersV', 'anyLast', 'quantilesGK', 'sequenceMatch', 'quantilesTimingWeighted', 'quantilesDeterministic', 'sumCount', 'maxIntersections', 'stddevSamp', 'groupBitmapAnd', 'groupArray', 'uniqCombined', 'skewSamp', 'groupBitmap', 'quantilesBFloat16', 'quantilesTDigest', 'sequenceCount', 'uniqCombined64', 'entropy', 'quantilesTDigestWeighted', 'quantileExact', 'categoricalInformationValue', 'topK', 'groupBitAnd', 'stddevPop', 'quantileBFloat16Weighted', 'quantileTiming', 'groupConcat', 'corr', 'sumWithOverflow', 'last_value', 'argMax', 'quantilesTiming', 'groupArrayMovingSum', 'deltaSumTimestamp', 'quantilesBFloat16Weighted', 'intervalLengthSum'}
AGG_FUNCTIONS_SUFFIXES: list[str] =
['SimpleState', 'MergeState', 'OrDefault', 'Distinct', 'Resample', 'ArrayIf', 'ForEach', 'OrNull', 'ArgMin', 'ArgMax', 'Array', 'State', 'Merge', 'Map', 'If']
AGG_FUNC_MAPPING: Mapping[str, tuple[str, str | None]] =
{'sumKahanSimpleState': ('sumKahan', 'SimpleState'), 'quantilesExactHighSimpleState': ('quantilesExactHigh', 'SimpleState'), 'anySimpleState': ('any', 'SimpleState'), 'uniqThetaSimpleState': ('uniqTheta', 'SimpleState'), 'groupBitXorSimpleState': ('groupBitXor', 'SimpleState'), 'theilsUSimpleState': ('theilsU', 'SimpleState'), 'boundingRatioSimpleState': ('boundingRatio', 'SimpleState'), 'histogramSimpleState': ('histogram', 'SimpleState'), 'kolmogorovSmirnovTestSimpleState': ('kolmogorovSmirnovTest', 'SimpleState'), 'groupBitmapXorSimpleState': ('groupBitmapXor', 'SimpleState'), 'quantileDeterministicSimpleState': ('quantileDeterministic', 'SimpleState'), 'varPopSimpleState': ('varPop', 'SimpleState'), 'first_valueSimpleState': ('first_value', 'SimpleState'), 'uniqHLL12SimpleState': ('uniqHLL12', 'SimpleState'), 'minMapSimpleState': ('minMap', 'SimpleState'), 'simpleLinearRegressionSimpleState': ('simpleLinearRegression', 'SimpleState'), 'quantilesInterpolatedWeightedSimpleState': ('quantilesInterpolatedWeighted', 'SimpleState'), 'maxSimpleState': ('max', 'SimpleState'), 'quantileTDigestWeightedSimpleState': ('quantileTDigestWeighted', 'SimpleState'), 'groupUniqArraySimpleState': ('groupUniqArray', 'SimpleState'), 'meanZTestSimpleState': ('meanZTest', 'SimpleState'), 'stochasticLogisticRegressionSimpleState': ('stochasticLogisticRegression', 'SimpleState'), 'cramersVBiasCorrectedSimpleState': ('cramersVBiasCorrected', 'SimpleState'), 'covarPopSimpleState': ('covarPop', 'SimpleState'), 'countSimpleState': ('count', 'SimpleState'), 'deltaSumSimpleState': ('deltaSum', 'SimpleState'), 'quantileInterpolatedWeightedSimpleState': ('quantileInterpolatedWeighted', 'SimpleState'), 'quantileGKSimpleState': ('quantileGK', 'SimpleState'), 'anyHeavySimpleState': ('anyHeavy', 'SimpleState'), 'uniqUpToSimpleState': ('uniqUpTo', 'SimpleState'), 'studentTTestSimpleState': ('studentTTest', 'SimpleState'), 'varSampSimpleState': ('varSamp', 'SimpleState'), 'groupBitmapOrSimpleState': ('groupBitmapOr', 'SimpleState'), 'argMinSimpleState': ('argMin', 'SimpleState'), 'contingencySimpleState': ('contingency', 'SimpleState'), 'quantilesExactLowSimpleState': ('quantilesExactLow', 'SimpleState'), 'covarSampSimpleState': ('covarSamp', 'SimpleState'), 'mannWhitneyUTestSimpleState': ('mannWhitneyUTest', 'SimpleState'), 'quantilesExactWeightedSimpleState': ('quantilesExactWeighted', 'SimpleState'), 'quantileTimingWeightedSimpleState': ('quantileTimingWeighted', 'SimpleState'), 'minSimpleState': ('min', 'SimpleState'), 'approx_top_sumSimpleState': ('approx_top_sum', 'SimpleState'), 'uniqSimpleState': ('uniq', 'SimpleState'), 'quantilesExactSimpleState': ('quantilesExact', 'SimpleState'), 'retentionSimpleState': ('retention', 'SimpleState'), 'uniqExactSimpleState': ('uniqExact', 'SimpleState'), 'stochasticLinearRegressionSimpleState': ('stochasticLinearRegression', 'SimpleState'), 'quantilesExactExclusiveSimpleState': ('quantilesExactExclusive', 'SimpleState'), 'sparkBarSimpleState': ('sparkBar', 'SimpleState'), 'skewPopSimpleState': ('skewPop', 'SimpleState'), 'groupArrayMovingAvgSimpleState': ('groupArrayMovingAvg', 'SimpleState'), 'medianSimpleState': ('median', 'SimpleState'), 'groupArrayLastSimpleState': ('groupArrayLast', 'SimpleState'), 'kurtPopSimpleState': ('kurtPop', 'SimpleState'), 'exponentialMovingAverageSimpleState': ('exponentialMovingAverage', 'SimpleState'), 'sequenceNextNodeSimpleState': ('sequenceNextNode', 'SimpleState'), 'quantileSimpleState': ('quantile', 'SimpleState'), 'groupArrayInsertAtSimpleState': ('groupArrayInsertAt', 'SimpleState'), 'sumSimpleState': ('sum', 'SimpleState'), 'quantileBFloat16SimpleState': ('quantileBFloat16', 'SimpleState'), 'rankCorrSimpleState': ('rankCorr', 'SimpleState'), 'quantileTDigestSimpleState': ('quantileTDigest', 'SimpleState'), 'maxIntersectionsPositionSimpleState': ('maxIntersectionsPosition', 'SimpleState'), 'sumMapSimpleState': ('sumMap', 'SimpleState'), 'kurtSampSimpleState': ('kurtSamp', 'SimpleState'), 'exponentialTimeDecayedAvgSimpleState': ('exponentialTimeDecayedAvg', 'SimpleState'), 'avgWeightedSimpleState': ('avgWeighted', 'SimpleState'), 'topKWeightedSimpleState': ('topKWeighted', 'SimpleState'), 'largestTriangleThreeBucketsSimpleState': ('largestTriangleThreeBuckets', 'SimpleState'), 'groupArraySampleSimpleState': ('groupArraySample', 'SimpleState'), 'quantileExactHighSimpleState': ('quantileExactHigh', 'SimpleState'), 'windowFunnelSimpleState': ('windowFunnel', 'SimpleState'), 'quantileExactWeightedSimpleState': ('quantileExactWeighted', 'SimpleState'), 'quantileExactLowSimpleState': ('quantileExactLow', 'SimpleState'), 'maxMapSimpleState': ('maxMap', 'SimpleState'), 'welchTTestSimpleState': ('welchTTest', 'SimpleState'), 'groupBitOrSimpleState': ('groupBitOr', 'SimpleState'), 'quantilesSimpleState': ('quantiles', 'SimpleState'), 'avgSimpleState': ('avg', 'SimpleState'), 'cramersVSimpleState': ('cramersV', 'SimpleState'), 'anyLastSimpleState': ('anyLast', 'SimpleState'), 'quantilesGKSimpleState': ('quantilesGK', 'SimpleState'), 'sequenceMatchSimpleState': ('sequenceMatch', 'SimpleState'), 'quantilesTimingWeightedSimpleState': ('quantilesTimingWeighted', 'SimpleState'), 'quantilesDeterministicSimpleState': ('quantilesDeterministic', 'SimpleState'), 'sumCountSimpleState': ('sumCount', 'SimpleState'), 'maxIntersectionsSimpleState': ('maxIntersections', 'SimpleState'), 'stddevSampSimpleState': ('stddevSamp', 'SimpleState'), 'groupBitmapAndSimpleState': ('groupBitmapAnd', 'SimpleState'), 'groupArraySimpleState': ('groupArray', 'SimpleState'), 'uniqCombinedSimpleState': ('uniqCombined', 'SimpleState'), 'skewSampSimpleState': ('skewSamp', 'SimpleState'), 'groupBitmapSimpleState': ('groupBitmap', 'SimpleState'), 'quantilesBFloat16SimpleState': ('quantilesBFloat16', 'SimpleState'), 'quantilesTDigestSimpleState': ('quantilesTDigest', 'SimpleState'), 'sequenceCountSimpleState': ('sequenceCount', 'SimpleState'), 'uniqCombined64SimpleState': ('uniqCombined64', 'SimpleState'), 'entropySimpleState': ('entropy', 'SimpleState'), 'quantilesTDigestWeightedSimpleState': ('quantilesTDigestWeighted', 'SimpleState'), 'quantileExactSimpleState': ('quantileExact', 'SimpleState'), 'categoricalInformationValueSimpleState': ('categoricalInformationValue', 'SimpleState'), 'topKSimpleState': ('topK', 'SimpleState'), 'groupBitAndSimpleState': ('groupBitAnd', 'SimpleState'), 'stddevPopSimpleState': ('stddevPop', 'SimpleState'), 'quantileBFloat16WeightedSimpleState': ('quantileBFloat16Weighted', 'SimpleState'), 'quantileTimingSimpleState': ('quantileTiming', 'SimpleState'), 'groupConcatSimpleState': ('groupConcat', 'SimpleState'), 'corrSimpleState': ('corr', 'SimpleState'), 'sumWithOverflowSimpleState': ('sumWithOverflow', 'SimpleState'), 'last_valueSimpleState': ('last_value', 'SimpleState'), 'argMaxSimpleState': ('argMax', 'SimpleState'), 'quantilesTimingSimpleState': ('quantilesTiming', 'SimpleState'), 'groupArrayMovingSumSimpleState': ('groupArrayMovingSum', 'SimpleState'), 'deltaSumTimestampSimpleState': ('deltaSumTimestamp', 'SimpleState'), 'quantilesBFloat16WeightedSimpleState': ('quantilesBFloat16Weighted', 'SimpleState'), 'intervalLengthSumSimpleState': ('intervalLengthSum', 'SimpleState'), 'sumKahanMergeState': ('sumKahan', 'MergeState'), 'quantilesExactHighMergeState': ('quantilesExactHigh', 'MergeState'), 'anyMergeState': ('any', 'MergeState'), 'uniqThetaMergeState': ('uniqTheta', 'MergeState'), 'groupBitXorMergeState': ('groupBitXor', 'MergeState'), 'theilsUMergeState': ('theilsU', 'MergeState'), 'boundingRatioMergeState': ('boundingRatio', 'MergeState'), 'histogramMergeState': ('histogram', 'MergeState'), 'kolmogorovSmirnovTestMergeState': ('kolmogorovSmirnovTest', 'MergeState'), 'groupBitmapXorMergeState': ('groupBitmapXor', 'MergeState'), 'quantileDeterministicMergeState': ('quantileDeterministic', 'MergeState'), 'varPopMergeState': ('varPop', 'MergeState'), 'first_valueMergeState': ('first_value', 'MergeState'), 'uniqHLL12MergeState': ('uniqHLL12', 'MergeState'), 'minMapMergeState': ('minMap', 'MergeState'), 'simpleLinearRegressionMergeState': ('simpleLinearRegression', 'MergeState'), 'quantilesInterpolatedWeightedMergeState': ('quantilesInterpolatedWeighted', 'MergeState'), 'maxMergeState': ('max', 'MergeState'), 'quantileTDigestWeightedMergeState': ('quantileTDigestWeighted', 'MergeState'), 'groupUniqArrayMergeState': ('groupUniqArray', 'MergeState'), 'meanZTestMergeState': ('meanZTest', 'MergeState'), 'stochasticLogisticRegressionMergeState': ('stochasticLogisticRegression', 'MergeState'), 'cramersVBiasCorrectedMergeState': ('cramersVBiasCorrected', 'MergeState'), 'covarPopMergeState': ('covarPop', 'MergeState'), 'countMergeState': ('count', 'MergeState'), 'deltaSumMergeState': ('deltaSum', 'MergeState'), 'quantileInterpolatedWeightedMergeState': ('quantileInterpolatedWeighted', 'MergeState'), 'quantileGKMergeState': ('quantileGK', 'MergeState'), 'anyHeavyMergeState': ('anyHeavy', 'MergeState'), 'uniqUpToMergeState': ('uniqUpTo', 'MergeState'), 'studentTTestMergeState': ('studentTTest', 'MergeState'), 'varSampMergeState': ('varSamp', 'MergeState'), 'groupBitmapOrMergeState': ('groupBitmapOr', 'MergeState'), 'argMinMergeState': ('argMin', 'MergeState'), 'contingencyMergeState': ('contingency', 'MergeState'), 'quantilesExactLowMergeState': ('quantilesExactLow', 'MergeState'), 'covarSampMergeState': ('covarSamp', 'MergeState'), 'mannWhitneyUTestMergeState': ('mannWhitneyUTest', 'MergeState'), 'quantilesExactWeightedMergeState': ('quantilesExactWeighted', 'MergeState'), 'quantileTimingWeightedMergeState': ('quantileTimingWeighted', 'MergeState'), 'minMergeState': ('min', 'MergeState'), 'approx_top_sumMergeState': ('approx_top_sum', 'MergeState'), 'uniqMergeState': ('uniq', 'MergeState'), 'quantilesExactMergeState': ('quantilesExact', 'MergeState'), 'retentionMergeState': ('retention', 'MergeState'), 'uniqExactMergeState': ('uniqExact', 'MergeState'), 'stochasticLinearRegressionMergeState': ('stochasticLinearRegression', 'MergeState'), 'quantilesExactExclusiveMergeState': ('quantilesExactExclusive', 'MergeState'), 'sparkBarMergeState': ('sparkBar', 'MergeState'), 'skewPopMergeState': ('skewPop', 'MergeState'), 'groupArrayMovingAvgMergeState': ('groupArrayMovingAvg', 'MergeState'), 'medianMergeState': ('median', 'MergeState'), 'groupArrayLastMergeState': ('groupArrayLast', 'MergeState'), 'kurtPopMergeState': ('kurtPop', 'MergeState'), 'exponentialMovingAverageMergeState': ('exponentialMovingAverage', 'MergeState'), 'sequenceNextNodeMergeState': ('sequenceNextNode', 'MergeState'), 'quantileMergeState': ('quantile', 'MergeState'), 'groupArrayInsertAtMergeState': ('groupArrayInsertAt', 'MergeState'), 'sumMergeState': ('sum', 'MergeState'), 'quantileBFloat16MergeState': ('quantileBFloat16', 'MergeState'), 'rankCorrMergeState': ('rankCorr', 'MergeState'), 'quantileTDigestMergeState': ('quantileTDigest', 'MergeState'), 'maxIntersectionsPositionMergeState': ('maxIntersectionsPosition', 'MergeState'), 'sumMapMergeState': ('sumMap', 'MergeState'), 'kurtSampMergeState': ('kurtSamp', 'MergeState'), 'exponentialTimeDecayedAvgMergeState': ('exponentialTimeDecayedAvg', 'MergeState'), 'avgWeightedMergeState': ('avgWeighted', 'MergeState'), 'topKWeightedMergeState': ('topKWeighted', 'MergeState'), 'largestTriangleThreeBucketsMergeState': ('largestTriangleThreeBuckets', 'MergeState'), 'groupArraySampleMergeState': ('groupArraySample', 'MergeState'), 'quantileExactHighMergeState': ('quantileExactHigh', 'MergeState'), 'windowFunnelMergeState': ('windowFunnel', 'MergeState'), 'quantileExactWeightedMergeState': ('quantileExactWeighted', 'MergeState'), 'quantileExactLowMergeState': ('quantileExactLow', 'MergeState'), 'maxMapMergeState': ('maxMap', 'MergeState'), 'welchTTestMergeState': ('welchTTest', 'MergeState'), 'groupBitOrMergeState': ('groupBitOr', 'MergeState'), 'quantilesMergeState': ('quantiles', 'MergeState'), 'avgMergeState': ('avg', 'MergeState'), 'cramersVMergeState': ('cramersV', 'MergeState'), 'anyLastMergeState': ('anyLast', 'MergeState'), 'quantilesGKMergeState': ('quantilesGK', 'MergeState'), 'sequenceMatchMergeState': ('sequenceMatch', 'MergeState'), 'quantilesTimingWeightedMergeState': ('quantilesTimingWeighted', 'MergeState'), 'quantilesDeterministicMergeState': ('quantilesDeterministic', 'MergeState'), 'sumCountMergeState': ('sumCount', 'MergeState'), 'maxIntersectionsMergeState': ('maxIntersections', 'MergeState'), 'stddevSampMergeState': ('stddevSamp', 'MergeState'), 'groupBitmapAndMergeState': ('groupBitmapAnd', 'MergeState'), 'groupArrayMergeState': ('groupArray', 'MergeState'), 'uniqCombinedMergeState': ('uniqCombined', 'MergeState'), 'skewSampMergeState': ('skewSamp', 'MergeState'), 'groupBitmapMergeState': ('groupBitmap', 'MergeState'), 'quantilesBFloat16MergeState': ('quantilesBFloat16', 'MergeState'), 'quantilesTDigestMergeState': ('quantilesTDigest', 'MergeState'), 'sequenceCountMergeState': ('sequenceCount', 'MergeState'), 'uniqCombined64MergeState': ('uniqCombined64', 'MergeState'), 'entropyMergeState': ('entropy', 'MergeState'), 'quantilesTDigestWeightedMergeState': ('quantilesTDigestWeighted', 'MergeState'), 'quantileExactMergeState': ('quantileExact', 'MergeState'), 'categoricalInformationValueMergeState': ('categoricalInformationValue', 'MergeState'), 'topKMergeState': ('topK', 'MergeState'), 'groupBitAndMergeState': ('groupBitAnd', 'MergeState'), 'stddevPopMergeState': ('stddevPop', 'MergeState'), 'quantileBFloat16WeightedMergeState': ('quantileBFloat16Weighted', 'MergeState'), 'quantileTimingMergeState': ('quantileTiming', 'MergeState'), 'groupConcatMergeState': ('groupConcat', 'MergeState'), 'corrMergeState': ('corr', 'MergeState'), 'sumWithOverflowMergeState': ('sumWithOverflow', 'MergeState'), 'last_valueMergeState': ('last_value', 'MergeState'), 'argMaxMergeState': ('argMax', 'MergeState'), 'quantilesTimingMergeState': ('quantilesTiming', 'MergeState'), 'groupArrayMovingSumMergeState': ('groupArrayMovingSum', 'MergeState'), 'deltaSumTimestampMergeState': ('deltaSumTimestamp', 'MergeState'), 'quantilesBFloat16WeightedMergeState': ('quantilesBFloat16Weighted', 'MergeState'), 'intervalLengthSumMergeState': ('intervalLengthSum', 'MergeState'), 'sumKahanOrDefault': ('sumKahan', 'OrDefault'), 'quantilesExactHighOrDefault': ('quantilesExactHigh', 'OrDefault'), 'anyOrDefault': ('any', 'OrDefault'), 'uniqThetaOrDefault': ('uniqTheta', 'OrDefault'), 'groupBitXorOrDefault': ('groupBitXor', 'OrDefault'), 'theilsUOrDefault': ('theilsU', 'OrDefault'), 'boundingRatioOrDefault': ('boundingRatio', 'OrDefault'), 'histogramOrDefault': ('histogram', 'OrDefault'), 'kolmogorovSmirnovTestOrDefault': ('kolmogorovSmirnovTest', 'OrDefault'), 'groupBitmapXorOrDefault': ('groupBitmapXor', 'OrDefault'), 'quantileDeterministicOrDefault': ('quantileDeterministic', 'OrDefault'), 'varPopOrDefault': ('varPop', 'OrDefault'), 'first_valueOrDefault': ('first_value', 'OrDefault'), 'uniqHLL12OrDefault': ('uniqHLL12', 'OrDefault'), 'minMapOrDefault': ('minMap', 'OrDefault'), 'simpleLinearRegressionOrDefault': ('simpleLinearRegression', 'OrDefault'), 'quantilesInterpolatedWeightedOrDefault': ('quantilesInterpolatedWeighted', 'OrDefault'), 'maxOrDefault': ('max', 'OrDefault'), 'quantileTDigestWeightedOrDefault': ('quantileTDigestWeighted', 'OrDefault'), 'groupUniqArrayOrDefault': ('groupUniqArray', 'OrDefault'), 'meanZTestOrDefault': ('meanZTest', 'OrDefault'), 'stochasticLogisticRegressionOrDefault': ('stochasticLogisticRegression', 'OrDefault'), 'cramersVBiasCorrectedOrDefault': ('cramersVBiasCorrected', 'OrDefault'), 'covarPopOrDefault': ('covarPop', 'OrDefault'), 'countOrDefault': ('count', 'OrDefault'), 'deltaSumOrDefault': ('deltaSum', 'OrDefault'), 'quantileInterpolatedWeightedOrDefault': ('quantileInterpolatedWeighted', 'OrDefault'), 'quantileGKOrDefault': ('quantileGK', 'OrDefault'), 'anyHeavyOrDefault': ('anyHeavy', 'OrDefault'), 'uniqUpToOrDefault': ('uniqUpTo', 'OrDefault'), 'studentTTestOrDefault': ('studentTTest', 'OrDefault'), 'varSampOrDefault': ('varSamp', 'OrDefault'), 'groupBitmapOrOrDefault': ('groupBitmapOr', 'OrDefault'), 'argMinOrDefault': ('argMin', 'OrDefault'), 'contingencyOrDefault': ('contingency', 'OrDefault'), 'quantilesExactLowOrDefault': ('quantilesExactLow', 'OrDefault'), 'covarSampOrDefault': ('covarSamp', 'OrDefault'), 'mannWhitneyUTestOrDefault': ('mannWhitneyUTest', 'OrDefault'), 'quantilesExactWeightedOrDefault': ('quantilesExactWeighted', 'OrDefault'), 'quantileTimingWeightedOrDefault': ('quantileTimingWeighted', 'OrDefault'), 'minOrDefault': ('min', 'OrDefault'), 'approx_top_sumOrDefault': ('approx_top_sum', 'OrDefault'), 'uniqOrDefault': ('uniq', 'OrDefault'), 'quantilesExactOrDefault': ('quantilesExact', 'OrDefault'), 'retentionOrDefault': ('retention', 'OrDefault'), 'uniqExactOrDefault': ('uniqExact', 'OrDefault'), 'stochasticLinearRegressionOrDefault': ('stochasticLinearRegression', 'OrDefault'), 'quantilesExactExclusiveOrDefault': ('quantilesExactExclusive', 'OrDefault'), 'sparkBarOrDefault': ('sparkBar', 'OrDefault'), 'skewPopOrDefault': ('skewPop', 'OrDefault'), 'groupArrayMovingAvgOrDefault': ('groupArrayMovingAvg', 'OrDefault'), 'medianOrDefault': ('median', 'OrDefault'), 'groupArrayLastOrDefault': ('groupArrayLast', 'OrDefault'), 'kurtPopOrDefault': ('kurtPop', 'OrDefault'), 'exponentialMovingAverageOrDefault': ('exponentialMovingAverage', 'OrDefault'), 'sequenceNextNodeOrDefault': ('sequenceNextNode', 'OrDefault'), 'quantileOrDefault': ('quantile', 'OrDefault'), 'groupArrayInsertAtOrDefault': ('groupArrayInsertAt', 'OrDefault'), 'sumOrDefault': ('sum', 'OrDefault'), 'quantileBFloat16OrDefault': ('quantileBFloat16', 'OrDefault'), 'rankCorrOrDefault': ('rankCorr', 'OrDefault'), 'quantileTDigestOrDefault': ('quantileTDigest', 'OrDefault'), 'maxIntersectionsPositionOrDefault': ('maxIntersectionsPosition', 'OrDefault'), 'sumMapOrDefault': ('sumMap', 'OrDefault'), 'kurtSampOrDefault': ('kurtSamp', 'OrDefault'), 'exponentialTimeDecayedAvgOrDefault': ('exponentialTimeDecayedAvg', 'OrDefault'), 'avgWeightedOrDefault': ('avgWeighted', 'OrDefault'), 'topKWeightedOrDefault': ('topKWeighted', 'OrDefault'), 'largestTriangleThreeBucketsOrDefault': ('largestTriangleThreeBuckets', 'OrDefault'), 'groupArraySampleOrDefault': ('groupArraySample', 'OrDefault'), 'quantileExactHighOrDefault': ('quantileExactHigh', 'OrDefault'), 'windowFunnelOrDefault': ('windowFunnel', 'OrDefault'), 'quantileExactWeightedOrDefault': ('quantileExactWeighted', 'OrDefault'), 'quantileExactLowOrDefault': ('quantileExactLow', 'OrDefault'), 'maxMapOrDefault': ('maxMap', 'OrDefault'), 'welchTTestOrDefault': ('welchTTest', 'OrDefault'), 'groupBitOrOrDefault': ('groupBitOr', 'OrDefault'), 'quantilesOrDefault': ('quantiles', 'OrDefault'), 'avgOrDefault': ('avg', 'OrDefault'), 'cramersVOrDefault': ('cramersV', 'OrDefault'), 'anyLastOrDefault': ('anyLast', 'OrDefault'), 'quantilesGKOrDefault': ('quantilesGK', 'OrDefault'), 'sequenceMatchOrDefault': ('sequenceMatch', 'OrDefault'), 'quantilesTimingWeightedOrDefault': ('quantilesTimingWeighted', 'OrDefault'), 'quantilesDeterministicOrDefault': ('quantilesDeterministic', 'OrDefault'), 'sumCountOrDefault': ('sumCount', 'OrDefault'), 'maxIntersectionsOrDefault': ('maxIntersections', 'OrDefault'), 'stddevSampOrDefault': ('stddevSamp', 'OrDefault'), 'groupBitmapAndOrDefault': ('groupBitmapAnd', 'OrDefault'), 'groupArrayOrDefault': ('groupArray', 'OrDefault'), 'uniqCombinedOrDefault': ('uniqCombined', 'OrDefault'), 'skewSampOrDefault': ('skewSamp', 'OrDefault'), 'groupBitmapOrDefault': ('groupBitmap', 'OrDefault'), 'quantilesBFloat16OrDefault': ('quantilesBFloat16', 'OrDefault'), 'quantilesTDigestOrDefault': ('quantilesTDigest', 'OrDefault'), 'sequenceCountOrDefault': ('sequenceCount', 'OrDefault'), 'uniqCombined64OrDefault': ('uniqCombined64', 'OrDefault'), 'entropyOrDefault': ('entropy', 'OrDefault'), 'quantilesTDigestWeightedOrDefault': ('quantilesTDigestWeighted', 'OrDefault'), 'quantileExactOrDefault': ('quantileExact', 'OrDefault'), 'categoricalInformationValueOrDefault': ('categoricalInformationValue', 'OrDefault'), 'topKOrDefault': ('topK', 'OrDefault'), 'groupBitAndOrDefault': ('groupBitAnd', 'OrDefault'), 'stddevPopOrDefault': ('stddevPop', 'OrDefault'), 'quantileBFloat16WeightedOrDefault': ('quantileBFloat16Weighted', 'OrDefault'), 'quantileTimingOrDefault': ('quantileTiming', 'OrDefault'), 'groupConcatOrDefault': ('groupConcat', 'OrDefault'), 'corrOrDefault': ('corr', 'OrDefault'), 'sumWithOverflowOrDefault': ('sumWithOverflow', 'OrDefault'), 'last_valueOrDefault': ('last_value', 'OrDefault'), 'argMaxOrDefault': ('argMax', 'OrDefault'), 'quantilesTimingOrDefault': ('quantilesTiming', 'OrDefault'), 'groupArrayMovingSumOrDefault': ('groupArrayMovingSum', 'OrDefault'), 'deltaSumTimestampOrDefault': ('deltaSumTimestamp', 'OrDefault'), 'quantilesBFloat16WeightedOrDefault': ('quantilesBFloat16Weighted', 'OrDefault'), 'intervalLengthSumOrDefault': ('intervalLengthSum', 'OrDefault'), 'sumKahanDistinct': ('sumKahan', 'Distinct'), 'quantilesExactHighDistinct': ('quantilesExactHigh', 'Distinct'), 'anyDistinct': ('any', 'Distinct'), 'uniqThetaDistinct': ('uniqTheta', 'Distinct'), 'groupBitXorDistinct': ('groupBitXor', 'Distinct'), 'theilsUDistinct': ('theilsU', 'Distinct'), 'boundingRatioDistinct': ('boundingRatio', 'Distinct'), 'histogramDistinct': ('histogram', 'Distinct'), 'kolmogorovSmirnovTestDistinct': ('kolmogorovSmirnovTest', 'Distinct'), 'groupBitmapXorDistinct': ('groupBitmapXor', 'Distinct'), 'quantileDeterministicDistinct': ('quantileDeterministic', 'Distinct'), 'varPopDistinct': ('varPop', 'Distinct'), 'first_valueDistinct': ('first_value', 'Distinct'), 'uniqHLL12Distinct': ('uniqHLL12', 'Distinct'), 'minMapDistinct': ('minMap', 'Distinct'), 'simpleLinearRegressionDistinct': ('simpleLinearRegression', 'Distinct'), 'quantilesInterpolatedWeightedDistinct': ('quantilesInterpolatedWeighted', 'Distinct'), 'maxDistinct': ('max', 'Distinct'), 'quantileTDigestWeightedDistinct': ('quantileTDigestWeighted', 'Distinct'), 'groupUniqArrayDistinct': ('groupUniqArray', 'Distinct'), 'meanZTestDistinct': ('meanZTest', 'Distinct'), 'stochasticLogisticRegressionDistinct': ('stochasticLogisticRegression', 'Distinct'), 'cramersVBiasCorrectedDistinct': ('cramersVBiasCorrected', 'Distinct'), 'covarPopDistinct': ('covarPop', 'Distinct'), 'countDistinct': ('count', 'Distinct'), 'deltaSumDistinct': ('deltaSum', 'Distinct'), 'quantileInterpolatedWeightedDistinct': ('quantileInterpolatedWeighted', 'Distinct'), 'quantileGKDistinct': ('quantileGK', 'Distinct'), 'anyHeavyDistinct': ('anyHeavy', 'Distinct'), 'uniqUpToDistinct': ('uniqUpTo', 'Distinct'), 'studentTTestDistinct': ('studentTTest', 'Distinct'), 'varSampDistinct': ('varSamp', 'Distinct'), 'groupBitmapOrDistinct': ('groupBitmapOr', 'Distinct'), 'argMinDistinct': ('argMin', 'Distinct'), 'contingencyDistinct': ('contingency', 'Distinct'), 'quantilesExactLowDistinct': ('quantilesExactLow', 'Distinct'), 'covarSampDistinct': ('covarSamp', 'Distinct'), 'mannWhitneyUTestDistinct': ('mannWhitneyUTest', 'Distinct'), 'quantilesExactWeightedDistinct': ('quantilesExactWeighted', 'Distinct'), 'quantileTimingWeightedDistinct': ('quantileTimingWeighted', 'Distinct'), 'minDistinct': ('min', 'Distinct'), 'approx_top_sumDistinct': ('approx_top_sum', 'Distinct'), 'uniqDistinct': ('uniq', 'Distinct'), 'quantilesExactDistinct': ('quantilesExact', 'Distinct'), 'retentionDistinct': ('retention', 'Distinct'), 'uniqExactDistinct': ('uniqExact', 'Distinct'), 'stochasticLinearRegressionDistinct': ('stochasticLinearRegression', 'Distinct'), 'quantilesExactExclusiveDistinct': ('quantilesExactExclusive', 'Distinct'), 'sparkBarDistinct': ('sparkBar', 'Distinct'), 'skewPopDistinct': ('skewPop', 'Distinct'), 'groupArrayMovingAvgDistinct': ('groupArrayMovingAvg', 'Distinct'), 'medianDistinct': ('median', 'Distinct'), 'groupArrayLastDistinct': ('groupArrayLast', 'Distinct'), 'kurtPopDistinct': ('kurtPop', 'Distinct'), 'exponentialMovingAverageDistinct': ('exponentialMovingAverage', 'Distinct'), 'sequenceNextNodeDistinct': ('sequenceNextNode', 'Distinct'), 'quantileDistinct': ('quantile', 'Distinct'), 'groupArrayInsertAtDistinct': ('groupArrayInsertAt', 'Distinct'), 'sumDistinct': ('sum', 'Distinct'), 'quantileBFloat16Distinct': ('quantileBFloat16', 'Distinct'), 'rankCorrDistinct': ('rankCorr', 'Distinct'), 'quantileTDigestDistinct': ('quantileTDigest', 'Distinct'), 'maxIntersectionsPositionDistinct': ('maxIntersectionsPosition', 'Distinct'), 'sumMapDistinct': ('sumMap', 'Distinct'), 'kurtSampDistinct': ('kurtSamp', 'Distinct'), 'exponentialTimeDecayedAvgDistinct': ('exponentialTimeDecayedAvg', 'Distinct'), 'avgWeightedDistinct': ('avgWeighted', 'Distinct'), 'topKWeightedDistinct': ('topKWeighted', 'Distinct'), 'largestTriangleThreeBucketsDistinct': ('largestTriangleThreeBuckets', 'Distinct'), 'groupArraySampleDistinct': ('groupArraySample', 'Distinct'), 'quantileExactHighDistinct': ('quantileExactHigh', 'Distinct'), 'windowFunnelDistinct': ('windowFunnel', 'Distinct'), 'quantileExactWeightedDistinct': ('quantileExactWeighted', 'Distinct'), 'quantileExactLowDistinct': ('quantileExactLow', 'Distinct'), 'maxMapDistinct': ('maxMap', 'Distinct'), 'welchTTestDistinct': ('welchTTest', 'Distinct'), 'groupBitOrDistinct': ('groupBitOr', 'Distinct'), 'quantilesDistinct': ('quantiles', 'Distinct'), 'avgDistinct': ('avg', 'Distinct'), 'cramersVDistinct': ('cramersV', 'Distinct'), 'anyLastDistinct': ('anyLast', 'Distinct'), 'quantilesGKDistinct': ('quantilesGK', 'Distinct'), 'sequenceMatchDistinct': ('sequenceMatch', 'Distinct'), 'quantilesTimingWeightedDistinct': ('quantilesTimingWeighted', 'Distinct'), 'quantilesDeterministicDistinct': ('quantilesDeterministic', 'Distinct'), 'sumCountDistinct': ('sumCount', 'Distinct'), 'maxIntersectionsDistinct': ('maxIntersections', 'Distinct'), 'stddevSampDistinct': ('stddevSamp', 'Distinct'), 'groupBitmapAndDistinct': ('groupBitmapAnd', 'Distinct'), 'groupArrayDistinct': ('groupArray', 'Distinct'), 'uniqCombinedDistinct': ('uniqCombined', 'Distinct'), 'skewSampDistinct': ('skewSamp', 'Distinct'), 'groupBitmapDistinct': ('groupBitmap', 'Distinct'), 'quantilesBFloat16Distinct': ('quantilesBFloat16', 'Distinct'), 'quantilesTDigestDistinct': ('quantilesTDigest', 'Distinct'), 'sequenceCountDistinct': ('sequenceCount', 'Distinct'), 'uniqCombined64Distinct': ('uniqCombined64', 'Distinct'), 'entropyDistinct': ('entropy', 'Distinct'), 'quantilesTDigestWeightedDistinct': ('quantilesTDigestWeighted', 'Distinct'), 'quantileExactDistinct': ('quantileExact', 'Distinct'), 'categoricalInformationValueDistinct': ('categoricalInformationValue', 'Distinct'), 'topKDistinct': ('topK', 'Distinct'), 'groupBitAndDistinct': ('groupBitAnd', 'Distinct'), 'stddevPopDistinct': ('stddevPop', 'Distinct'), 'quantileBFloat16WeightedDistinct': ('quantileBFloat16Weighted', 'Distinct'), 'quantileTimingDistinct': ('quantileTiming', 'Distinct'), 'groupConcatDistinct': ('groupConcat', 'Distinct'), 'corrDistinct': ('corr', 'Distinct'), 'sumWithOverflowDistinct': ('sumWithOverflow', 'Distinct'), 'last_valueDistinct': ('last_value', 'Distinct'), 'argMaxDistinct': ('argMax', 'Distinct'), 'quantilesTimingDistinct': ('quantilesTiming', 'Distinct'), 'groupArrayMovingSumDistinct': ('groupArrayMovingSum', 'Distinct'), 'deltaSumTimestampDistinct': ('deltaSumTimestamp', 'Distinct'), 'quantilesBFloat16WeightedDistinct': ('quantilesBFloat16Weighted', 'Distinct'), 'intervalLengthSumDistinct': ('intervalLengthSum', 'Distinct'), 'sumKahanResample': ('sumKahan', 'Resample'), 'quantilesExactHighResample': ('quantilesExactHigh', 'Resample'), 'anyResample': ('any', 'Resample'), 'uniqThetaResample': ('uniqTheta', 'Resample'), 'groupBitXorResample': ('groupBitXor', 'Resample'), 'theilsUResample': ('theilsU', 'Resample'), 'boundingRatioResample': ('boundingRatio', 'Resample'), 'histogramResample': ('histogram', 'Resample'), 'kolmogorovSmirnovTestResample': ('kolmogorovSmirnovTest', 'Resample'), 'groupBitmapXorResample': ('groupBitmapXor', 'Resample'), 'quantileDeterministicResample': ('quantileDeterministic', 'Resample'), 'varPopResample': ('varPop', 'Resample'), 'first_valueResample': ('first_value', 'Resample'), 'uniqHLL12Resample': ('uniqHLL12', 'Resample'), 'minMapResample': ('minMap', 'Resample'), 'simpleLinearRegressionResample': ('simpleLinearRegression', 'Resample'), 'quantilesInterpolatedWeightedResample': ('quantilesInterpolatedWeighted', 'Resample'), 'maxResample': ('max', 'Resample'), 'quantileTDigestWeightedResample': ('quantileTDigestWeighted', 'Resample'), 'groupUniqArrayResample': ('groupUniqArray', 'Resample'), 'meanZTestResample': ('meanZTest', 'Resample'), 'stochasticLogisticRegressionResample': ('stochasticLogisticRegression', 'Resample'), 'cramersVBiasCorrectedResample': ('cramersVBiasCorrected', 'Resample'), 'covarPopResample': ('covarPop', 'Resample'), 'countResample': ('count', 'Resample'), 'deltaSumResample': ('deltaSum', 'Resample'), 'quantileInterpolatedWeightedResample': ('quantileInterpolatedWeighted', 'Resample'), 'quantileGKResample': ('quantileGK', 'Resample'), 'anyHeavyResample': ('anyHeavy', 'Resample'), 'uniqUpToResample': ('uniqUpTo', 'Resample'), 'studentTTestResample': ('studentTTest', 'Resample'), 'varSampResample': ('varSamp', 'Resample'), 'groupBitmapOrResample': ('groupBitmapOr', 'Resample'), 'argMinResample': ('argMin', 'Resample'), 'contingencyResample': ('contingency', 'Resample'), 'quantilesExactLowResample': ('quantilesExactLow', 'Resample'), 'covarSampResample': ('covarSamp', 'Resample'), 'mannWhitneyUTestResample': ('mannWhitneyUTest', 'Resample'), 'quantilesExactWeightedResample': ('quantilesExactWeighted', 'Resample'), 'quantileTimingWeightedResample': ('quantileTimingWeighted', 'Resample'), 'minResample': ('min', 'Resample'), 'approx_top_sumResample': ('approx_top_sum', 'Resample'), 'uniqResample': ('uniq', 'Resample'), 'quantilesExactResample': ('quantilesExact', 'Resample'), 'retentionResample': ('retention', 'Resample'), 'uniqExactResample': ('uniqExact', 'Resample'), 'stochasticLinearRegressionResample': ('stochasticLinearRegression', 'Resample'), 'quantilesExactExclusiveResample': ('quantilesExactExclusive', 'Resample'), 'sparkBarResample': ('sparkBar', 'Resample'), 'skewPopResample': ('skewPop', 'Resample'), 'groupArrayMovingAvgResample': ('groupArrayMovingAvg', 'Resample'), 'medianResample': ('median', 'Resample'), 'groupArrayLastResample': ('groupArrayLast', 'Resample'), 'kurtPopResample': ('kurtPop', 'Resample'), 'exponentialMovingAverageResample': ('exponentialMovingAverage', 'Resample'), 'sequenceNextNodeResample': ('sequenceNextNode', 'Resample'), 'quantileResample': ('quantile', 'Resample'), 'groupArrayInsertAtResample': ('groupArrayInsertAt', 'Resample'), 'sumResample': ('sum', 'Resample'), 'quantileBFloat16Resample': ('quantileBFloat16', 'Resample'), 'rankCorrResample': ('rankCorr', 'Resample'), 'quantileTDigestResample': ('quantileTDigest', 'Resample'), 'maxIntersectionsPositionResample': ('maxIntersectionsPosition', 'Resample'), 'sumMapResample': ('sumMap', 'Resample'), 'kurtSampResample': ('kurtSamp', 'Resample'), 'exponentialTimeDecayedAvgResample': ('exponentialTimeDecayedAvg', 'Resample'), 'avgWeightedResample': ('avgWeighted', 'Resample'), 'topKWeightedResample': ('topKWeighted', 'Resample'), 'largestTriangleThreeBucketsResample': ('largestTriangleThreeBuckets', 'Resample'), 'groupArraySampleResample': ('groupArraySample', 'Resample'), 'quantileExactHighResample': ('quantileExactHigh', 'Resample'), 'windowFunnelResample': ('windowFunnel', 'Resample'), 'quantileExactWeightedResample': ('quantileExactWeighted', 'Resample'), 'quantileExactLowResample': ('quantileExactLow', 'Resample'), 'maxMapResample': ('maxMap', 'Resample'), 'welchTTestResample': ('welchTTest', 'Resample'), 'groupBitOrResample': ('groupBitOr', 'Resample'), 'quantilesResample': ('quantiles', 'Resample'), 'avgResample': ('avg', 'Resample'), 'cramersVResample': ('cramersV', 'Resample'), 'anyLastResample': ('anyLast', 'Resample'), 'quantilesGKResample': ('quantilesGK', 'Resample'), 'sequenceMatchResample': ('sequenceMatch', 'Resample'), 'quantilesTimingWeightedResample': ('quantilesTimingWeighted', 'Resample'), 'quantilesDeterministicResample': ('quantilesDeterministic', 'Resample'), 'sumCountResample': ('sumCount', 'Resample'), 'maxIntersectionsResample': ('maxIntersections', 'Resample'), 'stddevSampResample': ('stddevSamp', 'Resample'), 'groupBitmapAndResample': ('groupBitmapAnd', 'Resample'), 'groupArrayResample': ('groupArray', 'Resample'), 'uniqCombinedResample': ('uniqCombined', 'Resample'), 'skewSampResample': ('skewSamp', 'Resample'), 'groupBitmapResample': ('groupBitmap', 'Resample'), 'quantilesBFloat16Resample': ('quantilesBFloat16', 'Resample'), 'quantilesTDigestResample': ('quantilesTDigest', 'Resample'), 'sequenceCountResample': ('sequenceCount', 'Resample'), 'uniqCombined64Resample': ('uniqCombined64', 'Resample'), 'entropyResample': ('entropy', 'Resample'), 'quantilesTDigestWeightedResample': ('quantilesTDigestWeighted', 'Resample'), 'quantileExactResample': ('quantileExact', 'Resample'), 'categoricalInformationValueResample': ('categoricalInformationValue', 'Resample'), 'topKResample': ('topK', 'Resample'), 'groupBitAndResample': ('groupBitAnd', 'Resample'), 'stddevPopResample': ('stddevPop', 'Resample'), 'quantileBFloat16WeightedResample': ('quantileBFloat16Weighted', 'Resample'), 'quantileTimingResample': ('quantileTiming', 'Resample'), 'groupConcatResample': ('groupConcat', 'Resample'), 'corrResample': ('corr', 'Resample'), 'sumWithOverflowResample': ('sumWithOverflow', 'Resample'), 'last_valueResample': ('last_value', 'Resample'), 'argMaxResample': ('argMax', 'Resample'), 'quantilesTimingResample': ('quantilesTiming', 'Resample'), 'groupArrayMovingSumResample': ('groupArrayMovingSum', 'Resample'), 'deltaSumTimestampResample': ('deltaSumTimestamp', 'Resample'), 'quantilesBFloat16WeightedResample': ('quantilesBFloat16Weighted', 'Resample'), 'intervalLengthSumResample': ('intervalLengthSum', 'Resample'), 'sumKahanArrayIf': ('sumKahan', 'ArrayIf'), 'quantilesExactHighArrayIf': ('quantilesExactHigh', 'ArrayIf'), 'anyArrayIf': ('any', 'ArrayIf'), 'uniqThetaArrayIf': ('uniqTheta', 'ArrayIf'), 'groupBitXorArrayIf': ('groupBitXor', 'ArrayIf'), 'theilsUArrayIf': ('theilsU', 'ArrayIf'), 'boundingRatioArrayIf': ('boundingRatio', 'ArrayIf'), 'histogramArrayIf': ('histogram', 'ArrayIf'), 'kolmogorovSmirnovTestArrayIf': ('kolmogorovSmirnovTest', 'ArrayIf'), 'groupBitmapXorArrayIf': ('groupBitmapXor', 'ArrayIf'), 'quantileDeterministicArrayIf': ('quantileDeterministic', 'ArrayIf'), 'varPopArrayIf': ('varPop', 'ArrayIf'), 'first_valueArrayIf': ('first_value', 'ArrayIf'), 'uniqHLL12ArrayIf': ('uniqHLL12', 'ArrayIf'), 'minMapArrayIf': ('minMap', 'ArrayIf'), 'simpleLinearRegressionArrayIf': ('simpleLinearRegression', 'ArrayIf'), 'quantilesInterpolatedWeightedArrayIf': ('quantilesInterpolatedWeighted', 'ArrayIf'), 'maxArrayIf': ('max', 'ArrayIf'), 'quantileTDigestWeightedArrayIf': ('quantileTDigestWeighted', 'ArrayIf'), 'groupUniqArrayArrayIf': ('groupUniqArray', 'ArrayIf'), 'meanZTestArrayIf': ('meanZTest', 'ArrayIf'), 'stochasticLogisticRegressionArrayIf': ('stochasticLogisticRegression', 'ArrayIf'), 'cramersVBiasCorrectedArrayIf': ('cramersVBiasCorrected', 'ArrayIf'), 'covarPopArrayIf': ('covarPop', 'ArrayIf'), 'countArrayIf': ('count', 'ArrayIf'), 'deltaSumArrayIf': ('deltaSum', 'ArrayIf'), 'quantileInterpolatedWeightedArrayIf': ('quantileInterpolatedWeighted', 'ArrayIf'), 'quantileGKArrayIf': ('quantileGK', 'ArrayIf'), 'anyHeavyArrayIf': ('anyHeavy', 'ArrayIf'), 'uniqUpToArrayIf': ('uniqUpTo', 'ArrayIf'), 'studentTTestArrayIf': ('studentTTest', 'ArrayIf'), 'varSampArrayIf': ('varSamp', 'ArrayIf'), 'groupBitmapOrArrayIf': ('groupBitmapOr', 'ArrayIf'), 'argMinArrayIf': ('argMin', 'ArrayIf'), 'contingencyArrayIf': ('contingency', 'ArrayIf'), 'quantilesExactLowArrayIf': ('quantilesExactLow', 'ArrayIf'), 'covarSampArrayIf': ('covarSamp', 'ArrayIf'), 'mannWhitneyUTestArrayIf': ('mannWhitneyUTest', 'ArrayIf'), 'quantilesExactWeightedArrayIf': ('quantilesExactWeighted', 'ArrayIf'), 'quantileTimingWeightedArrayIf': ('quantileTimingWeighted', 'ArrayIf'), 'minArrayIf': ('min', 'ArrayIf'), 'approx_top_sumArrayIf': ('approx_top_sum', 'ArrayIf'), 'uniqArrayIf': ('uniq', 'ArrayIf'), 'quantilesExactArrayIf': ('quantilesExact', 'ArrayIf'), 'retentionArrayIf': ('retention', 'ArrayIf'), 'uniqExactArrayIf': ('uniqExact', 'ArrayIf'), 'stochasticLinearRegressionArrayIf': ('stochasticLinearRegression', 'ArrayIf'), 'quantilesExactExclusiveArrayIf': ('quantilesExactExclusive', 'ArrayIf'), 'sparkBarArrayIf': ('sparkBar', 'ArrayIf'), 'skewPopArrayIf': ('skewPop', 'ArrayIf'), 'groupArrayMovingAvgArrayIf': ('groupArrayMovingAvg', 'ArrayIf'), 'medianArrayIf': ('median', 'ArrayIf'), 'groupArrayLastArrayIf': ('groupArrayLast', 'ArrayIf'), 'kurtPopArrayIf': ('kurtPop', 'ArrayIf'), 'exponentialMovingAverageArrayIf': ('exponentialMovingAverage', 'ArrayIf'), 'sequenceNextNodeArrayIf': ('sequenceNextNode', 'ArrayIf'), 'quantileArrayIf': ('quantile', 'ArrayIf'), 'groupArrayInsertAtArrayIf': ('groupArrayInsertAt', 'ArrayIf'), 'sumArrayIf': ('sum', 'ArrayIf'), 'quantileBFloat16ArrayIf': ('quantileBFloat16', 'ArrayIf'), 'rankCorrArrayIf': ('rankCorr', 'ArrayIf'), 'quantileTDigestArrayIf': ('quantileTDigest', 'ArrayIf'), 'maxIntersectionsPositionArrayIf': ('maxIntersectionsPosition', 'ArrayIf'), 'sumMapArrayIf': ('sumMap', 'ArrayIf'), 'kurtSampArrayIf': ('kurtSamp', 'ArrayIf'), 'exponentialTimeDecayedAvgArrayIf': ('exponentialTimeDecayedAvg', 'ArrayIf'), 'avgWeightedArrayIf': ('avgWeighted', 'ArrayIf'), 'topKWeightedArrayIf': ('topKWeighted', 'ArrayIf'), 'largestTriangleThreeBucketsArrayIf': ('largestTriangleThreeBuckets', 'ArrayIf'), 'groupArraySampleArrayIf': ('groupArraySample', 'ArrayIf'), 'quantileExactHighArrayIf': ('quantileExactHigh', 'ArrayIf'), 'windowFunnelArrayIf': ('windowFunnel', 'ArrayIf'), 'quantileExactWeightedArrayIf': ('quantileExactWeighted', 'ArrayIf'), 'quantileExactLowArrayIf': ('quantileExactLow', 'ArrayIf'), 'maxMapArrayIf': ('maxMap', 'ArrayIf'), 'welchTTestArrayIf': ('welchTTest', 'ArrayIf'), 'groupBitOrArrayIf': ('groupBitOr', 'ArrayIf'), 'quantilesArrayIf': ('quantiles', 'ArrayIf'), 'avgArrayIf': ('avg', 'ArrayIf'), 'cramersVArrayIf': ('cramersV', 'ArrayIf'), 'anyLastArrayIf': ('anyLast', 'ArrayIf'), 'quantilesGKArrayIf': ('quantilesGK', 'ArrayIf'), 'sequenceMatchArrayIf': ('sequenceMatch', 'ArrayIf'), 'quantilesTimingWeightedArrayIf': ('quantilesTimingWeighted', 'ArrayIf'), 'quantilesDeterministicArrayIf': ('quantilesDeterministic', 'ArrayIf'), 'sumCountArrayIf': ('sumCount', 'ArrayIf'), 'maxIntersectionsArrayIf': ('maxIntersections', 'ArrayIf'), 'stddevSampArrayIf': ('stddevSamp', 'ArrayIf'), 'groupBitmapAndArrayIf': ('groupBitmapAnd', 'ArrayIf'), 'groupArrayArrayIf': ('groupArray', 'ArrayIf'), 'uniqCombinedArrayIf': ('uniqCombined', 'ArrayIf'), 'skewSampArrayIf': ('skewSamp', 'ArrayIf'), 'groupBitmapArrayIf': ('groupBitmap', 'ArrayIf'), 'quantilesBFloat16ArrayIf': ('quantilesBFloat16', 'ArrayIf'), 'quantilesTDigestArrayIf': ('quantilesTDigest', 'ArrayIf'), 'sequenceCountArrayIf': ('sequenceCount', 'ArrayIf'), 'uniqCombined64ArrayIf': ('uniqCombined64', 'ArrayIf'), 'entropyArrayIf': ('entropy', 'ArrayIf'), 'quantilesTDigestWeightedArrayIf': ('quantilesTDigestWeighted', 'ArrayIf'), 'quantileExactArrayIf': ('quantileExact', 'ArrayIf'), 'categoricalInformationValueArrayIf': ('categoricalInformationValue', 'ArrayIf'), 'topKArrayIf': ('topK', 'ArrayIf'), 'groupBitAndArrayIf': ('groupBitAnd', 'ArrayIf'), 'stddevPopArrayIf': ('stddevPop', 'ArrayIf'), 'quantileBFloat16WeightedArrayIf': ('quantileBFloat16Weighted', 'ArrayIf'), 'quantileTimingArrayIf': ('quantileTiming', 'ArrayIf'), 'groupConcatArrayIf': ('groupConcat', 'ArrayIf'), 'corrArrayIf': ('corr', 'ArrayIf'), 'sumWithOverflowArrayIf': ('sumWithOverflow', 'ArrayIf'), 'last_valueArrayIf': ('last_value', 'ArrayIf'), 'argMaxArrayIf': ('argMax', 'ArrayIf'), 'quantilesTimingArrayIf': ('quantilesTiming', 'ArrayIf'), 'groupArrayMovingSumArrayIf': ('groupArrayMovingSum', 'ArrayIf'), 'deltaSumTimestampArrayIf': ('deltaSumTimestamp', 'ArrayIf'), 'quantilesBFloat16WeightedArrayIf': ('quantilesBFloat16Weighted', 'ArrayIf'), 'intervalLengthSumArrayIf': ('intervalLengthSum', 'ArrayIf'), 'sumKahanForEach': ('sumKahan', 'ForEach'), 'quantilesExactHighForEach': ('quantilesExactHigh', 'ForEach'), 'anyForEach': ('any', 'ForEach'), 'uniqThetaForEach': ('uniqTheta', 'ForEach'), 'groupBitXorForEach': ('groupBitXor', 'ForEach'), 'theilsUForEach': ('theilsU', 'ForEach'), 'boundingRatioForEach': ('boundingRatio', 'ForEach'), 'histogramForEach': ('histogram', 'ForEach'), 'kolmogorovSmirnovTestForEach': ('kolmogorovSmirnovTest', 'ForEach'), 'groupBitmapXorForEach': ('groupBitmapXor', 'ForEach'), 'quantileDeterministicForEach': ('quantileDeterministic', 'ForEach'), 'varPopForEach': ('varPop', 'ForEach'), 'first_valueForEach': ('first_value', 'ForEach'), 'uniqHLL12ForEach': ('uniqHLL12', 'ForEach'), 'minMapForEach': ('minMap', 'ForEach'), 'simpleLinearRegressionForEach': ('simpleLinearRegression', 'ForEach'), 'quantilesInterpolatedWeightedForEach': ('quantilesInterpolatedWeighted', 'ForEach'), 'maxForEach': ('max', 'ForEach'), 'quantileTDigestWeightedForEach': ('quantileTDigestWeighted', 'ForEach'), 'groupUniqArrayForEach': ('groupUniqArray', 'ForEach'), 'meanZTestForEach': ('meanZTest', 'ForEach'), 'stochasticLogisticRegressionForEach': ('stochasticLogisticRegression', 'ForEach'), 'cramersVBiasCorrectedForEach': ('cramersVBiasCorrected', 'ForEach'), 'covarPopForEach': ('covarPop', 'ForEach'), 'countForEach': ('count', 'ForEach'), 'deltaSumForEach': ('deltaSum', 'ForEach'), 'quantileInterpolatedWeightedForEach': ('quantileInterpolatedWeighted', 'ForEach'), 'quantileGKForEach': ('quantileGK', 'ForEach'), 'anyHeavyForEach': ('anyHeavy', 'ForEach'), 'uniqUpToForEach': ('uniqUpTo', 'ForEach'), 'studentTTestForEach': ('studentTTest', 'ForEach'), 'varSampForEach': ('varSamp', 'ForEach'), 'groupBitmapOrForEach': ('groupBitmapOr', 'ForEach'), 'argMinForEach': ('argMin', 'ForEach'), 'contingencyForEach': ('contingency', 'ForEach'), 'quantilesExactLowForEach': ('quantilesExactLow', 'ForEach'), 'covarSampForEach': ('covarSamp', 'ForEach'), 'mannWhitneyUTestForEach': ('mannWhitneyUTest', 'ForEach'), 'quantilesExactWeightedForEach': ('quantilesExactWeighted', 'ForEach'), 'quantileTimingWeightedForEach': ('quantileTimingWeighted', 'ForEach'), 'minForEach': ('min', 'ForEach'), 'approx_top_sumForEach': ('approx_top_sum', 'ForEach'), 'uniqForEach': ('uniq', 'ForEach'), 'quantilesExactForEach': ('quantilesExact', 'ForEach'), 'retentionForEach': ('retention', 'ForEach'), 'uniqExactForEach': ('uniqExact', 'ForEach'), 'stochasticLinearRegressionForEach': ('stochasticLinearRegression', 'ForEach'), 'quantilesExactExclusiveForEach': ('quantilesExactExclusive', 'ForEach'), 'sparkBarForEach': ('sparkBar', 'ForEach'), 'skewPopForEach': ('skewPop', 'ForEach'), 'groupArrayMovingAvgForEach': ('groupArrayMovingAvg', 'ForEach'), 'medianForEach': ('median', 'ForEach'), 'groupArrayLastForEach': ('groupArrayLast', 'ForEach'), 'kurtPopForEach': ('kurtPop', 'ForEach'), 'exponentialMovingAverageForEach': ('exponentialMovingAverage', 'ForEach'), 'sequenceNextNodeForEach': ('sequenceNextNode', 'ForEach'), 'quantileForEach': ('quantile', 'ForEach'), 'groupArrayInsertAtForEach': ('groupArrayInsertAt', 'ForEach'), 'sumForEach': ('sum', 'ForEach'), 'quantileBFloat16ForEach': ('quantileBFloat16', 'ForEach'), 'rankCorrForEach': ('rankCorr', 'ForEach'), 'quantileTDigestForEach': ('quantileTDigest', 'ForEach'), 'maxIntersectionsPositionForEach': ('maxIntersectionsPosition', 'ForEach'), 'sumMapForEach': ('sumMap', 'ForEach'), 'kurtSampForEach': ('kurtSamp', 'ForEach'), 'exponentialTimeDecayedAvgForEach': ('exponentialTimeDecayedAvg', 'ForEach'), 'avgWeightedForEach': ('avgWeighted', 'ForEach'), 'topKWeightedForEach': ('topKWeighted', 'ForEach'), 'largestTriangleThreeBucketsForEach': ('largestTriangleThreeBuckets', 'ForEach'), 'groupArraySampleForEach': ('groupArraySample', 'ForEach'), 'quantileExactHighForEach': ('quantileExactHigh', 'ForEach'), 'windowFunnelForEach': ('windowFunnel', 'ForEach'), 'quantileExactWeightedForEach': ('quantileExactWeighted', 'ForEach'), 'quantileExactLowForEach': ('quantileExactLow', 'ForEach'), 'maxMapForEach': ('maxMap', 'ForEach'), 'welchTTestForEach': ('welchTTest', 'ForEach'), 'groupBitOrForEach': ('groupBitOr', 'ForEach'), 'quantilesForEach': ('quantiles', 'ForEach'), 'avgForEach': ('avg', 'ForEach'), 'cramersVForEach': ('cramersV', 'ForEach'), 'anyLastForEach': ('anyLast', 'ForEach'), 'quantilesGKForEach': ('quantilesGK', 'ForEach'), 'sequenceMatchForEach': ('sequenceMatch', 'ForEach'), 'quantilesTimingWeightedForEach': ('quantilesTimingWeighted', 'ForEach'), 'quantilesDeterministicForEach': ('quantilesDeterministic', 'ForEach'), 'sumCountForEach': ('sumCount', 'ForEach'), 'maxIntersectionsForEach': ('maxIntersections', 'ForEach'), 'stddevSampForEach': ('stddevSamp', 'ForEach'), 'groupBitmapAndForEach': ('groupBitmapAnd', 'ForEach'), 'groupArrayForEach': ('groupArray', 'ForEach'), 'uniqCombinedForEach': ('uniqCombined', 'ForEach'), 'skewSampForEach': ('skewSamp', 'ForEach'), 'groupBitmapForEach': ('groupBitmap', 'ForEach'), 'quantilesBFloat16ForEach': ('quantilesBFloat16', 'ForEach'), 'quantilesTDigestForEach': ('quantilesTDigest', 'ForEach'), 'sequenceCountForEach': ('sequenceCount', 'ForEach'), 'uniqCombined64ForEach': ('uniqCombined64', 'ForEach'), 'entropyForEach': ('entropy', 'ForEach'), 'quantilesTDigestWeightedForEach': ('quantilesTDigestWeighted', 'ForEach'), 'quantileExactForEach': ('quantileExact', 'ForEach'), 'categoricalInformationValueForEach': ('categoricalInformationValue', 'ForEach'), 'topKForEach': ('topK', 'ForEach'), 'groupBitAndForEach': ('groupBitAnd', 'ForEach'), 'stddevPopForEach': ('stddevPop', 'ForEach'), 'quantileBFloat16WeightedForEach': ('quantileBFloat16Weighted', 'ForEach'), 'quantileTimingForEach': ('quantileTiming', 'ForEach'), 'groupConcatForEach': ('groupConcat', 'ForEach'), 'corrForEach': ('corr', 'ForEach'), 'sumWithOverflowForEach': ('sumWithOverflow', 'ForEach'), 'last_valueForEach': ('last_value', 'ForEach'), 'argMaxForEach': ('argMax', 'ForEach'), 'quantilesTimingForEach': ('quantilesTiming', 'ForEach'), 'groupArrayMovingSumForEach': ('groupArrayMovingSum', 'ForEach'), 'deltaSumTimestampForEach': ('deltaSumTimestamp', 'ForEach'), 'quantilesBFloat16WeightedForEach': ('quantilesBFloat16Weighted', 'ForEach'), 'intervalLengthSumForEach': ('intervalLengthSum', 'ForEach'), 'sumKahanOrNull': ('sumKahan', 'OrNull'), 'quantilesExactHighOrNull': ('quantilesExactHigh', 'OrNull'), 'anyOrNull': ('any', 'OrNull'), 'uniqThetaOrNull': ('uniqTheta', 'OrNull'), 'groupBitXorOrNull': ('groupBitXor', 'OrNull'), 'theilsUOrNull': ('theilsU', 'OrNull'), 'boundingRatioOrNull': ('boundingRatio', 'OrNull'), 'histogramOrNull': ('histogram', 'OrNull'), 'kolmogorovSmirnovTestOrNull': ('kolmogorovSmirnovTest', 'OrNull'), 'groupBitmapXorOrNull': ('groupBitmapXor', 'OrNull'), 'quantileDeterministicOrNull': ('quantileDeterministic', 'OrNull'), 'varPopOrNull': ('varPop', 'OrNull'), 'first_valueOrNull': ('first_value', 'OrNull'), 'uniqHLL12OrNull': ('uniqHLL12', 'OrNull'), 'minMapOrNull': ('minMap', 'OrNull'), 'simpleLinearRegressionOrNull': ('simpleLinearRegression', 'OrNull'), 'quantilesInterpolatedWeightedOrNull': ('quantilesInterpolatedWeighted', 'OrNull'), 'maxOrNull': ('max', 'OrNull'), 'quantileTDigestWeightedOrNull': ('quantileTDigestWeighted', 'OrNull'), 'groupUniqArrayOrNull': ('groupUniqArray', 'OrNull'), 'meanZTestOrNull': ('meanZTest', 'OrNull'), 'stochasticLogisticRegressionOrNull': ('stochasticLogisticRegression', 'OrNull'), 'cramersVBiasCorrectedOrNull': ('cramersVBiasCorrected', 'OrNull'), 'covarPopOrNull': ('covarPop', 'OrNull'), 'countOrNull': ('count', 'OrNull'), 'deltaSumOrNull': ('deltaSum', 'OrNull'), 'quantileInterpolatedWeightedOrNull': ('quantileInterpolatedWeighted', 'OrNull'), 'quantileGKOrNull': ('quantileGK', 'OrNull'), 'anyHeavyOrNull': ('anyHeavy', 'OrNull'), 'uniqUpToOrNull': ('uniqUpTo', 'OrNull'), 'studentTTestOrNull': ('studentTTest', 'OrNull'), 'varSampOrNull': ('varSamp', 'OrNull'), 'groupBitmapOrOrNull': ('groupBitmapOr', 'OrNull'), 'argMinOrNull': ('argMin', 'OrNull'), 'contingencyOrNull': ('contingency', 'OrNull'), 'quantilesExactLowOrNull': ('quantilesExactLow', 'OrNull'), 'covarSampOrNull': ('covarSamp', 'OrNull'), 'mannWhitneyUTestOrNull': ('mannWhitneyUTest', 'OrNull'), 'quantilesExactWeightedOrNull': ('quantilesExactWeighted', 'OrNull'), 'quantileTimingWeightedOrNull': ('quantileTimingWeighted', 'OrNull'), 'minOrNull': ('min', 'OrNull'), 'approx_top_sumOrNull': ('approx_top_sum', 'OrNull'), 'uniqOrNull': ('uniq', 'OrNull'), 'quantilesExactOrNull': ('quantilesExact', 'OrNull'), 'retentionOrNull': ('retention', 'OrNull'), 'uniqExactOrNull': ('uniqExact', 'OrNull'), 'stochasticLinearRegressionOrNull': ('stochasticLinearRegression', 'OrNull'), 'quantilesExactExclusiveOrNull': ('quantilesExactExclusive', 'OrNull'), 'sparkBarOrNull': ('sparkBar', 'OrNull'), 'skewPopOrNull': ('skewPop', 'OrNull'), 'groupArrayMovingAvgOrNull': ('groupArrayMovingAvg', 'OrNull'), 'medianOrNull': ('median', 'OrNull'), 'groupArrayLastOrNull': ('groupArrayLast', 'OrNull'), 'kurtPopOrNull': ('kurtPop', 'OrNull'), 'exponentialMovingAverageOrNull': ('exponentialMovingAverage', 'OrNull'), 'sequenceNextNodeOrNull': ('sequenceNextNode', 'OrNull'), 'quantileOrNull': ('quantile', 'OrNull'), 'groupArrayInsertAtOrNull': ('groupArrayInsertAt', 'OrNull'), 'sumOrNull': ('sum', 'OrNull'), 'quantileBFloat16OrNull': ('quantileBFloat16', 'OrNull'), 'rankCorrOrNull': ('rankCorr', 'OrNull'), 'quantileTDigestOrNull': ('quantileTDigest', 'OrNull'), 'maxIntersectionsPositionOrNull': ('maxIntersectionsPosition', 'OrNull'), 'sumMapOrNull': ('sumMap', 'OrNull'), 'kurtSampOrNull': ('kurtSamp', 'OrNull'), 'exponentialTimeDecayedAvgOrNull': ('exponentialTimeDecayedAvg', 'OrNull'), 'avgWeightedOrNull': ('avgWeighted', 'OrNull'), 'topKWeightedOrNull': ('topKWeighted', 'OrNull'), 'largestTriangleThreeBucketsOrNull': ('largestTriangleThreeBuckets', 'OrNull'), 'groupArraySampleOrNull': ('groupArraySample', 'OrNull'), 'quantileExactHighOrNull': ('quantileExactHigh', 'OrNull'), 'windowFunnelOrNull': ('windowFunnel', 'OrNull'), 'quantileExactWeightedOrNull': ('quantileExactWeighted', 'OrNull'), 'quantileExactLowOrNull': ('quantileExactLow', 'OrNull'), 'maxMapOrNull': ('maxMap', 'OrNull'), 'welchTTestOrNull': ('welchTTest', 'OrNull'), 'groupBitOrOrNull': ('groupBitOr', 'OrNull'), 'quantilesOrNull': ('quantiles', 'OrNull'), 'avgOrNull': ('avg', 'OrNull'), 'cramersVOrNull': ('cramersV', 'OrNull'), 'anyLastOrNull': ('anyLast', 'OrNull'), 'quantilesGKOrNull': ('quantilesGK', 'OrNull'), 'sequenceMatchOrNull': ('sequenceMatch', 'OrNull'), 'quantilesTimingWeightedOrNull': ('quantilesTimingWeighted', 'OrNull'), 'quantilesDeterministicOrNull': ('quantilesDeterministic', 'OrNull'), 'sumCountOrNull': ('sumCount', 'OrNull'), 'maxIntersectionsOrNull': ('maxIntersections', 'OrNull'), 'stddevSampOrNull': ('stddevSamp', 'OrNull'), 'groupBitmapAndOrNull': ('groupBitmapAnd', 'OrNull'), 'groupArrayOrNull': ('groupArray', 'OrNull'), 'uniqCombinedOrNull': ('uniqCombined', 'OrNull'), 'skewSampOrNull': ('skewSamp', 'OrNull'), 'groupBitmapOrNull': ('groupBitmap', 'OrNull'), 'quantilesBFloat16OrNull': ('quantilesBFloat16', 'OrNull'), 'quantilesTDigestOrNull': ('quantilesTDigest', 'OrNull'), 'sequenceCountOrNull': ('sequenceCount', 'OrNull'), 'uniqCombined64OrNull': ('uniqCombined64', 'OrNull'), 'entropyOrNull': ('entropy', 'OrNull'), 'quantilesTDigestWeightedOrNull': ('quantilesTDigestWeighted', 'OrNull'), 'quantileExactOrNull': ('quantileExact', 'OrNull'), 'categoricalInformationValueOrNull': ('categoricalInformationValue', 'OrNull'), 'topKOrNull': ('topK', 'OrNull'), 'groupBitAndOrNull': ('groupBitAnd', 'OrNull'), 'stddevPopOrNull': ('stddevPop', 'OrNull'), 'quantileBFloat16WeightedOrNull': ('quantileBFloat16Weighted', 'OrNull'), 'quantileTimingOrNull': ('quantileTiming', 'OrNull'), 'groupConcatOrNull': ('groupConcat', 'OrNull'), 'corrOrNull': ('corr', 'OrNull'), 'sumWithOverflowOrNull': ('sumWithOverflow', 'OrNull'), 'last_valueOrNull': ('last_value', 'OrNull'), 'argMaxOrNull': ('argMax', 'OrNull'), 'quantilesTimingOrNull': ('quantilesTiming', 'OrNull'), 'groupArrayMovingSumOrNull': ('groupArrayMovingSum', 'OrNull'), 'deltaSumTimestampOrNull': ('deltaSumTimestamp', 'OrNull'), 'quantilesBFloat16WeightedOrNull': ('quantilesBFloat16Weighted', 'OrNull'), 'intervalLengthSumOrNull': ('intervalLengthSum', 'OrNull'), 'sumKahanArgMin': ('sumKahan', 'ArgMin'), 'quantilesExactHighArgMin': ('quantilesExactHigh', 'ArgMin'), 'anyArgMin': ('any', 'ArgMin'), 'uniqThetaArgMin': ('uniqTheta', 'ArgMin'), 'groupBitXorArgMin': ('groupBitXor', 'ArgMin'), 'theilsUArgMin': ('theilsU', 'ArgMin'), 'boundingRatioArgMin': ('boundingRatio', 'ArgMin'), 'histogramArgMin': ('histogram', 'ArgMin'), 'kolmogorovSmirnovTestArgMin': ('kolmogorovSmirnovTest', 'ArgMin'), 'groupBitmapXorArgMin': ('groupBitmapXor', 'ArgMin'), 'quantileDeterministicArgMin': ('quantileDeterministic', 'ArgMin'), 'varPopArgMin': ('varPop', 'ArgMin'), 'first_valueArgMin': ('first_value', 'ArgMin'), 'uniqHLL12ArgMin': ('uniqHLL12', 'ArgMin'), 'minMapArgMin': ('minMap', 'ArgMin'), 'simpleLinearRegressionArgMin': ('simpleLinearRegression', 'ArgMin'), 'quantilesInterpolatedWeightedArgMin': ('quantilesInterpolatedWeighted', 'ArgMin'), 'maxArgMin': ('max', 'ArgMin'), 'quantileTDigestWeightedArgMin': ('quantileTDigestWeighted', 'ArgMin'), 'groupUniqArrayArgMin': ('groupUniqArray', 'ArgMin'), 'meanZTestArgMin': ('meanZTest', 'ArgMin'), 'stochasticLogisticRegressionArgMin': ('stochasticLogisticRegression', 'ArgMin'), 'cramersVBiasCorrectedArgMin': ('cramersVBiasCorrected', 'ArgMin'), 'covarPopArgMin': ('covarPop', 'ArgMin'), 'countArgMin': ('count', 'ArgMin'), 'deltaSumArgMin': ('deltaSum', 'ArgMin'), 'quantileInterpolatedWeightedArgMin': ('quantileInterpolatedWeighted', 'ArgMin'), 'quantileGKArgMin': ('quantileGK', 'ArgMin'), 'anyHeavyArgMin': ('anyHeavy', 'ArgMin'), 'uniqUpToArgMin': ('uniqUpTo', 'ArgMin'), 'studentTTestArgMin': ('studentTTest', 'ArgMin'), 'varSampArgMin': ('varSamp', 'ArgMin'), 'groupBitmapOrArgMin': ('groupBitmapOr', 'ArgMin'), 'argMinArgMin': ('argMin', 'ArgMin'), 'contingencyArgMin': ('contingency', 'ArgMin'), 'quantilesExactLowArgMin': ('quantilesExactLow', 'ArgMin'), 'covarSampArgMin': ('covarSamp', 'ArgMin'), 'mannWhitneyUTestArgMin': ('mannWhitneyUTest', 'ArgMin'), 'quantilesExactWeightedArgMin': ('quantilesExactWeighted', 'ArgMin'), 'quantileTimingWeightedArgMin': ('quantileTimingWeighted', 'ArgMin'), 'minArgMin': ('min', 'ArgMin'), 'approx_top_sumArgMin': ('approx_top_sum', 'ArgMin'), 'uniqArgMin': ('uniq', 'ArgMin'), 'quantilesExactArgMin': ('quantilesExact', 'ArgMin'), 'retentionArgMin': ('retention', 'ArgMin'), 'uniqExactArgMin': ('uniqExact', 'ArgMin'), 'stochasticLinearRegressionArgMin': ('stochasticLinearRegression', 'ArgMin'), 'quantilesExactExclusiveArgMin': ('quantilesExactExclusive', 'ArgMin'), 'sparkBarArgMin': ('sparkBar', 'ArgMin'), 'skewPopArgMin': ('skewPop', 'ArgMin'), 'groupArrayMovingAvgArgMin': ('groupArrayMovingAvg', 'ArgMin'), 'medianArgMin': ('median', 'ArgMin'), 'groupArrayLastArgMin': ('groupArrayLast', 'ArgMin'), 'kurtPopArgMin': ('kurtPop', 'ArgMin'), 'exponentialMovingAverageArgMin': ('exponentialMovingAverage', 'ArgMin'), 'sequenceNextNodeArgMin': ('sequenceNextNode', 'ArgMin'), 'quantileArgMin': ('quantile', 'ArgMin'), 'groupArrayInsertAtArgMin': ('groupArrayInsertAt', 'ArgMin'), 'sumArgMin': ('sum', 'ArgMin'), 'quantileBFloat16ArgMin': ('quantileBFloat16', 'ArgMin'), 'rankCorrArgMin': ('rankCorr', 'ArgMin'), 'quantileTDigestArgMin': ('quantileTDigest', 'ArgMin'), 'maxIntersectionsPositionArgMin': ('maxIntersectionsPosition', 'ArgMin'), 'sumMapArgMin': ('sumMap', 'ArgMin'), 'kurtSampArgMin': ('kurtSamp', 'ArgMin'), 'exponentialTimeDecayedAvgArgMin': ('exponentialTimeDecayedAvg', 'ArgMin'), 'avgWeightedArgMin': ('avgWeighted', 'ArgMin'), 'topKWeightedArgMin': ('topKWeighted', 'ArgMin'), 'largestTriangleThreeBucketsArgMin': ('largestTriangleThreeBuckets', 'ArgMin'), 'groupArraySampleArgMin': ('groupArraySample', 'ArgMin'), 'quantileExactHighArgMin': ('quantileExactHigh', 'ArgMin'), 'windowFunnelArgMin': ('windowFunnel', 'ArgMin'), 'quantileExactWeightedArgMin': ('quantileExactWeighted', 'ArgMin'), 'quantileExactLowArgMin': ('quantileExactLow', 'ArgMin'), 'maxMapArgMin': ('maxMap', 'ArgMin'), 'welchTTestArgMin': ('welchTTest', 'ArgMin'), 'groupBitOrArgMin': ('groupBitOr', 'ArgMin'), 'quantilesArgMin': ('quantiles', 'ArgMin'), 'avgArgMin': ('avg', 'ArgMin'), 'cramersVArgMin': ('cramersV', 'ArgMin'), 'anyLastArgMin': ('anyLast', 'ArgMin'), 'quantilesGKArgMin': ('quantilesGK', 'ArgMin'), 'sequenceMatchArgMin': ('sequenceMatch', 'ArgMin'), 'quantilesTimingWeightedArgMin': ('quantilesTimingWeighted', 'ArgMin'), 'quantilesDeterministicArgMin': ('quantilesDeterministic', 'ArgMin'), 'sumCountArgMin': ('sumCount', 'ArgMin'), 'maxIntersectionsArgMin': ('maxIntersections', 'ArgMin'), 'stddevSampArgMin': ('stddevSamp', 'ArgMin'), 'groupBitmapAndArgMin': ('groupBitmapAnd', 'ArgMin'), 'groupArrayArgMin': ('groupArray', 'ArgMin'), 'uniqCombinedArgMin': ('uniqCombined', 'ArgMin'), 'skewSampArgMin': ('skewSamp', 'ArgMin'), 'groupBitmapArgMin': ('groupBitmap', 'ArgMin'), 'quantilesBFloat16ArgMin': ('quantilesBFloat16', 'ArgMin'), 'quantilesTDigestArgMin': ('quantilesTDigest', 'ArgMin'), 'sequenceCountArgMin': ('sequenceCount', 'ArgMin'), 'uniqCombined64ArgMin': ('uniqCombined64', 'ArgMin'), 'entropyArgMin': ('entropy', 'ArgMin'), 'quantilesTDigestWeightedArgMin': ('quantilesTDigestWeighted', 'ArgMin'), 'quantileExactArgMin': ('quantileExact', 'ArgMin'), 'categoricalInformationValueArgMin': ('categoricalInformationValue', 'ArgMin'), 'topKArgMin': ('topK', 'ArgMin'), 'groupBitAndArgMin': ('groupBitAnd', 'ArgMin'), 'stddevPopArgMin': ('stddevPop', 'ArgMin'), 'quantileBFloat16WeightedArgMin': ('quantileBFloat16Weighted', 'ArgMin'), 'quantileTimingArgMin': ('quantileTiming', 'ArgMin'), 'groupConcatArgMin': ('groupConcat', 'ArgMin'), 'corrArgMin': ('corr', 'ArgMin'), 'sumWithOverflowArgMin': ('sumWithOverflow', 'ArgMin'), 'last_valueArgMin': ('last_value', 'ArgMin'), 'argMaxArgMin': ('argMax', 'ArgMin'), 'quantilesTimingArgMin': ('quantilesTiming', 'ArgMin'), 'groupArrayMovingSumArgMin': ('groupArrayMovingSum', 'ArgMin'), 'deltaSumTimestampArgMin': ('deltaSumTimestamp', 'ArgMin'), 'quantilesBFloat16WeightedArgMin': ('quantilesBFloat16Weighted', 'ArgMin'), 'intervalLengthSumArgMin': ('intervalLengthSum', 'ArgMin'), 'sumKahanArgMax': ('sumKahan', 'ArgMax'), 'quantilesExactHighArgMax': ('quantilesExactHigh', 'ArgMax'), 'anyArgMax': ('any', 'ArgMax'), 'uniqThetaArgMax': ('uniqTheta', 'ArgMax'), 'groupBitXorArgMax': ('groupBitXor', 'ArgMax'), 'theilsUArgMax': ('theilsU', 'ArgMax'), 'boundingRatioArgMax': ('boundingRatio', 'ArgMax'), 'histogramArgMax': ('histogram', 'ArgMax'), 'kolmogorovSmirnovTestArgMax': ('kolmogorovSmirnovTest', 'ArgMax'), 'groupBitmapXorArgMax': ('groupBitmapXor', 'ArgMax'), 'quantileDeterministicArgMax': ('quantileDeterministic', 'ArgMax'), 'varPopArgMax': ('varPop', 'ArgMax'), 'first_valueArgMax': ('first_value', 'ArgMax'), 'uniqHLL12ArgMax': ('uniqHLL12', 'ArgMax'), 'minMapArgMax': ('minMap', 'ArgMax'), 'simpleLinearRegressionArgMax': ('simpleLinearRegression', 'ArgMax'), 'quantilesInterpolatedWeightedArgMax': ('quantilesInterpolatedWeighted', 'ArgMax'), 'maxArgMax': ('max', 'ArgMax'), 'quantileTDigestWeightedArgMax': ('quantileTDigestWeighted', 'ArgMax'), 'groupUniqArrayArgMax': ('groupUniqArray', 'ArgMax'), 'meanZTestArgMax': ('meanZTest', 'ArgMax'), 'stochasticLogisticRegressionArgMax': ('stochasticLogisticRegression', 'ArgMax'), 'cramersVBiasCorrectedArgMax': ('cramersVBiasCorrected', 'ArgMax'), 'covarPopArgMax': ('covarPop', 'ArgMax'), 'countArgMax': ('count', 'ArgMax'), 'deltaSumArgMax': ('deltaSum', 'ArgMax'), 'quantileInterpolatedWeightedArgMax': ('quantileInterpolatedWeighted', 'ArgMax'), 'quantileGKArgMax': ('quantileGK', 'ArgMax'), 'anyHeavyArgMax': ('anyHeavy', 'ArgMax'), 'uniqUpToArgMax': ('uniqUpTo', 'ArgMax'), 'studentTTestArgMax': ('studentTTest', 'ArgMax'), 'varSampArgMax': ('varSamp', 'ArgMax'), 'groupBitmapOrArgMax': ('groupBitmapOr', 'ArgMax'), 'argMinArgMax': ('argMin', 'ArgMax'), 'contingencyArgMax': ('contingency', 'ArgMax'), 'quantilesExactLowArgMax': ('quantilesExactLow', 'ArgMax'), 'covarSampArgMax': ('covarSamp', 'ArgMax'), 'mannWhitneyUTestArgMax': ('mannWhitneyUTest', 'ArgMax'), 'quantilesExactWeightedArgMax': ('quantilesExactWeighted', 'ArgMax'), 'quantileTimingWeightedArgMax': ('quantileTimingWeighted', 'ArgMax'), 'minArgMax': ('min', 'ArgMax'), 'approx_top_sumArgMax': ('approx_top_sum', 'ArgMax'), 'uniqArgMax': ('uniq', 'ArgMax'), 'quantilesExactArgMax': ('quantilesExact', 'ArgMax'), 'retentionArgMax': ('retention', 'ArgMax'), 'uniqExactArgMax': ('uniqExact', 'ArgMax'), 'stochasticLinearRegressionArgMax': ('stochasticLinearRegression', 'ArgMax'), 'quantilesExactExclusiveArgMax': ('quantilesExactExclusive', 'ArgMax'), 'sparkBarArgMax': ('sparkBar', 'ArgMax'), 'skewPopArgMax': ('skewPop', 'ArgMax'), 'groupArrayMovingAvgArgMax': ('groupArrayMovingAvg', 'ArgMax'), 'medianArgMax': ('median', 'ArgMax'), 'groupArrayLastArgMax': ('groupArrayLast', 'ArgMax'), 'kurtPopArgMax': ('kurtPop', 'ArgMax'), 'exponentialMovingAverageArgMax': ('exponentialMovingAverage', 'ArgMax'), 'sequenceNextNodeArgMax': ('sequenceNextNode', 'ArgMax'), 'quantileArgMax': ('quantile', 'ArgMax'), 'groupArrayInsertAtArgMax': ('groupArrayInsertAt', 'ArgMax'), 'sumArgMax': ('sum', 'ArgMax'), 'quantileBFloat16ArgMax': ('quantileBFloat16', 'ArgMax'), 'rankCorrArgMax': ('rankCorr', 'ArgMax'), 'quantileTDigestArgMax': ('quantileTDigest', 'ArgMax'), 'maxIntersectionsPositionArgMax': ('maxIntersectionsPosition', 'ArgMax'), 'sumMapArgMax': ('sumMap', 'ArgMax'), 'kurtSampArgMax': ('kurtSamp', 'ArgMax'), 'exponentialTimeDecayedAvgArgMax': ('exponentialTimeDecayedAvg', 'ArgMax'), 'avgWeightedArgMax': ('avgWeighted', 'ArgMax'), 'topKWeightedArgMax': ('topKWeighted', 'ArgMax'), 'largestTriangleThreeBucketsArgMax': ('largestTriangleThreeBuckets', 'ArgMax'), 'groupArraySampleArgMax': ('groupArraySample', 'ArgMax'), 'quantileExactHighArgMax': ('quantileExactHigh', 'ArgMax'), 'windowFunnelArgMax': ('windowFunnel', 'ArgMax'), 'quantileExactWeightedArgMax': ('quantileExactWeighted', 'ArgMax'), 'quantileExactLowArgMax': ('quantileExactLow', 'ArgMax'), 'maxMapArgMax': ('maxMap', 'ArgMax'), 'welchTTestArgMax': ('welchTTest', 'ArgMax'), 'groupBitOrArgMax': ('groupBitOr', 'ArgMax'), 'quantilesArgMax': ('quantiles', 'ArgMax'), 'avgArgMax': ('avg', 'ArgMax'), 'cramersVArgMax': ('cramersV', 'ArgMax'), 'anyLastArgMax': ('anyLast', 'ArgMax'), 'quantilesGKArgMax': ('quantilesGK', 'ArgMax'), 'sequenceMatchArgMax': ('sequenceMatch', 'ArgMax'), 'quantilesTimingWeightedArgMax': ('quantilesTimingWeighted', 'ArgMax'), 'quantilesDeterministicArgMax': ('quantilesDeterministic', 'ArgMax'), 'sumCountArgMax': ('sumCount', 'ArgMax'), 'maxIntersectionsArgMax': ('maxIntersections', 'ArgMax'), 'stddevSampArgMax': ('stddevSamp', 'ArgMax'), 'groupBitmapAndArgMax': ('groupBitmapAnd', 'ArgMax'), 'groupArrayArgMax': ('groupArray', 'ArgMax'), 'uniqCombinedArgMax': ('uniqCombined', 'ArgMax'), 'skewSampArgMax': ('skewSamp', 'ArgMax'), 'groupBitmapArgMax': ('groupBitmap', 'ArgMax'), 'quantilesBFloat16ArgMax': ('quantilesBFloat16', 'ArgMax'), 'quantilesTDigestArgMax': ('quantilesTDigest', 'ArgMax'), 'sequenceCountArgMax': ('sequenceCount', 'ArgMax'), 'uniqCombined64ArgMax': ('uniqCombined64', 'ArgMax'), 'entropyArgMax': ('entropy', 'ArgMax'), 'quantilesTDigestWeightedArgMax': ('quantilesTDigestWeighted', 'ArgMax'), 'quantileExactArgMax': ('quantileExact', 'ArgMax'), 'categoricalInformationValueArgMax': ('categoricalInformationValue', 'ArgMax'), 'topKArgMax': ('topK', 'ArgMax'), 'groupBitAndArgMax': ('groupBitAnd', 'ArgMax'), 'stddevPopArgMax': ('stddevPop', 'ArgMax'), 'quantileBFloat16WeightedArgMax': ('quantileBFloat16Weighted', 'ArgMax'), 'quantileTimingArgMax': ('quantileTiming', 'ArgMax'), 'groupConcatArgMax': ('groupConcat', 'ArgMax'), 'corrArgMax': ('corr', 'ArgMax'), 'sumWithOverflowArgMax': ('sumWithOverflow', 'ArgMax'), 'last_valueArgMax': ('last_value', 'ArgMax'), 'argMaxArgMax': ('argMax', 'ArgMax'), 'quantilesTimingArgMax': ('quantilesTiming', 'ArgMax'), 'groupArrayMovingSumArgMax': ('groupArrayMovingSum', 'ArgMax'), 'deltaSumTimestampArgMax': ('deltaSumTimestamp', 'ArgMax'), 'quantilesBFloat16WeightedArgMax': ('quantilesBFloat16Weighted', 'ArgMax'), 'intervalLengthSumArgMax': ('intervalLengthSum', 'ArgMax'), 'sumKahanArray': ('sumKahan', 'Array'), 'quantilesExactHighArray': ('quantilesExactHigh', 'Array'), 'anyArray': ('any', 'Array'), 'uniqThetaArray': ('uniqTheta', 'Array'), 'groupBitXorArray': ('groupBitXor', 'Array'), 'theilsUArray': ('theilsU', 'Array'), 'boundingRatioArray': ('boundingRatio', 'Array'), 'histogramArray': ('histogram', 'Array'), 'kolmogorovSmirnovTestArray': ('kolmogorovSmirnovTest', 'Array'), 'groupBitmapXorArray': ('groupBitmapXor', 'Array'), 'quantileDeterministicArray': ('quantileDeterministic', 'Array'), 'varPopArray': ('varPop', 'Array'), 'first_valueArray': ('first_value', 'Array'), 'uniqHLL12Array': ('uniqHLL12', 'Array'), 'minMapArray': ('minMap', 'Array'), 'simpleLinearRegressionArray': ('simpleLinearRegression', 'Array'), 'quantilesInterpolatedWeightedArray': ('quantilesInterpolatedWeighted', 'Array'), 'maxArray': ('max', 'Array'), 'quantileTDigestWeightedArray': ('quantileTDigestWeighted', 'Array'), 'groupUniqArrayArray': ('groupUniqArray', 'Array'), 'meanZTestArray': ('meanZTest', 'Array'), 'stochasticLogisticRegressionArray': ('stochasticLogisticRegression', 'Array'), 'cramersVBiasCorrectedArray': ('cramersVBiasCorrected', 'Array'), 'covarPopArray': ('covarPop', 'Array'), 'countArray': ('count', 'Array'), 'deltaSumArray': ('deltaSum', 'Array'), 'quantileInterpolatedWeightedArray': ('quantileInterpolatedWeighted', 'Array'), 'quantileGKArray': ('quantileGK', 'Array'), 'anyHeavyArray': ('anyHeavy', 'Array'), 'uniqUpToArray': ('uniqUpTo', 'Array'), 'studentTTestArray': ('studentTTest', 'Array'), 'varSampArray': ('varSamp', 'Array'), 'groupBitmapOrArray': ('groupBitmapOr', 'Array'), 'argMinArray': ('argMin', 'Array'), 'contingencyArray': ('contingency', 'Array'), 'quantilesExactLowArray': ('quantilesExactLow', 'Array'), 'covarSampArray': ('covarSamp', 'Array'), 'mannWhitneyUTestArray': ('mannWhitneyUTest', 'Array'), 'quantilesExactWeightedArray': ('quantilesExactWeighted', 'Array'), 'quantileTimingWeightedArray': ('quantileTimingWeighted', 'Array'), 'minArray': ('min', 'Array'), 'approx_top_sumArray': ('approx_top_sum', 'Array'), 'uniqArray': ('uniq', 'Array'), 'quantilesExactArray': ('quantilesExact', 'Array'), 'retentionArray': ('retention', 'Array'), 'uniqExactArray': ('uniqExact', 'Array'), 'stochasticLinearRegressionArray': ('stochasticLinearRegression', 'Array'), 'quantilesExactExclusiveArray': ('quantilesExactExclusive', 'Array'), 'sparkBarArray': ('sparkBar', 'Array'), 'skewPopArray': ('skewPop', 'Array'), 'groupArrayMovingAvgArray': ('groupArrayMovingAvg', 'Array'), 'medianArray': ('median', 'Array'), 'groupArrayLastArray': ('groupArrayLast', 'Array'), 'kurtPopArray': ('kurtPop', 'Array'), 'exponentialMovingAverageArray': ('exponentialMovingAverage', 'Array'), 'sequenceNextNodeArray': ('sequenceNextNode', 'Array'), 'quantileArray': ('quantile', 'Array'), 'groupArrayInsertAtArray': ('groupArrayInsertAt', 'Array'), 'sumArray': ('sum', 'Array'), 'quantileBFloat16Array': ('quantileBFloat16', 'Array'), 'rankCorrArray': ('rankCorr', 'Array'), 'quantileTDigestArray': ('quantileTDigest', 'Array'), 'maxIntersectionsPositionArray': ('maxIntersectionsPosition', 'Array'), 'sumMapArray': ('sumMap', 'Array'), 'kurtSampArray': ('kurtSamp', 'Array'), 'exponentialTimeDecayedAvgArray': ('exponentialTimeDecayedAvg', 'Array'), 'avgWeightedArray': ('avgWeighted', 'Array'), 'topKWeightedArray': ('topKWeighted', 'Array'), 'largestTriangleThreeBucketsArray': ('largestTriangleThreeBuckets', 'Array'), 'groupArraySampleArray': ('groupArraySample', 'Array'), 'quantileExactHighArray': ('quantileExactHigh', 'Array'), 'windowFunnelArray': ('windowFunnel', 'Array'), 'quantileExactWeightedArray': ('quantileExactWeighted', 'Array'), 'quantileExactLowArray': ('quantileExactLow', 'Array'), 'maxMapArray': ('maxMap', 'Array'), 'welchTTestArray': ('welchTTest', 'Array'), 'groupBitOrArray': ('groupBitOr', 'Array'), 'quantilesArray': ('quantiles', 'Array'), 'avgArray': ('avg', 'Array'), 'cramersVArray': ('cramersV', 'Array'), 'anyLastArray': ('anyLast', 'Array'), 'quantilesGKArray': ('quantilesGK', 'Array'), 'sequenceMatchArray': ('sequenceMatch', 'Array'), 'quantilesTimingWeightedArray': ('quantilesTimingWeighted', 'Array'), 'quantilesDeterministicArray': ('quantilesDeterministic', 'Array'), 'sumCountArray': ('sumCount', 'Array'), 'maxIntersectionsArray': ('maxIntersections', 'Array'), 'stddevSampArray': ('stddevSamp', 'Array'), 'groupBitmapAndArray': ('groupBitmapAnd', 'Array'), 'groupArrayArray': ('groupArray', 'Array'), 'uniqCombinedArray': ('uniqCombined', 'Array'), 'skewSampArray': ('skewSamp', 'Array'), 'groupBitmapArray': ('groupBitmap', 'Array'), 'quantilesBFloat16Array': ('quantilesBFloat16', 'Array'), 'quantilesTDigestArray': ('quantilesTDigest', 'Array'), 'sequenceCountArray': ('sequenceCount', 'Array'), 'uniqCombined64Array': ('uniqCombined64', 'Array'), 'entropyArray': ('entropy', 'Array'), 'quantilesTDigestWeightedArray': ('quantilesTDigestWeighted', 'Array'), 'quantileExactArray': ('quantileExact', 'Array'), 'categoricalInformationValueArray': ('categoricalInformationValue', 'Array'), 'topKArray': ('topK', 'Array'), 'groupBitAndArray': ('groupBitAnd', 'Array'), 'stddevPopArray': ('stddevPop', 'Array'), 'quantileBFloat16WeightedArray': ('quantileBFloat16Weighted', 'Array'), 'quantileTimingArray': ('quantileTiming', 'Array'), 'groupConcatArray': ('groupConcat', 'Array'), 'corrArray': ('corr', 'Array'), 'sumWithOverflowArray': ('sumWithOverflow', 'Array'), 'last_valueArray': ('last_value', 'Array'), 'argMaxArray': ('argMax', 'Array'), 'quantilesTimingArray': ('quantilesTiming', 'Array'), 'groupArrayMovingSumArray': ('groupArrayMovingSum', 'Array'), 'deltaSumTimestampArray': ('deltaSumTimestamp', 'Array'), 'quantilesBFloat16WeightedArray': ('quantilesBFloat16Weighted', 'Array'), 'intervalLengthSumArray': ('intervalLengthSum', 'Array'), 'sumKahanState': ('sumKahan', 'State'), 'quantilesExactHighState': ('quantilesExactHigh', 'State'), 'anyState': ('any', 'State'), 'uniqThetaState': ('uniqTheta', 'State'), 'groupBitXorState': ('groupBitXor', 'State'), 'theilsUState': ('theilsU', 'State'), 'boundingRatioState': ('boundingRatio', 'State'), 'histogramState': ('histogram', 'State'), 'kolmogorovSmirnovTestState': ('kolmogorovSmirnovTest', 'State'), 'groupBitmapXorState': ('groupBitmapXor', 'State'), 'quantileDeterministicState': ('quantileDeterministic', 'State'), 'varPopState': ('varPop', 'State'), 'first_valueState': ('first_value', 'State'), 'uniqHLL12State': ('uniqHLL12', 'State'), 'minMapState': ('minMap', 'State'), 'simpleLinearRegressionState': ('simpleLinearRegression', 'State'), 'quantilesInterpolatedWeightedState': ('quantilesInterpolatedWeighted', 'State'), 'maxState': ('max', 'State'), 'quantileTDigestWeightedState': ('quantileTDigestWeighted', 'State'), 'groupUniqArrayState': ('groupUniqArray', 'State'), 'meanZTestState': ('meanZTest', 'State'), 'stochasticLogisticRegressionState': ('stochasticLogisticRegression', 'State'), 'cramersVBiasCorrectedState': ('cramersVBiasCorrected', 'State'), 'covarPopState': ('covarPop', 'State'), 'countState': ('count', 'State'), 'deltaSumState': ('deltaSum', 'State'), 'quantileInterpolatedWeightedState': ('quantileInterpolatedWeighted', 'State'), 'quantileGKState': ('quantileGK', 'State'), 'anyHeavyState': ('anyHeavy', 'State'), 'uniqUpToState': ('uniqUpTo', 'State'), 'studentTTestState': ('studentTTest', 'State'), 'varSampState': ('varSamp', 'State'), 'groupBitmapOrState': ('groupBitmapOr', 'State'), 'argMinState': ('argMin', 'State'), 'contingencyState': ('contingency', 'State'), 'quantilesExactLowState': ('quantilesExactLow', 'State'), 'covarSampState': ('covarSamp', 'State'), 'mannWhitneyUTestState': ('mannWhitneyUTest', 'State'), 'quantilesExactWeightedState': ('quantilesExactWeighted', 'State'), 'quantileTimingWeightedState': ('quantileTimingWeighted', 'State'), 'minState': ('min', 'State'), 'approx_top_sumState': ('approx_top_sum', 'State'), 'uniqState': ('uniq', 'State'), 'quantilesExactState': ('quantilesExact', 'State'), 'retentionState': ('retention', 'State'), 'uniqExactState': ('uniqExact', 'State'), 'stochasticLinearRegressionState': ('stochasticLinearRegression', 'State'), 'quantilesExactExclusiveState': ('quantilesExactExclusive', 'State'), 'sparkBarState': ('sparkBar', 'State'), 'skewPopState': ('skewPop', 'State'), 'groupArrayMovingAvgState': ('groupArrayMovingAvg', 'State'), 'medianState': ('median', 'State'), 'groupArrayLastState': ('groupArrayLast', 'State'), 'kurtPopState': ('kurtPop', 'State'), 'exponentialMovingAverageState': ('exponentialMovingAverage', 'State'), 'sequenceNextNodeState': ('sequenceNextNode', 'State'), 'quantileState': ('quantile', 'State'), 'groupArrayInsertAtState': ('groupArrayInsertAt', 'State'), 'sumState': ('sum', 'State'), 'quantileBFloat16State': ('quantileBFloat16', 'State'), 'rankCorrState': ('rankCorr', 'State'), 'quantileTDigestState': ('quantileTDigest', 'State'), 'maxIntersectionsPositionState': ('maxIntersectionsPosition', 'State'), 'sumMapState': ('sumMap', 'State'), 'kurtSampState': ('kurtSamp', 'State'), 'exponentialTimeDecayedAvgState': ('exponentialTimeDecayedAvg', 'State'), 'avgWeightedState': ('avgWeighted', 'State'), 'topKWeightedState': ('topKWeighted', 'State'), 'largestTriangleThreeBucketsState': ('largestTriangleThreeBuckets', 'State'), 'groupArraySampleState': ('groupArraySample', 'State'), 'quantileExactHighState': ('quantileExactHigh', 'State'), 'windowFunnelState': ('windowFunnel', 'State'), 'quantileExactWeightedState': ('quantileExactWeighted', 'State'), 'quantileExactLowState': ('quantileExactLow', 'State'), 'maxMapState': ('maxMap', 'State'), 'welchTTestState': ('welchTTest', 'State'), 'groupBitOrState': ('groupBitOr', 'State'), 'quantilesState': ('quantiles', 'State'), 'avgState': ('avg', 'State'), 'cramersVState': ('cramersV', 'State'), 'anyLastState': ('anyLast', 'State'), 'quantilesGKState': ('quantilesGK', 'State'), 'sequenceMatchState': ('sequenceMatch', 'State'), 'quantilesTimingWeightedState': ('quantilesTimingWeighted', 'State'), 'quantilesDeterministicState': ('quantilesDeterministic', 'State'), 'sumCountState': ('sumCount', 'State'), 'maxIntersectionsState': ('maxIntersections', 'State'), 'stddevSampState': ('stddevSamp', 'State'), 'groupBitmapAndState': ('groupBitmapAnd', 'State'), 'groupArrayState': ('groupArray', 'State'), 'uniqCombinedState': ('uniqCombined', 'State'), 'skewSampState': ('skewSamp', 'State'), 'groupBitmapState': ('groupBitmap', 'State'), 'quantilesBFloat16State': ('quantilesBFloat16', 'State'), 'quantilesTDigestState': ('quantilesTDigest', 'State'), 'sequenceCountState': ('sequenceCount', 'State'), 'uniqCombined64State': ('uniqCombined64', 'State'), 'entropyState': ('entropy', 'State'), 'quantilesTDigestWeightedState': ('quantilesTDigestWeighted', 'State'), 'quantileExactState': ('quantileExact', 'State'), 'categoricalInformationValueState': ('categoricalInformationValue', 'State'), 'topKState': ('topK', 'State'), 'groupBitAndState': ('groupBitAnd', 'State'), 'stddevPopState': ('stddevPop', 'State'), 'quantileBFloat16WeightedState': ('quantileBFloat16Weighted', 'State'), 'quantileTimingState': ('quantileTiming', 'State'), 'groupConcatState': ('groupConcat', 'State'), 'corrState': ('corr', 'State'), 'sumWithOverflowState': ('sumWithOverflow', 'State'), 'last_valueState': ('last_value', 'State'), 'argMaxState': ('argMax', 'State'), 'quantilesTimingState': ('quantilesTiming', 'State'), 'groupArrayMovingSumState': ('groupArrayMovingSum', 'State'), 'deltaSumTimestampState': ('deltaSumTimestamp', 'State'), 'quantilesBFloat16WeightedState': ('quantilesBFloat16Weighted', 'State'), 'intervalLengthSumState': ('intervalLengthSum', 'State'), 'sumKahanMerge': ('sumKahan', 'Merge'), 'quantilesExactHighMerge': ('quantilesExactHigh', 'Merge'), 'anyMerge': ('any', 'Merge'), 'uniqThetaMerge': ('uniqTheta', 'Merge'), 'groupBitXorMerge': ('groupBitXor', 'Merge'), 'theilsUMerge': ('theilsU', 'Merge'), 'boundingRatioMerge': ('boundingRatio', 'Merge'), 'histogramMerge': ('histogram', 'Merge'), 'kolmogorovSmirnovTestMerge': ('kolmogorovSmirnovTest', 'Merge'), 'groupBitmapXorMerge': ('groupBitmapXor', 'Merge'), 'quantileDeterministicMerge': ('quantileDeterministic', 'Merge'), 'varPopMerge': ('varPop', 'Merge'), 'first_valueMerge': ('first_value', 'Merge'), 'uniqHLL12Merge': ('uniqHLL12', 'Merge'), 'minMapMerge': ('minMap', 'Merge'), 'simpleLinearRegressionMerge': ('simpleLinearRegression', 'Merge'), 'quantilesInterpolatedWeightedMerge': ('quantilesInterpolatedWeighted', 'Merge'), 'maxMerge': ('max', 'Merge'), 'quantileTDigestWeightedMerge': ('quantileTDigestWeighted', 'Merge'), 'groupUniqArrayMerge': ('groupUniqArray', 'Merge'), 'meanZTestMerge': ('meanZTest', 'Merge'), 'stochasticLogisticRegressionMerge': ('stochasticLogisticRegression', 'Merge'), 'cramersVBiasCorrectedMerge': ('cramersVBiasCorrected', 'Merge'), 'covarPopMerge': ('covarPop', 'Merge'), 'countMerge': ('count', 'Merge'), 'deltaSumMerge': ('deltaSum', 'Merge'), 'quantileInterpolatedWeightedMerge': ('quantileInterpolatedWeighted', 'Merge'), 'quantileGKMerge': ('quantileGK', 'Merge'), 'anyHeavyMerge': ('anyHeavy', 'Merge'), 'uniqUpToMerge': ('uniqUpTo', 'Merge'), 'studentTTestMerge': ('studentTTest', 'Merge'), 'varSampMerge': ('varSamp', 'Merge'), 'groupBitmapOrMerge': ('groupBitmapOr', 'Merge'), 'argMinMerge': ('argMin', 'Merge'), 'contingencyMerge': ('contingency', 'Merge'), 'quantilesExactLowMerge': ('quantilesExactLow', 'Merge'), 'covarSampMerge': ('covarSamp', 'Merge'), 'mannWhitneyUTestMerge': ('mannWhitneyUTest', 'Merge'), 'quantilesExactWeightedMerge': ('quantilesExactWeighted', 'Merge'), 'quantileTimingWeightedMerge': ('quantileTimingWeighted', 'Merge'), 'minMerge': ('min', 'Merge'), 'approx_top_sumMerge': ('approx_top_sum', 'Merge'), 'uniqMerge': ('uniq', 'Merge'), 'quantilesExactMerge': ('quantilesExact', 'Merge'), 'retentionMerge': ('retention', 'Merge'), 'uniqExactMerge': ('uniqExact', 'Merge'), 'stochasticLinearRegressionMerge': ('stochasticLinearRegression', 'Merge'), 'quantilesExactExclusiveMerge': ('quantilesExactExclusive', 'Merge'), 'sparkBarMerge': ('sparkBar', 'Merge'), 'skewPopMerge': ('skewPop', 'Merge'), 'groupArrayMovingAvgMerge': ('groupArrayMovingAvg', 'Merge'), 'medianMerge': ('median', 'Merge'), 'groupArrayLastMerge': ('groupArrayLast', 'Merge'), 'kurtPopMerge': ('kurtPop', 'Merge'), 'exponentialMovingAverageMerge': ('exponentialMovingAverage', 'Merge'), 'sequenceNextNodeMerge': ('sequenceNextNode', 'Merge'), 'quantileMerge': ('quantile', 'Merge'), 'groupArrayInsertAtMerge': ('groupArrayInsertAt', 'Merge'), 'sumMerge': ('sum', 'Merge'), 'quantileBFloat16Merge': ('quantileBFloat16', 'Merge'), 'rankCorrMerge': ('rankCorr', 'Merge'), 'quantileTDigestMerge': ('quantileTDigest', 'Merge'), 'maxIntersectionsPositionMerge': ('maxIntersectionsPosition', 'Merge'), 'sumMapMerge': ('sumMap', 'Merge'), 'kurtSampMerge': ('kurtSamp', 'Merge'), 'exponentialTimeDecayedAvgMerge': ('exponentialTimeDecayedAvg', 'Merge'), 'avgWeightedMerge': ('avgWeighted', 'Merge'), 'topKWeightedMerge': ('topKWeighted', 'Merge'), 'largestTriangleThreeBucketsMerge': ('largestTriangleThreeBuckets', 'Merge'), 'groupArraySampleMerge': ('groupArraySample', 'Merge'), 'quantileExactHighMerge': ('quantileExactHigh', 'Merge'), 'windowFunnelMerge': ('windowFunnel', 'Merge'), 'quantileExactWeightedMerge': ('quantileExactWeighted', 'Merge'), 'quantileExactLowMerge': ('quantileExactLow', 'Merge'), 'maxMapMerge': ('maxMap', 'Merge'), 'welchTTestMerge': ('welchTTest', 'Merge'), 'groupBitOrMerge': ('groupBitOr', 'Merge'), 'quantilesMerge': ('quantiles', 'Merge'), 'avgMerge': ('avg', 'Merge'), 'cramersVMerge': ('cramersV', 'Merge'), 'anyLastMerge': ('anyLast', 'Merge'), 'quantilesGKMerge': ('quantilesGK', 'Merge'), 'sequenceMatchMerge': ('sequenceMatch', 'Merge'), 'quantilesTimingWeightedMerge': ('quantilesTimingWeighted', 'Merge'), 'quantilesDeterministicMerge': ('quantilesDeterministic', 'Merge'), 'sumCountMerge': ('sumCount', 'Merge'), 'maxIntersectionsMerge': ('maxIntersections', 'Merge'), 'stddevSampMerge': ('stddevSamp', 'Merge'), 'groupBitmapAndMerge': ('groupBitmapAnd', 'Merge'), 'groupArrayMerge': ('groupArray', 'Merge'), 'uniqCombinedMerge': ('uniqCombined', 'Merge'), 'skewSampMerge': ('skewSamp', 'Merge'), 'groupBitmapMerge': ('groupBitmap', 'Merge'), 'quantilesBFloat16Merge': ('quantilesBFloat16', 'Merge'), 'quantilesTDigestMerge': ('quantilesTDigest', 'Merge'), 'sequenceCountMerge': ('sequenceCount', 'Merge'), 'uniqCombined64Merge': ('uniqCombined64', 'Merge'), 'entropyMerge': ('entropy', 'Merge'), 'quantilesTDigestWeightedMerge': ('quantilesTDigestWeighted', 'Merge'), 'quantileExactMerge': ('quantileExact', 'Merge'), 'categoricalInformationValueMerge': ('categoricalInformationValue', 'Merge'), 'topKMerge': ('topK', 'Merge'), 'groupBitAndMerge': ('groupBitAnd', 'Merge'), 'stddevPopMerge': ('stddevPop', 'Merge'), 'quantileBFloat16WeightedMerge': ('quantileBFloat16Weighted', 'Merge'), 'quantileTimingMerge': ('quantileTiming', 'Merge'), 'groupConcatMerge': ('groupConcat', 'Merge'), 'corrMerge': ('corr', 'Merge'), 'sumWithOverflowMerge': ('sumWithOverflow', 'Merge'), 'last_valueMerge': ('last_value', 'Merge'), 'argMaxMerge': ('argMax', 'Merge'), 'quantilesTimingMerge': ('quantilesTiming', 'Merge'), 'groupArrayMovingSumMerge': ('groupArrayMovingSum', 'Merge'), 'deltaSumTimestampMerge': ('deltaSumTimestamp', 'Merge'), 'quantilesBFloat16WeightedMerge': ('quantilesBFloat16Weighted', 'Merge'), 'intervalLengthSumMerge': ('intervalLengthSum', 'Merge'), 'sumKahanMap': ('sumKahan', 'Map'), 'quantilesExactHighMap': ('quantilesExactHigh', 'Map'), 'anyMap': ('any', 'Map'), 'uniqThetaMap': ('uniqTheta', 'Map'), 'groupBitXorMap': ('groupBitXor', 'Map'), 'theilsUMap': ('theilsU', 'Map'), 'boundingRatioMap': ('boundingRatio', 'Map'), 'histogramMap': ('histogram', 'Map'), 'kolmogorovSmirnovTestMap': ('kolmogorovSmirnovTest', 'Map'), 'groupBitmapXorMap': ('groupBitmapXor', 'Map'), 'quantileDeterministicMap': ('quantileDeterministic', 'Map'), 'varPopMap': ('varPop', 'Map'), 'first_valueMap': ('first_value', 'Map'), 'uniqHLL12Map': ('uniqHLL12', 'Map'), 'minMapMap': ('minMap', 'Map'), 'simpleLinearRegressionMap': ('simpleLinearRegression', 'Map'), 'quantilesInterpolatedWeightedMap': ('quantilesInterpolatedWeighted', 'Map'), 'maxMap': ('maxMap', None), 'quantileTDigestWeightedMap': ('quantileTDigestWeighted', 'Map'), 'groupUniqArrayMap': ('groupUniqArray', 'Map'), 'meanZTestMap': ('meanZTest', 'Map'), 'stochasticLogisticRegressionMap': ('stochasticLogisticRegression', 'Map'), 'cramersVBiasCorrectedMap': ('cramersVBiasCorrected', 'Map'), 'covarPopMap': ('covarPop', 'Map'), 'countMap': ('count', 'Map'), 'deltaSumMap': ('deltaSum', 'Map'), 'quantileInterpolatedWeightedMap': ('quantileInterpolatedWeighted', 'Map'), 'quantileGKMap': ('quantileGK', 'Map'), 'anyHeavyMap': ('anyHeavy', 'Map'), 'uniqUpToMap': ('uniqUpTo', 'Map'), 'studentTTestMap': ('studentTTest', 'Map'), 'varSampMap': ('varSamp', 'Map'), 'groupBitmapOrMap': ('groupBitmapOr', 'Map'), 'argMinMap': ('argMin', 'Map'), 'contingencyMap': ('contingency', 'Map'), 'quantilesExactLowMap': ('quantilesExactLow', 'Map'), 'covarSampMap': ('covarSamp', 'Map'), 'mannWhitneyUTestMap': ('mannWhitneyUTest', 'Map'), 'quantilesExactWeightedMap': ('quantilesExactWeighted', 'Map'), 'quantileTimingWeightedMap': ('quantileTimingWeighted', 'Map'), 'minMap': ('minMap', None), 'approx_top_sumMap': ('approx_top_sum', 'Map'), 'uniqMap': ('uniq', 'Map'), 'quantilesExactMap': ('quantilesExact', 'Map'), 'retentionMap': ('retention', 'Map'), 'uniqExactMap': ('uniqExact', 'Map'), 'stochasticLinearRegressionMap': ('stochasticLinearRegression', 'Map'), 'quantilesExactExclusiveMap': ('quantilesExactExclusive', 'Map'), 'sparkBarMap': ('sparkBar', 'Map'), 'skewPopMap': ('skewPop', 'Map'), 'groupArrayMovingAvgMap': ('groupArrayMovingAvg', 'Map'), 'medianMap': ('median', 'Map'), 'groupArrayLastMap': ('groupArrayLast', 'Map'), 'kurtPopMap': ('kurtPop', 'Map'), 'exponentialMovingAverageMap': ('exponentialMovingAverage', 'Map'), 'sequenceNextNodeMap': ('sequenceNextNode', 'Map'), 'quantileMap': ('quantile', 'Map'), 'groupArrayInsertAtMap': ('groupArrayInsertAt', 'Map'), 'sumMap': ('sumMap', None), 'quantileBFloat16Map': ('quantileBFloat16', 'Map'), 'rankCorrMap': ('rankCorr', 'Map'), 'quantileTDigestMap': ('quantileTDigest', 'Map'), 'maxIntersectionsPositionMap': ('maxIntersectionsPosition', 'Map'), 'sumMapMap': ('sumMap', 'Map'), 'kurtSampMap': ('kurtSamp', 'Map'), 'exponentialTimeDecayedAvgMap': ('exponentialTimeDecayedAvg', 'Map'), 'avgWeightedMap': ('avgWeighted', 'Map'), 'topKWeightedMap': ('topKWeighted', 'Map'), 'largestTriangleThreeBucketsMap': ('largestTriangleThreeBuckets', 'Map'), 'groupArraySampleMap': ('groupArraySample', 'Map'), 'quantileExactHighMap': ('quantileExactHigh', 'Map'), 'windowFunnelMap': ('windowFunnel', 'Map'), 'quantileExactWeightedMap': ('quantileExactWeighted', 'Map'), 'quantileExactLowMap': ('quantileExactLow', 'Map'), 'maxMapMap': ('maxMap', 'Map'), 'welchTTestMap': ('welchTTest', 'Map'), 'groupBitOrMap': ('groupBitOr', 'Map'), 'quantilesMap': ('quantiles', 'Map'), 'avgMap': ('avg', 'Map'), 'cramersVMap': ('cramersV', 'Map'), 'anyLastMap': ('anyLast', 'Map'), 'quantilesGKMap': ('quantilesGK', 'Map'), 'sequenceMatchMap': ('sequenceMatch', 'Map'), 'quantilesTimingWeightedMap': ('quantilesTimingWeighted', 'Map'), 'quantilesDeterministicMap': ('quantilesDeterministic', 'Map'), 'sumCountMap': ('sumCount', 'Map'), 'maxIntersectionsMap': ('maxIntersections', 'Map'), 'stddevSampMap': ('stddevSamp', 'Map'), 'groupBitmapAndMap': ('groupBitmapAnd', 'Map'), 'groupArrayMap': ('groupArray', 'Map'), 'uniqCombinedMap': ('uniqCombined', 'Map'), 'skewSampMap': ('skewSamp', 'Map'), 'groupBitmapMap': ('groupBitmap', 'Map'), 'quantilesBFloat16Map': ('quantilesBFloat16', 'Map'), 'quantilesTDigestMap': ('quantilesTDigest', 'Map'), 'sequenceCountMap': ('sequenceCount', 'Map'), 'uniqCombined64Map': ('uniqCombined64', 'Map'), 'entropyMap': ('entropy', 'Map'), 'quantilesTDigestWeightedMap': ('quantilesTDigestWeighted', 'Map'), 'quantileExactMap': ('quantileExact', 'Map'), 'categoricalInformationValueMap': ('categoricalInformationValue', 'Map'), 'topKMap': ('topK', 'Map'), 'groupBitAndMap': ('groupBitAnd', 'Map'), 'stddevPopMap': ('stddevPop', 'Map'), 'quantileBFloat16WeightedMap': ('quantileBFloat16Weighted', 'Map'), 'quantileTimingMap': ('quantileTiming', 'Map'), 'groupConcatMap': ('groupConcat', 'Map'), 'corrMap': ('corr', 'Map'), 'sumWithOverflowMap': ('sumWithOverflow', 'Map'), 'last_valueMap': ('last_value', 'Map'), 'argMaxMap': ('argMax', 'Map'), 'quantilesTimingMap': ('quantilesTiming', 'Map'), 'groupArrayMovingSumMap': ('groupArrayMovingSum', 'Map'), 'deltaSumTimestampMap': ('deltaSumTimestamp', 'Map'), 'quantilesBFloat16WeightedMap': ('quantilesBFloat16Weighted', 'Map'), 'intervalLengthSumMap': ('intervalLengthSum', 'Map'), 'sumKahanIf': ('sumKahan', 'If'), 'quantilesExactHighIf': ('quantilesExactHigh', 'If'), 'anyIf': ('any', 'If'), 'uniqThetaIf': ('uniqTheta', 'If'), 'groupBitXorIf': ('groupBitXor', 'If'), 'theilsUIf': ('theilsU', 'If'), 'boundingRatioIf': ('boundingRatio', 'If'), 'histogramIf': ('histogram', 'If'), 'kolmogorovSmirnovTestIf': ('kolmogorovSmirnovTest', 'If'), 'groupBitmapXorIf': ('groupBitmapXor', 'If'), 'quantileDeterministicIf': ('quantileDeterministic', 'If'), 'varPopIf': ('varPop', 'If'), 'first_valueIf': ('first_value', 'If'), 'uniqHLL12If': ('uniqHLL12', 'If'), 'minMapIf': ('minMap', 'If'), 'simpleLinearRegressionIf': ('simpleLinearRegression', 'If'), 'quantilesInterpolatedWeightedIf': ('quantilesInterpolatedWeighted', 'If'), 'maxIf': ('max', 'If'), 'quantileTDigestWeightedIf': ('quantileTDigestWeighted', 'If'), 'groupUniqArrayIf': ('groupUniqArray', 'If'), 'meanZTestIf': ('meanZTest', 'If'), 'stochasticLogisticRegressionIf': ('stochasticLogisticRegression', 'If'), 'cramersVBiasCorrectedIf': ('cramersVBiasCorrected', 'If'), 'covarPopIf': ('covarPop', 'If'), 'countIf': ('count', 'If'), 'deltaSumIf': ('deltaSum', 'If'), 'quantileInterpolatedWeightedIf': ('quantileInterpolatedWeighted', 'If'), 'quantileGKIf': ('quantileGK', 'If'), 'anyHeavyIf': ('anyHeavy', 'If'), 'uniqUpToIf': ('uniqUpTo', 'If'), 'studentTTestIf': ('studentTTest', 'If'), 'varSampIf': ('varSamp', 'If'), 'groupBitmapOrIf': ('groupBitmapOr', 'If'), 'argMinIf': ('argMin', 'If'), 'contingencyIf': ('contingency', 'If'), 'quantilesExactLowIf': ('quantilesExactLow', 'If'), 'covarSampIf': ('covarSamp', 'If'), 'mannWhitneyUTestIf': ('mannWhitneyUTest', 'If'), 'quantilesExactWeightedIf': ('quantilesExactWeighted', 'If'), 'quantileTimingWeightedIf': ('quantileTimingWeighted', 'If'), 'minIf': ('min', 'If'), 'approx_top_sumIf': ('approx_top_sum', 'If'), 'uniqIf': ('uniq', 'If'), 'quantilesExactIf': ('quantilesExact', 'If'), 'retentionIf': ('retention', 'If'), 'uniqExactIf': ('uniqExact', 'If'), 'stochasticLinearRegressionIf': ('stochasticLinearRegression', 'If'), 'quantilesExactExclusiveIf': ('quantilesExactExclusive', 'If'), 'sparkBarIf': ('sparkBar', 'If'), 'skewPopIf': ('skewPop', 'If'), 'groupArrayMovingAvgIf': ('groupArrayMovingAvg', 'If'), 'medianIf': ('median', 'If'), 'groupArrayLastIf': ('groupArrayLast', 'If'), 'kurtPopIf': ('kurtPop', 'If'), 'exponentialMovingAverageIf': ('exponentialMovingAverage', 'If'), 'sequenceNextNodeIf': ('sequenceNextNode', 'If'), 'quantileIf': ('quantile', 'If'), 'groupArrayInsertAtIf': ('groupArrayInsertAt', 'If'), 'sumIf': ('sum', 'If'), 'quantileBFloat16If': ('quantileBFloat16', 'If'), 'rankCorrIf': ('rankCorr', 'If'), 'quantileTDigestIf': ('quantileTDigest', 'If'), 'maxIntersectionsPositionIf': ('maxIntersectionsPosition', 'If'), 'sumMapIf': ('sumMap', 'If'), 'kurtSampIf': ('kurtSamp', 'If'), 'exponentialTimeDecayedAvgIf': ('exponentialTimeDecayedAvg', 'If'), 'avgWeightedIf': ('avgWeighted', 'If'), 'topKWeightedIf': ('topKWeighted', 'If'), 'largestTriangleThreeBucketsIf': ('largestTriangleThreeBuckets', 'If'), 'groupArraySampleIf': ('groupArraySample', 'If'), 'quantileExactHighIf': ('quantileExactHigh', 'If'), 'windowFunnelIf': ('windowFunnel', 'If'), 'quantileExactWeightedIf': ('quantileExactWeighted', 'If'), 'quantileExactLowIf': ('quantileExactLow', 'If'), 'maxMapIf': ('maxMap', 'If'), 'welchTTestIf': ('welchTTest', 'If'), 'groupBitOrIf': ('groupBitOr', 'If'), 'quantilesIf': ('quantiles', 'If'), 'avgIf': ('avg', 'If'), 'cramersVIf': ('cramersV', 'If'), 'anyLastIf': ('anyLast', 'If'), 'quantilesGKIf': ('quantilesGK', 'If'), 'sequenceMatchIf': ('sequenceMatch', 'If'), 'quantilesTimingWeightedIf': ('quantilesTimingWeighted', 'If'), 'quantilesDeterministicIf': ('quantilesDeterministic', 'If'), 'sumCountIf': ('sumCount', 'If'), 'maxIntersectionsIf': ('maxIntersections', 'If'), 'stddevSampIf': ('stddevSamp', 'If'), 'groupBitmapAndIf': ('groupBitmapAnd', 'If'), 'groupArrayIf': ('groupArray', 'If'), 'uniqCombinedIf': ('uniqCombined', 'If'), 'skewSampIf': ('skewSamp', 'If'), 'groupBitmapIf': ('groupBitmap', 'If'), 'quantilesBFloat16If': ('quantilesBFloat16', 'If'), 'quantilesTDigestIf': ('quantilesTDigest', 'If'), 'sequenceCountIf': ('sequenceCount', 'If'), 'uniqCombined64If': ('uniqCombined64', 'If'), 'entropyIf': ('entropy', 'If'), 'quantilesTDigestWeightedIf': ('quantilesTDigestWeighted', 'If'), 'quantileExactIf': ('quantileExact', 'If'), 'categoricalInformationValueIf': ('categoricalInformationValue', 'If'), 'topKIf': ('topK', 'If'), 'groupBitAndIf': ('groupBitAnd', 'If'), 'stddevPopIf': ('stddevPop', 'If'), 'quantileBFloat16WeightedIf': ('quantileBFloat16Weighted', 'If'), 'quantileTimingIf': ('quantileTiming', 'If'), 'groupConcatIf': ('groupConcat', 'If'), 'corrIf': ('corr', 'If'), 'sumWithOverflowIf': ('sumWithOverflow', 'If'), 'last_valueIf': ('last_value', 'If'), 'argMaxIf': ('argMax', 'If'), 'quantilesTimingIf': ('quantilesTiming', 'If'), 'groupArrayMovingSumIf': ('groupArrayMovingSum', 'If'), 'deltaSumTimestampIf': ('deltaSumTimestamp', 'If'), 'quantilesBFloat16WeightedIf': ('quantilesBFloat16Weighted', 'If'), 'intervalLengthSumIf': ('intervalLengthSum', 'If'), 'sumKahan': ('sumKahan', None), 'quantilesExactHigh': ('quantilesExactHigh', None), 'any': ('any', None), 'uniqTheta': ('uniqTheta', None), 'groupBitXor': ('groupBitXor', None), 'theilsU': ('theilsU', None), 'boundingRatio': ('boundingRatio', None), 'histogram': ('histogram', None), 'kolmogorovSmirnovTest': ('kolmogorovSmirnovTest', None), 'groupBitmapXor': ('groupBitmapXor', None), 'quantileDeterministic': ('quantileDeterministic', None), 'varPop': ('varPop', None), 'first_value': ('first_value', None), 'uniqHLL12': ('uniqHLL12', None), 'simpleLinearRegression': ('simpleLinearRegression', None), 'quantilesInterpolatedWeighted': ('quantilesInterpolatedWeighted', None), 'max': ('max', None), 'quantileTDigestWeighted': ('quantileTDigestWeighted', None), 'groupUniqArray': ('groupUniqArray', None), 'meanZTest': ('meanZTest', None), 'stochasticLogisticRegression': ('stochasticLogisticRegression', None), 'cramersVBiasCorrected': ('cramersVBiasCorrected', None), 'covarPop': ('covarPop', None), 'count': ('count', None), 'deltaSum': ('deltaSum', None), 'quantileInterpolatedWeighted': ('quantileInterpolatedWeighted', None), 'quantileGK': ('quantileGK', None), 'anyHeavy': ('anyHeavy', None), 'uniqUpTo': ('uniqUpTo', None), 'studentTTest': ('studentTTest', None), 'varSamp': ('varSamp', None), 'groupBitmapOr': ('groupBitmapOr', None), 'argMin': ('argMin', None), 'contingency': ('contingency', None), 'quantilesExactLow': ('quantilesExactLow', None), 'covarSamp': ('covarSamp', None), 'mannWhitneyUTest': ('mannWhitneyUTest', None), 'quantilesExactWeighted': ('quantilesExactWeighted', None), 'quantileTimingWeighted': ('quantileTimingWeighted', None), 'min': ('min', None), 'approx_top_sum': ('approx_top_sum', None), 'uniq': ('uniq', None), 'quantilesExact': ('quantilesExact', None), 'retention': ('retention', None), 'uniqExact': ('uniqExact', None), 'stochasticLinearRegression': ('stochasticLinearRegression', None), 'quantilesExactExclusive': ('quantilesExactExclusive', None), 'sparkBar': ('sparkBar', None), 'skewPop': ('skewPop', None), 'groupArrayMovingAvg': ('groupArrayMovingAvg', None), 'median': ('median', None), 'groupArrayLast': ('groupArrayLast', None), 'kurtPop': ('kurtPop', None), 'exponentialMovingAverage': ('exponentialMovingAverage', None), 'sequenceNextNode': ('sequenceNextNode', None), 'quantile': ('quantile', None), 'groupArrayInsertAt': ('groupArrayInsertAt', None), 'sum': ('sum', None), 'quantileBFloat16': ('quantileBFloat16', None), 'rankCorr': ('rankCorr', None), 'quantileTDigest': ('quantileTDigest', None), 'maxIntersectionsPosition': ('maxIntersectionsPosition', None), 'kurtSamp': ('kurtSamp', None), 'exponentialTimeDecayedAvg': ('exponentialTimeDecayedAvg', None), 'avgWeighted': ('avgWeighted', None), 'topKWeighted': ('topKWeighted', None), 'largestTriangleThreeBuckets': ('largestTriangleThreeBuckets', None), 'groupArraySample': ('groupArraySample', None), 'quantileExactHigh': ('quantileExactHigh', None), 'windowFunnel': ('windowFunnel', None), 'quantileExactWeighted': ('quantileExactWeighted', None), 'quantileExactLow': ('quantileExactLow', None), 'welchTTest': ('welchTTest', None), 'groupBitOr': ('groupBitOr', None), 'quantiles': ('quantiles', None), 'avg': ('avg', None), 'cramersV': ('cramersV', None), 'anyLast': ('anyLast', None), 'quantilesGK': ('quantilesGK', None), 'sequenceMatch': ('sequenceMatch', None), 'quantilesTimingWeighted': ('quantilesTimingWeighted', None), 'quantilesDeterministic': ('quantilesDeterministic', None), 'sumCount': ('sumCount', None), 'maxIntersections': ('maxIntersections', None), 'stddevSamp': ('stddevSamp', None), 'groupBitmapAnd': ('groupBitmapAnd', None), 'groupArray': ('groupArray', None), 'uniqCombined': ('uniqCombined', None), 'skewSamp': ('skewSamp', None), 'groupBitmap': ('groupBitmap', None), 'quantilesBFloat16': ('quantilesBFloat16', None), 'quantilesTDigest': ('quantilesTDigest', None), 'sequenceCount': ('sequenceCount', None), 'uniqCombined64': ('uniqCombined64', None), 'entropy': ('entropy', None), 'quantilesTDigestWeighted': ('quantilesTDigestWeighted', None), 'quantileExact': ('quantileExact', None), 'categoricalInformationValue': ('categoricalInformationValue', None), 'topK': ('topK', None), 'groupBitAnd': ('groupBitAnd', None), 'stddevPop': ('stddevPop', None), 'quantileBFloat16Weighted': ('quantileBFloat16Weighted', None), 'quantileTiming': ('quantileTiming', None), 'groupConcat': ('groupConcat', None), 'corr': ('corr', None), 'sumWithOverflow': ('sumWithOverflow', None), 'last_value': ('last_value', None), 'argMax': ('argMax', None), 'quantilesTiming': ('quantilesTiming', None), 'groupArrayMovingSum': ('groupArrayMovingSum', None), 'deltaSumTimestamp': ('deltaSumTimestamp', None), 'quantilesBFloat16Weighted': ('quantilesBFloat16Weighted', None), 'intervalLengthSum': ('intervalLengthSum', None)}
240class ClickHouseParser(parser.Parser): 241 # Tested in ClickHouse's playground, it seems that the following two queries do the same thing 242 # * select x from t1 union all select x from t2 limit 1; 243 # * select x from t1 union all (select x from t2 limit 1); 244 MODIFIERS_ATTACHED_TO_SET_OP = False 245 INTERVAL_SPANS = False 246 OPTIONAL_ALIAS_TOKEN_CTE = False 247 JOINS_HAVE_EQUAL_PRECEDENCE = True 248 249 FUNCTIONS = { 250 **{ 251 k: v 252 for k, v in parser.Parser.FUNCTIONS.items() 253 if k not in ("TRANSFORM", "APPROX_TOP_SUM") 254 }, 255 **{f"TOSTARTOF{unit}": _build_timestamp_trunc(unit=unit) for unit in TIMESTAMP_TRUNC_UNITS}, 256 "ANY": exp.AnyValue.from_arg_list, 257 "ARRAYCOMPACT": exp.ArrayCompact.from_arg_list, 258 "ARRAYCONCAT": exp.ArrayConcat.from_arg_list, 259 "ARRAYDISTINCT": exp.ArrayDistinct.from_arg_list, 260 "ARRAYEXCEPT": exp.ArrayExcept.from_arg_list, 261 "ARRAYSUM": exp.ArraySum.from_arg_list, 262 "ARRAYMAX": exp.ArrayMax.from_arg_list, 263 "ARRAYMIN": exp.ArrayMin.from_arg_list, 264 "ARRAYREVERSE": exp.ArrayReverse.from_arg_list, 265 "ARRAYSLICE": exp.ArraySlice.from_arg_list, 266 "CURRENTDATABASE": exp.CurrentDatabase.from_arg_list, 267 "CURRENTSCHEMAS": exp.CurrentSchemas.from_arg_list, 268 "COUNTIF": _build_count_if, 269 "CITYHASH64": exp.CityHash64.from_arg_list, 270 "COSINEDISTANCE": exp.CosineDistance.from_arg_list, 271 "VERSION": exp.CurrentVersion.from_arg_list, 272 "DATE_ADD": build_date_delta(exp.DateAdd, default_unit=None), 273 "DATEADD": build_date_delta(exp.DateAdd, default_unit=None), 274 "DATE_DIFF": build_date_delta(exp.DateDiff, default_unit=None, supports_timezone=True), 275 "DATEDIFF": build_date_delta(exp.DateDiff, default_unit=None, supports_timezone=True), 276 "DATE_FORMAT": _build_datetime_format(exp.TimeToStr), 277 "DATE_SUB": build_date_delta(exp.DateSub, default_unit=None), 278 "DATESUB": build_date_delta(exp.DateSub, default_unit=None), 279 "FORMATDATETIME": _build_datetime_format(exp.TimeToStr), 280 "HAS": exp.ArrayContains.from_arg_list, 281 "ILIKE": build_like(exp.ILike), 282 "JSONEXTRACTSTRING": build_json_extract_path( 283 exp.JSONExtractScalar, zero_based_indexing=False 284 ), 285 "LENGTH": lambda args: exp.Length(this=seq_get(args, 0), binary=True), 286 "LIKE": build_like(exp.Like), 287 "L2Distance": exp.EuclideanDistance.from_arg_list, 288 "MAP": parser.build_var_map, 289 "MATCH": exp.RegexpLike.from_arg_list, 290 "NOTLIKE": build_like(exp.Like, not_like=True), 291 "PARSEDATETIME": _build_datetime_format(exp.ParseDatetime), 292 "RANDCANONICAL": exp.Rand.from_arg_list, 293 "STR_TO_DATE": _build_str_to_date, 294 "TIMESTAMP_SUB": build_date_delta(exp.TimestampSub, default_unit=None), 295 "TIMESTAMPSUB": build_date_delta(exp.TimestampSub, default_unit=None), 296 "TIMESTAMP_ADD": build_date_delta(exp.TimestampAdd, default_unit=None), 297 "TIMESTAMPADD": build_date_delta(exp.TimestampAdd, default_unit=None), 298 "TOMONDAY": _build_timestamp_trunc("WEEK"), 299 "UNIQ": exp.ApproxDistinct.from_arg_list, 300 "MD5": exp.MD5Digest.from_arg_list, 301 "SHA256": lambda args: exp.SHA2(this=seq_get(args, 0), length=exp.Literal.number(256)), 302 "SHA512": lambda args: exp.SHA2(this=seq_get(args, 0), length=exp.Literal.number(512)), 303 "SPLITBYCHAR": _build_split_by_char, 304 "SPLITBYREGEXP": _build_split(exp.RegexpSplit), 305 "SPLITBYSTRING": _build_split(exp.Split), 306 "SUBSTRINGINDEX": exp.SubstringIndex.from_arg_list, 307 "TOTYPENAME": exp.Typeof.from_arg_list, 308 "EDITDISTANCE": exp.Levenshtein.from_arg_list, 309 "JAROWINKLERSIMILARITY": exp.JarowinklerSimilarity.from_arg_list, 310 "LEVENSHTEINDISTANCE": exp.Levenshtein.from_arg_list, 311 "UTCTIMESTAMP": exp.UtcTimestamp.from_arg_list, 312 } 313 314 AGG_FUNCTIONS = AGG_FUNCTIONS 315 AGG_FUNCTIONS_SUFFIXES = AGG_FUNCTIONS_SUFFIXES 316 317 FUNC_TOKENS = { 318 *parser.Parser.FUNC_TOKENS, 319 TokenType.AND, 320 TokenType.FILE, 321 TokenType.OR, 322 TokenType.SET, 323 } 324 325 RESERVED_TOKENS = parser.Parser.RESERVED_TOKENS - {TokenType.SELECT} 326 327 ID_VAR_TOKENS = { 328 *parser.Parser.ID_VAR_TOKENS, 329 TokenType.LIKE, 330 } 331 332 AGG_FUNC_MAPPING = AGG_FUNC_MAPPING 333 334 @classmethod 335 def _resolve_clickhouse_agg(cls, name: str) -> tuple[str, Sequence[str]] | None: 336 # ClickHouse allows chaining multiple combinators on aggregate functions. 337 # See https://clickhouse.com/docs/sql-reference/aggregate-functions/combinators 338 # N.B. this resolution allows any suffix stack, including ones that ClickHouse rejects 339 # syntactically such as sumMergeMerge (due to repeated adjacent suffixes) 340 341 # Until we are able to identify a 1- or 0-suffix aggregate function by name, 342 # repeatedly strip and queue suffixes (checking longer suffixes first, see comment on 343 # AGG_FUNCTIONS_SUFFIXES_SORTED). This loop only runs for 2 or more suffixes, 344 # as AGG_FUNC_MAPPING memoizes all 0- and 1-suffix 345 accumulated_suffixes: deque[str] = deque() 346 while (parts := AGG_FUNC_MAPPING.get(name)) is None: 347 for suffix in AGG_FUNCTIONS_SUFFIXES: 348 if name.endswith(suffix) and len(name) != len(suffix): 349 accumulated_suffixes.appendleft(suffix) 350 name = name[: -len(suffix)] 351 break 352 else: 353 return None 354 355 # We now have a 0- or 1-suffix aggregate 356 agg_func_name, inner_suffix = parts 357 if inner_suffix: 358 # this is a 1-suffix aggregate (either naturally or via repeated suffix 359 # stripping). prepend the innermost suffix. 360 accumulated_suffixes.appendleft(inner_suffix) 361 362 return (agg_func_name, accumulated_suffixes) 363 364 FUNCTION_PARSERS = { 365 **{k: v for k, v in parser.Parser.FUNCTION_PARSERS.items() if k != "MATCH"}, 366 "ARRAYJOIN": lambda self: self.expression(exp.Explode(this=self._parse_expression())), 367 "GROUPCONCAT": lambda self: self._parse_group_concat(), 368 "QUANTILE": lambda self: self._parse_quantile(), 369 "MEDIAN": lambda self: self._parse_quantile(), 370 "COLUMNS": lambda self: self._parse_columns(), 371 "TUPLE": lambda self: exp.Struct.from_arg_list(self._parse_function_args(alias=True)), 372 "AND": lambda self: exp.and_(*self._parse_function_args(alias=False)), 373 "OR": lambda self: exp.or_(*self._parse_function_args(alias=False)), 374 "XOR": lambda self: exp.xor(*self._parse_function_args(alias=False)), 375 } 376 377 PROPERTY_PARSERS = { 378 **{k: v for k, v in parser.Parser.PROPERTY_PARSERS.items() if k != "DYNAMIC"}, 379 "ENGINE": lambda self: self._parse_engine_property(), 380 "UUID": lambda self: self.expression(exp.UuidProperty(this=self._parse_string())), 381 } 382 383 NO_PAREN_FUNCTION_PARSERS = { 384 k: v for k, v in parser.Parser.NO_PAREN_FUNCTION_PARSERS.items() if k != "ANY" 385 } 386 387 NO_PAREN_FUNCTIONS = { 388 k: v 389 for k, v in parser.Parser.NO_PAREN_FUNCTIONS.items() 390 if k != TokenType.CURRENT_TIMESTAMP 391 } 392 393 RANGE_PARSERS = { 394 **parser.Parser.RANGE_PARSERS, 395 TokenType.GLOBAL: lambda self, this: self._parse_global_in(this), 396 } 397 398 COLUMN_OPERATORS = { 399 **{k: v for k, v in parser.Parser.COLUMN_OPERATORS.items() if k != TokenType.PLACEHOLDER}, 400 TokenType.DOTCARET: lambda self, this, field: self.expression( 401 exp.NestedJSONSelect(this=this, expression=field) 402 ), 403 } 404 405 JOIN_KINDS = { 406 *parser.Parser.JOIN_KINDS, 407 TokenType.ALL, 408 TokenType.ANY, 409 TokenType.ASOF, 410 TokenType.ARRAY, 411 } 412 413 TABLE_ALIAS_TOKENS = parser.Parser.TABLE_ALIAS_TOKENS - { 414 TokenType.ALL, 415 TokenType.ANY, 416 TokenType.ARRAY, 417 TokenType.ASOF, 418 TokenType.FINAL, 419 TokenType.FORMAT, 420 TokenType.SETTINGS, 421 } 422 423 ALIAS_TOKENS = parser.Parser.ALIAS_TOKENS - { 424 TokenType.FORMAT, 425 } 426 427 LOG_DEFAULTS_TO_LN = True 428 429 QUERY_MODIFIER_PARSERS = { 430 **parser.Parser.QUERY_MODIFIER_PARSERS, 431 TokenType.SETTINGS: lambda self: ( 432 "settings", 433 self._advance() or self._parse_csv(self._parse_assignment), 434 ), 435 TokenType.FORMAT: lambda self: ("format", self._advance() or self._parse_id_var()), 436 } 437 438 CONSTRAINT_PARSERS = { 439 **parser.Parser.CONSTRAINT_PARSERS, 440 "INDEX": lambda self: self._parse_index_constraint(), 441 "CODEC": lambda self: self._parse_compress(), 442 "ASSUME": lambda self: self._parse_assume_constraint(), 443 } 444 445 ALTER_PARSERS = { 446 **parser.Parser.ALTER_PARSERS, 447 "MODIFY": lambda self: self._parse_alter_table_modify(), 448 "REPLACE": lambda self: self._parse_alter_table_replace(), 449 } 450 451 SCHEMA_UNNAMED_CONSTRAINTS = { 452 *parser.Parser.SCHEMA_UNNAMED_CONSTRAINTS, 453 "INDEX", 454 } - {"CHECK"} 455 456 PLACEHOLDER_PARSERS = { 457 **parser.Parser.PLACEHOLDER_PARSERS, 458 TokenType.L_BRACE: lambda self: self._parse_query_parameter(), 459 } 460 461 STATEMENT_PARSERS = { 462 **parser.Parser.STATEMENT_PARSERS, 463 TokenType.DETACH: lambda self: self._parse_detach(), 464 } 465 466 def _parse_wrapped_select_or_assignment(self) -> exp.Expr | None: 467 return self._parse_wrapped( 468 lambda: self._parse_select() or self._parse_assignment(), optional=True 469 ) 470 471 def _parse_check_constraint(self) -> exp.CheckColumnConstraint | None: 472 return self.expression( 473 exp.CheckColumnConstraint(this=self._parse_wrapped_select_or_assignment()) 474 ) 475 476 def _parse_assume_constraint(self) -> exp.AssumeColumnConstraint | None: 477 return self.expression( 478 exp.AssumeColumnConstraint(this=self._parse_wrapped_select_or_assignment()) 479 ) 480 481 def _parse_engine_property(self) -> exp.EngineProperty: 482 self._match(TokenType.EQ) 483 return self.expression( 484 exp.EngineProperty(this=self._parse_field(any_token=True, anonymous_func=True)) 485 ) 486 487 # https://clickhouse.com/docs/en/sql-reference/statements/create/function 488 def _parse_user_defined_function_expression(self) -> exp.Expr | None: 489 return self._parse_lambda() 490 491 def _parse_types( 492 self, 493 check_func: bool = False, 494 schema: bool = False, 495 allow_identifiers: bool = True, 496 with_collation: bool = False, 497 ) -> exp.Expr | None: 498 dtype = super()._parse_types( 499 check_func=check_func, 500 schema=schema, 501 allow_identifiers=allow_identifiers, 502 with_collation=with_collation, 503 ) 504 if isinstance(dtype, exp.DataType) and dtype.args.get("nullable") is not True: 505 # Mark every type as non-nullable which is ClickHouse's default, unless it's 506 # already marked as nullable. This marker helps us transpile types from other 507 # dialects to ClickHouse, so that we can e.g. produce `CAST(x AS Nullable(String))` 508 # from `CAST(x AS TEXT)`. If there is a `NULL` value in `x`, the former would 509 # fail in ClickHouse without the `Nullable` type constructor. 510 dtype.set("nullable", False) 511 512 return dtype 513 514 def _parse_extract(self) -> exp.Extract | exp.Anonymous: 515 index = self._index 516 this = self._parse_bitwise() 517 if self._match(TokenType.FROM): 518 self._retreat(index) 519 return super()._parse_extract() 520 521 # We return Anonymous here because extract and regexpExtract have different semantics, 522 # so parsing extract(foo, bar) into RegexpExtract can potentially break queries. E.g., 523 # `extract('foobar', 'b')` works, but ClickHouse crashes for `regexpExtract('foobar', 'b')`. 524 # 525 # TODO: can we somehow convert the former into an equivalent `regexpExtract` call? 526 self._match(TokenType.COMMA) 527 return self.expression( 528 exp.Anonymous(this="extract", expressions=[this, self._parse_bitwise()]) 529 ) 530 531 def _parse_assignment(self) -> exp.Expr | None: 532 this = super()._parse_assignment() 533 534 if self._match(TokenType.PLACEHOLDER): 535 return self.expression( 536 exp.If( 537 this=this, 538 true=self._parse_assignment(), 539 false=self._match(TokenType.COLON) and self._parse_assignment(), 540 ) 541 ) 542 543 return this 544 545 def _parse_query_parameter(self) -> exp.Expr | None: 546 """ 547 Parse a placeholder expression like SELECT {abc: UInt32} or FROM {table: Identifier} 548 https://clickhouse.com/docs/en/sql-reference/syntax#defining-and-using-query-parameters 549 """ 550 index = self._index 551 552 this = self._parse_id_var() 553 self._match(TokenType.COLON) 554 kind = self._parse_types(check_func=False, allow_identifiers=False) or ( 555 self._match_text_seq("IDENTIFIER") and "Identifier" 556 ) 557 558 if not kind: 559 self._retreat(index) 560 return None 561 elif not self._match(TokenType.R_BRACE): 562 self.raise_error("Expecting }") 563 564 if isinstance(this, exp.Identifier) and not this.quoted: 565 this = exp.var(this.name) 566 567 return self.expression(exp.Placeholder(this=this, kind=kind)) 568 569 def _parse_bracket(self, this: exp.Expr | None = None) -> exp.Expr | None: 570 if this: 571 bracket_json_type = None 572 573 while self._match_pair(TokenType.L_BRACKET, TokenType.R_BRACKET): 574 bracket_json_type = exp.DataType( 575 this=exp.DType.ARRAY, 576 expressions=[ 577 bracket_json_type 578 or exp.DType.JSON.into_expr(dialect=self.dialect, nullable=False) 579 ], 580 nested=True, 581 ) 582 583 if bracket_json_type: 584 return self.expression(exp.JSONCast(this=this, to=bracket_json_type)) 585 586 l_brace = self._match(TokenType.L_BRACE, advance=False) 587 bracket = super()._parse_bracket(this) 588 589 if l_brace and isinstance(bracket, exp.Struct): 590 varmap = exp.VarMap(keys=exp.Array(), values=exp.Array()) 591 for expression in bracket.expressions: 592 if not isinstance(expression, exp.PropertyEQ): 593 break 594 595 varmap.args["keys"].append("expressions", exp.Literal.string(expression.name)) 596 varmap.args["values"].append("expressions", expression.expression) 597 598 return varmap 599 600 return bracket 601 602 def _parse_global_in(self, this: exp.Expr | None) -> exp.Not | exp.In: 603 is_negated = self._match(TokenType.NOT) 604 in_expr: exp.In | None = None 605 if self._match(TokenType.IN): 606 in_expr = self._parse_in(this) 607 in_expr.set("is_global", True) 608 return self.expression(exp.Not(this=in_expr)) if is_negated else t.cast(exp.In, in_expr) 609 610 def _parse_table( 611 self, 612 schema: bool = False, 613 joins: bool = False, 614 alias_tokens: Collection[TokenType] | None = None, 615 parse_bracket: bool = False, 616 is_db_reference: bool = False, 617 parse_partition: bool = False, 618 consume_pipe: bool = False, 619 ) -> exp.Expr | None: 620 this = super()._parse_table( 621 schema=schema, 622 joins=joins, 623 alias_tokens=alias_tokens, 624 parse_bracket=parse_bracket, 625 is_db_reference=is_db_reference, 626 ) 627 628 if isinstance(this, exp.Table): 629 inner = this.this 630 alias = this.args.get("alias") 631 632 if isinstance(inner, exp.GenerateSeries) and alias and not alias.columns: 633 alias.set("columns", [exp.to_identifier("generate_series")]) 634 635 if self._match(TokenType.FINAL): 636 this = self.expression(exp.Final(this=this)) 637 638 return this 639 640 def _parse_position(self, haystack_first: bool = False) -> exp.StrPosition: 641 return super()._parse_position(haystack_first=True) 642 643 # https://clickhouse.com/docs/en/sql-reference/statements/select/with/ 644 def _parse_cte(self) -> exp.CTE | None: 645 # WITH <identifier> AS <subquery expression> 646 cte: exp.CTE | None = self._try_parse(super()._parse_cte) 647 648 if not cte: 649 # WITH <expression> AS <identifier> 650 cte = self.expression( 651 exp.CTE(this=self._parse_assignment(), alias=self._parse_table_alias(), scalar=True) 652 ) 653 654 return cte 655 656 def _parse_join_parts( 657 self, 658 ) -> tuple[Token | None, Token | None, Token | None]: 659 is_global = self._prev if self._match(TokenType.GLOBAL) else None 660 661 kind_pre = self._prev if self._match_set(self.JOIN_KINDS) else None 662 side = self._prev if self._match_set(self.JOIN_SIDES) else None 663 kind = self._prev if self._match_set(self.JOIN_KINDS) else None 664 665 return is_global, side or kind, kind_pre or kind 666 667 def _parse_join( 668 self, 669 skip_join_token: bool = False, 670 parse_bracket: bool = False, 671 alias_tokens: t.Collection[TokenType] | None = None, 672 ) -> exp.Join | None: 673 join = super()._parse_join( 674 skip_join_token=skip_join_token, parse_bracket=True, alias_tokens=alias_tokens 675 ) 676 if join: 677 method = join.args.get("method") 678 join.set("method", None) 679 join.set("global_", method) 680 681 # tbl ARRAY JOIN arr <-- this should be a `Column` reference, not a `Table` 682 # https://clickhouse.com/docs/en/sql-reference/statements/select/array-join 683 if join.kind == "ARRAY": 684 for table in join.find_all(exp.Table): 685 table.replace(table.to_column()) 686 687 return join 688 689 def _parse_function( 690 self, 691 functions: dict[str, t.Callable] | None = None, 692 anonymous: bool = False, 693 optional_parens: bool = True, 694 any_token: bool = False, 695 ) -> exp.Expr | None: 696 expr = super()._parse_function( 697 functions=functions, 698 anonymous=anonymous, 699 optional_parens=optional_parens, 700 any_token=any_token, 701 ) 702 703 func = expr.this if isinstance(expr, exp.Window) else expr 704 705 # Aggregate functions can be split in 2 parts: <func_name><suffix[es]> 706 parts = self._resolve_clickhouse_agg(func.this) if isinstance(func, exp.Anonymous) else None 707 708 if parts: 709 anon_func: exp.Anonymous = t.cast(exp.Anonymous, func) 710 params = self._parse_func_params(anon_func) 711 712 if len(parts[1]) > 0: 713 exp_class: Type[exp.Expr] = ( 714 exp.CombinedParameterizedAgg if params else exp.CombinedAggFunc 715 ) 716 else: 717 exp_class = exp.ParameterizedAgg if params else exp.AnonymousAggFunc 718 719 instance = exp_class(this=anon_func.this, expressions=anon_func.expressions) 720 if params: 721 instance.set("params", params) 722 func = self.expression(instance) 723 724 if isinstance(expr, exp.Window): 725 # The window's func was parsed as Anonymous in base parser, fix its 726 # type to be ClickHouse style CombinedAnonymousAggFunc / AnonymousAggFunc 727 expr.set("this", func) 728 elif params: 729 # Params have blocked super()._parse_function() from parsing the following window 730 # (if that exists) as they're standing between the function call and the window spec 731 expr = self._parse_window(func) 732 else: 733 expr = func 734 735 return expr 736 737 def _parse_func_params(self, this: exp.Func | None = None) -> list[exp.Expr] | None: 738 if self._match_pair(TokenType.R_PAREN, TokenType.L_PAREN): 739 return self._parse_csv(self._parse_lambda) 740 741 if self._match(TokenType.L_PAREN): 742 params = self._parse_csv(self._parse_lambda) 743 self._match_r_paren(this) 744 return params 745 746 return None 747 748 def _parse_group_concat(self) -> exp.GroupConcat: 749 args = self._parse_csv(self._parse_lambda) 750 params = self._parse_func_params() 751 752 if params: 753 # groupConcat(sep [, limit])(expr) 754 separator = seq_get(args, 0) 755 limit = seq_get(args, 1) 756 this: exp.Expr | None = seq_get(params, 0) 757 if limit is not None: 758 this = exp.Limit(this=this, expression=limit) 759 return self.expression(exp.GroupConcat(this=this, separator=separator)) 760 761 # groupConcat(expr) 762 return self.expression(exp.GroupConcat(this=seq_get(args, 0))) 763 764 def _parse_quantile(self) -> exp.Quantile: 765 this = self._parse_lambda() 766 params = self._parse_func_params() 767 if params: 768 return self.expression(exp.Quantile(this=params[0], quantile=this)) 769 return self.expression(exp.Quantile(this=this, quantile=exp.Literal.number(0.5))) 770 771 def _parse_wrapped_id_vars(self, optional: bool = False) -> list[exp.Expr]: 772 return super()._parse_wrapped_id_vars(optional=True) 773 774 def _parse_column_def( 775 self, this: exp.Expr | None, computed_column: bool = True 776 ) -> exp.Expr | None: 777 if self._match(TokenType.DOT): 778 return exp.Dot(this=this, expression=self._parse_id_var()) 779 780 return super()._parse_column_def(this, computed_column=computed_column) 781 782 def _parse_primary_key( 783 self, 784 wrapped_optional: bool = False, 785 in_props: bool = False, 786 named_primary_key: bool = False, 787 ) -> exp.PrimaryKeyColumnConstraint | exp.PrimaryKey: 788 return super()._parse_primary_key( 789 wrapped_optional=wrapped_optional or in_props, 790 in_props=in_props, 791 named_primary_key=named_primary_key, 792 ) 793 794 def _parse_on_property(self) -> exp.Expr | None: 795 index = self._index 796 if self._match_text_seq("CLUSTER"): 797 this = self._parse_string() or self._parse_id_var() 798 if this: 799 return self.expression(exp.OnCluster(this=this)) 800 else: 801 self._retreat(index) 802 return None 803 804 def _parse_index_constraint(self, kind: str | None = None) -> exp.IndexColumnConstraint: 805 # INDEX name1 expr TYPE type1(args) GRANULARITY value 806 this = self._parse_id_var() 807 expression = self._parse_assignment() 808 809 index_type = self._match_text_seq("TYPE") and (self._parse_function() or self._parse_var()) 810 811 granularity = self._match_text_seq("GRANULARITY") and self._parse_term() 812 813 return self.expression( 814 exp.IndexColumnConstraint( 815 this=this, expression=expression, index_type=index_type, granularity=granularity 816 ) 817 ) 818 819 def _parse_partition(self) -> exp.Partition | None: 820 # https://clickhouse.com/docs/en/sql-reference/statements/alter/partition#how-to-set-partition-expression 821 if not self._match(TokenType.PARTITION): 822 return None 823 824 if self._match_text_seq("ID"): 825 # Corresponds to the PARTITION ID <string_value> syntax 826 expressions: list[exp.Expr] = [ 827 self.expression(exp.PartitionId(this=self._parse_string())) 828 ] 829 else: 830 expressions = self._parse_expressions() 831 832 return self.expression(exp.Partition(expressions=expressions)) 833 834 def _parse_alter_table_replace(self) -> exp.Expr | None: 835 partition = self._parse_partition() 836 837 if not partition or not self._match(TokenType.FROM): 838 return None 839 840 return self.expression( 841 exp.ReplacePartition(expression=partition, source=self._parse_table_parts()) 842 ) 843 844 def _parse_alter_table_modify(self) -> exp.Expr | None: 845 if properties := self._parse_properties(): 846 return self.expression(exp.AlterModifySqlSecurity(expressions=properties.expressions)) 847 return None 848 849 def _parse_definer(self) -> exp.DefinerProperty | None: 850 self._match(TokenType.EQ) 851 if self._match(TokenType.CURRENT_USER): 852 return exp.DefinerProperty(this=exp.Var(this=self._prev.text.upper())) 853 return exp.DefinerProperty(this=self._parse_string()) 854 855 def _parse_projection_def(self) -> exp.ProjectionDef | None: 856 if not self._match_text_seq("PROJECTION"): 857 return None 858 859 return self.expression( 860 exp.ProjectionDef( 861 this=self._parse_id_var(), expression=self._parse_wrapped(self._parse_statement) 862 ) 863 ) 864 865 def _parse_constraint(self) -> exp.Expr | None: 866 return super()._parse_constraint() or self._parse_projection_def() 867 868 def _parse_alias(self, this: exp.Expr | None, explicit: bool = False) -> exp.Expr | None: 869 # In clickhouse "SELECT <expr> APPLY(...)" is a query modifier, 870 # so "APPLY" shouldn't be parsed as <expr>'s alias. However, "SELECT <expr> apply" is a valid alias 871 if self._match_pair(TokenType.APPLY, TokenType.L_PAREN, advance=False): 872 return this 873 874 return super()._parse_alias(this=this, explicit=explicit) 875 876 def _parse_expression(self) -> exp.Expr | None: 877 this = super()._parse_expression() 878 879 # Clickhouse allows "SELECT <expr> [APPLY(func)] [...]]" modifier 880 while self._match_pair(TokenType.APPLY, TokenType.L_PAREN): 881 this = exp.Apply(this=this, expression=self._parse_var(any_token=True)) 882 self._match(TokenType.R_PAREN) 883 884 return this 885 886 def _parse_columns(self) -> exp.Expr: 887 this: exp.Expr = self.expression(exp.Columns(this=self._parse_lambda())) 888 889 while self._next and self._match_text_seq(")", "APPLY", "("): 890 self._match(TokenType.R_PAREN) 891 this = exp.Apply(this=this, expression=self._parse_var(any_token=True)) 892 return this 893 894 def _parse_value(self, values: bool = True) -> exp.Tuple | None: 895 value = super()._parse_value(values=values) 896 if not value: 897 return None 898 899 # In Clickhouse "SELECT * FROM VALUES (1, 2, 3)" generates a table with a single column, in contrast 900 # to other dialects. For this case, we canonicalize the values into a tuple-of-tuples AST if it's not already one. 901 # In INSERT INTO statements the same clause actually references multiple columns (opposite semantics), 902 # but the final result is not altered by the extra parentheses. 903 # Note: Clickhouse allows VALUES([structure], value, ...) so the branch checks for the last expression 904 expressions = value.expressions 905 if values and not isinstance(expressions[-1], exp.Tuple): 906 value.set( 907 "expressions", 908 [self.expression(exp.Tuple(expressions=[expr])) for expr in expressions], 909 ) 910 911 return value 912 913 def _parse_partitioned_by(self) -> exp.PartitionedByProperty: 914 # ClickHouse allows custom expressions as partition key 915 # https://clickhouse.com/docs/engines/table-engines/mergetree-family/custom-partitioning-key 916 return self.expression(exp.PartitionedByProperty(this=self._parse_assignment())) 917 918 def _parse_detach(self) -> exp.Detach: 919 kind = self._match_set(self.DB_CREATABLES) and self._prev.text.upper() 920 exists = self._parse_exists() 921 this = self._parse_table_parts() 922 923 return self.expression( 924 exp.Detach( 925 this=this, 926 kind=kind, 927 exists=exists, 928 cluster=self._parse_on_property() if self._match(TokenType.ON) else None, 929 permanent=self._match_text_seq("PERMANENTLY"), 930 sync=self._match_text_seq("SYNC"), 931 ) 932 )
Parser consumes a list of tokens produced by the Tokenizer and produces a parsed syntax tree.
Arguments:
- error_level: The desired error level. Default: ErrorLevel.IMMEDIATE
- error_message_context: The amount of context to capture from a query string when displaying the error message (in number of characters). Default: 100
- max_errors: Maximum number of error messages to include in a raised ParseError. This is only relevant if error_level is ErrorLevel.RAISE. Default: 3
- max_nodes: Maximum number of AST nodes to prevent memory exhaustion. Set to -1 (default) to disable the check.
FUNCTIONS =
{'AI_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.AIAgg'>>, 'AI_CLASSIFY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.AIClassify'>>, 'AI_EMBED': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.AIEmbed'>>, 'A_I_FORECAST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.AIForecast'>>, 'AI_GENERATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.AIGenerate'>>, 'AI_SIMILARITY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.AISimilarity'>>, 'AI_SUMMARIZE_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.AISummarizeAgg'>>, 'ABS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Abs'>>, 'ACOS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Acos'>>, 'ACOSH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Acosh'>>, 'ADD_MONTHS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.AddMonths'>>, 'AND': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.And'>>, 'ANONYMOUS_AGG_FUNC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.AnonymousAggFunc'>>, 'ANY_VALUE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.AnyValue'>>, 'APPLY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.Apply'>>, 'APPROX_DISTINCT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.ApproxDistinct'>>, 'APPROX_COUNT_DISTINCT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.ApproxDistinct'>>, 'APPROX_PERCENTILE_ACCUMULATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ApproxPercentileAccumulate'>>, 'APPROX_PERCENTILE_COMBINE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ApproxPercentileCombine'>>, 'APPROX_PERCENTILE_ESTIMATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ApproxPercentileEstimate'>>, 'APPROX_QUANTILE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ApproxQuantile'>>, 'APPROX_QUANTILES': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ApproxQuantiles'>>, 'APPROX_TOP_K': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ApproxTopK'>>, 'APPROX_TOP_K_ACCUMULATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ApproxTopKAccumulate'>>, 'APPROX_TOP_K_COMBINE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ApproxTopKCombine'>>, 'APPROX_TOP_K_ESTIMATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ApproxTopKEstimate'>>, 'APPROXIMATE_SIMILARITY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ApproximateSimilarity'>>, 'APPROXIMATE_JACCARD_INDEX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ApproximateSimilarity'>>, 'ARG_MAX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ArgMax'>>, 'ARGMAX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ArgMax'>>, 'MAX_BY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ArgMax'>>, 'ARG_MIN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ArgMin'>>, 'ARGMIN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ArgMin'>>, 'MIN_BY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ArgMin'>>, 'ARRAY': <function Parser.<lambda>>, 'ARRAY_AGG': <function Parser.<lambda>>, 'ARRAY_ALL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayAll'>>, 'ARRAY_ANY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayAny'>>, 'ARRAY_APPEND': <function build_array_append>, 'ARRAY_COMPACT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayCompact'>>, 'ARRAY_CONCAT': <function build_array_concat>, 'ARRAY_CAT': <function build_array_concat>, 'ARRAY_CONCAT_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ArrayConcatAgg'>>, 'ARRAY_CONSTRUCT_COMPACT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayConstructCompact'>>, 'ARRAY_CONTAINS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayContains'>>, 'ARRAY_HAS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayContains'>>, 'ARRAY_CONTAINS_ALL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayContainsAll'>>, 'ARRAY_HAS_ALL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayContainsAll'>>, 'ARRAY_DISTINCT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayDistinct'>>, 'ARRAY_EXCEPT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayExcept'>>, 'FILTER': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayFilter'>>, 'ARRAY_FILTER': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayFilter'>>, 'ARRAY_FIRST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayFirst'>>, 'ARRAY_INSERT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayInsert'>>, 'ARRAY_INTERSECT': <function Parser.<lambda>>, 'ARRAY_INTERSECTION': <function Parser.<lambda>>, 'ARRAY_LAST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayLast'>>, 'ARRAY_MAX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayMax'>>, 'ARRAY_MIN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayMin'>>, 'ARRAY_OVERLAPS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayOverlaps'>>, 'ARRAY_POSITION': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayPosition'>>, 'ARRAY_PREPEND': <function build_array_prepend>, 'ARRAY_REMOVE': <function build_array_remove>, 'ARRAY_REMOVE_AT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayRemoveAt'>>, 'ARRAY_REVERSE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayReverse'>>, 'ARRAY_SIZE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArraySize'>>, 'ARRAY_LENGTH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArraySize'>>, 'ARRAY_SLICE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArraySlice'>>, 'ARRAY_SORT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArraySort'>>, 'ARRAY_SUM': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArraySum'>>, 'ARRAY_TO_STRING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayToString'>>, 'ARRAY_JOIN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayToString'>>, 'ARRAY_UNION_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ArrayUnionAgg'>>, 'ARRAY_UNIQUE_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ArrayUniqueAgg'>>, 'ARRAYS_ZIP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArraysZip'>>, 'ASCII': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Ascii'>>, 'ASIN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Asin'>>, 'ASINH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Asinh'>>, 'ATAN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Atan'>>, 'ATAN2': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Atan2'>>, 'ATANH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Atanh'>>, 'AVG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Avg'>>, 'BASE64_DECODE_BINARY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Base64DecodeBinary'>>, 'BASE64_DECODE_STRING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Base64DecodeString'>>, 'BASE64_ENCODE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Base64Encode'>>, 'BIT_LENGTH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.BitLength'>>, 'BITMAP_BIT_POSITION': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.BitmapBitPosition'>>, 'BITMAP_BUCKET_NUMBER': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.BitmapBucketNumber'>>, 'BITMAP_CONSTRUCT_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.BitmapConstructAgg'>>, 'BITMAP_COUNT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.BitmapCount'>>, 'BITMAP_OR_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.BitmapOrAgg'>>, 'BITWISE_AND_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.BitwiseAndAgg'>>, 'BITWISE_COUNT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.BitwiseCount'>>, 'BITWISE_OR_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.BitwiseOrAgg'>>, 'BITWISE_XOR_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.BitwiseXorAgg'>>, 'BOOLAND': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Booland'>>, 'BOOLNOT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Boolnot'>>, 'BOOLOR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Boolor'>>, 'BOOLXOR_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.BoolxorAgg'>>, 'BYTE_LENGTH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.ByteLength'>>, 'CASE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Case'>>, 'CAST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Cast'>>, 'CAST_TO_STR_TYPE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CastToStrType'>>, 'CBRT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Cbrt'>>, 'CEIL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Ceil'>>, 'CEILING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Ceil'>>, 'CHECK_JSON': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.CheckJson'>>, 'CHECK_XML': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CheckXml'>>, 'CHR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Chr'>>, 'CHAR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Chr'>>, 'CITY_HASH64': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.CityHash64'>>, 'COALESCE': <function build_coalesce>, 'IFNULL': <function build_coalesce>, 'NVL': <function build_coalesce>, 'CODE_POINTS_TO_BYTES': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.CodePointsToBytes'>>, 'CODE_POINTS_TO_STRING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.CodePointsToString'>>, 'COLLATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Collate'>>, 'COLLATION': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Collation'>>, 'COLUMNS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Columns'>>, 'COMBINED_AGG_FUNC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.CombinedAggFunc'>>, 'COMBINED_PARAMETERIZED_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.CombinedParameterizedAgg'>>, 'COMPRESS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Compress'>>, 'CONCAT': <function Parser.<lambda>>, 'CONCAT_WS': <function Parser.<lambda>>, 'CONNECT_BY_ROOT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.ConnectByRoot'>>, 'CONTAINS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Contains'>>, 'CONVERT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Convert'>>, 'CONVERT_TIMEZONE': <function build_convert_timezone>, 'CONVERT_TO_CHARSET': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.ConvertToCharset'>>, 'CORR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Corr'>>, 'COS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Cos'>>, 'COSH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Cosh'>>, 'COSINE_DISTANCE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.CosineDistance'>>, 'COT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Cot'>>, 'COTH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Coth'>>, 'COUNT': <function Parser.<lambda>>, 'COUNT_IF': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.CountIf'>>, 'COUNTIF': <function _build_count_if>, 'COVAR_POP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.CovarPop'>>, 'COVAR_SAMP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.CovarSamp'>>, 'CSC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Csc'>>, 'CSCH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Csch'>>, 'CUME_DIST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.CumeDist'>>, 'CURRENT_ACCOUNT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentAccount'>>, 'CURRENT_ACCOUNT_NAME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentAccountName'>>, 'CURRENT_AVAILABLE_ROLES': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentAvailableRoles'>>, 'CURRENT_CATALOG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentCatalog'>>, 'CURRENT_CLIENT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentClient'>>, 'CURRENT_DATABASE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentDatabase'>>, 'CURRENT_DATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.CurrentDate'>>, 'CURRENT_DATETIME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.CurrentDatetime'>>, 'CURRENT_IP_ADDRESS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentIpAddress'>>, 'CURRENT_ORGANIZATION_NAME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentOrganizationName'>>, 'CURRENT_ORGANIZATION_USER': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentOrganizationUser'>>, 'CURRENT_REGION': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentRegion'>>, 'CURRENT_ROLE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentRole'>>, 'CURRENT_ROLE_TYPE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentRoleType'>>, 'CURRENT_SCHEMA': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentSchema'>>, 'CURRENT_SCHEMAS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentSchemas'>>, 'CURRENT_SECONDARY_ROLES': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentSecondaryRoles'>>, 'CURRENT_SESSION': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentSession'>>, 'CURRENT_STATEMENT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentStatement'>>, 'CURRENT_TIME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.CurrentTime'>>, 'CURRENT_TIMESTAMP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.CurrentTimestamp'>>, 'CURRENT_TIMESTAMP_L_T_Z': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.CurrentTimestampLTZ'>>, 'CURRENT_TIMEZONE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.CurrentTimezone'>>, 'CURRENT_TRANSACTION': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentTransaction'>>, 'CURRENT_USER': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentUser'>>, 'CURRENT_USER_ID': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentUserId'>>, 'CURRENT_VERSION': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentVersion'>>, 'CURRENT_WAREHOUSE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentWarehouse'>>, 'DATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Date'>>, 'DATE_ADD': <function build_date_delta.<locals>._builder>, 'DATE_BIN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DateBin'>>, 'DATEDIFF': <function build_date_delta.<locals>._builder>, 'DATE_DIFF': <function build_date_delta.<locals>._builder>, 'DATE_FROM_PARTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DateFromParts'>>, 'DATEFROMPARTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DateFromParts'>>, 'DATE_FROM_UNIX_DATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DateFromUnixDate'>>, 'DATE_STR_TO_DATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DateStrToDate'>>, 'DATE_SUB': <function build_date_delta.<locals>._builder>, 'DATE_TO_DATE_STR': <function Parser.<lambda>>, 'DATE_TO_DI': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DateToDi'>>, 'DATE_TRUNC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DateTrunc'>>, 'DATETIME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Datetime'>>, 'DATETIME_ADD': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DatetimeAdd'>>, 'DATETIME_DIFF': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DatetimeDiff'>>, 'DATETIME_SUB': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DatetimeSub'>>, 'DATETIME_TRUNC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DatetimeTrunc'>>, 'DAY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Day'>>, 'DAY_OF_MONTH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DayOfMonth'>>, 'DAYOFMONTH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DayOfMonth'>>, 'DAY_OF_WEEK': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DayOfWeek'>>, 'DAYOFWEEK': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DayOfWeek'>>, 'DAYOFWEEK_ISO': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DayOfWeekIso'>>, 'ISODOW': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DayOfWeekIso'>>, 'DAY_OF_YEAR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DayOfYear'>>, 'DAYOFYEAR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DayOfYear'>>, 'DAYNAME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Dayname'>>, 'DECODE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Decode'>>, 'DECODE_CASE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.DecodeCase'>>, 'DECOMPRESS_BINARY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.DecompressBinary'>>, 'DECOMPRESS_STRING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.DecompressString'>>, 'DECRYPT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Decrypt'>>, 'DECRYPT_RAW': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.DecryptRaw'>>, 'DEGREES': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Degrees'>>, 'DENSE_RANK': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.DenseRank'>>, 'DI_TO_DATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DiToDate'>>, 'DOT_PRODUCT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.DotProduct'>>, 'ELT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Elt'>>, 'ENCODE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Encode'>>, 'ENCRYPT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Encrypt'>>, 'ENCRYPT_RAW': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.EncryptRaw'>>, 'ENDS_WITH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.EndsWith'>>, 'ENDSWITH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.EndsWith'>>, 'EQUAL_NULL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.EqualNull'>>, 'EUCLIDEAN_DISTANCE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.EuclideanDistance'>>, 'EXISTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Exists'>>, 'EXP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Exp'>>, 'EXPLODE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.Explode'>>, 'EXPLODING_GENERATE_SERIES': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ExplodingGenerateSeries'>>, 'EXTRACT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Extract'>>, 'FACTORIAL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Factorial'>>, 'FARM_FINGERPRINT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.FarmFingerprint'>>, 'FARMFINGERPRINT64': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.FarmFingerprint'>>, 'FEATURES_AT_TIME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.FeaturesAtTime'>>, 'FIRST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.First'>>, 'FIRST_VALUE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.FirstValue'>>, 'FLATTEN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.Flatten'>>, 'FLOAT64': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Float64'>>, 'FLOOR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Floor'>>, 'FORMAT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Format'>>, 'FROM_BASE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.FromBase'>>, 'FROM_BASE32': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.FromBase32'>>, 'FROM_BASE64': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.FromBase64'>>, 'FROM_ISO8601_TIMESTAMP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.FromISO8601Timestamp'>>, 'GAP_FILL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.GapFill'>>, 'GENERATE_BOOL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.GenerateBool'>>, 'GENERATE_DATE_ARRAY': <function Parser.<lambda>>, 'GENERATE_DOUBLE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.GenerateDouble'>>, 'GENERATE_EMBEDDING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.GenerateEmbedding'>>, 'GENERATE_INT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.GenerateInt'>>, 'GENERATE_SERIES': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.GenerateSeries'>>, 'GENERATE_TABLE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.GenerateTable'>>, 'GENERATE_TEXT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.GenerateText'>>, 'GENERATE_TIMESTAMP_ARRAY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.GenerateTimestampArray'>>, 'GENERATOR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.Generator'>>, 'GET_EXTRACT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.GetExtract'>>, 'GET_IGNORE_CASE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.GetIgnoreCase'>>, 'GETBIT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Getbit'>>, 'GET_BIT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Getbit'>>, 'GREATEST': <function Parser.<lambda>>, 'GROUP_CONCAT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.GroupConcat'>>, 'GROUPING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Grouping'>>, 'GROUPING_ID': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.GroupingId'>>, 'HASH_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.HashAgg'>>, 'HEX': <function build_hex>, 'HEX_DECODE_STRING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.HexDecodeString'>>, 'HLL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.Hll'>>, 'HOST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Host'>>, 'HOUR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Hour'>>, 'IF': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.If'>>, 'IIF': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.If'>>, 'INITCAP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Initcap'>>, 'INLINE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.Inline'>>, 'INT64': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Int64'>>, 'IS_ARRAY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.IsArray'>>, 'IS_ASCII': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.IsAscii'>>, 'IS_INF': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.IsInf'>>, 'ISINF': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.IsInf'>>, 'IS_NAN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.IsNan'>>, 'ISNAN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.IsNan'>>, 'IS_NULL_VALUE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.IsNullValue'>>, 'J_S_O_N_ARRAY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONArray'>>, 'J_S_O_N_ARRAY_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONArrayAgg'>>, 'JSON_ARRAY_APPEND': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONArrayAppend'>>, 'JSON_ARRAY_CONTAINS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONArrayContains'>>, 'JSON_ARRAY_INSERT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONArrayInsert'>>, 'JSONB_CONTAINS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONBContains'>>, 'J_S_O_N_B_CONTAINS_ALL_TOP_KEYS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONBContainsAllTopKeys'>>, 'J_S_O_N_B_CONTAINS_ANY_TOP_KEYS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONBContainsAnyTopKeys'>>, 'J_S_O_N_B_DELETE_AT_PATH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONBDeleteAtPath'>>, 'JSONB_EXISTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONBExists'>>, 'JSONB_EXTRACT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONBExtract'>>, 'JSONB_EXTRACT_SCALAR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONBExtractScalar'>>, 'J_S_O_N_B_OBJECT_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONBObjectAgg'>>, 'J_S_O_N_BOOL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONBool'>>, 'J_S_O_N_CAST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.JSONCast'>>, 'J_S_O_N_EXISTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONExists'>>, 'JSON_EXTRACT': <function build_extract_json_with_path.<locals>._builder>, 'JSON_EXTRACT_ARRAY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONExtractArray'>>, 'JSON_EXTRACT_SCALAR': <function build_extract_json_with_path.<locals>._builder>, 'JSON_FORMAT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONFormat'>>, 'JSON_KEYS': <function Parser.<lambda>>, 'J_S_O_N_KEYS_AT_DEPTH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONKeysAtDepth'>>, 'J_S_O_N_OBJECT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONObject'>>, 'J_S_O_N_OBJECT_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONObjectAgg'>>, 'JSON_REMOVE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONRemove'>>, 'JSON_SET': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONSet'>>, 'JSON_STRIP_NULLS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONStripNulls'>>, 'J_S_O_N_TABLE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONTable'>>, 'JSON_TYPE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONType'>>, 'J_S_O_N_VALUE_ARRAY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.query.JSONValueArray'>>, 'JAROWINKLER_SIMILARITY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.JarowinklerSimilarity'>>, 'JUSTIFY_DAYS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.JustifyDays'>>, 'JUSTIFY_HOURS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.JustifyHours'>>, 'JUSTIFY_INTERVAL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.JustifyInterval'>>, 'KURTOSIS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Kurtosis'>>, 'LAG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Lag'>>, 'LAST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Last'>>, 'LAST_DAY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.LastDay'>>, 'LAST_DAY_OF_MONTH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.LastDay'>>, 'LAST_VALUE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.LastValue'>>, 'LAX_BOOL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.LaxBool'>>, 'LAX_FLOAT64': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.LaxFloat64'>>, 'LAX_INT64': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.LaxInt64'>>, 'LAX_STRING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.LaxString'>>, 'LEAD': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Lead'>>, 'LEAST': <function Parser.<lambda>>, 'LEFT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Left'>>, 'LENGTH': <function ClickHouseParser.<lambda>>, 'LEN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Length'>>, 'CHAR_LENGTH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Length'>>, 'CHARACTER_LENGTH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Length'>>, 'LEVENSHTEIN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Levenshtein'>>, 'LIST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.List'>>, 'LN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Ln'>>, 'LOCALTIME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Localtime'>>, 'LOCALTIMESTAMP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Localtimestamp'>>, 'LOG': <function build_logarithm>, 'LOGICAL_AND': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.LogicalAnd'>>, 'BOOL_AND': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.LogicalAnd'>>, 'BOOLAND_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.LogicalAnd'>>, 'LOGICAL_OR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.LogicalOr'>>, 'BOOL_OR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.LogicalOr'>>, 'BOOLOR_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.LogicalOr'>>, 'LOWER': <function build_lower>, 'LCASE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Lower'>>, 'LOWER_HEX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.LowerHex'>>, 'MD5': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.MD5Digest'>>, 'MD5_DIGEST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.MD5Digest'>>, 'M_D5_NUMBER_LOWER64': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.MD5NumberLower64'>>, 'M_D5_NUMBER_UPPER64': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.MD5NumberUpper64'>>, 'M_L_FORECAST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.MLForecast'>>, 'M_L_TRANSLATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.MLTranslate'>>, 'MAKE_INTERVAL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.MakeInterval'>>, 'MANHATTAN_DISTANCE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.ManhattanDistance'>>, 'MAP': <function build_var_map>, 'MAP_CAT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.MapCat'>>, 'MAP_CONTAINS_KEY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.MapContainsKey'>>, 'MAP_DELETE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.MapDelete'>>, 'MAP_FROM_ENTRIES': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.MapFromEntries'>>, 'MAP_INSERT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.MapInsert'>>, 'MAP_KEYS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.MapKeys'>>, 'MAP_PICK': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.MapPick'>>, 'MAP_SIZE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.MapSize'>>, 'MATCH_AGAINST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.MatchAgainst'>>, 'MAX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Max'>>, 'MEDIAN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Median'>>, 'MIN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Min'>>, 'MINHASH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Minhash'>>, 'MINHASH_COMBINE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.MinhashCombine'>>, 'MINUTE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Minute'>>, 'MODE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Mode'>>, 'MONTH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Month'>>, 'MONTHNAME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Monthname'>>, 'MONTHS_BETWEEN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.MonthsBetween'>>, 'NET_FUNC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.NetFunc'>>, 'NEXT_DAY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.NextDay'>>, 'NEXT_VALUE_FOR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.ddl.NextValueFor'>>, 'NORMAL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Normal'>>, 'NORMALIZE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Normalize'>>, 'NTH_VALUE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.NthValue'>>, 'NTILE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Ntile'>>, 'NULLIF': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Nullif'>>, 'NUMBER_TO_STR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.NumberToStr'>>, 'NVL2': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Nvl2'>>, 'OBJECT_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.ObjectAgg'>>, 'OBJECT_ID': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.ObjectId'>>, 'OBJECT_INSERT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.ObjectInsert'>>, 'OBJECT_TRANSFORM': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.ObjectTransform'>>, 'OPEN_J_S_O_N': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.OpenJSON'>>, 'OR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.Or'>>, 'OVERLAY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Overlay'>>, 'PAD': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Pad'>>, 'PARAMETERIZED_AGG': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.ParameterizedAgg'>>, 'PARSE_BIGNUMERIC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.ParseBignumeric'>>, 'PARSE_DATETIME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.ParseDatetime'>>, 'PARSE_IP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.ParseIp'>>, 'PARSE_JSON': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.ParseJSON'>>, 'JSON_PARSE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.ParseJSON'>>, 'PARSE_NUMERIC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.ParseNumeric'>>, 'PARSE_TIME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.ParseTime'>>, 'PARSE_URL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.ParseUrl'>>, 'PERCENT_RANK': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.PercentRank'>>, 'PERCENTILE_CONT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.PercentileCont'>>, 'PERCENTILE_DISC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.PercentileDisc'>>, 'PI': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Pi'>>, 'POSEXPLODE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.Posexplode'>>, 'POSEXPLODE_OUTER': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.PosexplodeOuter'>>, 'POWER': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.Pow'>>, 'POW': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.Pow'>>, 'PREDICT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Predict'>>, 'PREVIOUS_DAY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.PreviousDay'>>, 'QUANTILE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Quantile'>>, 'QUARTER': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Quarter'>>, 'RADIANS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Radians'>>, 'RAND': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Rand'>>, 'RANDOM': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Rand'>>, 'RANDN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Randn'>>, 'RANDSTR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Randstr'>>, 'RANGE_BUCKET': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.RangeBucket'>>, 'RANGE_N': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.RangeN'>>, 'RANK': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Rank'>>, 'READ_CSV': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.ReadCSV'>>, 'READ_PARQUET': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.ReadParquet'>>, 'REDUCE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.Reduce'>>, 'REG_DOMAIN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.RegDomain'>>, 'REGEXP_COUNT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.RegexpCount'>>, 'REGEXP_EXTRACT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.RegexpExtract'>>, 'REGEXP_EXTRACT_ALL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.RegexpExtractAll'>>, 'REGEXP_FULL_MATCH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.RegexpFullMatch'>>, 'REGEXP_I_LIKE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.RegexpILike'>>, 'REGEXP_INSTR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.RegexpInstr'>>, 'REGEXP_LIKE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.RegexpLike'>>, 'REGEXP_REPLACE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.RegexpReplace'>>, 'REGEXP_SPLIT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.RegexpSplit'>>, 'REGR_AVGX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.RegrAvgx'>>, 'REGR_AVGY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.RegrAvgy'>>, 'REGR_COUNT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.RegrCount'>>, 'REGR_INTERCEPT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.RegrIntercept'>>, 'REGR_R2': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.RegrR2'>>, 'REGR_SLOPE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.RegrSlope'>>, 'REGR_SXX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.RegrSxx'>>, 'REGR_SXY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.RegrSxy'>>, 'REGR_SYY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.RegrSyy'>>, 'REGR_VALX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.RegrValx'>>, 'REGR_VALY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.RegrValy'>>, 'REPEAT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Repeat'>>, 'REPLACE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Replace'>>, 'REVERSE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Reverse'>>, 'RIGHT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Right'>>, 'ROUND': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Round'>>, 'ROW_NUMBER': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.RowNumber'>>, 'RTRIMMED_LENGTH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.RtrimmedLength'>>, 'SHA': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.SHA'>>, 'SHA1': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.SHA'>>, 'S_H_A1_DIGEST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.SHA1Digest'>>, 'SHA2': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.SHA2'>>, 'S_H_A2_DIGEST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.SHA2Digest'>>, 'SAFE_ADD': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.SafeAdd'>>, 'SAFE_CONVERT_BYTES_TO_STRING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.SafeConvertBytesToString'>>, 'SAFE_DIVIDE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.SafeDivide'>>, 'SAFE_FUNC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.SafeFunc'>>, 'SAFE_MULTIPLY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.SafeMultiply'>>, 'SAFE_NEGATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.SafeNegate'>>, 'SAFE_SUBTRACT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.SafeSubtract'>>, 'SEARCH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Search'>>, 'SEARCH_IP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.SearchIp'>>, 'SEC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Sec'>>, 'SECH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Sech'>>, 'SECOND': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Second'>>, 'SEQ1': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Seq1'>>, 'SEQ2': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Seq2'>>, 'SEQ4': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Seq4'>>, 'SEQ8': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Seq8'>>, 'SESSION_USER': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.SessionUser'>>, 'SIGN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Sign'>>, 'SIGNUM': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Sign'>>, 'SIN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Sin'>>, 'SINH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Sinh'>>, 'SKEWNESS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Skewness'>>, 'SORT_ARRAY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.SortArray'>>, 'SOUNDEX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Soundex'>>, 'SOUNDEX_P123': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.SoundexP123'>>, 'SPACE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Space'>>, 'SPLIT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Split'>>, 'SPLIT_PART': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.SplitPart'>>, 'SQRT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Sqrt'>>, 'ST_DISTANCE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.StDistance'>>, 'ST_POINT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.StPoint'>>, 'ST_MAKEPOINT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.StPoint'>>, 'STANDARD_HASH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.StandardHash'>>, 'STAR_MAP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.StarMap'>>, 'STARTS_WITH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.StartsWith'>>, 'STARTSWITH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.StartsWith'>>, 'STDDEV': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Stddev'>>, 'STDEV': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Stddev'>>, 'STDDEV_POP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.StddevPop'>>, 'STDDEV_SAMP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.StddevSamp'>>, 'STR_POSITION': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.StrPosition'>>, 'STR_TO_DATE': <function _build_str_to_date>, 'STR_TO_MAP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.StrToMap'>>, 'STR_TO_TIME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.StrToTime'>>, 'STR_TO_UNIX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.StrToUnix'>>, 'STRING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.String'>>, 'STRING_TO_ARRAY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.StringToArray'>>, 'SPLIT_BY_STRING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.StringToArray'>>, 'STRIP_NULL_VALUE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.StripNullValue'>>, 'STRTOK': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Strtok'>>, 'STRTOK_TO_ARRAY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.StrtokToArray'>>, 'STRUCT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.Struct'>>, 'STRUCT_EXTRACT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.StructExtract'>>, 'STUFF': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Stuff'>>, 'INSERT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Stuff'>>, 'SUBSTRING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Substring'>>, 'SUBSTR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Substring'>>, 'SUBSTRING_INDEX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.SubstringIndex'>>, 'SUM': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Sum'>>, 'SYSTIMESTAMP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Systimestamp'>>, 'TAN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Tan'>>, 'TANH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Tanh'>>, 'TIME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Time'>>, 'TIME_ADD': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimeAdd'>>, 'TIME_DIFF': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimeDiff'>>, 'TIME_FROM_PARTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimeFromParts'>>, 'TIMEFROMPARTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimeFromParts'>>, 'TIME_SLICE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimeSlice'>>, 'TIME_STR_TO_DATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimeStrToDate'>>, 'TIME_STR_TO_TIME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimeStrToTime'>>, 'TIME_STR_TO_UNIX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimeStrToUnix'>>, 'TIME_SUB': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimeSub'>>, 'TIME_TO_STR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimeToStr'>>, 'TIME_TO_TIME_STR': <function Parser.<lambda>>, 'TIME_TO_UNIX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimeToUnix'>>, 'TIME_TRUNC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimeTrunc'>>, 'TIMESTAMP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Timestamp'>>, 'TIMESTAMP_ADD': <function build_date_delta.<locals>._builder>, 'TIMESTAMPDIFF': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimestampDiff'>>, 'TIMESTAMP_DIFF': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimestampDiff'>>, 'TIMESTAMP_FROM_PARTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimestampFromParts'>>, 'TIMESTAMPFROMPARTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimestampFromParts'>>, 'TIMESTAMP_LTZ_FROM_PARTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimestampLtzFromParts'>>, 'TIMESTAMPLTZFROMPARTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimestampLtzFromParts'>>, 'TIMESTAMP_SUB': <function build_date_delta.<locals>._builder>, 'TIMESTAMP_TRUNC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimestampTrunc'>>, 'TIMESTAMP_TZ_FROM_PARTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimestampTzFromParts'>>, 'TIMESTAMPTZFROMPARTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TimestampTzFromParts'>>, 'TO_ARRAY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ToArray'>>, 'TO_BASE32': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.ToBase32'>>, 'TO_BASE64': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.ToBase64'>>, 'TO_BINARY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.ToBinary'>>, 'TO_BOOLEAN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.ToBoolean'>>, 'TO_CHAR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.ToChar'>>, 'TO_CODE_POINTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.ToCodePoints'>>, 'TO_DAYS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.ToDays'>>, 'TO_DECFLOAT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.ToDecfloat'>>, 'TO_DOUBLE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.ToDouble'>>, 'TO_FILE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.ToFile'>>, 'TO_MAP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ToMap'>>, 'TO_NUMBER': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.ToNumber'>>, 'TO_VARIANT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.ToVariant'>>, 'TRANSLATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Translate'>>, 'TRIM': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Trim'>>, 'TRUNC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Trunc'>>, 'TRUNCATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Trunc'>>, 'TRY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Try'>>, 'TRY_BASE64_DECODE_BINARY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.TryBase64DecodeBinary'>>, 'TRY_BASE64_DECODE_STRING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.TryBase64DecodeString'>>, 'TRY_CAST': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.TryCast'>>, 'TRY_HEX_DECODE_BINARY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.TryHexDecodeBinary'>>, 'TRY_HEX_DECODE_STRING': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.TryHexDecodeString'>>, 'TRY_TO_DECFLOAT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.TryToDecfloat'>>, 'TS_OR_DI_TO_DI': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TsOrDiToDi'>>, 'TS_OR_DS_ADD': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TsOrDsAdd'>>, 'TS_OR_DS_DIFF': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TsOrDsDiff'>>, 'TS_OR_DS_TO_DATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TsOrDsToDate'>>, 'TS_OR_DS_TO_DATE_STR': <function Parser.<lambda>>, 'TS_OR_DS_TO_DATETIME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TsOrDsToDatetime'>>, 'TS_OR_DS_TO_TIME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TsOrDsToTime'>>, 'TS_OR_DS_TO_TIMESTAMP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.TsOrDsToTimestamp'>>, 'TYPEOF': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.Typeof'>>, 'UNHEX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Unhex'>>, 'UNICODE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Unicode'>>, 'UNIFORM': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Uniform'>>, 'UNIX_DATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.UnixDate'>>, 'UNIX_MICROS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.UnixMicros'>>, 'UNIX_MILLIS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.UnixMillis'>>, 'UNIX_SECONDS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.UnixSeconds'>>, 'UNIX_TO_STR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.UnixToStr'>>, 'UNIX_TO_TIME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.UnixToTime'>>, 'UNIX_TO_TIME_STR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.UnixToTimeStr'>>, 'UNNEST': <function Parser.<lambda>>, 'UPPER': <function build_upper>, 'UCASE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Upper'>>, 'UTC_DATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.UtcDate'>>, 'UTC_TIME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.UtcTime'>>, 'UTC_TIMESTAMP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.UtcTimestamp'>>, 'UUID': <function Parser.<lambda>>, 'GEN_RANDOM_UUID': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Uuid'>>, 'GENERATE_UUID': <function Parser.<lambda>>, 'UUID_STRING': <function Parser.<lambda>>, 'VAR_MAP': <function build_var_map>, 'VARIANCE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Variance'>>, 'VARIANCE_SAMP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Variance'>>, 'VAR_SAMP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.Variance'>>, 'VARIANCE_POP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.VariancePop'>>, 'VAR_POP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.VariancePop'>>, 'VECTOR_SEARCH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.VectorSearch'>>, 'WEEK': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Week'>>, 'WEEK_OF_YEAR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.WeekOfYear'>>, 'WEEKOFYEAR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.WeekOfYear'>>, 'WEEK_START': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.WeekStart'>>, 'WIDTH_BUCKET': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.WidthBucket'>>, 'XMLELEMENT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.XMLElement'>>, 'XMLGET': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.XMLGet'>>, 'X_M_L_TABLE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.XMLTable'>>, 'XOR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.Xor'>>, 'YEAR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.Year'>>, 'YEAR_OF_WEEK': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.YearOfWeek'>>, 'YEAROFWEEK': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.YearOfWeek'>>, 'YEAR_OF_WEEK_ISO': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.YearOfWeekIso'>>, 'YEAROFWEEKISO': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.YearOfWeekIso'>>, 'ZIPF': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Zipf'>>, 'EXPLODE_OUTER': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array._ExplodeOuter'>>, 'ARRAYAGG': <function Parser.<lambda>>, 'GLOB': <function Parser.<lambda>>, 'JSON_EXTRACT_PATH_TEXT': <function build_extract_json_with_path.<locals>._builder>, 'LIKE': <function build_like.<locals>._builder>, 'LOG2': <function Parser.<lambda>>, 'LOG10': <function Parser.<lambda>>, 'LPAD': <function Parser.<lambda>>, 'LEFTPAD': <function Parser.<lambda>>, 'LTRIM': <function Parser.<lambda>>, 'MOD': <function build_mod>, 'RIGHTPAD': <function Parser.<lambda>>, 'RPAD': <function Parser.<lambda>>, 'RTRIM': <function Parser.<lambda>>, 'SCOPE_RESOLUTION': <function Parser.<lambda>>, 'STRPOS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.StrPosition'>>, 'CHARINDEX': <function Parser.<lambda>>, 'INSTR': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.StrPosition'>>, 'LOCATE': <function Parser.<lambda>>, 'TO_HEX': <function build_hex>, 'TOSTARTOFMINUTE': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFQUARTER': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFMONTH': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFYEAR': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFMICROSECOND': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFHOUR': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFSECOND': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFMILLISECOND': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFDAY': <function _build_timestamp_trunc.<locals>.<lambda>>, 'ANY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.aggregate.AnyValue'>>, 'ARRAYCOMPACT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayCompact'>>, 'ARRAYCONCAT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayConcat'>>, 'ARRAYDISTINCT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayDistinct'>>, 'ARRAYEXCEPT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayExcept'>>, 'ARRAYSUM': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArraySum'>>, 'ARRAYMAX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayMax'>>, 'ARRAYMIN': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayMin'>>, 'ARRAYREVERSE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayReverse'>>, 'ARRAYSLICE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArraySlice'>>, 'CURRENTDATABASE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentDatabase'>>, 'CURRENTSCHEMAS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentSchemas'>>, 'CITYHASH64': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.CityHash64'>>, 'COSINEDISTANCE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.CosineDistance'>>, 'VERSION': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.CurrentVersion'>>, 'DATEADD': <function build_date_delta.<locals>._builder>, 'DATE_FORMAT': <function _build_datetime_format.<locals>._builder>, 'DATESUB': <function build_date_delta.<locals>._builder>, 'FORMATDATETIME': <function _build_datetime_format.<locals>._builder>, 'HAS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayContains'>>, 'ILIKE': <function build_like.<locals>._builder>, 'JSONEXTRACTSTRING': <function build_json_extract_path.<locals>._builder>, 'L2Distance': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.EuclideanDistance'>>, 'MATCH': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.RegexpLike'>>, 'NOTLIKE': <function build_like.<locals>._builder>, 'PARSEDATETIME': <function _build_datetime_format.<locals>._builder>, 'RANDCANONICAL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.functions.Rand'>>, 'TIMESTAMPSUB': <function build_date_delta.<locals>._builder>, 'TIMESTAMPADD': <function build_date_delta.<locals>._builder>, 'TOMONDAY': <function _build_timestamp_trunc.<locals>.<lambda>>, 'UNIQ': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.ApproxDistinct'>>, 'SHA256': <function ClickHouseParser.<lambda>>, 'SHA512': <function ClickHouseParser.<lambda>>, 'SPLITBYCHAR': <function _build_split_by_char>, 'SPLITBYREGEXP': <function _build_split.<locals>.<lambda>>, 'SPLITBYSTRING': <function _build_split.<locals>.<lambda>>, 'SUBSTRINGINDEX': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.SubstringIndex'>>, 'TOTYPENAME': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.Typeof'>>, 'EDITDISTANCE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Levenshtein'>>, 'JAROWINKLERSIMILARITY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.JarowinklerSimilarity'>>, 'LEVENSHTEINDISTANCE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Levenshtein'>>, 'UTCTIMESTAMP': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.UtcTimestamp'>>}
AGG_FUNCTIONS =
{'sumKahan', 'quantilesExactHigh', 'any', 'uniqTheta', 'groupBitXor', 'theilsU', 'boundingRatio', 'histogram', 'kolmogorovSmirnovTest', 'groupBitmapXor', 'quantileDeterministic', 'varPop', 'first_value', 'uniqHLL12', 'minMap', 'simpleLinearRegression', 'quantilesInterpolatedWeighted', 'max', 'quantileTDigestWeighted', 'groupUniqArray', 'meanZTest', 'stochasticLogisticRegression', 'cramersVBiasCorrected', 'covarPop', 'count', 'deltaSum', 'quantileInterpolatedWeighted', 'quantileGK', 'anyHeavy', 'uniqUpTo', 'studentTTest', 'varSamp', 'groupBitmapOr', 'argMin', 'contingency', 'quantilesExactLow', 'covarSamp', 'mannWhitneyUTest', 'quantilesExactWeighted', 'quantileTimingWeighted', 'min', 'approx_top_sum', 'uniq', 'quantilesExact', 'retention', 'uniqExact', 'stochasticLinearRegression', 'quantilesExactExclusive', 'sparkBar', 'skewPop', 'groupArrayMovingAvg', 'median', 'groupArrayLast', 'kurtPop', 'exponentialMovingAverage', 'sequenceNextNode', 'quantile', 'groupArrayInsertAt', 'sum', 'quantileBFloat16', 'rankCorr', 'quantileTDigest', 'maxIntersectionsPosition', 'sumMap', 'kurtSamp', 'exponentialTimeDecayedAvg', 'avgWeighted', 'topKWeighted', 'largestTriangleThreeBuckets', 'groupArraySample', 'quantileExactHigh', 'windowFunnel', 'quantileExactWeighted', 'quantileExactLow', 'maxMap', 'welchTTest', 'groupBitOr', 'quantiles', 'avg', 'cramersV', 'anyLast', 'quantilesGK', 'sequenceMatch', 'quantilesTimingWeighted', 'quantilesDeterministic', 'sumCount', 'maxIntersections', 'stddevSamp', 'groupBitmapAnd', 'groupArray', 'uniqCombined', 'skewSamp', 'groupBitmap', 'quantilesBFloat16', 'quantilesTDigest', 'sequenceCount', 'uniqCombined64', 'entropy', 'quantilesTDigestWeighted', 'quantileExact', 'categoricalInformationValue', 'topK', 'groupBitAnd', 'stddevPop', 'quantileBFloat16Weighted', 'quantileTiming', 'groupConcat', 'corr', 'sumWithOverflow', 'last_value', 'argMax', 'quantilesTiming', 'groupArrayMovingSum', 'deltaSumTimestamp', 'quantilesBFloat16Weighted', 'intervalLengthSum'}
AGG_FUNCTIONS_SUFFIXES =
['SimpleState', 'MergeState', 'OrDefault', 'Distinct', 'Resample', 'ArrayIf', 'ForEach', 'OrNull', 'ArgMin', 'ArgMax', 'Array', 'State', 'Merge', 'Map', 'If']
FUNC_TOKENS =
{<TokenType.AND: 34>, <TokenType.OR: 35>, <TokenType.SESSION_USER: 60>, <TokenType.XOR: 65>, <TokenType.IDENTIFIER: 78>, <TokenType.TABLE: 83>, <TokenType.VAR: 88>, <TokenType.BIT: 96>, <TokenType.BOOLEAN: 97>, <TokenType.TINYINT: 98>, <TokenType.UTINYINT: 99>, <TokenType.SMALLINT: 100>, <TokenType.USMALLINT: 101>, <TokenType.MEDIUMINT: 102>, <TokenType.UMEDIUMINT: 103>, <TokenType.INT: 104>, <TokenType.UINT: 105>, <TokenType.BIGINT: 106>, <TokenType.UBIGINT: 107>, <TokenType.BIGNUM: 108>, <TokenType.INT128: 109>, <TokenType.UINT128: 110>, <TokenType.INT256: 111>, <TokenType.UINT256: 112>, <TokenType.FLOAT: 113>, <TokenType.DOUBLE: 114>, <TokenType.UDOUBLE: 115>, <TokenType.DECIMAL: 116>, <TokenType.DECIMAL32: 117>, <TokenType.DECIMAL64: 118>, <TokenType.DECIMAL128: 119>, <TokenType.DECIMAL256: 120>, <TokenType.DECFLOAT: 121>, <TokenType.UDECIMAL: 122>, <TokenType.BIGDECIMAL: 123>, <TokenType.CHAR: 124>, <TokenType.NCHAR: 125>, <TokenType.VARCHAR: 126>, <TokenType.NVARCHAR: 127>, <TokenType.BPCHAR: 128>, <TokenType.TEXT: 129>, <TokenType.MEDIUMTEXT: 130>, <TokenType.LONGTEXT: 131>, <TokenType.BLOB: 132>, <TokenType.MEDIUMBLOB: 133>, <TokenType.LONGBLOB: 134>, <TokenType.TINYBLOB: 135>, <TokenType.TINYTEXT: 136>, <TokenType.NAME: 137>, <TokenType.BINARY: 138>, <TokenType.VARBINARY: 139>, <TokenType.JSON: 140>, <TokenType.JSONB: 141>, <TokenType.TIME: 142>, <TokenType.TIMETZ: 143>, <TokenType.TIME_NS: 144>, <TokenType.TIMESTAMP: 145>, <TokenType.TIMESTAMPTZ: 146>, <TokenType.TIMESTAMPLTZ: 147>, <TokenType.TIMESTAMPNTZ: 148>, <TokenType.TIMESTAMP_S: 149>, <TokenType.TIMESTAMP_MS: 150>, <TokenType.TIMESTAMP_NS: 151>, <TokenType.DATETIME: 152>, <TokenType.DATETIME2: 153>, <TokenType.DATETIME64: 154>, <TokenType.SMALLDATETIME: 155>, <TokenType.DATE: 156>, <TokenType.DATE32: 157>, <TokenType.INT4RANGE: 158>, <TokenType.INT4MULTIRANGE: 159>, <TokenType.INT8RANGE: 160>, <TokenType.INT8MULTIRANGE: 161>, <TokenType.NUMRANGE: 162>, <TokenType.NUMMULTIRANGE: 163>, <TokenType.TSRANGE: 164>, <TokenType.TSMULTIRANGE: 165>, <TokenType.TSTZRANGE: 166>, <TokenType.TSTZMULTIRANGE: 167>, <TokenType.DATERANGE: 168>, <TokenType.DATEMULTIRANGE: 169>, <TokenType.UUID: 170>, <TokenType.GEOGRAPHY: 171>, <TokenType.GEOGRAPHYPOINT: 172>, <TokenType.NULLABLE: 173>, <TokenType.GEOMETRY: 174>, <TokenType.POINT: 175>, <TokenType.RING: 176>, <TokenType.LINESTRING: 177>, <TokenType.LOCALTIME: 178>, <TokenType.LOCALTIMESTAMP: 179>, <TokenType.MULTILINESTRING: 181>, <TokenType.POLYGON: 182>, <TokenType.MULTIPOLYGON: 183>, <TokenType.HLLSKETCH: 184>, <TokenType.HSTORE: 185>, <TokenType.SUPER: 186>, <TokenType.SERIAL: 187>, <TokenType.SMALLSERIAL: 188>, <TokenType.BIGSERIAL: 189>, <TokenType.XML: 190>, <TokenType.YEAR: 191>, <TokenType.USERDEFINED: 192>, <TokenType.MONEY: 193>, <TokenType.SMALLMONEY: 194>, <TokenType.ROWVERSION: 195>, <TokenType.IMAGE: 196>, <TokenType.VARIANT: 197>, <TokenType.OBJECT: 198>, <TokenType.INET: 199>, <TokenType.IPADDRESS: 200>, <TokenType.IPPREFIX: 201>, <TokenType.IPV4: 202>, <TokenType.IPV6: 203>, <TokenType.ENUM: 204>, <TokenType.ENUM8: 205>, <TokenType.ENUM16: 206>, <TokenType.FIXEDSTRING: 207>, <TokenType.LOWCARDINALITY: 208>, <TokenType.NESTED: 209>, <TokenType.AGGREGATEFUNCTION: 210>, <TokenType.SIMPLEAGGREGATEFUNCTION: 211>, <TokenType.TDIGEST: 212>, <TokenType.UNKNOWN: 213>, <TokenType.VECTOR: 214>, <TokenType.DYNAMIC: 215>, <TokenType.VOID: 216>, <TokenType.ALL: 219>, <TokenType.ANY: 221>, <TokenType.ARRAY: 223>, <TokenType.COLLATE: 235>, <TokenType.COMMAND: 236>, <TokenType.CURRENT_DATE: 245>, <TokenType.CURRENT_DATETIME: 246>, <TokenType.CURRENT_SCHEMA: 247>, <TokenType.CURRENT_TIME: 248>, <TokenType.CURRENT_TIMESTAMP: 249>, <TokenType.CURRENT_USER: 250>, <TokenType.CURRENT_CATALOG: 253>, <TokenType.EXISTS: 270>, <TokenType.FILE: 273>, <TokenType.FILTER: 275>, <TokenType.FIRST: 277>, <TokenType.FORMAT: 281>, <TokenType.GET: 285>, <TokenType.GLOB: 286>, <TokenType.ILIKE: 294>, <TokenType.INDEX: 296>, <TokenType.INSERT: 299>, <TokenType.INTERVAL: 303>, <TokenType.ISNULL: 308>, <TokenType.LEFT: 316>, <TokenType.LIKE: 317>, <TokenType.LIST: 319>, <TokenType.MAP: 322>, <TokenType.MERGE: 327>, <TokenType.NEXT: 331>, <TokenType.NOTHING: 332>, <TokenType.NULL: 334>, <TokenType.OBJECT_IDENTIFIER: 335>, <TokenType.OFFSET: 336>, <TokenType.PRIMARY_KEY: 361>, <TokenType.PSEUDO_TYPE: 364>, <TokenType.RANGE: 369>, <TokenType.REPLACE: 373>, <TokenType.RIGHT: 377>, <TokenType.RLIKE: 378>, <TokenType.ROW: 382>, <TokenType.SEQUENCE: 388>, <TokenType.SET: 390>, <TokenType.SOME: 394>, <TokenType.STRUCT: 401>, <TokenType.TRUNCATE: 409>, <TokenType.UNION: 413>, <TokenType.UNNEST: 414>, <TokenType.WINDOW: 427>, <TokenType.UTC_DATE: 430>, <TokenType.UTC_TIME: 431>, <TokenType.UTC_TIMESTAMP: 432>}
RESERVED_TOKENS =
{<TokenType.L_PAREN: 1>, <TokenType.R_PAREN: 2>, <TokenType.L_BRACKET: 3>, <TokenType.R_BRACKET: 4>, <TokenType.L_BRACE: 5>, <TokenType.R_BRACE: 6>, <TokenType.COMMA: 7>, <TokenType.DOT: 8>, <TokenType.DASH: 9>, <TokenType.PLUS: 10>, <TokenType.COLON: 11>, <TokenType.MOD: 328>, <TokenType.SEMICOLON: 19>, <TokenType.STAR: 20>, <TokenType.BACKSLASH: 21>, <TokenType.SLASH: 22>, <TokenType.LT: 23>, <TokenType.UNKNOWN: 213>, <TokenType.GT: 25>, <TokenType.NOT: 27>, <TokenType.EQ: 28>, <TokenType.PLACEHOLDER: 355>, <TokenType.AMP: 36>, <TokenType.PIPE: 39>, <TokenType.CARET: 42>, <TokenType.TILDE: 44>, <TokenType.HASH: 48>, <TokenType.PARAMETER: 57>}
ID_VAR_TOKENS =
{<TokenType.SESSION: 58>, <TokenType.SESSION_USER: 60>, <TokenType.IDENTIFIER: 78>, <TokenType.DATABASE: 79>, <TokenType.COLUMN: 80>, <TokenType.SCHEMA: 82>, <TokenType.TABLE: 83>, <TokenType.WAREHOUSE: 84>, <TokenType.STAGE: 85>, <TokenType.STREAM: 86>, <TokenType.STREAMLIT: 87>, <TokenType.VAR: 88>, <TokenType.BIT: 96>, <TokenType.BOOLEAN: 97>, <TokenType.TINYINT: 98>, <TokenType.UTINYINT: 99>, <TokenType.SMALLINT: 100>, <TokenType.USMALLINT: 101>, <TokenType.MEDIUMINT: 102>, <TokenType.UMEDIUMINT: 103>, <TokenType.INT: 104>, <TokenType.UINT: 105>, <TokenType.BIGINT: 106>, <TokenType.UBIGINT: 107>, <TokenType.BIGNUM: 108>, <TokenType.INT128: 109>, <TokenType.UINT128: 110>, <TokenType.INT256: 111>, <TokenType.UINT256: 112>, <TokenType.FLOAT: 113>, <TokenType.DOUBLE: 114>, <TokenType.UDOUBLE: 115>, <TokenType.DECIMAL: 116>, <TokenType.DECIMAL32: 117>, <TokenType.DECIMAL64: 118>, <TokenType.DECIMAL128: 119>, <TokenType.DECIMAL256: 120>, <TokenType.DECFLOAT: 121>, <TokenType.UDECIMAL: 122>, <TokenType.BIGDECIMAL: 123>, <TokenType.CHAR: 124>, <TokenType.NCHAR: 125>, <TokenType.VARCHAR: 126>, <TokenType.NVARCHAR: 127>, <TokenType.BPCHAR: 128>, <TokenType.TEXT: 129>, <TokenType.MEDIUMTEXT: 130>, <TokenType.LONGTEXT: 131>, <TokenType.BLOB: 132>, <TokenType.MEDIUMBLOB: 133>, <TokenType.LONGBLOB: 134>, <TokenType.TINYBLOB: 135>, <TokenType.TINYTEXT: 136>, <TokenType.NAME: 137>, <TokenType.BINARY: 138>, <TokenType.VARBINARY: 139>, <TokenType.JSON: 140>, <TokenType.JSONB: 141>, <TokenType.TIME: 142>, <TokenType.TIMETZ: 143>, <TokenType.TIME_NS: 144>, <TokenType.TIMESTAMP: 145>, <TokenType.TIMESTAMPTZ: 146>, <TokenType.TIMESTAMPLTZ: 147>, <TokenType.TIMESTAMPNTZ: 148>, <TokenType.TIMESTAMP_S: 149>, <TokenType.TIMESTAMP_MS: 150>, <TokenType.TIMESTAMP_NS: 151>, <TokenType.DATETIME: 152>, <TokenType.DATETIME2: 153>, <TokenType.DATETIME64: 154>, <TokenType.SMALLDATETIME: 155>, <TokenType.DATE: 156>, <TokenType.DATE32: 157>, <TokenType.INT4RANGE: 158>, <TokenType.INT4MULTIRANGE: 159>, <TokenType.INT8RANGE: 160>, <TokenType.INT8MULTIRANGE: 161>, <TokenType.NUMRANGE: 162>, <TokenType.NUMMULTIRANGE: 163>, <TokenType.TSRANGE: 164>, <TokenType.TSMULTIRANGE: 165>, <TokenType.TSTZRANGE: 166>, <TokenType.TSTZMULTIRANGE: 167>, <TokenType.DATERANGE: 168>, <TokenType.DATEMULTIRANGE: 169>, <TokenType.UUID: 170>, <TokenType.GEOGRAPHY: 171>, <TokenType.GEOGRAPHYPOINT: 172>, <TokenType.NULLABLE: 173>, <TokenType.GEOMETRY: 174>, <TokenType.POINT: 175>, <TokenType.RING: 176>, <TokenType.LINESTRING: 177>, <TokenType.LOCALTIME: 178>, <TokenType.LOCALTIMESTAMP: 179>, <TokenType.MULTILINESTRING: 181>, <TokenType.POLYGON: 182>, <TokenType.MULTIPOLYGON: 183>, <TokenType.HLLSKETCH: 184>, <TokenType.HSTORE: 185>, <TokenType.SUPER: 186>, <TokenType.SERIAL: 187>, <TokenType.SMALLSERIAL: 188>, <TokenType.BIGSERIAL: 189>, <TokenType.XML: 190>, <TokenType.YEAR: 191>, <TokenType.USERDEFINED: 192>, <TokenType.MONEY: 193>, <TokenType.SMALLMONEY: 194>, <TokenType.ROWVERSION: 195>, <TokenType.IMAGE: 196>, <TokenType.VARIANT: 197>, <TokenType.OBJECT: 198>, <TokenType.INET: 199>, <TokenType.IPADDRESS: 200>, <TokenType.IPPREFIX: 201>, <TokenType.IPV4: 202>, <TokenType.IPV6: 203>, <TokenType.ENUM: 204>, <TokenType.ENUM8: 205>, <TokenType.ENUM16: 206>, <TokenType.FIXEDSTRING: 207>, <TokenType.LOWCARDINALITY: 208>, <TokenType.NESTED: 209>, <TokenType.AGGREGATEFUNCTION: 210>, <TokenType.SIMPLEAGGREGATEFUNCTION: 211>, <TokenType.TDIGEST: 212>, <TokenType.UNKNOWN: 213>, <TokenType.VECTOR: 214>, <TokenType.DYNAMIC: 215>, <TokenType.VOID: 216>, <TokenType.ALL: 219>, <TokenType.ANTI: 220>, <TokenType.ANY: 221>, <TokenType.APPLY: 222>, <TokenType.ARRAY: 223>, <TokenType.ASC: 224>, <TokenType.ASOF: 225>, <TokenType.ATTACH: 226>, <TokenType.AUTO_INCREMENT: 227>, <TokenType.BEGIN: 228>, <TokenType.CACHE: 231>, <TokenType.CASE: 232>, <TokenType.COLLATE: 235>, <TokenType.COMMAND: 236>, <TokenType.COMMENT: 237>, <TokenType.COMMIT: 238>, <TokenType.CONSTRAINT: 240>, <TokenType.COPY: 241>, <TokenType.CUBE: 244>, <TokenType.CURRENT_DATE: 245>, <TokenType.CURRENT_DATETIME: 246>, <TokenType.CURRENT_SCHEMA: 247>, <TokenType.CURRENT_TIME: 248>, <TokenType.CURRENT_TIMESTAMP: 249>, <TokenType.CURRENT_USER: 250>, <TokenType.CURRENT_ROLE: 252>, <TokenType.CURRENT_CATALOG: 253>, <TokenType.DEFAULT: 255>, <TokenType.DELETE: 256>, <TokenType.DESC: 257>, <TokenType.DESCRIBE: 258>, <TokenType.DETACH: 259>, <TokenType.DICTIONARY: 260>, <TokenType.DIV: 263>, <TokenType.END: 266>, <TokenType.ESCAPE: 267>, <TokenType.EXECUTE: 269>, <TokenType.EXISTS: 270>, <TokenType.FALSE: 271>, <TokenType.FILE: 273>, <TokenType.FILE_FORMAT: 274>, <TokenType.FILTER: 275>, <TokenType.FINAL: 276>, <TokenType.FIRST: 277>, <TokenType.FOREIGN_KEY: 280>, <TokenType.FORMAT: 281>, <TokenType.FULL: 283>, <TokenType.FUNCTION: 284>, <TokenType.GET: 285>, <TokenType.INDEX: 296>, <TokenType.INTERVAL: 303>, <TokenType.IS: 307>, <TokenType.ISNULL: 308>, <TokenType.KEEP: 311>, <TokenType.KILL: 313>, <TokenType.LEFT: 316>, <TokenType.LIKE: 317>, <TokenType.LIMIT: 318>, <TokenType.LIST: 319>, <TokenType.LOAD: 320>, <TokenType.LOCK: 321>, <TokenType.MAP: 322>, <TokenType.MATCH: 323>, <TokenType.MERGE: 327>, <TokenType.MODEL: 329>, <TokenType.NATURAL: 330>, <TokenType.NEXT: 331>, <TokenType.NOTHING: 332>, <TokenType.NULL: 334>, <TokenType.OBJECT_IDENTIFIER: 335>, <TokenType.OFFSET: 336>, <TokenType.OPERATOR: 339>, <TokenType.ORDINALITY: 343>, <TokenType.INOUT: 345>, <TokenType.OVER: 347>, <TokenType.OVERLAPS: 348>, <TokenType.OVERWRITE: 349>, <TokenType.PARTITION: 351>, <TokenType.PERCENT: 353>, <TokenType.PIVOT: 354>, <TokenType.PRAGMA: 359>, <TokenType.PROCEDURE: 362>, <TokenType.PSEUDO_TYPE: 364>, <TokenType.PUT: 365>, <TokenType.RANGE: 369>, <TokenType.RECURSIVE: 370>, <TokenType.REFRESH: 371>, <TokenType.RENAME: 372>, <TokenType.REPLACE: 373>, <TokenType.REFERENCES: 376>, <TokenType.RIGHT: 377>, <TokenType.ROLLUP: 381>, <TokenType.ROW: 382>, <TokenType.ROWS: 383>, <TokenType.SEMI: 386>, <TokenType.SEQUENCE: 388>, <TokenType.SET: 390>, <TokenType.SETTINGS: 391>, <TokenType.SHOW: 392>, <TokenType.SOME: 394>, <TokenType.STORAGE_INTEGRATION: 399>, <TokenType.STRAIGHT_JOIN: 400>, <TokenType.STRUCT: 401>, <TokenType.TAG: 404>, <TokenType.TEMPORARY: 405>, <TokenType.TOP: 406>, <TokenType.TRUE: 408>, <TokenType.TRUNCATE: 409>, <TokenType.TRIGGER: 410>, <TokenType.TYPE: 411>, <TokenType.UNNEST: 414>, <TokenType.UNPIVOT: 415>, <TokenType.UPDATE: 416>, <TokenType.USE: 417>, <TokenType.VIEW: 421>, <TokenType.SEMANTIC_VIEW: 422>, <TokenType.VOLATILE: 423>, <TokenType.WINDOW: 427>, <TokenType.UNIQUE: 429>, <TokenType.SINK: 436>, <TokenType.SOURCE: 437>, <TokenType.ANALYZE: 438>, <TokenType.NAMESPACE: 439>, <TokenType.EXPORT: 440>}
AGG_FUNC_MAPPING =
{'sumKahanSimpleState': ('sumKahan', 'SimpleState'), 'quantilesExactHighSimpleState': ('quantilesExactHigh', 'SimpleState'), 'anySimpleState': ('any', 'SimpleState'), 'uniqThetaSimpleState': ('uniqTheta', 'SimpleState'), 'groupBitXorSimpleState': ('groupBitXor', 'SimpleState'), 'theilsUSimpleState': ('theilsU', 'SimpleState'), 'boundingRatioSimpleState': ('boundingRatio', 'SimpleState'), 'histogramSimpleState': ('histogram', 'SimpleState'), 'kolmogorovSmirnovTestSimpleState': ('kolmogorovSmirnovTest', 'SimpleState'), 'groupBitmapXorSimpleState': ('groupBitmapXor', 'SimpleState'), 'quantileDeterministicSimpleState': ('quantileDeterministic', 'SimpleState'), 'varPopSimpleState': ('varPop', 'SimpleState'), 'first_valueSimpleState': ('first_value', 'SimpleState'), 'uniqHLL12SimpleState': ('uniqHLL12', 'SimpleState'), 'minMapSimpleState': ('minMap', 'SimpleState'), 'simpleLinearRegressionSimpleState': ('simpleLinearRegression', 'SimpleState'), 'quantilesInterpolatedWeightedSimpleState': ('quantilesInterpolatedWeighted', 'SimpleState'), 'maxSimpleState': ('max', 'SimpleState'), 'quantileTDigestWeightedSimpleState': ('quantileTDigestWeighted', 'SimpleState'), 'groupUniqArraySimpleState': ('groupUniqArray', 'SimpleState'), 'meanZTestSimpleState': ('meanZTest', 'SimpleState'), 'stochasticLogisticRegressionSimpleState': ('stochasticLogisticRegression', 'SimpleState'), 'cramersVBiasCorrectedSimpleState': ('cramersVBiasCorrected', 'SimpleState'), 'covarPopSimpleState': ('covarPop', 'SimpleState'), 'countSimpleState': ('count', 'SimpleState'), 'deltaSumSimpleState': ('deltaSum', 'SimpleState'), 'quantileInterpolatedWeightedSimpleState': ('quantileInterpolatedWeighted', 'SimpleState'), 'quantileGKSimpleState': ('quantileGK', 'SimpleState'), 'anyHeavySimpleState': ('anyHeavy', 'SimpleState'), 'uniqUpToSimpleState': ('uniqUpTo', 'SimpleState'), 'studentTTestSimpleState': ('studentTTest', 'SimpleState'), 'varSampSimpleState': ('varSamp', 'SimpleState'), 'groupBitmapOrSimpleState': ('groupBitmapOr', 'SimpleState'), 'argMinSimpleState': ('argMin', 'SimpleState'), 'contingencySimpleState': ('contingency', 'SimpleState'), 'quantilesExactLowSimpleState': ('quantilesExactLow', 'SimpleState'), 'covarSampSimpleState': ('covarSamp', 'SimpleState'), 'mannWhitneyUTestSimpleState': ('mannWhitneyUTest', 'SimpleState'), 'quantilesExactWeightedSimpleState': ('quantilesExactWeighted', 'SimpleState'), 'quantileTimingWeightedSimpleState': ('quantileTimingWeighted', 'SimpleState'), 'minSimpleState': ('min', 'SimpleState'), 'approx_top_sumSimpleState': ('approx_top_sum', 'SimpleState'), 'uniqSimpleState': ('uniq', 'SimpleState'), 'quantilesExactSimpleState': ('quantilesExact', 'SimpleState'), 'retentionSimpleState': ('retention', 'SimpleState'), 'uniqExactSimpleState': ('uniqExact', 'SimpleState'), 'stochasticLinearRegressionSimpleState': ('stochasticLinearRegression', 'SimpleState'), 'quantilesExactExclusiveSimpleState': ('quantilesExactExclusive', 'SimpleState'), 'sparkBarSimpleState': ('sparkBar', 'SimpleState'), 'skewPopSimpleState': ('skewPop', 'SimpleState'), 'groupArrayMovingAvgSimpleState': ('groupArrayMovingAvg', 'SimpleState'), 'medianSimpleState': ('median', 'SimpleState'), 'groupArrayLastSimpleState': ('groupArrayLast', 'SimpleState'), 'kurtPopSimpleState': ('kurtPop', 'SimpleState'), 'exponentialMovingAverageSimpleState': ('exponentialMovingAverage', 'SimpleState'), 'sequenceNextNodeSimpleState': ('sequenceNextNode', 'SimpleState'), 'quantileSimpleState': ('quantile', 'SimpleState'), 'groupArrayInsertAtSimpleState': ('groupArrayInsertAt', 'SimpleState'), 'sumSimpleState': ('sum', 'SimpleState'), 'quantileBFloat16SimpleState': ('quantileBFloat16', 'SimpleState'), 'rankCorrSimpleState': ('rankCorr', 'SimpleState'), 'quantileTDigestSimpleState': ('quantileTDigest', 'SimpleState'), 'maxIntersectionsPositionSimpleState': ('maxIntersectionsPosition', 'SimpleState'), 'sumMapSimpleState': ('sumMap', 'SimpleState'), 'kurtSampSimpleState': ('kurtSamp', 'SimpleState'), 'exponentialTimeDecayedAvgSimpleState': ('exponentialTimeDecayedAvg', 'SimpleState'), 'avgWeightedSimpleState': ('avgWeighted', 'SimpleState'), 'topKWeightedSimpleState': ('topKWeighted', 'SimpleState'), 'largestTriangleThreeBucketsSimpleState': ('largestTriangleThreeBuckets', 'SimpleState'), 'groupArraySampleSimpleState': ('groupArraySample', 'SimpleState'), 'quantileExactHighSimpleState': ('quantileExactHigh', 'SimpleState'), 'windowFunnelSimpleState': ('windowFunnel', 'SimpleState'), 'quantileExactWeightedSimpleState': ('quantileExactWeighted', 'SimpleState'), 'quantileExactLowSimpleState': ('quantileExactLow', 'SimpleState'), 'maxMapSimpleState': ('maxMap', 'SimpleState'), 'welchTTestSimpleState': ('welchTTest', 'SimpleState'), 'groupBitOrSimpleState': ('groupBitOr', 'SimpleState'), 'quantilesSimpleState': ('quantiles', 'SimpleState'), 'avgSimpleState': ('avg', 'SimpleState'), 'cramersVSimpleState': ('cramersV', 'SimpleState'), 'anyLastSimpleState': ('anyLast', 'SimpleState'), 'quantilesGKSimpleState': ('quantilesGK', 'SimpleState'), 'sequenceMatchSimpleState': ('sequenceMatch', 'SimpleState'), 'quantilesTimingWeightedSimpleState': ('quantilesTimingWeighted', 'SimpleState'), 'quantilesDeterministicSimpleState': ('quantilesDeterministic', 'SimpleState'), 'sumCountSimpleState': ('sumCount', 'SimpleState'), 'maxIntersectionsSimpleState': ('maxIntersections', 'SimpleState'), 'stddevSampSimpleState': ('stddevSamp', 'SimpleState'), 'groupBitmapAndSimpleState': ('groupBitmapAnd', 'SimpleState'), 'groupArraySimpleState': ('groupArray', 'SimpleState'), 'uniqCombinedSimpleState': ('uniqCombined', 'SimpleState'), 'skewSampSimpleState': ('skewSamp', 'SimpleState'), 'groupBitmapSimpleState': ('groupBitmap', 'SimpleState'), 'quantilesBFloat16SimpleState': ('quantilesBFloat16', 'SimpleState'), 'quantilesTDigestSimpleState': ('quantilesTDigest', 'SimpleState'), 'sequenceCountSimpleState': ('sequenceCount', 'SimpleState'), 'uniqCombined64SimpleState': ('uniqCombined64', 'SimpleState'), 'entropySimpleState': ('entropy', 'SimpleState'), 'quantilesTDigestWeightedSimpleState': ('quantilesTDigestWeighted', 'SimpleState'), 'quantileExactSimpleState': ('quantileExact', 'SimpleState'), 'categoricalInformationValueSimpleState': ('categoricalInformationValue', 'SimpleState'), 'topKSimpleState': ('topK', 'SimpleState'), 'groupBitAndSimpleState': ('groupBitAnd', 'SimpleState'), 'stddevPopSimpleState': ('stddevPop', 'SimpleState'), 'quantileBFloat16WeightedSimpleState': ('quantileBFloat16Weighted', 'SimpleState'), 'quantileTimingSimpleState': ('quantileTiming', 'SimpleState'), 'groupConcatSimpleState': ('groupConcat', 'SimpleState'), 'corrSimpleState': ('corr', 'SimpleState'), 'sumWithOverflowSimpleState': ('sumWithOverflow', 'SimpleState'), 'last_valueSimpleState': ('last_value', 'SimpleState'), 'argMaxSimpleState': ('argMax', 'SimpleState'), 'quantilesTimingSimpleState': ('quantilesTiming', 'SimpleState'), 'groupArrayMovingSumSimpleState': ('groupArrayMovingSum', 'SimpleState'), 'deltaSumTimestampSimpleState': ('deltaSumTimestamp', 'SimpleState'), 'quantilesBFloat16WeightedSimpleState': ('quantilesBFloat16Weighted', 'SimpleState'), 'intervalLengthSumSimpleState': ('intervalLengthSum', 'SimpleState'), 'sumKahanMergeState': ('sumKahan', 'MergeState'), 'quantilesExactHighMergeState': ('quantilesExactHigh', 'MergeState'), 'anyMergeState': ('any', 'MergeState'), 'uniqThetaMergeState': ('uniqTheta', 'MergeState'), 'groupBitXorMergeState': ('groupBitXor', 'MergeState'), 'theilsUMergeState': ('theilsU', 'MergeState'), 'boundingRatioMergeState': ('boundingRatio', 'MergeState'), 'histogramMergeState': ('histogram', 'MergeState'), 'kolmogorovSmirnovTestMergeState': ('kolmogorovSmirnovTest', 'MergeState'), 'groupBitmapXorMergeState': ('groupBitmapXor', 'MergeState'), 'quantileDeterministicMergeState': ('quantileDeterministic', 'MergeState'), 'varPopMergeState': ('varPop', 'MergeState'), 'first_valueMergeState': ('first_value', 'MergeState'), 'uniqHLL12MergeState': ('uniqHLL12', 'MergeState'), 'minMapMergeState': ('minMap', 'MergeState'), 'simpleLinearRegressionMergeState': ('simpleLinearRegression', 'MergeState'), 'quantilesInterpolatedWeightedMergeState': ('quantilesInterpolatedWeighted', 'MergeState'), 'maxMergeState': ('max', 'MergeState'), 'quantileTDigestWeightedMergeState': ('quantileTDigestWeighted', 'MergeState'), 'groupUniqArrayMergeState': ('groupUniqArray', 'MergeState'), 'meanZTestMergeState': ('meanZTest', 'MergeState'), 'stochasticLogisticRegressionMergeState': ('stochasticLogisticRegression', 'MergeState'), 'cramersVBiasCorrectedMergeState': ('cramersVBiasCorrected', 'MergeState'), 'covarPopMergeState': ('covarPop', 'MergeState'), 'countMergeState': ('count', 'MergeState'), 'deltaSumMergeState': ('deltaSum', 'MergeState'), 'quantileInterpolatedWeightedMergeState': ('quantileInterpolatedWeighted', 'MergeState'), 'quantileGKMergeState': ('quantileGK', 'MergeState'), 'anyHeavyMergeState': ('anyHeavy', 'MergeState'), 'uniqUpToMergeState': ('uniqUpTo', 'MergeState'), 'studentTTestMergeState': ('studentTTest', 'MergeState'), 'varSampMergeState': ('varSamp', 'MergeState'), 'groupBitmapOrMergeState': ('groupBitmapOr', 'MergeState'), 'argMinMergeState': ('argMin', 'MergeState'), 'contingencyMergeState': ('contingency', 'MergeState'), 'quantilesExactLowMergeState': ('quantilesExactLow', 'MergeState'), 'covarSampMergeState': ('covarSamp', 'MergeState'), 'mannWhitneyUTestMergeState': ('mannWhitneyUTest', 'MergeState'), 'quantilesExactWeightedMergeState': ('quantilesExactWeighted', 'MergeState'), 'quantileTimingWeightedMergeState': ('quantileTimingWeighted', 'MergeState'), 'minMergeState': ('min', 'MergeState'), 'approx_top_sumMergeState': ('approx_top_sum', 'MergeState'), 'uniqMergeState': ('uniq', 'MergeState'), 'quantilesExactMergeState': ('quantilesExact', 'MergeState'), 'retentionMergeState': ('retention', 'MergeState'), 'uniqExactMergeState': ('uniqExact', 'MergeState'), 'stochasticLinearRegressionMergeState': ('stochasticLinearRegression', 'MergeState'), 'quantilesExactExclusiveMergeState': ('quantilesExactExclusive', 'MergeState'), 'sparkBarMergeState': ('sparkBar', 'MergeState'), 'skewPopMergeState': ('skewPop', 'MergeState'), 'groupArrayMovingAvgMergeState': ('groupArrayMovingAvg', 'MergeState'), 'medianMergeState': ('median', 'MergeState'), 'groupArrayLastMergeState': ('groupArrayLast', 'MergeState'), 'kurtPopMergeState': ('kurtPop', 'MergeState'), 'exponentialMovingAverageMergeState': ('exponentialMovingAverage', 'MergeState'), 'sequenceNextNodeMergeState': ('sequenceNextNode', 'MergeState'), 'quantileMergeState': ('quantile', 'MergeState'), 'groupArrayInsertAtMergeState': ('groupArrayInsertAt', 'MergeState'), 'sumMergeState': ('sum', 'MergeState'), 'quantileBFloat16MergeState': ('quantileBFloat16', 'MergeState'), 'rankCorrMergeState': ('rankCorr', 'MergeState'), 'quantileTDigestMergeState': ('quantileTDigest', 'MergeState'), 'maxIntersectionsPositionMergeState': ('maxIntersectionsPosition', 'MergeState'), 'sumMapMergeState': ('sumMap', 'MergeState'), 'kurtSampMergeState': ('kurtSamp', 'MergeState'), 'exponentialTimeDecayedAvgMergeState': ('exponentialTimeDecayedAvg', 'MergeState'), 'avgWeightedMergeState': ('avgWeighted', 'MergeState'), 'topKWeightedMergeState': ('topKWeighted', 'MergeState'), 'largestTriangleThreeBucketsMergeState': ('largestTriangleThreeBuckets', 'MergeState'), 'groupArraySampleMergeState': ('groupArraySample', 'MergeState'), 'quantileExactHighMergeState': ('quantileExactHigh', 'MergeState'), 'windowFunnelMergeState': ('windowFunnel', 'MergeState'), 'quantileExactWeightedMergeState': ('quantileExactWeighted', 'MergeState'), 'quantileExactLowMergeState': ('quantileExactLow', 'MergeState'), 'maxMapMergeState': ('maxMap', 'MergeState'), 'welchTTestMergeState': ('welchTTest', 'MergeState'), 'groupBitOrMergeState': ('groupBitOr', 'MergeState'), 'quantilesMergeState': ('quantiles', 'MergeState'), 'avgMergeState': ('avg', 'MergeState'), 'cramersVMergeState': ('cramersV', 'MergeState'), 'anyLastMergeState': ('anyLast', 'MergeState'), 'quantilesGKMergeState': ('quantilesGK', 'MergeState'), 'sequenceMatchMergeState': ('sequenceMatch', 'MergeState'), 'quantilesTimingWeightedMergeState': ('quantilesTimingWeighted', 'MergeState'), 'quantilesDeterministicMergeState': ('quantilesDeterministic', 'MergeState'), 'sumCountMergeState': ('sumCount', 'MergeState'), 'maxIntersectionsMergeState': ('maxIntersections', 'MergeState'), 'stddevSampMergeState': ('stddevSamp', 'MergeState'), 'groupBitmapAndMergeState': ('groupBitmapAnd', 'MergeState'), 'groupArrayMergeState': ('groupArray', 'MergeState'), 'uniqCombinedMergeState': ('uniqCombined', 'MergeState'), 'skewSampMergeState': ('skewSamp', 'MergeState'), 'groupBitmapMergeState': ('groupBitmap', 'MergeState'), 'quantilesBFloat16MergeState': ('quantilesBFloat16', 'MergeState'), 'quantilesTDigestMergeState': ('quantilesTDigest', 'MergeState'), 'sequenceCountMergeState': ('sequenceCount', 'MergeState'), 'uniqCombined64MergeState': ('uniqCombined64', 'MergeState'), 'entropyMergeState': ('entropy', 'MergeState'), 'quantilesTDigestWeightedMergeState': ('quantilesTDigestWeighted', 'MergeState'), 'quantileExactMergeState': ('quantileExact', 'MergeState'), 'categoricalInformationValueMergeState': ('categoricalInformationValue', 'MergeState'), 'topKMergeState': ('topK', 'MergeState'), 'groupBitAndMergeState': ('groupBitAnd', 'MergeState'), 'stddevPopMergeState': ('stddevPop', 'MergeState'), 'quantileBFloat16WeightedMergeState': ('quantileBFloat16Weighted', 'MergeState'), 'quantileTimingMergeState': ('quantileTiming', 'MergeState'), 'groupConcatMergeState': ('groupConcat', 'MergeState'), 'corrMergeState': ('corr', 'MergeState'), 'sumWithOverflowMergeState': ('sumWithOverflow', 'MergeState'), 'last_valueMergeState': ('last_value', 'MergeState'), 'argMaxMergeState': ('argMax', 'MergeState'), 'quantilesTimingMergeState': ('quantilesTiming', 'MergeState'), 'groupArrayMovingSumMergeState': ('groupArrayMovingSum', 'MergeState'), 'deltaSumTimestampMergeState': ('deltaSumTimestamp', 'MergeState'), 'quantilesBFloat16WeightedMergeState': ('quantilesBFloat16Weighted', 'MergeState'), 'intervalLengthSumMergeState': ('intervalLengthSum', 'MergeState'), 'sumKahanOrDefault': ('sumKahan', 'OrDefault'), 'quantilesExactHighOrDefault': ('quantilesExactHigh', 'OrDefault'), 'anyOrDefault': ('any', 'OrDefault'), 'uniqThetaOrDefault': ('uniqTheta', 'OrDefault'), 'groupBitXorOrDefault': ('groupBitXor', 'OrDefault'), 'theilsUOrDefault': ('theilsU', 'OrDefault'), 'boundingRatioOrDefault': ('boundingRatio', 'OrDefault'), 'histogramOrDefault': ('histogram', 'OrDefault'), 'kolmogorovSmirnovTestOrDefault': ('kolmogorovSmirnovTest', 'OrDefault'), 'groupBitmapXorOrDefault': ('groupBitmapXor', 'OrDefault'), 'quantileDeterministicOrDefault': ('quantileDeterministic', 'OrDefault'), 'varPopOrDefault': ('varPop', 'OrDefault'), 'first_valueOrDefault': ('first_value', 'OrDefault'), 'uniqHLL12OrDefault': ('uniqHLL12', 'OrDefault'), 'minMapOrDefault': ('minMap', 'OrDefault'), 'simpleLinearRegressionOrDefault': ('simpleLinearRegression', 'OrDefault'), 'quantilesInterpolatedWeightedOrDefault': ('quantilesInterpolatedWeighted', 'OrDefault'), 'maxOrDefault': ('max', 'OrDefault'), 'quantileTDigestWeightedOrDefault': ('quantileTDigestWeighted', 'OrDefault'), 'groupUniqArrayOrDefault': ('groupUniqArray', 'OrDefault'), 'meanZTestOrDefault': ('meanZTest', 'OrDefault'), 'stochasticLogisticRegressionOrDefault': ('stochasticLogisticRegression', 'OrDefault'), 'cramersVBiasCorrectedOrDefault': ('cramersVBiasCorrected', 'OrDefault'), 'covarPopOrDefault': ('covarPop', 'OrDefault'), 'countOrDefault': ('count', 'OrDefault'), 'deltaSumOrDefault': ('deltaSum', 'OrDefault'), 'quantileInterpolatedWeightedOrDefault': ('quantileInterpolatedWeighted', 'OrDefault'), 'quantileGKOrDefault': ('quantileGK', 'OrDefault'), 'anyHeavyOrDefault': ('anyHeavy', 'OrDefault'), 'uniqUpToOrDefault': ('uniqUpTo', 'OrDefault'), 'studentTTestOrDefault': ('studentTTest', 'OrDefault'), 'varSampOrDefault': ('varSamp', 'OrDefault'), 'groupBitmapOrOrDefault': ('groupBitmapOr', 'OrDefault'), 'argMinOrDefault': ('argMin', 'OrDefault'), 'contingencyOrDefault': ('contingency', 'OrDefault'), 'quantilesExactLowOrDefault': ('quantilesExactLow', 'OrDefault'), 'covarSampOrDefault': ('covarSamp', 'OrDefault'), 'mannWhitneyUTestOrDefault': ('mannWhitneyUTest', 'OrDefault'), 'quantilesExactWeightedOrDefault': ('quantilesExactWeighted', 'OrDefault'), 'quantileTimingWeightedOrDefault': ('quantileTimingWeighted', 'OrDefault'), 'minOrDefault': ('min', 'OrDefault'), 'approx_top_sumOrDefault': ('approx_top_sum', 'OrDefault'), 'uniqOrDefault': ('uniq', 'OrDefault'), 'quantilesExactOrDefault': ('quantilesExact', 'OrDefault'), 'retentionOrDefault': ('retention', 'OrDefault'), 'uniqExactOrDefault': ('uniqExact', 'OrDefault'), 'stochasticLinearRegressionOrDefault': ('stochasticLinearRegression', 'OrDefault'), 'quantilesExactExclusiveOrDefault': ('quantilesExactExclusive', 'OrDefault'), 'sparkBarOrDefault': ('sparkBar', 'OrDefault'), 'skewPopOrDefault': ('skewPop', 'OrDefault'), 'groupArrayMovingAvgOrDefault': ('groupArrayMovingAvg', 'OrDefault'), 'medianOrDefault': ('median', 'OrDefault'), 'groupArrayLastOrDefault': ('groupArrayLast', 'OrDefault'), 'kurtPopOrDefault': ('kurtPop', 'OrDefault'), 'exponentialMovingAverageOrDefault': ('exponentialMovingAverage', 'OrDefault'), 'sequenceNextNodeOrDefault': ('sequenceNextNode', 'OrDefault'), 'quantileOrDefault': ('quantile', 'OrDefault'), 'groupArrayInsertAtOrDefault': ('groupArrayInsertAt', 'OrDefault'), 'sumOrDefault': ('sum', 'OrDefault'), 'quantileBFloat16OrDefault': ('quantileBFloat16', 'OrDefault'), 'rankCorrOrDefault': ('rankCorr', 'OrDefault'), 'quantileTDigestOrDefault': ('quantileTDigest', 'OrDefault'), 'maxIntersectionsPositionOrDefault': ('maxIntersectionsPosition', 'OrDefault'), 'sumMapOrDefault': ('sumMap', 'OrDefault'), 'kurtSampOrDefault': ('kurtSamp', 'OrDefault'), 'exponentialTimeDecayedAvgOrDefault': ('exponentialTimeDecayedAvg', 'OrDefault'), 'avgWeightedOrDefault': ('avgWeighted', 'OrDefault'), 'topKWeightedOrDefault': ('topKWeighted', 'OrDefault'), 'largestTriangleThreeBucketsOrDefault': ('largestTriangleThreeBuckets', 'OrDefault'), 'groupArraySampleOrDefault': ('groupArraySample', 'OrDefault'), 'quantileExactHighOrDefault': ('quantileExactHigh', 'OrDefault'), 'windowFunnelOrDefault': ('windowFunnel', 'OrDefault'), 'quantileExactWeightedOrDefault': ('quantileExactWeighted', 'OrDefault'), 'quantileExactLowOrDefault': ('quantileExactLow', 'OrDefault'), 'maxMapOrDefault': ('maxMap', 'OrDefault'), 'welchTTestOrDefault': ('welchTTest', 'OrDefault'), 'groupBitOrOrDefault': ('groupBitOr', 'OrDefault'), 'quantilesOrDefault': ('quantiles', 'OrDefault'), 'avgOrDefault': ('avg', 'OrDefault'), 'cramersVOrDefault': ('cramersV', 'OrDefault'), 'anyLastOrDefault': ('anyLast', 'OrDefault'), 'quantilesGKOrDefault': ('quantilesGK', 'OrDefault'), 'sequenceMatchOrDefault': ('sequenceMatch', 'OrDefault'), 'quantilesTimingWeightedOrDefault': ('quantilesTimingWeighted', 'OrDefault'), 'quantilesDeterministicOrDefault': ('quantilesDeterministic', 'OrDefault'), 'sumCountOrDefault': ('sumCount', 'OrDefault'), 'maxIntersectionsOrDefault': ('maxIntersections', 'OrDefault'), 'stddevSampOrDefault': ('stddevSamp', 'OrDefault'), 'groupBitmapAndOrDefault': ('groupBitmapAnd', 'OrDefault'), 'groupArrayOrDefault': ('groupArray', 'OrDefault'), 'uniqCombinedOrDefault': ('uniqCombined', 'OrDefault'), 'skewSampOrDefault': ('skewSamp', 'OrDefault'), 'groupBitmapOrDefault': ('groupBitmap', 'OrDefault'), 'quantilesBFloat16OrDefault': ('quantilesBFloat16', 'OrDefault'), 'quantilesTDigestOrDefault': ('quantilesTDigest', 'OrDefault'), 'sequenceCountOrDefault': ('sequenceCount', 'OrDefault'), 'uniqCombined64OrDefault': ('uniqCombined64', 'OrDefault'), 'entropyOrDefault': ('entropy', 'OrDefault'), 'quantilesTDigestWeightedOrDefault': ('quantilesTDigestWeighted', 'OrDefault'), 'quantileExactOrDefault': ('quantileExact', 'OrDefault'), 'categoricalInformationValueOrDefault': ('categoricalInformationValue', 'OrDefault'), 'topKOrDefault': ('topK', 'OrDefault'), 'groupBitAndOrDefault': ('groupBitAnd', 'OrDefault'), 'stddevPopOrDefault': ('stddevPop', 'OrDefault'), 'quantileBFloat16WeightedOrDefault': ('quantileBFloat16Weighted', 'OrDefault'), 'quantileTimingOrDefault': ('quantileTiming', 'OrDefault'), 'groupConcatOrDefault': ('groupConcat', 'OrDefault'), 'corrOrDefault': ('corr', 'OrDefault'), 'sumWithOverflowOrDefault': ('sumWithOverflow', 'OrDefault'), 'last_valueOrDefault': ('last_value', 'OrDefault'), 'argMaxOrDefault': ('argMax', 'OrDefault'), 'quantilesTimingOrDefault': ('quantilesTiming', 'OrDefault'), 'groupArrayMovingSumOrDefault': ('groupArrayMovingSum', 'OrDefault'), 'deltaSumTimestampOrDefault': ('deltaSumTimestamp', 'OrDefault'), 'quantilesBFloat16WeightedOrDefault': ('quantilesBFloat16Weighted', 'OrDefault'), 'intervalLengthSumOrDefault': ('intervalLengthSum', 'OrDefault'), 'sumKahanDistinct': ('sumKahan', 'Distinct'), 'quantilesExactHighDistinct': ('quantilesExactHigh', 'Distinct'), 'anyDistinct': ('any', 'Distinct'), 'uniqThetaDistinct': ('uniqTheta', 'Distinct'), 'groupBitXorDistinct': ('groupBitXor', 'Distinct'), 'theilsUDistinct': ('theilsU', 'Distinct'), 'boundingRatioDistinct': ('boundingRatio', 'Distinct'), 'histogramDistinct': ('histogram', 'Distinct'), 'kolmogorovSmirnovTestDistinct': ('kolmogorovSmirnovTest', 'Distinct'), 'groupBitmapXorDistinct': ('groupBitmapXor', 'Distinct'), 'quantileDeterministicDistinct': ('quantileDeterministic', 'Distinct'), 'varPopDistinct': ('varPop', 'Distinct'), 'first_valueDistinct': ('first_value', 'Distinct'), 'uniqHLL12Distinct': ('uniqHLL12', 'Distinct'), 'minMapDistinct': ('minMap', 'Distinct'), 'simpleLinearRegressionDistinct': ('simpleLinearRegression', 'Distinct'), 'quantilesInterpolatedWeightedDistinct': ('quantilesInterpolatedWeighted', 'Distinct'), 'maxDistinct': ('max', 'Distinct'), 'quantileTDigestWeightedDistinct': ('quantileTDigestWeighted', 'Distinct'), 'groupUniqArrayDistinct': ('groupUniqArray', 'Distinct'), 'meanZTestDistinct': ('meanZTest', 'Distinct'), 'stochasticLogisticRegressionDistinct': ('stochasticLogisticRegression', 'Distinct'), 'cramersVBiasCorrectedDistinct': ('cramersVBiasCorrected', 'Distinct'), 'covarPopDistinct': ('covarPop', 'Distinct'), 'countDistinct': ('count', 'Distinct'), 'deltaSumDistinct': ('deltaSum', 'Distinct'), 'quantileInterpolatedWeightedDistinct': ('quantileInterpolatedWeighted', 'Distinct'), 'quantileGKDistinct': ('quantileGK', 'Distinct'), 'anyHeavyDistinct': ('anyHeavy', 'Distinct'), 'uniqUpToDistinct': ('uniqUpTo', 'Distinct'), 'studentTTestDistinct': ('studentTTest', 'Distinct'), 'varSampDistinct': ('varSamp', 'Distinct'), 'groupBitmapOrDistinct': ('groupBitmapOr', 'Distinct'), 'argMinDistinct': ('argMin', 'Distinct'), 'contingencyDistinct': ('contingency', 'Distinct'), 'quantilesExactLowDistinct': ('quantilesExactLow', 'Distinct'), 'covarSampDistinct': ('covarSamp', 'Distinct'), 'mannWhitneyUTestDistinct': ('mannWhitneyUTest', 'Distinct'), 'quantilesExactWeightedDistinct': ('quantilesExactWeighted', 'Distinct'), 'quantileTimingWeightedDistinct': ('quantileTimingWeighted', 'Distinct'), 'minDistinct': ('min', 'Distinct'), 'approx_top_sumDistinct': ('approx_top_sum', 'Distinct'), 'uniqDistinct': ('uniq', 'Distinct'), 'quantilesExactDistinct': ('quantilesExact', 'Distinct'), 'retentionDistinct': ('retention', 'Distinct'), 'uniqExactDistinct': ('uniqExact', 'Distinct'), 'stochasticLinearRegressionDistinct': ('stochasticLinearRegression', 'Distinct'), 'quantilesExactExclusiveDistinct': ('quantilesExactExclusive', 'Distinct'), 'sparkBarDistinct': ('sparkBar', 'Distinct'), 'skewPopDistinct': ('skewPop', 'Distinct'), 'groupArrayMovingAvgDistinct': ('groupArrayMovingAvg', 'Distinct'), 'medianDistinct': ('median', 'Distinct'), 'groupArrayLastDistinct': ('groupArrayLast', 'Distinct'), 'kurtPopDistinct': ('kurtPop', 'Distinct'), 'exponentialMovingAverageDistinct': ('exponentialMovingAverage', 'Distinct'), 'sequenceNextNodeDistinct': ('sequenceNextNode', 'Distinct'), 'quantileDistinct': ('quantile', 'Distinct'), 'groupArrayInsertAtDistinct': ('groupArrayInsertAt', 'Distinct'), 'sumDistinct': ('sum', 'Distinct'), 'quantileBFloat16Distinct': ('quantileBFloat16', 'Distinct'), 'rankCorrDistinct': ('rankCorr', 'Distinct'), 'quantileTDigestDistinct': ('quantileTDigest', 'Distinct'), 'maxIntersectionsPositionDistinct': ('maxIntersectionsPosition', 'Distinct'), 'sumMapDistinct': ('sumMap', 'Distinct'), 'kurtSampDistinct': ('kurtSamp', 'Distinct'), 'exponentialTimeDecayedAvgDistinct': ('exponentialTimeDecayedAvg', 'Distinct'), 'avgWeightedDistinct': ('avgWeighted', 'Distinct'), 'topKWeightedDistinct': ('topKWeighted', 'Distinct'), 'largestTriangleThreeBucketsDistinct': ('largestTriangleThreeBuckets', 'Distinct'), 'groupArraySampleDistinct': ('groupArraySample', 'Distinct'), 'quantileExactHighDistinct': ('quantileExactHigh', 'Distinct'), 'windowFunnelDistinct': ('windowFunnel', 'Distinct'), 'quantileExactWeightedDistinct': ('quantileExactWeighted', 'Distinct'), 'quantileExactLowDistinct': ('quantileExactLow', 'Distinct'), 'maxMapDistinct': ('maxMap', 'Distinct'), 'welchTTestDistinct': ('welchTTest', 'Distinct'), 'groupBitOrDistinct': ('groupBitOr', 'Distinct'), 'quantilesDistinct': ('quantiles', 'Distinct'), 'avgDistinct': ('avg', 'Distinct'), 'cramersVDistinct': ('cramersV', 'Distinct'), 'anyLastDistinct': ('anyLast', 'Distinct'), 'quantilesGKDistinct': ('quantilesGK', 'Distinct'), 'sequenceMatchDistinct': ('sequenceMatch', 'Distinct'), 'quantilesTimingWeightedDistinct': ('quantilesTimingWeighted', 'Distinct'), 'quantilesDeterministicDistinct': ('quantilesDeterministic', 'Distinct'), 'sumCountDistinct': ('sumCount', 'Distinct'), 'maxIntersectionsDistinct': ('maxIntersections', 'Distinct'), 'stddevSampDistinct': ('stddevSamp', 'Distinct'), 'groupBitmapAndDistinct': ('groupBitmapAnd', 'Distinct'), 'groupArrayDistinct': ('groupArray', 'Distinct'), 'uniqCombinedDistinct': ('uniqCombined', 'Distinct'), 'skewSampDistinct': ('skewSamp', 'Distinct'), 'groupBitmapDistinct': ('groupBitmap', 'Distinct'), 'quantilesBFloat16Distinct': ('quantilesBFloat16', 'Distinct'), 'quantilesTDigestDistinct': ('quantilesTDigest', 'Distinct'), 'sequenceCountDistinct': ('sequenceCount', 'Distinct'), 'uniqCombined64Distinct': ('uniqCombined64', 'Distinct'), 'entropyDistinct': ('entropy', 'Distinct'), 'quantilesTDigestWeightedDistinct': ('quantilesTDigestWeighted', 'Distinct'), 'quantileExactDistinct': ('quantileExact', 'Distinct'), 'categoricalInformationValueDistinct': ('categoricalInformationValue', 'Distinct'), 'topKDistinct': ('topK', 'Distinct'), 'groupBitAndDistinct': ('groupBitAnd', 'Distinct'), 'stddevPopDistinct': ('stddevPop', 'Distinct'), 'quantileBFloat16WeightedDistinct': ('quantileBFloat16Weighted', 'Distinct'), 'quantileTimingDistinct': ('quantileTiming', 'Distinct'), 'groupConcatDistinct': ('groupConcat', 'Distinct'), 'corrDistinct': ('corr', 'Distinct'), 'sumWithOverflowDistinct': ('sumWithOverflow', 'Distinct'), 'last_valueDistinct': ('last_value', 'Distinct'), 'argMaxDistinct': ('argMax', 'Distinct'), 'quantilesTimingDistinct': ('quantilesTiming', 'Distinct'), 'groupArrayMovingSumDistinct': ('groupArrayMovingSum', 'Distinct'), 'deltaSumTimestampDistinct': ('deltaSumTimestamp', 'Distinct'), 'quantilesBFloat16WeightedDistinct': ('quantilesBFloat16Weighted', 'Distinct'), 'intervalLengthSumDistinct': ('intervalLengthSum', 'Distinct'), 'sumKahanResample': ('sumKahan', 'Resample'), 'quantilesExactHighResample': ('quantilesExactHigh', 'Resample'), 'anyResample': ('any', 'Resample'), 'uniqThetaResample': ('uniqTheta', 'Resample'), 'groupBitXorResample': ('groupBitXor', 'Resample'), 'theilsUResample': ('theilsU', 'Resample'), 'boundingRatioResample': ('boundingRatio', 'Resample'), 'histogramResample': ('histogram', 'Resample'), 'kolmogorovSmirnovTestResample': ('kolmogorovSmirnovTest', 'Resample'), 'groupBitmapXorResample': ('groupBitmapXor', 'Resample'), 'quantileDeterministicResample': ('quantileDeterministic', 'Resample'), 'varPopResample': ('varPop', 'Resample'), 'first_valueResample': ('first_value', 'Resample'), 'uniqHLL12Resample': ('uniqHLL12', 'Resample'), 'minMapResample': ('minMap', 'Resample'), 'simpleLinearRegressionResample': ('simpleLinearRegression', 'Resample'), 'quantilesInterpolatedWeightedResample': ('quantilesInterpolatedWeighted', 'Resample'), 'maxResample': ('max', 'Resample'), 'quantileTDigestWeightedResample': ('quantileTDigestWeighted', 'Resample'), 'groupUniqArrayResample': ('groupUniqArray', 'Resample'), 'meanZTestResample': ('meanZTest', 'Resample'), 'stochasticLogisticRegressionResample': ('stochasticLogisticRegression', 'Resample'), 'cramersVBiasCorrectedResample': ('cramersVBiasCorrected', 'Resample'), 'covarPopResample': ('covarPop', 'Resample'), 'countResample': ('count', 'Resample'), 'deltaSumResample': ('deltaSum', 'Resample'), 'quantileInterpolatedWeightedResample': ('quantileInterpolatedWeighted', 'Resample'), 'quantileGKResample': ('quantileGK', 'Resample'), 'anyHeavyResample': ('anyHeavy', 'Resample'), 'uniqUpToResample': ('uniqUpTo', 'Resample'), 'studentTTestResample': ('studentTTest', 'Resample'), 'varSampResample': ('varSamp', 'Resample'), 'groupBitmapOrResample': ('groupBitmapOr', 'Resample'), 'argMinResample': ('argMin', 'Resample'), 'contingencyResample': ('contingency', 'Resample'), 'quantilesExactLowResample': ('quantilesExactLow', 'Resample'), 'covarSampResample': ('covarSamp', 'Resample'), 'mannWhitneyUTestResample': ('mannWhitneyUTest', 'Resample'), 'quantilesExactWeightedResample': ('quantilesExactWeighted', 'Resample'), 'quantileTimingWeightedResample': ('quantileTimingWeighted', 'Resample'), 'minResample': ('min', 'Resample'), 'approx_top_sumResample': ('approx_top_sum', 'Resample'), 'uniqResample': ('uniq', 'Resample'), 'quantilesExactResample': ('quantilesExact', 'Resample'), 'retentionResample': ('retention', 'Resample'), 'uniqExactResample': ('uniqExact', 'Resample'), 'stochasticLinearRegressionResample': ('stochasticLinearRegression', 'Resample'), 'quantilesExactExclusiveResample': ('quantilesExactExclusive', 'Resample'), 'sparkBarResample': ('sparkBar', 'Resample'), 'skewPopResample': ('skewPop', 'Resample'), 'groupArrayMovingAvgResample': ('groupArrayMovingAvg', 'Resample'), 'medianResample': ('median', 'Resample'), 'groupArrayLastResample': ('groupArrayLast', 'Resample'), 'kurtPopResample': ('kurtPop', 'Resample'), 'exponentialMovingAverageResample': ('exponentialMovingAverage', 'Resample'), 'sequenceNextNodeResample': ('sequenceNextNode', 'Resample'), 'quantileResample': ('quantile', 'Resample'), 'groupArrayInsertAtResample': ('groupArrayInsertAt', 'Resample'), 'sumResample': ('sum', 'Resample'), 'quantileBFloat16Resample': ('quantileBFloat16', 'Resample'), 'rankCorrResample': ('rankCorr', 'Resample'), 'quantileTDigestResample': ('quantileTDigest', 'Resample'), 'maxIntersectionsPositionResample': ('maxIntersectionsPosition', 'Resample'), 'sumMapResample': ('sumMap', 'Resample'), 'kurtSampResample': ('kurtSamp', 'Resample'), 'exponentialTimeDecayedAvgResample': ('exponentialTimeDecayedAvg', 'Resample'), 'avgWeightedResample': ('avgWeighted', 'Resample'), 'topKWeightedResample': ('topKWeighted', 'Resample'), 'largestTriangleThreeBucketsResample': ('largestTriangleThreeBuckets', 'Resample'), 'groupArraySampleResample': ('groupArraySample', 'Resample'), 'quantileExactHighResample': ('quantileExactHigh', 'Resample'), 'windowFunnelResample': ('windowFunnel', 'Resample'), 'quantileExactWeightedResample': ('quantileExactWeighted', 'Resample'), 'quantileExactLowResample': ('quantileExactLow', 'Resample'), 'maxMapResample': ('maxMap', 'Resample'), 'welchTTestResample': ('welchTTest', 'Resample'), 'groupBitOrResample': ('groupBitOr', 'Resample'), 'quantilesResample': ('quantiles', 'Resample'), 'avgResample': ('avg', 'Resample'), 'cramersVResample': ('cramersV', 'Resample'), 'anyLastResample': ('anyLast', 'Resample'), 'quantilesGKResample': ('quantilesGK', 'Resample'), 'sequenceMatchResample': ('sequenceMatch', 'Resample'), 'quantilesTimingWeightedResample': ('quantilesTimingWeighted', 'Resample'), 'quantilesDeterministicResample': ('quantilesDeterministic', 'Resample'), 'sumCountResample': ('sumCount', 'Resample'), 'maxIntersectionsResample': ('maxIntersections', 'Resample'), 'stddevSampResample': ('stddevSamp', 'Resample'), 'groupBitmapAndResample': ('groupBitmapAnd', 'Resample'), 'groupArrayResample': ('groupArray', 'Resample'), 'uniqCombinedResample': ('uniqCombined', 'Resample'), 'skewSampResample': ('skewSamp', 'Resample'), 'groupBitmapResample': ('groupBitmap', 'Resample'), 'quantilesBFloat16Resample': ('quantilesBFloat16', 'Resample'), 'quantilesTDigestResample': ('quantilesTDigest', 'Resample'), 'sequenceCountResample': ('sequenceCount', 'Resample'), 'uniqCombined64Resample': ('uniqCombined64', 'Resample'), 'entropyResample': ('entropy', 'Resample'), 'quantilesTDigestWeightedResample': ('quantilesTDigestWeighted', 'Resample'), 'quantileExactResample': ('quantileExact', 'Resample'), 'categoricalInformationValueResample': ('categoricalInformationValue', 'Resample'), 'topKResample': ('topK', 'Resample'), 'groupBitAndResample': ('groupBitAnd', 'Resample'), 'stddevPopResample': ('stddevPop', 'Resample'), 'quantileBFloat16WeightedResample': ('quantileBFloat16Weighted', 'Resample'), 'quantileTimingResample': ('quantileTiming', 'Resample'), 'groupConcatResample': ('groupConcat', 'Resample'), 'corrResample': ('corr', 'Resample'), 'sumWithOverflowResample': ('sumWithOverflow', 'Resample'), 'last_valueResample': ('last_value', 'Resample'), 'argMaxResample': ('argMax', 'Resample'), 'quantilesTimingResample': ('quantilesTiming', 'Resample'), 'groupArrayMovingSumResample': ('groupArrayMovingSum', 'Resample'), 'deltaSumTimestampResample': ('deltaSumTimestamp', 'Resample'), 'quantilesBFloat16WeightedResample': ('quantilesBFloat16Weighted', 'Resample'), 'intervalLengthSumResample': ('intervalLengthSum', 'Resample'), 'sumKahanArrayIf': ('sumKahan', 'ArrayIf'), 'quantilesExactHighArrayIf': ('quantilesExactHigh', 'ArrayIf'), 'anyArrayIf': ('any', 'ArrayIf'), 'uniqThetaArrayIf': ('uniqTheta', 'ArrayIf'), 'groupBitXorArrayIf': ('groupBitXor', 'ArrayIf'), 'theilsUArrayIf': ('theilsU', 'ArrayIf'), 'boundingRatioArrayIf': ('boundingRatio', 'ArrayIf'), 'histogramArrayIf': ('histogram', 'ArrayIf'), 'kolmogorovSmirnovTestArrayIf': ('kolmogorovSmirnovTest', 'ArrayIf'), 'groupBitmapXorArrayIf': ('groupBitmapXor', 'ArrayIf'), 'quantileDeterministicArrayIf': ('quantileDeterministic', 'ArrayIf'), 'varPopArrayIf': ('varPop', 'ArrayIf'), 'first_valueArrayIf': ('first_value', 'ArrayIf'), 'uniqHLL12ArrayIf': ('uniqHLL12', 'ArrayIf'), 'minMapArrayIf': ('minMap', 'ArrayIf'), 'simpleLinearRegressionArrayIf': ('simpleLinearRegression', 'ArrayIf'), 'quantilesInterpolatedWeightedArrayIf': ('quantilesInterpolatedWeighted', 'ArrayIf'), 'maxArrayIf': ('max', 'ArrayIf'), 'quantileTDigestWeightedArrayIf': ('quantileTDigestWeighted', 'ArrayIf'), 'groupUniqArrayArrayIf': ('groupUniqArray', 'ArrayIf'), 'meanZTestArrayIf': ('meanZTest', 'ArrayIf'), 'stochasticLogisticRegressionArrayIf': ('stochasticLogisticRegression', 'ArrayIf'), 'cramersVBiasCorrectedArrayIf': ('cramersVBiasCorrected', 'ArrayIf'), 'covarPopArrayIf': ('covarPop', 'ArrayIf'), 'countArrayIf': ('count', 'ArrayIf'), 'deltaSumArrayIf': ('deltaSum', 'ArrayIf'), 'quantileInterpolatedWeightedArrayIf': ('quantileInterpolatedWeighted', 'ArrayIf'), 'quantileGKArrayIf': ('quantileGK', 'ArrayIf'), 'anyHeavyArrayIf': ('anyHeavy', 'ArrayIf'), 'uniqUpToArrayIf': ('uniqUpTo', 'ArrayIf'), 'studentTTestArrayIf': ('studentTTest', 'ArrayIf'), 'varSampArrayIf': ('varSamp', 'ArrayIf'), 'groupBitmapOrArrayIf': ('groupBitmapOr', 'ArrayIf'), 'argMinArrayIf': ('argMin', 'ArrayIf'), 'contingencyArrayIf': ('contingency', 'ArrayIf'), 'quantilesExactLowArrayIf': ('quantilesExactLow', 'ArrayIf'), 'covarSampArrayIf': ('covarSamp', 'ArrayIf'), 'mannWhitneyUTestArrayIf': ('mannWhitneyUTest', 'ArrayIf'), 'quantilesExactWeightedArrayIf': ('quantilesExactWeighted', 'ArrayIf'), 'quantileTimingWeightedArrayIf': ('quantileTimingWeighted', 'ArrayIf'), 'minArrayIf': ('min', 'ArrayIf'), 'approx_top_sumArrayIf': ('approx_top_sum', 'ArrayIf'), 'uniqArrayIf': ('uniq', 'ArrayIf'), 'quantilesExactArrayIf': ('quantilesExact', 'ArrayIf'), 'retentionArrayIf': ('retention', 'ArrayIf'), 'uniqExactArrayIf': ('uniqExact', 'ArrayIf'), 'stochasticLinearRegressionArrayIf': ('stochasticLinearRegression', 'ArrayIf'), 'quantilesExactExclusiveArrayIf': ('quantilesExactExclusive', 'ArrayIf'), 'sparkBarArrayIf': ('sparkBar', 'ArrayIf'), 'skewPopArrayIf': ('skewPop', 'ArrayIf'), 'groupArrayMovingAvgArrayIf': ('groupArrayMovingAvg', 'ArrayIf'), 'medianArrayIf': ('median', 'ArrayIf'), 'groupArrayLastArrayIf': ('groupArrayLast', 'ArrayIf'), 'kurtPopArrayIf': ('kurtPop', 'ArrayIf'), 'exponentialMovingAverageArrayIf': ('exponentialMovingAverage', 'ArrayIf'), 'sequenceNextNodeArrayIf': ('sequenceNextNode', 'ArrayIf'), 'quantileArrayIf': ('quantile', 'ArrayIf'), 'groupArrayInsertAtArrayIf': ('groupArrayInsertAt', 'ArrayIf'), 'sumArrayIf': ('sum', 'ArrayIf'), 'quantileBFloat16ArrayIf': ('quantileBFloat16', 'ArrayIf'), 'rankCorrArrayIf': ('rankCorr', 'ArrayIf'), 'quantileTDigestArrayIf': ('quantileTDigest', 'ArrayIf'), 'maxIntersectionsPositionArrayIf': ('maxIntersectionsPosition', 'ArrayIf'), 'sumMapArrayIf': ('sumMap', 'ArrayIf'), 'kurtSampArrayIf': ('kurtSamp', 'ArrayIf'), 'exponentialTimeDecayedAvgArrayIf': ('exponentialTimeDecayedAvg', 'ArrayIf'), 'avgWeightedArrayIf': ('avgWeighted', 'ArrayIf'), 'topKWeightedArrayIf': ('topKWeighted', 'ArrayIf'), 'largestTriangleThreeBucketsArrayIf': ('largestTriangleThreeBuckets', 'ArrayIf'), 'groupArraySampleArrayIf': ('groupArraySample', 'ArrayIf'), 'quantileExactHighArrayIf': ('quantileExactHigh', 'ArrayIf'), 'windowFunnelArrayIf': ('windowFunnel', 'ArrayIf'), 'quantileExactWeightedArrayIf': ('quantileExactWeighted', 'ArrayIf'), 'quantileExactLowArrayIf': ('quantileExactLow', 'ArrayIf'), 'maxMapArrayIf': ('maxMap', 'ArrayIf'), 'welchTTestArrayIf': ('welchTTest', 'ArrayIf'), 'groupBitOrArrayIf': ('groupBitOr', 'ArrayIf'), 'quantilesArrayIf': ('quantiles', 'ArrayIf'), 'avgArrayIf': ('avg', 'ArrayIf'), 'cramersVArrayIf': ('cramersV', 'ArrayIf'), 'anyLastArrayIf': ('anyLast', 'ArrayIf'), 'quantilesGKArrayIf': ('quantilesGK', 'ArrayIf'), 'sequenceMatchArrayIf': ('sequenceMatch', 'ArrayIf'), 'quantilesTimingWeightedArrayIf': ('quantilesTimingWeighted', 'ArrayIf'), 'quantilesDeterministicArrayIf': ('quantilesDeterministic', 'ArrayIf'), 'sumCountArrayIf': ('sumCount', 'ArrayIf'), 'maxIntersectionsArrayIf': ('maxIntersections', 'ArrayIf'), 'stddevSampArrayIf': ('stddevSamp', 'ArrayIf'), 'groupBitmapAndArrayIf': ('groupBitmapAnd', 'ArrayIf'), 'groupArrayArrayIf': ('groupArray', 'ArrayIf'), 'uniqCombinedArrayIf': ('uniqCombined', 'ArrayIf'), 'skewSampArrayIf': ('skewSamp', 'ArrayIf'), 'groupBitmapArrayIf': ('groupBitmap', 'ArrayIf'), 'quantilesBFloat16ArrayIf': ('quantilesBFloat16', 'ArrayIf'), 'quantilesTDigestArrayIf': ('quantilesTDigest', 'ArrayIf'), 'sequenceCountArrayIf': ('sequenceCount', 'ArrayIf'), 'uniqCombined64ArrayIf': ('uniqCombined64', 'ArrayIf'), 'entropyArrayIf': ('entropy', 'ArrayIf'), 'quantilesTDigestWeightedArrayIf': ('quantilesTDigestWeighted', 'ArrayIf'), 'quantileExactArrayIf': ('quantileExact', 'ArrayIf'), 'categoricalInformationValueArrayIf': ('categoricalInformationValue', 'ArrayIf'), 'topKArrayIf': ('topK', 'ArrayIf'), 'groupBitAndArrayIf': ('groupBitAnd', 'ArrayIf'), 'stddevPopArrayIf': ('stddevPop', 'ArrayIf'), 'quantileBFloat16WeightedArrayIf': ('quantileBFloat16Weighted', 'ArrayIf'), 'quantileTimingArrayIf': ('quantileTiming', 'ArrayIf'), 'groupConcatArrayIf': ('groupConcat', 'ArrayIf'), 'corrArrayIf': ('corr', 'ArrayIf'), 'sumWithOverflowArrayIf': ('sumWithOverflow', 'ArrayIf'), 'last_valueArrayIf': ('last_value', 'ArrayIf'), 'argMaxArrayIf': ('argMax', 'ArrayIf'), 'quantilesTimingArrayIf': ('quantilesTiming', 'ArrayIf'), 'groupArrayMovingSumArrayIf': ('groupArrayMovingSum', 'ArrayIf'), 'deltaSumTimestampArrayIf': ('deltaSumTimestamp', 'ArrayIf'), 'quantilesBFloat16WeightedArrayIf': ('quantilesBFloat16Weighted', 'ArrayIf'), 'intervalLengthSumArrayIf': ('intervalLengthSum', 'ArrayIf'), 'sumKahanForEach': ('sumKahan', 'ForEach'), 'quantilesExactHighForEach': ('quantilesExactHigh', 'ForEach'), 'anyForEach': ('any', 'ForEach'), 'uniqThetaForEach': ('uniqTheta', 'ForEach'), 'groupBitXorForEach': ('groupBitXor', 'ForEach'), 'theilsUForEach': ('theilsU', 'ForEach'), 'boundingRatioForEach': ('boundingRatio', 'ForEach'), 'histogramForEach': ('histogram', 'ForEach'), 'kolmogorovSmirnovTestForEach': ('kolmogorovSmirnovTest', 'ForEach'), 'groupBitmapXorForEach': ('groupBitmapXor', 'ForEach'), 'quantileDeterministicForEach': ('quantileDeterministic', 'ForEach'), 'varPopForEach': ('varPop', 'ForEach'), 'first_valueForEach': ('first_value', 'ForEach'), 'uniqHLL12ForEach': ('uniqHLL12', 'ForEach'), 'minMapForEach': ('minMap', 'ForEach'), 'simpleLinearRegressionForEach': ('simpleLinearRegression', 'ForEach'), 'quantilesInterpolatedWeightedForEach': ('quantilesInterpolatedWeighted', 'ForEach'), 'maxForEach': ('max', 'ForEach'), 'quantileTDigestWeightedForEach': ('quantileTDigestWeighted', 'ForEach'), 'groupUniqArrayForEach': ('groupUniqArray', 'ForEach'), 'meanZTestForEach': ('meanZTest', 'ForEach'), 'stochasticLogisticRegressionForEach': ('stochasticLogisticRegression', 'ForEach'), 'cramersVBiasCorrectedForEach': ('cramersVBiasCorrected', 'ForEach'), 'covarPopForEach': ('covarPop', 'ForEach'), 'countForEach': ('count', 'ForEach'), 'deltaSumForEach': ('deltaSum', 'ForEach'), 'quantileInterpolatedWeightedForEach': ('quantileInterpolatedWeighted', 'ForEach'), 'quantileGKForEach': ('quantileGK', 'ForEach'), 'anyHeavyForEach': ('anyHeavy', 'ForEach'), 'uniqUpToForEach': ('uniqUpTo', 'ForEach'), 'studentTTestForEach': ('studentTTest', 'ForEach'), 'varSampForEach': ('varSamp', 'ForEach'), 'groupBitmapOrForEach': ('groupBitmapOr', 'ForEach'), 'argMinForEach': ('argMin', 'ForEach'), 'contingencyForEach': ('contingency', 'ForEach'), 'quantilesExactLowForEach': ('quantilesExactLow', 'ForEach'), 'covarSampForEach': ('covarSamp', 'ForEach'), 'mannWhitneyUTestForEach': ('mannWhitneyUTest', 'ForEach'), 'quantilesExactWeightedForEach': ('quantilesExactWeighted', 'ForEach'), 'quantileTimingWeightedForEach': ('quantileTimingWeighted', 'ForEach'), 'minForEach': ('min', 'ForEach'), 'approx_top_sumForEach': ('approx_top_sum', 'ForEach'), 'uniqForEach': ('uniq', 'ForEach'), 'quantilesExactForEach': ('quantilesExact', 'ForEach'), 'retentionForEach': ('retention', 'ForEach'), 'uniqExactForEach': ('uniqExact', 'ForEach'), 'stochasticLinearRegressionForEach': ('stochasticLinearRegression', 'ForEach'), 'quantilesExactExclusiveForEach': ('quantilesExactExclusive', 'ForEach'), 'sparkBarForEach': ('sparkBar', 'ForEach'), 'skewPopForEach': ('skewPop', 'ForEach'), 'groupArrayMovingAvgForEach': ('groupArrayMovingAvg', 'ForEach'), 'medianForEach': ('median', 'ForEach'), 'groupArrayLastForEach': ('groupArrayLast', 'ForEach'), 'kurtPopForEach': ('kurtPop', 'ForEach'), 'exponentialMovingAverageForEach': ('exponentialMovingAverage', 'ForEach'), 'sequenceNextNodeForEach': ('sequenceNextNode', 'ForEach'), 'quantileForEach': ('quantile', 'ForEach'), 'groupArrayInsertAtForEach': ('groupArrayInsertAt', 'ForEach'), 'sumForEach': ('sum', 'ForEach'), 'quantileBFloat16ForEach': ('quantileBFloat16', 'ForEach'), 'rankCorrForEach': ('rankCorr', 'ForEach'), 'quantileTDigestForEach': ('quantileTDigest', 'ForEach'), 'maxIntersectionsPositionForEach': ('maxIntersectionsPosition', 'ForEach'), 'sumMapForEach': ('sumMap', 'ForEach'), 'kurtSampForEach': ('kurtSamp', 'ForEach'), 'exponentialTimeDecayedAvgForEach': ('exponentialTimeDecayedAvg', 'ForEach'), 'avgWeightedForEach': ('avgWeighted', 'ForEach'), 'topKWeightedForEach': ('topKWeighted', 'ForEach'), 'largestTriangleThreeBucketsForEach': ('largestTriangleThreeBuckets', 'ForEach'), 'groupArraySampleForEach': ('groupArraySample', 'ForEach'), 'quantileExactHighForEach': ('quantileExactHigh', 'ForEach'), 'windowFunnelForEach': ('windowFunnel', 'ForEach'), 'quantileExactWeightedForEach': ('quantileExactWeighted', 'ForEach'), 'quantileExactLowForEach': ('quantileExactLow', 'ForEach'), 'maxMapForEach': ('maxMap', 'ForEach'), 'welchTTestForEach': ('welchTTest', 'ForEach'), 'groupBitOrForEach': ('groupBitOr', 'ForEach'), 'quantilesForEach': ('quantiles', 'ForEach'), 'avgForEach': ('avg', 'ForEach'), 'cramersVForEach': ('cramersV', 'ForEach'), 'anyLastForEach': ('anyLast', 'ForEach'), 'quantilesGKForEach': ('quantilesGK', 'ForEach'), 'sequenceMatchForEach': ('sequenceMatch', 'ForEach'), 'quantilesTimingWeightedForEach': ('quantilesTimingWeighted', 'ForEach'), 'quantilesDeterministicForEach': ('quantilesDeterministic', 'ForEach'), 'sumCountForEach': ('sumCount', 'ForEach'), 'maxIntersectionsForEach': ('maxIntersections', 'ForEach'), 'stddevSampForEach': ('stddevSamp', 'ForEach'), 'groupBitmapAndForEach': ('groupBitmapAnd', 'ForEach'), 'groupArrayForEach': ('groupArray', 'ForEach'), 'uniqCombinedForEach': ('uniqCombined', 'ForEach'), 'skewSampForEach': ('skewSamp', 'ForEach'), 'groupBitmapForEach': ('groupBitmap', 'ForEach'), 'quantilesBFloat16ForEach': ('quantilesBFloat16', 'ForEach'), 'quantilesTDigestForEach': ('quantilesTDigest', 'ForEach'), 'sequenceCountForEach': ('sequenceCount', 'ForEach'), 'uniqCombined64ForEach': ('uniqCombined64', 'ForEach'), 'entropyForEach': ('entropy', 'ForEach'), 'quantilesTDigestWeightedForEach': ('quantilesTDigestWeighted', 'ForEach'), 'quantileExactForEach': ('quantileExact', 'ForEach'), 'categoricalInformationValueForEach': ('categoricalInformationValue', 'ForEach'), 'topKForEach': ('topK', 'ForEach'), 'groupBitAndForEach': ('groupBitAnd', 'ForEach'), 'stddevPopForEach': ('stddevPop', 'ForEach'), 'quantileBFloat16WeightedForEach': ('quantileBFloat16Weighted', 'ForEach'), 'quantileTimingForEach': ('quantileTiming', 'ForEach'), 'groupConcatForEach': ('groupConcat', 'ForEach'), 'corrForEach': ('corr', 'ForEach'), 'sumWithOverflowForEach': ('sumWithOverflow', 'ForEach'), 'last_valueForEach': ('last_value', 'ForEach'), 'argMaxForEach': ('argMax', 'ForEach'), 'quantilesTimingForEach': ('quantilesTiming', 'ForEach'), 'groupArrayMovingSumForEach': ('groupArrayMovingSum', 'ForEach'), 'deltaSumTimestampForEach': ('deltaSumTimestamp', 'ForEach'), 'quantilesBFloat16WeightedForEach': ('quantilesBFloat16Weighted', 'ForEach'), 'intervalLengthSumForEach': ('intervalLengthSum', 'ForEach'), 'sumKahanOrNull': ('sumKahan', 'OrNull'), 'quantilesExactHighOrNull': ('quantilesExactHigh', 'OrNull'), 'anyOrNull': ('any', 'OrNull'), 'uniqThetaOrNull': ('uniqTheta', 'OrNull'), 'groupBitXorOrNull': ('groupBitXor', 'OrNull'), 'theilsUOrNull': ('theilsU', 'OrNull'), 'boundingRatioOrNull': ('boundingRatio', 'OrNull'), 'histogramOrNull': ('histogram', 'OrNull'), 'kolmogorovSmirnovTestOrNull': ('kolmogorovSmirnovTest', 'OrNull'), 'groupBitmapXorOrNull': ('groupBitmapXor', 'OrNull'), 'quantileDeterministicOrNull': ('quantileDeterministic', 'OrNull'), 'varPopOrNull': ('varPop', 'OrNull'), 'first_valueOrNull': ('first_value', 'OrNull'), 'uniqHLL12OrNull': ('uniqHLL12', 'OrNull'), 'minMapOrNull': ('minMap', 'OrNull'), 'simpleLinearRegressionOrNull': ('simpleLinearRegression', 'OrNull'), 'quantilesInterpolatedWeightedOrNull': ('quantilesInterpolatedWeighted', 'OrNull'), 'maxOrNull': ('max', 'OrNull'), 'quantileTDigestWeightedOrNull': ('quantileTDigestWeighted', 'OrNull'), 'groupUniqArrayOrNull': ('groupUniqArray', 'OrNull'), 'meanZTestOrNull': ('meanZTest', 'OrNull'), 'stochasticLogisticRegressionOrNull': ('stochasticLogisticRegression', 'OrNull'), 'cramersVBiasCorrectedOrNull': ('cramersVBiasCorrected', 'OrNull'), 'covarPopOrNull': ('covarPop', 'OrNull'), 'countOrNull': ('count', 'OrNull'), 'deltaSumOrNull': ('deltaSum', 'OrNull'), 'quantileInterpolatedWeightedOrNull': ('quantileInterpolatedWeighted', 'OrNull'), 'quantileGKOrNull': ('quantileGK', 'OrNull'), 'anyHeavyOrNull': ('anyHeavy', 'OrNull'), 'uniqUpToOrNull': ('uniqUpTo', 'OrNull'), 'studentTTestOrNull': ('studentTTest', 'OrNull'), 'varSampOrNull': ('varSamp', 'OrNull'), 'groupBitmapOrOrNull': ('groupBitmapOr', 'OrNull'), 'argMinOrNull': ('argMin', 'OrNull'), 'contingencyOrNull': ('contingency', 'OrNull'), 'quantilesExactLowOrNull': ('quantilesExactLow', 'OrNull'), 'covarSampOrNull': ('covarSamp', 'OrNull'), 'mannWhitneyUTestOrNull': ('mannWhitneyUTest', 'OrNull'), 'quantilesExactWeightedOrNull': ('quantilesExactWeighted', 'OrNull'), 'quantileTimingWeightedOrNull': ('quantileTimingWeighted', 'OrNull'), 'minOrNull': ('min', 'OrNull'), 'approx_top_sumOrNull': ('approx_top_sum', 'OrNull'), 'uniqOrNull': ('uniq', 'OrNull'), 'quantilesExactOrNull': ('quantilesExact', 'OrNull'), 'retentionOrNull': ('retention', 'OrNull'), 'uniqExactOrNull': ('uniqExact', 'OrNull'), 'stochasticLinearRegressionOrNull': ('stochasticLinearRegression', 'OrNull'), 'quantilesExactExclusiveOrNull': ('quantilesExactExclusive', 'OrNull'), 'sparkBarOrNull': ('sparkBar', 'OrNull'), 'skewPopOrNull': ('skewPop', 'OrNull'), 'groupArrayMovingAvgOrNull': ('groupArrayMovingAvg', 'OrNull'), 'medianOrNull': ('median', 'OrNull'), 'groupArrayLastOrNull': ('groupArrayLast', 'OrNull'), 'kurtPopOrNull': ('kurtPop', 'OrNull'), 'exponentialMovingAverageOrNull': ('exponentialMovingAverage', 'OrNull'), 'sequenceNextNodeOrNull': ('sequenceNextNode', 'OrNull'), 'quantileOrNull': ('quantile', 'OrNull'), 'groupArrayInsertAtOrNull': ('groupArrayInsertAt', 'OrNull'), 'sumOrNull': ('sum', 'OrNull'), 'quantileBFloat16OrNull': ('quantileBFloat16', 'OrNull'), 'rankCorrOrNull': ('rankCorr', 'OrNull'), 'quantileTDigestOrNull': ('quantileTDigest', 'OrNull'), 'maxIntersectionsPositionOrNull': ('maxIntersectionsPosition', 'OrNull'), 'sumMapOrNull': ('sumMap', 'OrNull'), 'kurtSampOrNull': ('kurtSamp', 'OrNull'), 'exponentialTimeDecayedAvgOrNull': ('exponentialTimeDecayedAvg', 'OrNull'), 'avgWeightedOrNull': ('avgWeighted', 'OrNull'), 'topKWeightedOrNull': ('topKWeighted', 'OrNull'), 'largestTriangleThreeBucketsOrNull': ('largestTriangleThreeBuckets', 'OrNull'), 'groupArraySampleOrNull': ('groupArraySample', 'OrNull'), 'quantileExactHighOrNull': ('quantileExactHigh', 'OrNull'), 'windowFunnelOrNull': ('windowFunnel', 'OrNull'), 'quantileExactWeightedOrNull': ('quantileExactWeighted', 'OrNull'), 'quantileExactLowOrNull': ('quantileExactLow', 'OrNull'), 'maxMapOrNull': ('maxMap', 'OrNull'), 'welchTTestOrNull': ('welchTTest', 'OrNull'), 'groupBitOrOrNull': ('groupBitOr', 'OrNull'), 'quantilesOrNull': ('quantiles', 'OrNull'), 'avgOrNull': ('avg', 'OrNull'), 'cramersVOrNull': ('cramersV', 'OrNull'), 'anyLastOrNull': ('anyLast', 'OrNull'), 'quantilesGKOrNull': ('quantilesGK', 'OrNull'), 'sequenceMatchOrNull': ('sequenceMatch', 'OrNull'), 'quantilesTimingWeightedOrNull': ('quantilesTimingWeighted', 'OrNull'), 'quantilesDeterministicOrNull': ('quantilesDeterministic', 'OrNull'), 'sumCountOrNull': ('sumCount', 'OrNull'), 'maxIntersectionsOrNull': ('maxIntersections', 'OrNull'), 'stddevSampOrNull': ('stddevSamp', 'OrNull'), 'groupBitmapAndOrNull': ('groupBitmapAnd', 'OrNull'), 'groupArrayOrNull': ('groupArray', 'OrNull'), 'uniqCombinedOrNull': ('uniqCombined', 'OrNull'), 'skewSampOrNull': ('skewSamp', 'OrNull'), 'groupBitmapOrNull': ('groupBitmap', 'OrNull'), 'quantilesBFloat16OrNull': ('quantilesBFloat16', 'OrNull'), 'quantilesTDigestOrNull': ('quantilesTDigest', 'OrNull'), 'sequenceCountOrNull': ('sequenceCount', 'OrNull'), 'uniqCombined64OrNull': ('uniqCombined64', 'OrNull'), 'entropyOrNull': ('entropy', 'OrNull'), 'quantilesTDigestWeightedOrNull': ('quantilesTDigestWeighted', 'OrNull'), 'quantileExactOrNull': ('quantileExact', 'OrNull'), 'categoricalInformationValueOrNull': ('categoricalInformationValue', 'OrNull'), 'topKOrNull': ('topK', 'OrNull'), 'groupBitAndOrNull': ('groupBitAnd', 'OrNull'), 'stddevPopOrNull': ('stddevPop', 'OrNull'), 'quantileBFloat16WeightedOrNull': ('quantileBFloat16Weighted', 'OrNull'), 'quantileTimingOrNull': ('quantileTiming', 'OrNull'), 'groupConcatOrNull': ('groupConcat', 'OrNull'), 'corrOrNull': ('corr', 'OrNull'), 'sumWithOverflowOrNull': ('sumWithOverflow', 'OrNull'), 'last_valueOrNull': ('last_value', 'OrNull'), 'argMaxOrNull': ('argMax', 'OrNull'), 'quantilesTimingOrNull': ('quantilesTiming', 'OrNull'), 'groupArrayMovingSumOrNull': ('groupArrayMovingSum', 'OrNull'), 'deltaSumTimestampOrNull': ('deltaSumTimestamp', 'OrNull'), 'quantilesBFloat16WeightedOrNull': ('quantilesBFloat16Weighted', 'OrNull'), 'intervalLengthSumOrNull': ('intervalLengthSum', 'OrNull'), 'sumKahanArgMin': ('sumKahan', 'ArgMin'), 'quantilesExactHighArgMin': ('quantilesExactHigh', 'ArgMin'), 'anyArgMin': ('any', 'ArgMin'), 'uniqThetaArgMin': ('uniqTheta', 'ArgMin'), 'groupBitXorArgMin': ('groupBitXor', 'ArgMin'), 'theilsUArgMin': ('theilsU', 'ArgMin'), 'boundingRatioArgMin': ('boundingRatio', 'ArgMin'), 'histogramArgMin': ('histogram', 'ArgMin'), 'kolmogorovSmirnovTestArgMin': ('kolmogorovSmirnovTest', 'ArgMin'), 'groupBitmapXorArgMin': ('groupBitmapXor', 'ArgMin'), 'quantileDeterministicArgMin': ('quantileDeterministic', 'ArgMin'), 'varPopArgMin': ('varPop', 'ArgMin'), 'first_valueArgMin': ('first_value', 'ArgMin'), 'uniqHLL12ArgMin': ('uniqHLL12', 'ArgMin'), 'minMapArgMin': ('minMap', 'ArgMin'), 'simpleLinearRegressionArgMin': ('simpleLinearRegression', 'ArgMin'), 'quantilesInterpolatedWeightedArgMin': ('quantilesInterpolatedWeighted', 'ArgMin'), 'maxArgMin': ('max', 'ArgMin'), 'quantileTDigestWeightedArgMin': ('quantileTDigestWeighted', 'ArgMin'), 'groupUniqArrayArgMin': ('groupUniqArray', 'ArgMin'), 'meanZTestArgMin': ('meanZTest', 'ArgMin'), 'stochasticLogisticRegressionArgMin': ('stochasticLogisticRegression', 'ArgMin'), 'cramersVBiasCorrectedArgMin': ('cramersVBiasCorrected', 'ArgMin'), 'covarPopArgMin': ('covarPop', 'ArgMin'), 'countArgMin': ('count', 'ArgMin'), 'deltaSumArgMin': ('deltaSum', 'ArgMin'), 'quantileInterpolatedWeightedArgMin': ('quantileInterpolatedWeighted', 'ArgMin'), 'quantileGKArgMin': ('quantileGK', 'ArgMin'), 'anyHeavyArgMin': ('anyHeavy', 'ArgMin'), 'uniqUpToArgMin': ('uniqUpTo', 'ArgMin'), 'studentTTestArgMin': ('studentTTest', 'ArgMin'), 'varSampArgMin': ('varSamp', 'ArgMin'), 'groupBitmapOrArgMin': ('groupBitmapOr', 'ArgMin'), 'argMinArgMin': ('argMin', 'ArgMin'), 'contingencyArgMin': ('contingency', 'ArgMin'), 'quantilesExactLowArgMin': ('quantilesExactLow', 'ArgMin'), 'covarSampArgMin': ('covarSamp', 'ArgMin'), 'mannWhitneyUTestArgMin': ('mannWhitneyUTest', 'ArgMin'), 'quantilesExactWeightedArgMin': ('quantilesExactWeighted', 'ArgMin'), 'quantileTimingWeightedArgMin': ('quantileTimingWeighted', 'ArgMin'), 'minArgMin': ('min', 'ArgMin'), 'approx_top_sumArgMin': ('approx_top_sum', 'ArgMin'), 'uniqArgMin': ('uniq', 'ArgMin'), 'quantilesExactArgMin': ('quantilesExact', 'ArgMin'), 'retentionArgMin': ('retention', 'ArgMin'), 'uniqExactArgMin': ('uniqExact', 'ArgMin'), 'stochasticLinearRegressionArgMin': ('stochasticLinearRegression', 'ArgMin'), 'quantilesExactExclusiveArgMin': ('quantilesExactExclusive', 'ArgMin'), 'sparkBarArgMin': ('sparkBar', 'ArgMin'), 'skewPopArgMin': ('skewPop', 'ArgMin'), 'groupArrayMovingAvgArgMin': ('groupArrayMovingAvg', 'ArgMin'), 'medianArgMin': ('median', 'ArgMin'), 'groupArrayLastArgMin': ('groupArrayLast', 'ArgMin'), 'kurtPopArgMin': ('kurtPop', 'ArgMin'), 'exponentialMovingAverageArgMin': ('exponentialMovingAverage', 'ArgMin'), 'sequenceNextNodeArgMin': ('sequenceNextNode', 'ArgMin'), 'quantileArgMin': ('quantile', 'ArgMin'), 'groupArrayInsertAtArgMin': ('groupArrayInsertAt', 'ArgMin'), 'sumArgMin': ('sum', 'ArgMin'), 'quantileBFloat16ArgMin': ('quantileBFloat16', 'ArgMin'), 'rankCorrArgMin': ('rankCorr', 'ArgMin'), 'quantileTDigestArgMin': ('quantileTDigest', 'ArgMin'), 'maxIntersectionsPositionArgMin': ('maxIntersectionsPosition', 'ArgMin'), 'sumMapArgMin': ('sumMap', 'ArgMin'), 'kurtSampArgMin': ('kurtSamp', 'ArgMin'), 'exponentialTimeDecayedAvgArgMin': ('exponentialTimeDecayedAvg', 'ArgMin'), 'avgWeightedArgMin': ('avgWeighted', 'ArgMin'), 'topKWeightedArgMin': ('topKWeighted', 'ArgMin'), 'largestTriangleThreeBucketsArgMin': ('largestTriangleThreeBuckets', 'ArgMin'), 'groupArraySampleArgMin': ('groupArraySample', 'ArgMin'), 'quantileExactHighArgMin': ('quantileExactHigh', 'ArgMin'), 'windowFunnelArgMin': ('windowFunnel', 'ArgMin'), 'quantileExactWeightedArgMin': ('quantileExactWeighted', 'ArgMin'), 'quantileExactLowArgMin': ('quantileExactLow', 'ArgMin'), 'maxMapArgMin': ('maxMap', 'ArgMin'), 'welchTTestArgMin': ('welchTTest', 'ArgMin'), 'groupBitOrArgMin': ('groupBitOr', 'ArgMin'), 'quantilesArgMin': ('quantiles', 'ArgMin'), 'avgArgMin': ('avg', 'ArgMin'), 'cramersVArgMin': ('cramersV', 'ArgMin'), 'anyLastArgMin': ('anyLast', 'ArgMin'), 'quantilesGKArgMin': ('quantilesGK', 'ArgMin'), 'sequenceMatchArgMin': ('sequenceMatch', 'ArgMin'), 'quantilesTimingWeightedArgMin': ('quantilesTimingWeighted', 'ArgMin'), 'quantilesDeterministicArgMin': ('quantilesDeterministic', 'ArgMin'), 'sumCountArgMin': ('sumCount', 'ArgMin'), 'maxIntersectionsArgMin': ('maxIntersections', 'ArgMin'), 'stddevSampArgMin': ('stddevSamp', 'ArgMin'), 'groupBitmapAndArgMin': ('groupBitmapAnd', 'ArgMin'), 'groupArrayArgMin': ('groupArray', 'ArgMin'), 'uniqCombinedArgMin': ('uniqCombined', 'ArgMin'), 'skewSampArgMin': ('skewSamp', 'ArgMin'), 'groupBitmapArgMin': ('groupBitmap', 'ArgMin'), 'quantilesBFloat16ArgMin': ('quantilesBFloat16', 'ArgMin'), 'quantilesTDigestArgMin': ('quantilesTDigest', 'ArgMin'), 'sequenceCountArgMin': ('sequenceCount', 'ArgMin'), 'uniqCombined64ArgMin': ('uniqCombined64', 'ArgMin'), 'entropyArgMin': ('entropy', 'ArgMin'), 'quantilesTDigestWeightedArgMin': ('quantilesTDigestWeighted', 'ArgMin'), 'quantileExactArgMin': ('quantileExact', 'ArgMin'), 'categoricalInformationValueArgMin': ('categoricalInformationValue', 'ArgMin'), 'topKArgMin': ('topK', 'ArgMin'), 'groupBitAndArgMin': ('groupBitAnd', 'ArgMin'), 'stddevPopArgMin': ('stddevPop', 'ArgMin'), 'quantileBFloat16WeightedArgMin': ('quantileBFloat16Weighted', 'ArgMin'), 'quantileTimingArgMin': ('quantileTiming', 'ArgMin'), 'groupConcatArgMin': ('groupConcat', 'ArgMin'), 'corrArgMin': ('corr', 'ArgMin'), 'sumWithOverflowArgMin': ('sumWithOverflow', 'ArgMin'), 'last_valueArgMin': ('last_value', 'ArgMin'), 'argMaxArgMin': ('argMax', 'ArgMin'), 'quantilesTimingArgMin': ('quantilesTiming', 'ArgMin'), 'groupArrayMovingSumArgMin': ('groupArrayMovingSum', 'ArgMin'), 'deltaSumTimestampArgMin': ('deltaSumTimestamp', 'ArgMin'), 'quantilesBFloat16WeightedArgMin': ('quantilesBFloat16Weighted', 'ArgMin'), 'intervalLengthSumArgMin': ('intervalLengthSum', 'ArgMin'), 'sumKahanArgMax': ('sumKahan', 'ArgMax'), 'quantilesExactHighArgMax': ('quantilesExactHigh', 'ArgMax'), 'anyArgMax': ('any', 'ArgMax'), 'uniqThetaArgMax': ('uniqTheta', 'ArgMax'), 'groupBitXorArgMax': ('groupBitXor', 'ArgMax'), 'theilsUArgMax': ('theilsU', 'ArgMax'), 'boundingRatioArgMax': ('boundingRatio', 'ArgMax'), 'histogramArgMax': ('histogram', 'ArgMax'), 'kolmogorovSmirnovTestArgMax': ('kolmogorovSmirnovTest', 'ArgMax'), 'groupBitmapXorArgMax': ('groupBitmapXor', 'ArgMax'), 'quantileDeterministicArgMax': ('quantileDeterministic', 'ArgMax'), 'varPopArgMax': ('varPop', 'ArgMax'), 'first_valueArgMax': ('first_value', 'ArgMax'), 'uniqHLL12ArgMax': ('uniqHLL12', 'ArgMax'), 'minMapArgMax': ('minMap', 'ArgMax'), 'simpleLinearRegressionArgMax': ('simpleLinearRegression', 'ArgMax'), 'quantilesInterpolatedWeightedArgMax': ('quantilesInterpolatedWeighted', 'ArgMax'), 'maxArgMax': ('max', 'ArgMax'), 'quantileTDigestWeightedArgMax': ('quantileTDigestWeighted', 'ArgMax'), 'groupUniqArrayArgMax': ('groupUniqArray', 'ArgMax'), 'meanZTestArgMax': ('meanZTest', 'ArgMax'), 'stochasticLogisticRegressionArgMax': ('stochasticLogisticRegression', 'ArgMax'), 'cramersVBiasCorrectedArgMax': ('cramersVBiasCorrected', 'ArgMax'), 'covarPopArgMax': ('covarPop', 'ArgMax'), 'countArgMax': ('count', 'ArgMax'), 'deltaSumArgMax': ('deltaSum', 'ArgMax'), 'quantileInterpolatedWeightedArgMax': ('quantileInterpolatedWeighted', 'ArgMax'), 'quantileGKArgMax': ('quantileGK', 'ArgMax'), 'anyHeavyArgMax': ('anyHeavy', 'ArgMax'), 'uniqUpToArgMax': ('uniqUpTo', 'ArgMax'), 'studentTTestArgMax': ('studentTTest', 'ArgMax'), 'varSampArgMax': ('varSamp', 'ArgMax'), 'groupBitmapOrArgMax': ('groupBitmapOr', 'ArgMax'), 'argMinArgMax': ('argMin', 'ArgMax'), 'contingencyArgMax': ('contingency', 'ArgMax'), 'quantilesExactLowArgMax': ('quantilesExactLow', 'ArgMax'), 'covarSampArgMax': ('covarSamp', 'ArgMax'), 'mannWhitneyUTestArgMax': ('mannWhitneyUTest', 'ArgMax'), 'quantilesExactWeightedArgMax': ('quantilesExactWeighted', 'ArgMax'), 'quantileTimingWeightedArgMax': ('quantileTimingWeighted', 'ArgMax'), 'minArgMax': ('min', 'ArgMax'), 'approx_top_sumArgMax': ('approx_top_sum', 'ArgMax'), 'uniqArgMax': ('uniq', 'ArgMax'), 'quantilesExactArgMax': ('quantilesExact', 'ArgMax'), 'retentionArgMax': ('retention', 'ArgMax'), 'uniqExactArgMax': ('uniqExact', 'ArgMax'), 'stochasticLinearRegressionArgMax': ('stochasticLinearRegression', 'ArgMax'), 'quantilesExactExclusiveArgMax': ('quantilesExactExclusive', 'ArgMax'), 'sparkBarArgMax': ('sparkBar', 'ArgMax'), 'skewPopArgMax': ('skewPop', 'ArgMax'), 'groupArrayMovingAvgArgMax': ('groupArrayMovingAvg', 'ArgMax'), 'medianArgMax': ('median', 'ArgMax'), 'groupArrayLastArgMax': ('groupArrayLast', 'ArgMax'), 'kurtPopArgMax': ('kurtPop', 'ArgMax'), 'exponentialMovingAverageArgMax': ('exponentialMovingAverage', 'ArgMax'), 'sequenceNextNodeArgMax': ('sequenceNextNode', 'ArgMax'), 'quantileArgMax': ('quantile', 'ArgMax'), 'groupArrayInsertAtArgMax': ('groupArrayInsertAt', 'ArgMax'), 'sumArgMax': ('sum', 'ArgMax'), 'quantileBFloat16ArgMax': ('quantileBFloat16', 'ArgMax'), 'rankCorrArgMax': ('rankCorr', 'ArgMax'), 'quantileTDigestArgMax': ('quantileTDigest', 'ArgMax'), 'maxIntersectionsPositionArgMax': ('maxIntersectionsPosition', 'ArgMax'), 'sumMapArgMax': ('sumMap', 'ArgMax'), 'kurtSampArgMax': ('kurtSamp', 'ArgMax'), 'exponentialTimeDecayedAvgArgMax': ('exponentialTimeDecayedAvg', 'ArgMax'), 'avgWeightedArgMax': ('avgWeighted', 'ArgMax'), 'topKWeightedArgMax': ('topKWeighted', 'ArgMax'), 'largestTriangleThreeBucketsArgMax': ('largestTriangleThreeBuckets', 'ArgMax'), 'groupArraySampleArgMax': ('groupArraySample', 'ArgMax'), 'quantileExactHighArgMax': ('quantileExactHigh', 'ArgMax'), 'windowFunnelArgMax': ('windowFunnel', 'ArgMax'), 'quantileExactWeightedArgMax': ('quantileExactWeighted', 'ArgMax'), 'quantileExactLowArgMax': ('quantileExactLow', 'ArgMax'), 'maxMapArgMax': ('maxMap', 'ArgMax'), 'welchTTestArgMax': ('welchTTest', 'ArgMax'), 'groupBitOrArgMax': ('groupBitOr', 'ArgMax'), 'quantilesArgMax': ('quantiles', 'ArgMax'), 'avgArgMax': ('avg', 'ArgMax'), 'cramersVArgMax': ('cramersV', 'ArgMax'), 'anyLastArgMax': ('anyLast', 'ArgMax'), 'quantilesGKArgMax': ('quantilesGK', 'ArgMax'), 'sequenceMatchArgMax': ('sequenceMatch', 'ArgMax'), 'quantilesTimingWeightedArgMax': ('quantilesTimingWeighted', 'ArgMax'), 'quantilesDeterministicArgMax': ('quantilesDeterministic', 'ArgMax'), 'sumCountArgMax': ('sumCount', 'ArgMax'), 'maxIntersectionsArgMax': ('maxIntersections', 'ArgMax'), 'stddevSampArgMax': ('stddevSamp', 'ArgMax'), 'groupBitmapAndArgMax': ('groupBitmapAnd', 'ArgMax'), 'groupArrayArgMax': ('groupArray', 'ArgMax'), 'uniqCombinedArgMax': ('uniqCombined', 'ArgMax'), 'skewSampArgMax': ('skewSamp', 'ArgMax'), 'groupBitmapArgMax': ('groupBitmap', 'ArgMax'), 'quantilesBFloat16ArgMax': ('quantilesBFloat16', 'ArgMax'), 'quantilesTDigestArgMax': ('quantilesTDigest', 'ArgMax'), 'sequenceCountArgMax': ('sequenceCount', 'ArgMax'), 'uniqCombined64ArgMax': ('uniqCombined64', 'ArgMax'), 'entropyArgMax': ('entropy', 'ArgMax'), 'quantilesTDigestWeightedArgMax': ('quantilesTDigestWeighted', 'ArgMax'), 'quantileExactArgMax': ('quantileExact', 'ArgMax'), 'categoricalInformationValueArgMax': ('categoricalInformationValue', 'ArgMax'), 'topKArgMax': ('topK', 'ArgMax'), 'groupBitAndArgMax': ('groupBitAnd', 'ArgMax'), 'stddevPopArgMax': ('stddevPop', 'ArgMax'), 'quantileBFloat16WeightedArgMax': ('quantileBFloat16Weighted', 'ArgMax'), 'quantileTimingArgMax': ('quantileTiming', 'ArgMax'), 'groupConcatArgMax': ('groupConcat', 'ArgMax'), 'corrArgMax': ('corr', 'ArgMax'), 'sumWithOverflowArgMax': ('sumWithOverflow', 'ArgMax'), 'last_valueArgMax': ('last_value', 'ArgMax'), 'argMaxArgMax': ('argMax', 'ArgMax'), 'quantilesTimingArgMax': ('quantilesTiming', 'ArgMax'), 'groupArrayMovingSumArgMax': ('groupArrayMovingSum', 'ArgMax'), 'deltaSumTimestampArgMax': ('deltaSumTimestamp', 'ArgMax'), 'quantilesBFloat16WeightedArgMax': ('quantilesBFloat16Weighted', 'ArgMax'), 'intervalLengthSumArgMax': ('intervalLengthSum', 'ArgMax'), 'sumKahanArray': ('sumKahan', 'Array'), 'quantilesExactHighArray': ('quantilesExactHigh', 'Array'), 'anyArray': ('any', 'Array'), 'uniqThetaArray': ('uniqTheta', 'Array'), 'groupBitXorArray': ('groupBitXor', 'Array'), 'theilsUArray': ('theilsU', 'Array'), 'boundingRatioArray': ('boundingRatio', 'Array'), 'histogramArray': ('histogram', 'Array'), 'kolmogorovSmirnovTestArray': ('kolmogorovSmirnovTest', 'Array'), 'groupBitmapXorArray': ('groupBitmapXor', 'Array'), 'quantileDeterministicArray': ('quantileDeterministic', 'Array'), 'varPopArray': ('varPop', 'Array'), 'first_valueArray': ('first_value', 'Array'), 'uniqHLL12Array': ('uniqHLL12', 'Array'), 'minMapArray': ('minMap', 'Array'), 'simpleLinearRegressionArray': ('simpleLinearRegression', 'Array'), 'quantilesInterpolatedWeightedArray': ('quantilesInterpolatedWeighted', 'Array'), 'maxArray': ('max', 'Array'), 'quantileTDigestWeightedArray': ('quantileTDigestWeighted', 'Array'), 'groupUniqArrayArray': ('groupUniqArray', 'Array'), 'meanZTestArray': ('meanZTest', 'Array'), 'stochasticLogisticRegressionArray': ('stochasticLogisticRegression', 'Array'), 'cramersVBiasCorrectedArray': ('cramersVBiasCorrected', 'Array'), 'covarPopArray': ('covarPop', 'Array'), 'countArray': ('count', 'Array'), 'deltaSumArray': ('deltaSum', 'Array'), 'quantileInterpolatedWeightedArray': ('quantileInterpolatedWeighted', 'Array'), 'quantileGKArray': ('quantileGK', 'Array'), 'anyHeavyArray': ('anyHeavy', 'Array'), 'uniqUpToArray': ('uniqUpTo', 'Array'), 'studentTTestArray': ('studentTTest', 'Array'), 'varSampArray': ('varSamp', 'Array'), 'groupBitmapOrArray': ('groupBitmapOr', 'Array'), 'argMinArray': ('argMin', 'Array'), 'contingencyArray': ('contingency', 'Array'), 'quantilesExactLowArray': ('quantilesExactLow', 'Array'), 'covarSampArray': ('covarSamp', 'Array'), 'mannWhitneyUTestArray': ('mannWhitneyUTest', 'Array'), 'quantilesExactWeightedArray': ('quantilesExactWeighted', 'Array'), 'quantileTimingWeightedArray': ('quantileTimingWeighted', 'Array'), 'minArray': ('min', 'Array'), 'approx_top_sumArray': ('approx_top_sum', 'Array'), 'uniqArray': ('uniq', 'Array'), 'quantilesExactArray': ('quantilesExact', 'Array'), 'retentionArray': ('retention', 'Array'), 'uniqExactArray': ('uniqExact', 'Array'), 'stochasticLinearRegressionArray': ('stochasticLinearRegression', 'Array'), 'quantilesExactExclusiveArray': ('quantilesExactExclusive', 'Array'), 'sparkBarArray': ('sparkBar', 'Array'), 'skewPopArray': ('skewPop', 'Array'), 'groupArrayMovingAvgArray': ('groupArrayMovingAvg', 'Array'), 'medianArray': ('median', 'Array'), 'groupArrayLastArray': ('groupArrayLast', 'Array'), 'kurtPopArray': ('kurtPop', 'Array'), 'exponentialMovingAverageArray': ('exponentialMovingAverage', 'Array'), 'sequenceNextNodeArray': ('sequenceNextNode', 'Array'), 'quantileArray': ('quantile', 'Array'), 'groupArrayInsertAtArray': ('groupArrayInsertAt', 'Array'), 'sumArray': ('sum', 'Array'), 'quantileBFloat16Array': ('quantileBFloat16', 'Array'), 'rankCorrArray': ('rankCorr', 'Array'), 'quantileTDigestArray': ('quantileTDigest', 'Array'), 'maxIntersectionsPositionArray': ('maxIntersectionsPosition', 'Array'), 'sumMapArray': ('sumMap', 'Array'), 'kurtSampArray': ('kurtSamp', 'Array'), 'exponentialTimeDecayedAvgArray': ('exponentialTimeDecayedAvg', 'Array'), 'avgWeightedArray': ('avgWeighted', 'Array'), 'topKWeightedArray': ('topKWeighted', 'Array'), 'largestTriangleThreeBucketsArray': ('largestTriangleThreeBuckets', 'Array'), 'groupArraySampleArray': ('groupArraySample', 'Array'), 'quantileExactHighArray': ('quantileExactHigh', 'Array'), 'windowFunnelArray': ('windowFunnel', 'Array'), 'quantileExactWeightedArray': ('quantileExactWeighted', 'Array'), 'quantileExactLowArray': ('quantileExactLow', 'Array'), 'maxMapArray': ('maxMap', 'Array'), 'welchTTestArray': ('welchTTest', 'Array'), 'groupBitOrArray': ('groupBitOr', 'Array'), 'quantilesArray': ('quantiles', 'Array'), 'avgArray': ('avg', 'Array'), 'cramersVArray': ('cramersV', 'Array'), 'anyLastArray': ('anyLast', 'Array'), 'quantilesGKArray': ('quantilesGK', 'Array'), 'sequenceMatchArray': ('sequenceMatch', 'Array'), 'quantilesTimingWeightedArray': ('quantilesTimingWeighted', 'Array'), 'quantilesDeterministicArray': ('quantilesDeterministic', 'Array'), 'sumCountArray': ('sumCount', 'Array'), 'maxIntersectionsArray': ('maxIntersections', 'Array'), 'stddevSampArray': ('stddevSamp', 'Array'), 'groupBitmapAndArray': ('groupBitmapAnd', 'Array'), 'groupArrayArray': ('groupArray', 'Array'), 'uniqCombinedArray': ('uniqCombined', 'Array'), 'skewSampArray': ('skewSamp', 'Array'), 'groupBitmapArray': ('groupBitmap', 'Array'), 'quantilesBFloat16Array': ('quantilesBFloat16', 'Array'), 'quantilesTDigestArray': ('quantilesTDigest', 'Array'), 'sequenceCountArray': ('sequenceCount', 'Array'), 'uniqCombined64Array': ('uniqCombined64', 'Array'), 'entropyArray': ('entropy', 'Array'), 'quantilesTDigestWeightedArray': ('quantilesTDigestWeighted', 'Array'), 'quantileExactArray': ('quantileExact', 'Array'), 'categoricalInformationValueArray': ('categoricalInformationValue', 'Array'), 'topKArray': ('topK', 'Array'), 'groupBitAndArray': ('groupBitAnd', 'Array'), 'stddevPopArray': ('stddevPop', 'Array'), 'quantileBFloat16WeightedArray': ('quantileBFloat16Weighted', 'Array'), 'quantileTimingArray': ('quantileTiming', 'Array'), 'groupConcatArray': ('groupConcat', 'Array'), 'corrArray': ('corr', 'Array'), 'sumWithOverflowArray': ('sumWithOverflow', 'Array'), 'last_valueArray': ('last_value', 'Array'), 'argMaxArray': ('argMax', 'Array'), 'quantilesTimingArray': ('quantilesTiming', 'Array'), 'groupArrayMovingSumArray': ('groupArrayMovingSum', 'Array'), 'deltaSumTimestampArray': ('deltaSumTimestamp', 'Array'), 'quantilesBFloat16WeightedArray': ('quantilesBFloat16Weighted', 'Array'), 'intervalLengthSumArray': ('intervalLengthSum', 'Array'), 'sumKahanState': ('sumKahan', 'State'), 'quantilesExactHighState': ('quantilesExactHigh', 'State'), 'anyState': ('any', 'State'), 'uniqThetaState': ('uniqTheta', 'State'), 'groupBitXorState': ('groupBitXor', 'State'), 'theilsUState': ('theilsU', 'State'), 'boundingRatioState': ('boundingRatio', 'State'), 'histogramState': ('histogram', 'State'), 'kolmogorovSmirnovTestState': ('kolmogorovSmirnovTest', 'State'), 'groupBitmapXorState': ('groupBitmapXor', 'State'), 'quantileDeterministicState': ('quantileDeterministic', 'State'), 'varPopState': ('varPop', 'State'), 'first_valueState': ('first_value', 'State'), 'uniqHLL12State': ('uniqHLL12', 'State'), 'minMapState': ('minMap', 'State'), 'simpleLinearRegressionState': ('simpleLinearRegression', 'State'), 'quantilesInterpolatedWeightedState': ('quantilesInterpolatedWeighted', 'State'), 'maxState': ('max', 'State'), 'quantileTDigestWeightedState': ('quantileTDigestWeighted', 'State'), 'groupUniqArrayState': ('groupUniqArray', 'State'), 'meanZTestState': ('meanZTest', 'State'), 'stochasticLogisticRegressionState': ('stochasticLogisticRegression', 'State'), 'cramersVBiasCorrectedState': ('cramersVBiasCorrected', 'State'), 'covarPopState': ('covarPop', 'State'), 'countState': ('count', 'State'), 'deltaSumState': ('deltaSum', 'State'), 'quantileInterpolatedWeightedState': ('quantileInterpolatedWeighted', 'State'), 'quantileGKState': ('quantileGK', 'State'), 'anyHeavyState': ('anyHeavy', 'State'), 'uniqUpToState': ('uniqUpTo', 'State'), 'studentTTestState': ('studentTTest', 'State'), 'varSampState': ('varSamp', 'State'), 'groupBitmapOrState': ('groupBitmapOr', 'State'), 'argMinState': ('argMin', 'State'), 'contingencyState': ('contingency', 'State'), 'quantilesExactLowState': ('quantilesExactLow', 'State'), 'covarSampState': ('covarSamp', 'State'), 'mannWhitneyUTestState': ('mannWhitneyUTest', 'State'), 'quantilesExactWeightedState': ('quantilesExactWeighted', 'State'), 'quantileTimingWeightedState': ('quantileTimingWeighted', 'State'), 'minState': ('min', 'State'), 'approx_top_sumState': ('approx_top_sum', 'State'), 'uniqState': ('uniq', 'State'), 'quantilesExactState': ('quantilesExact', 'State'), 'retentionState': ('retention', 'State'), 'uniqExactState': ('uniqExact', 'State'), 'stochasticLinearRegressionState': ('stochasticLinearRegression', 'State'), 'quantilesExactExclusiveState': ('quantilesExactExclusive', 'State'), 'sparkBarState': ('sparkBar', 'State'), 'skewPopState': ('skewPop', 'State'), 'groupArrayMovingAvgState': ('groupArrayMovingAvg', 'State'), 'medianState': ('median', 'State'), 'groupArrayLastState': ('groupArrayLast', 'State'), 'kurtPopState': ('kurtPop', 'State'), 'exponentialMovingAverageState': ('exponentialMovingAverage', 'State'), 'sequenceNextNodeState': ('sequenceNextNode', 'State'), 'quantileState': ('quantile', 'State'), 'groupArrayInsertAtState': ('groupArrayInsertAt', 'State'), 'sumState': ('sum', 'State'), 'quantileBFloat16State': ('quantileBFloat16', 'State'), 'rankCorrState': ('rankCorr', 'State'), 'quantileTDigestState': ('quantileTDigest', 'State'), 'maxIntersectionsPositionState': ('maxIntersectionsPosition', 'State'), 'sumMapState': ('sumMap', 'State'), 'kurtSampState': ('kurtSamp', 'State'), 'exponentialTimeDecayedAvgState': ('exponentialTimeDecayedAvg', 'State'), 'avgWeightedState': ('avgWeighted', 'State'), 'topKWeightedState': ('topKWeighted', 'State'), 'largestTriangleThreeBucketsState': ('largestTriangleThreeBuckets', 'State'), 'groupArraySampleState': ('groupArraySample', 'State'), 'quantileExactHighState': ('quantileExactHigh', 'State'), 'windowFunnelState': ('windowFunnel', 'State'), 'quantileExactWeightedState': ('quantileExactWeighted', 'State'), 'quantileExactLowState': ('quantileExactLow', 'State'), 'maxMapState': ('maxMap', 'State'), 'welchTTestState': ('welchTTest', 'State'), 'groupBitOrState': ('groupBitOr', 'State'), 'quantilesState': ('quantiles', 'State'), 'avgState': ('avg', 'State'), 'cramersVState': ('cramersV', 'State'), 'anyLastState': ('anyLast', 'State'), 'quantilesGKState': ('quantilesGK', 'State'), 'sequenceMatchState': ('sequenceMatch', 'State'), 'quantilesTimingWeightedState': ('quantilesTimingWeighted', 'State'), 'quantilesDeterministicState': ('quantilesDeterministic', 'State'), 'sumCountState': ('sumCount', 'State'), 'maxIntersectionsState': ('maxIntersections', 'State'), 'stddevSampState': ('stddevSamp', 'State'), 'groupBitmapAndState': ('groupBitmapAnd', 'State'), 'groupArrayState': ('groupArray', 'State'), 'uniqCombinedState': ('uniqCombined', 'State'), 'skewSampState': ('skewSamp', 'State'), 'groupBitmapState': ('groupBitmap', 'State'), 'quantilesBFloat16State': ('quantilesBFloat16', 'State'), 'quantilesTDigestState': ('quantilesTDigest', 'State'), 'sequenceCountState': ('sequenceCount', 'State'), 'uniqCombined64State': ('uniqCombined64', 'State'), 'entropyState': ('entropy', 'State'), 'quantilesTDigestWeightedState': ('quantilesTDigestWeighted', 'State'), 'quantileExactState': ('quantileExact', 'State'), 'categoricalInformationValueState': ('categoricalInformationValue', 'State'), 'topKState': ('topK', 'State'), 'groupBitAndState': ('groupBitAnd', 'State'), 'stddevPopState': ('stddevPop', 'State'), 'quantileBFloat16WeightedState': ('quantileBFloat16Weighted', 'State'), 'quantileTimingState': ('quantileTiming', 'State'), 'groupConcatState': ('groupConcat', 'State'), 'corrState': ('corr', 'State'), 'sumWithOverflowState': ('sumWithOverflow', 'State'), 'last_valueState': ('last_value', 'State'), 'argMaxState': ('argMax', 'State'), 'quantilesTimingState': ('quantilesTiming', 'State'), 'groupArrayMovingSumState': ('groupArrayMovingSum', 'State'), 'deltaSumTimestampState': ('deltaSumTimestamp', 'State'), 'quantilesBFloat16WeightedState': ('quantilesBFloat16Weighted', 'State'), 'intervalLengthSumState': ('intervalLengthSum', 'State'), 'sumKahanMerge': ('sumKahan', 'Merge'), 'quantilesExactHighMerge': ('quantilesExactHigh', 'Merge'), 'anyMerge': ('any', 'Merge'), 'uniqThetaMerge': ('uniqTheta', 'Merge'), 'groupBitXorMerge': ('groupBitXor', 'Merge'), 'theilsUMerge': ('theilsU', 'Merge'), 'boundingRatioMerge': ('boundingRatio', 'Merge'), 'histogramMerge': ('histogram', 'Merge'), 'kolmogorovSmirnovTestMerge': ('kolmogorovSmirnovTest', 'Merge'), 'groupBitmapXorMerge': ('groupBitmapXor', 'Merge'), 'quantileDeterministicMerge': ('quantileDeterministic', 'Merge'), 'varPopMerge': ('varPop', 'Merge'), 'first_valueMerge': ('first_value', 'Merge'), 'uniqHLL12Merge': ('uniqHLL12', 'Merge'), 'minMapMerge': ('minMap', 'Merge'), 'simpleLinearRegressionMerge': ('simpleLinearRegression', 'Merge'), 'quantilesInterpolatedWeightedMerge': ('quantilesInterpolatedWeighted', 'Merge'), 'maxMerge': ('max', 'Merge'), 'quantileTDigestWeightedMerge': ('quantileTDigestWeighted', 'Merge'), 'groupUniqArrayMerge': ('groupUniqArray', 'Merge'), 'meanZTestMerge': ('meanZTest', 'Merge'), 'stochasticLogisticRegressionMerge': ('stochasticLogisticRegression', 'Merge'), 'cramersVBiasCorrectedMerge': ('cramersVBiasCorrected', 'Merge'), 'covarPopMerge': ('covarPop', 'Merge'), 'countMerge': ('count', 'Merge'), 'deltaSumMerge': ('deltaSum', 'Merge'), 'quantileInterpolatedWeightedMerge': ('quantileInterpolatedWeighted', 'Merge'), 'quantileGKMerge': ('quantileGK', 'Merge'), 'anyHeavyMerge': ('anyHeavy', 'Merge'), 'uniqUpToMerge': ('uniqUpTo', 'Merge'), 'studentTTestMerge': ('studentTTest', 'Merge'), 'varSampMerge': ('varSamp', 'Merge'), 'groupBitmapOrMerge': ('groupBitmapOr', 'Merge'), 'argMinMerge': ('argMin', 'Merge'), 'contingencyMerge': ('contingency', 'Merge'), 'quantilesExactLowMerge': ('quantilesExactLow', 'Merge'), 'covarSampMerge': ('covarSamp', 'Merge'), 'mannWhitneyUTestMerge': ('mannWhitneyUTest', 'Merge'), 'quantilesExactWeightedMerge': ('quantilesExactWeighted', 'Merge'), 'quantileTimingWeightedMerge': ('quantileTimingWeighted', 'Merge'), 'minMerge': ('min', 'Merge'), 'approx_top_sumMerge': ('approx_top_sum', 'Merge'), 'uniqMerge': ('uniq', 'Merge'), 'quantilesExactMerge': ('quantilesExact', 'Merge'), 'retentionMerge': ('retention', 'Merge'), 'uniqExactMerge': ('uniqExact', 'Merge'), 'stochasticLinearRegressionMerge': ('stochasticLinearRegression', 'Merge'), 'quantilesExactExclusiveMerge': ('quantilesExactExclusive', 'Merge'), 'sparkBarMerge': ('sparkBar', 'Merge'), 'skewPopMerge': ('skewPop', 'Merge'), 'groupArrayMovingAvgMerge': ('groupArrayMovingAvg', 'Merge'), 'medianMerge': ('median', 'Merge'), 'groupArrayLastMerge': ('groupArrayLast', 'Merge'), 'kurtPopMerge': ('kurtPop', 'Merge'), 'exponentialMovingAverageMerge': ('exponentialMovingAverage', 'Merge'), 'sequenceNextNodeMerge': ('sequenceNextNode', 'Merge'), 'quantileMerge': ('quantile', 'Merge'), 'groupArrayInsertAtMerge': ('groupArrayInsertAt', 'Merge'), 'sumMerge': ('sum', 'Merge'), 'quantileBFloat16Merge': ('quantileBFloat16', 'Merge'), 'rankCorrMerge': ('rankCorr', 'Merge'), 'quantileTDigestMerge': ('quantileTDigest', 'Merge'), 'maxIntersectionsPositionMerge': ('maxIntersectionsPosition', 'Merge'), 'sumMapMerge': ('sumMap', 'Merge'), 'kurtSampMerge': ('kurtSamp', 'Merge'), 'exponentialTimeDecayedAvgMerge': ('exponentialTimeDecayedAvg', 'Merge'), 'avgWeightedMerge': ('avgWeighted', 'Merge'), 'topKWeightedMerge': ('topKWeighted', 'Merge'), 'largestTriangleThreeBucketsMerge': ('largestTriangleThreeBuckets', 'Merge'), 'groupArraySampleMerge': ('groupArraySample', 'Merge'), 'quantileExactHighMerge': ('quantileExactHigh', 'Merge'), 'windowFunnelMerge': ('windowFunnel', 'Merge'), 'quantileExactWeightedMerge': ('quantileExactWeighted', 'Merge'), 'quantileExactLowMerge': ('quantileExactLow', 'Merge'), 'maxMapMerge': ('maxMap', 'Merge'), 'welchTTestMerge': ('welchTTest', 'Merge'), 'groupBitOrMerge': ('groupBitOr', 'Merge'), 'quantilesMerge': ('quantiles', 'Merge'), 'avgMerge': ('avg', 'Merge'), 'cramersVMerge': ('cramersV', 'Merge'), 'anyLastMerge': ('anyLast', 'Merge'), 'quantilesGKMerge': ('quantilesGK', 'Merge'), 'sequenceMatchMerge': ('sequenceMatch', 'Merge'), 'quantilesTimingWeightedMerge': ('quantilesTimingWeighted', 'Merge'), 'quantilesDeterministicMerge': ('quantilesDeterministic', 'Merge'), 'sumCountMerge': ('sumCount', 'Merge'), 'maxIntersectionsMerge': ('maxIntersections', 'Merge'), 'stddevSampMerge': ('stddevSamp', 'Merge'), 'groupBitmapAndMerge': ('groupBitmapAnd', 'Merge'), 'groupArrayMerge': ('groupArray', 'Merge'), 'uniqCombinedMerge': ('uniqCombined', 'Merge'), 'skewSampMerge': ('skewSamp', 'Merge'), 'groupBitmapMerge': ('groupBitmap', 'Merge'), 'quantilesBFloat16Merge': ('quantilesBFloat16', 'Merge'), 'quantilesTDigestMerge': ('quantilesTDigest', 'Merge'), 'sequenceCountMerge': ('sequenceCount', 'Merge'), 'uniqCombined64Merge': ('uniqCombined64', 'Merge'), 'entropyMerge': ('entropy', 'Merge'), 'quantilesTDigestWeightedMerge': ('quantilesTDigestWeighted', 'Merge'), 'quantileExactMerge': ('quantileExact', 'Merge'), 'categoricalInformationValueMerge': ('categoricalInformationValue', 'Merge'), 'topKMerge': ('topK', 'Merge'), 'groupBitAndMerge': ('groupBitAnd', 'Merge'), 'stddevPopMerge': ('stddevPop', 'Merge'), 'quantileBFloat16WeightedMerge': ('quantileBFloat16Weighted', 'Merge'), 'quantileTimingMerge': ('quantileTiming', 'Merge'), 'groupConcatMerge': ('groupConcat', 'Merge'), 'corrMerge': ('corr', 'Merge'), 'sumWithOverflowMerge': ('sumWithOverflow', 'Merge'), 'last_valueMerge': ('last_value', 'Merge'), 'argMaxMerge': ('argMax', 'Merge'), 'quantilesTimingMerge': ('quantilesTiming', 'Merge'), 'groupArrayMovingSumMerge': ('groupArrayMovingSum', 'Merge'), 'deltaSumTimestampMerge': ('deltaSumTimestamp', 'Merge'), 'quantilesBFloat16WeightedMerge': ('quantilesBFloat16Weighted', 'Merge'), 'intervalLengthSumMerge': ('intervalLengthSum', 'Merge'), 'sumKahanMap': ('sumKahan', 'Map'), 'quantilesExactHighMap': ('quantilesExactHigh', 'Map'), 'anyMap': ('any', 'Map'), 'uniqThetaMap': ('uniqTheta', 'Map'), 'groupBitXorMap': ('groupBitXor', 'Map'), 'theilsUMap': ('theilsU', 'Map'), 'boundingRatioMap': ('boundingRatio', 'Map'), 'histogramMap': ('histogram', 'Map'), 'kolmogorovSmirnovTestMap': ('kolmogorovSmirnovTest', 'Map'), 'groupBitmapXorMap': ('groupBitmapXor', 'Map'), 'quantileDeterministicMap': ('quantileDeterministic', 'Map'), 'varPopMap': ('varPop', 'Map'), 'first_valueMap': ('first_value', 'Map'), 'uniqHLL12Map': ('uniqHLL12', 'Map'), 'minMapMap': ('minMap', 'Map'), 'simpleLinearRegressionMap': ('simpleLinearRegression', 'Map'), 'quantilesInterpolatedWeightedMap': ('quantilesInterpolatedWeighted', 'Map'), 'maxMap': ('maxMap', None), 'quantileTDigestWeightedMap': ('quantileTDigestWeighted', 'Map'), 'groupUniqArrayMap': ('groupUniqArray', 'Map'), 'meanZTestMap': ('meanZTest', 'Map'), 'stochasticLogisticRegressionMap': ('stochasticLogisticRegression', 'Map'), 'cramersVBiasCorrectedMap': ('cramersVBiasCorrected', 'Map'), 'covarPopMap': ('covarPop', 'Map'), 'countMap': ('count', 'Map'), 'deltaSumMap': ('deltaSum', 'Map'), 'quantileInterpolatedWeightedMap': ('quantileInterpolatedWeighted', 'Map'), 'quantileGKMap': ('quantileGK', 'Map'), 'anyHeavyMap': ('anyHeavy', 'Map'), 'uniqUpToMap': ('uniqUpTo', 'Map'), 'studentTTestMap': ('studentTTest', 'Map'), 'varSampMap': ('varSamp', 'Map'), 'groupBitmapOrMap': ('groupBitmapOr', 'Map'), 'argMinMap': ('argMin', 'Map'), 'contingencyMap': ('contingency', 'Map'), 'quantilesExactLowMap': ('quantilesExactLow', 'Map'), 'covarSampMap': ('covarSamp', 'Map'), 'mannWhitneyUTestMap': ('mannWhitneyUTest', 'Map'), 'quantilesExactWeightedMap': ('quantilesExactWeighted', 'Map'), 'quantileTimingWeightedMap': ('quantileTimingWeighted', 'Map'), 'minMap': ('minMap', None), 'approx_top_sumMap': ('approx_top_sum', 'Map'), 'uniqMap': ('uniq', 'Map'), 'quantilesExactMap': ('quantilesExact', 'Map'), 'retentionMap': ('retention', 'Map'), 'uniqExactMap': ('uniqExact', 'Map'), 'stochasticLinearRegressionMap': ('stochasticLinearRegression', 'Map'), 'quantilesExactExclusiveMap': ('quantilesExactExclusive', 'Map'), 'sparkBarMap': ('sparkBar', 'Map'), 'skewPopMap': ('skewPop', 'Map'), 'groupArrayMovingAvgMap': ('groupArrayMovingAvg', 'Map'), 'medianMap': ('median', 'Map'), 'groupArrayLastMap': ('groupArrayLast', 'Map'), 'kurtPopMap': ('kurtPop', 'Map'), 'exponentialMovingAverageMap': ('exponentialMovingAverage', 'Map'), 'sequenceNextNodeMap': ('sequenceNextNode', 'Map'), 'quantileMap': ('quantile', 'Map'), 'groupArrayInsertAtMap': ('groupArrayInsertAt', 'Map'), 'sumMap': ('sumMap', None), 'quantileBFloat16Map': ('quantileBFloat16', 'Map'), 'rankCorrMap': ('rankCorr', 'Map'), 'quantileTDigestMap': ('quantileTDigest', 'Map'), 'maxIntersectionsPositionMap': ('maxIntersectionsPosition', 'Map'), 'sumMapMap': ('sumMap', 'Map'), 'kurtSampMap': ('kurtSamp', 'Map'), 'exponentialTimeDecayedAvgMap': ('exponentialTimeDecayedAvg', 'Map'), 'avgWeightedMap': ('avgWeighted', 'Map'), 'topKWeightedMap': ('topKWeighted', 'Map'), 'largestTriangleThreeBucketsMap': ('largestTriangleThreeBuckets', 'Map'), 'groupArraySampleMap': ('groupArraySample', 'Map'), 'quantileExactHighMap': ('quantileExactHigh', 'Map'), 'windowFunnelMap': ('windowFunnel', 'Map'), 'quantileExactWeightedMap': ('quantileExactWeighted', 'Map'), 'quantileExactLowMap': ('quantileExactLow', 'Map'), 'maxMapMap': ('maxMap', 'Map'), 'welchTTestMap': ('welchTTest', 'Map'), 'groupBitOrMap': ('groupBitOr', 'Map'), 'quantilesMap': ('quantiles', 'Map'), 'avgMap': ('avg', 'Map'), 'cramersVMap': ('cramersV', 'Map'), 'anyLastMap': ('anyLast', 'Map'), 'quantilesGKMap': ('quantilesGK', 'Map'), 'sequenceMatchMap': ('sequenceMatch', 'Map'), 'quantilesTimingWeightedMap': ('quantilesTimingWeighted', 'Map'), 'quantilesDeterministicMap': ('quantilesDeterministic', 'Map'), 'sumCountMap': ('sumCount', 'Map'), 'maxIntersectionsMap': ('maxIntersections', 'Map'), 'stddevSampMap': ('stddevSamp', 'Map'), 'groupBitmapAndMap': ('groupBitmapAnd', 'Map'), 'groupArrayMap': ('groupArray', 'Map'), 'uniqCombinedMap': ('uniqCombined', 'Map'), 'skewSampMap': ('skewSamp', 'Map'), 'groupBitmapMap': ('groupBitmap', 'Map'), 'quantilesBFloat16Map': ('quantilesBFloat16', 'Map'), 'quantilesTDigestMap': ('quantilesTDigest', 'Map'), 'sequenceCountMap': ('sequenceCount', 'Map'), 'uniqCombined64Map': ('uniqCombined64', 'Map'), 'entropyMap': ('entropy', 'Map'), 'quantilesTDigestWeightedMap': ('quantilesTDigestWeighted', 'Map'), 'quantileExactMap': ('quantileExact', 'Map'), 'categoricalInformationValueMap': ('categoricalInformationValue', 'Map'), 'topKMap': ('topK', 'Map'), 'groupBitAndMap': ('groupBitAnd', 'Map'), 'stddevPopMap': ('stddevPop', 'Map'), 'quantileBFloat16WeightedMap': ('quantileBFloat16Weighted', 'Map'), 'quantileTimingMap': ('quantileTiming', 'Map'), 'groupConcatMap': ('groupConcat', 'Map'), 'corrMap': ('corr', 'Map'), 'sumWithOverflowMap': ('sumWithOverflow', 'Map'), 'last_valueMap': ('last_value', 'Map'), 'argMaxMap': ('argMax', 'Map'), 'quantilesTimingMap': ('quantilesTiming', 'Map'), 'groupArrayMovingSumMap': ('groupArrayMovingSum', 'Map'), 'deltaSumTimestampMap': ('deltaSumTimestamp', 'Map'), 'quantilesBFloat16WeightedMap': ('quantilesBFloat16Weighted', 'Map'), 'intervalLengthSumMap': ('intervalLengthSum', 'Map'), 'sumKahanIf': ('sumKahan', 'If'), 'quantilesExactHighIf': ('quantilesExactHigh', 'If'), 'anyIf': ('any', 'If'), 'uniqThetaIf': ('uniqTheta', 'If'), 'groupBitXorIf': ('groupBitXor', 'If'), 'theilsUIf': ('theilsU', 'If'), 'boundingRatioIf': ('boundingRatio', 'If'), 'histogramIf': ('histogram', 'If'), 'kolmogorovSmirnovTestIf': ('kolmogorovSmirnovTest', 'If'), 'groupBitmapXorIf': ('groupBitmapXor', 'If'), 'quantileDeterministicIf': ('quantileDeterministic', 'If'), 'varPopIf': ('varPop', 'If'), 'first_valueIf': ('first_value', 'If'), 'uniqHLL12If': ('uniqHLL12', 'If'), 'minMapIf': ('minMap', 'If'), 'simpleLinearRegressionIf': ('simpleLinearRegression', 'If'), 'quantilesInterpolatedWeightedIf': ('quantilesInterpolatedWeighted', 'If'), 'maxIf': ('max', 'If'), 'quantileTDigestWeightedIf': ('quantileTDigestWeighted', 'If'), 'groupUniqArrayIf': ('groupUniqArray', 'If'), 'meanZTestIf': ('meanZTest', 'If'), 'stochasticLogisticRegressionIf': ('stochasticLogisticRegression', 'If'), 'cramersVBiasCorrectedIf': ('cramersVBiasCorrected', 'If'), 'covarPopIf': ('covarPop', 'If'), 'countIf': ('count', 'If'), 'deltaSumIf': ('deltaSum', 'If'), 'quantileInterpolatedWeightedIf': ('quantileInterpolatedWeighted', 'If'), 'quantileGKIf': ('quantileGK', 'If'), 'anyHeavyIf': ('anyHeavy', 'If'), 'uniqUpToIf': ('uniqUpTo', 'If'), 'studentTTestIf': ('studentTTest', 'If'), 'varSampIf': ('varSamp', 'If'), 'groupBitmapOrIf': ('groupBitmapOr', 'If'), 'argMinIf': ('argMin', 'If'), 'contingencyIf': ('contingency', 'If'), 'quantilesExactLowIf': ('quantilesExactLow', 'If'), 'covarSampIf': ('covarSamp', 'If'), 'mannWhitneyUTestIf': ('mannWhitneyUTest', 'If'), 'quantilesExactWeightedIf': ('quantilesExactWeighted', 'If'), 'quantileTimingWeightedIf': ('quantileTimingWeighted', 'If'), 'minIf': ('min', 'If'), 'approx_top_sumIf': ('approx_top_sum', 'If'), 'uniqIf': ('uniq', 'If'), 'quantilesExactIf': ('quantilesExact', 'If'), 'retentionIf': ('retention', 'If'), 'uniqExactIf': ('uniqExact', 'If'), 'stochasticLinearRegressionIf': ('stochasticLinearRegression', 'If'), 'quantilesExactExclusiveIf': ('quantilesExactExclusive', 'If'), 'sparkBarIf': ('sparkBar', 'If'), 'skewPopIf': ('skewPop', 'If'), 'groupArrayMovingAvgIf': ('groupArrayMovingAvg', 'If'), 'medianIf': ('median', 'If'), 'groupArrayLastIf': ('groupArrayLast', 'If'), 'kurtPopIf': ('kurtPop', 'If'), 'exponentialMovingAverageIf': ('exponentialMovingAverage', 'If'), 'sequenceNextNodeIf': ('sequenceNextNode', 'If'), 'quantileIf': ('quantile', 'If'), 'groupArrayInsertAtIf': ('groupArrayInsertAt', 'If'), 'sumIf': ('sum', 'If'), 'quantileBFloat16If': ('quantileBFloat16', 'If'), 'rankCorrIf': ('rankCorr', 'If'), 'quantileTDigestIf': ('quantileTDigest', 'If'), 'maxIntersectionsPositionIf': ('maxIntersectionsPosition', 'If'), 'sumMapIf': ('sumMap', 'If'), 'kurtSampIf': ('kurtSamp', 'If'), 'exponentialTimeDecayedAvgIf': ('exponentialTimeDecayedAvg', 'If'), 'avgWeightedIf': ('avgWeighted', 'If'), 'topKWeightedIf': ('topKWeighted', 'If'), 'largestTriangleThreeBucketsIf': ('largestTriangleThreeBuckets', 'If'), 'groupArraySampleIf': ('groupArraySample', 'If'), 'quantileExactHighIf': ('quantileExactHigh', 'If'), 'windowFunnelIf': ('windowFunnel', 'If'), 'quantileExactWeightedIf': ('quantileExactWeighted', 'If'), 'quantileExactLowIf': ('quantileExactLow', 'If'), 'maxMapIf': ('maxMap', 'If'), 'welchTTestIf': ('welchTTest', 'If'), 'groupBitOrIf': ('groupBitOr', 'If'), 'quantilesIf': ('quantiles', 'If'), 'avgIf': ('avg', 'If'), 'cramersVIf': ('cramersV', 'If'), 'anyLastIf': ('anyLast', 'If'), 'quantilesGKIf': ('quantilesGK', 'If'), 'sequenceMatchIf': ('sequenceMatch', 'If'), 'quantilesTimingWeightedIf': ('quantilesTimingWeighted', 'If'), 'quantilesDeterministicIf': ('quantilesDeterministic', 'If'), 'sumCountIf': ('sumCount', 'If'), 'maxIntersectionsIf': ('maxIntersections', 'If'), 'stddevSampIf': ('stddevSamp', 'If'), 'groupBitmapAndIf': ('groupBitmapAnd', 'If'), 'groupArrayIf': ('groupArray', 'If'), 'uniqCombinedIf': ('uniqCombined', 'If'), 'skewSampIf': ('skewSamp', 'If'), 'groupBitmapIf': ('groupBitmap', 'If'), 'quantilesBFloat16If': ('quantilesBFloat16', 'If'), 'quantilesTDigestIf': ('quantilesTDigest', 'If'), 'sequenceCountIf': ('sequenceCount', 'If'), 'uniqCombined64If': ('uniqCombined64', 'If'), 'entropyIf': ('entropy', 'If'), 'quantilesTDigestWeightedIf': ('quantilesTDigestWeighted', 'If'), 'quantileExactIf': ('quantileExact', 'If'), 'categoricalInformationValueIf': ('categoricalInformationValue', 'If'), 'topKIf': ('topK', 'If'), 'groupBitAndIf': ('groupBitAnd', 'If'), 'stddevPopIf': ('stddevPop', 'If'), 'quantileBFloat16WeightedIf': ('quantileBFloat16Weighted', 'If'), 'quantileTimingIf': ('quantileTiming', 'If'), 'groupConcatIf': ('groupConcat', 'If'), 'corrIf': ('corr', 'If'), 'sumWithOverflowIf': ('sumWithOverflow', 'If'), 'last_valueIf': ('last_value', 'If'), 'argMaxIf': ('argMax', 'If'), 'quantilesTimingIf': ('quantilesTiming', 'If'), 'groupArrayMovingSumIf': ('groupArrayMovingSum', 'If'), 'deltaSumTimestampIf': ('deltaSumTimestamp', 'If'), 'quantilesBFloat16WeightedIf': ('quantilesBFloat16Weighted', 'If'), 'intervalLengthSumIf': ('intervalLengthSum', 'If'), 'sumKahan': ('sumKahan', None), 'quantilesExactHigh': ('quantilesExactHigh', None), 'any': ('any', None), 'uniqTheta': ('uniqTheta', None), 'groupBitXor': ('groupBitXor', None), 'theilsU': ('theilsU', None), 'boundingRatio': ('boundingRatio', None), 'histogram': ('histogram', None), 'kolmogorovSmirnovTest': ('kolmogorovSmirnovTest', None), 'groupBitmapXor': ('groupBitmapXor', None), 'quantileDeterministic': ('quantileDeterministic', None), 'varPop': ('varPop', None), 'first_value': ('first_value', None), 'uniqHLL12': ('uniqHLL12', None), 'simpleLinearRegression': ('simpleLinearRegression', None), 'quantilesInterpolatedWeighted': ('quantilesInterpolatedWeighted', None), 'max': ('max', None), 'quantileTDigestWeighted': ('quantileTDigestWeighted', None), 'groupUniqArray': ('groupUniqArray', None), 'meanZTest': ('meanZTest', None), 'stochasticLogisticRegression': ('stochasticLogisticRegression', None), 'cramersVBiasCorrected': ('cramersVBiasCorrected', None), 'covarPop': ('covarPop', None), 'count': ('count', None), 'deltaSum': ('deltaSum', None), 'quantileInterpolatedWeighted': ('quantileInterpolatedWeighted', None), 'quantileGK': ('quantileGK', None), 'anyHeavy': ('anyHeavy', None), 'uniqUpTo': ('uniqUpTo', None), 'studentTTest': ('studentTTest', None), 'varSamp': ('varSamp', None), 'groupBitmapOr': ('groupBitmapOr', None), 'argMin': ('argMin', None), 'contingency': ('contingency', None), 'quantilesExactLow': ('quantilesExactLow', None), 'covarSamp': ('covarSamp', None), 'mannWhitneyUTest': ('mannWhitneyUTest', None), 'quantilesExactWeighted': ('quantilesExactWeighted', None), 'quantileTimingWeighted': ('quantileTimingWeighted', None), 'min': ('min', None), 'approx_top_sum': ('approx_top_sum', None), 'uniq': ('uniq', None), 'quantilesExact': ('quantilesExact', None), 'retention': ('retention', None), 'uniqExact': ('uniqExact', None), 'stochasticLinearRegression': ('stochasticLinearRegression', None), 'quantilesExactExclusive': ('quantilesExactExclusive', None), 'sparkBar': ('sparkBar', None), 'skewPop': ('skewPop', None), 'groupArrayMovingAvg': ('groupArrayMovingAvg', None), 'median': ('median', None), 'groupArrayLast': ('groupArrayLast', None), 'kurtPop': ('kurtPop', None), 'exponentialMovingAverage': ('exponentialMovingAverage', None), 'sequenceNextNode': ('sequenceNextNode', None), 'quantile': ('quantile', None), 'groupArrayInsertAt': ('groupArrayInsertAt', None), 'sum': ('sum', None), 'quantileBFloat16': ('quantileBFloat16', None), 'rankCorr': ('rankCorr', None), 'quantileTDigest': ('quantileTDigest', None), 'maxIntersectionsPosition': ('maxIntersectionsPosition', None), 'kurtSamp': ('kurtSamp', None), 'exponentialTimeDecayedAvg': ('exponentialTimeDecayedAvg', None), 'avgWeighted': ('avgWeighted', None), 'topKWeighted': ('topKWeighted', None), 'largestTriangleThreeBuckets': ('largestTriangleThreeBuckets', None), 'groupArraySample': ('groupArraySample', None), 'quantileExactHigh': ('quantileExactHigh', None), 'windowFunnel': ('windowFunnel', None), 'quantileExactWeighted': ('quantileExactWeighted', None), 'quantileExactLow': ('quantileExactLow', None), 'welchTTest': ('welchTTest', None), 'groupBitOr': ('groupBitOr', None), 'quantiles': ('quantiles', None), 'avg': ('avg', None), 'cramersV': ('cramersV', None), 'anyLast': ('anyLast', None), 'quantilesGK': ('quantilesGK', None), 'sequenceMatch': ('sequenceMatch', None), 'quantilesTimingWeighted': ('quantilesTimingWeighted', None), 'quantilesDeterministic': ('quantilesDeterministic', None), 'sumCount': ('sumCount', None), 'maxIntersections': ('maxIntersections', None), 'stddevSamp': ('stddevSamp', None), 'groupBitmapAnd': ('groupBitmapAnd', None), 'groupArray': ('groupArray', None), 'uniqCombined': ('uniqCombined', None), 'skewSamp': ('skewSamp', None), 'groupBitmap': ('groupBitmap', None), 'quantilesBFloat16': ('quantilesBFloat16', None), 'quantilesTDigest': ('quantilesTDigest', None), 'sequenceCount': ('sequenceCount', None), 'uniqCombined64': ('uniqCombined64', None), 'entropy': ('entropy', None), 'quantilesTDigestWeighted': ('quantilesTDigestWeighted', None), 'quantileExact': ('quantileExact', None), 'categoricalInformationValue': ('categoricalInformationValue', None), 'topK': ('topK', None), 'groupBitAnd': ('groupBitAnd', None), 'stddevPop': ('stddevPop', None), 'quantileBFloat16Weighted': ('quantileBFloat16Weighted', None), 'quantileTiming': ('quantileTiming', None), 'groupConcat': ('groupConcat', None), 'corr': ('corr', None), 'sumWithOverflow': ('sumWithOverflow', None), 'last_value': ('last_value', None), 'argMax': ('argMax', None), 'quantilesTiming': ('quantilesTiming', None), 'groupArrayMovingSum': ('groupArrayMovingSum', None), 'deltaSumTimestamp': ('deltaSumTimestamp', None), 'quantilesBFloat16Weighted': ('quantilesBFloat16Weighted', None), 'intervalLengthSum': ('intervalLengthSum', None)}
FUNCTION_PARSERS =
{'ARG_MAX': <function Parser.<dictcomp>.<lambda>>, 'ARGMAX': <function Parser.<dictcomp>.<lambda>>, 'MAX_BY': <function Parser.<dictcomp>.<lambda>>, 'ARG_MIN': <function Parser.<dictcomp>.<lambda>>, 'ARGMIN': <function Parser.<dictcomp>.<lambda>>, 'MIN_BY': <function Parser.<dictcomp>.<lambda>>, 'CAST': <function Parser.<lambda>>, 'CEIL': <function Parser.<lambda>>, 'CONVERT': <function Parser.<lambda>>, 'CHAR': <function Parser.<lambda>>, 'CHR': <function Parser.<lambda>>, 'DECODE': <function Parser.<lambda>>, 'EXTRACT': <function Parser.<lambda>>, 'FLOOR': <function Parser.<lambda>>, 'GAP_FILL': <function Parser.<lambda>>, 'INITCAP': <function Parser.<lambda>>, 'JSON_OBJECT': <function Parser.<lambda>>, 'JSON_OBJECTAGG': <function Parser.<lambda>>, 'JSON_TABLE': <function Parser.<lambda>>, 'NORMALIZE': <function Parser.<lambda>>, 'OPENJSON': <function Parser.<lambda>>, 'OVERLAY': <function Parser.<lambda>>, 'POSITION': <function Parser.<lambda>>, 'SAFE_CAST': <function Parser.<lambda>>, 'STRING_AGG': <function Parser.<lambda>>, 'SUBSTRING': <function Parser.<lambda>>, 'TRIM': <function Parser.<lambda>>, 'TRY_CAST': <function Parser.<lambda>>, 'TRY_CONVERT': <function Parser.<lambda>>, 'XMLELEMENT': <function Parser.<lambda>>, 'XMLTABLE': <function Parser.<lambda>>, 'ARRAYJOIN': <function ClickHouseParser.<lambda>>, 'GROUPCONCAT': <function ClickHouseParser.<lambda>>, 'QUANTILE': <function ClickHouseParser.<lambda>>, 'MEDIAN': <function ClickHouseParser.<lambda>>, 'COLUMNS': <function ClickHouseParser.<lambda>>, 'TUPLE': <function ClickHouseParser.<lambda>>, 'AND': <function ClickHouseParser.<lambda>>, 'OR': <function ClickHouseParser.<lambda>>, 'XOR': <function ClickHouseParser.<lambda>>}
PROPERTY_PARSERS =
{'ALLOWED_VALUES': <function Parser.<lambda>>, 'ALGORITHM': <function Parser.<lambda>>, 'AUTO': <function Parser.<lambda>>, 'AUTO_INCREMENT': <function Parser.<lambda>>, 'BACKUP': <function Parser.<lambda>>, 'BLOCKCOMPRESSION': <function Parser.<lambda>>, 'CHARSET': <function Parser.<lambda>>, 'CHARACTER SET': <function Parser.<lambda>>, 'CHECKSUM': <function Parser.<lambda>>, 'CLUSTER BY': <function Parser.<lambda>>, 'CLUSTERED': <function Parser.<lambda>>, 'COLLATE': <function Parser.<lambda>>, 'COMMENT': <function Parser.<lambda>>, 'CONTAINS': <function Parser.<lambda>>, 'COPY': <function Parser.<lambda>>, 'DATABLOCKSIZE': <function Parser.<lambda>>, 'DATA_DELETION': <function Parser.<lambda>>, 'DEFINER': <function Parser.<lambda>>, 'DETERMINISTIC': <function Parser.<lambda>>, 'DISTRIBUTED': <function Parser.<lambda>>, 'DUPLICATE': <function Parser.<lambda>>, 'DISTKEY': <function Parser.<lambda>>, 'DISTSTYLE': <function Parser.<lambda>>, 'EMPTY': <function Parser.<lambda>>, 'ENGINE': <function ClickHouseParser.<lambda>>, 'ENVIRONMENT': <function Parser.<lambda>>, 'HANDLER': <function Parser.<lambda>>, 'EXECUTE': <function Parser.<lambda>>, 'EXTERNAL': <function Parser.<lambda>>, 'FALLBACK': <function Parser.<lambda>>, 'FORMAT': <function Parser.<lambda>>, 'FREESPACE': <function Parser.<lambda>>, 'GLOBAL': <function Parser.<lambda>>, 'HEAP': <function Parser.<lambda>>, 'ICEBERG': <function Parser.<lambda>>, 'IMMUTABLE': <function Parser.<lambda>>, 'INHERITS': <function Parser.<lambda>>, 'INPUT': <function Parser.<lambda>>, 'JOURNAL': <function Parser.<lambda>>, 'LANGUAGE': <function Parser.<lambda>>, 'LAYOUT': <function Parser.<lambda>>, 'LIFETIME': <function Parser.<lambda>>, 'LIKE': <function Parser.<lambda>>, 'LOCATION': <function Parser.<lambda>>, 'LOCK': <function Parser.<lambda>>, 'LOCKING': <function Parser.<lambda>>, 'LOG': <function Parser.<lambda>>, 'MATERIALIZED': <function Parser.<lambda>>, 'MERGEBLOCKRATIO': <function Parser.<lambda>>, 'MODIFIES': <function Parser.<lambda>>, 'MULTISET': <function Parser.<lambda>>, 'NO': <function Parser.<lambda>>, 'ON': <function Parser.<lambda>>, 'ORDER BY': <function Parser.<lambda>>, 'OUTPUT': <function Parser.<lambda>>, 'PARTITION': <function Parser.<lambda>>, 'PARTITION BY': <function Parser.<lambda>>, 'PARTITIONED BY': <function Parser.<lambda>>, 'PARTITIONED_BY': <function Parser.<lambda>>, 'PRIMARY KEY': <function Parser.<lambda>>, 'RANGE': <function Parser.<lambda>>, 'READS': <function Parser.<lambda>>, 'REMOTE': <function Parser.<lambda>>, 'RETURNS': <function Parser.<lambda>>, 'STRICT': <function Parser.<lambda>>, 'STREAMING': <function Parser.<lambda>>, 'ROW': <function Parser.<lambda>>, 'ROW_FORMAT': <function Parser.<lambda>>, 'SAMPLE': <function Parser.<lambda>>, 'SECURE': <function Parser.<lambda>>, 'SECURITY': <function Parser.<lambda>>, 'SQL SECURITY': <function Parser.<lambda>>, 'SET': <function Parser.<lambda>>, 'SETTINGS': <function Parser.<lambda>>, 'SHARING': <function Parser.<lambda>>, 'SORTKEY': <function Parser.<lambda>>, 'SOURCE': <function Parser.<lambda>>, 'STABLE': <function Parser.<lambda>>, 'STORED': <function Parser.<lambda>>, 'SYSTEM_VERSIONING': <function Parser.<lambda>>, 'TBLPROPERTIES': <function Parser.<lambda>>, 'TEMP': <function Parser.<lambda>>, 'TEMPORARY': <function Parser.<lambda>>, 'TO': <function Parser.<lambda>>, 'TRANSIENT': <function Parser.<lambda>>, 'TRANSFORM': <function Parser.<lambda>>, 'TTL': <function Parser.<lambda>>, 'USING': <function Parser.<lambda>>, 'UNLOGGED': <function Parser.<lambda>>, 'VOLATILE': <function Parser.<lambda>>, 'WITH': <function Parser.<lambda>>, 'UUID': <function ClickHouseParser.<lambda>>}
NO_PAREN_FUNCTION_PARSERS =
{'CASE': <function Parser.<lambda>>, 'CONNECT_BY_ROOT': <function Parser.<lambda>>, 'IF': <function Parser.<lambda>>}
NO_PAREN_FUNCTIONS =
{<TokenType.CURRENT_DATE: 245>: <class 'sqlglot.expressions.temporal.CurrentDate'>, <TokenType.CURRENT_DATETIME: 246>: <class 'sqlglot.expressions.temporal.CurrentDate'>, <TokenType.CURRENT_TIME: 248>: <class 'sqlglot.expressions.temporal.CurrentTime'>, <TokenType.CURRENT_USER: 250>: <class 'sqlglot.expressions.functions.CurrentUser'>, <TokenType.CURRENT_ROLE: 252>: <class 'sqlglot.expressions.functions.CurrentRole'>}
RANGE_PARSERS =
{<TokenType.AT_GT: 55>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.BETWEEN: 229>: <function Parser.<lambda>>, <TokenType.GLOB: 286>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.ILIKE: 294>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.IN: 295>: <function Parser.<lambda>>, <TokenType.IRLIKE: 306>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.IS: 307>: <function Parser.<lambda>>, <TokenType.LIKE: 317>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.LT_AT: 54>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.OVERLAPS: 348>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.RLIKE: 378>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.SIMILAR_TO: 393>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.FOR: 278>: <function Parser.<lambda>>, <TokenType.QMARK_AMP: 67>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.QMARK_PIPE: 68>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.HASH_DASH: 69>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.ADJACENT: 64>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.OPERATOR: 339>: <function Parser.<lambda>>, <TokenType.AMP_LT: 62>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.AMP_GT: 63>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.GLOBAL: 287>: <function ClickHouseParser.<lambda>>}
COLUMN_OPERATORS =
{<TokenType.DOT: 8>: None, <TokenType.DOTCOLON: 12>: <function Parser.<lambda>>, <TokenType.DCOLON: 14>: <function Parser.<lambda>>, <TokenType.ARROW: 45>: <function Parser.<lambda>>, <TokenType.DARROW: 46>: <function Parser.<lambda>>, <TokenType.HASH_ARROW: 49>: <function Parser.<lambda>>, <TokenType.DHASH_ARROW: 50>: <function Parser.<lambda>>, <TokenType.DOTCARET: 13>: <function ClickHouseParser.<lambda>>}
JOIN_KINDS =
{<TokenType.SEMI: 386>, <TokenType.STRAIGHT_JOIN: 400>, <TokenType.OUTER: 346>, <TokenType.ALL: 219>, <TokenType.ANTI: 220>, <TokenType.ANY: 221>, <TokenType.ARRAY: 223>, <TokenType.ASOF: 225>, <TokenType.INNER: 298>, <TokenType.CROSS: 243>}
TABLE_ALIAS_TOKENS =
{<TokenType.SESSION: 58>, <TokenType.SESSION_USER: 60>, <TokenType.IDENTIFIER: 78>, <TokenType.DATABASE: 79>, <TokenType.COLUMN: 80>, <TokenType.SCHEMA: 82>, <TokenType.TABLE: 83>, <TokenType.WAREHOUSE: 84>, <TokenType.STAGE: 85>, <TokenType.STREAM: 86>, <TokenType.STREAMLIT: 87>, <TokenType.VAR: 88>, <TokenType.BIT: 96>, <TokenType.BOOLEAN: 97>, <TokenType.TINYINT: 98>, <TokenType.UTINYINT: 99>, <TokenType.SMALLINT: 100>, <TokenType.USMALLINT: 101>, <TokenType.MEDIUMINT: 102>, <TokenType.UMEDIUMINT: 103>, <TokenType.INT: 104>, <TokenType.UINT: 105>, <TokenType.BIGINT: 106>, <TokenType.UBIGINT: 107>, <TokenType.BIGNUM: 108>, <TokenType.INT128: 109>, <TokenType.UINT128: 110>, <TokenType.INT256: 111>, <TokenType.UINT256: 112>, <TokenType.FLOAT: 113>, <TokenType.DOUBLE: 114>, <TokenType.UDOUBLE: 115>, <TokenType.DECIMAL: 116>, <TokenType.DECIMAL32: 117>, <TokenType.DECIMAL64: 118>, <TokenType.DECIMAL128: 119>, <TokenType.DECIMAL256: 120>, <TokenType.DECFLOAT: 121>, <TokenType.UDECIMAL: 122>, <TokenType.BIGDECIMAL: 123>, <TokenType.CHAR: 124>, <TokenType.NCHAR: 125>, <TokenType.VARCHAR: 126>, <TokenType.NVARCHAR: 127>, <TokenType.BPCHAR: 128>, <TokenType.TEXT: 129>, <TokenType.MEDIUMTEXT: 130>, <TokenType.LONGTEXT: 131>, <TokenType.BLOB: 132>, <TokenType.MEDIUMBLOB: 133>, <TokenType.LONGBLOB: 134>, <TokenType.TINYBLOB: 135>, <TokenType.TINYTEXT: 136>, <TokenType.NAME: 137>, <TokenType.BINARY: 138>, <TokenType.VARBINARY: 139>, <TokenType.JSON: 140>, <TokenType.JSONB: 141>, <TokenType.TIME: 142>, <TokenType.TIMETZ: 143>, <TokenType.TIME_NS: 144>, <TokenType.TIMESTAMP: 145>, <TokenType.TIMESTAMPTZ: 146>, <TokenType.TIMESTAMPLTZ: 147>, <TokenType.TIMESTAMPNTZ: 148>, <TokenType.TIMESTAMP_S: 149>, <TokenType.TIMESTAMP_MS: 150>, <TokenType.TIMESTAMP_NS: 151>, <TokenType.DATETIME: 152>, <TokenType.DATETIME2: 153>, <TokenType.DATETIME64: 154>, <TokenType.SMALLDATETIME: 155>, <TokenType.DATE: 156>, <TokenType.DATE32: 157>, <TokenType.INT4RANGE: 158>, <TokenType.INT4MULTIRANGE: 159>, <TokenType.INT8RANGE: 160>, <TokenType.INT8MULTIRANGE: 161>, <TokenType.NUMRANGE: 162>, <TokenType.NUMMULTIRANGE: 163>, <TokenType.TSRANGE: 164>, <TokenType.TSMULTIRANGE: 165>, <TokenType.TSTZRANGE: 166>, <TokenType.TSTZMULTIRANGE: 167>, <TokenType.DATERANGE: 168>, <TokenType.DATEMULTIRANGE: 169>, <TokenType.UUID: 170>, <TokenType.GEOGRAPHY: 171>, <TokenType.GEOGRAPHYPOINT: 172>, <TokenType.NULLABLE: 173>, <TokenType.GEOMETRY: 174>, <TokenType.POINT: 175>, <TokenType.RING: 176>, <TokenType.LINESTRING: 177>, <TokenType.LOCALTIME: 178>, <TokenType.LOCALTIMESTAMP: 179>, <TokenType.MULTILINESTRING: 181>, <TokenType.POLYGON: 182>, <TokenType.MULTIPOLYGON: 183>, <TokenType.HLLSKETCH: 184>, <TokenType.HSTORE: 185>, <TokenType.SUPER: 186>, <TokenType.SERIAL: 187>, <TokenType.SMALLSERIAL: 188>, <TokenType.BIGSERIAL: 189>, <TokenType.XML: 190>, <TokenType.YEAR: 191>, <TokenType.USERDEFINED: 192>, <TokenType.MONEY: 193>, <TokenType.SMALLMONEY: 194>, <TokenType.ROWVERSION: 195>, <TokenType.IMAGE: 196>, <TokenType.VARIANT: 197>, <TokenType.OBJECT: 198>, <TokenType.INET: 199>, <TokenType.IPADDRESS: 200>, <TokenType.IPPREFIX: 201>, <TokenType.IPV4: 202>, <TokenType.IPV6: 203>, <TokenType.ENUM: 204>, <TokenType.ENUM8: 205>, <TokenType.ENUM16: 206>, <TokenType.FIXEDSTRING: 207>, <TokenType.LOWCARDINALITY: 208>, <TokenType.NESTED: 209>, <TokenType.AGGREGATEFUNCTION: 210>, <TokenType.SIMPLEAGGREGATEFUNCTION: 211>, <TokenType.TDIGEST: 212>, <TokenType.UNKNOWN: 213>, <TokenType.VECTOR: 214>, <TokenType.DYNAMIC: 215>, <TokenType.VOID: 216>, <TokenType.APPLY: 222>, <TokenType.ASC: 224>, <TokenType.ATTACH: 226>, <TokenType.AUTO_INCREMENT: 227>, <TokenType.BEGIN: 228>, <TokenType.CACHE: 231>, <TokenType.CASE: 232>, <TokenType.COLLATE: 235>, <TokenType.COMMAND: 236>, <TokenType.COMMENT: 237>, <TokenType.COMMIT: 238>, <TokenType.CONSTRAINT: 240>, <TokenType.COPY: 241>, <TokenType.CUBE: 244>, <TokenType.CURRENT_DATE: 245>, <TokenType.CURRENT_DATETIME: 246>, <TokenType.CURRENT_SCHEMA: 247>, <TokenType.CURRENT_TIME: 248>, <TokenType.CURRENT_TIMESTAMP: 249>, <TokenType.CURRENT_USER: 250>, <TokenType.CURRENT_ROLE: 252>, <TokenType.CURRENT_CATALOG: 253>, <TokenType.DEFAULT: 255>, <TokenType.DELETE: 256>, <TokenType.DESC: 257>, <TokenType.DESCRIBE: 258>, <TokenType.DETACH: 259>, <TokenType.DICTIONARY: 260>, <TokenType.DIV: 263>, <TokenType.END: 266>, <TokenType.ESCAPE: 267>, <TokenType.EXECUTE: 269>, <TokenType.EXISTS: 270>, <TokenType.FALSE: 271>, <TokenType.FILE: 273>, <TokenType.FILE_FORMAT: 274>, <TokenType.FILTER: 275>, <TokenType.FIRST: 277>, <TokenType.FOREIGN_KEY: 280>, <TokenType.FUNCTION: 284>, <TokenType.GET: 285>, <TokenType.INDEX: 296>, <TokenType.INTERVAL: 303>, <TokenType.IS: 307>, <TokenType.ISNULL: 308>, <TokenType.KEEP: 311>, <TokenType.KILL: 313>, <TokenType.LIMIT: 318>, <TokenType.LIST: 319>, <TokenType.LOAD: 320>, <TokenType.MAP: 322>, <TokenType.MATCH: 323>, <TokenType.MERGE: 327>, <TokenType.MODEL: 329>, <TokenType.NEXT: 331>, <TokenType.NOTHING: 332>, <TokenType.NULL: 334>, <TokenType.OBJECT_IDENTIFIER: 335>, <TokenType.OFFSET: 336>, <TokenType.OPERATOR: 339>, <TokenType.ORDINALITY: 343>, <TokenType.INOUT: 345>, <TokenType.OVER: 347>, <TokenType.OVERLAPS: 348>, <TokenType.OVERWRITE: 349>, <TokenType.PARTITION: 351>, <TokenType.PERCENT: 353>, <TokenType.PIVOT: 354>, <TokenType.PRAGMA: 359>, <TokenType.PROCEDURE: 362>, <TokenType.PSEUDO_TYPE: 364>, <TokenType.PUT: 365>, <TokenType.RANGE: 369>, <TokenType.RECURSIVE: 370>, <TokenType.REFRESH: 371>, <TokenType.RENAME: 372>, <TokenType.REPLACE: 373>, <TokenType.REFERENCES: 376>, <TokenType.ROLLUP: 381>, <TokenType.ROW: 382>, <TokenType.ROWS: 383>, <TokenType.SEQUENCE: 388>, <TokenType.SET: 390>, <TokenType.SHOW: 392>, <TokenType.SOME: 394>, <TokenType.STORAGE_INTEGRATION: 399>, <TokenType.STRAIGHT_JOIN: 400>, <TokenType.STRUCT: 401>, <TokenType.TAG: 404>, <TokenType.TEMPORARY: 405>, <TokenType.TOP: 406>, <TokenType.TRUE: 408>, <TokenType.TRUNCATE: 409>, <TokenType.TRIGGER: 410>, <TokenType.TYPE: 411>, <TokenType.UNNEST: 414>, <TokenType.UNPIVOT: 415>, <TokenType.UPDATE: 416>, <TokenType.USE: 417>, <TokenType.VIEW: 421>, <TokenType.SEMANTIC_VIEW: 422>, <TokenType.VOLATILE: 423>, <TokenType.UNIQUE: 429>, <TokenType.SINK: 436>, <TokenType.SOURCE: 437>, <TokenType.ANALYZE: 438>, <TokenType.NAMESPACE: 439>, <TokenType.EXPORT: 440>}
ALIAS_TOKENS =
{<TokenType.SESSION: 58>, <TokenType.SESSION_USER: 60>, <TokenType.IDENTIFIER: 78>, <TokenType.DATABASE: 79>, <TokenType.COLUMN: 80>, <TokenType.SCHEMA: 82>, <TokenType.TABLE: 83>, <TokenType.WAREHOUSE: 84>, <TokenType.STAGE: 85>, <TokenType.STREAM: 86>, <TokenType.STREAMLIT: 87>, <TokenType.VAR: 88>, <TokenType.BIT: 96>, <TokenType.BOOLEAN: 97>, <TokenType.TINYINT: 98>, <TokenType.UTINYINT: 99>, <TokenType.SMALLINT: 100>, <TokenType.USMALLINT: 101>, <TokenType.MEDIUMINT: 102>, <TokenType.UMEDIUMINT: 103>, <TokenType.INT: 104>, <TokenType.UINT: 105>, <TokenType.BIGINT: 106>, <TokenType.UBIGINT: 107>, <TokenType.BIGNUM: 108>, <TokenType.INT128: 109>, <TokenType.UINT128: 110>, <TokenType.INT256: 111>, <TokenType.UINT256: 112>, <TokenType.FLOAT: 113>, <TokenType.DOUBLE: 114>, <TokenType.UDOUBLE: 115>, <TokenType.DECIMAL: 116>, <TokenType.DECIMAL32: 117>, <TokenType.DECIMAL64: 118>, <TokenType.DECIMAL128: 119>, <TokenType.DECIMAL256: 120>, <TokenType.DECFLOAT: 121>, <TokenType.UDECIMAL: 122>, <TokenType.BIGDECIMAL: 123>, <TokenType.CHAR: 124>, <TokenType.NCHAR: 125>, <TokenType.VARCHAR: 126>, <TokenType.NVARCHAR: 127>, <TokenType.BPCHAR: 128>, <TokenType.TEXT: 129>, <TokenType.MEDIUMTEXT: 130>, <TokenType.LONGTEXT: 131>, <TokenType.BLOB: 132>, <TokenType.MEDIUMBLOB: 133>, <TokenType.LONGBLOB: 134>, <TokenType.TINYBLOB: 135>, <TokenType.TINYTEXT: 136>, <TokenType.NAME: 137>, <TokenType.BINARY: 138>, <TokenType.VARBINARY: 139>, <TokenType.JSON: 140>, <TokenType.JSONB: 141>, <TokenType.TIME: 142>, <TokenType.TIMETZ: 143>, <TokenType.TIME_NS: 144>, <TokenType.TIMESTAMP: 145>, <TokenType.TIMESTAMPTZ: 146>, <TokenType.TIMESTAMPLTZ: 147>, <TokenType.TIMESTAMPNTZ: 148>, <TokenType.TIMESTAMP_S: 149>, <TokenType.TIMESTAMP_MS: 150>, <TokenType.TIMESTAMP_NS: 151>, <TokenType.DATETIME: 152>, <TokenType.DATETIME2: 153>, <TokenType.DATETIME64: 154>, <TokenType.SMALLDATETIME: 155>, <TokenType.DATE: 156>, <TokenType.DATE32: 157>, <TokenType.INT4RANGE: 158>, <TokenType.INT4MULTIRANGE: 159>, <TokenType.INT8RANGE: 160>, <TokenType.INT8MULTIRANGE: 161>, <TokenType.NUMRANGE: 162>, <TokenType.NUMMULTIRANGE: 163>, <TokenType.TSRANGE: 164>, <TokenType.TSMULTIRANGE: 165>, <TokenType.TSTZRANGE: 166>, <TokenType.TSTZMULTIRANGE: 167>, <TokenType.DATERANGE: 168>, <TokenType.DATEMULTIRANGE: 169>, <TokenType.UUID: 170>, <TokenType.GEOGRAPHY: 171>, <TokenType.GEOGRAPHYPOINT: 172>, <TokenType.NULLABLE: 173>, <TokenType.GEOMETRY: 174>, <TokenType.POINT: 175>, <TokenType.RING: 176>, <TokenType.LINESTRING: 177>, <TokenType.LOCALTIME: 178>, <TokenType.LOCALTIMESTAMP: 179>, <TokenType.MULTILINESTRING: 181>, <TokenType.POLYGON: 182>, <TokenType.MULTIPOLYGON: 183>, <TokenType.HLLSKETCH: 184>, <TokenType.HSTORE: 185>, <TokenType.SUPER: 186>, <TokenType.SERIAL: 187>, <TokenType.SMALLSERIAL: 188>, <TokenType.BIGSERIAL: 189>, <TokenType.XML: 190>, <TokenType.YEAR: 191>, <TokenType.USERDEFINED: 192>, <TokenType.MONEY: 193>, <TokenType.SMALLMONEY: 194>, <TokenType.ROWVERSION: 195>, <TokenType.IMAGE: 196>, <TokenType.VARIANT: 197>, <TokenType.OBJECT: 198>, <TokenType.INET: 199>, <TokenType.IPADDRESS: 200>, <TokenType.IPPREFIX: 201>, <TokenType.IPV4: 202>, <TokenType.IPV6: 203>, <TokenType.ENUM: 204>, <TokenType.ENUM8: 205>, <TokenType.ENUM16: 206>, <TokenType.FIXEDSTRING: 207>, <TokenType.LOWCARDINALITY: 208>, <TokenType.NESTED: 209>, <TokenType.AGGREGATEFUNCTION: 210>, <TokenType.SIMPLEAGGREGATEFUNCTION: 211>, <TokenType.TDIGEST: 212>, <TokenType.UNKNOWN: 213>, <TokenType.VECTOR: 214>, <TokenType.DYNAMIC: 215>, <TokenType.VOID: 216>, <TokenType.ALL: 219>, <TokenType.ANTI: 220>, <TokenType.ANY: 221>, <TokenType.APPLY: 222>, <TokenType.ARRAY: 223>, <TokenType.ASC: 224>, <TokenType.ASOF: 225>, <TokenType.ATTACH: 226>, <TokenType.AUTO_INCREMENT: 227>, <TokenType.BEGIN: 228>, <TokenType.CACHE: 231>, <TokenType.CASE: 232>, <TokenType.COLLATE: 235>, <TokenType.COMMAND: 236>, <TokenType.COMMENT: 237>, <TokenType.COMMIT: 238>, <TokenType.CONSTRAINT: 240>, <TokenType.COPY: 241>, <TokenType.CUBE: 244>, <TokenType.CURRENT_DATE: 245>, <TokenType.CURRENT_DATETIME: 246>, <TokenType.CURRENT_SCHEMA: 247>, <TokenType.CURRENT_TIME: 248>, <TokenType.CURRENT_TIMESTAMP: 249>, <TokenType.CURRENT_USER: 250>, <TokenType.CURRENT_ROLE: 252>, <TokenType.CURRENT_CATALOG: 253>, <TokenType.DEFAULT: 255>, <TokenType.DELETE: 256>, <TokenType.DESC: 257>, <TokenType.DESCRIBE: 258>, <TokenType.DETACH: 259>, <TokenType.DICTIONARY: 260>, <TokenType.DIV: 263>, <TokenType.END: 266>, <TokenType.ESCAPE: 267>, <TokenType.EXECUTE: 269>, <TokenType.EXISTS: 270>, <TokenType.FALSE: 271>, <TokenType.FILE: 273>, <TokenType.FILE_FORMAT: 274>, <TokenType.FILTER: 275>, <TokenType.FINAL: 276>, <TokenType.FIRST: 277>, <TokenType.FOREIGN_KEY: 280>, <TokenType.FULL: 283>, <TokenType.FUNCTION: 284>, <TokenType.GET: 285>, <TokenType.INDEX: 296>, <TokenType.INTERVAL: 303>, <TokenType.IS: 307>, <TokenType.ISNULL: 308>, <TokenType.KEEP: 311>, <TokenType.KILL: 313>, <TokenType.LEFT: 316>, <TokenType.LIMIT: 318>, <TokenType.LIST: 319>, <TokenType.LOAD: 320>, <TokenType.LOCK: 321>, <TokenType.MAP: 322>, <TokenType.MATCH: 323>, <TokenType.MERGE: 327>, <TokenType.MODEL: 329>, <TokenType.NATURAL: 330>, <TokenType.NEXT: 331>, <TokenType.NOTHING: 332>, <TokenType.NULL: 334>, <TokenType.OBJECT_IDENTIFIER: 335>, <TokenType.OFFSET: 336>, <TokenType.OPERATOR: 339>, <TokenType.ORDINALITY: 343>, <TokenType.INOUT: 345>, <TokenType.OVER: 347>, <TokenType.OVERLAPS: 348>, <TokenType.OVERWRITE: 349>, <TokenType.PARTITION: 351>, <TokenType.PERCENT: 353>, <TokenType.PIVOT: 354>, <TokenType.PRAGMA: 359>, <TokenType.PROCEDURE: 362>, <TokenType.PSEUDO_TYPE: 364>, <TokenType.PUT: 365>, <TokenType.RANGE: 369>, <TokenType.RECURSIVE: 370>, <TokenType.REFRESH: 371>, <TokenType.RENAME: 372>, <TokenType.REPLACE: 373>, <TokenType.REFERENCES: 376>, <TokenType.RIGHT: 377>, <TokenType.ROLLUP: 381>, <TokenType.ROW: 382>, <TokenType.ROWS: 383>, <TokenType.SEMI: 386>, <TokenType.SEQUENCE: 388>, <TokenType.SET: 390>, <TokenType.SETTINGS: 391>, <TokenType.SHOW: 392>, <TokenType.SOME: 394>, <TokenType.STORAGE_INTEGRATION: 399>, <TokenType.STRAIGHT_JOIN: 400>, <TokenType.STRUCT: 401>, <TokenType.TAG: 404>, <TokenType.TEMPORARY: 405>, <TokenType.TOP: 406>, <TokenType.TRUE: 408>, <TokenType.TRUNCATE: 409>, <TokenType.TRIGGER: 410>, <TokenType.TYPE: 411>, <TokenType.UNNEST: 414>, <TokenType.UNPIVOT: 415>, <TokenType.UPDATE: 416>, <TokenType.USE: 417>, <TokenType.VIEW: 421>, <TokenType.SEMANTIC_VIEW: 422>, <TokenType.VOLATILE: 423>, <TokenType.WINDOW: 427>, <TokenType.UNIQUE: 429>, <TokenType.SINK: 436>, <TokenType.SOURCE: 437>, <TokenType.ANALYZE: 438>, <TokenType.NAMESPACE: 439>, <TokenType.EXPORT: 440>}
QUERY_MODIFIER_PARSERS =
{<TokenType.MATCH_RECOGNIZE: 325>: <function Parser.<lambda>>, <TokenType.PREWHERE: 360>: <function Parser.<lambda>>, <TokenType.WHERE: 426>: <function Parser.<lambda>>, <TokenType.GROUP_BY: 289>: <function Parser.<lambda>>, <TokenType.HAVING: 291>: <function Parser.<lambda>>, <TokenType.QUALIFY: 366>: <function Parser.<lambda>>, <TokenType.WINDOW: 427>: <function Parser.<lambda>>, <TokenType.ORDER_BY: 340>: <function Parser.<lambda>>, <TokenType.LIMIT: 318>: <function Parser.<lambda>>, <TokenType.FETCH: 272>: <function Parser.<lambda>>, <TokenType.OFFSET: 336>: <function Parser.<lambda>>, <TokenType.FOR: 278>: <function Parser.<lambda>>, <TokenType.LOCK: 321>: <function Parser.<lambda>>, <TokenType.TABLE_SAMPLE: 403>: <function Parser.<lambda>>, <TokenType.USING: 418>: <function Parser.<lambda>>, <TokenType.CLUSTER_BY: 234>: <function Parser.<lambda>>, <TokenType.DISTRIBUTE_BY: 262>: <function Parser.<lambda>>, <TokenType.SORT_BY: 395>: <function Parser.<lambda>>, <TokenType.CONNECT_BY: 239>: <function Parser.<lambda>>, <TokenType.START_WITH: 398>: <function Parser.<lambda>>, <TokenType.SETTINGS: 391>: <function ClickHouseParser.<lambda>>, <TokenType.FORMAT: 281>: <function ClickHouseParser.<lambda>>}
CONSTRAINT_PARSERS =
{'AUTOINCREMENT': <function Parser.<lambda>>, 'AUTO_INCREMENT': <function Parser.<lambda>>, 'CASESPECIFIC': <function Parser.<lambda>>, 'CHARACTER SET': <function Parser.<lambda>>, 'CHECK': <function Parser.<lambda>>, 'COLLATE': <function Parser.<lambda>>, 'COMMENT': <function Parser.<lambda>>, 'COMPRESS': <function Parser.<lambda>>, 'CLUSTERED': <function Parser.<lambda>>, 'NONCLUSTERED': <function Parser.<lambda>>, 'DEFAULT': <function Parser.<lambda>>, 'ENCODE': <function Parser.<lambda>>, 'EPHEMERAL': <function Parser.<lambda>>, 'EXCLUDE': <function Parser.<lambda>>, 'FOREIGN KEY': <function Parser.<lambda>>, 'FORMAT': <function Parser.<lambda>>, 'GENERATED': <function Parser.<lambda>>, 'IDENTITY': <function Parser.<lambda>>, 'INLINE': <function Parser.<lambda>>, 'LIKE': <function Parser.<lambda>>, 'NOT': <function Parser.<lambda>>, 'NULL': <function Parser.<lambda>>, 'ON': <function Parser.<lambda>>, 'PATH': <function Parser.<lambda>>, 'PERIOD': <function Parser.<lambda>>, 'PRIMARY KEY': <function Parser.<lambda>>, 'REFERENCES': <function Parser.<lambda>>, 'TITLE': <function Parser.<lambda>>, 'TTL': <function Parser.<lambda>>, 'UNIQUE': <function Parser.<lambda>>, 'UPPERCASE': <function Parser.<lambda>>, 'WITH': <function Parser.<lambda>>, 'BUCKET': <function Parser.<lambda>>, 'TRUNCATE': <function Parser.<lambda>>, 'INDEX': <function ClickHouseParser.<lambda>>, 'CODEC': <function ClickHouseParser.<lambda>>, 'ASSUME': <function ClickHouseParser.<lambda>>}
ALTER_PARSERS =
{'ADD': <function Parser.<lambda>>, 'AS': <function Parser.<lambda>>, 'ALTER': <function Parser.<lambda>>, 'CLUSTER BY': <function Parser.<lambda>>, 'DELETE': <function Parser.<lambda>>, 'DROP': <function Parser.<lambda>>, 'RENAME': <function Parser.<lambda>>, 'SET': <function Parser.<lambda>>, 'SWAP': <function Parser.<lambda>>, 'MODIFY': <function ClickHouseParser.<lambda>>, 'REPLACE': <function ClickHouseParser.<lambda>>}
SCHEMA_UNNAMED_CONSTRAINTS =
{'UNIQUE', 'PRIMARY KEY', 'PERIOD', 'FOREIGN KEY', 'INDEX', 'EXCLUDE', 'BUCKET', 'LIKE', 'TRUNCATE'}
PLACEHOLDER_PARSERS =
{<TokenType.PLACEHOLDER: 355>: <function Parser.<lambda>>, <TokenType.PARAMETER: 57>: <function Parser.<lambda>>, <TokenType.COLON: 11>: <function Parser.<lambda>>, <TokenType.L_BRACE: 5>: <function ClickHouseParser.<lambda>>}
STATEMENT_PARSERS =
{<TokenType.ALTER: 218>: <function Parser.<lambda>>, <TokenType.ANALYZE: 438>: <function Parser.<lambda>>, <TokenType.BEGIN: 228>: <function Parser.<lambda>>, <TokenType.CACHE: 231>: <function Parser.<lambda>>, <TokenType.COMMENT: 237>: <function Parser.<lambda>>, <TokenType.COMMIT: 238>: <function Parser.<lambda>>, <TokenType.COPY: 241>: <function Parser.<lambda>>, <TokenType.CREATE: 242>: <function Parser.<lambda>>, <TokenType.DELETE: 256>: <function Parser.<lambda>>, <TokenType.DESC: 257>: <function Parser.<lambda>>, <TokenType.DESCRIBE: 258>: <function Parser.<lambda>>, <TokenType.DROP: 264>: <function Parser.<lambda>>, <TokenType.GRANT: 288>: <function Parser.<lambda>>, <TokenType.REVOKE: 375>: <function Parser.<lambda>>, <TokenType.INSERT: 299>: <function Parser.<lambda>>, <TokenType.KILL: 313>: <function Parser.<lambda>>, <TokenType.LOAD: 320>: <function Parser.<lambda>>, <TokenType.MERGE: 327>: <function Parser.<lambda>>, <TokenType.PIVOT: 354>: <function Parser.<lambda>>, <TokenType.PRAGMA: 359>: <function Parser.<lambda>>, <TokenType.REFRESH: 371>: <function Parser.<lambda>>, <TokenType.ROLLBACK: 380>: <function Parser.<lambda>>, <TokenType.SET: 390>: <function Parser.<lambda>>, <TokenType.TRUNCATE: 409>: <function Parser.<lambda>>, <TokenType.UNCACHE: 412>: <function Parser.<lambda>>, <TokenType.UNPIVOT: 415>: <function Parser.<lambda>>, <TokenType.UPDATE: 416>: <function Parser.<lambda>>, <TokenType.USE: 417>: <function Parser.<lambda>>, <TokenType.SEMICOLON: 19>: <function Parser.<lambda>>, <TokenType.DETACH: 259>: <function ClickHouseParser.<lambda>>}
Inherited Members
- sqlglot.parser.Parser
- Parser
- STRUCT_TYPE_TOKENS
- NESTED_TYPE_TOKENS
- ENUM_TYPE_TOKENS
- AGGREGATE_TYPE_TOKENS
- TYPE_TOKENS
- SIGNED_TO_UNSIGNED_TYPE_TOKEN
- SUBQUERY_PREDICATES
- SUBQUERY_TOKENS
- DB_CREATABLES
- CREATABLES
- TRIGGER_EVENTS
- ALTERABLES
- COLON_PLACEHOLDER_TOKENS
- ARRAY_CONSTRUCTORS
- COMMENT_TABLE_ALIAS_TOKENS
- UPDATE_ALIAS_TOKENS
- TRIM_TYPES
- IDENTIFIER_TOKENS
- BRACKETS
- COLUMN_POSTFIX_TOKENS
- TABLE_POSTFIX_TOKENS
- CONJUNCTION
- ASSIGNMENT
- DISJUNCTION
- EQUALITY
- COMPARISON
- BITWISE
- TERM
- FACTOR
- EXPONENT
- TIMES
- TIMESTAMPS
- SET_OPERATIONS
- JOIN_METHODS
- JOIN_SIDES
- JOIN_HINTS
- TABLE_TERMINATORS
- LAMBDAS
- TYPED_LAMBDA_ARGS
- LAMBDA_ARG_TERMINATORS
- CAST_COLUMN_OPERATORS
- EXPRESSION_PARSERS
- UNARY_PARSERS
- STRING_PARSERS
- NUMERIC_PARSERS
- PRIMARY_PARSERS
- PIPE_SYNTAX_TRANSFORM_PARSERS
- ALTER_ALTER_PARSERS
- INVALID_FUNC_NAME_TOKENS
- FUNCTIONS_WITH_ALIASED_ARGS
- KEY_VALUE_DEFINITIONS
- QUERY_MODIFIER_TOKENS
- SET_PARSERS
- SHOW_PARSERS
- TYPE_LITERAL_PARSERS
- TYPE_CONVERTERS
- DDL_SELECT_TOKENS
- PRE_VOLATILE_TOKENS
- TRANSACTION_KIND
- TRANSACTION_CHARACTERISTICS
- CONFLICT_ACTIONS
- TRIGGER_TIMING
- TRIGGER_DEFERRABLE
- CREATE_SEQUENCE
- ISOLATED_LOADING_OPTIONS
- USABLES
- CAST_ACTIONS
- SCHEMA_BINDING_OPTIONS
- PROCEDURE_OPTIONS
- EXECUTE_AS_OPTIONS
- KEY_CONSTRAINT_OPTIONS
- WINDOW_EXCLUDE_OPTIONS
- INSERT_ALTERNATIVES
- CLONE_KEYWORDS
- HISTORICAL_DATA_PREFIX
- HISTORICAL_DATA_KIND
- OPCLASS_FOLLOW_KEYWORDS
- OPTYPE_FOLLOW_TOKENS
- TABLE_INDEX_HINT_TOKENS
- VIEW_ATTRIBUTES
- WINDOW_ALIAS_TOKENS
- WINDOW_BEFORE_PAREN_TOKENS
- WINDOW_SIDES
- JSON_KEY_VALUE_SEPARATOR_TOKENS
- FETCH_TOKENS
- ADD_CONSTRAINT_TOKENS
- DISTINCT_TOKENS
- UNNEST_OFFSET_ALIAS_TOKENS
- SELECT_START_TOKENS
- COPY_INTO_VARLEN_OPTIONS
- IS_JSON_PREDICATE_KIND
- ODBC_DATETIME_LITERALS
- ON_CONDITION_TOKENS
- PRIVILEGE_FOLLOW_TOKENS
- DESCRIBE_STYLES
- SET_ASSIGNMENT_DELIMITERS
- ANALYZE_STYLES
- ANALYZE_EXPRESSION_PARSERS
- PARTITION_KEYWORDS
- AMBIGUOUS_ALIAS_TOKENS
- OPERATION_MODIFIERS
- RECURSIVE_CTE_SEARCH_KIND
- SECURITY_PROPERTY_KEYWORDS
- MODIFIABLES
- STRICT_CAST
- PREFIXED_PIVOT_COLUMNS
- IDENTIFY_PIVOT_STRINGS
- PIVOT_COLUMN_NAMING
- TABLESAMPLE_CSV
- DEFAULT_SAMPLING_METHOD
- SET_REQUIRES_ASSIGNMENT_DELIMITER
- TRIM_PATTERN_FIRST
- STRING_ALIASES
- SET_OP_MODIFIERS
- NO_PAREN_IF_COMMANDS
- JSON_ARROWS_REQUIRE_JSON_TYPE
- COLON_IS_VARIANT_EXTRACT
- VALUES_FOLLOWED_BY_PAREN
- SUPPORTS_IMPLICIT_UNNEST
- SUPPORTS_PARTITION_SELECTION
- WRAPPED_TRANSFORM_COLUMN_CONSTRAINT
- ALTER_RENAME_REQUIRES_COLUMN
- ALTER_TABLE_PARTITIONS
- ZONE_AWARE_TIMESTAMP_CONSTRUCTOR
- MAP_KEYS_ARE_ARBITRARY_EXPRESSIONS
- JSON_EXTRACT_REQUIRES_JSON_EXPRESSION
- ADD_JOIN_ON_TRUE
- SUPPORTS_OMITTED_INTERVAL_SPAN_UNIT
- SHOW_TRIE
- SET_TRIE
- error_level
- error_message_context
- max_errors
- max_nodes
- dialect
- sql
- errors
- reset
- raise_error
- validate_expression
- parse
- parse_into
- check_errors
- expression
- parse_set_operation
- build_cast