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 "ARRAYFILTER": lambda args: exp.ArrayFilter( 266 this=seq_get(args, 1), expression=seq_get(args, 0) 267 ), 268 "ARRAYMAP": lambda args: exp.Transform(this=seq_get(args, 1), expression=seq_get(args, 0)), 269 "CURRENTDATABASE": exp.CurrentDatabase.from_arg_list, 270 "CURRENTSCHEMAS": exp.CurrentSchemas.from_arg_list, 271 "COUNTIF": _build_count_if, 272 "CITYHASH64": exp.CityHash64.from_arg_list, 273 "COSINEDISTANCE": exp.CosineDistance.from_arg_list, 274 "VERSION": exp.CurrentVersion.from_arg_list, 275 "DATE_ADD": build_date_delta(exp.DateAdd, default_unit=None), 276 "DATEADD": build_date_delta(exp.DateAdd, default_unit=None), 277 "DATE_DIFF": build_date_delta(exp.DateDiff, default_unit=None, supports_timezone=True), 278 "DATEDIFF": build_date_delta(exp.DateDiff, default_unit=None, supports_timezone=True), 279 "DATE_FORMAT": _build_datetime_format(exp.TimeToStr), 280 "DATE_SUB": build_date_delta(exp.DateSub, default_unit=None), 281 "DATESUB": build_date_delta(exp.DateSub, default_unit=None), 282 "FORMATDATETIME": _build_datetime_format(exp.TimeToStr), 283 "HAS": exp.ArrayContains.from_arg_list, 284 "ILIKE": build_like(exp.ILike), 285 "JSONEXTRACTSTRING": build_json_extract_path( 286 exp.JSONExtractScalar, zero_based_indexing=False 287 ), 288 "LENGTH": lambda args: exp.Length(this=seq_get(args, 0), binary=True), 289 "LIKE": build_like(exp.Like), 290 "L2Distance": exp.EuclideanDistance.from_arg_list, 291 "MAP": parser.build_var_map, 292 "MATCH": exp.RegexpLike.from_arg_list, 293 "NOTLIKE": build_like(exp.Like, not_like=True), 294 "PARSEDATETIME": _build_datetime_format(exp.ParseDatetime), 295 "RANDCANONICAL": exp.Rand.from_arg_list, 296 "STR_TO_DATE": _build_str_to_date, 297 "TIMESTAMP_SUB": build_date_delta(exp.TimestampSub, default_unit=None), 298 "TIMESTAMPSUB": build_date_delta(exp.TimestampSub, default_unit=None), 299 "TIMESTAMP_ADD": build_date_delta(exp.TimestampAdd, default_unit=None), 300 "TIMESTAMPADD": build_date_delta(exp.TimestampAdd, default_unit=None), 301 "TOMONDAY": _build_timestamp_trunc("WEEK"), 302 "UNIQ": exp.ApproxDistinct.from_arg_list, 303 "MD5": exp.MD5Digest.from_arg_list, 304 "SHA256": lambda args: exp.SHA2(this=seq_get(args, 0), length=exp.Literal.number(256)), 305 "SHA512": lambda args: exp.SHA2(this=seq_get(args, 0), length=exp.Literal.number(512)), 306 "SPLITBYCHAR": _build_split_by_char, 307 "SPLITBYREGEXP": _build_split(exp.RegexpSplit), 308 "SPLITBYSTRING": _build_split(exp.Split), 309 "SUBSTRINGINDEX": exp.SubstringIndex.from_arg_list, 310 "TOTYPENAME": exp.Typeof.from_arg_list, 311 "EDITDISTANCE": exp.Levenshtein.from_arg_list, 312 "JAROWINKLERSIMILARITY": exp.JarowinklerSimilarity.from_arg_list, 313 "LEVENSHTEINDISTANCE": exp.Levenshtein.from_arg_list, 314 "UTCTIMESTAMP": exp.UtcTimestamp.from_arg_list, 315 } 316 317 AGG_FUNCTIONS = AGG_FUNCTIONS 318 AGG_FUNCTIONS_SUFFIXES = AGG_FUNCTIONS_SUFFIXES 319 320 FUNC_TOKENS = { 321 *parser.Parser.FUNC_TOKENS, 322 TokenType.AND, 323 TokenType.FILE, 324 TokenType.OR, 325 TokenType.SET, 326 } 327 328 RESERVED_TOKENS = parser.Parser.RESERVED_TOKENS - {TokenType.SELECT} 329 330 ID_VAR_TOKENS = { 331 *parser.Parser.ID_VAR_TOKENS, 332 TokenType.LIKE, 333 } 334 335 AGG_FUNC_MAPPING = AGG_FUNC_MAPPING 336 337 @classmethod 338 def _resolve_clickhouse_agg(cls, name: str) -> tuple[str, Sequence[str]] | None: 339 # ClickHouse allows chaining multiple combinators on aggregate functions. 340 # See https://clickhouse.com/docs/sql-reference/aggregate-functions/combinators 341 # N.B. this resolution allows any suffix stack, including ones that ClickHouse rejects 342 # syntactically such as sumMergeMerge (due to repeated adjacent suffixes) 343 344 # Until we are able to identify a 1- or 0-suffix aggregate function by name, 345 # repeatedly strip and queue suffixes (checking longer suffixes first, see comment on 346 # AGG_FUNCTIONS_SUFFIXES_SORTED). This loop only runs for 2 or more suffixes, 347 # as AGG_FUNC_MAPPING memoizes all 0- and 1-suffix 348 accumulated_suffixes: deque[str] = deque() 349 while (parts := AGG_FUNC_MAPPING.get(name)) is None: 350 for suffix in AGG_FUNCTIONS_SUFFIXES: 351 if name.endswith(suffix) and len(name) != len(suffix): 352 accumulated_suffixes.appendleft(suffix) 353 name = name[: -len(suffix)] 354 break 355 else: 356 return None 357 358 # We now have a 0- or 1-suffix aggregate 359 agg_func_name, inner_suffix = parts 360 if inner_suffix: 361 # this is a 1-suffix aggregate (either naturally or via repeated suffix 362 # stripping). prepend the innermost suffix. 363 accumulated_suffixes.appendleft(inner_suffix) 364 365 return (agg_func_name, accumulated_suffixes) 366 367 FUNCTION_PARSERS = { 368 **{k: v for k, v in parser.Parser.FUNCTION_PARSERS.items() if k != "MATCH"}, 369 "ARRAYJOIN": lambda self: self.expression(exp.Explode(this=self._parse_expression())), 370 "GROUPCONCAT": lambda self: self._parse_group_concat(), 371 "QUANTILE": lambda self: self._parse_quantile(), 372 "MEDIAN": lambda self: self._parse_quantile(), 373 "COLUMNS": lambda self: self._parse_columns(), 374 "TUPLE": lambda self: exp.Struct.from_arg_list(self._parse_function_args(alias=True)), 375 "AND": lambda self: exp.and_(*self._parse_function_args(alias=False)), 376 "OR": lambda self: exp.or_(*self._parse_function_args(alias=False)), 377 "XOR": lambda self: exp.xor(*self._parse_function_args(alias=False)), 378 } 379 380 PROPERTY_PARSERS = { 381 **{k: v for k, v in parser.Parser.PROPERTY_PARSERS.items() if k != "DYNAMIC"}, 382 "ENGINE": lambda self: self._parse_engine_property(), 383 "UUID": lambda self: self.expression(exp.UuidProperty(this=self._parse_string())), 384 } 385 386 NO_PAREN_FUNCTION_PARSERS = { 387 k: v for k, v in parser.Parser.NO_PAREN_FUNCTION_PARSERS.items() if k != "ANY" 388 } 389 390 NO_PAREN_FUNCTIONS = { 391 k: v 392 for k, v in parser.Parser.NO_PAREN_FUNCTIONS.items() 393 if k != TokenType.CURRENT_TIMESTAMP 394 } 395 396 RANGE_PARSERS = { 397 **parser.Parser.RANGE_PARSERS, 398 TokenType.GLOBAL: lambda self, this: self._parse_global_in(this), 399 } 400 401 COLUMN_OPERATORS = { 402 **{k: v for k, v in parser.Parser.COLUMN_OPERATORS.items() if k != TokenType.PLACEHOLDER}, 403 TokenType.DOTCARET: lambda self, this, field: self.expression( 404 exp.NestedJSONSelect(this=this, expression=field) 405 ), 406 } 407 408 JOIN_KINDS = { 409 *parser.Parser.JOIN_KINDS, 410 TokenType.ALL, 411 TokenType.ANY, 412 TokenType.ASOF, 413 TokenType.ARRAY, 414 } 415 416 TABLE_ALIAS_TOKENS = parser.Parser.TABLE_ALIAS_TOKENS - { 417 TokenType.ALL, 418 TokenType.ANY, 419 TokenType.ARRAY, 420 TokenType.ASOF, 421 TokenType.FINAL, 422 TokenType.FORMAT, 423 TokenType.SETTINGS, 424 } 425 426 ALIAS_TOKENS = parser.Parser.ALIAS_TOKENS - { 427 TokenType.FORMAT, 428 TokenType.SETTINGS, 429 } 430 431 LOG_DEFAULTS_TO_LN = True 432 433 QUERY_MODIFIER_PARSERS = { 434 **parser.Parser.QUERY_MODIFIER_PARSERS, 435 TokenType.SETTINGS: lambda self: ( 436 "settings", 437 self._advance() or self._parse_csv(self._parse_assignment), 438 ), 439 TokenType.FORMAT: lambda self: ("format", self._advance() or self._parse_id_var()), 440 } 441 442 CONSTRAINT_PARSERS = { 443 **parser.Parser.CONSTRAINT_PARSERS, 444 "INDEX": lambda self: self._parse_index_constraint(), 445 "CODEC": lambda self: self._parse_compress(), 446 "ASSUME": lambda self: self._parse_assume_constraint(), 447 } 448 449 ALTER_PARSERS = { 450 **parser.Parser.ALTER_PARSERS, 451 "MODIFY": lambda self: self._parse_alter_table_modify(), 452 "REPLACE": lambda self: self._parse_alter_table_replace(), 453 } 454 455 SCHEMA_UNNAMED_CONSTRAINTS = { 456 *parser.Parser.SCHEMA_UNNAMED_CONSTRAINTS, 457 "INDEX", 458 } - {"CHECK"} 459 460 PLACEHOLDER_PARSERS = { 461 **parser.Parser.PLACEHOLDER_PARSERS, 462 TokenType.L_BRACE: lambda self: self._parse_query_parameter(), 463 } 464 465 STATEMENT_PARSERS = { 466 **parser.Parser.STATEMENT_PARSERS, 467 TokenType.DETACH: lambda self: self._parse_detach(), 468 } 469 470 def _parse_wrapped_select_or_assignment(self) -> exp.Expr | None: 471 return self._parse_wrapped( 472 lambda: self._parse_select() or self._parse_assignment(), optional=True 473 ) 474 475 def _parse_check_constraint(self) -> exp.CheckColumnConstraint | None: 476 return self.expression( 477 exp.CheckColumnConstraint(this=self._parse_wrapped_select_or_assignment()) 478 ) 479 480 def _parse_assume_constraint(self) -> exp.AssumeColumnConstraint | None: 481 return self.expression( 482 exp.AssumeColumnConstraint(this=self._parse_wrapped_select_or_assignment()) 483 ) 484 485 def _parse_engine_property(self) -> exp.EngineProperty: 486 self._match(TokenType.EQ) 487 return self.expression( 488 exp.EngineProperty(this=self._parse_field(any_token=True, anonymous_func=True)) 489 ) 490 491 # https://clickhouse.com/docs/en/sql-reference/statements/create/function 492 def _parse_user_defined_function_expression(self) -> exp.Expr | None: 493 return self._parse_lambda() 494 495 def _parse_types( 496 self, 497 check_func: bool = False, 498 schema: bool = False, 499 allow_identifiers: bool = True, 500 with_collation: bool = False, 501 ) -> exp.Expr | None: 502 dtype = super()._parse_types( 503 check_func=check_func, 504 schema=schema, 505 allow_identifiers=allow_identifiers, 506 with_collation=with_collation, 507 ) 508 if isinstance(dtype, exp.DataType) and dtype.args.get("nullable") is not True: 509 # Mark every type as non-nullable which is ClickHouse's default, unless it's 510 # already marked as nullable. This marker helps us transpile types from other 511 # dialects to ClickHouse, so that we can e.g. produce `CAST(x AS Nullable(String))` 512 # from `CAST(x AS TEXT)`. If there is a `NULL` value in `x`, the former would 513 # fail in ClickHouse without the `Nullable` type constructor. 514 dtype.set("nullable", False) 515 516 return dtype 517 518 def _parse_extract(self) -> exp.Extract | exp.Anonymous: 519 index = self._index 520 this = self._parse_bitwise() 521 if self._match(TokenType.FROM): 522 self._retreat(index) 523 return super()._parse_extract() 524 525 # We return Anonymous here because extract and regexpExtract have different semantics, 526 # so parsing extract(foo, bar) into RegexpExtract can potentially break queries. E.g., 527 # `extract('foobar', 'b')` works, but ClickHouse crashes for `regexpExtract('foobar', 'b')`. 528 # 529 # TODO: can we somehow convert the former into an equivalent `regexpExtract` call? 530 self._match(TokenType.COMMA) 531 return self.expression( 532 exp.Anonymous(this="extract", expressions=[this, self._parse_bitwise()]) 533 ) 534 535 def _parse_assignment(self) -> exp.Expr | None: 536 this = super()._parse_assignment() 537 538 if self._match(TokenType.PLACEHOLDER): 539 return self.expression( 540 exp.If( 541 this=this, 542 true=self._parse_assignment(), 543 false=self._match(TokenType.COLON) and self._parse_assignment(), 544 ) 545 ) 546 547 return this 548 549 def _parse_query_parameter(self) -> exp.Expr | None: 550 """ 551 Parse a placeholder expression like SELECT {abc: UInt32} or FROM {table: Identifier} 552 https://clickhouse.com/docs/en/sql-reference/syntax#defining-and-using-query-parameters 553 """ 554 index = self._index 555 556 this = self._parse_id_var() 557 self._match(TokenType.COLON) 558 kind = self._parse_types(check_func=False, allow_identifiers=False) or ( 559 self._match_text_seq("IDENTIFIER") and "Identifier" 560 ) 561 562 if not kind: 563 self._retreat(index) 564 return None 565 elif not self._match(TokenType.R_BRACE): 566 self.raise_error("Expecting }") 567 568 if isinstance(this, exp.Identifier) and not this.quoted: 569 this = exp.var(this.name) 570 571 return self.expression(exp.Placeholder(this=this, kind=kind)) 572 573 def _parse_bracket(self, this: exp.Expr | None = None) -> exp.Expr | None: 574 if this: 575 bracket_json_type = None 576 577 while self._match_pair(TokenType.L_BRACKET, TokenType.R_BRACKET): 578 bracket_json_type = exp.DataType( 579 this=exp.DType.ARRAY, 580 expressions=[ 581 bracket_json_type 582 or exp.DType.JSON.into_expr(dialect=self.dialect, nullable=False) 583 ], 584 nested=True, 585 ) 586 587 if bracket_json_type: 588 return self.expression(exp.JSONCast(this=this, to=bracket_json_type)) 589 590 l_brace = self._match(TokenType.L_BRACE, advance=False) 591 bracket = super()._parse_bracket(this) 592 593 if l_brace and isinstance(bracket, exp.Struct): 594 varmap = exp.VarMap(keys=exp.Array(), values=exp.Array()) 595 for expression in bracket.expressions: 596 if not isinstance(expression, exp.PropertyEQ): 597 break 598 599 varmap.args["keys"].append("expressions", exp.Literal.string(expression.name)) 600 varmap.args["values"].append("expressions", expression.expression) 601 602 return varmap 603 604 return bracket 605 606 def _parse_global_in(self, this: exp.Expr | None) -> exp.Not | exp.In: 607 is_negated = self._match(TokenType.NOT) 608 in_expr: exp.In | None = None 609 if self._match(TokenType.IN): 610 in_expr = self._parse_in(this) 611 in_expr.set("is_global", True) 612 return self.expression(exp.Not(this=in_expr)) if is_negated else t.cast(exp.In, in_expr) 613 614 def _parse_table( 615 self, 616 schema: bool = False, 617 joins: bool = False, 618 alias_tokens: Collection[TokenType] | None = None, 619 parse_bracket: bool = False, 620 is_db_reference: bool = False, 621 parse_partition: bool = False, 622 consume_pipe: bool = False, 623 ) -> exp.Expr | None: 624 this = super()._parse_table( 625 schema=schema, 626 joins=joins, 627 alias_tokens=alias_tokens, 628 parse_bracket=parse_bracket, 629 is_db_reference=is_db_reference, 630 ) 631 632 if isinstance(this, exp.Table): 633 inner = this.this 634 alias = this.args.get("alias") 635 636 if isinstance(inner, exp.GenerateSeries) and alias and not alias.columns: 637 alias.set("columns", [exp.to_identifier("generate_series")]) 638 639 if self._match(TokenType.FINAL): 640 this = self.expression(exp.Final(this=this)) 641 642 return this 643 644 def _parse_position(self, haystack_first: bool = False) -> exp.StrPosition: 645 return super()._parse_position(haystack_first=True) 646 647 # https://clickhouse.com/docs/en/sql-reference/statements/select/with/ 648 def _parse_cte(self) -> exp.CTE | None: 649 # WITH <identifier> AS <subquery expression> 650 cte: exp.CTE | None = self._try_parse(super()._parse_cte) 651 652 if not cte: 653 # WITH <expression> AS <identifier> 654 cte = self.expression( 655 exp.CTE(this=self._parse_assignment(), alias=self._parse_table_alias(), scalar=True) 656 ) 657 658 return cte 659 660 def _parse_join_parts( 661 self, 662 ) -> tuple[Token | None, Token | None, Token | None]: 663 is_global = self._prev if self._match(TokenType.GLOBAL) else None 664 665 kind_pre = self._prev if self._match_set(self.JOIN_KINDS) else None 666 side = self._prev if self._match_set(self.JOIN_SIDES) else None 667 kind = self._prev if self._match_set(self.JOIN_KINDS) else None 668 669 return is_global, side or kind, kind_pre or kind 670 671 def _parse_join( 672 self, 673 skip_join_token: bool = False, 674 parse_bracket: bool = False, 675 alias_tokens: t.Collection[TokenType] | None = None, 676 ) -> exp.Join | None: 677 join = super()._parse_join( 678 skip_join_token=skip_join_token, parse_bracket=True, alias_tokens=alias_tokens 679 ) 680 if join: 681 method = join.args.get("method") 682 join.set("method", None) 683 join.set("global_", method) 684 685 # tbl ARRAY JOIN arr <-- this should be a `Column` reference, not a `Table` 686 # https://clickhouse.com/docs/en/sql-reference/statements/select/array-join 687 if join.kind == "ARRAY": 688 for table in join.find_all(exp.Table): 689 table.replace(table.to_column()) 690 691 return join 692 693 def _parse_function( 694 self, 695 functions: dict[str, t.Callable] | None = None, 696 anonymous: bool = False, 697 optional_parens: bool = True, 698 any_token: bool = False, 699 ) -> exp.Expr | None: 700 expr = super()._parse_function( 701 functions=functions, 702 anonymous=anonymous, 703 optional_parens=optional_parens, 704 any_token=any_token, 705 ) 706 707 func = expr.this if isinstance(expr, exp.Window) else expr 708 709 # Aggregate functions can be split in 2 parts: <func_name><suffix[es]> 710 parts = self._resolve_clickhouse_agg(func.this) if isinstance(func, exp.Anonymous) else None 711 712 if parts: 713 anon_func: exp.Anonymous = t.cast(exp.Anonymous, func) 714 params = self._parse_func_params(anon_func) 715 716 if len(parts[1]) > 0: 717 exp_class: Type[exp.Expr] = ( 718 exp.CombinedParameterizedAgg if params else exp.CombinedAggFunc 719 ) 720 else: 721 exp_class = exp.ParameterizedAgg if params else exp.AnonymousAggFunc 722 723 instance = exp_class(this=anon_func.this, expressions=anon_func.expressions) 724 if params: 725 instance.set("params", params) 726 func = self.expression(instance) 727 728 if isinstance(expr, exp.Window): 729 # The window's func was parsed as Anonymous in base parser, fix its 730 # type to be ClickHouse style CombinedAnonymousAggFunc / AnonymousAggFunc 731 expr.set("this", func) 732 elif params: 733 # Params have blocked super()._parse_function() from parsing the following window 734 # (if that exists) as they're standing between the function call and the window spec 735 expr = self._parse_window(func) 736 else: 737 expr = func 738 739 return expr 740 741 def _parse_func_params(self, this: exp.Func | None = None) -> list[exp.Expr] | None: 742 if self._match_pair(TokenType.R_PAREN, TokenType.L_PAREN): 743 return self._parse_csv(self._parse_lambda) 744 745 if self._match(TokenType.L_PAREN): 746 params = self._parse_csv(self._parse_lambda) 747 self._match_r_paren(this) 748 return params 749 750 return None 751 752 def _parse_group_concat(self) -> exp.GroupConcat: 753 args = self._parse_csv(self._parse_lambda) 754 params = self._parse_func_params() 755 756 if params: 757 # groupConcat(sep [, limit])(expr) 758 separator = seq_get(args, 0) 759 limit = seq_get(args, 1) 760 this: exp.Expr | None = seq_get(params, 0) 761 if limit is not None: 762 this = exp.Limit(this=this, expression=limit) 763 return self.expression(exp.GroupConcat(this=this, separator=separator)) 764 765 # groupConcat(expr) 766 return self.expression(exp.GroupConcat(this=seq_get(args, 0))) 767 768 def _parse_quantile(self) -> exp.Quantile: 769 this = self._parse_lambda() 770 params = self._parse_func_params() 771 if params: 772 return self.expression(exp.Quantile(this=params[0], quantile=this)) 773 return self.expression(exp.Quantile(this=this, quantile=exp.Literal.number(0.5))) 774 775 def _parse_wrapped_id_vars(self, optional: bool = False) -> list[exp.Expr]: 776 return super()._parse_wrapped_id_vars(optional=True) 777 778 def _parse_column_def( 779 self, this: exp.Expr | None, computed_column: bool = True 780 ) -> exp.Expr | None: 781 if self._match(TokenType.DOT): 782 return exp.Dot(this=this, expression=self._parse_id_var()) 783 784 return super()._parse_column_def(this, computed_column=computed_column) 785 786 def _parse_primary_key( 787 self, 788 wrapped_optional: bool = False, 789 in_props: bool = False, 790 named_primary_key: bool = False, 791 ) -> exp.PrimaryKeyColumnConstraint | exp.PrimaryKey: 792 return super()._parse_primary_key( 793 wrapped_optional=wrapped_optional or in_props, 794 in_props=in_props, 795 named_primary_key=named_primary_key, 796 ) 797 798 def _parse_on_property(self) -> exp.Expr | None: 799 index = self._index 800 if self._match_text_seq("CLUSTER"): 801 this = self._parse_string() or self._parse_id_var() 802 if this: 803 return self.expression(exp.OnCluster(this=this)) 804 else: 805 self._retreat(index) 806 return None 807 808 def _parse_index_constraint(self, kind: str | None = None) -> exp.IndexColumnConstraint: 809 # INDEX name1 expr TYPE type1(args) GRANULARITY value 810 this = self._parse_id_var() 811 expression = self._parse_assignment() 812 813 index_type = self._match_text_seq("TYPE") and (self._parse_function() or self._parse_var()) 814 815 granularity = self._match_text_seq("GRANULARITY") and self._parse_term() 816 817 return self.expression( 818 exp.IndexColumnConstraint( 819 this=this, expression=expression, index_type=index_type, granularity=granularity 820 ) 821 ) 822 823 def _parse_partition(self) -> exp.Partition | None: 824 # https://clickhouse.com/docs/en/sql-reference/statements/alter/partition#how-to-set-partition-expression 825 if not self._match(TokenType.PARTITION): 826 return None 827 828 if self._match_text_seq("ID"): 829 # Corresponds to the PARTITION ID <string_value> syntax 830 expressions: list[exp.Expr] = [ 831 self.expression(exp.PartitionId(this=self._parse_string())) 832 ] 833 else: 834 expressions = self._parse_expressions() 835 836 return self.expression(exp.Partition(expressions=expressions)) 837 838 def _parse_alter_table_replace(self) -> exp.Expr | None: 839 partition = self._parse_partition() 840 841 if not partition or not self._match(TokenType.FROM): 842 return None 843 844 return self.expression( 845 exp.ReplacePartition(expression=partition, source=self._parse_table_parts()) 846 ) 847 848 def _parse_alter_table_modify(self) -> exp.Expr | None: 849 if properties := self._parse_properties(): 850 return self.expression(exp.AlterModifySqlSecurity(expressions=properties.expressions)) 851 return None 852 853 def _parse_definer(self) -> exp.DefinerProperty | None: 854 self._match(TokenType.EQ) 855 if self._match(TokenType.CURRENT_USER): 856 return exp.DefinerProperty(this=exp.Var(this=self._prev.text.upper())) 857 return exp.DefinerProperty(this=self._parse_string()) 858 859 def _parse_projection_def(self) -> exp.ProjectionDef | None: 860 if not self._match_text_seq("PROJECTION"): 861 return None 862 863 return self.expression( 864 exp.ProjectionDef( 865 this=self._parse_id_var(), expression=self._parse_wrapped(self._parse_statement) 866 ) 867 ) 868 869 def _parse_constraint(self) -> exp.Expr | None: 870 return super()._parse_constraint() or self._parse_projection_def() 871 872 def _parse_alias(self, this: exp.Expr | None, explicit: bool = False) -> exp.Expr | None: 873 # In clickhouse "SELECT <expr> APPLY(...)" is a query modifier, 874 # so "APPLY" shouldn't be parsed as <expr>'s alias. However, "SELECT <expr> apply" is a valid alias 875 if self._match_pair(TokenType.APPLY, TokenType.L_PAREN, advance=False): 876 return this 877 878 return super()._parse_alias(this=this, explicit=explicit) 879 880 def _parse_expression(self) -> exp.Expr | None: 881 this = super()._parse_expression() 882 883 # Clickhouse allows "SELECT <expr> [APPLY(func)] [...]]" modifier 884 while self._match_pair(TokenType.APPLY, TokenType.L_PAREN): 885 this = exp.Apply(this=this, expression=self._parse_var(any_token=True)) 886 self._match(TokenType.R_PAREN) 887 888 return this 889 890 def _parse_columns(self) -> exp.Expr: 891 this: exp.Expr = self.expression(exp.Columns(this=self._parse_lambda())) 892 893 while self._next and self._match_text_seq(")", "APPLY", "("): 894 self._match(TokenType.R_PAREN) 895 this = exp.Apply(this=this, expression=self._parse_var(any_token=True)) 896 return this 897 898 def _parse_value(self, values: bool = True) -> exp.Tuple | None: 899 value = super()._parse_value(values=values) 900 if not value: 901 return None 902 903 # In Clickhouse "SELECT * FROM VALUES (1, 2, 3)" generates a table with a single column, in contrast 904 # to other dialects. For this case, we canonicalize the values into a tuple-of-tuples AST if it's not already one. 905 # In INSERT INTO statements the same clause actually references multiple columns (opposite semantics), 906 # but the final result is not altered by the extra parentheses. 907 # Note: Clickhouse allows VALUES([structure], value, ...) so the branch checks for the last expression 908 expressions = value.expressions 909 if values and not isinstance(expressions[-1], exp.Tuple): 910 value.set( 911 "expressions", 912 [self.expression(exp.Tuple(expressions=[expr])) for expr in expressions], 913 ) 914 915 return value 916 917 def _parse_partitioned_by(self) -> exp.PartitionedByProperty: 918 # ClickHouse allows custom expressions as partition key 919 # https://clickhouse.com/docs/engines/table-engines/mergetree-family/custom-partitioning-key 920 return self.expression(exp.PartitionedByProperty(this=self._parse_assignment())) 921 922 def _parse_detach(self) -> exp.Detach: 923 kind = self._match_set(self.DB_CREATABLES) and self._prev.text.upper() 924 exists = self._parse_exists() 925 this = self._parse_table_parts() 926 927 return self.expression( 928 exp.Detach( 929 this=this, 930 kind=kind, 931 exists=exists, 932 cluster=self._parse_on_property() if self._match(TokenType.ON) else None, 933 permanent=self._match_text_seq("PERMANENTLY"), 934 sync=self._match_text_seq("SYNC"), 935 ) 936 )
TIMESTAMP_TRUNC_UNITS =
{'DAY', 'QUARTER', 'HOUR', 'MILLISECOND', 'SECOND', 'YEAR', 'MONTH', 'MICROSECOND', 'MINUTE'}
AGG_FUNCTIONS =
{'welchTTest', 'histogram', 'count', 'quantileTimingWeighted', 'cramersV', 'skewPop', 'quantileTDigest', 'stochasticLogisticRegression', 'quantileInterpolatedWeighted', 'maxMap', 'theilsU', 'last_value', 'argMax', 'quantilesTDigest', 'kurtPop', 'groupBitXor', 'groupArrayMovingAvg', 'median', 'groupUniqArray', 'cramersVBiasCorrected', 'groupBitmap', 'sequenceNextNode', 'deltaSum', 'anyHeavy', 'quantileBFloat16', 'uniqHLL12', 'groupConcat', 'simpleLinearRegression', 'stddevPop', 'sumKahan', 'contingency', 'minMap', 'avg', 'quantilesExactWeighted', 'quantilesTiming', 'uniqTheta', 'exponentialMovingAverage', 'quantilesBFloat16Weighted', 'intervalLengthSum', 'uniqCombined64', 'any', 'uniqCombined', 'avgWeighted', 'quantileTiming', 'uniqUpTo', 'min', 'anyLast', 'skewSamp', 'kurtSamp', 'groupArraySample', 'topK', 'sum', 'sumMap', 'quantilesExactHigh', 'quantilesExactLow', 'quantileExactWeighted', 'sumCount', 'rankCorr', 'quantilesGK', 'uniqExact', 'groupArrayLast', 'windowFunnel', 'maxIntersections', 'corr', 'sumWithOverflow', 'quantilesBFloat16', 'quantileExact', 'entropy', 'quantilesInterpolatedWeighted', 'quantiles', 'stochasticLinearRegression', 'mannWhitneyUTest', 'quantilesTimingWeighted', 'covarSamp', 'varPop', 'sequenceMatch', 'meanZTest', 'approx_top_sum', 'boundingRatio', 'kolmogorovSmirnovTest', 'covarPop', 'quantileGK', 'stddevSamp', 'sparkBar', 'quantileExactHigh', 'quantilesExact', 'uniq', 'groupArrayInsertAt', 'quantilesDeterministic', 'quantilesTDigestWeighted', 'quantileDeterministic', 'retention', 'groupBitmapXor', 'quantilesExactExclusive', 'groupArrayMovingSum', 'quantileBFloat16Weighted', 'first_value', 'studentTTest', 'topKWeighted', 'quantileTDigestWeighted', 'categoricalInformationValue', 'sequenceCount', 'groupBitAnd', 'largestTriangleThreeBuckets', 'groupBitOr', 'groupBitmapOr', 'deltaSumTimestamp', 'argMin', 'groupBitmapAnd', 'varSamp', 'exponentialTimeDecayedAvg', 'max', 'quantileExactLow', 'maxIntersectionsPosition', 'groupArray', 'quantile'}
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]] =
{'welchTTestSimpleState': ('welchTTest', 'SimpleState'), 'histogramSimpleState': ('histogram', 'SimpleState'), 'countSimpleState': ('count', 'SimpleState'), 'quantileTimingWeightedSimpleState': ('quantileTimingWeighted', 'SimpleState'), 'cramersVSimpleState': ('cramersV', 'SimpleState'), 'skewPopSimpleState': ('skewPop', 'SimpleState'), 'quantileTDigestSimpleState': ('quantileTDigest', 'SimpleState'), 'stochasticLogisticRegressionSimpleState': ('stochasticLogisticRegression', 'SimpleState'), 'quantileInterpolatedWeightedSimpleState': ('quantileInterpolatedWeighted', 'SimpleState'), 'maxMapSimpleState': ('maxMap', 'SimpleState'), 'theilsUSimpleState': ('theilsU', 'SimpleState'), 'last_valueSimpleState': ('last_value', 'SimpleState'), 'argMaxSimpleState': ('argMax', 'SimpleState'), 'quantilesTDigestSimpleState': ('quantilesTDigest', 'SimpleState'), 'kurtPopSimpleState': ('kurtPop', 'SimpleState'), 'groupBitXorSimpleState': ('groupBitXor', 'SimpleState'), 'groupArrayMovingAvgSimpleState': ('groupArrayMovingAvg', 'SimpleState'), 'medianSimpleState': ('median', 'SimpleState'), 'groupUniqArraySimpleState': ('groupUniqArray', 'SimpleState'), 'cramersVBiasCorrectedSimpleState': ('cramersVBiasCorrected', 'SimpleState'), 'groupBitmapSimpleState': ('groupBitmap', 'SimpleState'), 'sequenceNextNodeSimpleState': ('sequenceNextNode', 'SimpleState'), 'deltaSumSimpleState': ('deltaSum', 'SimpleState'), 'anyHeavySimpleState': ('anyHeavy', 'SimpleState'), 'quantileBFloat16SimpleState': ('quantileBFloat16', 'SimpleState'), 'uniqHLL12SimpleState': ('uniqHLL12', 'SimpleState'), 'groupConcatSimpleState': ('groupConcat', 'SimpleState'), 'simpleLinearRegressionSimpleState': ('simpleLinearRegression', 'SimpleState'), 'stddevPopSimpleState': ('stddevPop', 'SimpleState'), 'sumKahanSimpleState': ('sumKahan', 'SimpleState'), 'contingencySimpleState': ('contingency', 'SimpleState'), 'minMapSimpleState': ('minMap', 'SimpleState'), 'avgSimpleState': ('avg', 'SimpleState'), 'quantilesExactWeightedSimpleState': ('quantilesExactWeighted', 'SimpleState'), 'quantilesTimingSimpleState': ('quantilesTiming', 'SimpleState'), 'uniqThetaSimpleState': ('uniqTheta', 'SimpleState'), 'exponentialMovingAverageSimpleState': ('exponentialMovingAverage', 'SimpleState'), 'quantilesBFloat16WeightedSimpleState': ('quantilesBFloat16Weighted', 'SimpleState'), 'intervalLengthSumSimpleState': ('intervalLengthSum', 'SimpleState'), 'uniqCombined64SimpleState': ('uniqCombined64', 'SimpleState'), 'anySimpleState': ('any', 'SimpleState'), 'uniqCombinedSimpleState': ('uniqCombined', 'SimpleState'), 'avgWeightedSimpleState': ('avgWeighted', 'SimpleState'), 'quantileTimingSimpleState': ('quantileTiming', 'SimpleState'), 'uniqUpToSimpleState': ('uniqUpTo', 'SimpleState'), 'minSimpleState': ('min', 'SimpleState'), 'anyLastSimpleState': ('anyLast', 'SimpleState'), 'skewSampSimpleState': ('skewSamp', 'SimpleState'), 'kurtSampSimpleState': ('kurtSamp', 'SimpleState'), 'groupArraySampleSimpleState': ('groupArraySample', 'SimpleState'), 'topKSimpleState': ('topK', 'SimpleState'), 'sumSimpleState': ('sum', 'SimpleState'), 'sumMapSimpleState': ('sumMap', 'SimpleState'), 'quantilesExactHighSimpleState': ('quantilesExactHigh', 'SimpleState'), 'quantilesExactLowSimpleState': ('quantilesExactLow', 'SimpleState'), 'quantileExactWeightedSimpleState': ('quantileExactWeighted', 'SimpleState'), 'sumCountSimpleState': ('sumCount', 'SimpleState'), 'rankCorrSimpleState': ('rankCorr', 'SimpleState'), 'quantilesGKSimpleState': ('quantilesGK', 'SimpleState'), 'uniqExactSimpleState': ('uniqExact', 'SimpleState'), 'groupArrayLastSimpleState': ('groupArrayLast', 'SimpleState'), 'windowFunnelSimpleState': ('windowFunnel', 'SimpleState'), 'maxIntersectionsSimpleState': ('maxIntersections', 'SimpleState'), 'corrSimpleState': ('corr', 'SimpleState'), 'sumWithOverflowSimpleState': ('sumWithOverflow', 'SimpleState'), 'quantilesBFloat16SimpleState': ('quantilesBFloat16', 'SimpleState'), 'quantileExactSimpleState': ('quantileExact', 'SimpleState'), 'entropySimpleState': ('entropy', 'SimpleState'), 'quantilesInterpolatedWeightedSimpleState': ('quantilesInterpolatedWeighted', 'SimpleState'), 'quantilesSimpleState': ('quantiles', 'SimpleState'), 'stochasticLinearRegressionSimpleState': ('stochasticLinearRegression', 'SimpleState'), 'mannWhitneyUTestSimpleState': ('mannWhitneyUTest', 'SimpleState'), 'quantilesTimingWeightedSimpleState': ('quantilesTimingWeighted', 'SimpleState'), 'covarSampSimpleState': ('covarSamp', 'SimpleState'), 'varPopSimpleState': ('varPop', 'SimpleState'), 'sequenceMatchSimpleState': ('sequenceMatch', 'SimpleState'), 'meanZTestSimpleState': ('meanZTest', 'SimpleState'), 'approx_top_sumSimpleState': ('approx_top_sum', 'SimpleState'), 'boundingRatioSimpleState': ('boundingRatio', 'SimpleState'), 'kolmogorovSmirnovTestSimpleState': ('kolmogorovSmirnovTest', 'SimpleState'), 'covarPopSimpleState': ('covarPop', 'SimpleState'), 'quantileGKSimpleState': ('quantileGK', 'SimpleState'), 'stddevSampSimpleState': ('stddevSamp', 'SimpleState'), 'sparkBarSimpleState': ('sparkBar', 'SimpleState'), 'quantileExactHighSimpleState': ('quantileExactHigh', 'SimpleState'), 'quantilesExactSimpleState': ('quantilesExact', 'SimpleState'), 'uniqSimpleState': ('uniq', 'SimpleState'), 'groupArrayInsertAtSimpleState': ('groupArrayInsertAt', 'SimpleState'), 'quantilesDeterministicSimpleState': ('quantilesDeterministic', 'SimpleState'), 'quantilesTDigestWeightedSimpleState': ('quantilesTDigestWeighted', 'SimpleState'), 'quantileDeterministicSimpleState': ('quantileDeterministic', 'SimpleState'), 'retentionSimpleState': ('retention', 'SimpleState'), 'groupBitmapXorSimpleState': ('groupBitmapXor', 'SimpleState'), 'quantilesExactExclusiveSimpleState': ('quantilesExactExclusive', 'SimpleState'), 'groupArrayMovingSumSimpleState': ('groupArrayMovingSum', 'SimpleState'), 'quantileBFloat16WeightedSimpleState': ('quantileBFloat16Weighted', 'SimpleState'), 'first_valueSimpleState': ('first_value', 'SimpleState'), 'studentTTestSimpleState': ('studentTTest', 'SimpleState'), 'topKWeightedSimpleState': ('topKWeighted', 'SimpleState'), 'quantileTDigestWeightedSimpleState': ('quantileTDigestWeighted', 'SimpleState'), 'categoricalInformationValueSimpleState': ('categoricalInformationValue', 'SimpleState'), 'sequenceCountSimpleState': ('sequenceCount', 'SimpleState'), 'groupBitAndSimpleState': ('groupBitAnd', 'SimpleState'), 'largestTriangleThreeBucketsSimpleState': ('largestTriangleThreeBuckets', 'SimpleState'), 'groupBitOrSimpleState': ('groupBitOr', 'SimpleState'), 'groupBitmapOrSimpleState': ('groupBitmapOr', 'SimpleState'), 'deltaSumTimestampSimpleState': ('deltaSumTimestamp', 'SimpleState'), 'argMinSimpleState': ('argMin', 'SimpleState'), 'groupBitmapAndSimpleState': ('groupBitmapAnd', 'SimpleState'), 'varSampSimpleState': ('varSamp', 'SimpleState'), 'exponentialTimeDecayedAvgSimpleState': ('exponentialTimeDecayedAvg', 'SimpleState'), 'maxSimpleState': ('max', 'SimpleState'), 'quantileExactLowSimpleState': ('quantileExactLow', 'SimpleState'), 'maxIntersectionsPositionSimpleState': ('maxIntersectionsPosition', 'SimpleState'), 'groupArraySimpleState': ('groupArray', 'SimpleState'), 'quantileSimpleState': ('quantile', 'SimpleState'), 'welchTTestMergeState': ('welchTTest', 'MergeState'), 'histogramMergeState': ('histogram', 'MergeState'), 'countMergeState': ('count', 'MergeState'), 'quantileTimingWeightedMergeState': ('quantileTimingWeighted', 'MergeState'), 'cramersVMergeState': ('cramersV', 'MergeState'), 'skewPopMergeState': ('skewPop', 'MergeState'), 'quantileTDigestMergeState': ('quantileTDigest', 'MergeState'), 'stochasticLogisticRegressionMergeState': ('stochasticLogisticRegression', 'MergeState'), 'quantileInterpolatedWeightedMergeState': ('quantileInterpolatedWeighted', 'MergeState'), 'maxMapMergeState': ('maxMap', 'MergeState'), 'theilsUMergeState': ('theilsU', 'MergeState'), 'last_valueMergeState': ('last_value', 'MergeState'), 'argMaxMergeState': ('argMax', 'MergeState'), 'quantilesTDigestMergeState': ('quantilesTDigest', 'MergeState'), 'kurtPopMergeState': ('kurtPop', 'MergeState'), 'groupBitXorMergeState': ('groupBitXor', 'MergeState'), 'groupArrayMovingAvgMergeState': ('groupArrayMovingAvg', 'MergeState'), 'medianMergeState': ('median', 'MergeState'), 'groupUniqArrayMergeState': ('groupUniqArray', 'MergeState'), 'cramersVBiasCorrectedMergeState': ('cramersVBiasCorrected', 'MergeState'), 'groupBitmapMergeState': ('groupBitmap', 'MergeState'), 'sequenceNextNodeMergeState': ('sequenceNextNode', 'MergeState'), 'deltaSumMergeState': ('deltaSum', 'MergeState'), 'anyHeavyMergeState': ('anyHeavy', 'MergeState'), 'quantileBFloat16MergeState': ('quantileBFloat16', 'MergeState'), 'uniqHLL12MergeState': ('uniqHLL12', 'MergeState'), 'groupConcatMergeState': ('groupConcat', 'MergeState'), 'simpleLinearRegressionMergeState': ('simpleLinearRegression', 'MergeState'), 'stddevPopMergeState': ('stddevPop', 'MergeState'), 'sumKahanMergeState': ('sumKahan', 'MergeState'), 'contingencyMergeState': ('contingency', 'MergeState'), 'minMapMergeState': ('minMap', 'MergeState'), 'avgMergeState': ('avg', 'MergeState'), 'quantilesExactWeightedMergeState': ('quantilesExactWeighted', 'MergeState'), 'quantilesTimingMergeState': ('quantilesTiming', 'MergeState'), 'uniqThetaMergeState': ('uniqTheta', 'MergeState'), 'exponentialMovingAverageMergeState': ('exponentialMovingAverage', 'MergeState'), 'quantilesBFloat16WeightedMergeState': ('quantilesBFloat16Weighted', 'MergeState'), 'intervalLengthSumMergeState': ('intervalLengthSum', 'MergeState'), 'uniqCombined64MergeState': ('uniqCombined64', 'MergeState'), 'anyMergeState': ('any', 'MergeState'), 'uniqCombinedMergeState': ('uniqCombined', 'MergeState'), 'avgWeightedMergeState': ('avgWeighted', 'MergeState'), 'quantileTimingMergeState': ('quantileTiming', 'MergeState'), 'uniqUpToMergeState': ('uniqUpTo', 'MergeState'), 'minMergeState': ('min', 'MergeState'), 'anyLastMergeState': ('anyLast', 'MergeState'), 'skewSampMergeState': ('skewSamp', 'MergeState'), 'kurtSampMergeState': ('kurtSamp', 'MergeState'), 'groupArraySampleMergeState': ('groupArraySample', 'MergeState'), 'topKMergeState': ('topK', 'MergeState'), 'sumMergeState': ('sum', 'MergeState'), 'sumMapMergeState': ('sumMap', 'MergeState'), 'quantilesExactHighMergeState': ('quantilesExactHigh', 'MergeState'), 'quantilesExactLowMergeState': ('quantilesExactLow', 'MergeState'), 'quantileExactWeightedMergeState': ('quantileExactWeighted', 'MergeState'), 'sumCountMergeState': ('sumCount', 'MergeState'), 'rankCorrMergeState': ('rankCorr', 'MergeState'), 'quantilesGKMergeState': ('quantilesGK', 'MergeState'), 'uniqExactMergeState': ('uniqExact', 'MergeState'), 'groupArrayLastMergeState': ('groupArrayLast', 'MergeState'), 'windowFunnelMergeState': ('windowFunnel', 'MergeState'), 'maxIntersectionsMergeState': ('maxIntersections', 'MergeState'), 'corrMergeState': ('corr', 'MergeState'), 'sumWithOverflowMergeState': ('sumWithOverflow', 'MergeState'), 'quantilesBFloat16MergeState': ('quantilesBFloat16', 'MergeState'), 'quantileExactMergeState': ('quantileExact', 'MergeState'), 'entropyMergeState': ('entropy', 'MergeState'), 'quantilesInterpolatedWeightedMergeState': ('quantilesInterpolatedWeighted', 'MergeState'), 'quantilesMergeState': ('quantiles', 'MergeState'), 'stochasticLinearRegressionMergeState': ('stochasticLinearRegression', 'MergeState'), 'mannWhitneyUTestMergeState': ('mannWhitneyUTest', 'MergeState'), 'quantilesTimingWeightedMergeState': ('quantilesTimingWeighted', 'MergeState'), 'covarSampMergeState': ('covarSamp', 'MergeState'), 'varPopMergeState': ('varPop', 'MergeState'), 'sequenceMatchMergeState': ('sequenceMatch', 'MergeState'), 'meanZTestMergeState': ('meanZTest', 'MergeState'), 'approx_top_sumMergeState': ('approx_top_sum', 'MergeState'), 'boundingRatioMergeState': ('boundingRatio', 'MergeState'), 'kolmogorovSmirnovTestMergeState': ('kolmogorovSmirnovTest', 'MergeState'), 'covarPopMergeState': ('covarPop', 'MergeState'), 'quantileGKMergeState': ('quantileGK', 'MergeState'), 'stddevSampMergeState': ('stddevSamp', 'MergeState'), 'sparkBarMergeState': ('sparkBar', 'MergeState'), 'quantileExactHighMergeState': ('quantileExactHigh', 'MergeState'), 'quantilesExactMergeState': ('quantilesExact', 'MergeState'), 'uniqMergeState': ('uniq', 'MergeState'), 'groupArrayInsertAtMergeState': ('groupArrayInsertAt', 'MergeState'), 'quantilesDeterministicMergeState': ('quantilesDeterministic', 'MergeState'), 'quantilesTDigestWeightedMergeState': ('quantilesTDigestWeighted', 'MergeState'), 'quantileDeterministicMergeState': ('quantileDeterministic', 'MergeState'), 'retentionMergeState': ('retention', 'MergeState'), 'groupBitmapXorMergeState': ('groupBitmapXor', 'MergeState'), 'quantilesExactExclusiveMergeState': ('quantilesExactExclusive', 'MergeState'), 'groupArrayMovingSumMergeState': ('groupArrayMovingSum', 'MergeState'), 'quantileBFloat16WeightedMergeState': ('quantileBFloat16Weighted', 'MergeState'), 'first_valueMergeState': ('first_value', 'MergeState'), 'studentTTestMergeState': ('studentTTest', 'MergeState'), 'topKWeightedMergeState': ('topKWeighted', 'MergeState'), 'quantileTDigestWeightedMergeState': ('quantileTDigestWeighted', 'MergeState'), 'categoricalInformationValueMergeState': ('categoricalInformationValue', 'MergeState'), 'sequenceCountMergeState': ('sequenceCount', 'MergeState'), 'groupBitAndMergeState': ('groupBitAnd', 'MergeState'), 'largestTriangleThreeBucketsMergeState': ('largestTriangleThreeBuckets', 'MergeState'), 'groupBitOrMergeState': ('groupBitOr', 'MergeState'), 'groupBitmapOrMergeState': ('groupBitmapOr', 'MergeState'), 'deltaSumTimestampMergeState': ('deltaSumTimestamp', 'MergeState'), 'argMinMergeState': ('argMin', 'MergeState'), 'groupBitmapAndMergeState': ('groupBitmapAnd', 'MergeState'), 'varSampMergeState': ('varSamp', 'MergeState'), 'exponentialTimeDecayedAvgMergeState': ('exponentialTimeDecayedAvg', 'MergeState'), 'maxMergeState': ('max', 'MergeState'), 'quantileExactLowMergeState': ('quantileExactLow', 'MergeState'), 'maxIntersectionsPositionMergeState': ('maxIntersectionsPosition', 'MergeState'), 'groupArrayMergeState': ('groupArray', 'MergeState'), 'quantileMergeState': ('quantile', 'MergeState'), 'welchTTestOrDefault': ('welchTTest', 'OrDefault'), 'histogramOrDefault': ('histogram', 'OrDefault'), 'countOrDefault': ('count', 'OrDefault'), 'quantileTimingWeightedOrDefault': ('quantileTimingWeighted', 'OrDefault'), 'cramersVOrDefault': ('cramersV', 'OrDefault'), 'skewPopOrDefault': ('skewPop', 'OrDefault'), 'quantileTDigestOrDefault': ('quantileTDigest', 'OrDefault'), 'stochasticLogisticRegressionOrDefault': ('stochasticLogisticRegression', 'OrDefault'), 'quantileInterpolatedWeightedOrDefault': ('quantileInterpolatedWeighted', 'OrDefault'), 'maxMapOrDefault': ('maxMap', 'OrDefault'), 'theilsUOrDefault': ('theilsU', 'OrDefault'), 'last_valueOrDefault': ('last_value', 'OrDefault'), 'argMaxOrDefault': ('argMax', 'OrDefault'), 'quantilesTDigestOrDefault': ('quantilesTDigest', 'OrDefault'), 'kurtPopOrDefault': ('kurtPop', 'OrDefault'), 'groupBitXorOrDefault': ('groupBitXor', 'OrDefault'), 'groupArrayMovingAvgOrDefault': ('groupArrayMovingAvg', 'OrDefault'), 'medianOrDefault': ('median', 'OrDefault'), 'groupUniqArrayOrDefault': ('groupUniqArray', 'OrDefault'), 'cramersVBiasCorrectedOrDefault': ('cramersVBiasCorrected', 'OrDefault'), 'groupBitmapOrDefault': ('groupBitmap', 'OrDefault'), 'sequenceNextNodeOrDefault': ('sequenceNextNode', 'OrDefault'), 'deltaSumOrDefault': ('deltaSum', 'OrDefault'), 'anyHeavyOrDefault': ('anyHeavy', 'OrDefault'), 'quantileBFloat16OrDefault': ('quantileBFloat16', 'OrDefault'), 'uniqHLL12OrDefault': ('uniqHLL12', 'OrDefault'), 'groupConcatOrDefault': ('groupConcat', 'OrDefault'), 'simpleLinearRegressionOrDefault': ('simpleLinearRegression', 'OrDefault'), 'stddevPopOrDefault': ('stddevPop', 'OrDefault'), 'sumKahanOrDefault': ('sumKahan', 'OrDefault'), 'contingencyOrDefault': ('contingency', 'OrDefault'), 'minMapOrDefault': ('minMap', 'OrDefault'), 'avgOrDefault': ('avg', 'OrDefault'), 'quantilesExactWeightedOrDefault': ('quantilesExactWeighted', 'OrDefault'), 'quantilesTimingOrDefault': ('quantilesTiming', 'OrDefault'), 'uniqThetaOrDefault': ('uniqTheta', 'OrDefault'), 'exponentialMovingAverageOrDefault': ('exponentialMovingAverage', 'OrDefault'), 'quantilesBFloat16WeightedOrDefault': ('quantilesBFloat16Weighted', 'OrDefault'), 'intervalLengthSumOrDefault': ('intervalLengthSum', 'OrDefault'), 'uniqCombined64OrDefault': ('uniqCombined64', 'OrDefault'), 'anyOrDefault': ('any', 'OrDefault'), 'uniqCombinedOrDefault': ('uniqCombined', 'OrDefault'), 'avgWeightedOrDefault': ('avgWeighted', 'OrDefault'), 'quantileTimingOrDefault': ('quantileTiming', 'OrDefault'), 'uniqUpToOrDefault': ('uniqUpTo', 'OrDefault'), 'minOrDefault': ('min', 'OrDefault'), 'anyLastOrDefault': ('anyLast', 'OrDefault'), 'skewSampOrDefault': ('skewSamp', 'OrDefault'), 'kurtSampOrDefault': ('kurtSamp', 'OrDefault'), 'groupArraySampleOrDefault': ('groupArraySample', 'OrDefault'), 'topKOrDefault': ('topK', 'OrDefault'), 'sumOrDefault': ('sum', 'OrDefault'), 'sumMapOrDefault': ('sumMap', 'OrDefault'), 'quantilesExactHighOrDefault': ('quantilesExactHigh', 'OrDefault'), 'quantilesExactLowOrDefault': ('quantilesExactLow', 'OrDefault'), 'quantileExactWeightedOrDefault': ('quantileExactWeighted', 'OrDefault'), 'sumCountOrDefault': ('sumCount', 'OrDefault'), 'rankCorrOrDefault': ('rankCorr', 'OrDefault'), 'quantilesGKOrDefault': ('quantilesGK', 'OrDefault'), 'uniqExactOrDefault': ('uniqExact', 'OrDefault'), 'groupArrayLastOrDefault': ('groupArrayLast', 'OrDefault'), 'windowFunnelOrDefault': ('windowFunnel', 'OrDefault'), 'maxIntersectionsOrDefault': ('maxIntersections', 'OrDefault'), 'corrOrDefault': ('corr', 'OrDefault'), 'sumWithOverflowOrDefault': ('sumWithOverflow', 'OrDefault'), 'quantilesBFloat16OrDefault': ('quantilesBFloat16', 'OrDefault'), 'quantileExactOrDefault': ('quantileExact', 'OrDefault'), 'entropyOrDefault': ('entropy', 'OrDefault'), 'quantilesInterpolatedWeightedOrDefault': ('quantilesInterpolatedWeighted', 'OrDefault'), 'quantilesOrDefault': ('quantiles', 'OrDefault'), 'stochasticLinearRegressionOrDefault': ('stochasticLinearRegression', 'OrDefault'), 'mannWhitneyUTestOrDefault': ('mannWhitneyUTest', 'OrDefault'), 'quantilesTimingWeightedOrDefault': ('quantilesTimingWeighted', 'OrDefault'), 'covarSampOrDefault': ('covarSamp', 'OrDefault'), 'varPopOrDefault': ('varPop', 'OrDefault'), 'sequenceMatchOrDefault': ('sequenceMatch', 'OrDefault'), 'meanZTestOrDefault': ('meanZTest', 'OrDefault'), 'approx_top_sumOrDefault': ('approx_top_sum', 'OrDefault'), 'boundingRatioOrDefault': ('boundingRatio', 'OrDefault'), 'kolmogorovSmirnovTestOrDefault': ('kolmogorovSmirnovTest', 'OrDefault'), 'covarPopOrDefault': ('covarPop', 'OrDefault'), 'quantileGKOrDefault': ('quantileGK', 'OrDefault'), 'stddevSampOrDefault': ('stddevSamp', 'OrDefault'), 'sparkBarOrDefault': ('sparkBar', 'OrDefault'), 'quantileExactHighOrDefault': ('quantileExactHigh', 'OrDefault'), 'quantilesExactOrDefault': ('quantilesExact', 'OrDefault'), 'uniqOrDefault': ('uniq', 'OrDefault'), 'groupArrayInsertAtOrDefault': ('groupArrayInsertAt', 'OrDefault'), 'quantilesDeterministicOrDefault': ('quantilesDeterministic', 'OrDefault'), 'quantilesTDigestWeightedOrDefault': ('quantilesTDigestWeighted', 'OrDefault'), 'quantileDeterministicOrDefault': ('quantileDeterministic', 'OrDefault'), 'retentionOrDefault': ('retention', 'OrDefault'), 'groupBitmapXorOrDefault': ('groupBitmapXor', 'OrDefault'), 'quantilesExactExclusiveOrDefault': ('quantilesExactExclusive', 'OrDefault'), 'groupArrayMovingSumOrDefault': ('groupArrayMovingSum', 'OrDefault'), 'quantileBFloat16WeightedOrDefault': ('quantileBFloat16Weighted', 'OrDefault'), 'first_valueOrDefault': ('first_value', 'OrDefault'), 'studentTTestOrDefault': ('studentTTest', 'OrDefault'), 'topKWeightedOrDefault': ('topKWeighted', 'OrDefault'), 'quantileTDigestWeightedOrDefault': ('quantileTDigestWeighted', 'OrDefault'), 'categoricalInformationValueOrDefault': ('categoricalInformationValue', 'OrDefault'), 'sequenceCountOrDefault': ('sequenceCount', 'OrDefault'), 'groupBitAndOrDefault': ('groupBitAnd', 'OrDefault'), 'largestTriangleThreeBucketsOrDefault': ('largestTriangleThreeBuckets', 'OrDefault'), 'groupBitOrOrDefault': ('groupBitOr', 'OrDefault'), 'groupBitmapOrOrDefault': ('groupBitmapOr', 'OrDefault'), 'deltaSumTimestampOrDefault': ('deltaSumTimestamp', 'OrDefault'), 'argMinOrDefault': ('argMin', 'OrDefault'), 'groupBitmapAndOrDefault': ('groupBitmapAnd', 'OrDefault'), 'varSampOrDefault': ('varSamp', 'OrDefault'), 'exponentialTimeDecayedAvgOrDefault': ('exponentialTimeDecayedAvg', 'OrDefault'), 'maxOrDefault': ('max', 'OrDefault'), 'quantileExactLowOrDefault': ('quantileExactLow', 'OrDefault'), 'maxIntersectionsPositionOrDefault': ('maxIntersectionsPosition', 'OrDefault'), 'groupArrayOrDefault': ('groupArray', 'OrDefault'), 'quantileOrDefault': ('quantile', 'OrDefault'), 'welchTTestDistinct': ('welchTTest', 'Distinct'), 'histogramDistinct': ('histogram', 'Distinct'), 'countDistinct': ('count', 'Distinct'), 'quantileTimingWeightedDistinct': ('quantileTimingWeighted', 'Distinct'), 'cramersVDistinct': ('cramersV', 'Distinct'), 'skewPopDistinct': ('skewPop', 'Distinct'), 'quantileTDigestDistinct': ('quantileTDigest', 'Distinct'), 'stochasticLogisticRegressionDistinct': ('stochasticLogisticRegression', 'Distinct'), 'quantileInterpolatedWeightedDistinct': ('quantileInterpolatedWeighted', 'Distinct'), 'maxMapDistinct': ('maxMap', 'Distinct'), 'theilsUDistinct': ('theilsU', 'Distinct'), 'last_valueDistinct': ('last_value', 'Distinct'), 'argMaxDistinct': ('argMax', 'Distinct'), 'quantilesTDigestDistinct': ('quantilesTDigest', 'Distinct'), 'kurtPopDistinct': ('kurtPop', 'Distinct'), 'groupBitXorDistinct': ('groupBitXor', 'Distinct'), 'groupArrayMovingAvgDistinct': ('groupArrayMovingAvg', 'Distinct'), 'medianDistinct': ('median', 'Distinct'), 'groupUniqArrayDistinct': ('groupUniqArray', 'Distinct'), 'cramersVBiasCorrectedDistinct': ('cramersVBiasCorrected', 'Distinct'), 'groupBitmapDistinct': ('groupBitmap', 'Distinct'), 'sequenceNextNodeDistinct': ('sequenceNextNode', 'Distinct'), 'deltaSumDistinct': ('deltaSum', 'Distinct'), 'anyHeavyDistinct': ('anyHeavy', 'Distinct'), 'quantileBFloat16Distinct': ('quantileBFloat16', 'Distinct'), 'uniqHLL12Distinct': ('uniqHLL12', 'Distinct'), 'groupConcatDistinct': ('groupConcat', 'Distinct'), 'simpleLinearRegressionDistinct': ('simpleLinearRegression', 'Distinct'), 'stddevPopDistinct': ('stddevPop', 'Distinct'), 'sumKahanDistinct': ('sumKahan', 'Distinct'), 'contingencyDistinct': ('contingency', 'Distinct'), 'minMapDistinct': ('minMap', 'Distinct'), 'avgDistinct': ('avg', 'Distinct'), 'quantilesExactWeightedDistinct': ('quantilesExactWeighted', 'Distinct'), 'quantilesTimingDistinct': ('quantilesTiming', 'Distinct'), 'uniqThetaDistinct': ('uniqTheta', 'Distinct'), 'exponentialMovingAverageDistinct': ('exponentialMovingAverage', 'Distinct'), 'quantilesBFloat16WeightedDistinct': ('quantilesBFloat16Weighted', 'Distinct'), 'intervalLengthSumDistinct': ('intervalLengthSum', 'Distinct'), 'uniqCombined64Distinct': ('uniqCombined64', 'Distinct'), 'anyDistinct': ('any', 'Distinct'), 'uniqCombinedDistinct': ('uniqCombined', 'Distinct'), 'avgWeightedDistinct': ('avgWeighted', 'Distinct'), 'quantileTimingDistinct': ('quantileTiming', 'Distinct'), 'uniqUpToDistinct': ('uniqUpTo', 'Distinct'), 'minDistinct': ('min', 'Distinct'), 'anyLastDistinct': ('anyLast', 'Distinct'), 'skewSampDistinct': ('skewSamp', 'Distinct'), 'kurtSampDistinct': ('kurtSamp', 'Distinct'), 'groupArraySampleDistinct': ('groupArraySample', 'Distinct'), 'topKDistinct': ('topK', 'Distinct'), 'sumDistinct': ('sum', 'Distinct'), 'sumMapDistinct': ('sumMap', 'Distinct'), 'quantilesExactHighDistinct': ('quantilesExactHigh', 'Distinct'), 'quantilesExactLowDistinct': ('quantilesExactLow', 'Distinct'), 'quantileExactWeightedDistinct': ('quantileExactWeighted', 'Distinct'), 'sumCountDistinct': ('sumCount', 'Distinct'), 'rankCorrDistinct': ('rankCorr', 'Distinct'), 'quantilesGKDistinct': ('quantilesGK', 'Distinct'), 'uniqExactDistinct': ('uniqExact', 'Distinct'), 'groupArrayLastDistinct': ('groupArrayLast', 'Distinct'), 'windowFunnelDistinct': ('windowFunnel', 'Distinct'), 'maxIntersectionsDistinct': ('maxIntersections', 'Distinct'), 'corrDistinct': ('corr', 'Distinct'), 'sumWithOverflowDistinct': ('sumWithOverflow', 'Distinct'), 'quantilesBFloat16Distinct': ('quantilesBFloat16', 'Distinct'), 'quantileExactDistinct': ('quantileExact', 'Distinct'), 'entropyDistinct': ('entropy', 'Distinct'), 'quantilesInterpolatedWeightedDistinct': ('quantilesInterpolatedWeighted', 'Distinct'), 'quantilesDistinct': ('quantiles', 'Distinct'), 'stochasticLinearRegressionDistinct': ('stochasticLinearRegression', 'Distinct'), 'mannWhitneyUTestDistinct': ('mannWhitneyUTest', 'Distinct'), 'quantilesTimingWeightedDistinct': ('quantilesTimingWeighted', 'Distinct'), 'covarSampDistinct': ('covarSamp', 'Distinct'), 'varPopDistinct': ('varPop', 'Distinct'), 'sequenceMatchDistinct': ('sequenceMatch', 'Distinct'), 'meanZTestDistinct': ('meanZTest', 'Distinct'), 'approx_top_sumDistinct': ('approx_top_sum', 'Distinct'), 'boundingRatioDistinct': ('boundingRatio', 'Distinct'), 'kolmogorovSmirnovTestDistinct': ('kolmogorovSmirnovTest', 'Distinct'), 'covarPopDistinct': ('covarPop', 'Distinct'), 'quantileGKDistinct': ('quantileGK', 'Distinct'), 'stddevSampDistinct': ('stddevSamp', 'Distinct'), 'sparkBarDistinct': ('sparkBar', 'Distinct'), 'quantileExactHighDistinct': ('quantileExactHigh', 'Distinct'), 'quantilesExactDistinct': ('quantilesExact', 'Distinct'), 'uniqDistinct': ('uniq', 'Distinct'), 'groupArrayInsertAtDistinct': ('groupArrayInsertAt', 'Distinct'), 'quantilesDeterministicDistinct': ('quantilesDeterministic', 'Distinct'), 'quantilesTDigestWeightedDistinct': ('quantilesTDigestWeighted', 'Distinct'), 'quantileDeterministicDistinct': ('quantileDeterministic', 'Distinct'), 'retentionDistinct': ('retention', 'Distinct'), 'groupBitmapXorDistinct': ('groupBitmapXor', 'Distinct'), 'quantilesExactExclusiveDistinct': ('quantilesExactExclusive', 'Distinct'), 'groupArrayMovingSumDistinct': ('groupArrayMovingSum', 'Distinct'), 'quantileBFloat16WeightedDistinct': ('quantileBFloat16Weighted', 'Distinct'), 'first_valueDistinct': ('first_value', 'Distinct'), 'studentTTestDistinct': ('studentTTest', 'Distinct'), 'topKWeightedDistinct': ('topKWeighted', 'Distinct'), 'quantileTDigestWeightedDistinct': ('quantileTDigestWeighted', 'Distinct'), 'categoricalInformationValueDistinct': ('categoricalInformationValue', 'Distinct'), 'sequenceCountDistinct': ('sequenceCount', 'Distinct'), 'groupBitAndDistinct': ('groupBitAnd', 'Distinct'), 'largestTriangleThreeBucketsDistinct': ('largestTriangleThreeBuckets', 'Distinct'), 'groupBitOrDistinct': ('groupBitOr', 'Distinct'), 'groupBitmapOrDistinct': ('groupBitmapOr', 'Distinct'), 'deltaSumTimestampDistinct': ('deltaSumTimestamp', 'Distinct'), 'argMinDistinct': ('argMin', 'Distinct'), 'groupBitmapAndDistinct': ('groupBitmapAnd', 'Distinct'), 'varSampDistinct': ('varSamp', 'Distinct'), 'exponentialTimeDecayedAvgDistinct': ('exponentialTimeDecayedAvg', 'Distinct'), 'maxDistinct': ('max', 'Distinct'), 'quantileExactLowDistinct': ('quantileExactLow', 'Distinct'), 'maxIntersectionsPositionDistinct': ('maxIntersectionsPosition', 'Distinct'), 'groupArrayDistinct': ('groupArray', 'Distinct'), 'quantileDistinct': ('quantile', 'Distinct'), 'welchTTestResample': ('welchTTest', 'Resample'), 'histogramResample': ('histogram', 'Resample'), 'countResample': ('count', 'Resample'), 'quantileTimingWeightedResample': ('quantileTimingWeighted', 'Resample'), 'cramersVResample': ('cramersV', 'Resample'), 'skewPopResample': ('skewPop', 'Resample'), 'quantileTDigestResample': ('quantileTDigest', 'Resample'), 'stochasticLogisticRegressionResample': ('stochasticLogisticRegression', 'Resample'), 'quantileInterpolatedWeightedResample': ('quantileInterpolatedWeighted', 'Resample'), 'maxMapResample': ('maxMap', 'Resample'), 'theilsUResample': ('theilsU', 'Resample'), 'last_valueResample': ('last_value', 'Resample'), 'argMaxResample': ('argMax', 'Resample'), 'quantilesTDigestResample': ('quantilesTDigest', 'Resample'), 'kurtPopResample': ('kurtPop', 'Resample'), 'groupBitXorResample': ('groupBitXor', 'Resample'), 'groupArrayMovingAvgResample': ('groupArrayMovingAvg', 'Resample'), 'medianResample': ('median', 'Resample'), 'groupUniqArrayResample': ('groupUniqArray', 'Resample'), 'cramersVBiasCorrectedResample': ('cramersVBiasCorrected', 'Resample'), 'groupBitmapResample': ('groupBitmap', 'Resample'), 'sequenceNextNodeResample': ('sequenceNextNode', 'Resample'), 'deltaSumResample': ('deltaSum', 'Resample'), 'anyHeavyResample': ('anyHeavy', 'Resample'), 'quantileBFloat16Resample': ('quantileBFloat16', 'Resample'), 'uniqHLL12Resample': ('uniqHLL12', 'Resample'), 'groupConcatResample': ('groupConcat', 'Resample'), 'simpleLinearRegressionResample': ('simpleLinearRegression', 'Resample'), 'stddevPopResample': ('stddevPop', 'Resample'), 'sumKahanResample': ('sumKahan', 'Resample'), 'contingencyResample': ('contingency', 'Resample'), 'minMapResample': ('minMap', 'Resample'), 'avgResample': ('avg', 'Resample'), 'quantilesExactWeightedResample': ('quantilesExactWeighted', 'Resample'), 'quantilesTimingResample': ('quantilesTiming', 'Resample'), 'uniqThetaResample': ('uniqTheta', 'Resample'), 'exponentialMovingAverageResample': ('exponentialMovingAverage', 'Resample'), 'quantilesBFloat16WeightedResample': ('quantilesBFloat16Weighted', 'Resample'), 'intervalLengthSumResample': ('intervalLengthSum', 'Resample'), 'uniqCombined64Resample': ('uniqCombined64', 'Resample'), 'anyResample': ('any', 'Resample'), 'uniqCombinedResample': ('uniqCombined', 'Resample'), 'avgWeightedResample': ('avgWeighted', 'Resample'), 'quantileTimingResample': ('quantileTiming', 'Resample'), 'uniqUpToResample': ('uniqUpTo', 'Resample'), 'minResample': ('min', 'Resample'), 'anyLastResample': ('anyLast', 'Resample'), 'skewSampResample': ('skewSamp', 'Resample'), 'kurtSampResample': ('kurtSamp', 'Resample'), 'groupArraySampleResample': ('groupArraySample', 'Resample'), 'topKResample': ('topK', 'Resample'), 'sumResample': ('sum', 'Resample'), 'sumMapResample': ('sumMap', 'Resample'), 'quantilesExactHighResample': ('quantilesExactHigh', 'Resample'), 'quantilesExactLowResample': ('quantilesExactLow', 'Resample'), 'quantileExactWeightedResample': ('quantileExactWeighted', 'Resample'), 'sumCountResample': ('sumCount', 'Resample'), 'rankCorrResample': ('rankCorr', 'Resample'), 'quantilesGKResample': ('quantilesGK', 'Resample'), 'uniqExactResample': ('uniqExact', 'Resample'), 'groupArrayLastResample': ('groupArrayLast', 'Resample'), 'windowFunnelResample': ('windowFunnel', 'Resample'), 'maxIntersectionsResample': ('maxIntersections', 'Resample'), 'corrResample': ('corr', 'Resample'), 'sumWithOverflowResample': ('sumWithOverflow', 'Resample'), 'quantilesBFloat16Resample': ('quantilesBFloat16', 'Resample'), 'quantileExactResample': ('quantileExact', 'Resample'), 'entropyResample': ('entropy', 'Resample'), 'quantilesInterpolatedWeightedResample': ('quantilesInterpolatedWeighted', 'Resample'), 'quantilesResample': ('quantiles', 'Resample'), 'stochasticLinearRegressionResample': ('stochasticLinearRegression', 'Resample'), 'mannWhitneyUTestResample': ('mannWhitneyUTest', 'Resample'), 'quantilesTimingWeightedResample': ('quantilesTimingWeighted', 'Resample'), 'covarSampResample': ('covarSamp', 'Resample'), 'varPopResample': ('varPop', 'Resample'), 'sequenceMatchResample': ('sequenceMatch', 'Resample'), 'meanZTestResample': ('meanZTest', 'Resample'), 'approx_top_sumResample': ('approx_top_sum', 'Resample'), 'boundingRatioResample': ('boundingRatio', 'Resample'), 'kolmogorovSmirnovTestResample': ('kolmogorovSmirnovTest', 'Resample'), 'covarPopResample': ('covarPop', 'Resample'), 'quantileGKResample': ('quantileGK', 'Resample'), 'stddevSampResample': ('stddevSamp', 'Resample'), 'sparkBarResample': ('sparkBar', 'Resample'), 'quantileExactHighResample': ('quantileExactHigh', 'Resample'), 'quantilesExactResample': ('quantilesExact', 'Resample'), 'uniqResample': ('uniq', 'Resample'), 'groupArrayInsertAtResample': ('groupArrayInsertAt', 'Resample'), 'quantilesDeterministicResample': ('quantilesDeterministic', 'Resample'), 'quantilesTDigestWeightedResample': ('quantilesTDigestWeighted', 'Resample'), 'quantileDeterministicResample': ('quantileDeterministic', 'Resample'), 'retentionResample': ('retention', 'Resample'), 'groupBitmapXorResample': ('groupBitmapXor', 'Resample'), 'quantilesExactExclusiveResample': ('quantilesExactExclusive', 'Resample'), 'groupArrayMovingSumResample': ('groupArrayMovingSum', 'Resample'), 'quantileBFloat16WeightedResample': ('quantileBFloat16Weighted', 'Resample'), 'first_valueResample': ('first_value', 'Resample'), 'studentTTestResample': ('studentTTest', 'Resample'), 'topKWeightedResample': ('topKWeighted', 'Resample'), 'quantileTDigestWeightedResample': ('quantileTDigestWeighted', 'Resample'), 'categoricalInformationValueResample': ('categoricalInformationValue', 'Resample'), 'sequenceCountResample': ('sequenceCount', 'Resample'), 'groupBitAndResample': ('groupBitAnd', 'Resample'), 'largestTriangleThreeBucketsResample': ('largestTriangleThreeBuckets', 'Resample'), 'groupBitOrResample': ('groupBitOr', 'Resample'), 'groupBitmapOrResample': ('groupBitmapOr', 'Resample'), 'deltaSumTimestampResample': ('deltaSumTimestamp', 'Resample'), 'argMinResample': ('argMin', 'Resample'), 'groupBitmapAndResample': ('groupBitmapAnd', 'Resample'), 'varSampResample': ('varSamp', 'Resample'), 'exponentialTimeDecayedAvgResample': ('exponentialTimeDecayedAvg', 'Resample'), 'maxResample': ('max', 'Resample'), 'quantileExactLowResample': ('quantileExactLow', 'Resample'), 'maxIntersectionsPositionResample': ('maxIntersectionsPosition', 'Resample'), 'groupArrayResample': ('groupArray', 'Resample'), 'quantileResample': ('quantile', 'Resample'), 'welchTTestArrayIf': ('welchTTest', 'ArrayIf'), 'histogramArrayIf': ('histogram', 'ArrayIf'), 'countArrayIf': ('count', 'ArrayIf'), 'quantileTimingWeightedArrayIf': ('quantileTimingWeighted', 'ArrayIf'), 'cramersVArrayIf': ('cramersV', 'ArrayIf'), 'skewPopArrayIf': ('skewPop', 'ArrayIf'), 'quantileTDigestArrayIf': ('quantileTDigest', 'ArrayIf'), 'stochasticLogisticRegressionArrayIf': ('stochasticLogisticRegression', 'ArrayIf'), 'quantileInterpolatedWeightedArrayIf': ('quantileInterpolatedWeighted', 'ArrayIf'), 'maxMapArrayIf': ('maxMap', 'ArrayIf'), 'theilsUArrayIf': ('theilsU', 'ArrayIf'), 'last_valueArrayIf': ('last_value', 'ArrayIf'), 'argMaxArrayIf': ('argMax', 'ArrayIf'), 'quantilesTDigestArrayIf': ('quantilesTDigest', 'ArrayIf'), 'kurtPopArrayIf': ('kurtPop', 'ArrayIf'), 'groupBitXorArrayIf': ('groupBitXor', 'ArrayIf'), 'groupArrayMovingAvgArrayIf': ('groupArrayMovingAvg', 'ArrayIf'), 'medianArrayIf': ('median', 'ArrayIf'), 'groupUniqArrayArrayIf': ('groupUniqArray', 'ArrayIf'), 'cramersVBiasCorrectedArrayIf': ('cramersVBiasCorrected', 'ArrayIf'), 'groupBitmapArrayIf': ('groupBitmap', 'ArrayIf'), 'sequenceNextNodeArrayIf': ('sequenceNextNode', 'ArrayIf'), 'deltaSumArrayIf': ('deltaSum', 'ArrayIf'), 'anyHeavyArrayIf': ('anyHeavy', 'ArrayIf'), 'quantileBFloat16ArrayIf': ('quantileBFloat16', 'ArrayIf'), 'uniqHLL12ArrayIf': ('uniqHLL12', 'ArrayIf'), 'groupConcatArrayIf': ('groupConcat', 'ArrayIf'), 'simpleLinearRegressionArrayIf': ('simpleLinearRegression', 'ArrayIf'), 'stddevPopArrayIf': ('stddevPop', 'ArrayIf'), 'sumKahanArrayIf': ('sumKahan', 'ArrayIf'), 'contingencyArrayIf': ('contingency', 'ArrayIf'), 'minMapArrayIf': ('minMap', 'ArrayIf'), 'avgArrayIf': ('avg', 'ArrayIf'), 'quantilesExactWeightedArrayIf': ('quantilesExactWeighted', 'ArrayIf'), 'quantilesTimingArrayIf': ('quantilesTiming', 'ArrayIf'), 'uniqThetaArrayIf': ('uniqTheta', 'ArrayIf'), 'exponentialMovingAverageArrayIf': ('exponentialMovingAverage', 'ArrayIf'), 'quantilesBFloat16WeightedArrayIf': ('quantilesBFloat16Weighted', 'ArrayIf'), 'intervalLengthSumArrayIf': ('intervalLengthSum', 'ArrayIf'), 'uniqCombined64ArrayIf': ('uniqCombined64', 'ArrayIf'), 'anyArrayIf': ('any', 'ArrayIf'), 'uniqCombinedArrayIf': ('uniqCombined', 'ArrayIf'), 'avgWeightedArrayIf': ('avgWeighted', 'ArrayIf'), 'quantileTimingArrayIf': ('quantileTiming', 'ArrayIf'), 'uniqUpToArrayIf': ('uniqUpTo', 'ArrayIf'), 'minArrayIf': ('min', 'ArrayIf'), 'anyLastArrayIf': ('anyLast', 'ArrayIf'), 'skewSampArrayIf': ('skewSamp', 'ArrayIf'), 'kurtSampArrayIf': ('kurtSamp', 'ArrayIf'), 'groupArraySampleArrayIf': ('groupArraySample', 'ArrayIf'), 'topKArrayIf': ('topK', 'ArrayIf'), 'sumArrayIf': ('sum', 'ArrayIf'), 'sumMapArrayIf': ('sumMap', 'ArrayIf'), 'quantilesExactHighArrayIf': ('quantilesExactHigh', 'ArrayIf'), 'quantilesExactLowArrayIf': ('quantilesExactLow', 'ArrayIf'), 'quantileExactWeightedArrayIf': ('quantileExactWeighted', 'ArrayIf'), 'sumCountArrayIf': ('sumCount', 'ArrayIf'), 'rankCorrArrayIf': ('rankCorr', 'ArrayIf'), 'quantilesGKArrayIf': ('quantilesGK', 'ArrayIf'), 'uniqExactArrayIf': ('uniqExact', 'ArrayIf'), 'groupArrayLastArrayIf': ('groupArrayLast', 'ArrayIf'), 'windowFunnelArrayIf': ('windowFunnel', 'ArrayIf'), 'maxIntersectionsArrayIf': ('maxIntersections', 'ArrayIf'), 'corrArrayIf': ('corr', 'ArrayIf'), 'sumWithOverflowArrayIf': ('sumWithOverflow', 'ArrayIf'), 'quantilesBFloat16ArrayIf': ('quantilesBFloat16', 'ArrayIf'), 'quantileExactArrayIf': ('quantileExact', 'ArrayIf'), 'entropyArrayIf': ('entropy', 'ArrayIf'), 'quantilesInterpolatedWeightedArrayIf': ('quantilesInterpolatedWeighted', 'ArrayIf'), 'quantilesArrayIf': ('quantiles', 'ArrayIf'), 'stochasticLinearRegressionArrayIf': ('stochasticLinearRegression', 'ArrayIf'), 'mannWhitneyUTestArrayIf': ('mannWhitneyUTest', 'ArrayIf'), 'quantilesTimingWeightedArrayIf': ('quantilesTimingWeighted', 'ArrayIf'), 'covarSampArrayIf': ('covarSamp', 'ArrayIf'), 'varPopArrayIf': ('varPop', 'ArrayIf'), 'sequenceMatchArrayIf': ('sequenceMatch', 'ArrayIf'), 'meanZTestArrayIf': ('meanZTest', 'ArrayIf'), 'approx_top_sumArrayIf': ('approx_top_sum', 'ArrayIf'), 'boundingRatioArrayIf': ('boundingRatio', 'ArrayIf'), 'kolmogorovSmirnovTestArrayIf': ('kolmogorovSmirnovTest', 'ArrayIf'), 'covarPopArrayIf': ('covarPop', 'ArrayIf'), 'quantileGKArrayIf': ('quantileGK', 'ArrayIf'), 'stddevSampArrayIf': ('stddevSamp', 'ArrayIf'), 'sparkBarArrayIf': ('sparkBar', 'ArrayIf'), 'quantileExactHighArrayIf': ('quantileExactHigh', 'ArrayIf'), 'quantilesExactArrayIf': ('quantilesExact', 'ArrayIf'), 'uniqArrayIf': ('uniq', 'ArrayIf'), 'groupArrayInsertAtArrayIf': ('groupArrayInsertAt', 'ArrayIf'), 'quantilesDeterministicArrayIf': ('quantilesDeterministic', 'ArrayIf'), 'quantilesTDigestWeightedArrayIf': ('quantilesTDigestWeighted', 'ArrayIf'), 'quantileDeterministicArrayIf': ('quantileDeterministic', 'ArrayIf'), 'retentionArrayIf': ('retention', 'ArrayIf'), 'groupBitmapXorArrayIf': ('groupBitmapXor', 'ArrayIf'), 'quantilesExactExclusiveArrayIf': ('quantilesExactExclusive', 'ArrayIf'), 'groupArrayMovingSumArrayIf': ('groupArrayMovingSum', 'ArrayIf'), 'quantileBFloat16WeightedArrayIf': ('quantileBFloat16Weighted', 'ArrayIf'), 'first_valueArrayIf': ('first_value', 'ArrayIf'), 'studentTTestArrayIf': ('studentTTest', 'ArrayIf'), 'topKWeightedArrayIf': ('topKWeighted', 'ArrayIf'), 'quantileTDigestWeightedArrayIf': ('quantileTDigestWeighted', 'ArrayIf'), 'categoricalInformationValueArrayIf': ('categoricalInformationValue', 'ArrayIf'), 'sequenceCountArrayIf': ('sequenceCount', 'ArrayIf'), 'groupBitAndArrayIf': ('groupBitAnd', 'ArrayIf'), 'largestTriangleThreeBucketsArrayIf': ('largestTriangleThreeBuckets', 'ArrayIf'), 'groupBitOrArrayIf': ('groupBitOr', 'ArrayIf'), 'groupBitmapOrArrayIf': ('groupBitmapOr', 'ArrayIf'), 'deltaSumTimestampArrayIf': ('deltaSumTimestamp', 'ArrayIf'), 'argMinArrayIf': ('argMin', 'ArrayIf'), 'groupBitmapAndArrayIf': ('groupBitmapAnd', 'ArrayIf'), 'varSampArrayIf': ('varSamp', 'ArrayIf'), 'exponentialTimeDecayedAvgArrayIf': ('exponentialTimeDecayedAvg', 'ArrayIf'), 'maxArrayIf': ('max', 'ArrayIf'), 'quantileExactLowArrayIf': ('quantileExactLow', 'ArrayIf'), 'maxIntersectionsPositionArrayIf': ('maxIntersectionsPosition', 'ArrayIf'), 'groupArrayArrayIf': ('groupArray', 'ArrayIf'), 'quantileArrayIf': ('quantile', 'ArrayIf'), 'welchTTestForEach': ('welchTTest', 'ForEach'), 'histogramForEach': ('histogram', 'ForEach'), 'countForEach': ('count', 'ForEach'), 'quantileTimingWeightedForEach': ('quantileTimingWeighted', 'ForEach'), 'cramersVForEach': ('cramersV', 'ForEach'), 'skewPopForEach': ('skewPop', 'ForEach'), 'quantileTDigestForEach': ('quantileTDigest', 'ForEach'), 'stochasticLogisticRegressionForEach': ('stochasticLogisticRegression', 'ForEach'), 'quantileInterpolatedWeightedForEach': ('quantileInterpolatedWeighted', 'ForEach'), 'maxMapForEach': ('maxMap', 'ForEach'), 'theilsUForEach': ('theilsU', 'ForEach'), 'last_valueForEach': ('last_value', 'ForEach'), 'argMaxForEach': ('argMax', 'ForEach'), 'quantilesTDigestForEach': ('quantilesTDigest', 'ForEach'), 'kurtPopForEach': ('kurtPop', 'ForEach'), 'groupBitXorForEach': ('groupBitXor', 'ForEach'), 'groupArrayMovingAvgForEach': ('groupArrayMovingAvg', 'ForEach'), 'medianForEach': ('median', 'ForEach'), 'groupUniqArrayForEach': ('groupUniqArray', 'ForEach'), 'cramersVBiasCorrectedForEach': ('cramersVBiasCorrected', 'ForEach'), 'groupBitmapForEach': ('groupBitmap', 'ForEach'), 'sequenceNextNodeForEach': ('sequenceNextNode', 'ForEach'), 'deltaSumForEach': ('deltaSum', 'ForEach'), 'anyHeavyForEach': ('anyHeavy', 'ForEach'), 'quantileBFloat16ForEach': ('quantileBFloat16', 'ForEach'), 'uniqHLL12ForEach': ('uniqHLL12', 'ForEach'), 'groupConcatForEach': ('groupConcat', 'ForEach'), 'simpleLinearRegressionForEach': ('simpleLinearRegression', 'ForEach'), 'stddevPopForEach': ('stddevPop', 'ForEach'), 'sumKahanForEach': ('sumKahan', 'ForEach'), 'contingencyForEach': ('contingency', 'ForEach'), 'minMapForEach': ('minMap', 'ForEach'), 'avgForEach': ('avg', 'ForEach'), 'quantilesExactWeightedForEach': ('quantilesExactWeighted', 'ForEach'), 'quantilesTimingForEach': ('quantilesTiming', 'ForEach'), 'uniqThetaForEach': ('uniqTheta', 'ForEach'), 'exponentialMovingAverageForEach': ('exponentialMovingAverage', 'ForEach'), 'quantilesBFloat16WeightedForEach': ('quantilesBFloat16Weighted', 'ForEach'), 'intervalLengthSumForEach': ('intervalLengthSum', 'ForEach'), 'uniqCombined64ForEach': ('uniqCombined64', 'ForEach'), 'anyForEach': ('any', 'ForEach'), 'uniqCombinedForEach': ('uniqCombined', 'ForEach'), 'avgWeightedForEach': ('avgWeighted', 'ForEach'), 'quantileTimingForEach': ('quantileTiming', 'ForEach'), 'uniqUpToForEach': ('uniqUpTo', 'ForEach'), 'minForEach': ('min', 'ForEach'), 'anyLastForEach': ('anyLast', 'ForEach'), 'skewSampForEach': ('skewSamp', 'ForEach'), 'kurtSampForEach': ('kurtSamp', 'ForEach'), 'groupArraySampleForEach': ('groupArraySample', 'ForEach'), 'topKForEach': ('topK', 'ForEach'), 'sumForEach': ('sum', 'ForEach'), 'sumMapForEach': ('sumMap', 'ForEach'), 'quantilesExactHighForEach': ('quantilesExactHigh', 'ForEach'), 'quantilesExactLowForEach': ('quantilesExactLow', 'ForEach'), 'quantileExactWeightedForEach': ('quantileExactWeighted', 'ForEach'), 'sumCountForEach': ('sumCount', 'ForEach'), 'rankCorrForEach': ('rankCorr', 'ForEach'), 'quantilesGKForEach': ('quantilesGK', 'ForEach'), 'uniqExactForEach': ('uniqExact', 'ForEach'), 'groupArrayLastForEach': ('groupArrayLast', 'ForEach'), 'windowFunnelForEach': ('windowFunnel', 'ForEach'), 'maxIntersectionsForEach': ('maxIntersections', 'ForEach'), 'corrForEach': ('corr', 'ForEach'), 'sumWithOverflowForEach': ('sumWithOverflow', 'ForEach'), 'quantilesBFloat16ForEach': ('quantilesBFloat16', 'ForEach'), 'quantileExactForEach': ('quantileExact', 'ForEach'), 'entropyForEach': ('entropy', 'ForEach'), 'quantilesInterpolatedWeightedForEach': ('quantilesInterpolatedWeighted', 'ForEach'), 'quantilesForEach': ('quantiles', 'ForEach'), 'stochasticLinearRegressionForEach': ('stochasticLinearRegression', 'ForEach'), 'mannWhitneyUTestForEach': ('mannWhitneyUTest', 'ForEach'), 'quantilesTimingWeightedForEach': ('quantilesTimingWeighted', 'ForEach'), 'covarSampForEach': ('covarSamp', 'ForEach'), 'varPopForEach': ('varPop', 'ForEach'), 'sequenceMatchForEach': ('sequenceMatch', 'ForEach'), 'meanZTestForEach': ('meanZTest', 'ForEach'), 'approx_top_sumForEach': ('approx_top_sum', 'ForEach'), 'boundingRatioForEach': ('boundingRatio', 'ForEach'), 'kolmogorovSmirnovTestForEach': ('kolmogorovSmirnovTest', 'ForEach'), 'covarPopForEach': ('covarPop', 'ForEach'), 'quantileGKForEach': ('quantileGK', 'ForEach'), 'stddevSampForEach': ('stddevSamp', 'ForEach'), 'sparkBarForEach': ('sparkBar', 'ForEach'), 'quantileExactHighForEach': ('quantileExactHigh', 'ForEach'), 'quantilesExactForEach': ('quantilesExact', 'ForEach'), 'uniqForEach': ('uniq', 'ForEach'), 'groupArrayInsertAtForEach': ('groupArrayInsertAt', 'ForEach'), 'quantilesDeterministicForEach': ('quantilesDeterministic', 'ForEach'), 'quantilesTDigestWeightedForEach': ('quantilesTDigestWeighted', 'ForEach'), 'quantileDeterministicForEach': ('quantileDeterministic', 'ForEach'), 'retentionForEach': ('retention', 'ForEach'), 'groupBitmapXorForEach': ('groupBitmapXor', 'ForEach'), 'quantilesExactExclusiveForEach': ('quantilesExactExclusive', 'ForEach'), 'groupArrayMovingSumForEach': ('groupArrayMovingSum', 'ForEach'), 'quantileBFloat16WeightedForEach': ('quantileBFloat16Weighted', 'ForEach'), 'first_valueForEach': ('first_value', 'ForEach'), 'studentTTestForEach': ('studentTTest', 'ForEach'), 'topKWeightedForEach': ('topKWeighted', 'ForEach'), 'quantileTDigestWeightedForEach': ('quantileTDigestWeighted', 'ForEach'), 'categoricalInformationValueForEach': ('categoricalInformationValue', 'ForEach'), 'sequenceCountForEach': ('sequenceCount', 'ForEach'), 'groupBitAndForEach': ('groupBitAnd', 'ForEach'), 'largestTriangleThreeBucketsForEach': ('largestTriangleThreeBuckets', 'ForEach'), 'groupBitOrForEach': ('groupBitOr', 'ForEach'), 'groupBitmapOrForEach': ('groupBitmapOr', 'ForEach'), 'deltaSumTimestampForEach': ('deltaSumTimestamp', 'ForEach'), 'argMinForEach': ('argMin', 'ForEach'), 'groupBitmapAndForEach': ('groupBitmapAnd', 'ForEach'), 'varSampForEach': ('varSamp', 'ForEach'), 'exponentialTimeDecayedAvgForEach': ('exponentialTimeDecayedAvg', 'ForEach'), 'maxForEach': ('max', 'ForEach'), 'quantileExactLowForEach': ('quantileExactLow', 'ForEach'), 'maxIntersectionsPositionForEach': ('maxIntersectionsPosition', 'ForEach'), 'groupArrayForEach': ('groupArray', 'ForEach'), 'quantileForEach': ('quantile', 'ForEach'), 'welchTTestOrNull': ('welchTTest', 'OrNull'), 'histogramOrNull': ('histogram', 'OrNull'), 'countOrNull': ('count', 'OrNull'), 'quantileTimingWeightedOrNull': ('quantileTimingWeighted', 'OrNull'), 'cramersVOrNull': ('cramersV', 'OrNull'), 'skewPopOrNull': ('skewPop', 'OrNull'), 'quantileTDigestOrNull': ('quantileTDigest', 'OrNull'), 'stochasticLogisticRegressionOrNull': ('stochasticLogisticRegression', 'OrNull'), 'quantileInterpolatedWeightedOrNull': ('quantileInterpolatedWeighted', 'OrNull'), 'maxMapOrNull': ('maxMap', 'OrNull'), 'theilsUOrNull': ('theilsU', 'OrNull'), 'last_valueOrNull': ('last_value', 'OrNull'), 'argMaxOrNull': ('argMax', 'OrNull'), 'quantilesTDigestOrNull': ('quantilesTDigest', 'OrNull'), 'kurtPopOrNull': ('kurtPop', 'OrNull'), 'groupBitXorOrNull': ('groupBitXor', 'OrNull'), 'groupArrayMovingAvgOrNull': ('groupArrayMovingAvg', 'OrNull'), 'medianOrNull': ('median', 'OrNull'), 'groupUniqArrayOrNull': ('groupUniqArray', 'OrNull'), 'cramersVBiasCorrectedOrNull': ('cramersVBiasCorrected', 'OrNull'), 'groupBitmapOrNull': ('groupBitmap', 'OrNull'), 'sequenceNextNodeOrNull': ('sequenceNextNode', 'OrNull'), 'deltaSumOrNull': ('deltaSum', 'OrNull'), 'anyHeavyOrNull': ('anyHeavy', 'OrNull'), 'quantileBFloat16OrNull': ('quantileBFloat16', 'OrNull'), 'uniqHLL12OrNull': ('uniqHLL12', 'OrNull'), 'groupConcatOrNull': ('groupConcat', 'OrNull'), 'simpleLinearRegressionOrNull': ('simpleLinearRegression', 'OrNull'), 'stddevPopOrNull': ('stddevPop', 'OrNull'), 'sumKahanOrNull': ('sumKahan', 'OrNull'), 'contingencyOrNull': ('contingency', 'OrNull'), 'minMapOrNull': ('minMap', 'OrNull'), 'avgOrNull': ('avg', 'OrNull'), 'quantilesExactWeightedOrNull': ('quantilesExactWeighted', 'OrNull'), 'quantilesTimingOrNull': ('quantilesTiming', 'OrNull'), 'uniqThetaOrNull': ('uniqTheta', 'OrNull'), 'exponentialMovingAverageOrNull': ('exponentialMovingAverage', 'OrNull'), 'quantilesBFloat16WeightedOrNull': ('quantilesBFloat16Weighted', 'OrNull'), 'intervalLengthSumOrNull': ('intervalLengthSum', 'OrNull'), 'uniqCombined64OrNull': ('uniqCombined64', 'OrNull'), 'anyOrNull': ('any', 'OrNull'), 'uniqCombinedOrNull': ('uniqCombined', 'OrNull'), 'avgWeightedOrNull': ('avgWeighted', 'OrNull'), 'quantileTimingOrNull': ('quantileTiming', 'OrNull'), 'uniqUpToOrNull': ('uniqUpTo', 'OrNull'), 'minOrNull': ('min', 'OrNull'), 'anyLastOrNull': ('anyLast', 'OrNull'), 'skewSampOrNull': ('skewSamp', 'OrNull'), 'kurtSampOrNull': ('kurtSamp', 'OrNull'), 'groupArraySampleOrNull': ('groupArraySample', 'OrNull'), 'topKOrNull': ('topK', 'OrNull'), 'sumOrNull': ('sum', 'OrNull'), 'sumMapOrNull': ('sumMap', 'OrNull'), 'quantilesExactHighOrNull': ('quantilesExactHigh', 'OrNull'), 'quantilesExactLowOrNull': ('quantilesExactLow', 'OrNull'), 'quantileExactWeightedOrNull': ('quantileExactWeighted', 'OrNull'), 'sumCountOrNull': ('sumCount', 'OrNull'), 'rankCorrOrNull': ('rankCorr', 'OrNull'), 'quantilesGKOrNull': ('quantilesGK', 'OrNull'), 'uniqExactOrNull': ('uniqExact', 'OrNull'), 'groupArrayLastOrNull': ('groupArrayLast', 'OrNull'), 'windowFunnelOrNull': ('windowFunnel', 'OrNull'), 'maxIntersectionsOrNull': ('maxIntersections', 'OrNull'), 'corrOrNull': ('corr', 'OrNull'), 'sumWithOverflowOrNull': ('sumWithOverflow', 'OrNull'), 'quantilesBFloat16OrNull': ('quantilesBFloat16', 'OrNull'), 'quantileExactOrNull': ('quantileExact', 'OrNull'), 'entropyOrNull': ('entropy', 'OrNull'), 'quantilesInterpolatedWeightedOrNull': ('quantilesInterpolatedWeighted', 'OrNull'), 'quantilesOrNull': ('quantiles', 'OrNull'), 'stochasticLinearRegressionOrNull': ('stochasticLinearRegression', 'OrNull'), 'mannWhitneyUTestOrNull': ('mannWhitneyUTest', 'OrNull'), 'quantilesTimingWeightedOrNull': ('quantilesTimingWeighted', 'OrNull'), 'covarSampOrNull': ('covarSamp', 'OrNull'), 'varPopOrNull': ('varPop', 'OrNull'), 'sequenceMatchOrNull': ('sequenceMatch', 'OrNull'), 'meanZTestOrNull': ('meanZTest', 'OrNull'), 'approx_top_sumOrNull': ('approx_top_sum', 'OrNull'), 'boundingRatioOrNull': ('boundingRatio', 'OrNull'), 'kolmogorovSmirnovTestOrNull': ('kolmogorovSmirnovTest', 'OrNull'), 'covarPopOrNull': ('covarPop', 'OrNull'), 'quantileGKOrNull': ('quantileGK', 'OrNull'), 'stddevSampOrNull': ('stddevSamp', 'OrNull'), 'sparkBarOrNull': ('sparkBar', 'OrNull'), 'quantileExactHighOrNull': ('quantileExactHigh', 'OrNull'), 'quantilesExactOrNull': ('quantilesExact', 'OrNull'), 'uniqOrNull': ('uniq', 'OrNull'), 'groupArrayInsertAtOrNull': ('groupArrayInsertAt', 'OrNull'), 'quantilesDeterministicOrNull': ('quantilesDeterministic', 'OrNull'), 'quantilesTDigestWeightedOrNull': ('quantilesTDigestWeighted', 'OrNull'), 'quantileDeterministicOrNull': ('quantileDeterministic', 'OrNull'), 'retentionOrNull': ('retention', 'OrNull'), 'groupBitmapXorOrNull': ('groupBitmapXor', 'OrNull'), 'quantilesExactExclusiveOrNull': ('quantilesExactExclusive', 'OrNull'), 'groupArrayMovingSumOrNull': ('groupArrayMovingSum', 'OrNull'), 'quantileBFloat16WeightedOrNull': ('quantileBFloat16Weighted', 'OrNull'), 'first_valueOrNull': ('first_value', 'OrNull'), 'studentTTestOrNull': ('studentTTest', 'OrNull'), 'topKWeightedOrNull': ('topKWeighted', 'OrNull'), 'quantileTDigestWeightedOrNull': ('quantileTDigestWeighted', 'OrNull'), 'categoricalInformationValueOrNull': ('categoricalInformationValue', 'OrNull'), 'sequenceCountOrNull': ('sequenceCount', 'OrNull'), 'groupBitAndOrNull': ('groupBitAnd', 'OrNull'), 'largestTriangleThreeBucketsOrNull': ('largestTriangleThreeBuckets', 'OrNull'), 'groupBitOrOrNull': ('groupBitOr', 'OrNull'), 'groupBitmapOrOrNull': ('groupBitmapOr', 'OrNull'), 'deltaSumTimestampOrNull': ('deltaSumTimestamp', 'OrNull'), 'argMinOrNull': ('argMin', 'OrNull'), 'groupBitmapAndOrNull': ('groupBitmapAnd', 'OrNull'), 'varSampOrNull': ('varSamp', 'OrNull'), 'exponentialTimeDecayedAvgOrNull': ('exponentialTimeDecayedAvg', 'OrNull'), 'maxOrNull': ('max', 'OrNull'), 'quantileExactLowOrNull': ('quantileExactLow', 'OrNull'), 'maxIntersectionsPositionOrNull': ('maxIntersectionsPosition', 'OrNull'), 'groupArrayOrNull': ('groupArray', 'OrNull'), 'quantileOrNull': ('quantile', 'OrNull'), 'welchTTestArgMin': ('welchTTest', 'ArgMin'), 'histogramArgMin': ('histogram', 'ArgMin'), 'countArgMin': ('count', 'ArgMin'), 'quantileTimingWeightedArgMin': ('quantileTimingWeighted', 'ArgMin'), 'cramersVArgMin': ('cramersV', 'ArgMin'), 'skewPopArgMin': ('skewPop', 'ArgMin'), 'quantileTDigestArgMin': ('quantileTDigest', 'ArgMin'), 'stochasticLogisticRegressionArgMin': ('stochasticLogisticRegression', 'ArgMin'), 'quantileInterpolatedWeightedArgMin': ('quantileInterpolatedWeighted', 'ArgMin'), 'maxMapArgMin': ('maxMap', 'ArgMin'), 'theilsUArgMin': ('theilsU', 'ArgMin'), 'last_valueArgMin': ('last_value', 'ArgMin'), 'argMaxArgMin': ('argMax', 'ArgMin'), 'quantilesTDigestArgMin': ('quantilesTDigest', 'ArgMin'), 'kurtPopArgMin': ('kurtPop', 'ArgMin'), 'groupBitXorArgMin': ('groupBitXor', 'ArgMin'), 'groupArrayMovingAvgArgMin': ('groupArrayMovingAvg', 'ArgMin'), 'medianArgMin': ('median', 'ArgMin'), 'groupUniqArrayArgMin': ('groupUniqArray', 'ArgMin'), 'cramersVBiasCorrectedArgMin': ('cramersVBiasCorrected', 'ArgMin'), 'groupBitmapArgMin': ('groupBitmap', 'ArgMin'), 'sequenceNextNodeArgMin': ('sequenceNextNode', 'ArgMin'), 'deltaSumArgMin': ('deltaSum', 'ArgMin'), 'anyHeavyArgMin': ('anyHeavy', 'ArgMin'), 'quantileBFloat16ArgMin': ('quantileBFloat16', 'ArgMin'), 'uniqHLL12ArgMin': ('uniqHLL12', 'ArgMin'), 'groupConcatArgMin': ('groupConcat', 'ArgMin'), 'simpleLinearRegressionArgMin': ('simpleLinearRegression', 'ArgMin'), 'stddevPopArgMin': ('stddevPop', 'ArgMin'), 'sumKahanArgMin': ('sumKahan', 'ArgMin'), 'contingencyArgMin': ('contingency', 'ArgMin'), 'minMapArgMin': ('minMap', 'ArgMin'), 'avgArgMin': ('avg', 'ArgMin'), 'quantilesExactWeightedArgMin': ('quantilesExactWeighted', 'ArgMin'), 'quantilesTimingArgMin': ('quantilesTiming', 'ArgMin'), 'uniqThetaArgMin': ('uniqTheta', 'ArgMin'), 'exponentialMovingAverageArgMin': ('exponentialMovingAverage', 'ArgMin'), 'quantilesBFloat16WeightedArgMin': ('quantilesBFloat16Weighted', 'ArgMin'), 'intervalLengthSumArgMin': ('intervalLengthSum', 'ArgMin'), 'uniqCombined64ArgMin': ('uniqCombined64', 'ArgMin'), 'anyArgMin': ('any', 'ArgMin'), 'uniqCombinedArgMin': ('uniqCombined', 'ArgMin'), 'avgWeightedArgMin': ('avgWeighted', 'ArgMin'), 'quantileTimingArgMin': ('quantileTiming', 'ArgMin'), 'uniqUpToArgMin': ('uniqUpTo', 'ArgMin'), 'minArgMin': ('min', 'ArgMin'), 'anyLastArgMin': ('anyLast', 'ArgMin'), 'skewSampArgMin': ('skewSamp', 'ArgMin'), 'kurtSampArgMin': ('kurtSamp', 'ArgMin'), 'groupArraySampleArgMin': ('groupArraySample', 'ArgMin'), 'topKArgMin': ('topK', 'ArgMin'), 'sumArgMin': ('sum', 'ArgMin'), 'sumMapArgMin': ('sumMap', 'ArgMin'), 'quantilesExactHighArgMin': ('quantilesExactHigh', 'ArgMin'), 'quantilesExactLowArgMin': ('quantilesExactLow', 'ArgMin'), 'quantileExactWeightedArgMin': ('quantileExactWeighted', 'ArgMin'), 'sumCountArgMin': ('sumCount', 'ArgMin'), 'rankCorrArgMin': ('rankCorr', 'ArgMin'), 'quantilesGKArgMin': ('quantilesGK', 'ArgMin'), 'uniqExactArgMin': ('uniqExact', 'ArgMin'), 'groupArrayLastArgMin': ('groupArrayLast', 'ArgMin'), 'windowFunnelArgMin': ('windowFunnel', 'ArgMin'), 'maxIntersectionsArgMin': ('maxIntersections', 'ArgMin'), 'corrArgMin': ('corr', 'ArgMin'), 'sumWithOverflowArgMin': ('sumWithOverflow', 'ArgMin'), 'quantilesBFloat16ArgMin': ('quantilesBFloat16', 'ArgMin'), 'quantileExactArgMin': ('quantileExact', 'ArgMin'), 'entropyArgMin': ('entropy', 'ArgMin'), 'quantilesInterpolatedWeightedArgMin': ('quantilesInterpolatedWeighted', 'ArgMin'), 'quantilesArgMin': ('quantiles', 'ArgMin'), 'stochasticLinearRegressionArgMin': ('stochasticLinearRegression', 'ArgMin'), 'mannWhitneyUTestArgMin': ('mannWhitneyUTest', 'ArgMin'), 'quantilesTimingWeightedArgMin': ('quantilesTimingWeighted', 'ArgMin'), 'covarSampArgMin': ('covarSamp', 'ArgMin'), 'varPopArgMin': ('varPop', 'ArgMin'), 'sequenceMatchArgMin': ('sequenceMatch', 'ArgMin'), 'meanZTestArgMin': ('meanZTest', 'ArgMin'), 'approx_top_sumArgMin': ('approx_top_sum', 'ArgMin'), 'boundingRatioArgMin': ('boundingRatio', 'ArgMin'), 'kolmogorovSmirnovTestArgMin': ('kolmogorovSmirnovTest', 'ArgMin'), 'covarPopArgMin': ('covarPop', 'ArgMin'), 'quantileGKArgMin': ('quantileGK', 'ArgMin'), 'stddevSampArgMin': ('stddevSamp', 'ArgMin'), 'sparkBarArgMin': ('sparkBar', 'ArgMin'), 'quantileExactHighArgMin': ('quantileExactHigh', 'ArgMin'), 'quantilesExactArgMin': ('quantilesExact', 'ArgMin'), 'uniqArgMin': ('uniq', 'ArgMin'), 'groupArrayInsertAtArgMin': ('groupArrayInsertAt', 'ArgMin'), 'quantilesDeterministicArgMin': ('quantilesDeterministic', 'ArgMin'), 'quantilesTDigestWeightedArgMin': ('quantilesTDigestWeighted', 'ArgMin'), 'quantileDeterministicArgMin': ('quantileDeterministic', 'ArgMin'), 'retentionArgMin': ('retention', 'ArgMin'), 'groupBitmapXorArgMin': ('groupBitmapXor', 'ArgMin'), 'quantilesExactExclusiveArgMin': ('quantilesExactExclusive', 'ArgMin'), 'groupArrayMovingSumArgMin': ('groupArrayMovingSum', 'ArgMin'), 'quantileBFloat16WeightedArgMin': ('quantileBFloat16Weighted', 'ArgMin'), 'first_valueArgMin': ('first_value', 'ArgMin'), 'studentTTestArgMin': ('studentTTest', 'ArgMin'), 'topKWeightedArgMin': ('topKWeighted', 'ArgMin'), 'quantileTDigestWeightedArgMin': ('quantileTDigestWeighted', 'ArgMin'), 'categoricalInformationValueArgMin': ('categoricalInformationValue', 'ArgMin'), 'sequenceCountArgMin': ('sequenceCount', 'ArgMin'), 'groupBitAndArgMin': ('groupBitAnd', 'ArgMin'), 'largestTriangleThreeBucketsArgMin': ('largestTriangleThreeBuckets', 'ArgMin'), 'groupBitOrArgMin': ('groupBitOr', 'ArgMin'), 'groupBitmapOrArgMin': ('groupBitmapOr', 'ArgMin'), 'deltaSumTimestampArgMin': ('deltaSumTimestamp', 'ArgMin'), 'argMinArgMin': ('argMin', 'ArgMin'), 'groupBitmapAndArgMin': ('groupBitmapAnd', 'ArgMin'), 'varSampArgMin': ('varSamp', 'ArgMin'), 'exponentialTimeDecayedAvgArgMin': ('exponentialTimeDecayedAvg', 'ArgMin'), 'maxArgMin': ('max', 'ArgMin'), 'quantileExactLowArgMin': ('quantileExactLow', 'ArgMin'), 'maxIntersectionsPositionArgMin': ('maxIntersectionsPosition', 'ArgMin'), 'groupArrayArgMin': ('groupArray', 'ArgMin'), 'quantileArgMin': ('quantile', 'ArgMin'), 'welchTTestArgMax': ('welchTTest', 'ArgMax'), 'histogramArgMax': ('histogram', 'ArgMax'), 'countArgMax': ('count', 'ArgMax'), 'quantileTimingWeightedArgMax': ('quantileTimingWeighted', 'ArgMax'), 'cramersVArgMax': ('cramersV', 'ArgMax'), 'skewPopArgMax': ('skewPop', 'ArgMax'), 'quantileTDigestArgMax': ('quantileTDigest', 'ArgMax'), 'stochasticLogisticRegressionArgMax': ('stochasticLogisticRegression', 'ArgMax'), 'quantileInterpolatedWeightedArgMax': ('quantileInterpolatedWeighted', 'ArgMax'), 'maxMapArgMax': ('maxMap', 'ArgMax'), 'theilsUArgMax': ('theilsU', 'ArgMax'), 'last_valueArgMax': ('last_value', 'ArgMax'), 'argMaxArgMax': ('argMax', 'ArgMax'), 'quantilesTDigestArgMax': ('quantilesTDigest', 'ArgMax'), 'kurtPopArgMax': ('kurtPop', 'ArgMax'), 'groupBitXorArgMax': ('groupBitXor', 'ArgMax'), 'groupArrayMovingAvgArgMax': ('groupArrayMovingAvg', 'ArgMax'), 'medianArgMax': ('median', 'ArgMax'), 'groupUniqArrayArgMax': ('groupUniqArray', 'ArgMax'), 'cramersVBiasCorrectedArgMax': ('cramersVBiasCorrected', 'ArgMax'), 'groupBitmapArgMax': ('groupBitmap', 'ArgMax'), 'sequenceNextNodeArgMax': ('sequenceNextNode', 'ArgMax'), 'deltaSumArgMax': ('deltaSum', 'ArgMax'), 'anyHeavyArgMax': ('anyHeavy', 'ArgMax'), 'quantileBFloat16ArgMax': ('quantileBFloat16', 'ArgMax'), 'uniqHLL12ArgMax': ('uniqHLL12', 'ArgMax'), 'groupConcatArgMax': ('groupConcat', 'ArgMax'), 'simpleLinearRegressionArgMax': ('simpleLinearRegression', 'ArgMax'), 'stddevPopArgMax': ('stddevPop', 'ArgMax'), 'sumKahanArgMax': ('sumKahan', 'ArgMax'), 'contingencyArgMax': ('contingency', 'ArgMax'), 'minMapArgMax': ('minMap', 'ArgMax'), 'avgArgMax': ('avg', 'ArgMax'), 'quantilesExactWeightedArgMax': ('quantilesExactWeighted', 'ArgMax'), 'quantilesTimingArgMax': ('quantilesTiming', 'ArgMax'), 'uniqThetaArgMax': ('uniqTheta', 'ArgMax'), 'exponentialMovingAverageArgMax': ('exponentialMovingAverage', 'ArgMax'), 'quantilesBFloat16WeightedArgMax': ('quantilesBFloat16Weighted', 'ArgMax'), 'intervalLengthSumArgMax': ('intervalLengthSum', 'ArgMax'), 'uniqCombined64ArgMax': ('uniqCombined64', 'ArgMax'), 'anyArgMax': ('any', 'ArgMax'), 'uniqCombinedArgMax': ('uniqCombined', 'ArgMax'), 'avgWeightedArgMax': ('avgWeighted', 'ArgMax'), 'quantileTimingArgMax': ('quantileTiming', 'ArgMax'), 'uniqUpToArgMax': ('uniqUpTo', 'ArgMax'), 'minArgMax': ('min', 'ArgMax'), 'anyLastArgMax': ('anyLast', 'ArgMax'), 'skewSampArgMax': ('skewSamp', 'ArgMax'), 'kurtSampArgMax': ('kurtSamp', 'ArgMax'), 'groupArraySampleArgMax': ('groupArraySample', 'ArgMax'), 'topKArgMax': ('topK', 'ArgMax'), 'sumArgMax': ('sum', 'ArgMax'), 'sumMapArgMax': ('sumMap', 'ArgMax'), 'quantilesExactHighArgMax': ('quantilesExactHigh', 'ArgMax'), 'quantilesExactLowArgMax': ('quantilesExactLow', 'ArgMax'), 'quantileExactWeightedArgMax': ('quantileExactWeighted', 'ArgMax'), 'sumCountArgMax': ('sumCount', 'ArgMax'), 'rankCorrArgMax': ('rankCorr', 'ArgMax'), 'quantilesGKArgMax': ('quantilesGK', 'ArgMax'), 'uniqExactArgMax': ('uniqExact', 'ArgMax'), 'groupArrayLastArgMax': ('groupArrayLast', 'ArgMax'), 'windowFunnelArgMax': ('windowFunnel', 'ArgMax'), 'maxIntersectionsArgMax': ('maxIntersections', 'ArgMax'), 'corrArgMax': ('corr', 'ArgMax'), 'sumWithOverflowArgMax': ('sumWithOverflow', 'ArgMax'), 'quantilesBFloat16ArgMax': ('quantilesBFloat16', 'ArgMax'), 'quantileExactArgMax': ('quantileExact', 'ArgMax'), 'entropyArgMax': ('entropy', 'ArgMax'), 'quantilesInterpolatedWeightedArgMax': ('quantilesInterpolatedWeighted', 'ArgMax'), 'quantilesArgMax': ('quantiles', 'ArgMax'), 'stochasticLinearRegressionArgMax': ('stochasticLinearRegression', 'ArgMax'), 'mannWhitneyUTestArgMax': ('mannWhitneyUTest', 'ArgMax'), 'quantilesTimingWeightedArgMax': ('quantilesTimingWeighted', 'ArgMax'), 'covarSampArgMax': ('covarSamp', 'ArgMax'), 'varPopArgMax': ('varPop', 'ArgMax'), 'sequenceMatchArgMax': ('sequenceMatch', 'ArgMax'), 'meanZTestArgMax': ('meanZTest', 'ArgMax'), 'approx_top_sumArgMax': ('approx_top_sum', 'ArgMax'), 'boundingRatioArgMax': ('boundingRatio', 'ArgMax'), 'kolmogorovSmirnovTestArgMax': ('kolmogorovSmirnovTest', 'ArgMax'), 'covarPopArgMax': ('covarPop', 'ArgMax'), 'quantileGKArgMax': ('quantileGK', 'ArgMax'), 'stddevSampArgMax': ('stddevSamp', 'ArgMax'), 'sparkBarArgMax': ('sparkBar', 'ArgMax'), 'quantileExactHighArgMax': ('quantileExactHigh', 'ArgMax'), 'quantilesExactArgMax': ('quantilesExact', 'ArgMax'), 'uniqArgMax': ('uniq', 'ArgMax'), 'groupArrayInsertAtArgMax': ('groupArrayInsertAt', 'ArgMax'), 'quantilesDeterministicArgMax': ('quantilesDeterministic', 'ArgMax'), 'quantilesTDigestWeightedArgMax': ('quantilesTDigestWeighted', 'ArgMax'), 'quantileDeterministicArgMax': ('quantileDeterministic', 'ArgMax'), 'retentionArgMax': ('retention', 'ArgMax'), 'groupBitmapXorArgMax': ('groupBitmapXor', 'ArgMax'), 'quantilesExactExclusiveArgMax': ('quantilesExactExclusive', 'ArgMax'), 'groupArrayMovingSumArgMax': ('groupArrayMovingSum', 'ArgMax'), 'quantileBFloat16WeightedArgMax': ('quantileBFloat16Weighted', 'ArgMax'), 'first_valueArgMax': ('first_value', 'ArgMax'), 'studentTTestArgMax': ('studentTTest', 'ArgMax'), 'topKWeightedArgMax': ('topKWeighted', 'ArgMax'), 'quantileTDigestWeightedArgMax': ('quantileTDigestWeighted', 'ArgMax'), 'categoricalInformationValueArgMax': ('categoricalInformationValue', 'ArgMax'), 'sequenceCountArgMax': ('sequenceCount', 'ArgMax'), 'groupBitAndArgMax': ('groupBitAnd', 'ArgMax'), 'largestTriangleThreeBucketsArgMax': ('largestTriangleThreeBuckets', 'ArgMax'), 'groupBitOrArgMax': ('groupBitOr', 'ArgMax'), 'groupBitmapOrArgMax': ('groupBitmapOr', 'ArgMax'), 'deltaSumTimestampArgMax': ('deltaSumTimestamp', 'ArgMax'), 'argMinArgMax': ('argMin', 'ArgMax'), 'groupBitmapAndArgMax': ('groupBitmapAnd', 'ArgMax'), 'varSampArgMax': ('varSamp', 'ArgMax'), 'exponentialTimeDecayedAvgArgMax': ('exponentialTimeDecayedAvg', 'ArgMax'), 'maxArgMax': ('max', 'ArgMax'), 'quantileExactLowArgMax': ('quantileExactLow', 'ArgMax'), 'maxIntersectionsPositionArgMax': ('maxIntersectionsPosition', 'ArgMax'), 'groupArrayArgMax': ('groupArray', 'ArgMax'), 'quantileArgMax': ('quantile', 'ArgMax'), 'welchTTestArray': ('welchTTest', 'Array'), 'histogramArray': ('histogram', 'Array'), 'countArray': ('count', 'Array'), 'quantileTimingWeightedArray': ('quantileTimingWeighted', 'Array'), 'cramersVArray': ('cramersV', 'Array'), 'skewPopArray': ('skewPop', 'Array'), 'quantileTDigestArray': ('quantileTDigest', 'Array'), 'stochasticLogisticRegressionArray': ('stochasticLogisticRegression', 'Array'), 'quantileInterpolatedWeightedArray': ('quantileInterpolatedWeighted', 'Array'), 'maxMapArray': ('maxMap', 'Array'), 'theilsUArray': ('theilsU', 'Array'), 'last_valueArray': ('last_value', 'Array'), 'argMaxArray': ('argMax', 'Array'), 'quantilesTDigestArray': ('quantilesTDigest', 'Array'), 'kurtPopArray': ('kurtPop', 'Array'), 'groupBitXorArray': ('groupBitXor', 'Array'), 'groupArrayMovingAvgArray': ('groupArrayMovingAvg', 'Array'), 'medianArray': ('median', 'Array'), 'groupUniqArrayArray': ('groupUniqArray', 'Array'), 'cramersVBiasCorrectedArray': ('cramersVBiasCorrected', 'Array'), 'groupBitmapArray': ('groupBitmap', 'Array'), 'sequenceNextNodeArray': ('sequenceNextNode', 'Array'), 'deltaSumArray': ('deltaSum', 'Array'), 'anyHeavyArray': ('anyHeavy', 'Array'), 'quantileBFloat16Array': ('quantileBFloat16', 'Array'), 'uniqHLL12Array': ('uniqHLL12', 'Array'), 'groupConcatArray': ('groupConcat', 'Array'), 'simpleLinearRegressionArray': ('simpleLinearRegression', 'Array'), 'stddevPopArray': ('stddevPop', 'Array'), 'sumKahanArray': ('sumKahan', 'Array'), 'contingencyArray': ('contingency', 'Array'), 'minMapArray': ('minMap', 'Array'), 'avgArray': ('avg', 'Array'), 'quantilesExactWeightedArray': ('quantilesExactWeighted', 'Array'), 'quantilesTimingArray': ('quantilesTiming', 'Array'), 'uniqThetaArray': ('uniqTheta', 'Array'), 'exponentialMovingAverageArray': ('exponentialMovingAverage', 'Array'), 'quantilesBFloat16WeightedArray': ('quantilesBFloat16Weighted', 'Array'), 'intervalLengthSumArray': ('intervalLengthSum', 'Array'), 'uniqCombined64Array': ('uniqCombined64', 'Array'), 'anyArray': ('any', 'Array'), 'uniqCombinedArray': ('uniqCombined', 'Array'), 'avgWeightedArray': ('avgWeighted', 'Array'), 'quantileTimingArray': ('quantileTiming', 'Array'), 'uniqUpToArray': ('uniqUpTo', 'Array'), 'minArray': ('min', 'Array'), 'anyLastArray': ('anyLast', 'Array'), 'skewSampArray': ('skewSamp', 'Array'), 'kurtSampArray': ('kurtSamp', 'Array'), 'groupArraySampleArray': ('groupArraySample', 'Array'), 'topKArray': ('topK', 'Array'), 'sumArray': ('sum', 'Array'), 'sumMapArray': ('sumMap', 'Array'), 'quantilesExactHighArray': ('quantilesExactHigh', 'Array'), 'quantilesExactLowArray': ('quantilesExactLow', 'Array'), 'quantileExactWeightedArray': ('quantileExactWeighted', 'Array'), 'sumCountArray': ('sumCount', 'Array'), 'rankCorrArray': ('rankCorr', 'Array'), 'quantilesGKArray': ('quantilesGK', 'Array'), 'uniqExactArray': ('uniqExact', 'Array'), 'groupArrayLastArray': ('groupArrayLast', 'Array'), 'windowFunnelArray': ('windowFunnel', 'Array'), 'maxIntersectionsArray': ('maxIntersections', 'Array'), 'corrArray': ('corr', 'Array'), 'sumWithOverflowArray': ('sumWithOverflow', 'Array'), 'quantilesBFloat16Array': ('quantilesBFloat16', 'Array'), 'quantileExactArray': ('quantileExact', 'Array'), 'entropyArray': ('entropy', 'Array'), 'quantilesInterpolatedWeightedArray': ('quantilesInterpolatedWeighted', 'Array'), 'quantilesArray': ('quantiles', 'Array'), 'stochasticLinearRegressionArray': ('stochasticLinearRegression', 'Array'), 'mannWhitneyUTestArray': ('mannWhitneyUTest', 'Array'), 'quantilesTimingWeightedArray': ('quantilesTimingWeighted', 'Array'), 'covarSampArray': ('covarSamp', 'Array'), 'varPopArray': ('varPop', 'Array'), 'sequenceMatchArray': ('sequenceMatch', 'Array'), 'meanZTestArray': ('meanZTest', 'Array'), 'approx_top_sumArray': ('approx_top_sum', 'Array'), 'boundingRatioArray': ('boundingRatio', 'Array'), 'kolmogorovSmirnovTestArray': ('kolmogorovSmirnovTest', 'Array'), 'covarPopArray': ('covarPop', 'Array'), 'quantileGKArray': ('quantileGK', 'Array'), 'stddevSampArray': ('stddevSamp', 'Array'), 'sparkBarArray': ('sparkBar', 'Array'), 'quantileExactHighArray': ('quantileExactHigh', 'Array'), 'quantilesExactArray': ('quantilesExact', 'Array'), 'uniqArray': ('uniq', 'Array'), 'groupArrayInsertAtArray': ('groupArrayInsertAt', 'Array'), 'quantilesDeterministicArray': ('quantilesDeterministic', 'Array'), 'quantilesTDigestWeightedArray': ('quantilesTDigestWeighted', 'Array'), 'quantileDeterministicArray': ('quantileDeterministic', 'Array'), 'retentionArray': ('retention', 'Array'), 'groupBitmapXorArray': ('groupBitmapXor', 'Array'), 'quantilesExactExclusiveArray': ('quantilesExactExclusive', 'Array'), 'groupArrayMovingSumArray': ('groupArrayMovingSum', 'Array'), 'quantileBFloat16WeightedArray': ('quantileBFloat16Weighted', 'Array'), 'first_valueArray': ('first_value', 'Array'), 'studentTTestArray': ('studentTTest', 'Array'), 'topKWeightedArray': ('topKWeighted', 'Array'), 'quantileTDigestWeightedArray': ('quantileTDigestWeighted', 'Array'), 'categoricalInformationValueArray': ('categoricalInformationValue', 'Array'), 'sequenceCountArray': ('sequenceCount', 'Array'), 'groupBitAndArray': ('groupBitAnd', 'Array'), 'largestTriangleThreeBucketsArray': ('largestTriangleThreeBuckets', 'Array'), 'groupBitOrArray': ('groupBitOr', 'Array'), 'groupBitmapOrArray': ('groupBitmapOr', 'Array'), 'deltaSumTimestampArray': ('deltaSumTimestamp', 'Array'), 'argMinArray': ('argMin', 'Array'), 'groupBitmapAndArray': ('groupBitmapAnd', 'Array'), 'varSampArray': ('varSamp', 'Array'), 'exponentialTimeDecayedAvgArray': ('exponentialTimeDecayedAvg', 'Array'), 'maxArray': ('max', 'Array'), 'quantileExactLowArray': ('quantileExactLow', 'Array'), 'maxIntersectionsPositionArray': ('maxIntersectionsPosition', 'Array'), 'groupArrayArray': ('groupArray', 'Array'), 'quantileArray': ('quantile', 'Array'), 'welchTTestState': ('welchTTest', 'State'), 'histogramState': ('histogram', 'State'), 'countState': ('count', 'State'), 'quantileTimingWeightedState': ('quantileTimingWeighted', 'State'), 'cramersVState': ('cramersV', 'State'), 'skewPopState': ('skewPop', 'State'), 'quantileTDigestState': ('quantileTDigest', 'State'), 'stochasticLogisticRegressionState': ('stochasticLogisticRegression', 'State'), 'quantileInterpolatedWeightedState': ('quantileInterpolatedWeighted', 'State'), 'maxMapState': ('maxMap', 'State'), 'theilsUState': ('theilsU', 'State'), 'last_valueState': ('last_value', 'State'), 'argMaxState': ('argMax', 'State'), 'quantilesTDigestState': ('quantilesTDigest', 'State'), 'kurtPopState': ('kurtPop', 'State'), 'groupBitXorState': ('groupBitXor', 'State'), 'groupArrayMovingAvgState': ('groupArrayMovingAvg', 'State'), 'medianState': ('median', 'State'), 'groupUniqArrayState': ('groupUniqArray', 'State'), 'cramersVBiasCorrectedState': ('cramersVBiasCorrected', 'State'), 'groupBitmapState': ('groupBitmap', 'State'), 'sequenceNextNodeState': ('sequenceNextNode', 'State'), 'deltaSumState': ('deltaSum', 'State'), 'anyHeavyState': ('anyHeavy', 'State'), 'quantileBFloat16State': ('quantileBFloat16', 'State'), 'uniqHLL12State': ('uniqHLL12', 'State'), 'groupConcatState': ('groupConcat', 'State'), 'simpleLinearRegressionState': ('simpleLinearRegression', 'State'), 'stddevPopState': ('stddevPop', 'State'), 'sumKahanState': ('sumKahan', 'State'), 'contingencyState': ('contingency', 'State'), 'minMapState': ('minMap', 'State'), 'avgState': ('avg', 'State'), 'quantilesExactWeightedState': ('quantilesExactWeighted', 'State'), 'quantilesTimingState': ('quantilesTiming', 'State'), 'uniqThetaState': ('uniqTheta', 'State'), 'exponentialMovingAverageState': ('exponentialMovingAverage', 'State'), 'quantilesBFloat16WeightedState': ('quantilesBFloat16Weighted', 'State'), 'intervalLengthSumState': ('intervalLengthSum', 'State'), 'uniqCombined64State': ('uniqCombined64', 'State'), 'anyState': ('any', 'State'), 'uniqCombinedState': ('uniqCombined', 'State'), 'avgWeightedState': ('avgWeighted', 'State'), 'quantileTimingState': ('quantileTiming', 'State'), 'uniqUpToState': ('uniqUpTo', 'State'), 'minState': ('min', 'State'), 'anyLastState': ('anyLast', 'State'), 'skewSampState': ('skewSamp', 'State'), 'kurtSampState': ('kurtSamp', 'State'), 'groupArraySampleState': ('groupArraySample', 'State'), 'topKState': ('topK', 'State'), 'sumState': ('sum', 'State'), 'sumMapState': ('sumMap', 'State'), 'quantilesExactHighState': ('quantilesExactHigh', 'State'), 'quantilesExactLowState': ('quantilesExactLow', 'State'), 'quantileExactWeightedState': ('quantileExactWeighted', 'State'), 'sumCountState': ('sumCount', 'State'), 'rankCorrState': ('rankCorr', 'State'), 'quantilesGKState': ('quantilesGK', 'State'), 'uniqExactState': ('uniqExact', 'State'), 'groupArrayLastState': ('groupArrayLast', 'State'), 'windowFunnelState': ('windowFunnel', 'State'), 'maxIntersectionsState': ('maxIntersections', 'State'), 'corrState': ('corr', 'State'), 'sumWithOverflowState': ('sumWithOverflow', 'State'), 'quantilesBFloat16State': ('quantilesBFloat16', 'State'), 'quantileExactState': ('quantileExact', 'State'), 'entropyState': ('entropy', 'State'), 'quantilesInterpolatedWeightedState': ('quantilesInterpolatedWeighted', 'State'), 'quantilesState': ('quantiles', 'State'), 'stochasticLinearRegressionState': ('stochasticLinearRegression', 'State'), 'mannWhitneyUTestState': ('mannWhitneyUTest', 'State'), 'quantilesTimingWeightedState': ('quantilesTimingWeighted', 'State'), 'covarSampState': ('covarSamp', 'State'), 'varPopState': ('varPop', 'State'), 'sequenceMatchState': ('sequenceMatch', 'State'), 'meanZTestState': ('meanZTest', 'State'), 'approx_top_sumState': ('approx_top_sum', 'State'), 'boundingRatioState': ('boundingRatio', 'State'), 'kolmogorovSmirnovTestState': ('kolmogorovSmirnovTest', 'State'), 'covarPopState': ('covarPop', 'State'), 'quantileGKState': ('quantileGK', 'State'), 'stddevSampState': ('stddevSamp', 'State'), 'sparkBarState': ('sparkBar', 'State'), 'quantileExactHighState': ('quantileExactHigh', 'State'), 'quantilesExactState': ('quantilesExact', 'State'), 'uniqState': ('uniq', 'State'), 'groupArrayInsertAtState': ('groupArrayInsertAt', 'State'), 'quantilesDeterministicState': ('quantilesDeterministic', 'State'), 'quantilesTDigestWeightedState': ('quantilesTDigestWeighted', 'State'), 'quantileDeterministicState': ('quantileDeterministic', 'State'), 'retentionState': ('retention', 'State'), 'groupBitmapXorState': ('groupBitmapXor', 'State'), 'quantilesExactExclusiveState': ('quantilesExactExclusive', 'State'), 'groupArrayMovingSumState': ('groupArrayMovingSum', 'State'), 'quantileBFloat16WeightedState': ('quantileBFloat16Weighted', 'State'), 'first_valueState': ('first_value', 'State'), 'studentTTestState': ('studentTTest', 'State'), 'topKWeightedState': ('topKWeighted', 'State'), 'quantileTDigestWeightedState': ('quantileTDigestWeighted', 'State'), 'categoricalInformationValueState': ('categoricalInformationValue', 'State'), 'sequenceCountState': ('sequenceCount', 'State'), 'groupBitAndState': ('groupBitAnd', 'State'), 'largestTriangleThreeBucketsState': ('largestTriangleThreeBuckets', 'State'), 'groupBitOrState': ('groupBitOr', 'State'), 'groupBitmapOrState': ('groupBitmapOr', 'State'), 'deltaSumTimestampState': ('deltaSumTimestamp', 'State'), 'argMinState': ('argMin', 'State'), 'groupBitmapAndState': ('groupBitmapAnd', 'State'), 'varSampState': ('varSamp', 'State'), 'exponentialTimeDecayedAvgState': ('exponentialTimeDecayedAvg', 'State'), 'maxState': ('max', 'State'), 'quantileExactLowState': ('quantileExactLow', 'State'), 'maxIntersectionsPositionState': ('maxIntersectionsPosition', 'State'), 'groupArrayState': ('groupArray', 'State'), 'quantileState': ('quantile', 'State'), 'welchTTestMerge': ('welchTTest', 'Merge'), 'histogramMerge': ('histogram', 'Merge'), 'countMerge': ('count', 'Merge'), 'quantileTimingWeightedMerge': ('quantileTimingWeighted', 'Merge'), 'cramersVMerge': ('cramersV', 'Merge'), 'skewPopMerge': ('skewPop', 'Merge'), 'quantileTDigestMerge': ('quantileTDigest', 'Merge'), 'stochasticLogisticRegressionMerge': ('stochasticLogisticRegression', 'Merge'), 'quantileInterpolatedWeightedMerge': ('quantileInterpolatedWeighted', 'Merge'), 'maxMapMerge': ('maxMap', 'Merge'), 'theilsUMerge': ('theilsU', 'Merge'), 'last_valueMerge': ('last_value', 'Merge'), 'argMaxMerge': ('argMax', 'Merge'), 'quantilesTDigestMerge': ('quantilesTDigest', 'Merge'), 'kurtPopMerge': ('kurtPop', 'Merge'), 'groupBitXorMerge': ('groupBitXor', 'Merge'), 'groupArrayMovingAvgMerge': ('groupArrayMovingAvg', 'Merge'), 'medianMerge': ('median', 'Merge'), 'groupUniqArrayMerge': ('groupUniqArray', 'Merge'), 'cramersVBiasCorrectedMerge': ('cramersVBiasCorrected', 'Merge'), 'groupBitmapMerge': ('groupBitmap', 'Merge'), 'sequenceNextNodeMerge': ('sequenceNextNode', 'Merge'), 'deltaSumMerge': ('deltaSum', 'Merge'), 'anyHeavyMerge': ('anyHeavy', 'Merge'), 'quantileBFloat16Merge': ('quantileBFloat16', 'Merge'), 'uniqHLL12Merge': ('uniqHLL12', 'Merge'), 'groupConcatMerge': ('groupConcat', 'Merge'), 'simpleLinearRegressionMerge': ('simpleLinearRegression', 'Merge'), 'stddevPopMerge': ('stddevPop', 'Merge'), 'sumKahanMerge': ('sumKahan', 'Merge'), 'contingencyMerge': ('contingency', 'Merge'), 'minMapMerge': ('minMap', 'Merge'), 'avgMerge': ('avg', 'Merge'), 'quantilesExactWeightedMerge': ('quantilesExactWeighted', 'Merge'), 'quantilesTimingMerge': ('quantilesTiming', 'Merge'), 'uniqThetaMerge': ('uniqTheta', 'Merge'), 'exponentialMovingAverageMerge': ('exponentialMovingAverage', 'Merge'), 'quantilesBFloat16WeightedMerge': ('quantilesBFloat16Weighted', 'Merge'), 'intervalLengthSumMerge': ('intervalLengthSum', 'Merge'), 'uniqCombined64Merge': ('uniqCombined64', 'Merge'), 'anyMerge': ('any', 'Merge'), 'uniqCombinedMerge': ('uniqCombined', 'Merge'), 'avgWeightedMerge': ('avgWeighted', 'Merge'), 'quantileTimingMerge': ('quantileTiming', 'Merge'), 'uniqUpToMerge': ('uniqUpTo', 'Merge'), 'minMerge': ('min', 'Merge'), 'anyLastMerge': ('anyLast', 'Merge'), 'skewSampMerge': ('skewSamp', 'Merge'), 'kurtSampMerge': ('kurtSamp', 'Merge'), 'groupArraySampleMerge': ('groupArraySample', 'Merge'), 'topKMerge': ('topK', 'Merge'), 'sumMerge': ('sum', 'Merge'), 'sumMapMerge': ('sumMap', 'Merge'), 'quantilesExactHighMerge': ('quantilesExactHigh', 'Merge'), 'quantilesExactLowMerge': ('quantilesExactLow', 'Merge'), 'quantileExactWeightedMerge': ('quantileExactWeighted', 'Merge'), 'sumCountMerge': ('sumCount', 'Merge'), 'rankCorrMerge': ('rankCorr', 'Merge'), 'quantilesGKMerge': ('quantilesGK', 'Merge'), 'uniqExactMerge': ('uniqExact', 'Merge'), 'groupArrayLastMerge': ('groupArrayLast', 'Merge'), 'windowFunnelMerge': ('windowFunnel', 'Merge'), 'maxIntersectionsMerge': ('maxIntersections', 'Merge'), 'corrMerge': ('corr', 'Merge'), 'sumWithOverflowMerge': ('sumWithOverflow', 'Merge'), 'quantilesBFloat16Merge': ('quantilesBFloat16', 'Merge'), 'quantileExactMerge': ('quantileExact', 'Merge'), 'entropyMerge': ('entropy', 'Merge'), 'quantilesInterpolatedWeightedMerge': ('quantilesInterpolatedWeighted', 'Merge'), 'quantilesMerge': ('quantiles', 'Merge'), 'stochasticLinearRegressionMerge': ('stochasticLinearRegression', 'Merge'), 'mannWhitneyUTestMerge': ('mannWhitneyUTest', 'Merge'), 'quantilesTimingWeightedMerge': ('quantilesTimingWeighted', 'Merge'), 'covarSampMerge': ('covarSamp', 'Merge'), 'varPopMerge': ('varPop', 'Merge'), 'sequenceMatchMerge': ('sequenceMatch', 'Merge'), 'meanZTestMerge': ('meanZTest', 'Merge'), 'approx_top_sumMerge': ('approx_top_sum', 'Merge'), 'boundingRatioMerge': ('boundingRatio', 'Merge'), 'kolmogorovSmirnovTestMerge': ('kolmogorovSmirnovTest', 'Merge'), 'covarPopMerge': ('covarPop', 'Merge'), 'quantileGKMerge': ('quantileGK', 'Merge'), 'stddevSampMerge': ('stddevSamp', 'Merge'), 'sparkBarMerge': ('sparkBar', 'Merge'), 'quantileExactHighMerge': ('quantileExactHigh', 'Merge'), 'quantilesExactMerge': ('quantilesExact', 'Merge'), 'uniqMerge': ('uniq', 'Merge'), 'groupArrayInsertAtMerge': ('groupArrayInsertAt', 'Merge'), 'quantilesDeterministicMerge': ('quantilesDeterministic', 'Merge'), 'quantilesTDigestWeightedMerge': ('quantilesTDigestWeighted', 'Merge'), 'quantileDeterministicMerge': ('quantileDeterministic', 'Merge'), 'retentionMerge': ('retention', 'Merge'), 'groupBitmapXorMerge': ('groupBitmapXor', 'Merge'), 'quantilesExactExclusiveMerge': ('quantilesExactExclusive', 'Merge'), 'groupArrayMovingSumMerge': ('groupArrayMovingSum', 'Merge'), 'quantileBFloat16WeightedMerge': ('quantileBFloat16Weighted', 'Merge'), 'first_valueMerge': ('first_value', 'Merge'), 'studentTTestMerge': ('studentTTest', 'Merge'), 'topKWeightedMerge': ('topKWeighted', 'Merge'), 'quantileTDigestWeightedMerge': ('quantileTDigestWeighted', 'Merge'), 'categoricalInformationValueMerge': ('categoricalInformationValue', 'Merge'), 'sequenceCountMerge': ('sequenceCount', 'Merge'), 'groupBitAndMerge': ('groupBitAnd', 'Merge'), 'largestTriangleThreeBucketsMerge': ('largestTriangleThreeBuckets', 'Merge'), 'groupBitOrMerge': ('groupBitOr', 'Merge'), 'groupBitmapOrMerge': ('groupBitmapOr', 'Merge'), 'deltaSumTimestampMerge': ('deltaSumTimestamp', 'Merge'), 'argMinMerge': ('argMin', 'Merge'), 'groupBitmapAndMerge': ('groupBitmapAnd', 'Merge'), 'varSampMerge': ('varSamp', 'Merge'), 'exponentialTimeDecayedAvgMerge': ('exponentialTimeDecayedAvg', 'Merge'), 'maxMerge': ('max', 'Merge'), 'quantileExactLowMerge': ('quantileExactLow', 'Merge'), 'maxIntersectionsPositionMerge': ('maxIntersectionsPosition', 'Merge'), 'groupArrayMerge': ('groupArray', 'Merge'), 'quantileMerge': ('quantile', 'Merge'), 'welchTTestMap': ('welchTTest', 'Map'), 'histogramMap': ('histogram', 'Map'), 'countMap': ('count', 'Map'), 'quantileTimingWeightedMap': ('quantileTimingWeighted', 'Map'), 'cramersVMap': ('cramersV', 'Map'), 'skewPopMap': ('skewPop', 'Map'), 'quantileTDigestMap': ('quantileTDigest', 'Map'), 'stochasticLogisticRegressionMap': ('stochasticLogisticRegression', 'Map'), 'quantileInterpolatedWeightedMap': ('quantileInterpolatedWeighted', 'Map'), 'maxMapMap': ('maxMap', 'Map'), 'theilsUMap': ('theilsU', 'Map'), 'last_valueMap': ('last_value', 'Map'), 'argMaxMap': ('argMax', 'Map'), 'quantilesTDigestMap': ('quantilesTDigest', 'Map'), 'kurtPopMap': ('kurtPop', 'Map'), 'groupBitXorMap': ('groupBitXor', 'Map'), 'groupArrayMovingAvgMap': ('groupArrayMovingAvg', 'Map'), 'medianMap': ('median', 'Map'), 'groupUniqArrayMap': ('groupUniqArray', 'Map'), 'cramersVBiasCorrectedMap': ('cramersVBiasCorrected', 'Map'), 'groupBitmapMap': ('groupBitmap', 'Map'), 'sequenceNextNodeMap': ('sequenceNextNode', 'Map'), 'deltaSumMap': ('deltaSum', 'Map'), 'anyHeavyMap': ('anyHeavy', 'Map'), 'quantileBFloat16Map': ('quantileBFloat16', 'Map'), 'uniqHLL12Map': ('uniqHLL12', 'Map'), 'groupConcatMap': ('groupConcat', 'Map'), 'simpleLinearRegressionMap': ('simpleLinearRegression', 'Map'), 'stddevPopMap': ('stddevPop', 'Map'), 'sumKahanMap': ('sumKahan', 'Map'), 'contingencyMap': ('contingency', 'Map'), 'minMapMap': ('minMap', 'Map'), 'avgMap': ('avg', 'Map'), 'quantilesExactWeightedMap': ('quantilesExactWeighted', 'Map'), 'quantilesTimingMap': ('quantilesTiming', 'Map'), 'uniqThetaMap': ('uniqTheta', 'Map'), 'exponentialMovingAverageMap': ('exponentialMovingAverage', 'Map'), 'quantilesBFloat16WeightedMap': ('quantilesBFloat16Weighted', 'Map'), 'intervalLengthSumMap': ('intervalLengthSum', 'Map'), 'uniqCombined64Map': ('uniqCombined64', 'Map'), 'anyMap': ('any', 'Map'), 'uniqCombinedMap': ('uniqCombined', 'Map'), 'avgWeightedMap': ('avgWeighted', 'Map'), 'quantileTimingMap': ('quantileTiming', 'Map'), 'uniqUpToMap': ('uniqUpTo', 'Map'), 'minMap': ('minMap', None), 'anyLastMap': ('anyLast', 'Map'), 'skewSampMap': ('skewSamp', 'Map'), 'kurtSampMap': ('kurtSamp', 'Map'), 'groupArraySampleMap': ('groupArraySample', 'Map'), 'topKMap': ('topK', 'Map'), 'sumMap': ('sumMap', None), 'sumMapMap': ('sumMap', 'Map'), 'quantilesExactHighMap': ('quantilesExactHigh', 'Map'), 'quantilesExactLowMap': ('quantilesExactLow', 'Map'), 'quantileExactWeightedMap': ('quantileExactWeighted', 'Map'), 'sumCountMap': ('sumCount', 'Map'), 'rankCorrMap': ('rankCorr', 'Map'), 'quantilesGKMap': ('quantilesGK', 'Map'), 'uniqExactMap': ('uniqExact', 'Map'), 'groupArrayLastMap': ('groupArrayLast', 'Map'), 'windowFunnelMap': ('windowFunnel', 'Map'), 'maxIntersectionsMap': ('maxIntersections', 'Map'), 'corrMap': ('corr', 'Map'), 'sumWithOverflowMap': ('sumWithOverflow', 'Map'), 'quantilesBFloat16Map': ('quantilesBFloat16', 'Map'), 'quantileExactMap': ('quantileExact', 'Map'), 'entropyMap': ('entropy', 'Map'), 'quantilesInterpolatedWeightedMap': ('quantilesInterpolatedWeighted', 'Map'), 'quantilesMap': ('quantiles', 'Map'), 'stochasticLinearRegressionMap': ('stochasticLinearRegression', 'Map'), 'mannWhitneyUTestMap': ('mannWhitneyUTest', 'Map'), 'quantilesTimingWeightedMap': ('quantilesTimingWeighted', 'Map'), 'covarSampMap': ('covarSamp', 'Map'), 'varPopMap': ('varPop', 'Map'), 'sequenceMatchMap': ('sequenceMatch', 'Map'), 'meanZTestMap': ('meanZTest', 'Map'), 'approx_top_sumMap': ('approx_top_sum', 'Map'), 'boundingRatioMap': ('boundingRatio', 'Map'), 'kolmogorovSmirnovTestMap': ('kolmogorovSmirnovTest', 'Map'), 'covarPopMap': ('covarPop', 'Map'), 'quantileGKMap': ('quantileGK', 'Map'), 'stddevSampMap': ('stddevSamp', 'Map'), 'sparkBarMap': ('sparkBar', 'Map'), 'quantileExactHighMap': ('quantileExactHigh', 'Map'), 'quantilesExactMap': ('quantilesExact', 'Map'), 'uniqMap': ('uniq', 'Map'), 'groupArrayInsertAtMap': ('groupArrayInsertAt', 'Map'), 'quantilesDeterministicMap': ('quantilesDeterministic', 'Map'), 'quantilesTDigestWeightedMap': ('quantilesTDigestWeighted', 'Map'), 'quantileDeterministicMap': ('quantileDeterministic', 'Map'), 'retentionMap': ('retention', 'Map'), 'groupBitmapXorMap': ('groupBitmapXor', 'Map'), 'quantilesExactExclusiveMap': ('quantilesExactExclusive', 'Map'), 'groupArrayMovingSumMap': ('groupArrayMovingSum', 'Map'), 'quantileBFloat16WeightedMap': ('quantileBFloat16Weighted', 'Map'), 'first_valueMap': ('first_value', 'Map'), 'studentTTestMap': ('studentTTest', 'Map'), 'topKWeightedMap': ('topKWeighted', 'Map'), 'quantileTDigestWeightedMap': ('quantileTDigestWeighted', 'Map'), 'categoricalInformationValueMap': ('categoricalInformationValue', 'Map'), 'sequenceCountMap': ('sequenceCount', 'Map'), 'groupBitAndMap': ('groupBitAnd', 'Map'), 'largestTriangleThreeBucketsMap': ('largestTriangleThreeBuckets', 'Map'), 'groupBitOrMap': ('groupBitOr', 'Map'), 'groupBitmapOrMap': ('groupBitmapOr', 'Map'), 'deltaSumTimestampMap': ('deltaSumTimestamp', 'Map'), 'argMinMap': ('argMin', 'Map'), 'groupBitmapAndMap': ('groupBitmapAnd', 'Map'), 'varSampMap': ('varSamp', 'Map'), 'exponentialTimeDecayedAvgMap': ('exponentialTimeDecayedAvg', 'Map'), 'maxMap': ('maxMap', None), 'quantileExactLowMap': ('quantileExactLow', 'Map'), 'maxIntersectionsPositionMap': ('maxIntersectionsPosition', 'Map'), 'groupArrayMap': ('groupArray', 'Map'), 'quantileMap': ('quantile', 'Map'), 'welchTTestIf': ('welchTTest', 'If'), 'histogramIf': ('histogram', 'If'), 'countIf': ('count', 'If'), 'quantileTimingWeightedIf': ('quantileTimingWeighted', 'If'), 'cramersVIf': ('cramersV', 'If'), 'skewPopIf': ('skewPop', 'If'), 'quantileTDigestIf': ('quantileTDigest', 'If'), 'stochasticLogisticRegressionIf': ('stochasticLogisticRegression', 'If'), 'quantileInterpolatedWeightedIf': ('quantileInterpolatedWeighted', 'If'), 'maxMapIf': ('maxMap', 'If'), 'theilsUIf': ('theilsU', 'If'), 'last_valueIf': ('last_value', 'If'), 'argMaxIf': ('argMax', 'If'), 'quantilesTDigestIf': ('quantilesTDigest', 'If'), 'kurtPopIf': ('kurtPop', 'If'), 'groupBitXorIf': ('groupBitXor', 'If'), 'groupArrayMovingAvgIf': ('groupArrayMovingAvg', 'If'), 'medianIf': ('median', 'If'), 'groupUniqArrayIf': ('groupUniqArray', 'If'), 'cramersVBiasCorrectedIf': ('cramersVBiasCorrected', 'If'), 'groupBitmapIf': ('groupBitmap', 'If'), 'sequenceNextNodeIf': ('sequenceNextNode', 'If'), 'deltaSumIf': ('deltaSum', 'If'), 'anyHeavyIf': ('anyHeavy', 'If'), 'quantileBFloat16If': ('quantileBFloat16', 'If'), 'uniqHLL12If': ('uniqHLL12', 'If'), 'groupConcatIf': ('groupConcat', 'If'), 'simpleLinearRegressionIf': ('simpleLinearRegression', 'If'), 'stddevPopIf': ('stddevPop', 'If'), 'sumKahanIf': ('sumKahan', 'If'), 'contingencyIf': ('contingency', 'If'), 'minMapIf': ('minMap', 'If'), 'avgIf': ('avg', 'If'), 'quantilesExactWeightedIf': ('quantilesExactWeighted', 'If'), 'quantilesTimingIf': ('quantilesTiming', 'If'), 'uniqThetaIf': ('uniqTheta', 'If'), 'exponentialMovingAverageIf': ('exponentialMovingAverage', 'If'), 'quantilesBFloat16WeightedIf': ('quantilesBFloat16Weighted', 'If'), 'intervalLengthSumIf': ('intervalLengthSum', 'If'), 'uniqCombined64If': ('uniqCombined64', 'If'), 'anyIf': ('any', 'If'), 'uniqCombinedIf': ('uniqCombined', 'If'), 'avgWeightedIf': ('avgWeighted', 'If'), 'quantileTimingIf': ('quantileTiming', 'If'), 'uniqUpToIf': ('uniqUpTo', 'If'), 'minIf': ('min', 'If'), 'anyLastIf': ('anyLast', 'If'), 'skewSampIf': ('skewSamp', 'If'), 'kurtSampIf': ('kurtSamp', 'If'), 'groupArraySampleIf': ('groupArraySample', 'If'), 'topKIf': ('topK', 'If'), 'sumIf': ('sum', 'If'), 'sumMapIf': ('sumMap', 'If'), 'quantilesExactHighIf': ('quantilesExactHigh', 'If'), 'quantilesExactLowIf': ('quantilesExactLow', 'If'), 'quantileExactWeightedIf': ('quantileExactWeighted', 'If'), 'sumCountIf': ('sumCount', 'If'), 'rankCorrIf': ('rankCorr', 'If'), 'quantilesGKIf': ('quantilesGK', 'If'), 'uniqExactIf': ('uniqExact', 'If'), 'groupArrayLastIf': ('groupArrayLast', 'If'), 'windowFunnelIf': ('windowFunnel', 'If'), 'maxIntersectionsIf': ('maxIntersections', 'If'), 'corrIf': ('corr', 'If'), 'sumWithOverflowIf': ('sumWithOverflow', 'If'), 'quantilesBFloat16If': ('quantilesBFloat16', 'If'), 'quantileExactIf': ('quantileExact', 'If'), 'entropyIf': ('entropy', 'If'), 'quantilesInterpolatedWeightedIf': ('quantilesInterpolatedWeighted', 'If'), 'quantilesIf': ('quantiles', 'If'), 'stochasticLinearRegressionIf': ('stochasticLinearRegression', 'If'), 'mannWhitneyUTestIf': ('mannWhitneyUTest', 'If'), 'quantilesTimingWeightedIf': ('quantilesTimingWeighted', 'If'), 'covarSampIf': ('covarSamp', 'If'), 'varPopIf': ('varPop', 'If'), 'sequenceMatchIf': ('sequenceMatch', 'If'), 'meanZTestIf': ('meanZTest', 'If'), 'approx_top_sumIf': ('approx_top_sum', 'If'), 'boundingRatioIf': ('boundingRatio', 'If'), 'kolmogorovSmirnovTestIf': ('kolmogorovSmirnovTest', 'If'), 'covarPopIf': ('covarPop', 'If'), 'quantileGKIf': ('quantileGK', 'If'), 'stddevSampIf': ('stddevSamp', 'If'), 'sparkBarIf': ('sparkBar', 'If'), 'quantileExactHighIf': ('quantileExactHigh', 'If'), 'quantilesExactIf': ('quantilesExact', 'If'), 'uniqIf': ('uniq', 'If'), 'groupArrayInsertAtIf': ('groupArrayInsertAt', 'If'), 'quantilesDeterministicIf': ('quantilesDeterministic', 'If'), 'quantilesTDigestWeightedIf': ('quantilesTDigestWeighted', 'If'), 'quantileDeterministicIf': ('quantileDeterministic', 'If'), 'retentionIf': ('retention', 'If'), 'groupBitmapXorIf': ('groupBitmapXor', 'If'), 'quantilesExactExclusiveIf': ('quantilesExactExclusive', 'If'), 'groupArrayMovingSumIf': ('groupArrayMovingSum', 'If'), 'quantileBFloat16WeightedIf': ('quantileBFloat16Weighted', 'If'), 'first_valueIf': ('first_value', 'If'), 'studentTTestIf': ('studentTTest', 'If'), 'topKWeightedIf': ('topKWeighted', 'If'), 'quantileTDigestWeightedIf': ('quantileTDigestWeighted', 'If'), 'categoricalInformationValueIf': ('categoricalInformationValue', 'If'), 'sequenceCountIf': ('sequenceCount', 'If'), 'groupBitAndIf': ('groupBitAnd', 'If'), 'largestTriangleThreeBucketsIf': ('largestTriangleThreeBuckets', 'If'), 'groupBitOrIf': ('groupBitOr', 'If'), 'groupBitmapOrIf': ('groupBitmapOr', 'If'), 'deltaSumTimestampIf': ('deltaSumTimestamp', 'If'), 'argMinIf': ('argMin', 'If'), 'groupBitmapAndIf': ('groupBitmapAnd', 'If'), 'varSampIf': ('varSamp', 'If'), 'exponentialTimeDecayedAvgIf': ('exponentialTimeDecayedAvg', 'If'), 'maxIf': ('max', 'If'), 'quantileExactLowIf': ('quantileExactLow', 'If'), 'maxIntersectionsPositionIf': ('maxIntersectionsPosition', 'If'), 'groupArrayIf': ('groupArray', 'If'), 'quantileIf': ('quantile', 'If'), 'welchTTest': ('welchTTest', None), 'histogram': ('histogram', None), 'count': ('count', None), 'quantileTimingWeighted': ('quantileTimingWeighted', None), 'cramersV': ('cramersV', None), 'skewPop': ('skewPop', None), 'quantileTDigest': ('quantileTDigest', None), 'stochasticLogisticRegression': ('stochasticLogisticRegression', None), 'quantileInterpolatedWeighted': ('quantileInterpolatedWeighted', None), 'theilsU': ('theilsU', None), 'last_value': ('last_value', None), 'argMax': ('argMax', None), 'quantilesTDigest': ('quantilesTDigest', None), 'kurtPop': ('kurtPop', None), 'groupBitXor': ('groupBitXor', None), 'groupArrayMovingAvg': ('groupArrayMovingAvg', None), 'median': ('median', None), 'groupUniqArray': ('groupUniqArray', None), 'cramersVBiasCorrected': ('cramersVBiasCorrected', None), 'groupBitmap': ('groupBitmap', None), 'sequenceNextNode': ('sequenceNextNode', None), 'deltaSum': ('deltaSum', None), 'anyHeavy': ('anyHeavy', None), 'quantileBFloat16': ('quantileBFloat16', None), 'uniqHLL12': ('uniqHLL12', None), 'groupConcat': ('groupConcat', None), 'simpleLinearRegression': ('simpleLinearRegression', None), 'stddevPop': ('stddevPop', None), 'sumKahan': ('sumKahan', None), 'contingency': ('contingency', None), 'avg': ('avg', None), 'quantilesExactWeighted': ('quantilesExactWeighted', None), 'quantilesTiming': ('quantilesTiming', None), 'uniqTheta': ('uniqTheta', None), 'exponentialMovingAverage': ('exponentialMovingAverage', None), 'quantilesBFloat16Weighted': ('quantilesBFloat16Weighted', None), 'intervalLengthSum': ('intervalLengthSum', None), 'uniqCombined64': ('uniqCombined64', None), 'any': ('any', None), 'uniqCombined': ('uniqCombined', None), 'avgWeighted': ('avgWeighted', None), 'quantileTiming': ('quantileTiming', None), 'uniqUpTo': ('uniqUpTo', None), 'min': ('min', None), 'anyLast': ('anyLast', None), 'skewSamp': ('skewSamp', None), 'kurtSamp': ('kurtSamp', None), 'groupArraySample': ('groupArraySample', None), 'topK': ('topK', None), 'sum': ('sum', None), 'quantilesExactHigh': ('quantilesExactHigh', None), 'quantilesExactLow': ('quantilesExactLow', None), 'quantileExactWeighted': ('quantileExactWeighted', None), 'sumCount': ('sumCount', None), 'rankCorr': ('rankCorr', None), 'quantilesGK': ('quantilesGK', None), 'uniqExact': ('uniqExact', None), 'groupArrayLast': ('groupArrayLast', None), 'windowFunnel': ('windowFunnel', None), 'maxIntersections': ('maxIntersections', None), 'corr': ('corr', None), 'sumWithOverflow': ('sumWithOverflow', None), 'quantilesBFloat16': ('quantilesBFloat16', None), 'quantileExact': ('quantileExact', None), 'entropy': ('entropy', None), 'quantilesInterpolatedWeighted': ('quantilesInterpolatedWeighted', None), 'quantiles': ('quantiles', None), 'stochasticLinearRegression': ('stochasticLinearRegression', None), 'mannWhitneyUTest': ('mannWhitneyUTest', None), 'quantilesTimingWeighted': ('quantilesTimingWeighted', None), 'covarSamp': ('covarSamp', None), 'varPop': ('varPop', None), 'sequenceMatch': ('sequenceMatch', None), 'meanZTest': ('meanZTest', None), 'approx_top_sum': ('approx_top_sum', None), 'boundingRatio': ('boundingRatio', None), 'kolmogorovSmirnovTest': ('kolmogorovSmirnovTest', None), 'covarPop': ('covarPop', None), 'quantileGK': ('quantileGK', None), 'stddevSamp': ('stddevSamp', None), 'sparkBar': ('sparkBar', None), 'quantileExactHigh': ('quantileExactHigh', None), 'quantilesExact': ('quantilesExact', None), 'uniq': ('uniq', None), 'groupArrayInsertAt': ('groupArrayInsertAt', None), 'quantilesDeterministic': ('quantilesDeterministic', None), 'quantilesTDigestWeighted': ('quantilesTDigestWeighted', None), 'quantileDeterministic': ('quantileDeterministic', None), 'retention': ('retention', None), 'groupBitmapXor': ('groupBitmapXor', None), 'quantilesExactExclusive': ('quantilesExactExclusive', None), 'groupArrayMovingSum': ('groupArrayMovingSum', None), 'quantileBFloat16Weighted': ('quantileBFloat16Weighted', None), 'first_value': ('first_value', None), 'studentTTest': ('studentTTest', None), 'topKWeighted': ('topKWeighted', None), 'quantileTDigestWeighted': ('quantileTDigestWeighted', None), 'categoricalInformationValue': ('categoricalInformationValue', None), 'sequenceCount': ('sequenceCount', None), 'groupBitAnd': ('groupBitAnd', None), 'largestTriangleThreeBuckets': ('largestTriangleThreeBuckets', None), 'groupBitOr': ('groupBitOr', None), 'groupBitmapOr': ('groupBitmapOr', None), 'deltaSumTimestamp': ('deltaSumTimestamp', None), 'argMin': ('argMin', None), 'groupBitmapAnd': ('groupBitmapAnd', None), 'varSamp': ('varSamp', None), 'exponentialTimeDecayedAvg': ('exponentialTimeDecayedAvg', None), 'max': ('max', None), 'quantileExactLow': ('quantileExactLow', None), 'maxIntersectionsPosition': ('maxIntersectionsPosition', None), 'groupArray': ('groupArray', None), 'quantile': ('quantile', 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 "ARRAYFILTER": lambda args: exp.ArrayFilter( 267 this=seq_get(args, 1), expression=seq_get(args, 0) 268 ), 269 "ARRAYMAP": lambda args: exp.Transform(this=seq_get(args, 1), expression=seq_get(args, 0)), 270 "CURRENTDATABASE": exp.CurrentDatabase.from_arg_list, 271 "CURRENTSCHEMAS": exp.CurrentSchemas.from_arg_list, 272 "COUNTIF": _build_count_if, 273 "CITYHASH64": exp.CityHash64.from_arg_list, 274 "COSINEDISTANCE": exp.CosineDistance.from_arg_list, 275 "VERSION": exp.CurrentVersion.from_arg_list, 276 "DATE_ADD": build_date_delta(exp.DateAdd, default_unit=None), 277 "DATEADD": build_date_delta(exp.DateAdd, default_unit=None), 278 "DATE_DIFF": build_date_delta(exp.DateDiff, default_unit=None, supports_timezone=True), 279 "DATEDIFF": build_date_delta(exp.DateDiff, default_unit=None, supports_timezone=True), 280 "DATE_FORMAT": _build_datetime_format(exp.TimeToStr), 281 "DATE_SUB": build_date_delta(exp.DateSub, default_unit=None), 282 "DATESUB": build_date_delta(exp.DateSub, default_unit=None), 283 "FORMATDATETIME": _build_datetime_format(exp.TimeToStr), 284 "HAS": exp.ArrayContains.from_arg_list, 285 "ILIKE": build_like(exp.ILike), 286 "JSONEXTRACTSTRING": build_json_extract_path( 287 exp.JSONExtractScalar, zero_based_indexing=False 288 ), 289 "LENGTH": lambda args: exp.Length(this=seq_get(args, 0), binary=True), 290 "LIKE": build_like(exp.Like), 291 "L2Distance": exp.EuclideanDistance.from_arg_list, 292 "MAP": parser.build_var_map, 293 "MATCH": exp.RegexpLike.from_arg_list, 294 "NOTLIKE": build_like(exp.Like, not_like=True), 295 "PARSEDATETIME": _build_datetime_format(exp.ParseDatetime), 296 "RANDCANONICAL": exp.Rand.from_arg_list, 297 "STR_TO_DATE": _build_str_to_date, 298 "TIMESTAMP_SUB": build_date_delta(exp.TimestampSub, default_unit=None), 299 "TIMESTAMPSUB": build_date_delta(exp.TimestampSub, default_unit=None), 300 "TIMESTAMP_ADD": build_date_delta(exp.TimestampAdd, default_unit=None), 301 "TIMESTAMPADD": build_date_delta(exp.TimestampAdd, default_unit=None), 302 "TOMONDAY": _build_timestamp_trunc("WEEK"), 303 "UNIQ": exp.ApproxDistinct.from_arg_list, 304 "MD5": exp.MD5Digest.from_arg_list, 305 "SHA256": lambda args: exp.SHA2(this=seq_get(args, 0), length=exp.Literal.number(256)), 306 "SHA512": lambda args: exp.SHA2(this=seq_get(args, 0), length=exp.Literal.number(512)), 307 "SPLITBYCHAR": _build_split_by_char, 308 "SPLITBYREGEXP": _build_split(exp.RegexpSplit), 309 "SPLITBYSTRING": _build_split(exp.Split), 310 "SUBSTRINGINDEX": exp.SubstringIndex.from_arg_list, 311 "TOTYPENAME": exp.Typeof.from_arg_list, 312 "EDITDISTANCE": exp.Levenshtein.from_arg_list, 313 "JAROWINKLERSIMILARITY": exp.JarowinklerSimilarity.from_arg_list, 314 "LEVENSHTEINDISTANCE": exp.Levenshtein.from_arg_list, 315 "UTCTIMESTAMP": exp.UtcTimestamp.from_arg_list, 316 } 317 318 AGG_FUNCTIONS = AGG_FUNCTIONS 319 AGG_FUNCTIONS_SUFFIXES = AGG_FUNCTIONS_SUFFIXES 320 321 FUNC_TOKENS = { 322 *parser.Parser.FUNC_TOKENS, 323 TokenType.AND, 324 TokenType.FILE, 325 TokenType.OR, 326 TokenType.SET, 327 } 328 329 RESERVED_TOKENS = parser.Parser.RESERVED_TOKENS - {TokenType.SELECT} 330 331 ID_VAR_TOKENS = { 332 *parser.Parser.ID_VAR_TOKENS, 333 TokenType.LIKE, 334 } 335 336 AGG_FUNC_MAPPING = AGG_FUNC_MAPPING 337 338 @classmethod 339 def _resolve_clickhouse_agg(cls, name: str) -> tuple[str, Sequence[str]] | None: 340 # ClickHouse allows chaining multiple combinators on aggregate functions. 341 # See https://clickhouse.com/docs/sql-reference/aggregate-functions/combinators 342 # N.B. this resolution allows any suffix stack, including ones that ClickHouse rejects 343 # syntactically such as sumMergeMerge (due to repeated adjacent suffixes) 344 345 # Until we are able to identify a 1- or 0-suffix aggregate function by name, 346 # repeatedly strip and queue suffixes (checking longer suffixes first, see comment on 347 # AGG_FUNCTIONS_SUFFIXES_SORTED). This loop only runs for 2 or more suffixes, 348 # as AGG_FUNC_MAPPING memoizes all 0- and 1-suffix 349 accumulated_suffixes: deque[str] = deque() 350 while (parts := AGG_FUNC_MAPPING.get(name)) is None: 351 for suffix in AGG_FUNCTIONS_SUFFIXES: 352 if name.endswith(suffix) and len(name) != len(suffix): 353 accumulated_suffixes.appendleft(suffix) 354 name = name[: -len(suffix)] 355 break 356 else: 357 return None 358 359 # We now have a 0- or 1-suffix aggregate 360 agg_func_name, inner_suffix = parts 361 if inner_suffix: 362 # this is a 1-suffix aggregate (either naturally or via repeated suffix 363 # stripping). prepend the innermost suffix. 364 accumulated_suffixes.appendleft(inner_suffix) 365 366 return (agg_func_name, accumulated_suffixes) 367 368 FUNCTION_PARSERS = { 369 **{k: v for k, v in parser.Parser.FUNCTION_PARSERS.items() if k != "MATCH"}, 370 "ARRAYJOIN": lambda self: self.expression(exp.Explode(this=self._parse_expression())), 371 "GROUPCONCAT": lambda self: self._parse_group_concat(), 372 "QUANTILE": lambda self: self._parse_quantile(), 373 "MEDIAN": lambda self: self._parse_quantile(), 374 "COLUMNS": lambda self: self._parse_columns(), 375 "TUPLE": lambda self: exp.Struct.from_arg_list(self._parse_function_args(alias=True)), 376 "AND": lambda self: exp.and_(*self._parse_function_args(alias=False)), 377 "OR": lambda self: exp.or_(*self._parse_function_args(alias=False)), 378 "XOR": lambda self: exp.xor(*self._parse_function_args(alias=False)), 379 } 380 381 PROPERTY_PARSERS = { 382 **{k: v for k, v in parser.Parser.PROPERTY_PARSERS.items() if k != "DYNAMIC"}, 383 "ENGINE": lambda self: self._parse_engine_property(), 384 "UUID": lambda self: self.expression(exp.UuidProperty(this=self._parse_string())), 385 } 386 387 NO_PAREN_FUNCTION_PARSERS = { 388 k: v for k, v in parser.Parser.NO_PAREN_FUNCTION_PARSERS.items() if k != "ANY" 389 } 390 391 NO_PAREN_FUNCTIONS = { 392 k: v 393 for k, v in parser.Parser.NO_PAREN_FUNCTIONS.items() 394 if k != TokenType.CURRENT_TIMESTAMP 395 } 396 397 RANGE_PARSERS = { 398 **parser.Parser.RANGE_PARSERS, 399 TokenType.GLOBAL: lambda self, this: self._parse_global_in(this), 400 } 401 402 COLUMN_OPERATORS = { 403 **{k: v for k, v in parser.Parser.COLUMN_OPERATORS.items() if k != TokenType.PLACEHOLDER}, 404 TokenType.DOTCARET: lambda self, this, field: self.expression( 405 exp.NestedJSONSelect(this=this, expression=field) 406 ), 407 } 408 409 JOIN_KINDS = { 410 *parser.Parser.JOIN_KINDS, 411 TokenType.ALL, 412 TokenType.ANY, 413 TokenType.ASOF, 414 TokenType.ARRAY, 415 } 416 417 TABLE_ALIAS_TOKENS = parser.Parser.TABLE_ALIAS_TOKENS - { 418 TokenType.ALL, 419 TokenType.ANY, 420 TokenType.ARRAY, 421 TokenType.ASOF, 422 TokenType.FINAL, 423 TokenType.FORMAT, 424 TokenType.SETTINGS, 425 } 426 427 ALIAS_TOKENS = parser.Parser.ALIAS_TOKENS - { 428 TokenType.FORMAT, 429 TokenType.SETTINGS, 430 } 431 432 LOG_DEFAULTS_TO_LN = True 433 434 QUERY_MODIFIER_PARSERS = { 435 **parser.Parser.QUERY_MODIFIER_PARSERS, 436 TokenType.SETTINGS: lambda self: ( 437 "settings", 438 self._advance() or self._parse_csv(self._parse_assignment), 439 ), 440 TokenType.FORMAT: lambda self: ("format", self._advance() or self._parse_id_var()), 441 } 442 443 CONSTRAINT_PARSERS = { 444 **parser.Parser.CONSTRAINT_PARSERS, 445 "INDEX": lambda self: self._parse_index_constraint(), 446 "CODEC": lambda self: self._parse_compress(), 447 "ASSUME": lambda self: self._parse_assume_constraint(), 448 } 449 450 ALTER_PARSERS = { 451 **parser.Parser.ALTER_PARSERS, 452 "MODIFY": lambda self: self._parse_alter_table_modify(), 453 "REPLACE": lambda self: self._parse_alter_table_replace(), 454 } 455 456 SCHEMA_UNNAMED_CONSTRAINTS = { 457 *parser.Parser.SCHEMA_UNNAMED_CONSTRAINTS, 458 "INDEX", 459 } - {"CHECK"} 460 461 PLACEHOLDER_PARSERS = { 462 **parser.Parser.PLACEHOLDER_PARSERS, 463 TokenType.L_BRACE: lambda self: self._parse_query_parameter(), 464 } 465 466 STATEMENT_PARSERS = { 467 **parser.Parser.STATEMENT_PARSERS, 468 TokenType.DETACH: lambda self: self._parse_detach(), 469 } 470 471 def _parse_wrapped_select_or_assignment(self) -> exp.Expr | None: 472 return self._parse_wrapped( 473 lambda: self._parse_select() or self._parse_assignment(), optional=True 474 ) 475 476 def _parse_check_constraint(self) -> exp.CheckColumnConstraint | None: 477 return self.expression( 478 exp.CheckColumnConstraint(this=self._parse_wrapped_select_or_assignment()) 479 ) 480 481 def _parse_assume_constraint(self) -> exp.AssumeColumnConstraint | None: 482 return self.expression( 483 exp.AssumeColumnConstraint(this=self._parse_wrapped_select_or_assignment()) 484 ) 485 486 def _parse_engine_property(self) -> exp.EngineProperty: 487 self._match(TokenType.EQ) 488 return self.expression( 489 exp.EngineProperty(this=self._parse_field(any_token=True, anonymous_func=True)) 490 ) 491 492 # https://clickhouse.com/docs/en/sql-reference/statements/create/function 493 def _parse_user_defined_function_expression(self) -> exp.Expr | None: 494 return self._parse_lambda() 495 496 def _parse_types( 497 self, 498 check_func: bool = False, 499 schema: bool = False, 500 allow_identifiers: bool = True, 501 with_collation: bool = False, 502 ) -> exp.Expr | None: 503 dtype = super()._parse_types( 504 check_func=check_func, 505 schema=schema, 506 allow_identifiers=allow_identifiers, 507 with_collation=with_collation, 508 ) 509 if isinstance(dtype, exp.DataType) and dtype.args.get("nullable") is not True: 510 # Mark every type as non-nullable which is ClickHouse's default, unless it's 511 # already marked as nullable. This marker helps us transpile types from other 512 # dialects to ClickHouse, so that we can e.g. produce `CAST(x AS Nullable(String))` 513 # from `CAST(x AS TEXT)`. If there is a `NULL` value in `x`, the former would 514 # fail in ClickHouse without the `Nullable` type constructor. 515 dtype.set("nullable", False) 516 517 return dtype 518 519 def _parse_extract(self) -> exp.Extract | exp.Anonymous: 520 index = self._index 521 this = self._parse_bitwise() 522 if self._match(TokenType.FROM): 523 self._retreat(index) 524 return super()._parse_extract() 525 526 # We return Anonymous here because extract and regexpExtract have different semantics, 527 # so parsing extract(foo, bar) into RegexpExtract can potentially break queries. E.g., 528 # `extract('foobar', 'b')` works, but ClickHouse crashes for `regexpExtract('foobar', 'b')`. 529 # 530 # TODO: can we somehow convert the former into an equivalent `regexpExtract` call? 531 self._match(TokenType.COMMA) 532 return self.expression( 533 exp.Anonymous(this="extract", expressions=[this, self._parse_bitwise()]) 534 ) 535 536 def _parse_assignment(self) -> exp.Expr | None: 537 this = super()._parse_assignment() 538 539 if self._match(TokenType.PLACEHOLDER): 540 return self.expression( 541 exp.If( 542 this=this, 543 true=self._parse_assignment(), 544 false=self._match(TokenType.COLON) and self._parse_assignment(), 545 ) 546 ) 547 548 return this 549 550 def _parse_query_parameter(self) -> exp.Expr | None: 551 """ 552 Parse a placeholder expression like SELECT {abc: UInt32} or FROM {table: Identifier} 553 https://clickhouse.com/docs/en/sql-reference/syntax#defining-and-using-query-parameters 554 """ 555 index = self._index 556 557 this = self._parse_id_var() 558 self._match(TokenType.COLON) 559 kind = self._parse_types(check_func=False, allow_identifiers=False) or ( 560 self._match_text_seq("IDENTIFIER") and "Identifier" 561 ) 562 563 if not kind: 564 self._retreat(index) 565 return None 566 elif not self._match(TokenType.R_BRACE): 567 self.raise_error("Expecting }") 568 569 if isinstance(this, exp.Identifier) and not this.quoted: 570 this = exp.var(this.name) 571 572 return self.expression(exp.Placeholder(this=this, kind=kind)) 573 574 def _parse_bracket(self, this: exp.Expr | None = None) -> exp.Expr | None: 575 if this: 576 bracket_json_type = None 577 578 while self._match_pair(TokenType.L_BRACKET, TokenType.R_BRACKET): 579 bracket_json_type = exp.DataType( 580 this=exp.DType.ARRAY, 581 expressions=[ 582 bracket_json_type 583 or exp.DType.JSON.into_expr(dialect=self.dialect, nullable=False) 584 ], 585 nested=True, 586 ) 587 588 if bracket_json_type: 589 return self.expression(exp.JSONCast(this=this, to=bracket_json_type)) 590 591 l_brace = self._match(TokenType.L_BRACE, advance=False) 592 bracket = super()._parse_bracket(this) 593 594 if l_brace and isinstance(bracket, exp.Struct): 595 varmap = exp.VarMap(keys=exp.Array(), values=exp.Array()) 596 for expression in bracket.expressions: 597 if not isinstance(expression, exp.PropertyEQ): 598 break 599 600 varmap.args["keys"].append("expressions", exp.Literal.string(expression.name)) 601 varmap.args["values"].append("expressions", expression.expression) 602 603 return varmap 604 605 return bracket 606 607 def _parse_global_in(self, this: exp.Expr | None) -> exp.Not | exp.In: 608 is_negated = self._match(TokenType.NOT) 609 in_expr: exp.In | None = None 610 if self._match(TokenType.IN): 611 in_expr = self._parse_in(this) 612 in_expr.set("is_global", True) 613 return self.expression(exp.Not(this=in_expr)) if is_negated else t.cast(exp.In, in_expr) 614 615 def _parse_table( 616 self, 617 schema: bool = False, 618 joins: bool = False, 619 alias_tokens: Collection[TokenType] | None = None, 620 parse_bracket: bool = False, 621 is_db_reference: bool = False, 622 parse_partition: bool = False, 623 consume_pipe: bool = False, 624 ) -> exp.Expr | None: 625 this = super()._parse_table( 626 schema=schema, 627 joins=joins, 628 alias_tokens=alias_tokens, 629 parse_bracket=parse_bracket, 630 is_db_reference=is_db_reference, 631 ) 632 633 if isinstance(this, exp.Table): 634 inner = this.this 635 alias = this.args.get("alias") 636 637 if isinstance(inner, exp.GenerateSeries) and alias and not alias.columns: 638 alias.set("columns", [exp.to_identifier("generate_series")]) 639 640 if self._match(TokenType.FINAL): 641 this = self.expression(exp.Final(this=this)) 642 643 return this 644 645 def _parse_position(self, haystack_first: bool = False) -> exp.StrPosition: 646 return super()._parse_position(haystack_first=True) 647 648 # https://clickhouse.com/docs/en/sql-reference/statements/select/with/ 649 def _parse_cte(self) -> exp.CTE | None: 650 # WITH <identifier> AS <subquery expression> 651 cte: exp.CTE | None = self._try_parse(super()._parse_cte) 652 653 if not cte: 654 # WITH <expression> AS <identifier> 655 cte = self.expression( 656 exp.CTE(this=self._parse_assignment(), alias=self._parse_table_alias(), scalar=True) 657 ) 658 659 return cte 660 661 def _parse_join_parts( 662 self, 663 ) -> tuple[Token | None, Token | None, Token | None]: 664 is_global = self._prev if self._match(TokenType.GLOBAL) else None 665 666 kind_pre = self._prev if self._match_set(self.JOIN_KINDS) else None 667 side = self._prev if self._match_set(self.JOIN_SIDES) else None 668 kind = self._prev if self._match_set(self.JOIN_KINDS) else None 669 670 return is_global, side or kind, kind_pre or kind 671 672 def _parse_join( 673 self, 674 skip_join_token: bool = False, 675 parse_bracket: bool = False, 676 alias_tokens: t.Collection[TokenType] | None = None, 677 ) -> exp.Join | None: 678 join = super()._parse_join( 679 skip_join_token=skip_join_token, parse_bracket=True, alias_tokens=alias_tokens 680 ) 681 if join: 682 method = join.args.get("method") 683 join.set("method", None) 684 join.set("global_", method) 685 686 # tbl ARRAY JOIN arr <-- this should be a `Column` reference, not a `Table` 687 # https://clickhouse.com/docs/en/sql-reference/statements/select/array-join 688 if join.kind == "ARRAY": 689 for table in join.find_all(exp.Table): 690 table.replace(table.to_column()) 691 692 return join 693 694 def _parse_function( 695 self, 696 functions: dict[str, t.Callable] | None = None, 697 anonymous: bool = False, 698 optional_parens: bool = True, 699 any_token: bool = False, 700 ) -> exp.Expr | None: 701 expr = super()._parse_function( 702 functions=functions, 703 anonymous=anonymous, 704 optional_parens=optional_parens, 705 any_token=any_token, 706 ) 707 708 func = expr.this if isinstance(expr, exp.Window) else expr 709 710 # Aggregate functions can be split in 2 parts: <func_name><suffix[es]> 711 parts = self._resolve_clickhouse_agg(func.this) if isinstance(func, exp.Anonymous) else None 712 713 if parts: 714 anon_func: exp.Anonymous = t.cast(exp.Anonymous, func) 715 params = self._parse_func_params(anon_func) 716 717 if len(parts[1]) > 0: 718 exp_class: Type[exp.Expr] = ( 719 exp.CombinedParameterizedAgg if params else exp.CombinedAggFunc 720 ) 721 else: 722 exp_class = exp.ParameterizedAgg if params else exp.AnonymousAggFunc 723 724 instance = exp_class(this=anon_func.this, expressions=anon_func.expressions) 725 if params: 726 instance.set("params", params) 727 func = self.expression(instance) 728 729 if isinstance(expr, exp.Window): 730 # The window's func was parsed as Anonymous in base parser, fix its 731 # type to be ClickHouse style CombinedAnonymousAggFunc / AnonymousAggFunc 732 expr.set("this", func) 733 elif params: 734 # Params have blocked super()._parse_function() from parsing the following window 735 # (if that exists) as they're standing between the function call and the window spec 736 expr = self._parse_window(func) 737 else: 738 expr = func 739 740 return expr 741 742 def _parse_func_params(self, this: exp.Func | None = None) -> list[exp.Expr] | None: 743 if self._match_pair(TokenType.R_PAREN, TokenType.L_PAREN): 744 return self._parse_csv(self._parse_lambda) 745 746 if self._match(TokenType.L_PAREN): 747 params = self._parse_csv(self._parse_lambda) 748 self._match_r_paren(this) 749 return params 750 751 return None 752 753 def _parse_group_concat(self) -> exp.GroupConcat: 754 args = self._parse_csv(self._parse_lambda) 755 params = self._parse_func_params() 756 757 if params: 758 # groupConcat(sep [, limit])(expr) 759 separator = seq_get(args, 0) 760 limit = seq_get(args, 1) 761 this: exp.Expr | None = seq_get(params, 0) 762 if limit is not None: 763 this = exp.Limit(this=this, expression=limit) 764 return self.expression(exp.GroupConcat(this=this, separator=separator)) 765 766 # groupConcat(expr) 767 return self.expression(exp.GroupConcat(this=seq_get(args, 0))) 768 769 def _parse_quantile(self) -> exp.Quantile: 770 this = self._parse_lambda() 771 params = self._parse_func_params() 772 if params: 773 return self.expression(exp.Quantile(this=params[0], quantile=this)) 774 return self.expression(exp.Quantile(this=this, quantile=exp.Literal.number(0.5))) 775 776 def _parse_wrapped_id_vars(self, optional: bool = False) -> list[exp.Expr]: 777 return super()._parse_wrapped_id_vars(optional=True) 778 779 def _parse_column_def( 780 self, this: exp.Expr | None, computed_column: bool = True 781 ) -> exp.Expr | None: 782 if self._match(TokenType.DOT): 783 return exp.Dot(this=this, expression=self._parse_id_var()) 784 785 return super()._parse_column_def(this, computed_column=computed_column) 786 787 def _parse_primary_key( 788 self, 789 wrapped_optional: bool = False, 790 in_props: bool = False, 791 named_primary_key: bool = False, 792 ) -> exp.PrimaryKeyColumnConstraint | exp.PrimaryKey: 793 return super()._parse_primary_key( 794 wrapped_optional=wrapped_optional or in_props, 795 in_props=in_props, 796 named_primary_key=named_primary_key, 797 ) 798 799 def _parse_on_property(self) -> exp.Expr | None: 800 index = self._index 801 if self._match_text_seq("CLUSTER"): 802 this = self._parse_string() or self._parse_id_var() 803 if this: 804 return self.expression(exp.OnCluster(this=this)) 805 else: 806 self._retreat(index) 807 return None 808 809 def _parse_index_constraint(self, kind: str | None = None) -> exp.IndexColumnConstraint: 810 # INDEX name1 expr TYPE type1(args) GRANULARITY value 811 this = self._parse_id_var() 812 expression = self._parse_assignment() 813 814 index_type = self._match_text_seq("TYPE") and (self._parse_function() or self._parse_var()) 815 816 granularity = self._match_text_seq("GRANULARITY") and self._parse_term() 817 818 return self.expression( 819 exp.IndexColumnConstraint( 820 this=this, expression=expression, index_type=index_type, granularity=granularity 821 ) 822 ) 823 824 def _parse_partition(self) -> exp.Partition | None: 825 # https://clickhouse.com/docs/en/sql-reference/statements/alter/partition#how-to-set-partition-expression 826 if not self._match(TokenType.PARTITION): 827 return None 828 829 if self._match_text_seq("ID"): 830 # Corresponds to the PARTITION ID <string_value> syntax 831 expressions: list[exp.Expr] = [ 832 self.expression(exp.PartitionId(this=self._parse_string())) 833 ] 834 else: 835 expressions = self._parse_expressions() 836 837 return self.expression(exp.Partition(expressions=expressions)) 838 839 def _parse_alter_table_replace(self) -> exp.Expr | None: 840 partition = self._parse_partition() 841 842 if not partition or not self._match(TokenType.FROM): 843 return None 844 845 return self.expression( 846 exp.ReplacePartition(expression=partition, source=self._parse_table_parts()) 847 ) 848 849 def _parse_alter_table_modify(self) -> exp.Expr | None: 850 if properties := self._parse_properties(): 851 return self.expression(exp.AlterModifySqlSecurity(expressions=properties.expressions)) 852 return None 853 854 def _parse_definer(self) -> exp.DefinerProperty | None: 855 self._match(TokenType.EQ) 856 if self._match(TokenType.CURRENT_USER): 857 return exp.DefinerProperty(this=exp.Var(this=self._prev.text.upper())) 858 return exp.DefinerProperty(this=self._parse_string()) 859 860 def _parse_projection_def(self) -> exp.ProjectionDef | None: 861 if not self._match_text_seq("PROJECTION"): 862 return None 863 864 return self.expression( 865 exp.ProjectionDef( 866 this=self._parse_id_var(), expression=self._parse_wrapped(self._parse_statement) 867 ) 868 ) 869 870 def _parse_constraint(self) -> exp.Expr | None: 871 return super()._parse_constraint() or self._parse_projection_def() 872 873 def _parse_alias(self, this: exp.Expr | None, explicit: bool = False) -> exp.Expr | None: 874 # In clickhouse "SELECT <expr> APPLY(...)" is a query modifier, 875 # so "APPLY" shouldn't be parsed as <expr>'s alias. However, "SELECT <expr> apply" is a valid alias 876 if self._match_pair(TokenType.APPLY, TokenType.L_PAREN, advance=False): 877 return this 878 879 return super()._parse_alias(this=this, explicit=explicit) 880 881 def _parse_expression(self) -> exp.Expr | None: 882 this = super()._parse_expression() 883 884 # Clickhouse allows "SELECT <expr> [APPLY(func)] [...]]" modifier 885 while self._match_pair(TokenType.APPLY, TokenType.L_PAREN): 886 this = exp.Apply(this=this, expression=self._parse_var(any_token=True)) 887 self._match(TokenType.R_PAREN) 888 889 return this 890 891 def _parse_columns(self) -> exp.Expr: 892 this: exp.Expr = self.expression(exp.Columns(this=self._parse_lambda())) 893 894 while self._next and self._match_text_seq(")", "APPLY", "("): 895 self._match(TokenType.R_PAREN) 896 this = exp.Apply(this=this, expression=self._parse_var(any_token=True)) 897 return this 898 899 def _parse_value(self, values: bool = True) -> exp.Tuple | None: 900 value = super()._parse_value(values=values) 901 if not value: 902 return None 903 904 # In Clickhouse "SELECT * FROM VALUES (1, 2, 3)" generates a table with a single column, in contrast 905 # to other dialects. For this case, we canonicalize the values into a tuple-of-tuples AST if it's not already one. 906 # In INSERT INTO statements the same clause actually references multiple columns (opposite semantics), 907 # but the final result is not altered by the extra parentheses. 908 # Note: Clickhouse allows VALUES([structure], value, ...) so the branch checks for the last expression 909 expressions = value.expressions 910 if values and not isinstance(expressions[-1], exp.Tuple): 911 value.set( 912 "expressions", 913 [self.expression(exp.Tuple(expressions=[expr])) for expr in expressions], 914 ) 915 916 return value 917 918 def _parse_partitioned_by(self) -> exp.PartitionedByProperty: 919 # ClickHouse allows custom expressions as partition key 920 # https://clickhouse.com/docs/engines/table-engines/mergetree-family/custom-partitioning-key 921 return self.expression(exp.PartitionedByProperty(this=self._parse_assignment())) 922 923 def _parse_detach(self) -> exp.Detach: 924 kind = self._match_set(self.DB_CREATABLES) and self._prev.text.upper() 925 exists = self._parse_exists() 926 this = self._parse_table_parts() 927 928 return self.expression( 929 exp.Detach( 930 this=this, 931 kind=kind, 932 exists=exists, 933 cluster=self._parse_on_property() if self._match(TokenType.ON) else None, 934 permanent=self._match_text_seq("PERMANENTLY"), 935 sync=self._match_text_seq("SYNC"), 936 ) 937 )
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_CONTAINED_BY': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.ArrayContainedBy'>>, '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'>>, 'DYNAMIC_IDENTIFIER': <bound method Func.from_arg_list of <class 'sqlglot.expressions.core.DynamicIdentifier'>>, '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_DATE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.FromISO8601Date'>>, '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_B_PATH_EXISTS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.json.JSONBPathExists'>>, '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>, 'TOSTARTOFDAY': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFQUARTER': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFHOUR': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFMILLISECOND': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFSECOND': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFYEAR': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFMONTH': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFMICROSECOND': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFMINUTE': <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'>>, 'ARRAYFILTER': <function ClickHouseParser.<lambda>>, 'ARRAYMAP': <function ClickHouseParser.<lambda>>, '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 =
{'welchTTest', 'histogram', 'count', 'quantileTimingWeighted', 'cramersV', 'skewPop', 'quantileTDigest', 'stochasticLogisticRegression', 'quantileInterpolatedWeighted', 'maxMap', 'theilsU', 'last_value', 'argMax', 'quantilesTDigest', 'kurtPop', 'groupBitXor', 'groupArrayMovingAvg', 'median', 'groupUniqArray', 'cramersVBiasCorrected', 'groupBitmap', 'sequenceNextNode', 'deltaSum', 'anyHeavy', 'quantileBFloat16', 'uniqHLL12', 'groupConcat', 'simpleLinearRegression', 'stddevPop', 'sumKahan', 'contingency', 'minMap', 'avg', 'quantilesExactWeighted', 'quantilesTiming', 'uniqTheta', 'exponentialMovingAverage', 'quantilesBFloat16Weighted', 'intervalLengthSum', 'uniqCombined64', 'any', 'uniqCombined', 'avgWeighted', 'quantileTiming', 'uniqUpTo', 'min', 'anyLast', 'skewSamp', 'kurtSamp', 'groupArraySample', 'topK', 'sum', 'sumMap', 'quantilesExactHigh', 'quantilesExactLow', 'quantileExactWeighted', 'sumCount', 'rankCorr', 'quantilesGK', 'uniqExact', 'groupArrayLast', 'windowFunnel', 'maxIntersections', 'corr', 'sumWithOverflow', 'quantilesBFloat16', 'quantileExact', 'entropy', 'quantilesInterpolatedWeighted', 'quantiles', 'stochasticLinearRegression', 'mannWhitneyUTest', 'quantilesTimingWeighted', 'covarSamp', 'varPop', 'sequenceMatch', 'meanZTest', 'approx_top_sum', 'boundingRatio', 'kolmogorovSmirnovTest', 'covarPop', 'quantileGK', 'stddevSamp', 'sparkBar', 'quantileExactHigh', 'quantilesExact', 'uniq', 'groupArrayInsertAt', 'quantilesDeterministic', 'quantilesTDigestWeighted', 'quantileDeterministic', 'retention', 'groupBitmapXor', 'quantilesExactExclusive', 'groupArrayMovingSum', 'quantileBFloat16Weighted', 'first_value', 'studentTTest', 'topKWeighted', 'quantileTDigestWeighted', 'categoricalInformationValue', 'sequenceCount', 'groupBitAnd', 'largestTriangleThreeBuckets', 'groupBitOr', 'groupBitmapOr', 'deltaSumTimestamp', 'argMin', 'groupBitmapAnd', 'varSamp', 'exponentialTimeDecayedAvg', 'max', 'quantileExactLow', 'maxIntersectionsPosition', 'groupArray', 'quantile'}
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: 61>, <TokenType.XOR: 66>, <TokenType.IDENTIFIER: 79>, <TokenType.TABLE: 84>, <TokenType.VAR: 89>, <TokenType.BIT: 97>, <TokenType.BOOLEAN: 98>, <TokenType.TINYINT: 99>, <TokenType.UTINYINT: 100>, <TokenType.SMALLINT: 101>, <TokenType.USMALLINT: 102>, <TokenType.MEDIUMINT: 103>, <TokenType.UMEDIUMINT: 104>, <TokenType.INT: 105>, <TokenType.UINT: 106>, <TokenType.BIGINT: 107>, <TokenType.UBIGINT: 108>, <TokenType.BIGNUM: 109>, <TokenType.INT128: 110>, <TokenType.UINT128: 111>, <TokenType.INT256: 112>, <TokenType.UINT256: 113>, <TokenType.FLOAT: 114>, <TokenType.DOUBLE: 115>, <TokenType.UDOUBLE: 116>, <TokenType.DECIMAL: 117>, <TokenType.DECIMAL32: 118>, <TokenType.DECIMAL64: 119>, <TokenType.DECIMAL128: 120>, <TokenType.DECIMAL256: 121>, <TokenType.DECFLOAT: 122>, <TokenType.UDECIMAL: 123>, <TokenType.BIGDECIMAL: 124>, <TokenType.CHAR: 125>, <TokenType.NCHAR: 126>, <TokenType.VARCHAR: 127>, <TokenType.NVARCHAR: 128>, <TokenType.BPCHAR: 129>, <TokenType.TEXT: 130>, <TokenType.MEDIUMTEXT: 131>, <TokenType.LONGTEXT: 132>, <TokenType.BLOB: 133>, <TokenType.MEDIUMBLOB: 134>, <TokenType.LONGBLOB: 135>, <TokenType.TINYBLOB: 136>, <TokenType.TINYTEXT: 137>, <TokenType.NAME: 138>, <TokenType.BINARY: 139>, <TokenType.VARBINARY: 140>, <TokenType.JSON: 141>, <TokenType.JSONB: 142>, <TokenType.TIME: 143>, <TokenType.TIMETZ: 144>, <TokenType.TIME_NS: 145>, <TokenType.TIMESTAMP: 146>, <TokenType.TIMESTAMPTZ: 147>, <TokenType.TIMESTAMPLTZ: 148>, <TokenType.TIMESTAMPNTZ: 149>, <TokenType.TIMESTAMP_S: 150>, <TokenType.TIMESTAMP_MS: 151>, <TokenType.TIMESTAMP_NS: 152>, <TokenType.DATETIME: 153>, <TokenType.DATETIME2: 154>, <TokenType.DATETIME64: 155>, <TokenType.SMALLDATETIME: 156>, <TokenType.DATE: 157>, <TokenType.DATE32: 158>, <TokenType.INT4RANGE: 159>, <TokenType.INT4MULTIRANGE: 160>, <TokenType.INT8RANGE: 161>, <TokenType.INT8MULTIRANGE: 162>, <TokenType.NUMRANGE: 163>, <TokenType.NUMMULTIRANGE: 164>, <TokenType.TSRANGE: 165>, <TokenType.TSMULTIRANGE: 166>, <TokenType.TSTZRANGE: 167>, <TokenType.TSTZMULTIRANGE: 168>, <TokenType.DATERANGE: 169>, <TokenType.DATEMULTIRANGE: 170>, <TokenType.UUID: 171>, <TokenType.GEOGRAPHY: 172>, <TokenType.GEOGRAPHYPOINT: 173>, <TokenType.NULLABLE: 174>, <TokenType.GEOMETRY: 175>, <TokenType.POINT: 176>, <TokenType.RING: 177>, <TokenType.LINESTRING: 178>, <TokenType.LOCALTIME: 179>, <TokenType.LOCALTIMESTAMP: 180>, <TokenType.MULTILINESTRING: 182>, <TokenType.POLYGON: 183>, <TokenType.MULTIPOLYGON: 184>, <TokenType.HLLSKETCH: 185>, <TokenType.HSTORE: 186>, <TokenType.SUPER: 187>, <TokenType.SERIAL: 188>, <TokenType.SMALLSERIAL: 189>, <TokenType.BIGSERIAL: 190>, <TokenType.XML: 191>, <TokenType.YEAR: 192>, <TokenType.USERDEFINED: 193>, <TokenType.MONEY: 194>, <TokenType.SMALLMONEY: 195>, <TokenType.ROWVERSION: 196>, <TokenType.IMAGE: 197>, <TokenType.VARIANT: 198>, <TokenType.OBJECT: 199>, <TokenType.INET: 200>, <TokenType.IPADDRESS: 201>, <TokenType.IPPREFIX: 202>, <TokenType.IPV4: 203>, <TokenType.IPV6: 204>, <TokenType.ENUM: 205>, <TokenType.ENUM8: 206>, <TokenType.ENUM16: 207>, <TokenType.FIXEDSTRING: 208>, <TokenType.LOWCARDINALITY: 209>, <TokenType.NESTED: 210>, <TokenType.AGGREGATEFUNCTION: 211>, <TokenType.SIMPLEAGGREGATEFUNCTION: 212>, <TokenType.TDIGEST: 213>, <TokenType.UNKNOWN: 214>, <TokenType.VECTOR: 215>, <TokenType.DYNAMIC: 216>, <TokenType.VOID: 217>, <TokenType.ALL: 220>, <TokenType.ANY: 222>, <TokenType.ARRAY: 224>, <TokenType.COLLATE: 236>, <TokenType.COMMAND: 237>, <TokenType.CURRENT_DATE: 246>, <TokenType.CURRENT_DATETIME: 247>, <TokenType.CURRENT_SCHEMA: 248>, <TokenType.CURRENT_TIME: 249>, <TokenType.CURRENT_TIMESTAMP: 250>, <TokenType.CURRENT_USER: 251>, <TokenType.CURRENT_CATALOG: 254>, <TokenType.EXISTS: 271>, <TokenType.FILE: 274>, <TokenType.FILTER: 276>, <TokenType.FIRST: 278>, <TokenType.FORMAT: 282>, <TokenType.GET: 286>, <TokenType.GLOB: 287>, <TokenType.ILIKE: 295>, <TokenType.INDEX: 297>, <TokenType.INSERT: 300>, <TokenType.INTERVAL: 304>, <TokenType.ISNULL: 309>, <TokenType.LEFT: 317>, <TokenType.LIKE: 318>, <TokenType.LIST: 320>, <TokenType.MAP: 323>, <TokenType.MERGE: 328>, <TokenType.NEXT: 332>, <TokenType.NOTHING: 333>, <TokenType.NULL: 335>, <TokenType.OBJECT_IDENTIFIER: 336>, <TokenType.OFFSET: 337>, <TokenType.PRIMARY_KEY: 362>, <TokenType.PSEUDO_TYPE: 365>, <TokenType.RANGE: 370>, <TokenType.REPLACE: 374>, <TokenType.RIGHT: 378>, <TokenType.RLIKE: 379>, <TokenType.ROW: 383>, <TokenType.SEQUENCE: 389>, <TokenType.SET: 391>, <TokenType.SOME: 395>, <TokenType.STRUCT: 402>, <TokenType.TRUNCATE: 410>, <TokenType.UNION: 415>, <TokenType.UNNEST: 416>, <TokenType.WINDOW: 429>, <TokenType.UTC_DATE: 432>, <TokenType.UTC_TIME: 433>, <TokenType.UTC_TIMESTAMP: 434>}
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: 329>, <TokenType.SEMICOLON: 19>, <TokenType.STAR: 20>, <TokenType.BACKSLASH: 21>, <TokenType.SLASH: 22>, <TokenType.LT: 23>, <TokenType.GT: 25>, <TokenType.UNKNOWN: 214>, <TokenType.NOT: 27>, <TokenType.EQ: 28>, <TokenType.AMP: 36>, <TokenType.PLACEHOLDER: 356>, <TokenType.PIPE: 39>, <TokenType.CARET: 42>, <TokenType.TILDE: 44>, <TokenType.HASH: 48>, <TokenType.PARAMETER: 58>}
ID_VAR_TOKENS =
{<TokenType.SESSION: 59>, <TokenType.SESSION_USER: 61>, <TokenType.IDENTIFIER: 79>, <TokenType.DATABASE: 80>, <TokenType.COLUMN: 81>, <TokenType.SCHEMA: 83>, <TokenType.TABLE: 84>, <TokenType.WAREHOUSE: 85>, <TokenType.STAGE: 86>, <TokenType.STREAM: 87>, <TokenType.STREAMLIT: 88>, <TokenType.VAR: 89>, <TokenType.BIT: 97>, <TokenType.BOOLEAN: 98>, <TokenType.TINYINT: 99>, <TokenType.UTINYINT: 100>, <TokenType.SMALLINT: 101>, <TokenType.USMALLINT: 102>, <TokenType.MEDIUMINT: 103>, <TokenType.UMEDIUMINT: 104>, <TokenType.INT: 105>, <TokenType.UINT: 106>, <TokenType.BIGINT: 107>, <TokenType.UBIGINT: 108>, <TokenType.BIGNUM: 109>, <TokenType.INT128: 110>, <TokenType.UINT128: 111>, <TokenType.INT256: 112>, <TokenType.UINT256: 113>, <TokenType.FLOAT: 114>, <TokenType.DOUBLE: 115>, <TokenType.UDOUBLE: 116>, <TokenType.DECIMAL: 117>, <TokenType.DECIMAL32: 118>, <TokenType.DECIMAL64: 119>, <TokenType.DECIMAL128: 120>, <TokenType.DECIMAL256: 121>, <TokenType.DECFLOAT: 122>, <TokenType.UDECIMAL: 123>, <TokenType.BIGDECIMAL: 124>, <TokenType.CHAR: 125>, <TokenType.NCHAR: 126>, <TokenType.VARCHAR: 127>, <TokenType.NVARCHAR: 128>, <TokenType.BPCHAR: 129>, <TokenType.TEXT: 130>, <TokenType.MEDIUMTEXT: 131>, <TokenType.LONGTEXT: 132>, <TokenType.BLOB: 133>, <TokenType.MEDIUMBLOB: 134>, <TokenType.LONGBLOB: 135>, <TokenType.TINYBLOB: 136>, <TokenType.TINYTEXT: 137>, <TokenType.NAME: 138>, <TokenType.BINARY: 139>, <TokenType.VARBINARY: 140>, <TokenType.JSON: 141>, <TokenType.JSONB: 142>, <TokenType.TIME: 143>, <TokenType.TIMETZ: 144>, <TokenType.TIME_NS: 145>, <TokenType.TIMESTAMP: 146>, <TokenType.TIMESTAMPTZ: 147>, <TokenType.TIMESTAMPLTZ: 148>, <TokenType.TIMESTAMPNTZ: 149>, <TokenType.TIMESTAMP_S: 150>, <TokenType.TIMESTAMP_MS: 151>, <TokenType.TIMESTAMP_NS: 152>, <TokenType.DATETIME: 153>, <TokenType.DATETIME2: 154>, <TokenType.DATETIME64: 155>, <TokenType.SMALLDATETIME: 156>, <TokenType.DATE: 157>, <TokenType.DATE32: 158>, <TokenType.INT4RANGE: 159>, <TokenType.INT4MULTIRANGE: 160>, <TokenType.INT8RANGE: 161>, <TokenType.INT8MULTIRANGE: 162>, <TokenType.NUMRANGE: 163>, <TokenType.NUMMULTIRANGE: 164>, <TokenType.TSRANGE: 165>, <TokenType.TSMULTIRANGE: 166>, <TokenType.TSTZRANGE: 167>, <TokenType.TSTZMULTIRANGE: 168>, <TokenType.DATERANGE: 169>, <TokenType.DATEMULTIRANGE: 170>, <TokenType.UUID: 171>, <TokenType.GEOGRAPHY: 172>, <TokenType.GEOGRAPHYPOINT: 173>, <TokenType.NULLABLE: 174>, <TokenType.GEOMETRY: 175>, <TokenType.POINT: 176>, <TokenType.RING: 177>, <TokenType.LINESTRING: 178>, <TokenType.LOCALTIME: 179>, <TokenType.LOCALTIMESTAMP: 180>, <TokenType.MULTILINESTRING: 182>, <TokenType.POLYGON: 183>, <TokenType.MULTIPOLYGON: 184>, <TokenType.HLLSKETCH: 185>, <TokenType.HSTORE: 186>, <TokenType.SUPER: 187>, <TokenType.SERIAL: 188>, <TokenType.SMALLSERIAL: 189>, <TokenType.BIGSERIAL: 190>, <TokenType.XML: 191>, <TokenType.YEAR: 192>, <TokenType.USERDEFINED: 193>, <TokenType.MONEY: 194>, <TokenType.SMALLMONEY: 195>, <TokenType.ROWVERSION: 196>, <TokenType.IMAGE: 197>, <TokenType.VARIANT: 198>, <TokenType.OBJECT: 199>, <TokenType.INET: 200>, <TokenType.IPADDRESS: 201>, <TokenType.IPPREFIX: 202>, <TokenType.IPV4: 203>, <TokenType.IPV6: 204>, <TokenType.ENUM: 205>, <TokenType.ENUM8: 206>, <TokenType.ENUM16: 207>, <TokenType.FIXEDSTRING: 208>, <TokenType.LOWCARDINALITY: 209>, <TokenType.NESTED: 210>, <TokenType.AGGREGATEFUNCTION: 211>, <TokenType.SIMPLEAGGREGATEFUNCTION: 212>, <TokenType.TDIGEST: 213>, <TokenType.UNKNOWN: 214>, <TokenType.VECTOR: 215>, <TokenType.DYNAMIC: 216>, <TokenType.VOID: 217>, <TokenType.ALL: 220>, <TokenType.ANTI: 221>, <TokenType.ANY: 222>, <TokenType.APPLY: 223>, <TokenType.ARRAY: 224>, <TokenType.ASC: 225>, <TokenType.ASOF: 226>, <TokenType.ATTACH: 227>, <TokenType.AUTO_INCREMENT: 228>, <TokenType.BEGIN: 229>, <TokenType.CACHE: 232>, <TokenType.CASE: 233>, <TokenType.COLLATE: 236>, <TokenType.COMMAND: 237>, <TokenType.COMMENT: 238>, <TokenType.COMMIT: 239>, <TokenType.CONSTRAINT: 241>, <TokenType.COPY: 242>, <TokenType.CUBE: 245>, <TokenType.CURRENT_DATE: 246>, <TokenType.CURRENT_DATETIME: 247>, <TokenType.CURRENT_SCHEMA: 248>, <TokenType.CURRENT_TIME: 249>, <TokenType.CURRENT_TIMESTAMP: 250>, <TokenType.CURRENT_USER: 251>, <TokenType.CURRENT_ROLE: 253>, <TokenType.CURRENT_CATALOG: 254>, <TokenType.DEFAULT: 256>, <TokenType.DELETE: 257>, <TokenType.DESC: 258>, <TokenType.DESCRIBE: 259>, <TokenType.DETACH: 260>, <TokenType.DICTIONARY: 261>, <TokenType.DIV: 264>, <TokenType.END: 267>, <TokenType.ESCAPE: 268>, <TokenType.EXECUTE: 270>, <TokenType.EXISTS: 271>, <TokenType.FALSE: 272>, <TokenType.FILE: 274>, <TokenType.FILE_FORMAT: 275>, <TokenType.FILTER: 276>, <TokenType.FINAL: 277>, <TokenType.FIRST: 278>, <TokenType.FOREIGN_KEY: 281>, <TokenType.FORMAT: 282>, <TokenType.FULL: 284>, <TokenType.FUNCTION: 285>, <TokenType.GET: 286>, <TokenType.INDEX: 297>, <TokenType.INTERVAL: 304>, <TokenType.IS: 308>, <TokenType.ISNULL: 309>, <TokenType.KEEP: 312>, <TokenType.KILL: 314>, <TokenType.LEFT: 317>, <TokenType.LIKE: 318>, <TokenType.LIMIT: 319>, <TokenType.LIST: 320>, <TokenType.LOAD: 321>, <TokenType.LOCK: 322>, <TokenType.MAP: 323>, <TokenType.MATCH: 324>, <TokenType.MERGE: 328>, <TokenType.MODEL: 330>, <TokenType.NATURAL: 331>, <TokenType.NEXT: 332>, <TokenType.NOTHING: 333>, <TokenType.NULL: 335>, <TokenType.OBJECT_IDENTIFIER: 336>, <TokenType.OFFSET: 337>, <TokenType.OPERATOR: 340>, <TokenType.ORDINALITY: 344>, <TokenType.INOUT: 346>, <TokenType.OVER: 348>, <TokenType.OVERLAPS: 349>, <TokenType.OVERWRITE: 350>, <TokenType.PARTITION: 352>, <TokenType.PERCENT: 354>, <TokenType.PIVOT: 355>, <TokenType.PRAGMA: 360>, <TokenType.PROCEDURE: 363>, <TokenType.PSEUDO_TYPE: 365>, <TokenType.PUT: 366>, <TokenType.RANGE: 370>, <TokenType.RECURSIVE: 371>, <TokenType.REFRESH: 372>, <TokenType.RENAME: 373>, <TokenType.REPLACE: 374>, <TokenType.REFERENCES: 377>, <TokenType.RIGHT: 378>, <TokenType.ROLLUP: 382>, <TokenType.ROW: 383>, <TokenType.ROWS: 384>, <TokenType.SEMI: 387>, <TokenType.SEQUENCE: 389>, <TokenType.SET: 391>, <TokenType.SETTINGS: 392>, <TokenType.SHOW: 393>, <TokenType.SOME: 395>, <TokenType.STORAGE_INTEGRATION: 400>, <TokenType.STRAIGHT_JOIN: 401>, <TokenType.STRUCT: 402>, <TokenType.TAG: 405>, <TokenType.TEMPORARY: 406>, <TokenType.TOP: 407>, <TokenType.TRUE: 409>, <TokenType.TRUNCATE: 410>, <TokenType.TRIGGER: 411>, <TokenType.TYPE: 412>, <TokenType.UNNEST: 416>, <TokenType.UNPIVOT: 417>, <TokenType.UPDATE: 418>, <TokenType.USE: 419>, <TokenType.VIEW: 423>, <TokenType.SEMANTIC_VIEW: 424>, <TokenType.VOLATILE: 425>, <TokenType.WINDOW: 429>, <TokenType.UNIQUE: 431>, <TokenType.SINK: 438>, <TokenType.SOURCE: 439>, <TokenType.ANALYZE: 440>, <TokenType.NAMESPACE: 441>, <TokenType.EXPORT: 442>}
AGG_FUNC_MAPPING =
{'welchTTestSimpleState': ('welchTTest', 'SimpleState'), 'histogramSimpleState': ('histogram', 'SimpleState'), 'countSimpleState': ('count', 'SimpleState'), 'quantileTimingWeightedSimpleState': ('quantileTimingWeighted', 'SimpleState'), 'cramersVSimpleState': ('cramersV', 'SimpleState'), 'skewPopSimpleState': ('skewPop', 'SimpleState'), 'quantileTDigestSimpleState': ('quantileTDigest', 'SimpleState'), 'stochasticLogisticRegressionSimpleState': ('stochasticLogisticRegression', 'SimpleState'), 'quantileInterpolatedWeightedSimpleState': ('quantileInterpolatedWeighted', 'SimpleState'), 'maxMapSimpleState': ('maxMap', 'SimpleState'), 'theilsUSimpleState': ('theilsU', 'SimpleState'), 'last_valueSimpleState': ('last_value', 'SimpleState'), 'argMaxSimpleState': ('argMax', 'SimpleState'), 'quantilesTDigestSimpleState': ('quantilesTDigest', 'SimpleState'), 'kurtPopSimpleState': ('kurtPop', 'SimpleState'), 'groupBitXorSimpleState': ('groupBitXor', 'SimpleState'), 'groupArrayMovingAvgSimpleState': ('groupArrayMovingAvg', 'SimpleState'), 'medianSimpleState': ('median', 'SimpleState'), 'groupUniqArraySimpleState': ('groupUniqArray', 'SimpleState'), 'cramersVBiasCorrectedSimpleState': ('cramersVBiasCorrected', 'SimpleState'), 'groupBitmapSimpleState': ('groupBitmap', 'SimpleState'), 'sequenceNextNodeSimpleState': ('sequenceNextNode', 'SimpleState'), 'deltaSumSimpleState': ('deltaSum', 'SimpleState'), 'anyHeavySimpleState': ('anyHeavy', 'SimpleState'), 'quantileBFloat16SimpleState': ('quantileBFloat16', 'SimpleState'), 'uniqHLL12SimpleState': ('uniqHLL12', 'SimpleState'), 'groupConcatSimpleState': ('groupConcat', 'SimpleState'), 'simpleLinearRegressionSimpleState': ('simpleLinearRegression', 'SimpleState'), 'stddevPopSimpleState': ('stddevPop', 'SimpleState'), 'sumKahanSimpleState': ('sumKahan', 'SimpleState'), 'contingencySimpleState': ('contingency', 'SimpleState'), 'minMapSimpleState': ('minMap', 'SimpleState'), 'avgSimpleState': ('avg', 'SimpleState'), 'quantilesExactWeightedSimpleState': ('quantilesExactWeighted', 'SimpleState'), 'quantilesTimingSimpleState': ('quantilesTiming', 'SimpleState'), 'uniqThetaSimpleState': ('uniqTheta', 'SimpleState'), 'exponentialMovingAverageSimpleState': ('exponentialMovingAverage', 'SimpleState'), 'quantilesBFloat16WeightedSimpleState': ('quantilesBFloat16Weighted', 'SimpleState'), 'intervalLengthSumSimpleState': ('intervalLengthSum', 'SimpleState'), 'uniqCombined64SimpleState': ('uniqCombined64', 'SimpleState'), 'anySimpleState': ('any', 'SimpleState'), 'uniqCombinedSimpleState': ('uniqCombined', 'SimpleState'), 'avgWeightedSimpleState': ('avgWeighted', 'SimpleState'), 'quantileTimingSimpleState': ('quantileTiming', 'SimpleState'), 'uniqUpToSimpleState': ('uniqUpTo', 'SimpleState'), 'minSimpleState': ('min', 'SimpleState'), 'anyLastSimpleState': ('anyLast', 'SimpleState'), 'skewSampSimpleState': ('skewSamp', 'SimpleState'), 'kurtSampSimpleState': ('kurtSamp', 'SimpleState'), 'groupArraySampleSimpleState': ('groupArraySample', 'SimpleState'), 'topKSimpleState': ('topK', 'SimpleState'), 'sumSimpleState': ('sum', 'SimpleState'), 'sumMapSimpleState': ('sumMap', 'SimpleState'), 'quantilesExactHighSimpleState': ('quantilesExactHigh', 'SimpleState'), 'quantilesExactLowSimpleState': ('quantilesExactLow', 'SimpleState'), 'quantileExactWeightedSimpleState': ('quantileExactWeighted', 'SimpleState'), 'sumCountSimpleState': ('sumCount', 'SimpleState'), 'rankCorrSimpleState': ('rankCorr', 'SimpleState'), 'quantilesGKSimpleState': ('quantilesGK', 'SimpleState'), 'uniqExactSimpleState': ('uniqExact', 'SimpleState'), 'groupArrayLastSimpleState': ('groupArrayLast', 'SimpleState'), 'windowFunnelSimpleState': ('windowFunnel', 'SimpleState'), 'maxIntersectionsSimpleState': ('maxIntersections', 'SimpleState'), 'corrSimpleState': ('corr', 'SimpleState'), 'sumWithOverflowSimpleState': ('sumWithOverflow', 'SimpleState'), 'quantilesBFloat16SimpleState': ('quantilesBFloat16', 'SimpleState'), 'quantileExactSimpleState': ('quantileExact', 'SimpleState'), 'entropySimpleState': ('entropy', 'SimpleState'), 'quantilesInterpolatedWeightedSimpleState': ('quantilesInterpolatedWeighted', 'SimpleState'), 'quantilesSimpleState': ('quantiles', 'SimpleState'), 'stochasticLinearRegressionSimpleState': ('stochasticLinearRegression', 'SimpleState'), 'mannWhitneyUTestSimpleState': ('mannWhitneyUTest', 'SimpleState'), 'quantilesTimingWeightedSimpleState': ('quantilesTimingWeighted', 'SimpleState'), 'covarSampSimpleState': ('covarSamp', 'SimpleState'), 'varPopSimpleState': ('varPop', 'SimpleState'), 'sequenceMatchSimpleState': ('sequenceMatch', 'SimpleState'), 'meanZTestSimpleState': ('meanZTest', 'SimpleState'), 'approx_top_sumSimpleState': ('approx_top_sum', 'SimpleState'), 'boundingRatioSimpleState': ('boundingRatio', 'SimpleState'), 'kolmogorovSmirnovTestSimpleState': ('kolmogorovSmirnovTest', 'SimpleState'), 'covarPopSimpleState': ('covarPop', 'SimpleState'), 'quantileGKSimpleState': ('quantileGK', 'SimpleState'), 'stddevSampSimpleState': ('stddevSamp', 'SimpleState'), 'sparkBarSimpleState': ('sparkBar', 'SimpleState'), 'quantileExactHighSimpleState': ('quantileExactHigh', 'SimpleState'), 'quantilesExactSimpleState': ('quantilesExact', 'SimpleState'), 'uniqSimpleState': ('uniq', 'SimpleState'), 'groupArrayInsertAtSimpleState': ('groupArrayInsertAt', 'SimpleState'), 'quantilesDeterministicSimpleState': ('quantilesDeterministic', 'SimpleState'), 'quantilesTDigestWeightedSimpleState': ('quantilesTDigestWeighted', 'SimpleState'), 'quantileDeterministicSimpleState': ('quantileDeterministic', 'SimpleState'), 'retentionSimpleState': ('retention', 'SimpleState'), 'groupBitmapXorSimpleState': ('groupBitmapXor', 'SimpleState'), 'quantilesExactExclusiveSimpleState': ('quantilesExactExclusive', 'SimpleState'), 'groupArrayMovingSumSimpleState': ('groupArrayMovingSum', 'SimpleState'), 'quantileBFloat16WeightedSimpleState': ('quantileBFloat16Weighted', 'SimpleState'), 'first_valueSimpleState': ('first_value', 'SimpleState'), 'studentTTestSimpleState': ('studentTTest', 'SimpleState'), 'topKWeightedSimpleState': ('topKWeighted', 'SimpleState'), 'quantileTDigestWeightedSimpleState': ('quantileTDigestWeighted', 'SimpleState'), 'categoricalInformationValueSimpleState': ('categoricalInformationValue', 'SimpleState'), 'sequenceCountSimpleState': ('sequenceCount', 'SimpleState'), 'groupBitAndSimpleState': ('groupBitAnd', 'SimpleState'), 'largestTriangleThreeBucketsSimpleState': ('largestTriangleThreeBuckets', 'SimpleState'), 'groupBitOrSimpleState': ('groupBitOr', 'SimpleState'), 'groupBitmapOrSimpleState': ('groupBitmapOr', 'SimpleState'), 'deltaSumTimestampSimpleState': ('deltaSumTimestamp', 'SimpleState'), 'argMinSimpleState': ('argMin', 'SimpleState'), 'groupBitmapAndSimpleState': ('groupBitmapAnd', 'SimpleState'), 'varSampSimpleState': ('varSamp', 'SimpleState'), 'exponentialTimeDecayedAvgSimpleState': ('exponentialTimeDecayedAvg', 'SimpleState'), 'maxSimpleState': ('max', 'SimpleState'), 'quantileExactLowSimpleState': ('quantileExactLow', 'SimpleState'), 'maxIntersectionsPositionSimpleState': ('maxIntersectionsPosition', 'SimpleState'), 'groupArraySimpleState': ('groupArray', 'SimpleState'), 'quantileSimpleState': ('quantile', 'SimpleState'), 'welchTTestMergeState': ('welchTTest', 'MergeState'), 'histogramMergeState': ('histogram', 'MergeState'), 'countMergeState': ('count', 'MergeState'), 'quantileTimingWeightedMergeState': ('quantileTimingWeighted', 'MergeState'), 'cramersVMergeState': ('cramersV', 'MergeState'), 'skewPopMergeState': ('skewPop', 'MergeState'), 'quantileTDigestMergeState': ('quantileTDigest', 'MergeState'), 'stochasticLogisticRegressionMergeState': ('stochasticLogisticRegression', 'MergeState'), 'quantileInterpolatedWeightedMergeState': ('quantileInterpolatedWeighted', 'MergeState'), 'maxMapMergeState': ('maxMap', 'MergeState'), 'theilsUMergeState': ('theilsU', 'MergeState'), 'last_valueMergeState': ('last_value', 'MergeState'), 'argMaxMergeState': ('argMax', 'MergeState'), 'quantilesTDigestMergeState': ('quantilesTDigest', 'MergeState'), 'kurtPopMergeState': ('kurtPop', 'MergeState'), 'groupBitXorMergeState': ('groupBitXor', 'MergeState'), 'groupArrayMovingAvgMergeState': ('groupArrayMovingAvg', 'MergeState'), 'medianMergeState': ('median', 'MergeState'), 'groupUniqArrayMergeState': ('groupUniqArray', 'MergeState'), 'cramersVBiasCorrectedMergeState': ('cramersVBiasCorrected', 'MergeState'), 'groupBitmapMergeState': ('groupBitmap', 'MergeState'), 'sequenceNextNodeMergeState': ('sequenceNextNode', 'MergeState'), 'deltaSumMergeState': ('deltaSum', 'MergeState'), 'anyHeavyMergeState': ('anyHeavy', 'MergeState'), 'quantileBFloat16MergeState': ('quantileBFloat16', 'MergeState'), 'uniqHLL12MergeState': ('uniqHLL12', 'MergeState'), 'groupConcatMergeState': ('groupConcat', 'MergeState'), 'simpleLinearRegressionMergeState': ('simpleLinearRegression', 'MergeState'), 'stddevPopMergeState': ('stddevPop', 'MergeState'), 'sumKahanMergeState': ('sumKahan', 'MergeState'), 'contingencyMergeState': ('contingency', 'MergeState'), 'minMapMergeState': ('minMap', 'MergeState'), 'avgMergeState': ('avg', 'MergeState'), 'quantilesExactWeightedMergeState': ('quantilesExactWeighted', 'MergeState'), 'quantilesTimingMergeState': ('quantilesTiming', 'MergeState'), 'uniqThetaMergeState': ('uniqTheta', 'MergeState'), 'exponentialMovingAverageMergeState': ('exponentialMovingAverage', 'MergeState'), 'quantilesBFloat16WeightedMergeState': ('quantilesBFloat16Weighted', 'MergeState'), 'intervalLengthSumMergeState': ('intervalLengthSum', 'MergeState'), 'uniqCombined64MergeState': ('uniqCombined64', 'MergeState'), 'anyMergeState': ('any', 'MergeState'), 'uniqCombinedMergeState': ('uniqCombined', 'MergeState'), 'avgWeightedMergeState': ('avgWeighted', 'MergeState'), 'quantileTimingMergeState': ('quantileTiming', 'MergeState'), 'uniqUpToMergeState': ('uniqUpTo', 'MergeState'), 'minMergeState': ('min', 'MergeState'), 'anyLastMergeState': ('anyLast', 'MergeState'), 'skewSampMergeState': ('skewSamp', 'MergeState'), 'kurtSampMergeState': ('kurtSamp', 'MergeState'), 'groupArraySampleMergeState': ('groupArraySample', 'MergeState'), 'topKMergeState': ('topK', 'MergeState'), 'sumMergeState': ('sum', 'MergeState'), 'sumMapMergeState': ('sumMap', 'MergeState'), 'quantilesExactHighMergeState': ('quantilesExactHigh', 'MergeState'), 'quantilesExactLowMergeState': ('quantilesExactLow', 'MergeState'), 'quantileExactWeightedMergeState': ('quantileExactWeighted', 'MergeState'), 'sumCountMergeState': ('sumCount', 'MergeState'), 'rankCorrMergeState': ('rankCorr', 'MergeState'), 'quantilesGKMergeState': ('quantilesGK', 'MergeState'), 'uniqExactMergeState': ('uniqExact', 'MergeState'), 'groupArrayLastMergeState': ('groupArrayLast', 'MergeState'), 'windowFunnelMergeState': ('windowFunnel', 'MergeState'), 'maxIntersectionsMergeState': ('maxIntersections', 'MergeState'), 'corrMergeState': ('corr', 'MergeState'), 'sumWithOverflowMergeState': ('sumWithOverflow', 'MergeState'), 'quantilesBFloat16MergeState': ('quantilesBFloat16', 'MergeState'), 'quantileExactMergeState': ('quantileExact', 'MergeState'), 'entropyMergeState': ('entropy', 'MergeState'), 'quantilesInterpolatedWeightedMergeState': ('quantilesInterpolatedWeighted', 'MergeState'), 'quantilesMergeState': ('quantiles', 'MergeState'), 'stochasticLinearRegressionMergeState': ('stochasticLinearRegression', 'MergeState'), 'mannWhitneyUTestMergeState': ('mannWhitneyUTest', 'MergeState'), 'quantilesTimingWeightedMergeState': ('quantilesTimingWeighted', 'MergeState'), 'covarSampMergeState': ('covarSamp', 'MergeState'), 'varPopMergeState': ('varPop', 'MergeState'), 'sequenceMatchMergeState': ('sequenceMatch', 'MergeState'), 'meanZTestMergeState': ('meanZTest', 'MergeState'), 'approx_top_sumMergeState': ('approx_top_sum', 'MergeState'), 'boundingRatioMergeState': ('boundingRatio', 'MergeState'), 'kolmogorovSmirnovTestMergeState': ('kolmogorovSmirnovTest', 'MergeState'), 'covarPopMergeState': ('covarPop', 'MergeState'), 'quantileGKMergeState': ('quantileGK', 'MergeState'), 'stddevSampMergeState': ('stddevSamp', 'MergeState'), 'sparkBarMergeState': ('sparkBar', 'MergeState'), 'quantileExactHighMergeState': ('quantileExactHigh', 'MergeState'), 'quantilesExactMergeState': ('quantilesExact', 'MergeState'), 'uniqMergeState': ('uniq', 'MergeState'), 'groupArrayInsertAtMergeState': ('groupArrayInsertAt', 'MergeState'), 'quantilesDeterministicMergeState': ('quantilesDeterministic', 'MergeState'), 'quantilesTDigestWeightedMergeState': ('quantilesTDigestWeighted', 'MergeState'), 'quantileDeterministicMergeState': ('quantileDeterministic', 'MergeState'), 'retentionMergeState': ('retention', 'MergeState'), 'groupBitmapXorMergeState': ('groupBitmapXor', 'MergeState'), 'quantilesExactExclusiveMergeState': ('quantilesExactExclusive', 'MergeState'), 'groupArrayMovingSumMergeState': ('groupArrayMovingSum', 'MergeState'), 'quantileBFloat16WeightedMergeState': ('quantileBFloat16Weighted', 'MergeState'), 'first_valueMergeState': ('first_value', 'MergeState'), 'studentTTestMergeState': ('studentTTest', 'MergeState'), 'topKWeightedMergeState': ('topKWeighted', 'MergeState'), 'quantileTDigestWeightedMergeState': ('quantileTDigestWeighted', 'MergeState'), 'categoricalInformationValueMergeState': ('categoricalInformationValue', 'MergeState'), 'sequenceCountMergeState': ('sequenceCount', 'MergeState'), 'groupBitAndMergeState': ('groupBitAnd', 'MergeState'), 'largestTriangleThreeBucketsMergeState': ('largestTriangleThreeBuckets', 'MergeState'), 'groupBitOrMergeState': ('groupBitOr', 'MergeState'), 'groupBitmapOrMergeState': ('groupBitmapOr', 'MergeState'), 'deltaSumTimestampMergeState': ('deltaSumTimestamp', 'MergeState'), 'argMinMergeState': ('argMin', 'MergeState'), 'groupBitmapAndMergeState': ('groupBitmapAnd', 'MergeState'), 'varSampMergeState': ('varSamp', 'MergeState'), 'exponentialTimeDecayedAvgMergeState': ('exponentialTimeDecayedAvg', 'MergeState'), 'maxMergeState': ('max', 'MergeState'), 'quantileExactLowMergeState': ('quantileExactLow', 'MergeState'), 'maxIntersectionsPositionMergeState': ('maxIntersectionsPosition', 'MergeState'), 'groupArrayMergeState': ('groupArray', 'MergeState'), 'quantileMergeState': ('quantile', 'MergeState'), 'welchTTestOrDefault': ('welchTTest', 'OrDefault'), 'histogramOrDefault': ('histogram', 'OrDefault'), 'countOrDefault': ('count', 'OrDefault'), 'quantileTimingWeightedOrDefault': ('quantileTimingWeighted', 'OrDefault'), 'cramersVOrDefault': ('cramersV', 'OrDefault'), 'skewPopOrDefault': ('skewPop', 'OrDefault'), 'quantileTDigestOrDefault': ('quantileTDigest', 'OrDefault'), 'stochasticLogisticRegressionOrDefault': ('stochasticLogisticRegression', 'OrDefault'), 'quantileInterpolatedWeightedOrDefault': ('quantileInterpolatedWeighted', 'OrDefault'), 'maxMapOrDefault': ('maxMap', 'OrDefault'), 'theilsUOrDefault': ('theilsU', 'OrDefault'), 'last_valueOrDefault': ('last_value', 'OrDefault'), 'argMaxOrDefault': ('argMax', 'OrDefault'), 'quantilesTDigestOrDefault': ('quantilesTDigest', 'OrDefault'), 'kurtPopOrDefault': ('kurtPop', 'OrDefault'), 'groupBitXorOrDefault': ('groupBitXor', 'OrDefault'), 'groupArrayMovingAvgOrDefault': ('groupArrayMovingAvg', 'OrDefault'), 'medianOrDefault': ('median', 'OrDefault'), 'groupUniqArrayOrDefault': ('groupUniqArray', 'OrDefault'), 'cramersVBiasCorrectedOrDefault': ('cramersVBiasCorrected', 'OrDefault'), 'groupBitmapOrDefault': ('groupBitmap', 'OrDefault'), 'sequenceNextNodeOrDefault': ('sequenceNextNode', 'OrDefault'), 'deltaSumOrDefault': ('deltaSum', 'OrDefault'), 'anyHeavyOrDefault': ('anyHeavy', 'OrDefault'), 'quantileBFloat16OrDefault': ('quantileBFloat16', 'OrDefault'), 'uniqHLL12OrDefault': ('uniqHLL12', 'OrDefault'), 'groupConcatOrDefault': ('groupConcat', 'OrDefault'), 'simpleLinearRegressionOrDefault': ('simpleLinearRegression', 'OrDefault'), 'stddevPopOrDefault': ('stddevPop', 'OrDefault'), 'sumKahanOrDefault': ('sumKahan', 'OrDefault'), 'contingencyOrDefault': ('contingency', 'OrDefault'), 'minMapOrDefault': ('minMap', 'OrDefault'), 'avgOrDefault': ('avg', 'OrDefault'), 'quantilesExactWeightedOrDefault': ('quantilesExactWeighted', 'OrDefault'), 'quantilesTimingOrDefault': ('quantilesTiming', 'OrDefault'), 'uniqThetaOrDefault': ('uniqTheta', 'OrDefault'), 'exponentialMovingAverageOrDefault': ('exponentialMovingAverage', 'OrDefault'), 'quantilesBFloat16WeightedOrDefault': ('quantilesBFloat16Weighted', 'OrDefault'), 'intervalLengthSumOrDefault': ('intervalLengthSum', 'OrDefault'), 'uniqCombined64OrDefault': ('uniqCombined64', 'OrDefault'), 'anyOrDefault': ('any', 'OrDefault'), 'uniqCombinedOrDefault': ('uniqCombined', 'OrDefault'), 'avgWeightedOrDefault': ('avgWeighted', 'OrDefault'), 'quantileTimingOrDefault': ('quantileTiming', 'OrDefault'), 'uniqUpToOrDefault': ('uniqUpTo', 'OrDefault'), 'minOrDefault': ('min', 'OrDefault'), 'anyLastOrDefault': ('anyLast', 'OrDefault'), 'skewSampOrDefault': ('skewSamp', 'OrDefault'), 'kurtSampOrDefault': ('kurtSamp', 'OrDefault'), 'groupArraySampleOrDefault': ('groupArraySample', 'OrDefault'), 'topKOrDefault': ('topK', 'OrDefault'), 'sumOrDefault': ('sum', 'OrDefault'), 'sumMapOrDefault': ('sumMap', 'OrDefault'), 'quantilesExactHighOrDefault': ('quantilesExactHigh', 'OrDefault'), 'quantilesExactLowOrDefault': ('quantilesExactLow', 'OrDefault'), 'quantileExactWeightedOrDefault': ('quantileExactWeighted', 'OrDefault'), 'sumCountOrDefault': ('sumCount', 'OrDefault'), 'rankCorrOrDefault': ('rankCorr', 'OrDefault'), 'quantilesGKOrDefault': ('quantilesGK', 'OrDefault'), 'uniqExactOrDefault': ('uniqExact', 'OrDefault'), 'groupArrayLastOrDefault': ('groupArrayLast', 'OrDefault'), 'windowFunnelOrDefault': ('windowFunnel', 'OrDefault'), 'maxIntersectionsOrDefault': ('maxIntersections', 'OrDefault'), 'corrOrDefault': ('corr', 'OrDefault'), 'sumWithOverflowOrDefault': ('sumWithOverflow', 'OrDefault'), 'quantilesBFloat16OrDefault': ('quantilesBFloat16', 'OrDefault'), 'quantileExactOrDefault': ('quantileExact', 'OrDefault'), 'entropyOrDefault': ('entropy', 'OrDefault'), 'quantilesInterpolatedWeightedOrDefault': ('quantilesInterpolatedWeighted', 'OrDefault'), 'quantilesOrDefault': ('quantiles', 'OrDefault'), 'stochasticLinearRegressionOrDefault': ('stochasticLinearRegression', 'OrDefault'), 'mannWhitneyUTestOrDefault': ('mannWhitneyUTest', 'OrDefault'), 'quantilesTimingWeightedOrDefault': ('quantilesTimingWeighted', 'OrDefault'), 'covarSampOrDefault': ('covarSamp', 'OrDefault'), 'varPopOrDefault': ('varPop', 'OrDefault'), 'sequenceMatchOrDefault': ('sequenceMatch', 'OrDefault'), 'meanZTestOrDefault': ('meanZTest', 'OrDefault'), 'approx_top_sumOrDefault': ('approx_top_sum', 'OrDefault'), 'boundingRatioOrDefault': ('boundingRatio', 'OrDefault'), 'kolmogorovSmirnovTestOrDefault': ('kolmogorovSmirnovTest', 'OrDefault'), 'covarPopOrDefault': ('covarPop', 'OrDefault'), 'quantileGKOrDefault': ('quantileGK', 'OrDefault'), 'stddevSampOrDefault': ('stddevSamp', 'OrDefault'), 'sparkBarOrDefault': ('sparkBar', 'OrDefault'), 'quantileExactHighOrDefault': ('quantileExactHigh', 'OrDefault'), 'quantilesExactOrDefault': ('quantilesExact', 'OrDefault'), 'uniqOrDefault': ('uniq', 'OrDefault'), 'groupArrayInsertAtOrDefault': ('groupArrayInsertAt', 'OrDefault'), 'quantilesDeterministicOrDefault': ('quantilesDeterministic', 'OrDefault'), 'quantilesTDigestWeightedOrDefault': ('quantilesTDigestWeighted', 'OrDefault'), 'quantileDeterministicOrDefault': ('quantileDeterministic', 'OrDefault'), 'retentionOrDefault': ('retention', 'OrDefault'), 'groupBitmapXorOrDefault': ('groupBitmapXor', 'OrDefault'), 'quantilesExactExclusiveOrDefault': ('quantilesExactExclusive', 'OrDefault'), 'groupArrayMovingSumOrDefault': ('groupArrayMovingSum', 'OrDefault'), 'quantileBFloat16WeightedOrDefault': ('quantileBFloat16Weighted', 'OrDefault'), 'first_valueOrDefault': ('first_value', 'OrDefault'), 'studentTTestOrDefault': ('studentTTest', 'OrDefault'), 'topKWeightedOrDefault': ('topKWeighted', 'OrDefault'), 'quantileTDigestWeightedOrDefault': ('quantileTDigestWeighted', 'OrDefault'), 'categoricalInformationValueOrDefault': ('categoricalInformationValue', 'OrDefault'), 'sequenceCountOrDefault': ('sequenceCount', 'OrDefault'), 'groupBitAndOrDefault': ('groupBitAnd', 'OrDefault'), 'largestTriangleThreeBucketsOrDefault': ('largestTriangleThreeBuckets', 'OrDefault'), 'groupBitOrOrDefault': ('groupBitOr', 'OrDefault'), 'groupBitmapOrOrDefault': ('groupBitmapOr', 'OrDefault'), 'deltaSumTimestampOrDefault': ('deltaSumTimestamp', 'OrDefault'), 'argMinOrDefault': ('argMin', 'OrDefault'), 'groupBitmapAndOrDefault': ('groupBitmapAnd', 'OrDefault'), 'varSampOrDefault': ('varSamp', 'OrDefault'), 'exponentialTimeDecayedAvgOrDefault': ('exponentialTimeDecayedAvg', 'OrDefault'), 'maxOrDefault': ('max', 'OrDefault'), 'quantileExactLowOrDefault': ('quantileExactLow', 'OrDefault'), 'maxIntersectionsPositionOrDefault': ('maxIntersectionsPosition', 'OrDefault'), 'groupArrayOrDefault': ('groupArray', 'OrDefault'), 'quantileOrDefault': ('quantile', 'OrDefault'), 'welchTTestDistinct': ('welchTTest', 'Distinct'), 'histogramDistinct': ('histogram', 'Distinct'), 'countDistinct': ('count', 'Distinct'), 'quantileTimingWeightedDistinct': ('quantileTimingWeighted', 'Distinct'), 'cramersVDistinct': ('cramersV', 'Distinct'), 'skewPopDistinct': ('skewPop', 'Distinct'), 'quantileTDigestDistinct': ('quantileTDigest', 'Distinct'), 'stochasticLogisticRegressionDistinct': ('stochasticLogisticRegression', 'Distinct'), 'quantileInterpolatedWeightedDistinct': ('quantileInterpolatedWeighted', 'Distinct'), 'maxMapDistinct': ('maxMap', 'Distinct'), 'theilsUDistinct': ('theilsU', 'Distinct'), 'last_valueDistinct': ('last_value', 'Distinct'), 'argMaxDistinct': ('argMax', 'Distinct'), 'quantilesTDigestDistinct': ('quantilesTDigest', 'Distinct'), 'kurtPopDistinct': ('kurtPop', 'Distinct'), 'groupBitXorDistinct': ('groupBitXor', 'Distinct'), 'groupArrayMovingAvgDistinct': ('groupArrayMovingAvg', 'Distinct'), 'medianDistinct': ('median', 'Distinct'), 'groupUniqArrayDistinct': ('groupUniqArray', 'Distinct'), 'cramersVBiasCorrectedDistinct': ('cramersVBiasCorrected', 'Distinct'), 'groupBitmapDistinct': ('groupBitmap', 'Distinct'), 'sequenceNextNodeDistinct': ('sequenceNextNode', 'Distinct'), 'deltaSumDistinct': ('deltaSum', 'Distinct'), 'anyHeavyDistinct': ('anyHeavy', 'Distinct'), 'quantileBFloat16Distinct': ('quantileBFloat16', 'Distinct'), 'uniqHLL12Distinct': ('uniqHLL12', 'Distinct'), 'groupConcatDistinct': ('groupConcat', 'Distinct'), 'simpleLinearRegressionDistinct': ('simpleLinearRegression', 'Distinct'), 'stddevPopDistinct': ('stddevPop', 'Distinct'), 'sumKahanDistinct': ('sumKahan', 'Distinct'), 'contingencyDistinct': ('contingency', 'Distinct'), 'minMapDistinct': ('minMap', 'Distinct'), 'avgDistinct': ('avg', 'Distinct'), 'quantilesExactWeightedDistinct': ('quantilesExactWeighted', 'Distinct'), 'quantilesTimingDistinct': ('quantilesTiming', 'Distinct'), 'uniqThetaDistinct': ('uniqTheta', 'Distinct'), 'exponentialMovingAverageDistinct': ('exponentialMovingAverage', 'Distinct'), 'quantilesBFloat16WeightedDistinct': ('quantilesBFloat16Weighted', 'Distinct'), 'intervalLengthSumDistinct': ('intervalLengthSum', 'Distinct'), 'uniqCombined64Distinct': ('uniqCombined64', 'Distinct'), 'anyDistinct': ('any', 'Distinct'), 'uniqCombinedDistinct': ('uniqCombined', 'Distinct'), 'avgWeightedDistinct': ('avgWeighted', 'Distinct'), 'quantileTimingDistinct': ('quantileTiming', 'Distinct'), 'uniqUpToDistinct': ('uniqUpTo', 'Distinct'), 'minDistinct': ('min', 'Distinct'), 'anyLastDistinct': ('anyLast', 'Distinct'), 'skewSampDistinct': ('skewSamp', 'Distinct'), 'kurtSampDistinct': ('kurtSamp', 'Distinct'), 'groupArraySampleDistinct': ('groupArraySample', 'Distinct'), 'topKDistinct': ('topK', 'Distinct'), 'sumDistinct': ('sum', 'Distinct'), 'sumMapDistinct': ('sumMap', 'Distinct'), 'quantilesExactHighDistinct': ('quantilesExactHigh', 'Distinct'), 'quantilesExactLowDistinct': ('quantilesExactLow', 'Distinct'), 'quantileExactWeightedDistinct': ('quantileExactWeighted', 'Distinct'), 'sumCountDistinct': ('sumCount', 'Distinct'), 'rankCorrDistinct': ('rankCorr', 'Distinct'), 'quantilesGKDistinct': ('quantilesGK', 'Distinct'), 'uniqExactDistinct': ('uniqExact', 'Distinct'), 'groupArrayLastDistinct': ('groupArrayLast', 'Distinct'), 'windowFunnelDistinct': ('windowFunnel', 'Distinct'), 'maxIntersectionsDistinct': ('maxIntersections', 'Distinct'), 'corrDistinct': ('corr', 'Distinct'), 'sumWithOverflowDistinct': ('sumWithOverflow', 'Distinct'), 'quantilesBFloat16Distinct': ('quantilesBFloat16', 'Distinct'), 'quantileExactDistinct': ('quantileExact', 'Distinct'), 'entropyDistinct': ('entropy', 'Distinct'), 'quantilesInterpolatedWeightedDistinct': ('quantilesInterpolatedWeighted', 'Distinct'), 'quantilesDistinct': ('quantiles', 'Distinct'), 'stochasticLinearRegressionDistinct': ('stochasticLinearRegression', 'Distinct'), 'mannWhitneyUTestDistinct': ('mannWhitneyUTest', 'Distinct'), 'quantilesTimingWeightedDistinct': ('quantilesTimingWeighted', 'Distinct'), 'covarSampDistinct': ('covarSamp', 'Distinct'), 'varPopDistinct': ('varPop', 'Distinct'), 'sequenceMatchDistinct': ('sequenceMatch', 'Distinct'), 'meanZTestDistinct': ('meanZTest', 'Distinct'), 'approx_top_sumDistinct': ('approx_top_sum', 'Distinct'), 'boundingRatioDistinct': ('boundingRatio', 'Distinct'), 'kolmogorovSmirnovTestDistinct': ('kolmogorovSmirnovTest', 'Distinct'), 'covarPopDistinct': ('covarPop', 'Distinct'), 'quantileGKDistinct': ('quantileGK', 'Distinct'), 'stddevSampDistinct': ('stddevSamp', 'Distinct'), 'sparkBarDistinct': ('sparkBar', 'Distinct'), 'quantileExactHighDistinct': ('quantileExactHigh', 'Distinct'), 'quantilesExactDistinct': ('quantilesExact', 'Distinct'), 'uniqDistinct': ('uniq', 'Distinct'), 'groupArrayInsertAtDistinct': ('groupArrayInsertAt', 'Distinct'), 'quantilesDeterministicDistinct': ('quantilesDeterministic', 'Distinct'), 'quantilesTDigestWeightedDistinct': ('quantilesTDigestWeighted', 'Distinct'), 'quantileDeterministicDistinct': ('quantileDeterministic', 'Distinct'), 'retentionDistinct': ('retention', 'Distinct'), 'groupBitmapXorDistinct': ('groupBitmapXor', 'Distinct'), 'quantilesExactExclusiveDistinct': ('quantilesExactExclusive', 'Distinct'), 'groupArrayMovingSumDistinct': ('groupArrayMovingSum', 'Distinct'), 'quantileBFloat16WeightedDistinct': ('quantileBFloat16Weighted', 'Distinct'), 'first_valueDistinct': ('first_value', 'Distinct'), 'studentTTestDistinct': ('studentTTest', 'Distinct'), 'topKWeightedDistinct': ('topKWeighted', 'Distinct'), 'quantileTDigestWeightedDistinct': ('quantileTDigestWeighted', 'Distinct'), 'categoricalInformationValueDistinct': ('categoricalInformationValue', 'Distinct'), 'sequenceCountDistinct': ('sequenceCount', 'Distinct'), 'groupBitAndDistinct': ('groupBitAnd', 'Distinct'), 'largestTriangleThreeBucketsDistinct': ('largestTriangleThreeBuckets', 'Distinct'), 'groupBitOrDistinct': ('groupBitOr', 'Distinct'), 'groupBitmapOrDistinct': ('groupBitmapOr', 'Distinct'), 'deltaSumTimestampDistinct': ('deltaSumTimestamp', 'Distinct'), 'argMinDistinct': ('argMin', 'Distinct'), 'groupBitmapAndDistinct': ('groupBitmapAnd', 'Distinct'), 'varSampDistinct': ('varSamp', 'Distinct'), 'exponentialTimeDecayedAvgDistinct': ('exponentialTimeDecayedAvg', 'Distinct'), 'maxDistinct': ('max', 'Distinct'), 'quantileExactLowDistinct': ('quantileExactLow', 'Distinct'), 'maxIntersectionsPositionDistinct': ('maxIntersectionsPosition', 'Distinct'), 'groupArrayDistinct': ('groupArray', 'Distinct'), 'quantileDistinct': ('quantile', 'Distinct'), 'welchTTestResample': ('welchTTest', 'Resample'), 'histogramResample': ('histogram', 'Resample'), 'countResample': ('count', 'Resample'), 'quantileTimingWeightedResample': ('quantileTimingWeighted', 'Resample'), 'cramersVResample': ('cramersV', 'Resample'), 'skewPopResample': ('skewPop', 'Resample'), 'quantileTDigestResample': ('quantileTDigest', 'Resample'), 'stochasticLogisticRegressionResample': ('stochasticLogisticRegression', 'Resample'), 'quantileInterpolatedWeightedResample': ('quantileInterpolatedWeighted', 'Resample'), 'maxMapResample': ('maxMap', 'Resample'), 'theilsUResample': ('theilsU', 'Resample'), 'last_valueResample': ('last_value', 'Resample'), 'argMaxResample': ('argMax', 'Resample'), 'quantilesTDigestResample': ('quantilesTDigest', 'Resample'), 'kurtPopResample': ('kurtPop', 'Resample'), 'groupBitXorResample': ('groupBitXor', 'Resample'), 'groupArrayMovingAvgResample': ('groupArrayMovingAvg', 'Resample'), 'medianResample': ('median', 'Resample'), 'groupUniqArrayResample': ('groupUniqArray', 'Resample'), 'cramersVBiasCorrectedResample': ('cramersVBiasCorrected', 'Resample'), 'groupBitmapResample': ('groupBitmap', 'Resample'), 'sequenceNextNodeResample': ('sequenceNextNode', 'Resample'), 'deltaSumResample': ('deltaSum', 'Resample'), 'anyHeavyResample': ('anyHeavy', 'Resample'), 'quantileBFloat16Resample': ('quantileBFloat16', 'Resample'), 'uniqHLL12Resample': ('uniqHLL12', 'Resample'), 'groupConcatResample': ('groupConcat', 'Resample'), 'simpleLinearRegressionResample': ('simpleLinearRegression', 'Resample'), 'stddevPopResample': ('stddevPop', 'Resample'), 'sumKahanResample': ('sumKahan', 'Resample'), 'contingencyResample': ('contingency', 'Resample'), 'minMapResample': ('minMap', 'Resample'), 'avgResample': ('avg', 'Resample'), 'quantilesExactWeightedResample': ('quantilesExactWeighted', 'Resample'), 'quantilesTimingResample': ('quantilesTiming', 'Resample'), 'uniqThetaResample': ('uniqTheta', 'Resample'), 'exponentialMovingAverageResample': ('exponentialMovingAverage', 'Resample'), 'quantilesBFloat16WeightedResample': ('quantilesBFloat16Weighted', 'Resample'), 'intervalLengthSumResample': ('intervalLengthSum', 'Resample'), 'uniqCombined64Resample': ('uniqCombined64', 'Resample'), 'anyResample': ('any', 'Resample'), 'uniqCombinedResample': ('uniqCombined', 'Resample'), 'avgWeightedResample': ('avgWeighted', 'Resample'), 'quantileTimingResample': ('quantileTiming', 'Resample'), 'uniqUpToResample': ('uniqUpTo', 'Resample'), 'minResample': ('min', 'Resample'), 'anyLastResample': ('anyLast', 'Resample'), 'skewSampResample': ('skewSamp', 'Resample'), 'kurtSampResample': ('kurtSamp', 'Resample'), 'groupArraySampleResample': ('groupArraySample', 'Resample'), 'topKResample': ('topK', 'Resample'), 'sumResample': ('sum', 'Resample'), 'sumMapResample': ('sumMap', 'Resample'), 'quantilesExactHighResample': ('quantilesExactHigh', 'Resample'), 'quantilesExactLowResample': ('quantilesExactLow', 'Resample'), 'quantileExactWeightedResample': ('quantileExactWeighted', 'Resample'), 'sumCountResample': ('sumCount', 'Resample'), 'rankCorrResample': ('rankCorr', 'Resample'), 'quantilesGKResample': ('quantilesGK', 'Resample'), 'uniqExactResample': ('uniqExact', 'Resample'), 'groupArrayLastResample': ('groupArrayLast', 'Resample'), 'windowFunnelResample': ('windowFunnel', 'Resample'), 'maxIntersectionsResample': ('maxIntersections', 'Resample'), 'corrResample': ('corr', 'Resample'), 'sumWithOverflowResample': ('sumWithOverflow', 'Resample'), 'quantilesBFloat16Resample': ('quantilesBFloat16', 'Resample'), 'quantileExactResample': ('quantileExact', 'Resample'), 'entropyResample': ('entropy', 'Resample'), 'quantilesInterpolatedWeightedResample': ('quantilesInterpolatedWeighted', 'Resample'), 'quantilesResample': ('quantiles', 'Resample'), 'stochasticLinearRegressionResample': ('stochasticLinearRegression', 'Resample'), 'mannWhitneyUTestResample': ('mannWhitneyUTest', 'Resample'), 'quantilesTimingWeightedResample': ('quantilesTimingWeighted', 'Resample'), 'covarSampResample': ('covarSamp', 'Resample'), 'varPopResample': ('varPop', 'Resample'), 'sequenceMatchResample': ('sequenceMatch', 'Resample'), 'meanZTestResample': ('meanZTest', 'Resample'), 'approx_top_sumResample': ('approx_top_sum', 'Resample'), 'boundingRatioResample': ('boundingRatio', 'Resample'), 'kolmogorovSmirnovTestResample': ('kolmogorovSmirnovTest', 'Resample'), 'covarPopResample': ('covarPop', 'Resample'), 'quantileGKResample': ('quantileGK', 'Resample'), 'stddevSampResample': ('stddevSamp', 'Resample'), 'sparkBarResample': ('sparkBar', 'Resample'), 'quantileExactHighResample': ('quantileExactHigh', 'Resample'), 'quantilesExactResample': ('quantilesExact', 'Resample'), 'uniqResample': ('uniq', 'Resample'), 'groupArrayInsertAtResample': ('groupArrayInsertAt', 'Resample'), 'quantilesDeterministicResample': ('quantilesDeterministic', 'Resample'), 'quantilesTDigestWeightedResample': ('quantilesTDigestWeighted', 'Resample'), 'quantileDeterministicResample': ('quantileDeterministic', 'Resample'), 'retentionResample': ('retention', 'Resample'), 'groupBitmapXorResample': ('groupBitmapXor', 'Resample'), 'quantilesExactExclusiveResample': ('quantilesExactExclusive', 'Resample'), 'groupArrayMovingSumResample': ('groupArrayMovingSum', 'Resample'), 'quantileBFloat16WeightedResample': ('quantileBFloat16Weighted', 'Resample'), 'first_valueResample': ('first_value', 'Resample'), 'studentTTestResample': ('studentTTest', 'Resample'), 'topKWeightedResample': ('topKWeighted', 'Resample'), 'quantileTDigestWeightedResample': ('quantileTDigestWeighted', 'Resample'), 'categoricalInformationValueResample': ('categoricalInformationValue', 'Resample'), 'sequenceCountResample': ('sequenceCount', 'Resample'), 'groupBitAndResample': ('groupBitAnd', 'Resample'), 'largestTriangleThreeBucketsResample': ('largestTriangleThreeBuckets', 'Resample'), 'groupBitOrResample': ('groupBitOr', 'Resample'), 'groupBitmapOrResample': ('groupBitmapOr', 'Resample'), 'deltaSumTimestampResample': ('deltaSumTimestamp', 'Resample'), 'argMinResample': ('argMin', 'Resample'), 'groupBitmapAndResample': ('groupBitmapAnd', 'Resample'), 'varSampResample': ('varSamp', 'Resample'), 'exponentialTimeDecayedAvgResample': ('exponentialTimeDecayedAvg', 'Resample'), 'maxResample': ('max', 'Resample'), 'quantileExactLowResample': ('quantileExactLow', 'Resample'), 'maxIntersectionsPositionResample': ('maxIntersectionsPosition', 'Resample'), 'groupArrayResample': ('groupArray', 'Resample'), 'quantileResample': ('quantile', 'Resample'), 'welchTTestArrayIf': ('welchTTest', 'ArrayIf'), 'histogramArrayIf': ('histogram', 'ArrayIf'), 'countArrayIf': ('count', 'ArrayIf'), 'quantileTimingWeightedArrayIf': ('quantileTimingWeighted', 'ArrayIf'), 'cramersVArrayIf': ('cramersV', 'ArrayIf'), 'skewPopArrayIf': ('skewPop', 'ArrayIf'), 'quantileTDigestArrayIf': ('quantileTDigest', 'ArrayIf'), 'stochasticLogisticRegressionArrayIf': ('stochasticLogisticRegression', 'ArrayIf'), 'quantileInterpolatedWeightedArrayIf': ('quantileInterpolatedWeighted', 'ArrayIf'), 'maxMapArrayIf': ('maxMap', 'ArrayIf'), 'theilsUArrayIf': ('theilsU', 'ArrayIf'), 'last_valueArrayIf': ('last_value', 'ArrayIf'), 'argMaxArrayIf': ('argMax', 'ArrayIf'), 'quantilesTDigestArrayIf': ('quantilesTDigest', 'ArrayIf'), 'kurtPopArrayIf': ('kurtPop', 'ArrayIf'), 'groupBitXorArrayIf': ('groupBitXor', 'ArrayIf'), 'groupArrayMovingAvgArrayIf': ('groupArrayMovingAvg', 'ArrayIf'), 'medianArrayIf': ('median', 'ArrayIf'), 'groupUniqArrayArrayIf': ('groupUniqArray', 'ArrayIf'), 'cramersVBiasCorrectedArrayIf': ('cramersVBiasCorrected', 'ArrayIf'), 'groupBitmapArrayIf': ('groupBitmap', 'ArrayIf'), 'sequenceNextNodeArrayIf': ('sequenceNextNode', 'ArrayIf'), 'deltaSumArrayIf': ('deltaSum', 'ArrayIf'), 'anyHeavyArrayIf': ('anyHeavy', 'ArrayIf'), 'quantileBFloat16ArrayIf': ('quantileBFloat16', 'ArrayIf'), 'uniqHLL12ArrayIf': ('uniqHLL12', 'ArrayIf'), 'groupConcatArrayIf': ('groupConcat', 'ArrayIf'), 'simpleLinearRegressionArrayIf': ('simpleLinearRegression', 'ArrayIf'), 'stddevPopArrayIf': ('stddevPop', 'ArrayIf'), 'sumKahanArrayIf': ('sumKahan', 'ArrayIf'), 'contingencyArrayIf': ('contingency', 'ArrayIf'), 'minMapArrayIf': ('minMap', 'ArrayIf'), 'avgArrayIf': ('avg', 'ArrayIf'), 'quantilesExactWeightedArrayIf': ('quantilesExactWeighted', 'ArrayIf'), 'quantilesTimingArrayIf': ('quantilesTiming', 'ArrayIf'), 'uniqThetaArrayIf': ('uniqTheta', 'ArrayIf'), 'exponentialMovingAverageArrayIf': ('exponentialMovingAverage', 'ArrayIf'), 'quantilesBFloat16WeightedArrayIf': ('quantilesBFloat16Weighted', 'ArrayIf'), 'intervalLengthSumArrayIf': ('intervalLengthSum', 'ArrayIf'), 'uniqCombined64ArrayIf': ('uniqCombined64', 'ArrayIf'), 'anyArrayIf': ('any', 'ArrayIf'), 'uniqCombinedArrayIf': ('uniqCombined', 'ArrayIf'), 'avgWeightedArrayIf': ('avgWeighted', 'ArrayIf'), 'quantileTimingArrayIf': ('quantileTiming', 'ArrayIf'), 'uniqUpToArrayIf': ('uniqUpTo', 'ArrayIf'), 'minArrayIf': ('min', 'ArrayIf'), 'anyLastArrayIf': ('anyLast', 'ArrayIf'), 'skewSampArrayIf': ('skewSamp', 'ArrayIf'), 'kurtSampArrayIf': ('kurtSamp', 'ArrayIf'), 'groupArraySampleArrayIf': ('groupArraySample', 'ArrayIf'), 'topKArrayIf': ('topK', 'ArrayIf'), 'sumArrayIf': ('sum', 'ArrayIf'), 'sumMapArrayIf': ('sumMap', 'ArrayIf'), 'quantilesExactHighArrayIf': ('quantilesExactHigh', 'ArrayIf'), 'quantilesExactLowArrayIf': ('quantilesExactLow', 'ArrayIf'), 'quantileExactWeightedArrayIf': ('quantileExactWeighted', 'ArrayIf'), 'sumCountArrayIf': ('sumCount', 'ArrayIf'), 'rankCorrArrayIf': ('rankCorr', 'ArrayIf'), 'quantilesGKArrayIf': ('quantilesGK', 'ArrayIf'), 'uniqExactArrayIf': ('uniqExact', 'ArrayIf'), 'groupArrayLastArrayIf': ('groupArrayLast', 'ArrayIf'), 'windowFunnelArrayIf': ('windowFunnel', 'ArrayIf'), 'maxIntersectionsArrayIf': ('maxIntersections', 'ArrayIf'), 'corrArrayIf': ('corr', 'ArrayIf'), 'sumWithOverflowArrayIf': ('sumWithOverflow', 'ArrayIf'), 'quantilesBFloat16ArrayIf': ('quantilesBFloat16', 'ArrayIf'), 'quantileExactArrayIf': ('quantileExact', 'ArrayIf'), 'entropyArrayIf': ('entropy', 'ArrayIf'), 'quantilesInterpolatedWeightedArrayIf': ('quantilesInterpolatedWeighted', 'ArrayIf'), 'quantilesArrayIf': ('quantiles', 'ArrayIf'), 'stochasticLinearRegressionArrayIf': ('stochasticLinearRegression', 'ArrayIf'), 'mannWhitneyUTestArrayIf': ('mannWhitneyUTest', 'ArrayIf'), 'quantilesTimingWeightedArrayIf': ('quantilesTimingWeighted', 'ArrayIf'), 'covarSampArrayIf': ('covarSamp', 'ArrayIf'), 'varPopArrayIf': ('varPop', 'ArrayIf'), 'sequenceMatchArrayIf': ('sequenceMatch', 'ArrayIf'), 'meanZTestArrayIf': ('meanZTest', 'ArrayIf'), 'approx_top_sumArrayIf': ('approx_top_sum', 'ArrayIf'), 'boundingRatioArrayIf': ('boundingRatio', 'ArrayIf'), 'kolmogorovSmirnovTestArrayIf': ('kolmogorovSmirnovTest', 'ArrayIf'), 'covarPopArrayIf': ('covarPop', 'ArrayIf'), 'quantileGKArrayIf': ('quantileGK', 'ArrayIf'), 'stddevSampArrayIf': ('stddevSamp', 'ArrayIf'), 'sparkBarArrayIf': ('sparkBar', 'ArrayIf'), 'quantileExactHighArrayIf': ('quantileExactHigh', 'ArrayIf'), 'quantilesExactArrayIf': ('quantilesExact', 'ArrayIf'), 'uniqArrayIf': ('uniq', 'ArrayIf'), 'groupArrayInsertAtArrayIf': ('groupArrayInsertAt', 'ArrayIf'), 'quantilesDeterministicArrayIf': ('quantilesDeterministic', 'ArrayIf'), 'quantilesTDigestWeightedArrayIf': ('quantilesTDigestWeighted', 'ArrayIf'), 'quantileDeterministicArrayIf': ('quantileDeterministic', 'ArrayIf'), 'retentionArrayIf': ('retention', 'ArrayIf'), 'groupBitmapXorArrayIf': ('groupBitmapXor', 'ArrayIf'), 'quantilesExactExclusiveArrayIf': ('quantilesExactExclusive', 'ArrayIf'), 'groupArrayMovingSumArrayIf': ('groupArrayMovingSum', 'ArrayIf'), 'quantileBFloat16WeightedArrayIf': ('quantileBFloat16Weighted', 'ArrayIf'), 'first_valueArrayIf': ('first_value', 'ArrayIf'), 'studentTTestArrayIf': ('studentTTest', 'ArrayIf'), 'topKWeightedArrayIf': ('topKWeighted', 'ArrayIf'), 'quantileTDigestWeightedArrayIf': ('quantileTDigestWeighted', 'ArrayIf'), 'categoricalInformationValueArrayIf': ('categoricalInformationValue', 'ArrayIf'), 'sequenceCountArrayIf': ('sequenceCount', 'ArrayIf'), 'groupBitAndArrayIf': ('groupBitAnd', 'ArrayIf'), 'largestTriangleThreeBucketsArrayIf': ('largestTriangleThreeBuckets', 'ArrayIf'), 'groupBitOrArrayIf': ('groupBitOr', 'ArrayIf'), 'groupBitmapOrArrayIf': ('groupBitmapOr', 'ArrayIf'), 'deltaSumTimestampArrayIf': ('deltaSumTimestamp', 'ArrayIf'), 'argMinArrayIf': ('argMin', 'ArrayIf'), 'groupBitmapAndArrayIf': ('groupBitmapAnd', 'ArrayIf'), 'varSampArrayIf': ('varSamp', 'ArrayIf'), 'exponentialTimeDecayedAvgArrayIf': ('exponentialTimeDecayedAvg', 'ArrayIf'), 'maxArrayIf': ('max', 'ArrayIf'), 'quantileExactLowArrayIf': ('quantileExactLow', 'ArrayIf'), 'maxIntersectionsPositionArrayIf': ('maxIntersectionsPosition', 'ArrayIf'), 'groupArrayArrayIf': ('groupArray', 'ArrayIf'), 'quantileArrayIf': ('quantile', 'ArrayIf'), 'welchTTestForEach': ('welchTTest', 'ForEach'), 'histogramForEach': ('histogram', 'ForEach'), 'countForEach': ('count', 'ForEach'), 'quantileTimingWeightedForEach': ('quantileTimingWeighted', 'ForEach'), 'cramersVForEach': ('cramersV', 'ForEach'), 'skewPopForEach': ('skewPop', 'ForEach'), 'quantileTDigestForEach': ('quantileTDigest', 'ForEach'), 'stochasticLogisticRegressionForEach': ('stochasticLogisticRegression', 'ForEach'), 'quantileInterpolatedWeightedForEach': ('quantileInterpolatedWeighted', 'ForEach'), 'maxMapForEach': ('maxMap', 'ForEach'), 'theilsUForEach': ('theilsU', 'ForEach'), 'last_valueForEach': ('last_value', 'ForEach'), 'argMaxForEach': ('argMax', 'ForEach'), 'quantilesTDigestForEach': ('quantilesTDigest', 'ForEach'), 'kurtPopForEach': ('kurtPop', 'ForEach'), 'groupBitXorForEach': ('groupBitXor', 'ForEach'), 'groupArrayMovingAvgForEach': ('groupArrayMovingAvg', 'ForEach'), 'medianForEach': ('median', 'ForEach'), 'groupUniqArrayForEach': ('groupUniqArray', 'ForEach'), 'cramersVBiasCorrectedForEach': ('cramersVBiasCorrected', 'ForEach'), 'groupBitmapForEach': ('groupBitmap', 'ForEach'), 'sequenceNextNodeForEach': ('sequenceNextNode', 'ForEach'), 'deltaSumForEach': ('deltaSum', 'ForEach'), 'anyHeavyForEach': ('anyHeavy', 'ForEach'), 'quantileBFloat16ForEach': ('quantileBFloat16', 'ForEach'), 'uniqHLL12ForEach': ('uniqHLL12', 'ForEach'), 'groupConcatForEach': ('groupConcat', 'ForEach'), 'simpleLinearRegressionForEach': ('simpleLinearRegression', 'ForEach'), 'stddevPopForEach': ('stddevPop', 'ForEach'), 'sumKahanForEach': ('sumKahan', 'ForEach'), 'contingencyForEach': ('contingency', 'ForEach'), 'minMapForEach': ('minMap', 'ForEach'), 'avgForEach': ('avg', 'ForEach'), 'quantilesExactWeightedForEach': ('quantilesExactWeighted', 'ForEach'), 'quantilesTimingForEach': ('quantilesTiming', 'ForEach'), 'uniqThetaForEach': ('uniqTheta', 'ForEach'), 'exponentialMovingAverageForEach': ('exponentialMovingAverage', 'ForEach'), 'quantilesBFloat16WeightedForEach': ('quantilesBFloat16Weighted', 'ForEach'), 'intervalLengthSumForEach': ('intervalLengthSum', 'ForEach'), 'uniqCombined64ForEach': ('uniqCombined64', 'ForEach'), 'anyForEach': ('any', 'ForEach'), 'uniqCombinedForEach': ('uniqCombined', 'ForEach'), 'avgWeightedForEach': ('avgWeighted', 'ForEach'), 'quantileTimingForEach': ('quantileTiming', 'ForEach'), 'uniqUpToForEach': ('uniqUpTo', 'ForEach'), 'minForEach': ('min', 'ForEach'), 'anyLastForEach': ('anyLast', 'ForEach'), 'skewSampForEach': ('skewSamp', 'ForEach'), 'kurtSampForEach': ('kurtSamp', 'ForEach'), 'groupArraySampleForEach': ('groupArraySample', 'ForEach'), 'topKForEach': ('topK', 'ForEach'), 'sumForEach': ('sum', 'ForEach'), 'sumMapForEach': ('sumMap', 'ForEach'), 'quantilesExactHighForEach': ('quantilesExactHigh', 'ForEach'), 'quantilesExactLowForEach': ('quantilesExactLow', 'ForEach'), 'quantileExactWeightedForEach': ('quantileExactWeighted', 'ForEach'), 'sumCountForEach': ('sumCount', 'ForEach'), 'rankCorrForEach': ('rankCorr', 'ForEach'), 'quantilesGKForEach': ('quantilesGK', 'ForEach'), 'uniqExactForEach': ('uniqExact', 'ForEach'), 'groupArrayLastForEach': ('groupArrayLast', 'ForEach'), 'windowFunnelForEach': ('windowFunnel', 'ForEach'), 'maxIntersectionsForEach': ('maxIntersections', 'ForEach'), 'corrForEach': ('corr', 'ForEach'), 'sumWithOverflowForEach': ('sumWithOverflow', 'ForEach'), 'quantilesBFloat16ForEach': ('quantilesBFloat16', 'ForEach'), 'quantileExactForEach': ('quantileExact', 'ForEach'), 'entropyForEach': ('entropy', 'ForEach'), 'quantilesInterpolatedWeightedForEach': ('quantilesInterpolatedWeighted', 'ForEach'), 'quantilesForEach': ('quantiles', 'ForEach'), 'stochasticLinearRegressionForEach': ('stochasticLinearRegression', 'ForEach'), 'mannWhitneyUTestForEach': ('mannWhitneyUTest', 'ForEach'), 'quantilesTimingWeightedForEach': ('quantilesTimingWeighted', 'ForEach'), 'covarSampForEach': ('covarSamp', 'ForEach'), 'varPopForEach': ('varPop', 'ForEach'), 'sequenceMatchForEach': ('sequenceMatch', 'ForEach'), 'meanZTestForEach': ('meanZTest', 'ForEach'), 'approx_top_sumForEach': ('approx_top_sum', 'ForEach'), 'boundingRatioForEach': ('boundingRatio', 'ForEach'), 'kolmogorovSmirnovTestForEach': ('kolmogorovSmirnovTest', 'ForEach'), 'covarPopForEach': ('covarPop', 'ForEach'), 'quantileGKForEach': ('quantileGK', 'ForEach'), 'stddevSampForEach': ('stddevSamp', 'ForEach'), 'sparkBarForEach': ('sparkBar', 'ForEach'), 'quantileExactHighForEach': ('quantileExactHigh', 'ForEach'), 'quantilesExactForEach': ('quantilesExact', 'ForEach'), 'uniqForEach': ('uniq', 'ForEach'), 'groupArrayInsertAtForEach': ('groupArrayInsertAt', 'ForEach'), 'quantilesDeterministicForEach': ('quantilesDeterministic', 'ForEach'), 'quantilesTDigestWeightedForEach': ('quantilesTDigestWeighted', 'ForEach'), 'quantileDeterministicForEach': ('quantileDeterministic', 'ForEach'), 'retentionForEach': ('retention', 'ForEach'), 'groupBitmapXorForEach': ('groupBitmapXor', 'ForEach'), 'quantilesExactExclusiveForEach': ('quantilesExactExclusive', 'ForEach'), 'groupArrayMovingSumForEach': ('groupArrayMovingSum', 'ForEach'), 'quantileBFloat16WeightedForEach': ('quantileBFloat16Weighted', 'ForEach'), 'first_valueForEach': ('first_value', 'ForEach'), 'studentTTestForEach': ('studentTTest', 'ForEach'), 'topKWeightedForEach': ('topKWeighted', 'ForEach'), 'quantileTDigestWeightedForEach': ('quantileTDigestWeighted', 'ForEach'), 'categoricalInformationValueForEach': ('categoricalInformationValue', 'ForEach'), 'sequenceCountForEach': ('sequenceCount', 'ForEach'), 'groupBitAndForEach': ('groupBitAnd', 'ForEach'), 'largestTriangleThreeBucketsForEach': ('largestTriangleThreeBuckets', 'ForEach'), 'groupBitOrForEach': ('groupBitOr', 'ForEach'), 'groupBitmapOrForEach': ('groupBitmapOr', 'ForEach'), 'deltaSumTimestampForEach': ('deltaSumTimestamp', 'ForEach'), 'argMinForEach': ('argMin', 'ForEach'), 'groupBitmapAndForEach': ('groupBitmapAnd', 'ForEach'), 'varSampForEach': ('varSamp', 'ForEach'), 'exponentialTimeDecayedAvgForEach': ('exponentialTimeDecayedAvg', 'ForEach'), 'maxForEach': ('max', 'ForEach'), 'quantileExactLowForEach': ('quantileExactLow', 'ForEach'), 'maxIntersectionsPositionForEach': ('maxIntersectionsPosition', 'ForEach'), 'groupArrayForEach': ('groupArray', 'ForEach'), 'quantileForEach': ('quantile', 'ForEach'), 'welchTTestOrNull': ('welchTTest', 'OrNull'), 'histogramOrNull': ('histogram', 'OrNull'), 'countOrNull': ('count', 'OrNull'), 'quantileTimingWeightedOrNull': ('quantileTimingWeighted', 'OrNull'), 'cramersVOrNull': ('cramersV', 'OrNull'), 'skewPopOrNull': ('skewPop', 'OrNull'), 'quantileTDigestOrNull': ('quantileTDigest', 'OrNull'), 'stochasticLogisticRegressionOrNull': ('stochasticLogisticRegression', 'OrNull'), 'quantileInterpolatedWeightedOrNull': ('quantileInterpolatedWeighted', 'OrNull'), 'maxMapOrNull': ('maxMap', 'OrNull'), 'theilsUOrNull': ('theilsU', 'OrNull'), 'last_valueOrNull': ('last_value', 'OrNull'), 'argMaxOrNull': ('argMax', 'OrNull'), 'quantilesTDigestOrNull': ('quantilesTDigest', 'OrNull'), 'kurtPopOrNull': ('kurtPop', 'OrNull'), 'groupBitXorOrNull': ('groupBitXor', 'OrNull'), 'groupArrayMovingAvgOrNull': ('groupArrayMovingAvg', 'OrNull'), 'medianOrNull': ('median', 'OrNull'), 'groupUniqArrayOrNull': ('groupUniqArray', 'OrNull'), 'cramersVBiasCorrectedOrNull': ('cramersVBiasCorrected', 'OrNull'), 'groupBitmapOrNull': ('groupBitmap', 'OrNull'), 'sequenceNextNodeOrNull': ('sequenceNextNode', 'OrNull'), 'deltaSumOrNull': ('deltaSum', 'OrNull'), 'anyHeavyOrNull': ('anyHeavy', 'OrNull'), 'quantileBFloat16OrNull': ('quantileBFloat16', 'OrNull'), 'uniqHLL12OrNull': ('uniqHLL12', 'OrNull'), 'groupConcatOrNull': ('groupConcat', 'OrNull'), 'simpleLinearRegressionOrNull': ('simpleLinearRegression', 'OrNull'), 'stddevPopOrNull': ('stddevPop', 'OrNull'), 'sumKahanOrNull': ('sumKahan', 'OrNull'), 'contingencyOrNull': ('contingency', 'OrNull'), 'minMapOrNull': ('minMap', 'OrNull'), 'avgOrNull': ('avg', 'OrNull'), 'quantilesExactWeightedOrNull': ('quantilesExactWeighted', 'OrNull'), 'quantilesTimingOrNull': ('quantilesTiming', 'OrNull'), 'uniqThetaOrNull': ('uniqTheta', 'OrNull'), 'exponentialMovingAverageOrNull': ('exponentialMovingAverage', 'OrNull'), 'quantilesBFloat16WeightedOrNull': ('quantilesBFloat16Weighted', 'OrNull'), 'intervalLengthSumOrNull': ('intervalLengthSum', 'OrNull'), 'uniqCombined64OrNull': ('uniqCombined64', 'OrNull'), 'anyOrNull': ('any', 'OrNull'), 'uniqCombinedOrNull': ('uniqCombined', 'OrNull'), 'avgWeightedOrNull': ('avgWeighted', 'OrNull'), 'quantileTimingOrNull': ('quantileTiming', 'OrNull'), 'uniqUpToOrNull': ('uniqUpTo', 'OrNull'), 'minOrNull': ('min', 'OrNull'), 'anyLastOrNull': ('anyLast', 'OrNull'), 'skewSampOrNull': ('skewSamp', 'OrNull'), 'kurtSampOrNull': ('kurtSamp', 'OrNull'), 'groupArraySampleOrNull': ('groupArraySample', 'OrNull'), 'topKOrNull': ('topK', 'OrNull'), 'sumOrNull': ('sum', 'OrNull'), 'sumMapOrNull': ('sumMap', 'OrNull'), 'quantilesExactHighOrNull': ('quantilesExactHigh', 'OrNull'), 'quantilesExactLowOrNull': ('quantilesExactLow', 'OrNull'), 'quantileExactWeightedOrNull': ('quantileExactWeighted', 'OrNull'), 'sumCountOrNull': ('sumCount', 'OrNull'), 'rankCorrOrNull': ('rankCorr', 'OrNull'), 'quantilesGKOrNull': ('quantilesGK', 'OrNull'), 'uniqExactOrNull': ('uniqExact', 'OrNull'), 'groupArrayLastOrNull': ('groupArrayLast', 'OrNull'), 'windowFunnelOrNull': ('windowFunnel', 'OrNull'), 'maxIntersectionsOrNull': ('maxIntersections', 'OrNull'), 'corrOrNull': ('corr', 'OrNull'), 'sumWithOverflowOrNull': ('sumWithOverflow', 'OrNull'), 'quantilesBFloat16OrNull': ('quantilesBFloat16', 'OrNull'), 'quantileExactOrNull': ('quantileExact', 'OrNull'), 'entropyOrNull': ('entropy', 'OrNull'), 'quantilesInterpolatedWeightedOrNull': ('quantilesInterpolatedWeighted', 'OrNull'), 'quantilesOrNull': ('quantiles', 'OrNull'), 'stochasticLinearRegressionOrNull': ('stochasticLinearRegression', 'OrNull'), 'mannWhitneyUTestOrNull': ('mannWhitneyUTest', 'OrNull'), 'quantilesTimingWeightedOrNull': ('quantilesTimingWeighted', 'OrNull'), 'covarSampOrNull': ('covarSamp', 'OrNull'), 'varPopOrNull': ('varPop', 'OrNull'), 'sequenceMatchOrNull': ('sequenceMatch', 'OrNull'), 'meanZTestOrNull': ('meanZTest', 'OrNull'), 'approx_top_sumOrNull': ('approx_top_sum', 'OrNull'), 'boundingRatioOrNull': ('boundingRatio', 'OrNull'), 'kolmogorovSmirnovTestOrNull': ('kolmogorovSmirnovTest', 'OrNull'), 'covarPopOrNull': ('covarPop', 'OrNull'), 'quantileGKOrNull': ('quantileGK', 'OrNull'), 'stddevSampOrNull': ('stddevSamp', 'OrNull'), 'sparkBarOrNull': ('sparkBar', 'OrNull'), 'quantileExactHighOrNull': ('quantileExactHigh', 'OrNull'), 'quantilesExactOrNull': ('quantilesExact', 'OrNull'), 'uniqOrNull': ('uniq', 'OrNull'), 'groupArrayInsertAtOrNull': ('groupArrayInsertAt', 'OrNull'), 'quantilesDeterministicOrNull': ('quantilesDeterministic', 'OrNull'), 'quantilesTDigestWeightedOrNull': ('quantilesTDigestWeighted', 'OrNull'), 'quantileDeterministicOrNull': ('quantileDeterministic', 'OrNull'), 'retentionOrNull': ('retention', 'OrNull'), 'groupBitmapXorOrNull': ('groupBitmapXor', 'OrNull'), 'quantilesExactExclusiveOrNull': ('quantilesExactExclusive', 'OrNull'), 'groupArrayMovingSumOrNull': ('groupArrayMovingSum', 'OrNull'), 'quantileBFloat16WeightedOrNull': ('quantileBFloat16Weighted', 'OrNull'), 'first_valueOrNull': ('first_value', 'OrNull'), 'studentTTestOrNull': ('studentTTest', 'OrNull'), 'topKWeightedOrNull': ('topKWeighted', 'OrNull'), 'quantileTDigestWeightedOrNull': ('quantileTDigestWeighted', 'OrNull'), 'categoricalInformationValueOrNull': ('categoricalInformationValue', 'OrNull'), 'sequenceCountOrNull': ('sequenceCount', 'OrNull'), 'groupBitAndOrNull': ('groupBitAnd', 'OrNull'), 'largestTriangleThreeBucketsOrNull': ('largestTriangleThreeBuckets', 'OrNull'), 'groupBitOrOrNull': ('groupBitOr', 'OrNull'), 'groupBitmapOrOrNull': ('groupBitmapOr', 'OrNull'), 'deltaSumTimestampOrNull': ('deltaSumTimestamp', 'OrNull'), 'argMinOrNull': ('argMin', 'OrNull'), 'groupBitmapAndOrNull': ('groupBitmapAnd', 'OrNull'), 'varSampOrNull': ('varSamp', 'OrNull'), 'exponentialTimeDecayedAvgOrNull': ('exponentialTimeDecayedAvg', 'OrNull'), 'maxOrNull': ('max', 'OrNull'), 'quantileExactLowOrNull': ('quantileExactLow', 'OrNull'), 'maxIntersectionsPositionOrNull': ('maxIntersectionsPosition', 'OrNull'), 'groupArrayOrNull': ('groupArray', 'OrNull'), 'quantileOrNull': ('quantile', 'OrNull'), 'welchTTestArgMin': ('welchTTest', 'ArgMin'), 'histogramArgMin': ('histogram', 'ArgMin'), 'countArgMin': ('count', 'ArgMin'), 'quantileTimingWeightedArgMin': ('quantileTimingWeighted', 'ArgMin'), 'cramersVArgMin': ('cramersV', 'ArgMin'), 'skewPopArgMin': ('skewPop', 'ArgMin'), 'quantileTDigestArgMin': ('quantileTDigest', 'ArgMin'), 'stochasticLogisticRegressionArgMin': ('stochasticLogisticRegression', 'ArgMin'), 'quantileInterpolatedWeightedArgMin': ('quantileInterpolatedWeighted', 'ArgMin'), 'maxMapArgMin': ('maxMap', 'ArgMin'), 'theilsUArgMin': ('theilsU', 'ArgMin'), 'last_valueArgMin': ('last_value', 'ArgMin'), 'argMaxArgMin': ('argMax', 'ArgMin'), 'quantilesTDigestArgMin': ('quantilesTDigest', 'ArgMin'), 'kurtPopArgMin': ('kurtPop', 'ArgMin'), 'groupBitXorArgMin': ('groupBitXor', 'ArgMin'), 'groupArrayMovingAvgArgMin': ('groupArrayMovingAvg', 'ArgMin'), 'medianArgMin': ('median', 'ArgMin'), 'groupUniqArrayArgMin': ('groupUniqArray', 'ArgMin'), 'cramersVBiasCorrectedArgMin': ('cramersVBiasCorrected', 'ArgMin'), 'groupBitmapArgMin': ('groupBitmap', 'ArgMin'), 'sequenceNextNodeArgMin': ('sequenceNextNode', 'ArgMin'), 'deltaSumArgMin': ('deltaSum', 'ArgMin'), 'anyHeavyArgMin': ('anyHeavy', 'ArgMin'), 'quantileBFloat16ArgMin': ('quantileBFloat16', 'ArgMin'), 'uniqHLL12ArgMin': ('uniqHLL12', 'ArgMin'), 'groupConcatArgMin': ('groupConcat', 'ArgMin'), 'simpleLinearRegressionArgMin': ('simpleLinearRegression', 'ArgMin'), 'stddevPopArgMin': ('stddevPop', 'ArgMin'), 'sumKahanArgMin': ('sumKahan', 'ArgMin'), 'contingencyArgMin': ('contingency', 'ArgMin'), 'minMapArgMin': ('minMap', 'ArgMin'), 'avgArgMin': ('avg', 'ArgMin'), 'quantilesExactWeightedArgMin': ('quantilesExactWeighted', 'ArgMin'), 'quantilesTimingArgMin': ('quantilesTiming', 'ArgMin'), 'uniqThetaArgMin': ('uniqTheta', 'ArgMin'), 'exponentialMovingAverageArgMin': ('exponentialMovingAverage', 'ArgMin'), 'quantilesBFloat16WeightedArgMin': ('quantilesBFloat16Weighted', 'ArgMin'), 'intervalLengthSumArgMin': ('intervalLengthSum', 'ArgMin'), 'uniqCombined64ArgMin': ('uniqCombined64', 'ArgMin'), 'anyArgMin': ('any', 'ArgMin'), 'uniqCombinedArgMin': ('uniqCombined', 'ArgMin'), 'avgWeightedArgMin': ('avgWeighted', 'ArgMin'), 'quantileTimingArgMin': ('quantileTiming', 'ArgMin'), 'uniqUpToArgMin': ('uniqUpTo', 'ArgMin'), 'minArgMin': ('min', 'ArgMin'), 'anyLastArgMin': ('anyLast', 'ArgMin'), 'skewSampArgMin': ('skewSamp', 'ArgMin'), 'kurtSampArgMin': ('kurtSamp', 'ArgMin'), 'groupArraySampleArgMin': ('groupArraySample', 'ArgMin'), 'topKArgMin': ('topK', 'ArgMin'), 'sumArgMin': ('sum', 'ArgMin'), 'sumMapArgMin': ('sumMap', 'ArgMin'), 'quantilesExactHighArgMin': ('quantilesExactHigh', 'ArgMin'), 'quantilesExactLowArgMin': ('quantilesExactLow', 'ArgMin'), 'quantileExactWeightedArgMin': ('quantileExactWeighted', 'ArgMin'), 'sumCountArgMin': ('sumCount', 'ArgMin'), 'rankCorrArgMin': ('rankCorr', 'ArgMin'), 'quantilesGKArgMin': ('quantilesGK', 'ArgMin'), 'uniqExactArgMin': ('uniqExact', 'ArgMin'), 'groupArrayLastArgMin': ('groupArrayLast', 'ArgMin'), 'windowFunnelArgMin': ('windowFunnel', 'ArgMin'), 'maxIntersectionsArgMin': ('maxIntersections', 'ArgMin'), 'corrArgMin': ('corr', 'ArgMin'), 'sumWithOverflowArgMin': ('sumWithOverflow', 'ArgMin'), 'quantilesBFloat16ArgMin': ('quantilesBFloat16', 'ArgMin'), 'quantileExactArgMin': ('quantileExact', 'ArgMin'), 'entropyArgMin': ('entropy', 'ArgMin'), 'quantilesInterpolatedWeightedArgMin': ('quantilesInterpolatedWeighted', 'ArgMin'), 'quantilesArgMin': ('quantiles', 'ArgMin'), 'stochasticLinearRegressionArgMin': ('stochasticLinearRegression', 'ArgMin'), 'mannWhitneyUTestArgMin': ('mannWhitneyUTest', 'ArgMin'), 'quantilesTimingWeightedArgMin': ('quantilesTimingWeighted', 'ArgMin'), 'covarSampArgMin': ('covarSamp', 'ArgMin'), 'varPopArgMin': ('varPop', 'ArgMin'), 'sequenceMatchArgMin': ('sequenceMatch', 'ArgMin'), 'meanZTestArgMin': ('meanZTest', 'ArgMin'), 'approx_top_sumArgMin': ('approx_top_sum', 'ArgMin'), 'boundingRatioArgMin': ('boundingRatio', 'ArgMin'), 'kolmogorovSmirnovTestArgMin': ('kolmogorovSmirnovTest', 'ArgMin'), 'covarPopArgMin': ('covarPop', 'ArgMin'), 'quantileGKArgMin': ('quantileGK', 'ArgMin'), 'stddevSampArgMin': ('stddevSamp', 'ArgMin'), 'sparkBarArgMin': ('sparkBar', 'ArgMin'), 'quantileExactHighArgMin': ('quantileExactHigh', 'ArgMin'), 'quantilesExactArgMin': ('quantilesExact', 'ArgMin'), 'uniqArgMin': ('uniq', 'ArgMin'), 'groupArrayInsertAtArgMin': ('groupArrayInsertAt', 'ArgMin'), 'quantilesDeterministicArgMin': ('quantilesDeterministic', 'ArgMin'), 'quantilesTDigestWeightedArgMin': ('quantilesTDigestWeighted', 'ArgMin'), 'quantileDeterministicArgMin': ('quantileDeterministic', 'ArgMin'), 'retentionArgMin': ('retention', 'ArgMin'), 'groupBitmapXorArgMin': ('groupBitmapXor', 'ArgMin'), 'quantilesExactExclusiveArgMin': ('quantilesExactExclusive', 'ArgMin'), 'groupArrayMovingSumArgMin': ('groupArrayMovingSum', 'ArgMin'), 'quantileBFloat16WeightedArgMin': ('quantileBFloat16Weighted', 'ArgMin'), 'first_valueArgMin': ('first_value', 'ArgMin'), 'studentTTestArgMin': ('studentTTest', 'ArgMin'), 'topKWeightedArgMin': ('topKWeighted', 'ArgMin'), 'quantileTDigestWeightedArgMin': ('quantileTDigestWeighted', 'ArgMin'), 'categoricalInformationValueArgMin': ('categoricalInformationValue', 'ArgMin'), 'sequenceCountArgMin': ('sequenceCount', 'ArgMin'), 'groupBitAndArgMin': ('groupBitAnd', 'ArgMin'), 'largestTriangleThreeBucketsArgMin': ('largestTriangleThreeBuckets', 'ArgMin'), 'groupBitOrArgMin': ('groupBitOr', 'ArgMin'), 'groupBitmapOrArgMin': ('groupBitmapOr', 'ArgMin'), 'deltaSumTimestampArgMin': ('deltaSumTimestamp', 'ArgMin'), 'argMinArgMin': ('argMin', 'ArgMin'), 'groupBitmapAndArgMin': ('groupBitmapAnd', 'ArgMin'), 'varSampArgMin': ('varSamp', 'ArgMin'), 'exponentialTimeDecayedAvgArgMin': ('exponentialTimeDecayedAvg', 'ArgMin'), 'maxArgMin': ('max', 'ArgMin'), 'quantileExactLowArgMin': ('quantileExactLow', 'ArgMin'), 'maxIntersectionsPositionArgMin': ('maxIntersectionsPosition', 'ArgMin'), 'groupArrayArgMin': ('groupArray', 'ArgMin'), 'quantileArgMin': ('quantile', 'ArgMin'), 'welchTTestArgMax': ('welchTTest', 'ArgMax'), 'histogramArgMax': ('histogram', 'ArgMax'), 'countArgMax': ('count', 'ArgMax'), 'quantileTimingWeightedArgMax': ('quantileTimingWeighted', 'ArgMax'), 'cramersVArgMax': ('cramersV', 'ArgMax'), 'skewPopArgMax': ('skewPop', 'ArgMax'), 'quantileTDigestArgMax': ('quantileTDigest', 'ArgMax'), 'stochasticLogisticRegressionArgMax': ('stochasticLogisticRegression', 'ArgMax'), 'quantileInterpolatedWeightedArgMax': ('quantileInterpolatedWeighted', 'ArgMax'), 'maxMapArgMax': ('maxMap', 'ArgMax'), 'theilsUArgMax': ('theilsU', 'ArgMax'), 'last_valueArgMax': ('last_value', 'ArgMax'), 'argMaxArgMax': ('argMax', 'ArgMax'), 'quantilesTDigestArgMax': ('quantilesTDigest', 'ArgMax'), 'kurtPopArgMax': ('kurtPop', 'ArgMax'), 'groupBitXorArgMax': ('groupBitXor', 'ArgMax'), 'groupArrayMovingAvgArgMax': ('groupArrayMovingAvg', 'ArgMax'), 'medianArgMax': ('median', 'ArgMax'), 'groupUniqArrayArgMax': ('groupUniqArray', 'ArgMax'), 'cramersVBiasCorrectedArgMax': ('cramersVBiasCorrected', 'ArgMax'), 'groupBitmapArgMax': ('groupBitmap', 'ArgMax'), 'sequenceNextNodeArgMax': ('sequenceNextNode', 'ArgMax'), 'deltaSumArgMax': ('deltaSum', 'ArgMax'), 'anyHeavyArgMax': ('anyHeavy', 'ArgMax'), 'quantileBFloat16ArgMax': ('quantileBFloat16', 'ArgMax'), 'uniqHLL12ArgMax': ('uniqHLL12', 'ArgMax'), 'groupConcatArgMax': ('groupConcat', 'ArgMax'), 'simpleLinearRegressionArgMax': ('simpleLinearRegression', 'ArgMax'), 'stddevPopArgMax': ('stddevPop', 'ArgMax'), 'sumKahanArgMax': ('sumKahan', 'ArgMax'), 'contingencyArgMax': ('contingency', 'ArgMax'), 'minMapArgMax': ('minMap', 'ArgMax'), 'avgArgMax': ('avg', 'ArgMax'), 'quantilesExactWeightedArgMax': ('quantilesExactWeighted', 'ArgMax'), 'quantilesTimingArgMax': ('quantilesTiming', 'ArgMax'), 'uniqThetaArgMax': ('uniqTheta', 'ArgMax'), 'exponentialMovingAverageArgMax': ('exponentialMovingAverage', 'ArgMax'), 'quantilesBFloat16WeightedArgMax': ('quantilesBFloat16Weighted', 'ArgMax'), 'intervalLengthSumArgMax': ('intervalLengthSum', 'ArgMax'), 'uniqCombined64ArgMax': ('uniqCombined64', 'ArgMax'), 'anyArgMax': ('any', 'ArgMax'), 'uniqCombinedArgMax': ('uniqCombined', 'ArgMax'), 'avgWeightedArgMax': ('avgWeighted', 'ArgMax'), 'quantileTimingArgMax': ('quantileTiming', 'ArgMax'), 'uniqUpToArgMax': ('uniqUpTo', 'ArgMax'), 'minArgMax': ('min', 'ArgMax'), 'anyLastArgMax': ('anyLast', 'ArgMax'), 'skewSampArgMax': ('skewSamp', 'ArgMax'), 'kurtSampArgMax': ('kurtSamp', 'ArgMax'), 'groupArraySampleArgMax': ('groupArraySample', 'ArgMax'), 'topKArgMax': ('topK', 'ArgMax'), 'sumArgMax': ('sum', 'ArgMax'), 'sumMapArgMax': ('sumMap', 'ArgMax'), 'quantilesExactHighArgMax': ('quantilesExactHigh', 'ArgMax'), 'quantilesExactLowArgMax': ('quantilesExactLow', 'ArgMax'), 'quantileExactWeightedArgMax': ('quantileExactWeighted', 'ArgMax'), 'sumCountArgMax': ('sumCount', 'ArgMax'), 'rankCorrArgMax': ('rankCorr', 'ArgMax'), 'quantilesGKArgMax': ('quantilesGK', 'ArgMax'), 'uniqExactArgMax': ('uniqExact', 'ArgMax'), 'groupArrayLastArgMax': ('groupArrayLast', 'ArgMax'), 'windowFunnelArgMax': ('windowFunnel', 'ArgMax'), 'maxIntersectionsArgMax': ('maxIntersections', 'ArgMax'), 'corrArgMax': ('corr', 'ArgMax'), 'sumWithOverflowArgMax': ('sumWithOverflow', 'ArgMax'), 'quantilesBFloat16ArgMax': ('quantilesBFloat16', 'ArgMax'), 'quantileExactArgMax': ('quantileExact', 'ArgMax'), 'entropyArgMax': ('entropy', 'ArgMax'), 'quantilesInterpolatedWeightedArgMax': ('quantilesInterpolatedWeighted', 'ArgMax'), 'quantilesArgMax': ('quantiles', 'ArgMax'), 'stochasticLinearRegressionArgMax': ('stochasticLinearRegression', 'ArgMax'), 'mannWhitneyUTestArgMax': ('mannWhitneyUTest', 'ArgMax'), 'quantilesTimingWeightedArgMax': ('quantilesTimingWeighted', 'ArgMax'), 'covarSampArgMax': ('covarSamp', 'ArgMax'), 'varPopArgMax': ('varPop', 'ArgMax'), 'sequenceMatchArgMax': ('sequenceMatch', 'ArgMax'), 'meanZTestArgMax': ('meanZTest', 'ArgMax'), 'approx_top_sumArgMax': ('approx_top_sum', 'ArgMax'), 'boundingRatioArgMax': ('boundingRatio', 'ArgMax'), 'kolmogorovSmirnovTestArgMax': ('kolmogorovSmirnovTest', 'ArgMax'), 'covarPopArgMax': ('covarPop', 'ArgMax'), 'quantileGKArgMax': ('quantileGK', 'ArgMax'), 'stddevSampArgMax': ('stddevSamp', 'ArgMax'), 'sparkBarArgMax': ('sparkBar', 'ArgMax'), 'quantileExactHighArgMax': ('quantileExactHigh', 'ArgMax'), 'quantilesExactArgMax': ('quantilesExact', 'ArgMax'), 'uniqArgMax': ('uniq', 'ArgMax'), 'groupArrayInsertAtArgMax': ('groupArrayInsertAt', 'ArgMax'), 'quantilesDeterministicArgMax': ('quantilesDeterministic', 'ArgMax'), 'quantilesTDigestWeightedArgMax': ('quantilesTDigestWeighted', 'ArgMax'), 'quantileDeterministicArgMax': ('quantileDeterministic', 'ArgMax'), 'retentionArgMax': ('retention', 'ArgMax'), 'groupBitmapXorArgMax': ('groupBitmapXor', 'ArgMax'), 'quantilesExactExclusiveArgMax': ('quantilesExactExclusive', 'ArgMax'), 'groupArrayMovingSumArgMax': ('groupArrayMovingSum', 'ArgMax'), 'quantileBFloat16WeightedArgMax': ('quantileBFloat16Weighted', 'ArgMax'), 'first_valueArgMax': ('first_value', 'ArgMax'), 'studentTTestArgMax': ('studentTTest', 'ArgMax'), 'topKWeightedArgMax': ('topKWeighted', 'ArgMax'), 'quantileTDigestWeightedArgMax': ('quantileTDigestWeighted', 'ArgMax'), 'categoricalInformationValueArgMax': ('categoricalInformationValue', 'ArgMax'), 'sequenceCountArgMax': ('sequenceCount', 'ArgMax'), 'groupBitAndArgMax': ('groupBitAnd', 'ArgMax'), 'largestTriangleThreeBucketsArgMax': ('largestTriangleThreeBuckets', 'ArgMax'), 'groupBitOrArgMax': ('groupBitOr', 'ArgMax'), 'groupBitmapOrArgMax': ('groupBitmapOr', 'ArgMax'), 'deltaSumTimestampArgMax': ('deltaSumTimestamp', 'ArgMax'), 'argMinArgMax': ('argMin', 'ArgMax'), 'groupBitmapAndArgMax': ('groupBitmapAnd', 'ArgMax'), 'varSampArgMax': ('varSamp', 'ArgMax'), 'exponentialTimeDecayedAvgArgMax': ('exponentialTimeDecayedAvg', 'ArgMax'), 'maxArgMax': ('max', 'ArgMax'), 'quantileExactLowArgMax': ('quantileExactLow', 'ArgMax'), 'maxIntersectionsPositionArgMax': ('maxIntersectionsPosition', 'ArgMax'), 'groupArrayArgMax': ('groupArray', 'ArgMax'), 'quantileArgMax': ('quantile', 'ArgMax'), 'welchTTestArray': ('welchTTest', 'Array'), 'histogramArray': ('histogram', 'Array'), 'countArray': ('count', 'Array'), 'quantileTimingWeightedArray': ('quantileTimingWeighted', 'Array'), 'cramersVArray': ('cramersV', 'Array'), 'skewPopArray': ('skewPop', 'Array'), 'quantileTDigestArray': ('quantileTDigest', 'Array'), 'stochasticLogisticRegressionArray': ('stochasticLogisticRegression', 'Array'), 'quantileInterpolatedWeightedArray': ('quantileInterpolatedWeighted', 'Array'), 'maxMapArray': ('maxMap', 'Array'), 'theilsUArray': ('theilsU', 'Array'), 'last_valueArray': ('last_value', 'Array'), 'argMaxArray': ('argMax', 'Array'), 'quantilesTDigestArray': ('quantilesTDigest', 'Array'), 'kurtPopArray': ('kurtPop', 'Array'), 'groupBitXorArray': ('groupBitXor', 'Array'), 'groupArrayMovingAvgArray': ('groupArrayMovingAvg', 'Array'), 'medianArray': ('median', 'Array'), 'groupUniqArrayArray': ('groupUniqArray', 'Array'), 'cramersVBiasCorrectedArray': ('cramersVBiasCorrected', 'Array'), 'groupBitmapArray': ('groupBitmap', 'Array'), 'sequenceNextNodeArray': ('sequenceNextNode', 'Array'), 'deltaSumArray': ('deltaSum', 'Array'), 'anyHeavyArray': ('anyHeavy', 'Array'), 'quantileBFloat16Array': ('quantileBFloat16', 'Array'), 'uniqHLL12Array': ('uniqHLL12', 'Array'), 'groupConcatArray': ('groupConcat', 'Array'), 'simpleLinearRegressionArray': ('simpleLinearRegression', 'Array'), 'stddevPopArray': ('stddevPop', 'Array'), 'sumKahanArray': ('sumKahan', 'Array'), 'contingencyArray': ('contingency', 'Array'), 'minMapArray': ('minMap', 'Array'), 'avgArray': ('avg', 'Array'), 'quantilesExactWeightedArray': ('quantilesExactWeighted', 'Array'), 'quantilesTimingArray': ('quantilesTiming', 'Array'), 'uniqThetaArray': ('uniqTheta', 'Array'), 'exponentialMovingAverageArray': ('exponentialMovingAverage', 'Array'), 'quantilesBFloat16WeightedArray': ('quantilesBFloat16Weighted', 'Array'), 'intervalLengthSumArray': ('intervalLengthSum', 'Array'), 'uniqCombined64Array': ('uniqCombined64', 'Array'), 'anyArray': ('any', 'Array'), 'uniqCombinedArray': ('uniqCombined', 'Array'), 'avgWeightedArray': ('avgWeighted', 'Array'), 'quantileTimingArray': ('quantileTiming', 'Array'), 'uniqUpToArray': ('uniqUpTo', 'Array'), 'minArray': ('min', 'Array'), 'anyLastArray': ('anyLast', 'Array'), 'skewSampArray': ('skewSamp', 'Array'), 'kurtSampArray': ('kurtSamp', 'Array'), 'groupArraySampleArray': ('groupArraySample', 'Array'), 'topKArray': ('topK', 'Array'), 'sumArray': ('sum', 'Array'), 'sumMapArray': ('sumMap', 'Array'), 'quantilesExactHighArray': ('quantilesExactHigh', 'Array'), 'quantilesExactLowArray': ('quantilesExactLow', 'Array'), 'quantileExactWeightedArray': ('quantileExactWeighted', 'Array'), 'sumCountArray': ('sumCount', 'Array'), 'rankCorrArray': ('rankCorr', 'Array'), 'quantilesGKArray': ('quantilesGK', 'Array'), 'uniqExactArray': ('uniqExact', 'Array'), 'groupArrayLastArray': ('groupArrayLast', 'Array'), 'windowFunnelArray': ('windowFunnel', 'Array'), 'maxIntersectionsArray': ('maxIntersections', 'Array'), 'corrArray': ('corr', 'Array'), 'sumWithOverflowArray': ('sumWithOverflow', 'Array'), 'quantilesBFloat16Array': ('quantilesBFloat16', 'Array'), 'quantileExactArray': ('quantileExact', 'Array'), 'entropyArray': ('entropy', 'Array'), 'quantilesInterpolatedWeightedArray': ('quantilesInterpolatedWeighted', 'Array'), 'quantilesArray': ('quantiles', 'Array'), 'stochasticLinearRegressionArray': ('stochasticLinearRegression', 'Array'), 'mannWhitneyUTestArray': ('mannWhitneyUTest', 'Array'), 'quantilesTimingWeightedArray': ('quantilesTimingWeighted', 'Array'), 'covarSampArray': ('covarSamp', 'Array'), 'varPopArray': ('varPop', 'Array'), 'sequenceMatchArray': ('sequenceMatch', 'Array'), 'meanZTestArray': ('meanZTest', 'Array'), 'approx_top_sumArray': ('approx_top_sum', 'Array'), 'boundingRatioArray': ('boundingRatio', 'Array'), 'kolmogorovSmirnovTestArray': ('kolmogorovSmirnovTest', 'Array'), 'covarPopArray': ('covarPop', 'Array'), 'quantileGKArray': ('quantileGK', 'Array'), 'stddevSampArray': ('stddevSamp', 'Array'), 'sparkBarArray': ('sparkBar', 'Array'), 'quantileExactHighArray': ('quantileExactHigh', 'Array'), 'quantilesExactArray': ('quantilesExact', 'Array'), 'uniqArray': ('uniq', 'Array'), 'groupArrayInsertAtArray': ('groupArrayInsertAt', 'Array'), 'quantilesDeterministicArray': ('quantilesDeterministic', 'Array'), 'quantilesTDigestWeightedArray': ('quantilesTDigestWeighted', 'Array'), 'quantileDeterministicArray': ('quantileDeterministic', 'Array'), 'retentionArray': ('retention', 'Array'), 'groupBitmapXorArray': ('groupBitmapXor', 'Array'), 'quantilesExactExclusiveArray': ('quantilesExactExclusive', 'Array'), 'groupArrayMovingSumArray': ('groupArrayMovingSum', 'Array'), 'quantileBFloat16WeightedArray': ('quantileBFloat16Weighted', 'Array'), 'first_valueArray': ('first_value', 'Array'), 'studentTTestArray': ('studentTTest', 'Array'), 'topKWeightedArray': ('topKWeighted', 'Array'), 'quantileTDigestWeightedArray': ('quantileTDigestWeighted', 'Array'), 'categoricalInformationValueArray': ('categoricalInformationValue', 'Array'), 'sequenceCountArray': ('sequenceCount', 'Array'), 'groupBitAndArray': ('groupBitAnd', 'Array'), 'largestTriangleThreeBucketsArray': ('largestTriangleThreeBuckets', 'Array'), 'groupBitOrArray': ('groupBitOr', 'Array'), 'groupBitmapOrArray': ('groupBitmapOr', 'Array'), 'deltaSumTimestampArray': ('deltaSumTimestamp', 'Array'), 'argMinArray': ('argMin', 'Array'), 'groupBitmapAndArray': ('groupBitmapAnd', 'Array'), 'varSampArray': ('varSamp', 'Array'), 'exponentialTimeDecayedAvgArray': ('exponentialTimeDecayedAvg', 'Array'), 'maxArray': ('max', 'Array'), 'quantileExactLowArray': ('quantileExactLow', 'Array'), 'maxIntersectionsPositionArray': ('maxIntersectionsPosition', 'Array'), 'groupArrayArray': ('groupArray', 'Array'), 'quantileArray': ('quantile', 'Array'), 'welchTTestState': ('welchTTest', 'State'), 'histogramState': ('histogram', 'State'), 'countState': ('count', 'State'), 'quantileTimingWeightedState': ('quantileTimingWeighted', 'State'), 'cramersVState': ('cramersV', 'State'), 'skewPopState': ('skewPop', 'State'), 'quantileTDigestState': ('quantileTDigest', 'State'), 'stochasticLogisticRegressionState': ('stochasticLogisticRegression', 'State'), 'quantileInterpolatedWeightedState': ('quantileInterpolatedWeighted', 'State'), 'maxMapState': ('maxMap', 'State'), 'theilsUState': ('theilsU', 'State'), 'last_valueState': ('last_value', 'State'), 'argMaxState': ('argMax', 'State'), 'quantilesTDigestState': ('quantilesTDigest', 'State'), 'kurtPopState': ('kurtPop', 'State'), 'groupBitXorState': ('groupBitXor', 'State'), 'groupArrayMovingAvgState': ('groupArrayMovingAvg', 'State'), 'medianState': ('median', 'State'), 'groupUniqArrayState': ('groupUniqArray', 'State'), 'cramersVBiasCorrectedState': ('cramersVBiasCorrected', 'State'), 'groupBitmapState': ('groupBitmap', 'State'), 'sequenceNextNodeState': ('sequenceNextNode', 'State'), 'deltaSumState': ('deltaSum', 'State'), 'anyHeavyState': ('anyHeavy', 'State'), 'quantileBFloat16State': ('quantileBFloat16', 'State'), 'uniqHLL12State': ('uniqHLL12', 'State'), 'groupConcatState': ('groupConcat', 'State'), 'simpleLinearRegressionState': ('simpleLinearRegression', 'State'), 'stddevPopState': ('stddevPop', 'State'), 'sumKahanState': ('sumKahan', 'State'), 'contingencyState': ('contingency', 'State'), 'minMapState': ('minMap', 'State'), 'avgState': ('avg', 'State'), 'quantilesExactWeightedState': ('quantilesExactWeighted', 'State'), 'quantilesTimingState': ('quantilesTiming', 'State'), 'uniqThetaState': ('uniqTheta', 'State'), 'exponentialMovingAverageState': ('exponentialMovingAverage', 'State'), 'quantilesBFloat16WeightedState': ('quantilesBFloat16Weighted', 'State'), 'intervalLengthSumState': ('intervalLengthSum', 'State'), 'uniqCombined64State': ('uniqCombined64', 'State'), 'anyState': ('any', 'State'), 'uniqCombinedState': ('uniqCombined', 'State'), 'avgWeightedState': ('avgWeighted', 'State'), 'quantileTimingState': ('quantileTiming', 'State'), 'uniqUpToState': ('uniqUpTo', 'State'), 'minState': ('min', 'State'), 'anyLastState': ('anyLast', 'State'), 'skewSampState': ('skewSamp', 'State'), 'kurtSampState': ('kurtSamp', 'State'), 'groupArraySampleState': ('groupArraySample', 'State'), 'topKState': ('topK', 'State'), 'sumState': ('sum', 'State'), 'sumMapState': ('sumMap', 'State'), 'quantilesExactHighState': ('quantilesExactHigh', 'State'), 'quantilesExactLowState': ('quantilesExactLow', 'State'), 'quantileExactWeightedState': ('quantileExactWeighted', 'State'), 'sumCountState': ('sumCount', 'State'), 'rankCorrState': ('rankCorr', 'State'), 'quantilesGKState': ('quantilesGK', 'State'), 'uniqExactState': ('uniqExact', 'State'), 'groupArrayLastState': ('groupArrayLast', 'State'), 'windowFunnelState': ('windowFunnel', 'State'), 'maxIntersectionsState': ('maxIntersections', 'State'), 'corrState': ('corr', 'State'), 'sumWithOverflowState': ('sumWithOverflow', 'State'), 'quantilesBFloat16State': ('quantilesBFloat16', 'State'), 'quantileExactState': ('quantileExact', 'State'), 'entropyState': ('entropy', 'State'), 'quantilesInterpolatedWeightedState': ('quantilesInterpolatedWeighted', 'State'), 'quantilesState': ('quantiles', 'State'), 'stochasticLinearRegressionState': ('stochasticLinearRegression', 'State'), 'mannWhitneyUTestState': ('mannWhitneyUTest', 'State'), 'quantilesTimingWeightedState': ('quantilesTimingWeighted', 'State'), 'covarSampState': ('covarSamp', 'State'), 'varPopState': ('varPop', 'State'), 'sequenceMatchState': ('sequenceMatch', 'State'), 'meanZTestState': ('meanZTest', 'State'), 'approx_top_sumState': ('approx_top_sum', 'State'), 'boundingRatioState': ('boundingRatio', 'State'), 'kolmogorovSmirnovTestState': ('kolmogorovSmirnovTest', 'State'), 'covarPopState': ('covarPop', 'State'), 'quantileGKState': ('quantileGK', 'State'), 'stddevSampState': ('stddevSamp', 'State'), 'sparkBarState': ('sparkBar', 'State'), 'quantileExactHighState': ('quantileExactHigh', 'State'), 'quantilesExactState': ('quantilesExact', 'State'), 'uniqState': ('uniq', 'State'), 'groupArrayInsertAtState': ('groupArrayInsertAt', 'State'), 'quantilesDeterministicState': ('quantilesDeterministic', 'State'), 'quantilesTDigestWeightedState': ('quantilesTDigestWeighted', 'State'), 'quantileDeterministicState': ('quantileDeterministic', 'State'), 'retentionState': ('retention', 'State'), 'groupBitmapXorState': ('groupBitmapXor', 'State'), 'quantilesExactExclusiveState': ('quantilesExactExclusive', 'State'), 'groupArrayMovingSumState': ('groupArrayMovingSum', 'State'), 'quantileBFloat16WeightedState': ('quantileBFloat16Weighted', 'State'), 'first_valueState': ('first_value', 'State'), 'studentTTestState': ('studentTTest', 'State'), 'topKWeightedState': ('topKWeighted', 'State'), 'quantileTDigestWeightedState': ('quantileTDigestWeighted', 'State'), 'categoricalInformationValueState': ('categoricalInformationValue', 'State'), 'sequenceCountState': ('sequenceCount', 'State'), 'groupBitAndState': ('groupBitAnd', 'State'), 'largestTriangleThreeBucketsState': ('largestTriangleThreeBuckets', 'State'), 'groupBitOrState': ('groupBitOr', 'State'), 'groupBitmapOrState': ('groupBitmapOr', 'State'), 'deltaSumTimestampState': ('deltaSumTimestamp', 'State'), 'argMinState': ('argMin', 'State'), 'groupBitmapAndState': ('groupBitmapAnd', 'State'), 'varSampState': ('varSamp', 'State'), 'exponentialTimeDecayedAvgState': ('exponentialTimeDecayedAvg', 'State'), 'maxState': ('max', 'State'), 'quantileExactLowState': ('quantileExactLow', 'State'), 'maxIntersectionsPositionState': ('maxIntersectionsPosition', 'State'), 'groupArrayState': ('groupArray', 'State'), 'quantileState': ('quantile', 'State'), 'welchTTestMerge': ('welchTTest', 'Merge'), 'histogramMerge': ('histogram', 'Merge'), 'countMerge': ('count', 'Merge'), 'quantileTimingWeightedMerge': ('quantileTimingWeighted', 'Merge'), 'cramersVMerge': ('cramersV', 'Merge'), 'skewPopMerge': ('skewPop', 'Merge'), 'quantileTDigestMerge': ('quantileTDigest', 'Merge'), 'stochasticLogisticRegressionMerge': ('stochasticLogisticRegression', 'Merge'), 'quantileInterpolatedWeightedMerge': ('quantileInterpolatedWeighted', 'Merge'), 'maxMapMerge': ('maxMap', 'Merge'), 'theilsUMerge': ('theilsU', 'Merge'), 'last_valueMerge': ('last_value', 'Merge'), 'argMaxMerge': ('argMax', 'Merge'), 'quantilesTDigestMerge': ('quantilesTDigest', 'Merge'), 'kurtPopMerge': ('kurtPop', 'Merge'), 'groupBitXorMerge': ('groupBitXor', 'Merge'), 'groupArrayMovingAvgMerge': ('groupArrayMovingAvg', 'Merge'), 'medianMerge': ('median', 'Merge'), 'groupUniqArrayMerge': ('groupUniqArray', 'Merge'), 'cramersVBiasCorrectedMerge': ('cramersVBiasCorrected', 'Merge'), 'groupBitmapMerge': ('groupBitmap', 'Merge'), 'sequenceNextNodeMerge': ('sequenceNextNode', 'Merge'), 'deltaSumMerge': ('deltaSum', 'Merge'), 'anyHeavyMerge': ('anyHeavy', 'Merge'), 'quantileBFloat16Merge': ('quantileBFloat16', 'Merge'), 'uniqHLL12Merge': ('uniqHLL12', 'Merge'), 'groupConcatMerge': ('groupConcat', 'Merge'), 'simpleLinearRegressionMerge': ('simpleLinearRegression', 'Merge'), 'stddevPopMerge': ('stddevPop', 'Merge'), 'sumKahanMerge': ('sumKahan', 'Merge'), 'contingencyMerge': ('contingency', 'Merge'), 'minMapMerge': ('minMap', 'Merge'), 'avgMerge': ('avg', 'Merge'), 'quantilesExactWeightedMerge': ('quantilesExactWeighted', 'Merge'), 'quantilesTimingMerge': ('quantilesTiming', 'Merge'), 'uniqThetaMerge': ('uniqTheta', 'Merge'), 'exponentialMovingAverageMerge': ('exponentialMovingAverage', 'Merge'), 'quantilesBFloat16WeightedMerge': ('quantilesBFloat16Weighted', 'Merge'), 'intervalLengthSumMerge': ('intervalLengthSum', 'Merge'), 'uniqCombined64Merge': ('uniqCombined64', 'Merge'), 'anyMerge': ('any', 'Merge'), 'uniqCombinedMerge': ('uniqCombined', 'Merge'), 'avgWeightedMerge': ('avgWeighted', 'Merge'), 'quantileTimingMerge': ('quantileTiming', 'Merge'), 'uniqUpToMerge': ('uniqUpTo', 'Merge'), 'minMerge': ('min', 'Merge'), 'anyLastMerge': ('anyLast', 'Merge'), 'skewSampMerge': ('skewSamp', 'Merge'), 'kurtSampMerge': ('kurtSamp', 'Merge'), 'groupArraySampleMerge': ('groupArraySample', 'Merge'), 'topKMerge': ('topK', 'Merge'), 'sumMerge': ('sum', 'Merge'), 'sumMapMerge': ('sumMap', 'Merge'), 'quantilesExactHighMerge': ('quantilesExactHigh', 'Merge'), 'quantilesExactLowMerge': ('quantilesExactLow', 'Merge'), 'quantileExactWeightedMerge': ('quantileExactWeighted', 'Merge'), 'sumCountMerge': ('sumCount', 'Merge'), 'rankCorrMerge': ('rankCorr', 'Merge'), 'quantilesGKMerge': ('quantilesGK', 'Merge'), 'uniqExactMerge': ('uniqExact', 'Merge'), 'groupArrayLastMerge': ('groupArrayLast', 'Merge'), 'windowFunnelMerge': ('windowFunnel', 'Merge'), 'maxIntersectionsMerge': ('maxIntersections', 'Merge'), 'corrMerge': ('corr', 'Merge'), 'sumWithOverflowMerge': ('sumWithOverflow', 'Merge'), 'quantilesBFloat16Merge': ('quantilesBFloat16', 'Merge'), 'quantileExactMerge': ('quantileExact', 'Merge'), 'entropyMerge': ('entropy', 'Merge'), 'quantilesInterpolatedWeightedMerge': ('quantilesInterpolatedWeighted', 'Merge'), 'quantilesMerge': ('quantiles', 'Merge'), 'stochasticLinearRegressionMerge': ('stochasticLinearRegression', 'Merge'), 'mannWhitneyUTestMerge': ('mannWhitneyUTest', 'Merge'), 'quantilesTimingWeightedMerge': ('quantilesTimingWeighted', 'Merge'), 'covarSampMerge': ('covarSamp', 'Merge'), 'varPopMerge': ('varPop', 'Merge'), 'sequenceMatchMerge': ('sequenceMatch', 'Merge'), 'meanZTestMerge': ('meanZTest', 'Merge'), 'approx_top_sumMerge': ('approx_top_sum', 'Merge'), 'boundingRatioMerge': ('boundingRatio', 'Merge'), 'kolmogorovSmirnovTestMerge': ('kolmogorovSmirnovTest', 'Merge'), 'covarPopMerge': ('covarPop', 'Merge'), 'quantileGKMerge': ('quantileGK', 'Merge'), 'stddevSampMerge': ('stddevSamp', 'Merge'), 'sparkBarMerge': ('sparkBar', 'Merge'), 'quantileExactHighMerge': ('quantileExactHigh', 'Merge'), 'quantilesExactMerge': ('quantilesExact', 'Merge'), 'uniqMerge': ('uniq', 'Merge'), 'groupArrayInsertAtMerge': ('groupArrayInsertAt', 'Merge'), 'quantilesDeterministicMerge': ('quantilesDeterministic', 'Merge'), 'quantilesTDigestWeightedMerge': ('quantilesTDigestWeighted', 'Merge'), 'quantileDeterministicMerge': ('quantileDeterministic', 'Merge'), 'retentionMerge': ('retention', 'Merge'), 'groupBitmapXorMerge': ('groupBitmapXor', 'Merge'), 'quantilesExactExclusiveMerge': ('quantilesExactExclusive', 'Merge'), 'groupArrayMovingSumMerge': ('groupArrayMovingSum', 'Merge'), 'quantileBFloat16WeightedMerge': ('quantileBFloat16Weighted', 'Merge'), 'first_valueMerge': ('first_value', 'Merge'), 'studentTTestMerge': ('studentTTest', 'Merge'), 'topKWeightedMerge': ('topKWeighted', 'Merge'), 'quantileTDigestWeightedMerge': ('quantileTDigestWeighted', 'Merge'), 'categoricalInformationValueMerge': ('categoricalInformationValue', 'Merge'), 'sequenceCountMerge': ('sequenceCount', 'Merge'), 'groupBitAndMerge': ('groupBitAnd', 'Merge'), 'largestTriangleThreeBucketsMerge': ('largestTriangleThreeBuckets', 'Merge'), 'groupBitOrMerge': ('groupBitOr', 'Merge'), 'groupBitmapOrMerge': ('groupBitmapOr', 'Merge'), 'deltaSumTimestampMerge': ('deltaSumTimestamp', 'Merge'), 'argMinMerge': ('argMin', 'Merge'), 'groupBitmapAndMerge': ('groupBitmapAnd', 'Merge'), 'varSampMerge': ('varSamp', 'Merge'), 'exponentialTimeDecayedAvgMerge': ('exponentialTimeDecayedAvg', 'Merge'), 'maxMerge': ('max', 'Merge'), 'quantileExactLowMerge': ('quantileExactLow', 'Merge'), 'maxIntersectionsPositionMerge': ('maxIntersectionsPosition', 'Merge'), 'groupArrayMerge': ('groupArray', 'Merge'), 'quantileMerge': ('quantile', 'Merge'), 'welchTTestMap': ('welchTTest', 'Map'), 'histogramMap': ('histogram', 'Map'), 'countMap': ('count', 'Map'), 'quantileTimingWeightedMap': ('quantileTimingWeighted', 'Map'), 'cramersVMap': ('cramersV', 'Map'), 'skewPopMap': ('skewPop', 'Map'), 'quantileTDigestMap': ('quantileTDigest', 'Map'), 'stochasticLogisticRegressionMap': ('stochasticLogisticRegression', 'Map'), 'quantileInterpolatedWeightedMap': ('quantileInterpolatedWeighted', 'Map'), 'maxMapMap': ('maxMap', 'Map'), 'theilsUMap': ('theilsU', 'Map'), 'last_valueMap': ('last_value', 'Map'), 'argMaxMap': ('argMax', 'Map'), 'quantilesTDigestMap': ('quantilesTDigest', 'Map'), 'kurtPopMap': ('kurtPop', 'Map'), 'groupBitXorMap': ('groupBitXor', 'Map'), 'groupArrayMovingAvgMap': ('groupArrayMovingAvg', 'Map'), 'medianMap': ('median', 'Map'), 'groupUniqArrayMap': ('groupUniqArray', 'Map'), 'cramersVBiasCorrectedMap': ('cramersVBiasCorrected', 'Map'), 'groupBitmapMap': ('groupBitmap', 'Map'), 'sequenceNextNodeMap': ('sequenceNextNode', 'Map'), 'deltaSumMap': ('deltaSum', 'Map'), 'anyHeavyMap': ('anyHeavy', 'Map'), 'quantileBFloat16Map': ('quantileBFloat16', 'Map'), 'uniqHLL12Map': ('uniqHLL12', 'Map'), 'groupConcatMap': ('groupConcat', 'Map'), 'simpleLinearRegressionMap': ('simpleLinearRegression', 'Map'), 'stddevPopMap': ('stddevPop', 'Map'), 'sumKahanMap': ('sumKahan', 'Map'), 'contingencyMap': ('contingency', 'Map'), 'minMapMap': ('minMap', 'Map'), 'avgMap': ('avg', 'Map'), 'quantilesExactWeightedMap': ('quantilesExactWeighted', 'Map'), 'quantilesTimingMap': ('quantilesTiming', 'Map'), 'uniqThetaMap': ('uniqTheta', 'Map'), 'exponentialMovingAverageMap': ('exponentialMovingAverage', 'Map'), 'quantilesBFloat16WeightedMap': ('quantilesBFloat16Weighted', 'Map'), 'intervalLengthSumMap': ('intervalLengthSum', 'Map'), 'uniqCombined64Map': ('uniqCombined64', 'Map'), 'anyMap': ('any', 'Map'), 'uniqCombinedMap': ('uniqCombined', 'Map'), 'avgWeightedMap': ('avgWeighted', 'Map'), 'quantileTimingMap': ('quantileTiming', 'Map'), 'uniqUpToMap': ('uniqUpTo', 'Map'), 'minMap': ('minMap', None), 'anyLastMap': ('anyLast', 'Map'), 'skewSampMap': ('skewSamp', 'Map'), 'kurtSampMap': ('kurtSamp', 'Map'), 'groupArraySampleMap': ('groupArraySample', 'Map'), 'topKMap': ('topK', 'Map'), 'sumMap': ('sumMap', None), 'sumMapMap': ('sumMap', 'Map'), 'quantilesExactHighMap': ('quantilesExactHigh', 'Map'), 'quantilesExactLowMap': ('quantilesExactLow', 'Map'), 'quantileExactWeightedMap': ('quantileExactWeighted', 'Map'), 'sumCountMap': ('sumCount', 'Map'), 'rankCorrMap': ('rankCorr', 'Map'), 'quantilesGKMap': ('quantilesGK', 'Map'), 'uniqExactMap': ('uniqExact', 'Map'), 'groupArrayLastMap': ('groupArrayLast', 'Map'), 'windowFunnelMap': ('windowFunnel', 'Map'), 'maxIntersectionsMap': ('maxIntersections', 'Map'), 'corrMap': ('corr', 'Map'), 'sumWithOverflowMap': ('sumWithOverflow', 'Map'), 'quantilesBFloat16Map': ('quantilesBFloat16', 'Map'), 'quantileExactMap': ('quantileExact', 'Map'), 'entropyMap': ('entropy', 'Map'), 'quantilesInterpolatedWeightedMap': ('quantilesInterpolatedWeighted', 'Map'), 'quantilesMap': ('quantiles', 'Map'), 'stochasticLinearRegressionMap': ('stochasticLinearRegression', 'Map'), 'mannWhitneyUTestMap': ('mannWhitneyUTest', 'Map'), 'quantilesTimingWeightedMap': ('quantilesTimingWeighted', 'Map'), 'covarSampMap': ('covarSamp', 'Map'), 'varPopMap': ('varPop', 'Map'), 'sequenceMatchMap': ('sequenceMatch', 'Map'), 'meanZTestMap': ('meanZTest', 'Map'), 'approx_top_sumMap': ('approx_top_sum', 'Map'), 'boundingRatioMap': ('boundingRatio', 'Map'), 'kolmogorovSmirnovTestMap': ('kolmogorovSmirnovTest', 'Map'), 'covarPopMap': ('covarPop', 'Map'), 'quantileGKMap': ('quantileGK', 'Map'), 'stddevSampMap': ('stddevSamp', 'Map'), 'sparkBarMap': ('sparkBar', 'Map'), 'quantileExactHighMap': ('quantileExactHigh', 'Map'), 'quantilesExactMap': ('quantilesExact', 'Map'), 'uniqMap': ('uniq', 'Map'), 'groupArrayInsertAtMap': ('groupArrayInsertAt', 'Map'), 'quantilesDeterministicMap': ('quantilesDeterministic', 'Map'), 'quantilesTDigestWeightedMap': ('quantilesTDigestWeighted', 'Map'), 'quantileDeterministicMap': ('quantileDeterministic', 'Map'), 'retentionMap': ('retention', 'Map'), 'groupBitmapXorMap': ('groupBitmapXor', 'Map'), 'quantilesExactExclusiveMap': ('quantilesExactExclusive', 'Map'), 'groupArrayMovingSumMap': ('groupArrayMovingSum', 'Map'), 'quantileBFloat16WeightedMap': ('quantileBFloat16Weighted', 'Map'), 'first_valueMap': ('first_value', 'Map'), 'studentTTestMap': ('studentTTest', 'Map'), 'topKWeightedMap': ('topKWeighted', 'Map'), 'quantileTDigestWeightedMap': ('quantileTDigestWeighted', 'Map'), 'categoricalInformationValueMap': ('categoricalInformationValue', 'Map'), 'sequenceCountMap': ('sequenceCount', 'Map'), 'groupBitAndMap': ('groupBitAnd', 'Map'), 'largestTriangleThreeBucketsMap': ('largestTriangleThreeBuckets', 'Map'), 'groupBitOrMap': ('groupBitOr', 'Map'), 'groupBitmapOrMap': ('groupBitmapOr', 'Map'), 'deltaSumTimestampMap': ('deltaSumTimestamp', 'Map'), 'argMinMap': ('argMin', 'Map'), 'groupBitmapAndMap': ('groupBitmapAnd', 'Map'), 'varSampMap': ('varSamp', 'Map'), 'exponentialTimeDecayedAvgMap': ('exponentialTimeDecayedAvg', 'Map'), 'maxMap': ('maxMap', None), 'quantileExactLowMap': ('quantileExactLow', 'Map'), 'maxIntersectionsPositionMap': ('maxIntersectionsPosition', 'Map'), 'groupArrayMap': ('groupArray', 'Map'), 'quantileMap': ('quantile', 'Map'), 'welchTTestIf': ('welchTTest', 'If'), 'histogramIf': ('histogram', 'If'), 'countIf': ('count', 'If'), 'quantileTimingWeightedIf': ('quantileTimingWeighted', 'If'), 'cramersVIf': ('cramersV', 'If'), 'skewPopIf': ('skewPop', 'If'), 'quantileTDigestIf': ('quantileTDigest', 'If'), 'stochasticLogisticRegressionIf': ('stochasticLogisticRegression', 'If'), 'quantileInterpolatedWeightedIf': ('quantileInterpolatedWeighted', 'If'), 'maxMapIf': ('maxMap', 'If'), 'theilsUIf': ('theilsU', 'If'), 'last_valueIf': ('last_value', 'If'), 'argMaxIf': ('argMax', 'If'), 'quantilesTDigestIf': ('quantilesTDigest', 'If'), 'kurtPopIf': ('kurtPop', 'If'), 'groupBitXorIf': ('groupBitXor', 'If'), 'groupArrayMovingAvgIf': ('groupArrayMovingAvg', 'If'), 'medianIf': ('median', 'If'), 'groupUniqArrayIf': ('groupUniqArray', 'If'), 'cramersVBiasCorrectedIf': ('cramersVBiasCorrected', 'If'), 'groupBitmapIf': ('groupBitmap', 'If'), 'sequenceNextNodeIf': ('sequenceNextNode', 'If'), 'deltaSumIf': ('deltaSum', 'If'), 'anyHeavyIf': ('anyHeavy', 'If'), 'quantileBFloat16If': ('quantileBFloat16', 'If'), 'uniqHLL12If': ('uniqHLL12', 'If'), 'groupConcatIf': ('groupConcat', 'If'), 'simpleLinearRegressionIf': ('simpleLinearRegression', 'If'), 'stddevPopIf': ('stddevPop', 'If'), 'sumKahanIf': ('sumKahan', 'If'), 'contingencyIf': ('contingency', 'If'), 'minMapIf': ('minMap', 'If'), 'avgIf': ('avg', 'If'), 'quantilesExactWeightedIf': ('quantilesExactWeighted', 'If'), 'quantilesTimingIf': ('quantilesTiming', 'If'), 'uniqThetaIf': ('uniqTheta', 'If'), 'exponentialMovingAverageIf': ('exponentialMovingAverage', 'If'), 'quantilesBFloat16WeightedIf': ('quantilesBFloat16Weighted', 'If'), 'intervalLengthSumIf': ('intervalLengthSum', 'If'), 'uniqCombined64If': ('uniqCombined64', 'If'), 'anyIf': ('any', 'If'), 'uniqCombinedIf': ('uniqCombined', 'If'), 'avgWeightedIf': ('avgWeighted', 'If'), 'quantileTimingIf': ('quantileTiming', 'If'), 'uniqUpToIf': ('uniqUpTo', 'If'), 'minIf': ('min', 'If'), 'anyLastIf': ('anyLast', 'If'), 'skewSampIf': ('skewSamp', 'If'), 'kurtSampIf': ('kurtSamp', 'If'), 'groupArraySampleIf': ('groupArraySample', 'If'), 'topKIf': ('topK', 'If'), 'sumIf': ('sum', 'If'), 'sumMapIf': ('sumMap', 'If'), 'quantilesExactHighIf': ('quantilesExactHigh', 'If'), 'quantilesExactLowIf': ('quantilesExactLow', 'If'), 'quantileExactWeightedIf': ('quantileExactWeighted', 'If'), 'sumCountIf': ('sumCount', 'If'), 'rankCorrIf': ('rankCorr', 'If'), 'quantilesGKIf': ('quantilesGK', 'If'), 'uniqExactIf': ('uniqExact', 'If'), 'groupArrayLastIf': ('groupArrayLast', 'If'), 'windowFunnelIf': ('windowFunnel', 'If'), 'maxIntersectionsIf': ('maxIntersections', 'If'), 'corrIf': ('corr', 'If'), 'sumWithOverflowIf': ('sumWithOverflow', 'If'), 'quantilesBFloat16If': ('quantilesBFloat16', 'If'), 'quantileExactIf': ('quantileExact', 'If'), 'entropyIf': ('entropy', 'If'), 'quantilesInterpolatedWeightedIf': ('quantilesInterpolatedWeighted', 'If'), 'quantilesIf': ('quantiles', 'If'), 'stochasticLinearRegressionIf': ('stochasticLinearRegression', 'If'), 'mannWhitneyUTestIf': ('mannWhitneyUTest', 'If'), 'quantilesTimingWeightedIf': ('quantilesTimingWeighted', 'If'), 'covarSampIf': ('covarSamp', 'If'), 'varPopIf': ('varPop', 'If'), 'sequenceMatchIf': ('sequenceMatch', 'If'), 'meanZTestIf': ('meanZTest', 'If'), 'approx_top_sumIf': ('approx_top_sum', 'If'), 'boundingRatioIf': ('boundingRatio', 'If'), 'kolmogorovSmirnovTestIf': ('kolmogorovSmirnovTest', 'If'), 'covarPopIf': ('covarPop', 'If'), 'quantileGKIf': ('quantileGK', 'If'), 'stddevSampIf': ('stddevSamp', 'If'), 'sparkBarIf': ('sparkBar', 'If'), 'quantileExactHighIf': ('quantileExactHigh', 'If'), 'quantilesExactIf': ('quantilesExact', 'If'), 'uniqIf': ('uniq', 'If'), 'groupArrayInsertAtIf': ('groupArrayInsertAt', 'If'), 'quantilesDeterministicIf': ('quantilesDeterministic', 'If'), 'quantilesTDigestWeightedIf': ('quantilesTDigestWeighted', 'If'), 'quantileDeterministicIf': ('quantileDeterministic', 'If'), 'retentionIf': ('retention', 'If'), 'groupBitmapXorIf': ('groupBitmapXor', 'If'), 'quantilesExactExclusiveIf': ('quantilesExactExclusive', 'If'), 'groupArrayMovingSumIf': ('groupArrayMovingSum', 'If'), 'quantileBFloat16WeightedIf': ('quantileBFloat16Weighted', 'If'), 'first_valueIf': ('first_value', 'If'), 'studentTTestIf': ('studentTTest', 'If'), 'topKWeightedIf': ('topKWeighted', 'If'), 'quantileTDigestWeightedIf': ('quantileTDigestWeighted', 'If'), 'categoricalInformationValueIf': ('categoricalInformationValue', 'If'), 'sequenceCountIf': ('sequenceCount', 'If'), 'groupBitAndIf': ('groupBitAnd', 'If'), 'largestTriangleThreeBucketsIf': ('largestTriangleThreeBuckets', 'If'), 'groupBitOrIf': ('groupBitOr', 'If'), 'groupBitmapOrIf': ('groupBitmapOr', 'If'), 'deltaSumTimestampIf': ('deltaSumTimestamp', 'If'), 'argMinIf': ('argMin', 'If'), 'groupBitmapAndIf': ('groupBitmapAnd', 'If'), 'varSampIf': ('varSamp', 'If'), 'exponentialTimeDecayedAvgIf': ('exponentialTimeDecayedAvg', 'If'), 'maxIf': ('max', 'If'), 'quantileExactLowIf': ('quantileExactLow', 'If'), 'maxIntersectionsPositionIf': ('maxIntersectionsPosition', 'If'), 'groupArrayIf': ('groupArray', 'If'), 'quantileIf': ('quantile', 'If'), 'welchTTest': ('welchTTest', None), 'histogram': ('histogram', None), 'count': ('count', None), 'quantileTimingWeighted': ('quantileTimingWeighted', None), 'cramersV': ('cramersV', None), 'skewPop': ('skewPop', None), 'quantileTDigest': ('quantileTDigest', None), 'stochasticLogisticRegression': ('stochasticLogisticRegression', None), 'quantileInterpolatedWeighted': ('quantileInterpolatedWeighted', None), 'theilsU': ('theilsU', None), 'last_value': ('last_value', None), 'argMax': ('argMax', None), 'quantilesTDigest': ('quantilesTDigest', None), 'kurtPop': ('kurtPop', None), 'groupBitXor': ('groupBitXor', None), 'groupArrayMovingAvg': ('groupArrayMovingAvg', None), 'median': ('median', None), 'groupUniqArray': ('groupUniqArray', None), 'cramersVBiasCorrected': ('cramersVBiasCorrected', None), 'groupBitmap': ('groupBitmap', None), 'sequenceNextNode': ('sequenceNextNode', None), 'deltaSum': ('deltaSum', None), 'anyHeavy': ('anyHeavy', None), 'quantileBFloat16': ('quantileBFloat16', None), 'uniqHLL12': ('uniqHLL12', None), 'groupConcat': ('groupConcat', None), 'simpleLinearRegression': ('simpleLinearRegression', None), 'stddevPop': ('stddevPop', None), 'sumKahan': ('sumKahan', None), 'contingency': ('contingency', None), 'avg': ('avg', None), 'quantilesExactWeighted': ('quantilesExactWeighted', None), 'quantilesTiming': ('quantilesTiming', None), 'uniqTheta': ('uniqTheta', None), 'exponentialMovingAverage': ('exponentialMovingAverage', None), 'quantilesBFloat16Weighted': ('quantilesBFloat16Weighted', None), 'intervalLengthSum': ('intervalLengthSum', None), 'uniqCombined64': ('uniqCombined64', None), 'any': ('any', None), 'uniqCombined': ('uniqCombined', None), 'avgWeighted': ('avgWeighted', None), 'quantileTiming': ('quantileTiming', None), 'uniqUpTo': ('uniqUpTo', None), 'min': ('min', None), 'anyLast': ('anyLast', None), 'skewSamp': ('skewSamp', None), 'kurtSamp': ('kurtSamp', None), 'groupArraySample': ('groupArraySample', None), 'topK': ('topK', None), 'sum': ('sum', None), 'quantilesExactHigh': ('quantilesExactHigh', None), 'quantilesExactLow': ('quantilesExactLow', None), 'quantileExactWeighted': ('quantileExactWeighted', None), 'sumCount': ('sumCount', None), 'rankCorr': ('rankCorr', None), 'quantilesGK': ('quantilesGK', None), 'uniqExact': ('uniqExact', None), 'groupArrayLast': ('groupArrayLast', None), 'windowFunnel': ('windowFunnel', None), 'maxIntersections': ('maxIntersections', None), 'corr': ('corr', None), 'sumWithOverflow': ('sumWithOverflow', None), 'quantilesBFloat16': ('quantilesBFloat16', None), 'quantileExact': ('quantileExact', None), 'entropy': ('entropy', None), 'quantilesInterpolatedWeighted': ('quantilesInterpolatedWeighted', None), 'quantiles': ('quantiles', None), 'stochasticLinearRegression': ('stochasticLinearRegression', None), 'mannWhitneyUTest': ('mannWhitneyUTest', None), 'quantilesTimingWeighted': ('quantilesTimingWeighted', None), 'covarSamp': ('covarSamp', None), 'varPop': ('varPop', None), 'sequenceMatch': ('sequenceMatch', None), 'meanZTest': ('meanZTest', None), 'approx_top_sum': ('approx_top_sum', None), 'boundingRatio': ('boundingRatio', None), 'kolmogorovSmirnovTest': ('kolmogorovSmirnovTest', None), 'covarPop': ('covarPop', None), 'quantileGK': ('quantileGK', None), 'stddevSamp': ('stddevSamp', None), 'sparkBar': ('sparkBar', None), 'quantileExactHigh': ('quantileExactHigh', None), 'quantilesExact': ('quantilesExact', None), 'uniq': ('uniq', None), 'groupArrayInsertAt': ('groupArrayInsertAt', None), 'quantilesDeterministic': ('quantilesDeterministic', None), 'quantilesTDigestWeighted': ('quantilesTDigestWeighted', None), 'quantileDeterministic': ('quantileDeterministic', None), 'retention': ('retention', None), 'groupBitmapXor': ('groupBitmapXor', None), 'quantilesExactExclusive': ('quantilesExactExclusive', None), 'groupArrayMovingSum': ('groupArrayMovingSum', None), 'quantileBFloat16Weighted': ('quantileBFloat16Weighted', None), 'first_value': ('first_value', None), 'studentTTest': ('studentTTest', None), 'topKWeighted': ('topKWeighted', None), 'quantileTDigestWeighted': ('quantileTDigestWeighted', None), 'categoricalInformationValue': ('categoricalInformationValue', None), 'sequenceCount': ('sequenceCount', None), 'groupBitAnd': ('groupBitAnd', None), 'largestTriangleThreeBuckets': ('largestTriangleThreeBuckets', None), 'groupBitOr': ('groupBitOr', None), 'groupBitmapOr': ('groupBitmapOr', None), 'deltaSumTimestamp': ('deltaSumTimestamp', None), 'argMin': ('argMin', None), 'groupBitmapAnd': ('groupBitmapAnd', None), 'varSamp': ('varSamp', None), 'exponentialTimeDecayedAvg': ('exponentialTimeDecayedAvg', None), 'max': ('max', None), 'quantileExactLow': ('quantileExactLow', None), 'maxIntersectionsPosition': ('maxIntersectionsPosition', None), 'groupArray': ('groupArray', None), 'quantile': ('quantile', 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>>, 'CALLED': <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: 246>: <class 'sqlglot.expressions.temporal.CurrentDate'>, <TokenType.CURRENT_DATETIME: 247>: <class 'sqlglot.expressions.temporal.CurrentDate'>, <TokenType.CURRENT_TIME: 249>: <class 'sqlglot.expressions.temporal.CurrentTime'>, <TokenType.CURRENT_USER: 251>: <class 'sqlglot.expressions.functions.CurrentUser'>, <TokenType.CURRENT_ROLE: 253>: <class 'sqlglot.expressions.functions.CurrentRole'>}
RANGE_PARSERS =
{<TokenType.AT_GT: 56>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.BETWEEN: 230>: <function Parser.<lambda>>, <TokenType.GLOB: 287>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.ILIKE: 295>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.IN: 296>: <function Parser.<lambda>>, <TokenType.IRLIKE: 307>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.IS: 308>: <function Parser.<lambda>>, <TokenType.LIKE: 318>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.LT_AT: 55>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.OVERLAPS: 349>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.RLIKE: 379>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.SIMILAR_TO: 394>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.FOR: 279>: <function Parser.<lambda>>, <TokenType.QMARK_AMP: 68>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.QMARK_PIPE: 69>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.HASH_DASH: 70>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.AT_QMARK: 54>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.ADJACENT: 65>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.OPERATOR: 340>: <function Parser.<lambda>>, <TokenType.AMP_LT: 63>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.AMP_GT: 64>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.GLOBAL: 288>: <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: 387>, <TokenType.STRAIGHT_JOIN: 401>, <TokenType.OUTER: 347>, <TokenType.ALL: 220>, <TokenType.ANTI: 221>, <TokenType.ANY: 222>, <TokenType.ARRAY: 224>, <TokenType.ASOF: 226>, <TokenType.INNER: 299>, <TokenType.CROSS: 244>}
TABLE_ALIAS_TOKENS =
{<TokenType.SESSION: 59>, <TokenType.SESSION_USER: 61>, <TokenType.IDENTIFIER: 79>, <TokenType.DATABASE: 80>, <TokenType.COLUMN: 81>, <TokenType.SCHEMA: 83>, <TokenType.TABLE: 84>, <TokenType.WAREHOUSE: 85>, <TokenType.STAGE: 86>, <TokenType.STREAM: 87>, <TokenType.STREAMLIT: 88>, <TokenType.VAR: 89>, <TokenType.BIT: 97>, <TokenType.BOOLEAN: 98>, <TokenType.TINYINT: 99>, <TokenType.UTINYINT: 100>, <TokenType.SMALLINT: 101>, <TokenType.USMALLINT: 102>, <TokenType.MEDIUMINT: 103>, <TokenType.UMEDIUMINT: 104>, <TokenType.INT: 105>, <TokenType.UINT: 106>, <TokenType.BIGINT: 107>, <TokenType.UBIGINT: 108>, <TokenType.BIGNUM: 109>, <TokenType.INT128: 110>, <TokenType.UINT128: 111>, <TokenType.INT256: 112>, <TokenType.UINT256: 113>, <TokenType.FLOAT: 114>, <TokenType.DOUBLE: 115>, <TokenType.UDOUBLE: 116>, <TokenType.DECIMAL: 117>, <TokenType.DECIMAL32: 118>, <TokenType.DECIMAL64: 119>, <TokenType.DECIMAL128: 120>, <TokenType.DECIMAL256: 121>, <TokenType.DECFLOAT: 122>, <TokenType.UDECIMAL: 123>, <TokenType.BIGDECIMAL: 124>, <TokenType.CHAR: 125>, <TokenType.NCHAR: 126>, <TokenType.VARCHAR: 127>, <TokenType.NVARCHAR: 128>, <TokenType.BPCHAR: 129>, <TokenType.TEXT: 130>, <TokenType.MEDIUMTEXT: 131>, <TokenType.LONGTEXT: 132>, <TokenType.BLOB: 133>, <TokenType.MEDIUMBLOB: 134>, <TokenType.LONGBLOB: 135>, <TokenType.TINYBLOB: 136>, <TokenType.TINYTEXT: 137>, <TokenType.NAME: 138>, <TokenType.BINARY: 139>, <TokenType.VARBINARY: 140>, <TokenType.JSON: 141>, <TokenType.JSONB: 142>, <TokenType.TIME: 143>, <TokenType.TIMETZ: 144>, <TokenType.TIME_NS: 145>, <TokenType.TIMESTAMP: 146>, <TokenType.TIMESTAMPTZ: 147>, <TokenType.TIMESTAMPLTZ: 148>, <TokenType.TIMESTAMPNTZ: 149>, <TokenType.TIMESTAMP_S: 150>, <TokenType.TIMESTAMP_MS: 151>, <TokenType.TIMESTAMP_NS: 152>, <TokenType.DATETIME: 153>, <TokenType.DATETIME2: 154>, <TokenType.DATETIME64: 155>, <TokenType.SMALLDATETIME: 156>, <TokenType.DATE: 157>, <TokenType.DATE32: 158>, <TokenType.INT4RANGE: 159>, <TokenType.INT4MULTIRANGE: 160>, <TokenType.INT8RANGE: 161>, <TokenType.INT8MULTIRANGE: 162>, <TokenType.NUMRANGE: 163>, <TokenType.NUMMULTIRANGE: 164>, <TokenType.TSRANGE: 165>, <TokenType.TSMULTIRANGE: 166>, <TokenType.TSTZRANGE: 167>, <TokenType.TSTZMULTIRANGE: 168>, <TokenType.DATERANGE: 169>, <TokenType.DATEMULTIRANGE: 170>, <TokenType.UUID: 171>, <TokenType.GEOGRAPHY: 172>, <TokenType.GEOGRAPHYPOINT: 173>, <TokenType.NULLABLE: 174>, <TokenType.GEOMETRY: 175>, <TokenType.POINT: 176>, <TokenType.RING: 177>, <TokenType.LINESTRING: 178>, <TokenType.LOCALTIME: 179>, <TokenType.LOCALTIMESTAMP: 180>, <TokenType.MULTILINESTRING: 182>, <TokenType.POLYGON: 183>, <TokenType.MULTIPOLYGON: 184>, <TokenType.HLLSKETCH: 185>, <TokenType.HSTORE: 186>, <TokenType.SUPER: 187>, <TokenType.SERIAL: 188>, <TokenType.SMALLSERIAL: 189>, <TokenType.BIGSERIAL: 190>, <TokenType.XML: 191>, <TokenType.YEAR: 192>, <TokenType.USERDEFINED: 193>, <TokenType.MONEY: 194>, <TokenType.SMALLMONEY: 195>, <TokenType.ROWVERSION: 196>, <TokenType.IMAGE: 197>, <TokenType.VARIANT: 198>, <TokenType.OBJECT: 199>, <TokenType.INET: 200>, <TokenType.IPADDRESS: 201>, <TokenType.IPPREFIX: 202>, <TokenType.IPV4: 203>, <TokenType.IPV6: 204>, <TokenType.ENUM: 205>, <TokenType.ENUM8: 206>, <TokenType.ENUM16: 207>, <TokenType.FIXEDSTRING: 208>, <TokenType.LOWCARDINALITY: 209>, <TokenType.NESTED: 210>, <TokenType.AGGREGATEFUNCTION: 211>, <TokenType.SIMPLEAGGREGATEFUNCTION: 212>, <TokenType.TDIGEST: 213>, <TokenType.UNKNOWN: 214>, <TokenType.VECTOR: 215>, <TokenType.DYNAMIC: 216>, <TokenType.VOID: 217>, <TokenType.APPLY: 223>, <TokenType.ASC: 225>, <TokenType.ATTACH: 227>, <TokenType.AUTO_INCREMENT: 228>, <TokenType.BEGIN: 229>, <TokenType.CACHE: 232>, <TokenType.CASE: 233>, <TokenType.COLLATE: 236>, <TokenType.COMMAND: 237>, <TokenType.COMMENT: 238>, <TokenType.COMMIT: 239>, <TokenType.CONSTRAINT: 241>, <TokenType.COPY: 242>, <TokenType.CUBE: 245>, <TokenType.CURRENT_DATE: 246>, <TokenType.CURRENT_DATETIME: 247>, <TokenType.CURRENT_SCHEMA: 248>, <TokenType.CURRENT_TIME: 249>, <TokenType.CURRENT_TIMESTAMP: 250>, <TokenType.CURRENT_USER: 251>, <TokenType.CURRENT_ROLE: 253>, <TokenType.CURRENT_CATALOG: 254>, <TokenType.DEFAULT: 256>, <TokenType.DELETE: 257>, <TokenType.DESC: 258>, <TokenType.DESCRIBE: 259>, <TokenType.DETACH: 260>, <TokenType.DICTIONARY: 261>, <TokenType.DIV: 264>, <TokenType.END: 267>, <TokenType.ESCAPE: 268>, <TokenType.EXECUTE: 270>, <TokenType.EXISTS: 271>, <TokenType.FALSE: 272>, <TokenType.FILE: 274>, <TokenType.FILE_FORMAT: 275>, <TokenType.FILTER: 276>, <TokenType.FIRST: 278>, <TokenType.FOREIGN_KEY: 281>, <TokenType.FUNCTION: 285>, <TokenType.GET: 286>, <TokenType.INDEX: 297>, <TokenType.INTERVAL: 304>, <TokenType.IS: 308>, <TokenType.ISNULL: 309>, <TokenType.KEEP: 312>, <TokenType.KILL: 314>, <TokenType.LIMIT: 319>, <TokenType.LIST: 320>, <TokenType.LOAD: 321>, <TokenType.MAP: 323>, <TokenType.MATCH: 324>, <TokenType.MERGE: 328>, <TokenType.MODEL: 330>, <TokenType.NEXT: 332>, <TokenType.NOTHING: 333>, <TokenType.NULL: 335>, <TokenType.OBJECT_IDENTIFIER: 336>, <TokenType.OFFSET: 337>, <TokenType.OPERATOR: 340>, <TokenType.ORDINALITY: 344>, <TokenType.INOUT: 346>, <TokenType.OVER: 348>, <TokenType.OVERLAPS: 349>, <TokenType.OVERWRITE: 350>, <TokenType.PARTITION: 352>, <TokenType.PERCENT: 354>, <TokenType.PIVOT: 355>, <TokenType.PRAGMA: 360>, <TokenType.PROCEDURE: 363>, <TokenType.PSEUDO_TYPE: 365>, <TokenType.PUT: 366>, <TokenType.RANGE: 370>, <TokenType.RECURSIVE: 371>, <TokenType.REFRESH: 372>, <TokenType.RENAME: 373>, <TokenType.REPLACE: 374>, <TokenType.REFERENCES: 377>, <TokenType.ROLLUP: 382>, <TokenType.ROW: 383>, <TokenType.ROWS: 384>, <TokenType.SEQUENCE: 389>, <TokenType.SET: 391>, <TokenType.SHOW: 393>, <TokenType.SOME: 395>, <TokenType.STORAGE_INTEGRATION: 400>, <TokenType.STRAIGHT_JOIN: 401>, <TokenType.STRUCT: 402>, <TokenType.TAG: 405>, <TokenType.TEMPORARY: 406>, <TokenType.TOP: 407>, <TokenType.TRUE: 409>, <TokenType.TRUNCATE: 410>, <TokenType.TRIGGER: 411>, <TokenType.TYPE: 412>, <TokenType.UNNEST: 416>, <TokenType.UNPIVOT: 417>, <TokenType.UPDATE: 418>, <TokenType.USE: 419>, <TokenType.VIEW: 423>, <TokenType.SEMANTIC_VIEW: 424>, <TokenType.VOLATILE: 425>, <TokenType.UNIQUE: 431>, <TokenType.SINK: 438>, <TokenType.SOURCE: 439>, <TokenType.ANALYZE: 440>, <TokenType.NAMESPACE: 441>, <TokenType.EXPORT: 442>}
ALIAS_TOKENS =
{<TokenType.SESSION: 59>, <TokenType.SESSION_USER: 61>, <TokenType.IDENTIFIER: 79>, <TokenType.DATABASE: 80>, <TokenType.COLUMN: 81>, <TokenType.SCHEMA: 83>, <TokenType.TABLE: 84>, <TokenType.WAREHOUSE: 85>, <TokenType.STAGE: 86>, <TokenType.STREAM: 87>, <TokenType.STREAMLIT: 88>, <TokenType.VAR: 89>, <TokenType.BIT: 97>, <TokenType.BOOLEAN: 98>, <TokenType.TINYINT: 99>, <TokenType.UTINYINT: 100>, <TokenType.SMALLINT: 101>, <TokenType.USMALLINT: 102>, <TokenType.MEDIUMINT: 103>, <TokenType.UMEDIUMINT: 104>, <TokenType.INT: 105>, <TokenType.UINT: 106>, <TokenType.BIGINT: 107>, <TokenType.UBIGINT: 108>, <TokenType.BIGNUM: 109>, <TokenType.INT128: 110>, <TokenType.UINT128: 111>, <TokenType.INT256: 112>, <TokenType.UINT256: 113>, <TokenType.FLOAT: 114>, <TokenType.DOUBLE: 115>, <TokenType.UDOUBLE: 116>, <TokenType.DECIMAL: 117>, <TokenType.DECIMAL32: 118>, <TokenType.DECIMAL64: 119>, <TokenType.DECIMAL128: 120>, <TokenType.DECIMAL256: 121>, <TokenType.DECFLOAT: 122>, <TokenType.UDECIMAL: 123>, <TokenType.BIGDECIMAL: 124>, <TokenType.CHAR: 125>, <TokenType.NCHAR: 126>, <TokenType.VARCHAR: 127>, <TokenType.NVARCHAR: 128>, <TokenType.BPCHAR: 129>, <TokenType.TEXT: 130>, <TokenType.MEDIUMTEXT: 131>, <TokenType.LONGTEXT: 132>, <TokenType.BLOB: 133>, <TokenType.MEDIUMBLOB: 134>, <TokenType.LONGBLOB: 135>, <TokenType.TINYBLOB: 136>, <TokenType.TINYTEXT: 137>, <TokenType.NAME: 138>, <TokenType.BINARY: 139>, <TokenType.VARBINARY: 140>, <TokenType.JSON: 141>, <TokenType.JSONB: 142>, <TokenType.TIME: 143>, <TokenType.TIMETZ: 144>, <TokenType.TIME_NS: 145>, <TokenType.TIMESTAMP: 146>, <TokenType.TIMESTAMPTZ: 147>, <TokenType.TIMESTAMPLTZ: 148>, <TokenType.TIMESTAMPNTZ: 149>, <TokenType.TIMESTAMP_S: 150>, <TokenType.TIMESTAMP_MS: 151>, <TokenType.TIMESTAMP_NS: 152>, <TokenType.DATETIME: 153>, <TokenType.DATETIME2: 154>, <TokenType.DATETIME64: 155>, <TokenType.SMALLDATETIME: 156>, <TokenType.DATE: 157>, <TokenType.DATE32: 158>, <TokenType.INT4RANGE: 159>, <TokenType.INT4MULTIRANGE: 160>, <TokenType.INT8RANGE: 161>, <TokenType.INT8MULTIRANGE: 162>, <TokenType.NUMRANGE: 163>, <TokenType.NUMMULTIRANGE: 164>, <TokenType.TSRANGE: 165>, <TokenType.TSMULTIRANGE: 166>, <TokenType.TSTZRANGE: 167>, <TokenType.TSTZMULTIRANGE: 168>, <TokenType.DATERANGE: 169>, <TokenType.DATEMULTIRANGE: 170>, <TokenType.UUID: 171>, <TokenType.GEOGRAPHY: 172>, <TokenType.GEOGRAPHYPOINT: 173>, <TokenType.NULLABLE: 174>, <TokenType.GEOMETRY: 175>, <TokenType.POINT: 176>, <TokenType.RING: 177>, <TokenType.LINESTRING: 178>, <TokenType.LOCALTIME: 179>, <TokenType.LOCALTIMESTAMP: 180>, <TokenType.MULTILINESTRING: 182>, <TokenType.POLYGON: 183>, <TokenType.MULTIPOLYGON: 184>, <TokenType.HLLSKETCH: 185>, <TokenType.HSTORE: 186>, <TokenType.SUPER: 187>, <TokenType.SERIAL: 188>, <TokenType.SMALLSERIAL: 189>, <TokenType.BIGSERIAL: 190>, <TokenType.XML: 191>, <TokenType.YEAR: 192>, <TokenType.USERDEFINED: 193>, <TokenType.MONEY: 194>, <TokenType.SMALLMONEY: 195>, <TokenType.ROWVERSION: 196>, <TokenType.IMAGE: 197>, <TokenType.VARIANT: 198>, <TokenType.OBJECT: 199>, <TokenType.INET: 200>, <TokenType.IPADDRESS: 201>, <TokenType.IPPREFIX: 202>, <TokenType.IPV4: 203>, <TokenType.IPV6: 204>, <TokenType.ENUM: 205>, <TokenType.ENUM8: 206>, <TokenType.ENUM16: 207>, <TokenType.FIXEDSTRING: 208>, <TokenType.LOWCARDINALITY: 209>, <TokenType.NESTED: 210>, <TokenType.AGGREGATEFUNCTION: 211>, <TokenType.SIMPLEAGGREGATEFUNCTION: 212>, <TokenType.TDIGEST: 213>, <TokenType.UNKNOWN: 214>, <TokenType.VECTOR: 215>, <TokenType.DYNAMIC: 216>, <TokenType.VOID: 217>, <TokenType.ALL: 220>, <TokenType.ANTI: 221>, <TokenType.ANY: 222>, <TokenType.APPLY: 223>, <TokenType.ARRAY: 224>, <TokenType.ASC: 225>, <TokenType.ASOF: 226>, <TokenType.ATTACH: 227>, <TokenType.AUTO_INCREMENT: 228>, <TokenType.BEGIN: 229>, <TokenType.CACHE: 232>, <TokenType.CASE: 233>, <TokenType.COLLATE: 236>, <TokenType.COMMAND: 237>, <TokenType.COMMENT: 238>, <TokenType.COMMIT: 239>, <TokenType.CONSTRAINT: 241>, <TokenType.COPY: 242>, <TokenType.CUBE: 245>, <TokenType.CURRENT_DATE: 246>, <TokenType.CURRENT_DATETIME: 247>, <TokenType.CURRENT_SCHEMA: 248>, <TokenType.CURRENT_TIME: 249>, <TokenType.CURRENT_TIMESTAMP: 250>, <TokenType.CURRENT_USER: 251>, <TokenType.CURRENT_ROLE: 253>, <TokenType.CURRENT_CATALOG: 254>, <TokenType.DEFAULT: 256>, <TokenType.DELETE: 257>, <TokenType.DESC: 258>, <TokenType.DESCRIBE: 259>, <TokenType.DETACH: 260>, <TokenType.DICTIONARY: 261>, <TokenType.DIV: 264>, <TokenType.END: 267>, <TokenType.ESCAPE: 268>, <TokenType.EXECUTE: 270>, <TokenType.EXISTS: 271>, <TokenType.FALSE: 272>, <TokenType.FILE: 274>, <TokenType.FILE_FORMAT: 275>, <TokenType.FILTER: 276>, <TokenType.FINAL: 277>, <TokenType.FIRST: 278>, <TokenType.FOREIGN_KEY: 281>, <TokenType.FULL: 284>, <TokenType.FUNCTION: 285>, <TokenType.GET: 286>, <TokenType.INDEX: 297>, <TokenType.INTERVAL: 304>, <TokenType.IS: 308>, <TokenType.ISNULL: 309>, <TokenType.KEEP: 312>, <TokenType.KILL: 314>, <TokenType.LEFT: 317>, <TokenType.LIMIT: 319>, <TokenType.LIST: 320>, <TokenType.LOAD: 321>, <TokenType.LOCK: 322>, <TokenType.MAP: 323>, <TokenType.MATCH: 324>, <TokenType.MERGE: 328>, <TokenType.MODEL: 330>, <TokenType.NATURAL: 331>, <TokenType.NEXT: 332>, <TokenType.NOTHING: 333>, <TokenType.NULL: 335>, <TokenType.OBJECT_IDENTIFIER: 336>, <TokenType.OFFSET: 337>, <TokenType.OPERATOR: 340>, <TokenType.ORDINALITY: 344>, <TokenType.INOUT: 346>, <TokenType.OVER: 348>, <TokenType.OVERLAPS: 349>, <TokenType.OVERWRITE: 350>, <TokenType.PARTITION: 352>, <TokenType.PERCENT: 354>, <TokenType.PIVOT: 355>, <TokenType.PRAGMA: 360>, <TokenType.PROCEDURE: 363>, <TokenType.PSEUDO_TYPE: 365>, <TokenType.PUT: 366>, <TokenType.RANGE: 370>, <TokenType.RECURSIVE: 371>, <TokenType.REFRESH: 372>, <TokenType.RENAME: 373>, <TokenType.REPLACE: 374>, <TokenType.REFERENCES: 377>, <TokenType.RIGHT: 378>, <TokenType.ROLLUP: 382>, <TokenType.ROW: 383>, <TokenType.ROWS: 384>, <TokenType.SEMI: 387>, <TokenType.SEQUENCE: 389>, <TokenType.SET: 391>, <TokenType.SHOW: 393>, <TokenType.SOME: 395>, <TokenType.STORAGE_INTEGRATION: 400>, <TokenType.STRAIGHT_JOIN: 401>, <TokenType.STRUCT: 402>, <TokenType.TAG: 405>, <TokenType.TEMPORARY: 406>, <TokenType.TOP: 407>, <TokenType.TRUE: 409>, <TokenType.TRUNCATE: 410>, <TokenType.TRIGGER: 411>, <TokenType.TYPE: 412>, <TokenType.UNNEST: 416>, <TokenType.UNPIVOT: 417>, <TokenType.UPDATE: 418>, <TokenType.USE: 419>, <TokenType.VIEW: 423>, <TokenType.SEMANTIC_VIEW: 424>, <TokenType.VOLATILE: 425>, <TokenType.WINDOW: 429>, <TokenType.UNIQUE: 431>, <TokenType.SINK: 438>, <TokenType.SOURCE: 439>, <TokenType.ANALYZE: 440>, <TokenType.NAMESPACE: 441>, <TokenType.EXPORT: 442>}
QUERY_MODIFIER_PARSERS =
{<TokenType.MATCH_RECOGNIZE: 326>: <function Parser.<lambda>>, <TokenType.PREWHERE: 361>: <function Parser.<lambda>>, <TokenType.WHERE: 428>: <function Parser.<lambda>>, <TokenType.GROUP_BY: 290>: <function Parser.<lambda>>, <TokenType.HAVING: 292>: <function Parser.<lambda>>, <TokenType.QUALIFY: 367>: <function Parser.<lambda>>, <TokenType.WINDOW: 429>: <function Parser.<lambda>>, <TokenType.ORDER_BY: 341>: <function Parser.<lambda>>, <TokenType.LIMIT: 319>: <function Parser.<lambda>>, <TokenType.FETCH: 273>: <function Parser.<lambda>>, <TokenType.OFFSET: 337>: <function Parser.<lambda>>, <TokenType.FOR: 279>: <function Parser.<lambda>>, <TokenType.LOCK: 322>: <function Parser.<lambda>>, <TokenType.TABLE_SAMPLE: 404>: <function Parser.<lambda>>, <TokenType.USING: 420>: <function Parser.<lambda>>, <TokenType.CLUSTER_BY: 235>: <function Parser.<lambda>>, <TokenType.DISTRIBUTE_BY: 263>: <function Parser.<lambda>>, <TokenType.SORT_BY: 396>: <function Parser.<lambda>>, <TokenType.CONNECT_BY: 240>: <function Parser.<lambda>>, <TokenType.START_WITH: 399>: <function Parser.<lambda>>, <TokenType.SETTINGS: 392>: <function ClickHouseParser.<lambda>>, <TokenType.FORMAT: 282>: <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 =
{'FOREIGN KEY', 'TRUNCATE', 'LIKE', 'INDEX', 'PERIOD', 'PRIMARY KEY', 'UNIQUE', 'BUCKET', 'EXCLUDE'}
PLACEHOLDER_PARSERS =
{<TokenType.PLACEHOLDER: 356>: <function Parser.<lambda>>, <TokenType.PARAMETER: 58>: <function Parser.<lambda>>, <TokenType.COLON: 11>: <function Parser.<lambda>>, <TokenType.L_BRACE: 5>: <function ClickHouseParser.<lambda>>}
STATEMENT_PARSERS =
{<TokenType.ALTER: 219>: <function Parser.<lambda>>, <TokenType.ANALYZE: 440>: <function Parser.<lambda>>, <TokenType.BEGIN: 229>: <function Parser.<lambda>>, <TokenType.CACHE: 232>: <function Parser.<lambda>>, <TokenType.COMMENT: 238>: <function Parser.<lambda>>, <TokenType.COMMIT: 239>: <function Parser.<lambda>>, <TokenType.COPY: 242>: <function Parser.<lambda>>, <TokenType.CREATE: 243>: <function Parser.<lambda>>, <TokenType.DELETE: 257>: <function Parser.<lambda>>, <TokenType.DESC: 258>: <function Parser.<lambda>>, <TokenType.DESCRIBE: 259>: <function Parser.<lambda>>, <TokenType.DROP: 265>: <function Parser.<lambda>>, <TokenType.GRANT: 289>: <function Parser.<lambda>>, <TokenType.REVOKE: 376>: <function Parser.<lambda>>, <TokenType.INSERT: 300>: <function Parser.<lambda>>, <TokenType.KILL: 314>: <function Parser.<lambda>>, <TokenType.LOAD: 321>: <function Parser.<lambda>>, <TokenType.MERGE: 328>: <function Parser.<lambda>>, <TokenType.PIVOT: 355>: <function Parser.<lambda>>, <TokenType.PRAGMA: 360>: <function Parser.<lambda>>, <TokenType.REFRESH: 372>: <function Parser.<lambda>>, <TokenType.ROLLBACK: 381>: <function Parser.<lambda>>, <TokenType.SET: 391>: <function Parser.<lambda>>, <TokenType.TRUNCATE: 410>: <function Parser.<lambda>>, <TokenType.UNCACHE: 413>: <function Parser.<lambda>>, <TokenType.UNPIVOT: 417>: <function Parser.<lambda>>, <TokenType.UPDATE: 418>: <function Parser.<lambda>>, <TokenType.USE: 419>: <function Parser.<lambda>>, <TokenType.SEMICOLON: 19>: <function Parser.<lambda>>, <TokenType.DETACH: 260>: <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
- COLON_CHAIN_IS_SINGLE_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
- ADJACENT_STRINGS_CANNOT_BE_CONNECTED
- 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