Edit on GitHub

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

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.
MODIFIERS_ATTACHED_TO_SET_OP = False
INTERVAL_SPANS = False
OPTIONAL_ALIAS_TOKEN_CTE = False
JOINS_HAVE_EQUAL_PRECEDENCE = True
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'>>, 'FROM_ISO8601_TIMESTAMP_NANOS': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.FromISO8601TimestampNanos'>>, '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'>>, 'NANVL': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Nanvl'>>, 'NEGATIVE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Negative'>>, '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': <function ClickHouseParser.<dictcomp>.<lambda>>, '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'>>, 'REGEXP_SUBSTR': <function ClickHouseParser.<dictcomp>.<lambda>>, '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'>>, 'RINT': <bound method Func.from_arg_list of <class 'sqlglot.expressions.math.Rint'>>, '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'>>, 'SECRET': <bound method Func.from_arg_list of <class 'sqlglot.expressions.string.Secret'>>, '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'>>, 'SHUFFLE': <bound method Func.from_arg_list of <class 'sqlglot.expressions.array.Shuffle'>>, '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>, 'REGEXPEXTRACT': <function ClickHouseParser.<dictcomp>.<lambda>>, 'TOSTARTOFMINUTE': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFMICROSECOND': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFSECOND': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFMONTH': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFQUARTER': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFMILLISECOND': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFHOUR': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFDAY': <function _build_timestamp_trunc.<locals>.<lambda>>, 'TOSTARTOFYEAR': <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>, 'DATETRUNC': <bound method Func.from_arg_list of <class 'sqlglot.expressions.temporal.DateTrunc'>>, '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 = {'simpleLinearRegression', 'quantilesTimingWeighted', 'intervalLengthSum', 'quantilesBFloat16', 'deltaSum', 'maxIntersections', 'quantilesExactLow', 'contingency', 'anyLast', 'last_value', 'sparkBar', 'groupArray', 'stddevPop', 'quantilesTiming', 'uniqHLL12', 'quantilesExactHigh', 'uniqCombined', 'quantilesExactExclusive', 'quantilesExact', 'exponentialMovingAverage', 'stochasticLogisticRegression', 'quantileExactLow', 'maxIntersectionsPosition', 'first_value', 'mannWhitneyUTest', 'quantilesTDigestWeighted', 'groupBitmap', 'sumMap', 'groupBitmapOr', 'rankCorr', 'count', 'quantileTimingWeighted', 'uniqExact', 'stddevSamp', 'windowFunnel', 'quantilesTDigest', 'theilsU', 'groupBitAnd', 'groupBitOr', 'groupBitmapAnd', 'welchTTest', 'entropy', 'argMin', 'any', 'retention', 'sequenceNextNode', 'corr', 'uniqUpTo', 'quantile', 'groupArrayMovingSum', 'varSamp', 'stochasticLinearRegression', 'sequenceCount', 'uniqCombined64', 'quantileTiming', 'quantilesExactWeighted', 'anyHeavy', 'quantileTDigest', 'kolmogorovSmirnovTest', 'uniqTheta', 'histogram', 'quantileTDigestWeighted', 'covarPop', 'quantileExactInclusive', 'boundingRatio', 'quantileExact', 'varPop', 'sumKahan', 'minMap', 'meanZTest', 'topKWeighted', 'uniq', 'largestTriangleThreeBuckets', 'quantileExactHigh', 'kurtPop', 'quantilesInterpolatedWeighted', 'quantileBFloat16', 'approx_top_sum', 'sum', 'topK', 'skewSamp', 'groupArrayInsertAt', 'quantilesDeterministic', 'sumCount', 'sumWithOverflow', 'avg', 'skewPop', 'cramersV', 'groupArrayMovingAvg', 'exponentialTimeDecayedAvg', 'quantileDeterministic', 'median', 'groupUniqArray', 'covarSamp', 'argMax', 'groupBitXor', 'deltaSumTimestamp', 'groupArraySample', 'quantilesGK', 'quantileExactWeighted', 'quantileGK', 'quantilesBFloat16Weighted', 'cramersVBiasCorrected', 'maxMap', 'sequenceMatch', 'quantileBFloat16Weighted', 'avgWeighted', 'quantileInterpolatedWeighted', 'categoricalInformationValue', 'studentTTest', 'min', 'max', 'quantiles', 'groupConcat', 'groupArrayLast', 'groupBitmapXor', 'kurtSamp'}
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.DECLARE: 255>, <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: 366>, <TokenType.RANGE: 371>, <TokenType.REPLACE: 375>, <TokenType.RIGHT: 379>, <TokenType.RLIKE: 380>, <TokenType.ROW: 384>, <TokenType.SEQUENCE: 390>, <TokenType.SET: 392>, <TokenType.SOME: 396>, <TokenType.STRUCT: 403>, <TokenType.TRUNCATE: 411>, <TokenType.UNION: 416>, <TokenType.UNNEST: 417>, <TokenType.WINDOW: 430>, <TokenType.UTC_DATE: 433>, <TokenType.UTC_TIME: 434>, <TokenType.UTC_TIMESTAMP: 435>}
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.UNKNOWN: 214>, <TokenType.GT: 25>, <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.DECLARE: 255>, <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.OUT: 345>, <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.PROJECTION: 365>, <TokenType.PSEUDO_TYPE: 366>, <TokenType.PUT: 367>, <TokenType.RANGE: 371>, <TokenType.RECURSIVE: 372>, <TokenType.REFRESH: 373>, <TokenType.RENAME: 374>, <TokenType.REPLACE: 375>, <TokenType.REFERENCES: 378>, <TokenType.RIGHT: 379>, <TokenType.ROLLUP: 383>, <TokenType.ROW: 384>, <TokenType.ROWS: 385>, <TokenType.SEMI: 388>, <TokenType.SEQUENCE: 390>, <TokenType.SET: 392>, <TokenType.SETTINGS: 393>, <TokenType.SHOW: 394>, <TokenType.SOME: 396>, <TokenType.STORAGE_INTEGRATION: 401>, <TokenType.STRAIGHT_JOIN: 402>, <TokenType.STRUCT: 403>, <TokenType.TAG: 406>, <TokenType.TEMPORARY: 407>, <TokenType.TOP: 408>, <TokenType.TRUE: 410>, <TokenType.TRUNCATE: 411>, <TokenType.TRIGGER: 412>, <TokenType.TYPE: 413>, <TokenType.UNNEST: 417>, <TokenType.UNPIVOT: 418>, <TokenType.UPDATE: 419>, <TokenType.USE: 420>, <TokenType.VIEW: 424>, <TokenType.SEMANTIC_VIEW: 425>, <TokenType.VOLATILE: 426>, <TokenType.WINDOW: 430>, <TokenType.UNIQUE: 432>, <TokenType.SINK: 437>, <TokenType.SOURCE: 438>, <TokenType.ANALYZE: 439>, <TokenType.NAMESPACE: 440>, <TokenType.EXPORT: 441>}
AGG_FUNC_MAPPING = {'simpleLinearRegressionSimpleState': ('simpleLinearRegression', 'SimpleState'), 'quantilesTimingWeightedSimpleState': ('quantilesTimingWeighted', 'SimpleState'), 'intervalLengthSumSimpleState': ('intervalLengthSum', 'SimpleState'), 'quantilesBFloat16SimpleState': ('quantilesBFloat16', 'SimpleState'), 'deltaSumSimpleState': ('deltaSum', 'SimpleState'), 'maxIntersectionsSimpleState': ('maxIntersections', 'SimpleState'), 'quantilesExactLowSimpleState': ('quantilesExactLow', 'SimpleState'), 'contingencySimpleState': ('contingency', 'SimpleState'), 'anyLastSimpleState': ('anyLast', 'SimpleState'), 'last_valueSimpleState': ('last_value', 'SimpleState'), 'sparkBarSimpleState': ('sparkBar', 'SimpleState'), 'groupArraySimpleState': ('groupArray', 'SimpleState'), 'stddevPopSimpleState': ('stddevPop', 'SimpleState'), 'quantilesTimingSimpleState': ('quantilesTiming', 'SimpleState'), 'uniqHLL12SimpleState': ('uniqHLL12', 'SimpleState'), 'quantilesExactHighSimpleState': ('quantilesExactHigh', 'SimpleState'), 'uniqCombinedSimpleState': ('uniqCombined', 'SimpleState'), 'quantilesExactExclusiveSimpleState': ('quantilesExactExclusive', 'SimpleState'), 'quantilesExactSimpleState': ('quantilesExact', 'SimpleState'), 'exponentialMovingAverageSimpleState': ('exponentialMovingAverage', 'SimpleState'), 'stochasticLogisticRegressionSimpleState': ('stochasticLogisticRegression', 'SimpleState'), 'quantileExactLowSimpleState': ('quantileExactLow', 'SimpleState'), 'maxIntersectionsPositionSimpleState': ('maxIntersectionsPosition', 'SimpleState'), 'first_valueSimpleState': ('first_value', 'SimpleState'), 'mannWhitneyUTestSimpleState': ('mannWhitneyUTest', 'SimpleState'), 'quantilesTDigestWeightedSimpleState': ('quantilesTDigestWeighted', 'SimpleState'), 'groupBitmapSimpleState': ('groupBitmap', 'SimpleState'), 'sumMapSimpleState': ('sumMap', 'SimpleState'), 'groupBitmapOrSimpleState': ('groupBitmapOr', 'SimpleState'), 'rankCorrSimpleState': ('rankCorr', 'SimpleState'), 'countSimpleState': ('count', 'SimpleState'), 'quantileTimingWeightedSimpleState': ('quantileTimingWeighted', 'SimpleState'), 'uniqExactSimpleState': ('uniqExact', 'SimpleState'), 'stddevSampSimpleState': ('stddevSamp', 'SimpleState'), 'windowFunnelSimpleState': ('windowFunnel', 'SimpleState'), 'quantilesTDigestSimpleState': ('quantilesTDigest', 'SimpleState'), 'theilsUSimpleState': ('theilsU', 'SimpleState'), 'groupBitAndSimpleState': ('groupBitAnd', 'SimpleState'), 'groupBitOrSimpleState': ('groupBitOr', 'SimpleState'), 'groupBitmapAndSimpleState': ('groupBitmapAnd', 'SimpleState'), 'welchTTestSimpleState': ('welchTTest', 'SimpleState'), 'entropySimpleState': ('entropy', 'SimpleState'), 'argMinSimpleState': ('argMin', 'SimpleState'), 'anySimpleState': ('any', 'SimpleState'), 'retentionSimpleState': ('retention', 'SimpleState'), 'sequenceNextNodeSimpleState': ('sequenceNextNode', 'SimpleState'), 'corrSimpleState': ('corr', 'SimpleState'), 'uniqUpToSimpleState': ('uniqUpTo', 'SimpleState'), 'quantileSimpleState': ('quantile', 'SimpleState'), 'groupArrayMovingSumSimpleState': ('groupArrayMovingSum', 'SimpleState'), 'varSampSimpleState': ('varSamp', 'SimpleState'), 'stochasticLinearRegressionSimpleState': ('stochasticLinearRegression', 'SimpleState'), 'sequenceCountSimpleState': ('sequenceCount', 'SimpleState'), 'uniqCombined64SimpleState': ('uniqCombined64', 'SimpleState'), 'quantileTimingSimpleState': ('quantileTiming', 'SimpleState'), 'quantilesExactWeightedSimpleState': ('quantilesExactWeighted', 'SimpleState'), 'anyHeavySimpleState': ('anyHeavy', 'SimpleState'), 'quantileTDigestSimpleState': ('quantileTDigest', 'SimpleState'), 'kolmogorovSmirnovTestSimpleState': ('kolmogorovSmirnovTest', 'SimpleState'), 'uniqThetaSimpleState': ('uniqTheta', 'SimpleState'), 'histogramSimpleState': ('histogram', 'SimpleState'), 'quantileTDigestWeightedSimpleState': ('quantileTDigestWeighted', 'SimpleState'), 'covarPopSimpleState': ('covarPop', 'SimpleState'), 'quantileExactInclusiveSimpleState': ('quantileExactInclusive', 'SimpleState'), 'boundingRatioSimpleState': ('boundingRatio', 'SimpleState'), 'quantileExactSimpleState': ('quantileExact', 'SimpleState'), 'varPopSimpleState': ('varPop', 'SimpleState'), 'sumKahanSimpleState': ('sumKahan', 'SimpleState'), 'minMapSimpleState': ('minMap', 'SimpleState'), 'meanZTestSimpleState': ('meanZTest', 'SimpleState'), 'topKWeightedSimpleState': ('topKWeighted', 'SimpleState'), 'uniqSimpleState': ('uniq', 'SimpleState'), 'largestTriangleThreeBucketsSimpleState': ('largestTriangleThreeBuckets', 'SimpleState'), 'quantileExactHighSimpleState': ('quantileExactHigh', 'SimpleState'), 'kurtPopSimpleState': ('kurtPop', 'SimpleState'), 'quantilesInterpolatedWeightedSimpleState': ('quantilesInterpolatedWeighted', 'SimpleState'), 'quantileBFloat16SimpleState': ('quantileBFloat16', 'SimpleState'), 'approx_top_sumSimpleState': ('approx_top_sum', 'SimpleState'), 'sumSimpleState': ('sum', 'SimpleState'), 'topKSimpleState': ('topK', 'SimpleState'), 'skewSampSimpleState': ('skewSamp', 'SimpleState'), 'groupArrayInsertAtSimpleState': ('groupArrayInsertAt', 'SimpleState'), 'quantilesDeterministicSimpleState': ('quantilesDeterministic', 'SimpleState'), 'sumCountSimpleState': ('sumCount', 'SimpleState'), 'sumWithOverflowSimpleState': ('sumWithOverflow', 'SimpleState'), 'avgSimpleState': ('avg', 'SimpleState'), 'skewPopSimpleState': ('skewPop', 'SimpleState'), 'cramersVSimpleState': ('cramersV', 'SimpleState'), 'groupArrayMovingAvgSimpleState': ('groupArrayMovingAvg', 'SimpleState'), 'exponentialTimeDecayedAvgSimpleState': ('exponentialTimeDecayedAvg', 'SimpleState'), 'quantileDeterministicSimpleState': ('quantileDeterministic', 'SimpleState'), 'medianSimpleState': ('median', 'SimpleState'), 'groupUniqArraySimpleState': ('groupUniqArray', 'SimpleState'), 'covarSampSimpleState': ('covarSamp', 'SimpleState'), 'argMaxSimpleState': ('argMax', 'SimpleState'), 'groupBitXorSimpleState': ('groupBitXor', 'SimpleState'), 'deltaSumTimestampSimpleState': ('deltaSumTimestamp', 'SimpleState'), 'groupArraySampleSimpleState': ('groupArraySample', 'SimpleState'), 'quantilesGKSimpleState': ('quantilesGK', 'SimpleState'), 'quantileExactWeightedSimpleState': ('quantileExactWeighted', 'SimpleState'), 'quantileGKSimpleState': ('quantileGK', 'SimpleState'), 'quantilesBFloat16WeightedSimpleState': ('quantilesBFloat16Weighted', 'SimpleState'), 'cramersVBiasCorrectedSimpleState': ('cramersVBiasCorrected', 'SimpleState'), 'maxMapSimpleState': ('maxMap', 'SimpleState'), 'sequenceMatchSimpleState': ('sequenceMatch', 'SimpleState'), 'quantileBFloat16WeightedSimpleState': ('quantileBFloat16Weighted', 'SimpleState'), 'avgWeightedSimpleState': ('avgWeighted', 'SimpleState'), 'quantileInterpolatedWeightedSimpleState': ('quantileInterpolatedWeighted', 'SimpleState'), 'categoricalInformationValueSimpleState': ('categoricalInformationValue', 'SimpleState'), 'studentTTestSimpleState': ('studentTTest', 'SimpleState'), 'minSimpleState': ('min', 'SimpleState'), 'maxSimpleState': ('max', 'SimpleState'), 'quantilesSimpleState': ('quantiles', 'SimpleState'), 'groupConcatSimpleState': ('groupConcat', 'SimpleState'), 'groupArrayLastSimpleState': ('groupArrayLast', 'SimpleState'), 'groupBitmapXorSimpleState': ('groupBitmapXor', 'SimpleState'), 'kurtSampSimpleState': ('kurtSamp', 'SimpleState'), 'simpleLinearRegressionMergeState': ('simpleLinearRegression', 'MergeState'), 'quantilesTimingWeightedMergeState': ('quantilesTimingWeighted', 'MergeState'), 'intervalLengthSumMergeState': ('intervalLengthSum', 'MergeState'), 'quantilesBFloat16MergeState': ('quantilesBFloat16', 'MergeState'), 'deltaSumMergeState': ('deltaSum', 'MergeState'), 'maxIntersectionsMergeState': ('maxIntersections', 'MergeState'), 'quantilesExactLowMergeState': ('quantilesExactLow', 'MergeState'), 'contingencyMergeState': ('contingency', 'MergeState'), 'anyLastMergeState': ('anyLast', 'MergeState'), 'last_valueMergeState': ('last_value', 'MergeState'), 'sparkBarMergeState': ('sparkBar', 'MergeState'), 'groupArrayMergeState': ('groupArray', 'MergeState'), 'stddevPopMergeState': ('stddevPop', 'MergeState'), 'quantilesTimingMergeState': ('quantilesTiming', 'MergeState'), 'uniqHLL12MergeState': ('uniqHLL12', 'MergeState'), 'quantilesExactHighMergeState': ('quantilesExactHigh', 'MergeState'), 'uniqCombinedMergeState': ('uniqCombined', 'MergeState'), 'quantilesExactExclusiveMergeState': ('quantilesExactExclusive', 'MergeState'), 'quantilesExactMergeState': ('quantilesExact', 'MergeState'), 'exponentialMovingAverageMergeState': ('exponentialMovingAverage', 'MergeState'), 'stochasticLogisticRegressionMergeState': ('stochasticLogisticRegression', 'MergeState'), 'quantileExactLowMergeState': ('quantileExactLow', 'MergeState'), 'maxIntersectionsPositionMergeState': ('maxIntersectionsPosition', 'MergeState'), 'first_valueMergeState': ('first_value', 'MergeState'), 'mannWhitneyUTestMergeState': ('mannWhitneyUTest', 'MergeState'), 'quantilesTDigestWeightedMergeState': ('quantilesTDigestWeighted', 'MergeState'), 'groupBitmapMergeState': ('groupBitmap', 'MergeState'), 'sumMapMergeState': ('sumMap', 'MergeState'), 'groupBitmapOrMergeState': ('groupBitmapOr', 'MergeState'), 'rankCorrMergeState': ('rankCorr', 'MergeState'), 'countMergeState': ('count', 'MergeState'), 'quantileTimingWeightedMergeState': ('quantileTimingWeighted', 'MergeState'), 'uniqExactMergeState': ('uniqExact', 'MergeState'), 'stddevSampMergeState': ('stddevSamp', 'MergeState'), 'windowFunnelMergeState': ('windowFunnel', 'MergeState'), 'quantilesTDigestMergeState': ('quantilesTDigest', 'MergeState'), 'theilsUMergeState': ('theilsU', 'MergeState'), 'groupBitAndMergeState': ('groupBitAnd', 'MergeState'), 'groupBitOrMergeState': ('groupBitOr', 'MergeState'), 'groupBitmapAndMergeState': ('groupBitmapAnd', 'MergeState'), 'welchTTestMergeState': ('welchTTest', 'MergeState'), 'entropyMergeState': ('entropy', 'MergeState'), 'argMinMergeState': ('argMin', 'MergeState'), 'anyMergeState': ('any', 'MergeState'), 'retentionMergeState': ('retention', 'MergeState'), 'sequenceNextNodeMergeState': ('sequenceNextNode', 'MergeState'), 'corrMergeState': ('corr', 'MergeState'), 'uniqUpToMergeState': ('uniqUpTo', 'MergeState'), 'quantileMergeState': ('quantile', 'MergeState'), 'groupArrayMovingSumMergeState': ('groupArrayMovingSum', 'MergeState'), 'varSampMergeState': ('varSamp', 'MergeState'), 'stochasticLinearRegressionMergeState': ('stochasticLinearRegression', 'MergeState'), 'sequenceCountMergeState': ('sequenceCount', 'MergeState'), 'uniqCombined64MergeState': ('uniqCombined64', 'MergeState'), 'quantileTimingMergeState': ('quantileTiming', 'MergeState'), 'quantilesExactWeightedMergeState': ('quantilesExactWeighted', 'MergeState'), 'anyHeavyMergeState': ('anyHeavy', 'MergeState'), 'quantileTDigestMergeState': ('quantileTDigest', 'MergeState'), 'kolmogorovSmirnovTestMergeState': ('kolmogorovSmirnovTest', 'MergeState'), 'uniqThetaMergeState': ('uniqTheta', 'MergeState'), 'histogramMergeState': ('histogram', 'MergeState'), 'quantileTDigestWeightedMergeState': ('quantileTDigestWeighted', 'MergeState'), 'covarPopMergeState': ('covarPop', 'MergeState'), 'quantileExactInclusiveMergeState': ('quantileExactInclusive', 'MergeState'), 'boundingRatioMergeState': ('boundingRatio', 'MergeState'), 'quantileExactMergeState': ('quantileExact', 'MergeState'), 'varPopMergeState': ('varPop', 'MergeState'), 'sumKahanMergeState': ('sumKahan', 'MergeState'), 'minMapMergeState': ('minMap', 'MergeState'), 'meanZTestMergeState': ('meanZTest', 'MergeState'), 'topKWeightedMergeState': ('topKWeighted', 'MergeState'), 'uniqMergeState': ('uniq', 'MergeState'), 'largestTriangleThreeBucketsMergeState': ('largestTriangleThreeBuckets', 'MergeState'), 'quantileExactHighMergeState': ('quantileExactHigh', 'MergeState'), 'kurtPopMergeState': ('kurtPop', 'MergeState'), 'quantilesInterpolatedWeightedMergeState': ('quantilesInterpolatedWeighted', 'MergeState'), 'quantileBFloat16MergeState': ('quantileBFloat16', 'MergeState'), 'approx_top_sumMergeState': ('approx_top_sum', 'MergeState'), 'sumMergeState': ('sum', 'MergeState'), 'topKMergeState': ('topK', 'MergeState'), 'skewSampMergeState': ('skewSamp', 'MergeState'), 'groupArrayInsertAtMergeState': ('groupArrayInsertAt', 'MergeState'), 'quantilesDeterministicMergeState': ('quantilesDeterministic', 'MergeState'), 'sumCountMergeState': ('sumCount', 'MergeState'), 'sumWithOverflowMergeState': ('sumWithOverflow', 'MergeState'), 'avgMergeState': ('avg', 'MergeState'), 'skewPopMergeState': ('skewPop', 'MergeState'), 'cramersVMergeState': ('cramersV', 'MergeState'), 'groupArrayMovingAvgMergeState': ('groupArrayMovingAvg', 'MergeState'), 'exponentialTimeDecayedAvgMergeState': ('exponentialTimeDecayedAvg', 'MergeState'), 'quantileDeterministicMergeState': ('quantileDeterministic', 'MergeState'), 'medianMergeState': ('median', 'MergeState'), 'groupUniqArrayMergeState': ('groupUniqArray', 'MergeState'), 'covarSampMergeState': ('covarSamp', 'MergeState'), 'argMaxMergeState': ('argMax', 'MergeState'), 'groupBitXorMergeState': ('groupBitXor', 'MergeState'), 'deltaSumTimestampMergeState': ('deltaSumTimestamp', 'MergeState'), 'groupArraySampleMergeState': ('groupArraySample', 'MergeState'), 'quantilesGKMergeState': ('quantilesGK', 'MergeState'), 'quantileExactWeightedMergeState': ('quantileExactWeighted', 'MergeState'), 'quantileGKMergeState': ('quantileGK', 'MergeState'), 'quantilesBFloat16WeightedMergeState': ('quantilesBFloat16Weighted', 'MergeState'), 'cramersVBiasCorrectedMergeState': ('cramersVBiasCorrected', 'MergeState'), 'maxMapMergeState': ('maxMap', 'MergeState'), 'sequenceMatchMergeState': ('sequenceMatch', 'MergeState'), 'quantileBFloat16WeightedMergeState': ('quantileBFloat16Weighted', 'MergeState'), 'avgWeightedMergeState': ('avgWeighted', 'MergeState'), 'quantileInterpolatedWeightedMergeState': ('quantileInterpolatedWeighted', 'MergeState'), 'categoricalInformationValueMergeState': ('categoricalInformationValue', 'MergeState'), 'studentTTestMergeState': ('studentTTest', 'MergeState'), 'minMergeState': ('min', 'MergeState'), 'maxMergeState': ('max', 'MergeState'), 'quantilesMergeState': ('quantiles', 'MergeState'), 'groupConcatMergeState': ('groupConcat', 'MergeState'), 'groupArrayLastMergeState': ('groupArrayLast', 'MergeState'), 'groupBitmapXorMergeState': ('groupBitmapXor', 'MergeState'), 'kurtSampMergeState': ('kurtSamp', 'MergeState'), 'simpleLinearRegressionOrDefault': ('simpleLinearRegression', 'OrDefault'), 'quantilesTimingWeightedOrDefault': ('quantilesTimingWeighted', 'OrDefault'), 'intervalLengthSumOrDefault': ('intervalLengthSum', 'OrDefault'), 'quantilesBFloat16OrDefault': ('quantilesBFloat16', 'OrDefault'), 'deltaSumOrDefault': ('deltaSum', 'OrDefault'), 'maxIntersectionsOrDefault': ('maxIntersections', 'OrDefault'), 'quantilesExactLowOrDefault': ('quantilesExactLow', 'OrDefault'), 'contingencyOrDefault': ('contingency', 'OrDefault'), 'anyLastOrDefault': ('anyLast', 'OrDefault'), 'last_valueOrDefault': ('last_value', 'OrDefault'), 'sparkBarOrDefault': ('sparkBar', 'OrDefault'), 'groupArrayOrDefault': ('groupArray', 'OrDefault'), 'stddevPopOrDefault': ('stddevPop', 'OrDefault'), 'quantilesTimingOrDefault': ('quantilesTiming', 'OrDefault'), 'uniqHLL12OrDefault': ('uniqHLL12', 'OrDefault'), 'quantilesExactHighOrDefault': ('quantilesExactHigh', 'OrDefault'), 'uniqCombinedOrDefault': ('uniqCombined', 'OrDefault'), 'quantilesExactExclusiveOrDefault': ('quantilesExactExclusive', 'OrDefault'), 'quantilesExactOrDefault': ('quantilesExact', 'OrDefault'), 'exponentialMovingAverageOrDefault': ('exponentialMovingAverage', 'OrDefault'), 'stochasticLogisticRegressionOrDefault': ('stochasticLogisticRegression', 'OrDefault'), 'quantileExactLowOrDefault': ('quantileExactLow', 'OrDefault'), 'maxIntersectionsPositionOrDefault': ('maxIntersectionsPosition', 'OrDefault'), 'first_valueOrDefault': ('first_value', 'OrDefault'), 'mannWhitneyUTestOrDefault': ('mannWhitneyUTest', 'OrDefault'), 'quantilesTDigestWeightedOrDefault': ('quantilesTDigestWeighted', 'OrDefault'), 'groupBitmapOrDefault': ('groupBitmap', 'OrDefault'), 'sumMapOrDefault': ('sumMap', 'OrDefault'), 'groupBitmapOrOrDefault': ('groupBitmapOr', 'OrDefault'), 'rankCorrOrDefault': ('rankCorr', 'OrDefault'), 'countOrDefault': ('count', 'OrDefault'), 'quantileTimingWeightedOrDefault': ('quantileTimingWeighted', 'OrDefault'), 'uniqExactOrDefault': ('uniqExact', 'OrDefault'), 'stddevSampOrDefault': ('stddevSamp', 'OrDefault'), 'windowFunnelOrDefault': ('windowFunnel', 'OrDefault'), 'quantilesTDigestOrDefault': ('quantilesTDigest', 'OrDefault'), 'theilsUOrDefault': ('theilsU', 'OrDefault'), 'groupBitAndOrDefault': ('groupBitAnd', 'OrDefault'), 'groupBitOrOrDefault': ('groupBitOr', 'OrDefault'), 'groupBitmapAndOrDefault': ('groupBitmapAnd', 'OrDefault'), 'welchTTestOrDefault': ('welchTTest', 'OrDefault'), 'entropyOrDefault': ('entropy', 'OrDefault'), 'argMinOrDefault': ('argMin', 'OrDefault'), 'anyOrDefault': ('any', 'OrDefault'), 'retentionOrDefault': ('retention', 'OrDefault'), 'sequenceNextNodeOrDefault': ('sequenceNextNode', 'OrDefault'), 'corrOrDefault': ('corr', 'OrDefault'), 'uniqUpToOrDefault': ('uniqUpTo', 'OrDefault'), 'quantileOrDefault': ('quantile', 'OrDefault'), 'groupArrayMovingSumOrDefault': ('groupArrayMovingSum', 'OrDefault'), 'varSampOrDefault': ('varSamp', 'OrDefault'), 'stochasticLinearRegressionOrDefault': ('stochasticLinearRegression', 'OrDefault'), 'sequenceCountOrDefault': ('sequenceCount', 'OrDefault'), 'uniqCombined64OrDefault': ('uniqCombined64', 'OrDefault'), 'quantileTimingOrDefault': ('quantileTiming', 'OrDefault'), 'quantilesExactWeightedOrDefault': ('quantilesExactWeighted', 'OrDefault'), 'anyHeavyOrDefault': ('anyHeavy', 'OrDefault'), 'quantileTDigestOrDefault': ('quantileTDigest', 'OrDefault'), 'kolmogorovSmirnovTestOrDefault': ('kolmogorovSmirnovTest', 'OrDefault'), 'uniqThetaOrDefault': ('uniqTheta', 'OrDefault'), 'histogramOrDefault': ('histogram', 'OrDefault'), 'quantileTDigestWeightedOrDefault': ('quantileTDigestWeighted', 'OrDefault'), 'covarPopOrDefault': ('covarPop', 'OrDefault'), 'quantileExactInclusiveOrDefault': ('quantileExactInclusive', 'OrDefault'), 'boundingRatioOrDefault': ('boundingRatio', 'OrDefault'), 'quantileExactOrDefault': ('quantileExact', 'OrDefault'), 'varPopOrDefault': ('varPop', 'OrDefault'), 'sumKahanOrDefault': ('sumKahan', 'OrDefault'), 'minMapOrDefault': ('minMap', 'OrDefault'), 'meanZTestOrDefault': ('meanZTest', 'OrDefault'), 'topKWeightedOrDefault': ('topKWeighted', 'OrDefault'), 'uniqOrDefault': ('uniq', 'OrDefault'), 'largestTriangleThreeBucketsOrDefault': ('largestTriangleThreeBuckets', 'OrDefault'), 'quantileExactHighOrDefault': ('quantileExactHigh', 'OrDefault'), 'kurtPopOrDefault': ('kurtPop', 'OrDefault'), 'quantilesInterpolatedWeightedOrDefault': ('quantilesInterpolatedWeighted', 'OrDefault'), 'quantileBFloat16OrDefault': ('quantileBFloat16', 'OrDefault'), 'approx_top_sumOrDefault': ('approx_top_sum', 'OrDefault'), 'sumOrDefault': ('sum', 'OrDefault'), 'topKOrDefault': ('topK', 'OrDefault'), 'skewSampOrDefault': ('skewSamp', 'OrDefault'), 'groupArrayInsertAtOrDefault': ('groupArrayInsertAt', 'OrDefault'), 'quantilesDeterministicOrDefault': ('quantilesDeterministic', 'OrDefault'), 'sumCountOrDefault': ('sumCount', 'OrDefault'), 'sumWithOverflowOrDefault': ('sumWithOverflow', 'OrDefault'), 'avgOrDefault': ('avg', 'OrDefault'), 'skewPopOrDefault': ('skewPop', 'OrDefault'), 'cramersVOrDefault': ('cramersV', 'OrDefault'), 'groupArrayMovingAvgOrDefault': ('groupArrayMovingAvg', 'OrDefault'), 'exponentialTimeDecayedAvgOrDefault': ('exponentialTimeDecayedAvg', 'OrDefault'), 'quantileDeterministicOrDefault': ('quantileDeterministic', 'OrDefault'), 'medianOrDefault': ('median', 'OrDefault'), 'groupUniqArrayOrDefault': ('groupUniqArray', 'OrDefault'), 'covarSampOrDefault': ('covarSamp', 'OrDefault'), 'argMaxOrDefault': ('argMax', 'OrDefault'), 'groupBitXorOrDefault': ('groupBitXor', 'OrDefault'), 'deltaSumTimestampOrDefault': ('deltaSumTimestamp', 'OrDefault'), 'groupArraySampleOrDefault': ('groupArraySample', 'OrDefault'), 'quantilesGKOrDefault': ('quantilesGK', 'OrDefault'), 'quantileExactWeightedOrDefault': ('quantileExactWeighted', 'OrDefault'), 'quantileGKOrDefault': ('quantileGK', 'OrDefault'), 'quantilesBFloat16WeightedOrDefault': ('quantilesBFloat16Weighted', 'OrDefault'), 'cramersVBiasCorrectedOrDefault': ('cramersVBiasCorrected', 'OrDefault'), 'maxMapOrDefault': ('maxMap', 'OrDefault'), 'sequenceMatchOrDefault': ('sequenceMatch', 'OrDefault'), 'quantileBFloat16WeightedOrDefault': ('quantileBFloat16Weighted', 'OrDefault'), 'avgWeightedOrDefault': ('avgWeighted', 'OrDefault'), 'quantileInterpolatedWeightedOrDefault': ('quantileInterpolatedWeighted', 'OrDefault'), 'categoricalInformationValueOrDefault': ('categoricalInformationValue', 'OrDefault'), 'studentTTestOrDefault': ('studentTTest', 'OrDefault'), 'minOrDefault': ('min', 'OrDefault'), 'maxOrDefault': ('max', 'OrDefault'), 'quantilesOrDefault': ('quantiles', 'OrDefault'), 'groupConcatOrDefault': ('groupConcat', 'OrDefault'), 'groupArrayLastOrDefault': ('groupArrayLast', 'OrDefault'), 'groupBitmapXorOrDefault': ('groupBitmapXor', 'OrDefault'), 'kurtSampOrDefault': ('kurtSamp', 'OrDefault'), 'simpleLinearRegressionDistinct': ('simpleLinearRegression', 'Distinct'), 'quantilesTimingWeightedDistinct': ('quantilesTimingWeighted', 'Distinct'), 'intervalLengthSumDistinct': ('intervalLengthSum', 'Distinct'), 'quantilesBFloat16Distinct': ('quantilesBFloat16', 'Distinct'), 'deltaSumDistinct': ('deltaSum', 'Distinct'), 'maxIntersectionsDistinct': ('maxIntersections', 'Distinct'), 'quantilesExactLowDistinct': ('quantilesExactLow', 'Distinct'), 'contingencyDistinct': ('contingency', 'Distinct'), 'anyLastDistinct': ('anyLast', 'Distinct'), 'last_valueDistinct': ('last_value', 'Distinct'), 'sparkBarDistinct': ('sparkBar', 'Distinct'), 'groupArrayDistinct': ('groupArray', 'Distinct'), 'stddevPopDistinct': ('stddevPop', 'Distinct'), 'quantilesTimingDistinct': ('quantilesTiming', 'Distinct'), 'uniqHLL12Distinct': ('uniqHLL12', 'Distinct'), 'quantilesExactHighDistinct': ('quantilesExactHigh', 'Distinct'), 'uniqCombinedDistinct': ('uniqCombined', 'Distinct'), 'quantilesExactExclusiveDistinct': ('quantilesExactExclusive', 'Distinct'), 'quantilesExactDistinct': ('quantilesExact', 'Distinct'), 'exponentialMovingAverageDistinct': ('exponentialMovingAverage', 'Distinct'), 'stochasticLogisticRegressionDistinct': ('stochasticLogisticRegression', 'Distinct'), 'quantileExactLowDistinct': ('quantileExactLow', 'Distinct'), 'maxIntersectionsPositionDistinct': ('maxIntersectionsPosition', 'Distinct'), 'first_valueDistinct': ('first_value', 'Distinct'), 'mannWhitneyUTestDistinct': ('mannWhitneyUTest', 'Distinct'), 'quantilesTDigestWeightedDistinct': ('quantilesTDigestWeighted', 'Distinct'), 'groupBitmapDistinct': ('groupBitmap', 'Distinct'), 'sumMapDistinct': ('sumMap', 'Distinct'), 'groupBitmapOrDistinct': ('groupBitmapOr', 'Distinct'), 'rankCorrDistinct': ('rankCorr', 'Distinct'), 'countDistinct': ('count', 'Distinct'), 'quantileTimingWeightedDistinct': ('quantileTimingWeighted', 'Distinct'), 'uniqExactDistinct': ('uniqExact', 'Distinct'), 'stddevSampDistinct': ('stddevSamp', 'Distinct'), 'windowFunnelDistinct': ('windowFunnel', 'Distinct'), 'quantilesTDigestDistinct': ('quantilesTDigest', 'Distinct'), 'theilsUDistinct': ('theilsU', 'Distinct'), 'groupBitAndDistinct': ('groupBitAnd', 'Distinct'), 'groupBitOrDistinct': ('groupBitOr', 'Distinct'), 'groupBitmapAndDistinct': ('groupBitmapAnd', 'Distinct'), 'welchTTestDistinct': ('welchTTest', 'Distinct'), 'entropyDistinct': ('entropy', 'Distinct'), 'argMinDistinct': ('argMin', 'Distinct'), 'anyDistinct': ('any', 'Distinct'), 'retentionDistinct': ('retention', 'Distinct'), 'sequenceNextNodeDistinct': ('sequenceNextNode', 'Distinct'), 'corrDistinct': ('corr', 'Distinct'), 'uniqUpToDistinct': ('uniqUpTo', 'Distinct'), 'quantileDistinct': ('quantile', 'Distinct'), 'groupArrayMovingSumDistinct': ('groupArrayMovingSum', 'Distinct'), 'varSampDistinct': ('varSamp', 'Distinct'), 'stochasticLinearRegressionDistinct': ('stochasticLinearRegression', 'Distinct'), 'sequenceCountDistinct': ('sequenceCount', 'Distinct'), 'uniqCombined64Distinct': ('uniqCombined64', 'Distinct'), 'quantileTimingDistinct': ('quantileTiming', 'Distinct'), 'quantilesExactWeightedDistinct': ('quantilesExactWeighted', 'Distinct'), 'anyHeavyDistinct': ('anyHeavy', 'Distinct'), 'quantileTDigestDistinct': ('quantileTDigest', 'Distinct'), 'kolmogorovSmirnovTestDistinct': ('kolmogorovSmirnovTest', 'Distinct'), 'uniqThetaDistinct': ('uniqTheta', 'Distinct'), 'histogramDistinct': ('histogram', 'Distinct'), 'quantileTDigestWeightedDistinct': ('quantileTDigestWeighted', 'Distinct'), 'covarPopDistinct': ('covarPop', 'Distinct'), 'quantileExactInclusiveDistinct': ('quantileExactInclusive', 'Distinct'), 'boundingRatioDistinct': ('boundingRatio', 'Distinct'), 'quantileExactDistinct': ('quantileExact', 'Distinct'), 'varPopDistinct': ('varPop', 'Distinct'), 'sumKahanDistinct': ('sumKahan', 'Distinct'), 'minMapDistinct': ('minMap', 'Distinct'), 'meanZTestDistinct': ('meanZTest', 'Distinct'), 'topKWeightedDistinct': ('topKWeighted', 'Distinct'), 'uniqDistinct': ('uniq', 'Distinct'), 'largestTriangleThreeBucketsDistinct': ('largestTriangleThreeBuckets', 'Distinct'), 'quantileExactHighDistinct': ('quantileExactHigh', 'Distinct'), 'kurtPopDistinct': ('kurtPop', 'Distinct'), 'quantilesInterpolatedWeightedDistinct': ('quantilesInterpolatedWeighted', 'Distinct'), 'quantileBFloat16Distinct': ('quantileBFloat16', 'Distinct'), 'approx_top_sumDistinct': ('approx_top_sum', 'Distinct'), 'sumDistinct': ('sum', 'Distinct'), 'topKDistinct': ('topK', 'Distinct'), 'skewSampDistinct': ('skewSamp', 'Distinct'), 'groupArrayInsertAtDistinct': ('groupArrayInsertAt', 'Distinct'), 'quantilesDeterministicDistinct': ('quantilesDeterministic', 'Distinct'), 'sumCountDistinct': ('sumCount', 'Distinct'), 'sumWithOverflowDistinct': ('sumWithOverflow', 'Distinct'), 'avgDistinct': ('avg', 'Distinct'), 'skewPopDistinct': ('skewPop', 'Distinct'), 'cramersVDistinct': ('cramersV', 'Distinct'), 'groupArrayMovingAvgDistinct': ('groupArrayMovingAvg', 'Distinct'), 'exponentialTimeDecayedAvgDistinct': ('exponentialTimeDecayedAvg', 'Distinct'), 'quantileDeterministicDistinct': ('quantileDeterministic', 'Distinct'), 'medianDistinct': ('median', 'Distinct'), 'groupUniqArrayDistinct': ('groupUniqArray', 'Distinct'), 'covarSampDistinct': ('covarSamp', 'Distinct'), 'argMaxDistinct': ('argMax', 'Distinct'), 'groupBitXorDistinct': ('groupBitXor', 'Distinct'), 'deltaSumTimestampDistinct': ('deltaSumTimestamp', 'Distinct'), 'groupArraySampleDistinct': ('groupArraySample', 'Distinct'), 'quantilesGKDistinct': ('quantilesGK', 'Distinct'), 'quantileExactWeightedDistinct': ('quantileExactWeighted', 'Distinct'), 'quantileGKDistinct': ('quantileGK', 'Distinct'), 'quantilesBFloat16WeightedDistinct': ('quantilesBFloat16Weighted', 'Distinct'), 'cramersVBiasCorrectedDistinct': ('cramersVBiasCorrected', 'Distinct'), 'maxMapDistinct': ('maxMap', 'Distinct'), 'sequenceMatchDistinct': ('sequenceMatch', 'Distinct'), 'quantileBFloat16WeightedDistinct': ('quantileBFloat16Weighted', 'Distinct'), 'avgWeightedDistinct': ('avgWeighted', 'Distinct'), 'quantileInterpolatedWeightedDistinct': ('quantileInterpolatedWeighted', 'Distinct'), 'categoricalInformationValueDistinct': ('categoricalInformationValue', 'Distinct'), 'studentTTestDistinct': ('studentTTest', 'Distinct'), 'minDistinct': ('min', 'Distinct'), 'maxDistinct': ('max', 'Distinct'), 'quantilesDistinct': ('quantiles', 'Distinct'), 'groupConcatDistinct': ('groupConcat', 'Distinct'), 'groupArrayLastDistinct': ('groupArrayLast', 'Distinct'), 'groupBitmapXorDistinct': ('groupBitmapXor', 'Distinct'), 'kurtSampDistinct': ('kurtSamp', 'Distinct'), 'simpleLinearRegressionResample': ('simpleLinearRegression', 'Resample'), 'quantilesTimingWeightedResample': ('quantilesTimingWeighted', 'Resample'), 'intervalLengthSumResample': ('intervalLengthSum', 'Resample'), 'quantilesBFloat16Resample': ('quantilesBFloat16', 'Resample'), 'deltaSumResample': ('deltaSum', 'Resample'), 'maxIntersectionsResample': ('maxIntersections', 'Resample'), 'quantilesExactLowResample': ('quantilesExactLow', 'Resample'), 'contingencyResample': ('contingency', 'Resample'), 'anyLastResample': ('anyLast', 'Resample'), 'last_valueResample': ('last_value', 'Resample'), 'sparkBarResample': ('sparkBar', 'Resample'), 'groupArrayResample': ('groupArray', 'Resample'), 'stddevPopResample': ('stddevPop', 'Resample'), 'quantilesTimingResample': ('quantilesTiming', 'Resample'), 'uniqHLL12Resample': ('uniqHLL12', 'Resample'), 'quantilesExactHighResample': ('quantilesExactHigh', 'Resample'), 'uniqCombinedResample': ('uniqCombined', 'Resample'), 'quantilesExactExclusiveResample': ('quantilesExactExclusive', 'Resample'), 'quantilesExactResample': ('quantilesExact', 'Resample'), 'exponentialMovingAverageResample': ('exponentialMovingAverage', 'Resample'), 'stochasticLogisticRegressionResample': ('stochasticLogisticRegression', 'Resample'), 'quantileExactLowResample': ('quantileExactLow', 'Resample'), 'maxIntersectionsPositionResample': ('maxIntersectionsPosition', 'Resample'), 'first_valueResample': ('first_value', 'Resample'), 'mannWhitneyUTestResample': ('mannWhitneyUTest', 'Resample'), 'quantilesTDigestWeightedResample': ('quantilesTDigestWeighted', 'Resample'), 'groupBitmapResample': ('groupBitmap', 'Resample'), 'sumMapResample': ('sumMap', 'Resample'), 'groupBitmapOrResample': ('groupBitmapOr', 'Resample'), 'rankCorrResample': ('rankCorr', 'Resample'), 'countResample': ('count', 'Resample'), 'quantileTimingWeightedResample': ('quantileTimingWeighted', 'Resample'), 'uniqExactResample': ('uniqExact', 'Resample'), 'stddevSampResample': ('stddevSamp', 'Resample'), 'windowFunnelResample': ('windowFunnel', 'Resample'), 'quantilesTDigestResample': ('quantilesTDigest', 'Resample'), 'theilsUResample': ('theilsU', 'Resample'), 'groupBitAndResample': ('groupBitAnd', 'Resample'), 'groupBitOrResample': ('groupBitOr', 'Resample'), 'groupBitmapAndResample': ('groupBitmapAnd', 'Resample'), 'welchTTestResample': ('welchTTest', 'Resample'), 'entropyResample': ('entropy', 'Resample'), 'argMinResample': ('argMin', 'Resample'), 'anyResample': ('any', 'Resample'), 'retentionResample': ('retention', 'Resample'), 'sequenceNextNodeResample': ('sequenceNextNode', 'Resample'), 'corrResample': ('corr', 'Resample'), 'uniqUpToResample': ('uniqUpTo', 'Resample'), 'quantileResample': ('quantile', 'Resample'), 'groupArrayMovingSumResample': ('groupArrayMovingSum', 'Resample'), 'varSampResample': ('varSamp', 'Resample'), 'stochasticLinearRegressionResample': ('stochasticLinearRegression', 'Resample'), 'sequenceCountResample': ('sequenceCount', 'Resample'), 'uniqCombined64Resample': ('uniqCombined64', 'Resample'), 'quantileTimingResample': ('quantileTiming', 'Resample'), 'quantilesExactWeightedResample': ('quantilesExactWeighted', 'Resample'), 'anyHeavyResample': ('anyHeavy', 'Resample'), 'quantileTDigestResample': ('quantileTDigest', 'Resample'), 'kolmogorovSmirnovTestResample': ('kolmogorovSmirnovTest', 'Resample'), 'uniqThetaResample': ('uniqTheta', 'Resample'), 'histogramResample': ('histogram', 'Resample'), 'quantileTDigestWeightedResample': ('quantileTDigestWeighted', 'Resample'), 'covarPopResample': ('covarPop', 'Resample'), 'quantileExactInclusiveResample': ('quantileExactInclusive', 'Resample'), 'boundingRatioResample': ('boundingRatio', 'Resample'), 'quantileExactResample': ('quantileExact', 'Resample'), 'varPopResample': ('varPop', 'Resample'), 'sumKahanResample': ('sumKahan', 'Resample'), 'minMapResample': ('minMap', 'Resample'), 'meanZTestResample': ('meanZTest', 'Resample'), 'topKWeightedResample': ('topKWeighted', 'Resample'), 'uniqResample': ('uniq', 'Resample'), 'largestTriangleThreeBucketsResample': ('largestTriangleThreeBuckets', 'Resample'), 'quantileExactHighResample': ('quantileExactHigh', 'Resample'), 'kurtPopResample': ('kurtPop', 'Resample'), 'quantilesInterpolatedWeightedResample': ('quantilesInterpolatedWeighted', 'Resample'), 'quantileBFloat16Resample': ('quantileBFloat16', 'Resample'), 'approx_top_sumResample': ('approx_top_sum', 'Resample'), 'sumResample': ('sum', 'Resample'), 'topKResample': ('topK', 'Resample'), 'skewSampResample': ('skewSamp', 'Resample'), 'groupArrayInsertAtResample': ('groupArrayInsertAt', 'Resample'), 'quantilesDeterministicResample': ('quantilesDeterministic', 'Resample'), 'sumCountResample': ('sumCount', 'Resample'), 'sumWithOverflowResample': ('sumWithOverflow', 'Resample'), 'avgResample': ('avg', 'Resample'), 'skewPopResample': ('skewPop', 'Resample'), 'cramersVResample': ('cramersV', 'Resample'), 'groupArrayMovingAvgResample': ('groupArrayMovingAvg', 'Resample'), 'exponentialTimeDecayedAvgResample': ('exponentialTimeDecayedAvg', 'Resample'), 'quantileDeterministicResample': ('quantileDeterministic', 'Resample'), 'medianResample': ('median', 'Resample'), 'groupUniqArrayResample': ('groupUniqArray', 'Resample'), 'covarSampResample': ('covarSamp', 'Resample'), 'argMaxResample': ('argMax', 'Resample'), 'groupBitXorResample': ('groupBitXor', 'Resample'), 'deltaSumTimestampResample': ('deltaSumTimestamp', 'Resample'), 'groupArraySampleResample': ('groupArraySample', 'Resample'), 'quantilesGKResample': ('quantilesGK', 'Resample'), 'quantileExactWeightedResample': ('quantileExactWeighted', 'Resample'), 'quantileGKResample': ('quantileGK', 'Resample'), 'quantilesBFloat16WeightedResample': ('quantilesBFloat16Weighted', 'Resample'), 'cramersVBiasCorrectedResample': ('cramersVBiasCorrected', 'Resample'), 'maxMapResample': ('maxMap', 'Resample'), 'sequenceMatchResample': ('sequenceMatch', 'Resample'), 'quantileBFloat16WeightedResample': ('quantileBFloat16Weighted', 'Resample'), 'avgWeightedResample': ('avgWeighted', 'Resample'), 'quantileInterpolatedWeightedResample': ('quantileInterpolatedWeighted', 'Resample'), 'categoricalInformationValueResample': ('categoricalInformationValue', 'Resample'), 'studentTTestResample': ('studentTTest', 'Resample'), 'minResample': ('min', 'Resample'), 'maxResample': ('max', 'Resample'), 'quantilesResample': ('quantiles', 'Resample'), 'groupConcatResample': ('groupConcat', 'Resample'), 'groupArrayLastResample': ('groupArrayLast', 'Resample'), 'groupBitmapXorResample': ('groupBitmapXor', 'Resample'), 'kurtSampResample': ('kurtSamp', 'Resample'), 'simpleLinearRegressionArrayIf': ('simpleLinearRegression', 'ArrayIf'), 'quantilesTimingWeightedArrayIf': ('quantilesTimingWeighted', 'ArrayIf'), 'intervalLengthSumArrayIf': ('intervalLengthSum', 'ArrayIf'), 'quantilesBFloat16ArrayIf': ('quantilesBFloat16', 'ArrayIf'), 'deltaSumArrayIf': ('deltaSum', 'ArrayIf'), 'maxIntersectionsArrayIf': ('maxIntersections', 'ArrayIf'), 'quantilesExactLowArrayIf': ('quantilesExactLow', 'ArrayIf'), 'contingencyArrayIf': ('contingency', 'ArrayIf'), 'anyLastArrayIf': ('anyLast', 'ArrayIf'), 'last_valueArrayIf': ('last_value', 'ArrayIf'), 'sparkBarArrayIf': ('sparkBar', 'ArrayIf'), 'groupArrayArrayIf': ('groupArray', 'ArrayIf'), 'stddevPopArrayIf': ('stddevPop', 'ArrayIf'), 'quantilesTimingArrayIf': ('quantilesTiming', 'ArrayIf'), 'uniqHLL12ArrayIf': ('uniqHLL12', 'ArrayIf'), 'quantilesExactHighArrayIf': ('quantilesExactHigh', 'ArrayIf'), 'uniqCombinedArrayIf': ('uniqCombined', 'ArrayIf'), 'quantilesExactExclusiveArrayIf': ('quantilesExactExclusive', 'ArrayIf'), 'quantilesExactArrayIf': ('quantilesExact', 'ArrayIf'), 'exponentialMovingAverageArrayIf': ('exponentialMovingAverage', 'ArrayIf'), 'stochasticLogisticRegressionArrayIf': ('stochasticLogisticRegression', 'ArrayIf'), 'quantileExactLowArrayIf': ('quantileExactLow', 'ArrayIf'), 'maxIntersectionsPositionArrayIf': ('maxIntersectionsPosition', 'ArrayIf'), 'first_valueArrayIf': ('first_value', 'ArrayIf'), 'mannWhitneyUTestArrayIf': ('mannWhitneyUTest', 'ArrayIf'), 'quantilesTDigestWeightedArrayIf': ('quantilesTDigestWeighted', 'ArrayIf'), 'groupBitmapArrayIf': ('groupBitmap', 'ArrayIf'), 'sumMapArrayIf': ('sumMap', 'ArrayIf'), 'groupBitmapOrArrayIf': ('groupBitmapOr', 'ArrayIf'), 'rankCorrArrayIf': ('rankCorr', 'ArrayIf'), 'countArrayIf': ('count', 'ArrayIf'), 'quantileTimingWeightedArrayIf': ('quantileTimingWeighted', 'ArrayIf'), 'uniqExactArrayIf': ('uniqExact', 'ArrayIf'), 'stddevSampArrayIf': ('stddevSamp', 'ArrayIf'), 'windowFunnelArrayIf': ('windowFunnel', 'ArrayIf'), 'quantilesTDigestArrayIf': ('quantilesTDigest', 'ArrayIf'), 'theilsUArrayIf': ('theilsU', 'ArrayIf'), 'groupBitAndArrayIf': ('groupBitAnd', 'ArrayIf'), 'groupBitOrArrayIf': ('groupBitOr', 'ArrayIf'), 'groupBitmapAndArrayIf': ('groupBitmapAnd', 'ArrayIf'), 'welchTTestArrayIf': ('welchTTest', 'ArrayIf'), 'entropyArrayIf': ('entropy', 'ArrayIf'), 'argMinArrayIf': ('argMin', 'ArrayIf'), 'anyArrayIf': ('any', 'ArrayIf'), 'retentionArrayIf': ('retention', 'ArrayIf'), 'sequenceNextNodeArrayIf': ('sequenceNextNode', 'ArrayIf'), 'corrArrayIf': ('corr', 'ArrayIf'), 'uniqUpToArrayIf': ('uniqUpTo', 'ArrayIf'), 'quantileArrayIf': ('quantile', 'ArrayIf'), 'groupArrayMovingSumArrayIf': ('groupArrayMovingSum', 'ArrayIf'), 'varSampArrayIf': ('varSamp', 'ArrayIf'), 'stochasticLinearRegressionArrayIf': ('stochasticLinearRegression', 'ArrayIf'), 'sequenceCountArrayIf': ('sequenceCount', 'ArrayIf'), 'uniqCombined64ArrayIf': ('uniqCombined64', 'ArrayIf'), 'quantileTimingArrayIf': ('quantileTiming', 'ArrayIf'), 'quantilesExactWeightedArrayIf': ('quantilesExactWeighted', 'ArrayIf'), 'anyHeavyArrayIf': ('anyHeavy', 'ArrayIf'), 'quantileTDigestArrayIf': ('quantileTDigest', 'ArrayIf'), 'kolmogorovSmirnovTestArrayIf': ('kolmogorovSmirnovTest', 'ArrayIf'), 'uniqThetaArrayIf': ('uniqTheta', 'ArrayIf'), 'histogramArrayIf': ('histogram', 'ArrayIf'), 'quantileTDigestWeightedArrayIf': ('quantileTDigestWeighted', 'ArrayIf'), 'covarPopArrayIf': ('covarPop', 'ArrayIf'), 'quantileExactInclusiveArrayIf': ('quantileExactInclusive', 'ArrayIf'), 'boundingRatioArrayIf': ('boundingRatio', 'ArrayIf'), 'quantileExactArrayIf': ('quantileExact', 'ArrayIf'), 'varPopArrayIf': ('varPop', 'ArrayIf'), 'sumKahanArrayIf': ('sumKahan', 'ArrayIf'), 'minMapArrayIf': ('minMap', 'ArrayIf'), 'meanZTestArrayIf': ('meanZTest', 'ArrayIf'), 'topKWeightedArrayIf': ('topKWeighted', 'ArrayIf'), 'uniqArrayIf': ('uniq', 'ArrayIf'), 'largestTriangleThreeBucketsArrayIf': ('largestTriangleThreeBuckets', 'ArrayIf'), 'quantileExactHighArrayIf': ('quantileExactHigh', 'ArrayIf'), 'kurtPopArrayIf': ('kurtPop', 'ArrayIf'), 'quantilesInterpolatedWeightedArrayIf': ('quantilesInterpolatedWeighted', 'ArrayIf'), 'quantileBFloat16ArrayIf': ('quantileBFloat16', 'ArrayIf'), 'approx_top_sumArrayIf': ('approx_top_sum', 'ArrayIf'), 'sumArrayIf': ('sum', 'ArrayIf'), 'topKArrayIf': ('topK', 'ArrayIf'), 'skewSampArrayIf': ('skewSamp', 'ArrayIf'), 'groupArrayInsertAtArrayIf': ('groupArrayInsertAt', 'ArrayIf'), 'quantilesDeterministicArrayIf': ('quantilesDeterministic', 'ArrayIf'), 'sumCountArrayIf': ('sumCount', 'ArrayIf'), 'sumWithOverflowArrayIf': ('sumWithOverflow', 'ArrayIf'), 'avgArrayIf': ('avg', 'ArrayIf'), 'skewPopArrayIf': ('skewPop', 'ArrayIf'), 'cramersVArrayIf': ('cramersV', 'ArrayIf'), 'groupArrayMovingAvgArrayIf': ('groupArrayMovingAvg', 'ArrayIf'), 'exponentialTimeDecayedAvgArrayIf': ('exponentialTimeDecayedAvg', 'ArrayIf'), 'quantileDeterministicArrayIf': ('quantileDeterministic', 'ArrayIf'), 'medianArrayIf': ('median', 'ArrayIf'), 'groupUniqArrayArrayIf': ('groupUniqArray', 'ArrayIf'), 'covarSampArrayIf': ('covarSamp', 'ArrayIf'), 'argMaxArrayIf': ('argMax', 'ArrayIf'), 'groupBitXorArrayIf': ('groupBitXor', 'ArrayIf'), 'deltaSumTimestampArrayIf': ('deltaSumTimestamp', 'ArrayIf'), 'groupArraySampleArrayIf': ('groupArraySample', 'ArrayIf'), 'quantilesGKArrayIf': ('quantilesGK', 'ArrayIf'), 'quantileExactWeightedArrayIf': ('quantileExactWeighted', 'ArrayIf'), 'quantileGKArrayIf': ('quantileGK', 'ArrayIf'), 'quantilesBFloat16WeightedArrayIf': ('quantilesBFloat16Weighted', 'ArrayIf'), 'cramersVBiasCorrectedArrayIf': ('cramersVBiasCorrected', 'ArrayIf'), 'maxMapArrayIf': ('maxMap', 'ArrayIf'), 'sequenceMatchArrayIf': ('sequenceMatch', 'ArrayIf'), 'quantileBFloat16WeightedArrayIf': ('quantileBFloat16Weighted', 'ArrayIf'), 'avgWeightedArrayIf': ('avgWeighted', 'ArrayIf'), 'quantileInterpolatedWeightedArrayIf': ('quantileInterpolatedWeighted', 'ArrayIf'), 'categoricalInformationValueArrayIf': ('categoricalInformationValue', 'ArrayIf'), 'studentTTestArrayIf': ('studentTTest', 'ArrayIf'), 'minArrayIf': ('min', 'ArrayIf'), 'maxArrayIf': ('max', 'ArrayIf'), 'quantilesArrayIf': ('quantiles', 'ArrayIf'), 'groupConcatArrayIf': ('groupConcat', 'ArrayIf'), 'groupArrayLastArrayIf': ('groupArrayLast', 'ArrayIf'), 'groupBitmapXorArrayIf': ('groupBitmapXor', 'ArrayIf'), 'kurtSampArrayIf': ('kurtSamp', 'ArrayIf'), 'simpleLinearRegressionForEach': ('simpleLinearRegression', 'ForEach'), 'quantilesTimingWeightedForEach': ('quantilesTimingWeighted', 'ForEach'), 'intervalLengthSumForEach': ('intervalLengthSum', 'ForEach'), 'quantilesBFloat16ForEach': ('quantilesBFloat16', 'ForEach'), 'deltaSumForEach': ('deltaSum', 'ForEach'), 'maxIntersectionsForEach': ('maxIntersections', 'ForEach'), 'quantilesExactLowForEach': ('quantilesExactLow', 'ForEach'), 'contingencyForEach': ('contingency', 'ForEach'), 'anyLastForEach': ('anyLast', 'ForEach'), 'last_valueForEach': ('last_value', 'ForEach'), 'sparkBarForEach': ('sparkBar', 'ForEach'), 'groupArrayForEach': ('groupArray', 'ForEach'), 'stddevPopForEach': ('stddevPop', 'ForEach'), 'quantilesTimingForEach': ('quantilesTiming', 'ForEach'), 'uniqHLL12ForEach': ('uniqHLL12', 'ForEach'), 'quantilesExactHighForEach': ('quantilesExactHigh', 'ForEach'), 'uniqCombinedForEach': ('uniqCombined', 'ForEach'), 'quantilesExactExclusiveForEach': ('quantilesExactExclusive', 'ForEach'), 'quantilesExactForEach': ('quantilesExact', 'ForEach'), 'exponentialMovingAverageForEach': ('exponentialMovingAverage', 'ForEach'), 'stochasticLogisticRegressionForEach': ('stochasticLogisticRegression', 'ForEach'), 'quantileExactLowForEach': ('quantileExactLow', 'ForEach'), 'maxIntersectionsPositionForEach': ('maxIntersectionsPosition', 'ForEach'), 'first_valueForEach': ('first_value', 'ForEach'), 'mannWhitneyUTestForEach': ('mannWhitneyUTest', 'ForEach'), 'quantilesTDigestWeightedForEach': ('quantilesTDigestWeighted', 'ForEach'), 'groupBitmapForEach': ('groupBitmap', 'ForEach'), 'sumMapForEach': ('sumMap', 'ForEach'), 'groupBitmapOrForEach': ('groupBitmapOr', 'ForEach'), 'rankCorrForEach': ('rankCorr', 'ForEach'), 'countForEach': ('count', 'ForEach'), 'quantileTimingWeightedForEach': ('quantileTimingWeighted', 'ForEach'), 'uniqExactForEach': ('uniqExact', 'ForEach'), 'stddevSampForEach': ('stddevSamp', 'ForEach'), 'windowFunnelForEach': ('windowFunnel', 'ForEach'), 'quantilesTDigestForEach': ('quantilesTDigest', 'ForEach'), 'theilsUForEach': ('theilsU', 'ForEach'), 'groupBitAndForEach': ('groupBitAnd', 'ForEach'), 'groupBitOrForEach': ('groupBitOr', 'ForEach'), 'groupBitmapAndForEach': ('groupBitmapAnd', 'ForEach'), 'welchTTestForEach': ('welchTTest', 'ForEach'), 'entropyForEach': ('entropy', 'ForEach'), 'argMinForEach': ('argMin', 'ForEach'), 'anyForEach': ('any', 'ForEach'), 'retentionForEach': ('retention', 'ForEach'), 'sequenceNextNodeForEach': ('sequenceNextNode', 'ForEach'), 'corrForEach': ('corr', 'ForEach'), 'uniqUpToForEach': ('uniqUpTo', 'ForEach'), 'quantileForEach': ('quantile', 'ForEach'), 'groupArrayMovingSumForEach': ('groupArrayMovingSum', 'ForEach'), 'varSampForEach': ('varSamp', 'ForEach'), 'stochasticLinearRegressionForEach': ('stochasticLinearRegression', 'ForEach'), 'sequenceCountForEach': ('sequenceCount', 'ForEach'), 'uniqCombined64ForEach': ('uniqCombined64', 'ForEach'), 'quantileTimingForEach': ('quantileTiming', 'ForEach'), 'quantilesExactWeightedForEach': ('quantilesExactWeighted', 'ForEach'), 'anyHeavyForEach': ('anyHeavy', 'ForEach'), 'quantileTDigestForEach': ('quantileTDigest', 'ForEach'), 'kolmogorovSmirnovTestForEach': ('kolmogorovSmirnovTest', 'ForEach'), 'uniqThetaForEach': ('uniqTheta', 'ForEach'), 'histogramForEach': ('histogram', 'ForEach'), 'quantileTDigestWeightedForEach': ('quantileTDigestWeighted', 'ForEach'), 'covarPopForEach': ('covarPop', 'ForEach'), 'quantileExactInclusiveForEach': ('quantileExactInclusive', 'ForEach'), 'boundingRatioForEach': ('boundingRatio', 'ForEach'), 'quantileExactForEach': ('quantileExact', 'ForEach'), 'varPopForEach': ('varPop', 'ForEach'), 'sumKahanForEach': ('sumKahan', 'ForEach'), 'minMapForEach': ('minMap', 'ForEach'), 'meanZTestForEach': ('meanZTest', 'ForEach'), 'topKWeightedForEach': ('topKWeighted', 'ForEach'), 'uniqForEach': ('uniq', 'ForEach'), 'largestTriangleThreeBucketsForEach': ('largestTriangleThreeBuckets', 'ForEach'), 'quantileExactHighForEach': ('quantileExactHigh', 'ForEach'), 'kurtPopForEach': ('kurtPop', 'ForEach'), 'quantilesInterpolatedWeightedForEach': ('quantilesInterpolatedWeighted', 'ForEach'), 'quantileBFloat16ForEach': ('quantileBFloat16', 'ForEach'), 'approx_top_sumForEach': ('approx_top_sum', 'ForEach'), 'sumForEach': ('sum', 'ForEach'), 'topKForEach': ('topK', 'ForEach'), 'skewSampForEach': ('skewSamp', 'ForEach'), 'groupArrayInsertAtForEach': ('groupArrayInsertAt', 'ForEach'), 'quantilesDeterministicForEach': ('quantilesDeterministic', 'ForEach'), 'sumCountForEach': ('sumCount', 'ForEach'), 'sumWithOverflowForEach': ('sumWithOverflow', 'ForEach'), 'avgForEach': ('avg', 'ForEach'), 'skewPopForEach': ('skewPop', 'ForEach'), 'cramersVForEach': ('cramersV', 'ForEach'), 'groupArrayMovingAvgForEach': ('groupArrayMovingAvg', 'ForEach'), 'exponentialTimeDecayedAvgForEach': ('exponentialTimeDecayedAvg', 'ForEach'), 'quantileDeterministicForEach': ('quantileDeterministic', 'ForEach'), 'medianForEach': ('median', 'ForEach'), 'groupUniqArrayForEach': ('groupUniqArray', 'ForEach'), 'covarSampForEach': ('covarSamp', 'ForEach'), 'argMaxForEach': ('argMax', 'ForEach'), 'groupBitXorForEach': ('groupBitXor', 'ForEach'), 'deltaSumTimestampForEach': ('deltaSumTimestamp', 'ForEach'), 'groupArraySampleForEach': ('groupArraySample', 'ForEach'), 'quantilesGKForEach': ('quantilesGK', 'ForEach'), 'quantileExactWeightedForEach': ('quantileExactWeighted', 'ForEach'), 'quantileGKForEach': ('quantileGK', 'ForEach'), 'quantilesBFloat16WeightedForEach': ('quantilesBFloat16Weighted', 'ForEach'), 'cramersVBiasCorrectedForEach': ('cramersVBiasCorrected', 'ForEach'), 'maxMapForEach': ('maxMap', 'ForEach'), 'sequenceMatchForEach': ('sequenceMatch', 'ForEach'), 'quantileBFloat16WeightedForEach': ('quantileBFloat16Weighted', 'ForEach'), 'avgWeightedForEach': ('avgWeighted', 'ForEach'), 'quantileInterpolatedWeightedForEach': ('quantileInterpolatedWeighted', 'ForEach'), 'categoricalInformationValueForEach': ('categoricalInformationValue', 'ForEach'), 'studentTTestForEach': ('studentTTest', 'ForEach'), 'minForEach': ('min', 'ForEach'), 'maxForEach': ('max', 'ForEach'), 'quantilesForEach': ('quantiles', 'ForEach'), 'groupConcatForEach': ('groupConcat', 'ForEach'), 'groupArrayLastForEach': ('groupArrayLast', 'ForEach'), 'groupBitmapXorForEach': ('groupBitmapXor', 'ForEach'), 'kurtSampForEach': ('kurtSamp', 'ForEach'), 'simpleLinearRegressionOrNull': ('simpleLinearRegression', 'OrNull'), 'quantilesTimingWeightedOrNull': ('quantilesTimingWeighted', 'OrNull'), 'intervalLengthSumOrNull': ('intervalLengthSum', 'OrNull'), 'quantilesBFloat16OrNull': ('quantilesBFloat16', 'OrNull'), 'deltaSumOrNull': ('deltaSum', 'OrNull'), 'maxIntersectionsOrNull': ('maxIntersections', 'OrNull'), 'quantilesExactLowOrNull': ('quantilesExactLow', 'OrNull'), 'contingencyOrNull': ('contingency', 'OrNull'), 'anyLastOrNull': ('anyLast', 'OrNull'), 'last_valueOrNull': ('last_value', 'OrNull'), 'sparkBarOrNull': ('sparkBar', 'OrNull'), 'groupArrayOrNull': ('groupArray', 'OrNull'), 'stddevPopOrNull': ('stddevPop', 'OrNull'), 'quantilesTimingOrNull': ('quantilesTiming', 'OrNull'), 'uniqHLL12OrNull': ('uniqHLL12', 'OrNull'), 'quantilesExactHighOrNull': ('quantilesExactHigh', 'OrNull'), 'uniqCombinedOrNull': ('uniqCombined', 'OrNull'), 'quantilesExactExclusiveOrNull': ('quantilesExactExclusive', 'OrNull'), 'quantilesExactOrNull': ('quantilesExact', 'OrNull'), 'exponentialMovingAverageOrNull': ('exponentialMovingAverage', 'OrNull'), 'stochasticLogisticRegressionOrNull': ('stochasticLogisticRegression', 'OrNull'), 'quantileExactLowOrNull': ('quantileExactLow', 'OrNull'), 'maxIntersectionsPositionOrNull': ('maxIntersectionsPosition', 'OrNull'), 'first_valueOrNull': ('first_value', 'OrNull'), 'mannWhitneyUTestOrNull': ('mannWhitneyUTest', 'OrNull'), 'quantilesTDigestWeightedOrNull': ('quantilesTDigestWeighted', 'OrNull'), 'groupBitmapOrNull': ('groupBitmap', 'OrNull'), 'sumMapOrNull': ('sumMap', 'OrNull'), 'groupBitmapOrOrNull': ('groupBitmapOr', 'OrNull'), 'rankCorrOrNull': ('rankCorr', 'OrNull'), 'countOrNull': ('count', 'OrNull'), 'quantileTimingWeightedOrNull': ('quantileTimingWeighted', 'OrNull'), 'uniqExactOrNull': ('uniqExact', 'OrNull'), 'stddevSampOrNull': ('stddevSamp', 'OrNull'), 'windowFunnelOrNull': ('windowFunnel', 'OrNull'), 'quantilesTDigestOrNull': ('quantilesTDigest', 'OrNull'), 'theilsUOrNull': ('theilsU', 'OrNull'), 'groupBitAndOrNull': ('groupBitAnd', 'OrNull'), 'groupBitOrOrNull': ('groupBitOr', 'OrNull'), 'groupBitmapAndOrNull': ('groupBitmapAnd', 'OrNull'), 'welchTTestOrNull': ('welchTTest', 'OrNull'), 'entropyOrNull': ('entropy', 'OrNull'), 'argMinOrNull': ('argMin', 'OrNull'), 'anyOrNull': ('any', 'OrNull'), 'retentionOrNull': ('retention', 'OrNull'), 'sequenceNextNodeOrNull': ('sequenceNextNode', 'OrNull'), 'corrOrNull': ('corr', 'OrNull'), 'uniqUpToOrNull': ('uniqUpTo', 'OrNull'), 'quantileOrNull': ('quantile', 'OrNull'), 'groupArrayMovingSumOrNull': ('groupArrayMovingSum', 'OrNull'), 'varSampOrNull': ('varSamp', 'OrNull'), 'stochasticLinearRegressionOrNull': ('stochasticLinearRegression', 'OrNull'), 'sequenceCountOrNull': ('sequenceCount', 'OrNull'), 'uniqCombined64OrNull': ('uniqCombined64', 'OrNull'), 'quantileTimingOrNull': ('quantileTiming', 'OrNull'), 'quantilesExactWeightedOrNull': ('quantilesExactWeighted', 'OrNull'), 'anyHeavyOrNull': ('anyHeavy', 'OrNull'), 'quantileTDigestOrNull': ('quantileTDigest', 'OrNull'), 'kolmogorovSmirnovTestOrNull': ('kolmogorovSmirnovTest', 'OrNull'), 'uniqThetaOrNull': ('uniqTheta', 'OrNull'), 'histogramOrNull': ('histogram', 'OrNull'), 'quantileTDigestWeightedOrNull': ('quantileTDigestWeighted', 'OrNull'), 'covarPopOrNull': ('covarPop', 'OrNull'), 'quantileExactInclusiveOrNull': ('quantileExactInclusive', 'OrNull'), 'boundingRatioOrNull': ('boundingRatio', 'OrNull'), 'quantileExactOrNull': ('quantileExact', 'OrNull'), 'varPopOrNull': ('varPop', 'OrNull'), 'sumKahanOrNull': ('sumKahan', 'OrNull'), 'minMapOrNull': ('minMap', 'OrNull'), 'meanZTestOrNull': ('meanZTest', 'OrNull'), 'topKWeightedOrNull': ('topKWeighted', 'OrNull'), 'uniqOrNull': ('uniq', 'OrNull'), 'largestTriangleThreeBucketsOrNull': ('largestTriangleThreeBuckets', 'OrNull'), 'quantileExactHighOrNull': ('quantileExactHigh', 'OrNull'), 'kurtPopOrNull': ('kurtPop', 'OrNull'), 'quantilesInterpolatedWeightedOrNull': ('quantilesInterpolatedWeighted', 'OrNull'), 'quantileBFloat16OrNull': ('quantileBFloat16', 'OrNull'), 'approx_top_sumOrNull': ('approx_top_sum', 'OrNull'), 'sumOrNull': ('sum', 'OrNull'), 'topKOrNull': ('topK', 'OrNull'), 'skewSampOrNull': ('skewSamp', 'OrNull'), 'groupArrayInsertAtOrNull': ('groupArrayInsertAt', 'OrNull'), 'quantilesDeterministicOrNull': ('quantilesDeterministic', 'OrNull'), 'sumCountOrNull': ('sumCount', 'OrNull'), 'sumWithOverflowOrNull': ('sumWithOverflow', 'OrNull'), 'avgOrNull': ('avg', 'OrNull'), 'skewPopOrNull': ('skewPop', 'OrNull'), 'cramersVOrNull': ('cramersV', 'OrNull'), 'groupArrayMovingAvgOrNull': ('groupArrayMovingAvg', 'OrNull'), 'exponentialTimeDecayedAvgOrNull': ('exponentialTimeDecayedAvg', 'OrNull'), 'quantileDeterministicOrNull': ('quantileDeterministic', 'OrNull'), 'medianOrNull': ('median', 'OrNull'), 'groupUniqArrayOrNull': ('groupUniqArray', 'OrNull'), 'covarSampOrNull': ('covarSamp', 'OrNull'), 'argMaxOrNull': ('argMax', 'OrNull'), 'groupBitXorOrNull': ('groupBitXor', 'OrNull'), 'deltaSumTimestampOrNull': ('deltaSumTimestamp', 'OrNull'), 'groupArraySampleOrNull': ('groupArraySample', 'OrNull'), 'quantilesGKOrNull': ('quantilesGK', 'OrNull'), 'quantileExactWeightedOrNull': ('quantileExactWeighted', 'OrNull'), 'quantileGKOrNull': ('quantileGK', 'OrNull'), 'quantilesBFloat16WeightedOrNull': ('quantilesBFloat16Weighted', 'OrNull'), 'cramersVBiasCorrectedOrNull': ('cramersVBiasCorrected', 'OrNull'), 'maxMapOrNull': ('maxMap', 'OrNull'), 'sequenceMatchOrNull': ('sequenceMatch', 'OrNull'), 'quantileBFloat16WeightedOrNull': ('quantileBFloat16Weighted', 'OrNull'), 'avgWeightedOrNull': ('avgWeighted', 'OrNull'), 'quantileInterpolatedWeightedOrNull': ('quantileInterpolatedWeighted', 'OrNull'), 'categoricalInformationValueOrNull': ('categoricalInformationValue', 'OrNull'), 'studentTTestOrNull': ('studentTTest', 'OrNull'), 'minOrNull': ('min', 'OrNull'), 'maxOrNull': ('max', 'OrNull'), 'quantilesOrNull': ('quantiles', 'OrNull'), 'groupConcatOrNull': ('groupConcat', 'OrNull'), 'groupArrayLastOrNull': ('groupArrayLast', 'OrNull'), 'groupBitmapXorOrNull': ('groupBitmapXor', 'OrNull'), 'kurtSampOrNull': ('kurtSamp', 'OrNull'), 'simpleLinearRegressionArgMin': ('simpleLinearRegression', 'ArgMin'), 'quantilesTimingWeightedArgMin': ('quantilesTimingWeighted', 'ArgMin'), 'intervalLengthSumArgMin': ('intervalLengthSum', 'ArgMin'), 'quantilesBFloat16ArgMin': ('quantilesBFloat16', 'ArgMin'), 'deltaSumArgMin': ('deltaSum', 'ArgMin'), 'maxIntersectionsArgMin': ('maxIntersections', 'ArgMin'), 'quantilesExactLowArgMin': ('quantilesExactLow', 'ArgMin'), 'contingencyArgMin': ('contingency', 'ArgMin'), 'anyLastArgMin': ('anyLast', 'ArgMin'), 'last_valueArgMin': ('last_value', 'ArgMin'), 'sparkBarArgMin': ('sparkBar', 'ArgMin'), 'groupArrayArgMin': ('groupArray', 'ArgMin'), 'stddevPopArgMin': ('stddevPop', 'ArgMin'), 'quantilesTimingArgMin': ('quantilesTiming', 'ArgMin'), 'uniqHLL12ArgMin': ('uniqHLL12', 'ArgMin'), 'quantilesExactHighArgMin': ('quantilesExactHigh', 'ArgMin'), 'uniqCombinedArgMin': ('uniqCombined', 'ArgMin'), 'quantilesExactExclusiveArgMin': ('quantilesExactExclusive', 'ArgMin'), 'quantilesExactArgMin': ('quantilesExact', 'ArgMin'), 'exponentialMovingAverageArgMin': ('exponentialMovingAverage', 'ArgMin'), 'stochasticLogisticRegressionArgMin': ('stochasticLogisticRegression', 'ArgMin'), 'quantileExactLowArgMin': ('quantileExactLow', 'ArgMin'), 'maxIntersectionsPositionArgMin': ('maxIntersectionsPosition', 'ArgMin'), 'first_valueArgMin': ('first_value', 'ArgMin'), 'mannWhitneyUTestArgMin': ('mannWhitneyUTest', 'ArgMin'), 'quantilesTDigestWeightedArgMin': ('quantilesTDigestWeighted', 'ArgMin'), 'groupBitmapArgMin': ('groupBitmap', 'ArgMin'), 'sumMapArgMin': ('sumMap', 'ArgMin'), 'groupBitmapOrArgMin': ('groupBitmapOr', 'ArgMin'), 'rankCorrArgMin': ('rankCorr', 'ArgMin'), 'countArgMin': ('count', 'ArgMin'), 'quantileTimingWeightedArgMin': ('quantileTimingWeighted', 'ArgMin'), 'uniqExactArgMin': ('uniqExact', 'ArgMin'), 'stddevSampArgMin': ('stddevSamp', 'ArgMin'), 'windowFunnelArgMin': ('windowFunnel', 'ArgMin'), 'quantilesTDigestArgMin': ('quantilesTDigest', 'ArgMin'), 'theilsUArgMin': ('theilsU', 'ArgMin'), 'groupBitAndArgMin': ('groupBitAnd', 'ArgMin'), 'groupBitOrArgMin': ('groupBitOr', 'ArgMin'), 'groupBitmapAndArgMin': ('groupBitmapAnd', 'ArgMin'), 'welchTTestArgMin': ('welchTTest', 'ArgMin'), 'entropyArgMin': ('entropy', 'ArgMin'), 'argMinArgMin': ('argMin', 'ArgMin'), 'anyArgMin': ('any', 'ArgMin'), 'retentionArgMin': ('retention', 'ArgMin'), 'sequenceNextNodeArgMin': ('sequenceNextNode', 'ArgMin'), 'corrArgMin': ('corr', 'ArgMin'), 'uniqUpToArgMin': ('uniqUpTo', 'ArgMin'), 'quantileArgMin': ('quantile', 'ArgMin'), 'groupArrayMovingSumArgMin': ('groupArrayMovingSum', 'ArgMin'), 'varSampArgMin': ('varSamp', 'ArgMin'), 'stochasticLinearRegressionArgMin': ('stochasticLinearRegression', 'ArgMin'), 'sequenceCountArgMin': ('sequenceCount', 'ArgMin'), 'uniqCombined64ArgMin': ('uniqCombined64', 'ArgMin'), 'quantileTimingArgMin': ('quantileTiming', 'ArgMin'), 'quantilesExactWeightedArgMin': ('quantilesExactWeighted', 'ArgMin'), 'anyHeavyArgMin': ('anyHeavy', 'ArgMin'), 'quantileTDigestArgMin': ('quantileTDigest', 'ArgMin'), 'kolmogorovSmirnovTestArgMin': ('kolmogorovSmirnovTest', 'ArgMin'), 'uniqThetaArgMin': ('uniqTheta', 'ArgMin'), 'histogramArgMin': ('histogram', 'ArgMin'), 'quantileTDigestWeightedArgMin': ('quantileTDigestWeighted', 'ArgMin'), 'covarPopArgMin': ('covarPop', 'ArgMin'), 'quantileExactInclusiveArgMin': ('quantileExactInclusive', 'ArgMin'), 'boundingRatioArgMin': ('boundingRatio', 'ArgMin'), 'quantileExactArgMin': ('quantileExact', 'ArgMin'), 'varPopArgMin': ('varPop', 'ArgMin'), 'sumKahanArgMin': ('sumKahan', 'ArgMin'), 'minMapArgMin': ('minMap', 'ArgMin'), 'meanZTestArgMin': ('meanZTest', 'ArgMin'), 'topKWeightedArgMin': ('topKWeighted', 'ArgMin'), 'uniqArgMin': ('uniq', 'ArgMin'), 'largestTriangleThreeBucketsArgMin': ('largestTriangleThreeBuckets', 'ArgMin'), 'quantileExactHighArgMin': ('quantileExactHigh', 'ArgMin'), 'kurtPopArgMin': ('kurtPop', 'ArgMin'), 'quantilesInterpolatedWeightedArgMin': ('quantilesInterpolatedWeighted', 'ArgMin'), 'quantileBFloat16ArgMin': ('quantileBFloat16', 'ArgMin'), 'approx_top_sumArgMin': ('approx_top_sum', 'ArgMin'), 'sumArgMin': ('sum', 'ArgMin'), 'topKArgMin': ('topK', 'ArgMin'), 'skewSampArgMin': ('skewSamp', 'ArgMin'), 'groupArrayInsertAtArgMin': ('groupArrayInsertAt', 'ArgMin'), 'quantilesDeterministicArgMin': ('quantilesDeterministic', 'ArgMin'), 'sumCountArgMin': ('sumCount', 'ArgMin'), 'sumWithOverflowArgMin': ('sumWithOverflow', 'ArgMin'), 'avgArgMin': ('avg', 'ArgMin'), 'skewPopArgMin': ('skewPop', 'ArgMin'), 'cramersVArgMin': ('cramersV', 'ArgMin'), 'groupArrayMovingAvgArgMin': ('groupArrayMovingAvg', 'ArgMin'), 'exponentialTimeDecayedAvgArgMin': ('exponentialTimeDecayedAvg', 'ArgMin'), 'quantileDeterministicArgMin': ('quantileDeterministic', 'ArgMin'), 'medianArgMin': ('median', 'ArgMin'), 'groupUniqArrayArgMin': ('groupUniqArray', 'ArgMin'), 'covarSampArgMin': ('covarSamp', 'ArgMin'), 'argMaxArgMin': ('argMax', 'ArgMin'), 'groupBitXorArgMin': ('groupBitXor', 'ArgMin'), 'deltaSumTimestampArgMin': ('deltaSumTimestamp', 'ArgMin'), 'groupArraySampleArgMin': ('groupArraySample', 'ArgMin'), 'quantilesGKArgMin': ('quantilesGK', 'ArgMin'), 'quantileExactWeightedArgMin': ('quantileExactWeighted', 'ArgMin'), 'quantileGKArgMin': ('quantileGK', 'ArgMin'), 'quantilesBFloat16WeightedArgMin': ('quantilesBFloat16Weighted', 'ArgMin'), 'cramersVBiasCorrectedArgMin': ('cramersVBiasCorrected', 'ArgMin'), 'maxMapArgMin': ('maxMap', 'ArgMin'), 'sequenceMatchArgMin': ('sequenceMatch', 'ArgMin'), 'quantileBFloat16WeightedArgMin': ('quantileBFloat16Weighted', 'ArgMin'), 'avgWeightedArgMin': ('avgWeighted', 'ArgMin'), 'quantileInterpolatedWeightedArgMin': ('quantileInterpolatedWeighted', 'ArgMin'), 'categoricalInformationValueArgMin': ('categoricalInformationValue', 'ArgMin'), 'studentTTestArgMin': ('studentTTest', 'ArgMin'), 'minArgMin': ('min', 'ArgMin'), 'maxArgMin': ('max', 'ArgMin'), 'quantilesArgMin': ('quantiles', 'ArgMin'), 'groupConcatArgMin': ('groupConcat', 'ArgMin'), 'groupArrayLastArgMin': ('groupArrayLast', 'ArgMin'), 'groupBitmapXorArgMin': ('groupBitmapXor', 'ArgMin'), 'kurtSampArgMin': ('kurtSamp', 'ArgMin'), 'simpleLinearRegressionArgMax': ('simpleLinearRegression', 'ArgMax'), 'quantilesTimingWeightedArgMax': ('quantilesTimingWeighted', 'ArgMax'), 'intervalLengthSumArgMax': ('intervalLengthSum', 'ArgMax'), 'quantilesBFloat16ArgMax': ('quantilesBFloat16', 'ArgMax'), 'deltaSumArgMax': ('deltaSum', 'ArgMax'), 'maxIntersectionsArgMax': ('maxIntersections', 'ArgMax'), 'quantilesExactLowArgMax': ('quantilesExactLow', 'ArgMax'), 'contingencyArgMax': ('contingency', 'ArgMax'), 'anyLastArgMax': ('anyLast', 'ArgMax'), 'last_valueArgMax': ('last_value', 'ArgMax'), 'sparkBarArgMax': ('sparkBar', 'ArgMax'), 'groupArrayArgMax': ('groupArray', 'ArgMax'), 'stddevPopArgMax': ('stddevPop', 'ArgMax'), 'quantilesTimingArgMax': ('quantilesTiming', 'ArgMax'), 'uniqHLL12ArgMax': ('uniqHLL12', 'ArgMax'), 'quantilesExactHighArgMax': ('quantilesExactHigh', 'ArgMax'), 'uniqCombinedArgMax': ('uniqCombined', 'ArgMax'), 'quantilesExactExclusiveArgMax': ('quantilesExactExclusive', 'ArgMax'), 'quantilesExactArgMax': ('quantilesExact', 'ArgMax'), 'exponentialMovingAverageArgMax': ('exponentialMovingAverage', 'ArgMax'), 'stochasticLogisticRegressionArgMax': ('stochasticLogisticRegression', 'ArgMax'), 'quantileExactLowArgMax': ('quantileExactLow', 'ArgMax'), 'maxIntersectionsPositionArgMax': ('maxIntersectionsPosition', 'ArgMax'), 'first_valueArgMax': ('first_value', 'ArgMax'), 'mannWhitneyUTestArgMax': ('mannWhitneyUTest', 'ArgMax'), 'quantilesTDigestWeightedArgMax': ('quantilesTDigestWeighted', 'ArgMax'), 'groupBitmapArgMax': ('groupBitmap', 'ArgMax'), 'sumMapArgMax': ('sumMap', 'ArgMax'), 'groupBitmapOrArgMax': ('groupBitmapOr', 'ArgMax'), 'rankCorrArgMax': ('rankCorr', 'ArgMax'), 'countArgMax': ('count', 'ArgMax'), 'quantileTimingWeightedArgMax': ('quantileTimingWeighted', 'ArgMax'), 'uniqExactArgMax': ('uniqExact', 'ArgMax'), 'stddevSampArgMax': ('stddevSamp', 'ArgMax'), 'windowFunnelArgMax': ('windowFunnel', 'ArgMax'), 'quantilesTDigestArgMax': ('quantilesTDigest', 'ArgMax'), 'theilsUArgMax': ('theilsU', 'ArgMax'), 'groupBitAndArgMax': ('groupBitAnd', 'ArgMax'), 'groupBitOrArgMax': ('groupBitOr', 'ArgMax'), 'groupBitmapAndArgMax': ('groupBitmapAnd', 'ArgMax'), 'welchTTestArgMax': ('welchTTest', 'ArgMax'), 'entropyArgMax': ('entropy', 'ArgMax'), 'argMinArgMax': ('argMin', 'ArgMax'), 'anyArgMax': ('any', 'ArgMax'), 'retentionArgMax': ('retention', 'ArgMax'), 'sequenceNextNodeArgMax': ('sequenceNextNode', 'ArgMax'), 'corrArgMax': ('corr', 'ArgMax'), 'uniqUpToArgMax': ('uniqUpTo', 'ArgMax'), 'quantileArgMax': ('quantile', 'ArgMax'), 'groupArrayMovingSumArgMax': ('groupArrayMovingSum', 'ArgMax'), 'varSampArgMax': ('varSamp', 'ArgMax'), 'stochasticLinearRegressionArgMax': ('stochasticLinearRegression', 'ArgMax'), 'sequenceCountArgMax': ('sequenceCount', 'ArgMax'), 'uniqCombined64ArgMax': ('uniqCombined64', 'ArgMax'), 'quantileTimingArgMax': ('quantileTiming', 'ArgMax'), 'quantilesExactWeightedArgMax': ('quantilesExactWeighted', 'ArgMax'), 'anyHeavyArgMax': ('anyHeavy', 'ArgMax'), 'quantileTDigestArgMax': ('quantileTDigest', 'ArgMax'), 'kolmogorovSmirnovTestArgMax': ('kolmogorovSmirnovTest', 'ArgMax'), 'uniqThetaArgMax': ('uniqTheta', 'ArgMax'), 'histogramArgMax': ('histogram', 'ArgMax'), 'quantileTDigestWeightedArgMax': ('quantileTDigestWeighted', 'ArgMax'), 'covarPopArgMax': ('covarPop', 'ArgMax'), 'quantileExactInclusiveArgMax': ('quantileExactInclusive', 'ArgMax'), 'boundingRatioArgMax': ('boundingRatio', 'ArgMax'), 'quantileExactArgMax': ('quantileExact', 'ArgMax'), 'varPopArgMax': ('varPop', 'ArgMax'), 'sumKahanArgMax': ('sumKahan', 'ArgMax'), 'minMapArgMax': ('minMap', 'ArgMax'), 'meanZTestArgMax': ('meanZTest', 'ArgMax'), 'topKWeightedArgMax': ('topKWeighted', 'ArgMax'), 'uniqArgMax': ('uniq', 'ArgMax'), 'largestTriangleThreeBucketsArgMax': ('largestTriangleThreeBuckets', 'ArgMax'), 'quantileExactHighArgMax': ('quantileExactHigh', 'ArgMax'), 'kurtPopArgMax': ('kurtPop', 'ArgMax'), 'quantilesInterpolatedWeightedArgMax': ('quantilesInterpolatedWeighted', 'ArgMax'), 'quantileBFloat16ArgMax': ('quantileBFloat16', 'ArgMax'), 'approx_top_sumArgMax': ('approx_top_sum', 'ArgMax'), 'sumArgMax': ('sum', 'ArgMax'), 'topKArgMax': ('topK', 'ArgMax'), 'skewSampArgMax': ('skewSamp', 'ArgMax'), 'groupArrayInsertAtArgMax': ('groupArrayInsertAt', 'ArgMax'), 'quantilesDeterministicArgMax': ('quantilesDeterministic', 'ArgMax'), 'sumCountArgMax': ('sumCount', 'ArgMax'), 'sumWithOverflowArgMax': ('sumWithOverflow', 'ArgMax'), 'avgArgMax': ('avg', 'ArgMax'), 'skewPopArgMax': ('skewPop', 'ArgMax'), 'cramersVArgMax': ('cramersV', 'ArgMax'), 'groupArrayMovingAvgArgMax': ('groupArrayMovingAvg', 'ArgMax'), 'exponentialTimeDecayedAvgArgMax': ('exponentialTimeDecayedAvg', 'ArgMax'), 'quantileDeterministicArgMax': ('quantileDeterministic', 'ArgMax'), 'medianArgMax': ('median', 'ArgMax'), 'groupUniqArrayArgMax': ('groupUniqArray', 'ArgMax'), 'covarSampArgMax': ('covarSamp', 'ArgMax'), 'argMaxArgMax': ('argMax', 'ArgMax'), 'groupBitXorArgMax': ('groupBitXor', 'ArgMax'), 'deltaSumTimestampArgMax': ('deltaSumTimestamp', 'ArgMax'), 'groupArraySampleArgMax': ('groupArraySample', 'ArgMax'), 'quantilesGKArgMax': ('quantilesGK', 'ArgMax'), 'quantileExactWeightedArgMax': ('quantileExactWeighted', 'ArgMax'), 'quantileGKArgMax': ('quantileGK', 'ArgMax'), 'quantilesBFloat16WeightedArgMax': ('quantilesBFloat16Weighted', 'ArgMax'), 'cramersVBiasCorrectedArgMax': ('cramersVBiasCorrected', 'ArgMax'), 'maxMapArgMax': ('maxMap', 'ArgMax'), 'sequenceMatchArgMax': ('sequenceMatch', 'ArgMax'), 'quantileBFloat16WeightedArgMax': ('quantileBFloat16Weighted', 'ArgMax'), 'avgWeightedArgMax': ('avgWeighted', 'ArgMax'), 'quantileInterpolatedWeightedArgMax': ('quantileInterpolatedWeighted', 'ArgMax'), 'categoricalInformationValueArgMax': ('categoricalInformationValue', 'ArgMax'), 'studentTTestArgMax': ('studentTTest', 'ArgMax'), 'minArgMax': ('min', 'ArgMax'), 'maxArgMax': ('max', 'ArgMax'), 'quantilesArgMax': ('quantiles', 'ArgMax'), 'groupConcatArgMax': ('groupConcat', 'ArgMax'), 'groupArrayLastArgMax': ('groupArrayLast', 'ArgMax'), 'groupBitmapXorArgMax': ('groupBitmapXor', 'ArgMax'), 'kurtSampArgMax': ('kurtSamp', 'ArgMax'), 'simpleLinearRegressionArray': ('simpleLinearRegression', 'Array'), 'quantilesTimingWeightedArray': ('quantilesTimingWeighted', 'Array'), 'intervalLengthSumArray': ('intervalLengthSum', 'Array'), 'quantilesBFloat16Array': ('quantilesBFloat16', 'Array'), 'deltaSumArray': ('deltaSum', 'Array'), 'maxIntersectionsArray': ('maxIntersections', 'Array'), 'quantilesExactLowArray': ('quantilesExactLow', 'Array'), 'contingencyArray': ('contingency', 'Array'), 'anyLastArray': ('anyLast', 'Array'), 'last_valueArray': ('last_value', 'Array'), 'sparkBarArray': ('sparkBar', 'Array'), 'groupArrayArray': ('groupArray', 'Array'), 'stddevPopArray': ('stddevPop', 'Array'), 'quantilesTimingArray': ('quantilesTiming', 'Array'), 'uniqHLL12Array': ('uniqHLL12', 'Array'), 'quantilesExactHighArray': ('quantilesExactHigh', 'Array'), 'uniqCombinedArray': ('uniqCombined', 'Array'), 'quantilesExactExclusiveArray': ('quantilesExactExclusive', 'Array'), 'quantilesExactArray': ('quantilesExact', 'Array'), 'exponentialMovingAverageArray': ('exponentialMovingAverage', 'Array'), 'stochasticLogisticRegressionArray': ('stochasticLogisticRegression', 'Array'), 'quantileExactLowArray': ('quantileExactLow', 'Array'), 'maxIntersectionsPositionArray': ('maxIntersectionsPosition', 'Array'), 'first_valueArray': ('first_value', 'Array'), 'mannWhitneyUTestArray': ('mannWhitneyUTest', 'Array'), 'quantilesTDigestWeightedArray': ('quantilesTDigestWeighted', 'Array'), 'groupBitmapArray': ('groupBitmap', 'Array'), 'sumMapArray': ('sumMap', 'Array'), 'groupBitmapOrArray': ('groupBitmapOr', 'Array'), 'rankCorrArray': ('rankCorr', 'Array'), 'countArray': ('count', 'Array'), 'quantileTimingWeightedArray': ('quantileTimingWeighted', 'Array'), 'uniqExactArray': ('uniqExact', 'Array'), 'stddevSampArray': ('stddevSamp', 'Array'), 'windowFunnelArray': ('windowFunnel', 'Array'), 'quantilesTDigestArray': ('quantilesTDigest', 'Array'), 'theilsUArray': ('theilsU', 'Array'), 'groupBitAndArray': ('groupBitAnd', 'Array'), 'groupBitOrArray': ('groupBitOr', 'Array'), 'groupBitmapAndArray': ('groupBitmapAnd', 'Array'), 'welchTTestArray': ('welchTTest', 'Array'), 'entropyArray': ('entropy', 'Array'), 'argMinArray': ('argMin', 'Array'), 'anyArray': ('any', 'Array'), 'retentionArray': ('retention', 'Array'), 'sequenceNextNodeArray': ('sequenceNextNode', 'Array'), 'corrArray': ('corr', 'Array'), 'uniqUpToArray': ('uniqUpTo', 'Array'), 'quantileArray': ('quantile', 'Array'), 'groupArrayMovingSumArray': ('groupArrayMovingSum', 'Array'), 'varSampArray': ('varSamp', 'Array'), 'stochasticLinearRegressionArray': ('stochasticLinearRegression', 'Array'), 'sequenceCountArray': ('sequenceCount', 'Array'), 'uniqCombined64Array': ('uniqCombined64', 'Array'), 'quantileTimingArray': ('quantileTiming', 'Array'), 'quantilesExactWeightedArray': ('quantilesExactWeighted', 'Array'), 'anyHeavyArray': ('anyHeavy', 'Array'), 'quantileTDigestArray': ('quantileTDigest', 'Array'), 'kolmogorovSmirnovTestArray': ('kolmogorovSmirnovTest', 'Array'), 'uniqThetaArray': ('uniqTheta', 'Array'), 'histogramArray': ('histogram', 'Array'), 'quantileTDigestWeightedArray': ('quantileTDigestWeighted', 'Array'), 'covarPopArray': ('covarPop', 'Array'), 'quantileExactInclusiveArray': ('quantileExactInclusive', 'Array'), 'boundingRatioArray': ('boundingRatio', 'Array'), 'quantileExactArray': ('quantileExact', 'Array'), 'varPopArray': ('varPop', 'Array'), 'sumKahanArray': ('sumKahan', 'Array'), 'minMapArray': ('minMap', 'Array'), 'meanZTestArray': ('meanZTest', 'Array'), 'topKWeightedArray': ('topKWeighted', 'Array'), 'uniqArray': ('uniq', 'Array'), 'largestTriangleThreeBucketsArray': ('largestTriangleThreeBuckets', 'Array'), 'quantileExactHighArray': ('quantileExactHigh', 'Array'), 'kurtPopArray': ('kurtPop', 'Array'), 'quantilesInterpolatedWeightedArray': ('quantilesInterpolatedWeighted', 'Array'), 'quantileBFloat16Array': ('quantileBFloat16', 'Array'), 'approx_top_sumArray': ('approx_top_sum', 'Array'), 'sumArray': ('sum', 'Array'), 'topKArray': ('topK', 'Array'), 'skewSampArray': ('skewSamp', 'Array'), 'groupArrayInsertAtArray': ('groupArrayInsertAt', 'Array'), 'quantilesDeterministicArray': ('quantilesDeterministic', 'Array'), 'sumCountArray': ('sumCount', 'Array'), 'sumWithOverflowArray': ('sumWithOverflow', 'Array'), 'avgArray': ('avg', 'Array'), 'skewPopArray': ('skewPop', 'Array'), 'cramersVArray': ('cramersV', 'Array'), 'groupArrayMovingAvgArray': ('groupArrayMovingAvg', 'Array'), 'exponentialTimeDecayedAvgArray': ('exponentialTimeDecayedAvg', 'Array'), 'quantileDeterministicArray': ('quantileDeterministic', 'Array'), 'medianArray': ('median', 'Array'), 'groupUniqArrayArray': ('groupUniqArray', 'Array'), 'covarSampArray': ('covarSamp', 'Array'), 'argMaxArray': ('argMax', 'Array'), 'groupBitXorArray': ('groupBitXor', 'Array'), 'deltaSumTimestampArray': ('deltaSumTimestamp', 'Array'), 'groupArraySampleArray': ('groupArraySample', 'Array'), 'quantilesGKArray': ('quantilesGK', 'Array'), 'quantileExactWeightedArray': ('quantileExactWeighted', 'Array'), 'quantileGKArray': ('quantileGK', 'Array'), 'quantilesBFloat16WeightedArray': ('quantilesBFloat16Weighted', 'Array'), 'cramersVBiasCorrectedArray': ('cramersVBiasCorrected', 'Array'), 'maxMapArray': ('maxMap', 'Array'), 'sequenceMatchArray': ('sequenceMatch', 'Array'), 'quantileBFloat16WeightedArray': ('quantileBFloat16Weighted', 'Array'), 'avgWeightedArray': ('avgWeighted', 'Array'), 'quantileInterpolatedWeightedArray': ('quantileInterpolatedWeighted', 'Array'), 'categoricalInformationValueArray': ('categoricalInformationValue', 'Array'), 'studentTTestArray': ('studentTTest', 'Array'), 'minArray': ('min', 'Array'), 'maxArray': ('max', 'Array'), 'quantilesArray': ('quantiles', 'Array'), 'groupConcatArray': ('groupConcat', 'Array'), 'groupArrayLastArray': ('groupArrayLast', 'Array'), 'groupBitmapXorArray': ('groupBitmapXor', 'Array'), 'kurtSampArray': ('kurtSamp', 'Array'), 'simpleLinearRegressionState': ('simpleLinearRegression', 'State'), 'quantilesTimingWeightedState': ('quantilesTimingWeighted', 'State'), 'intervalLengthSumState': ('intervalLengthSum', 'State'), 'quantilesBFloat16State': ('quantilesBFloat16', 'State'), 'deltaSumState': ('deltaSum', 'State'), 'maxIntersectionsState': ('maxIntersections', 'State'), 'quantilesExactLowState': ('quantilesExactLow', 'State'), 'contingencyState': ('contingency', 'State'), 'anyLastState': ('anyLast', 'State'), 'last_valueState': ('last_value', 'State'), 'sparkBarState': ('sparkBar', 'State'), 'groupArrayState': ('groupArray', 'State'), 'stddevPopState': ('stddevPop', 'State'), 'quantilesTimingState': ('quantilesTiming', 'State'), 'uniqHLL12State': ('uniqHLL12', 'State'), 'quantilesExactHighState': ('quantilesExactHigh', 'State'), 'uniqCombinedState': ('uniqCombined', 'State'), 'quantilesExactExclusiveState': ('quantilesExactExclusive', 'State'), 'quantilesExactState': ('quantilesExact', 'State'), 'exponentialMovingAverageState': ('exponentialMovingAverage', 'State'), 'stochasticLogisticRegressionState': ('stochasticLogisticRegression', 'State'), 'quantileExactLowState': ('quantileExactLow', 'State'), 'maxIntersectionsPositionState': ('maxIntersectionsPosition', 'State'), 'first_valueState': ('first_value', 'State'), 'mannWhitneyUTestState': ('mannWhitneyUTest', 'State'), 'quantilesTDigestWeightedState': ('quantilesTDigestWeighted', 'State'), 'groupBitmapState': ('groupBitmap', 'State'), 'sumMapState': ('sumMap', 'State'), 'groupBitmapOrState': ('groupBitmapOr', 'State'), 'rankCorrState': ('rankCorr', 'State'), 'countState': ('count', 'State'), 'quantileTimingWeightedState': ('quantileTimingWeighted', 'State'), 'uniqExactState': ('uniqExact', 'State'), 'stddevSampState': ('stddevSamp', 'State'), 'windowFunnelState': ('windowFunnel', 'State'), 'quantilesTDigestState': ('quantilesTDigest', 'State'), 'theilsUState': ('theilsU', 'State'), 'groupBitAndState': ('groupBitAnd', 'State'), 'groupBitOrState': ('groupBitOr', 'State'), 'groupBitmapAndState': ('groupBitmapAnd', 'State'), 'welchTTestState': ('welchTTest', 'State'), 'entropyState': ('entropy', 'State'), 'argMinState': ('argMin', 'State'), 'anyState': ('any', 'State'), 'retentionState': ('retention', 'State'), 'sequenceNextNodeState': ('sequenceNextNode', 'State'), 'corrState': ('corr', 'State'), 'uniqUpToState': ('uniqUpTo', 'State'), 'quantileState': ('quantile', 'State'), 'groupArrayMovingSumState': ('groupArrayMovingSum', 'State'), 'varSampState': ('varSamp', 'State'), 'stochasticLinearRegressionState': ('stochasticLinearRegression', 'State'), 'sequenceCountState': ('sequenceCount', 'State'), 'uniqCombined64State': ('uniqCombined64', 'State'), 'quantileTimingState': ('quantileTiming', 'State'), 'quantilesExactWeightedState': ('quantilesExactWeighted', 'State'), 'anyHeavyState': ('anyHeavy', 'State'), 'quantileTDigestState': ('quantileTDigest', 'State'), 'kolmogorovSmirnovTestState': ('kolmogorovSmirnovTest', 'State'), 'uniqThetaState': ('uniqTheta', 'State'), 'histogramState': ('histogram', 'State'), 'quantileTDigestWeightedState': ('quantileTDigestWeighted', 'State'), 'covarPopState': ('covarPop', 'State'), 'quantileExactInclusiveState': ('quantileExactInclusive', 'State'), 'boundingRatioState': ('boundingRatio', 'State'), 'quantileExactState': ('quantileExact', 'State'), 'varPopState': ('varPop', 'State'), 'sumKahanState': ('sumKahan', 'State'), 'minMapState': ('minMap', 'State'), 'meanZTestState': ('meanZTest', 'State'), 'topKWeightedState': ('topKWeighted', 'State'), 'uniqState': ('uniq', 'State'), 'largestTriangleThreeBucketsState': ('largestTriangleThreeBuckets', 'State'), 'quantileExactHighState': ('quantileExactHigh', 'State'), 'kurtPopState': ('kurtPop', 'State'), 'quantilesInterpolatedWeightedState': ('quantilesInterpolatedWeighted', 'State'), 'quantileBFloat16State': ('quantileBFloat16', 'State'), 'approx_top_sumState': ('approx_top_sum', 'State'), 'sumState': ('sum', 'State'), 'topKState': ('topK', 'State'), 'skewSampState': ('skewSamp', 'State'), 'groupArrayInsertAtState': ('groupArrayInsertAt', 'State'), 'quantilesDeterministicState': ('quantilesDeterministic', 'State'), 'sumCountState': ('sumCount', 'State'), 'sumWithOverflowState': ('sumWithOverflow', 'State'), 'avgState': ('avg', 'State'), 'skewPopState': ('skewPop', 'State'), 'cramersVState': ('cramersV', 'State'), 'groupArrayMovingAvgState': ('groupArrayMovingAvg', 'State'), 'exponentialTimeDecayedAvgState': ('exponentialTimeDecayedAvg', 'State'), 'quantileDeterministicState': ('quantileDeterministic', 'State'), 'medianState': ('median', 'State'), 'groupUniqArrayState': ('groupUniqArray', 'State'), 'covarSampState': ('covarSamp', 'State'), 'argMaxState': ('argMax', 'State'), 'groupBitXorState': ('groupBitXor', 'State'), 'deltaSumTimestampState': ('deltaSumTimestamp', 'State'), 'groupArraySampleState': ('groupArraySample', 'State'), 'quantilesGKState': ('quantilesGK', 'State'), 'quantileExactWeightedState': ('quantileExactWeighted', 'State'), 'quantileGKState': ('quantileGK', 'State'), 'quantilesBFloat16WeightedState': ('quantilesBFloat16Weighted', 'State'), 'cramersVBiasCorrectedState': ('cramersVBiasCorrected', 'State'), 'maxMapState': ('maxMap', 'State'), 'sequenceMatchState': ('sequenceMatch', 'State'), 'quantileBFloat16WeightedState': ('quantileBFloat16Weighted', 'State'), 'avgWeightedState': ('avgWeighted', 'State'), 'quantileInterpolatedWeightedState': ('quantileInterpolatedWeighted', 'State'), 'categoricalInformationValueState': ('categoricalInformationValue', 'State'), 'studentTTestState': ('studentTTest', 'State'), 'minState': ('min', 'State'), 'maxState': ('max', 'State'), 'quantilesState': ('quantiles', 'State'), 'groupConcatState': ('groupConcat', 'State'), 'groupArrayLastState': ('groupArrayLast', 'State'), 'groupBitmapXorState': ('groupBitmapXor', 'State'), 'kurtSampState': ('kurtSamp', 'State'), 'simpleLinearRegressionMerge': ('simpleLinearRegression', 'Merge'), 'quantilesTimingWeightedMerge': ('quantilesTimingWeighted', 'Merge'), 'intervalLengthSumMerge': ('intervalLengthSum', 'Merge'), 'quantilesBFloat16Merge': ('quantilesBFloat16', 'Merge'), 'deltaSumMerge': ('deltaSum', 'Merge'), 'maxIntersectionsMerge': ('maxIntersections', 'Merge'), 'quantilesExactLowMerge': ('quantilesExactLow', 'Merge'), 'contingencyMerge': ('contingency', 'Merge'), 'anyLastMerge': ('anyLast', 'Merge'), 'last_valueMerge': ('last_value', 'Merge'), 'sparkBarMerge': ('sparkBar', 'Merge'), 'groupArrayMerge': ('groupArray', 'Merge'), 'stddevPopMerge': ('stddevPop', 'Merge'), 'quantilesTimingMerge': ('quantilesTiming', 'Merge'), 'uniqHLL12Merge': ('uniqHLL12', 'Merge'), 'quantilesExactHighMerge': ('quantilesExactHigh', 'Merge'), 'uniqCombinedMerge': ('uniqCombined', 'Merge'), 'quantilesExactExclusiveMerge': ('quantilesExactExclusive', 'Merge'), 'quantilesExactMerge': ('quantilesExact', 'Merge'), 'exponentialMovingAverageMerge': ('exponentialMovingAverage', 'Merge'), 'stochasticLogisticRegressionMerge': ('stochasticLogisticRegression', 'Merge'), 'quantileExactLowMerge': ('quantileExactLow', 'Merge'), 'maxIntersectionsPositionMerge': ('maxIntersectionsPosition', 'Merge'), 'first_valueMerge': ('first_value', 'Merge'), 'mannWhitneyUTestMerge': ('mannWhitneyUTest', 'Merge'), 'quantilesTDigestWeightedMerge': ('quantilesTDigestWeighted', 'Merge'), 'groupBitmapMerge': ('groupBitmap', 'Merge'), 'sumMapMerge': ('sumMap', 'Merge'), 'groupBitmapOrMerge': ('groupBitmapOr', 'Merge'), 'rankCorrMerge': ('rankCorr', 'Merge'), 'countMerge': ('count', 'Merge'), 'quantileTimingWeightedMerge': ('quantileTimingWeighted', 'Merge'), 'uniqExactMerge': ('uniqExact', 'Merge'), 'stddevSampMerge': ('stddevSamp', 'Merge'), 'windowFunnelMerge': ('windowFunnel', 'Merge'), 'quantilesTDigestMerge': ('quantilesTDigest', 'Merge'), 'theilsUMerge': ('theilsU', 'Merge'), 'groupBitAndMerge': ('groupBitAnd', 'Merge'), 'groupBitOrMerge': ('groupBitOr', 'Merge'), 'groupBitmapAndMerge': ('groupBitmapAnd', 'Merge'), 'welchTTestMerge': ('welchTTest', 'Merge'), 'entropyMerge': ('entropy', 'Merge'), 'argMinMerge': ('argMin', 'Merge'), 'anyMerge': ('any', 'Merge'), 'retentionMerge': ('retention', 'Merge'), 'sequenceNextNodeMerge': ('sequenceNextNode', 'Merge'), 'corrMerge': ('corr', 'Merge'), 'uniqUpToMerge': ('uniqUpTo', 'Merge'), 'quantileMerge': ('quantile', 'Merge'), 'groupArrayMovingSumMerge': ('groupArrayMovingSum', 'Merge'), 'varSampMerge': ('varSamp', 'Merge'), 'stochasticLinearRegressionMerge': ('stochasticLinearRegression', 'Merge'), 'sequenceCountMerge': ('sequenceCount', 'Merge'), 'uniqCombined64Merge': ('uniqCombined64', 'Merge'), 'quantileTimingMerge': ('quantileTiming', 'Merge'), 'quantilesExactWeightedMerge': ('quantilesExactWeighted', 'Merge'), 'anyHeavyMerge': ('anyHeavy', 'Merge'), 'quantileTDigestMerge': ('quantileTDigest', 'Merge'), 'kolmogorovSmirnovTestMerge': ('kolmogorovSmirnovTest', 'Merge'), 'uniqThetaMerge': ('uniqTheta', 'Merge'), 'histogramMerge': ('histogram', 'Merge'), 'quantileTDigestWeightedMerge': ('quantileTDigestWeighted', 'Merge'), 'covarPopMerge': ('covarPop', 'Merge'), 'quantileExactInclusiveMerge': ('quantileExactInclusive', 'Merge'), 'boundingRatioMerge': ('boundingRatio', 'Merge'), 'quantileExactMerge': ('quantileExact', 'Merge'), 'varPopMerge': ('varPop', 'Merge'), 'sumKahanMerge': ('sumKahan', 'Merge'), 'minMapMerge': ('minMap', 'Merge'), 'meanZTestMerge': ('meanZTest', 'Merge'), 'topKWeightedMerge': ('topKWeighted', 'Merge'), 'uniqMerge': ('uniq', 'Merge'), 'largestTriangleThreeBucketsMerge': ('largestTriangleThreeBuckets', 'Merge'), 'quantileExactHighMerge': ('quantileExactHigh', 'Merge'), 'kurtPopMerge': ('kurtPop', 'Merge'), 'quantilesInterpolatedWeightedMerge': ('quantilesInterpolatedWeighted', 'Merge'), 'quantileBFloat16Merge': ('quantileBFloat16', 'Merge'), 'approx_top_sumMerge': ('approx_top_sum', 'Merge'), 'sumMerge': ('sum', 'Merge'), 'topKMerge': ('topK', 'Merge'), 'skewSampMerge': ('skewSamp', 'Merge'), 'groupArrayInsertAtMerge': ('groupArrayInsertAt', 'Merge'), 'quantilesDeterministicMerge': ('quantilesDeterministic', 'Merge'), 'sumCountMerge': ('sumCount', 'Merge'), 'sumWithOverflowMerge': ('sumWithOverflow', 'Merge'), 'avgMerge': ('avg', 'Merge'), 'skewPopMerge': ('skewPop', 'Merge'), 'cramersVMerge': ('cramersV', 'Merge'), 'groupArrayMovingAvgMerge': ('groupArrayMovingAvg', 'Merge'), 'exponentialTimeDecayedAvgMerge': ('exponentialTimeDecayedAvg', 'Merge'), 'quantileDeterministicMerge': ('quantileDeterministic', 'Merge'), 'medianMerge': ('median', 'Merge'), 'groupUniqArrayMerge': ('groupUniqArray', 'Merge'), 'covarSampMerge': ('covarSamp', 'Merge'), 'argMaxMerge': ('argMax', 'Merge'), 'groupBitXorMerge': ('groupBitXor', 'Merge'), 'deltaSumTimestampMerge': ('deltaSumTimestamp', 'Merge'), 'groupArraySampleMerge': ('groupArraySample', 'Merge'), 'quantilesGKMerge': ('quantilesGK', 'Merge'), 'quantileExactWeightedMerge': ('quantileExactWeighted', 'Merge'), 'quantileGKMerge': ('quantileGK', 'Merge'), 'quantilesBFloat16WeightedMerge': ('quantilesBFloat16Weighted', 'Merge'), 'cramersVBiasCorrectedMerge': ('cramersVBiasCorrected', 'Merge'), 'maxMapMerge': ('maxMap', 'Merge'), 'sequenceMatchMerge': ('sequenceMatch', 'Merge'), 'quantileBFloat16WeightedMerge': ('quantileBFloat16Weighted', 'Merge'), 'avgWeightedMerge': ('avgWeighted', 'Merge'), 'quantileInterpolatedWeightedMerge': ('quantileInterpolatedWeighted', 'Merge'), 'categoricalInformationValueMerge': ('categoricalInformationValue', 'Merge'), 'studentTTestMerge': ('studentTTest', 'Merge'), 'minMerge': ('min', 'Merge'), 'maxMerge': ('max', 'Merge'), 'quantilesMerge': ('quantiles', 'Merge'), 'groupConcatMerge': ('groupConcat', 'Merge'), 'groupArrayLastMerge': ('groupArrayLast', 'Merge'), 'groupBitmapXorMerge': ('groupBitmapXor', 'Merge'), 'kurtSampMerge': ('kurtSamp', 'Merge'), 'simpleLinearRegressionMap': ('simpleLinearRegression', 'Map'), 'quantilesTimingWeightedMap': ('quantilesTimingWeighted', 'Map'), 'intervalLengthSumMap': ('intervalLengthSum', 'Map'), 'quantilesBFloat16Map': ('quantilesBFloat16', 'Map'), 'deltaSumMap': ('deltaSum', 'Map'), 'maxIntersectionsMap': ('maxIntersections', 'Map'), 'quantilesExactLowMap': ('quantilesExactLow', 'Map'), 'contingencyMap': ('contingency', 'Map'), 'anyLastMap': ('anyLast', 'Map'), 'last_valueMap': ('last_value', 'Map'), 'sparkBarMap': ('sparkBar', 'Map'), 'groupArrayMap': ('groupArray', 'Map'), 'stddevPopMap': ('stddevPop', 'Map'), 'quantilesTimingMap': ('quantilesTiming', 'Map'), 'uniqHLL12Map': ('uniqHLL12', 'Map'), 'quantilesExactHighMap': ('quantilesExactHigh', 'Map'), 'uniqCombinedMap': ('uniqCombined', 'Map'), 'quantilesExactExclusiveMap': ('quantilesExactExclusive', 'Map'), 'quantilesExactMap': ('quantilesExact', 'Map'), 'exponentialMovingAverageMap': ('exponentialMovingAverage', 'Map'), 'stochasticLogisticRegressionMap': ('stochasticLogisticRegression', 'Map'), 'quantileExactLowMap': ('quantileExactLow', 'Map'), 'maxIntersectionsPositionMap': ('maxIntersectionsPosition', 'Map'), 'first_valueMap': ('first_value', 'Map'), 'mannWhitneyUTestMap': ('mannWhitneyUTest', 'Map'), 'quantilesTDigestWeightedMap': ('quantilesTDigestWeighted', 'Map'), 'groupBitmapMap': ('groupBitmap', 'Map'), 'sumMapMap': ('sumMap', 'Map'), 'groupBitmapOrMap': ('groupBitmapOr', 'Map'), 'rankCorrMap': ('rankCorr', 'Map'), 'countMap': ('count', 'Map'), 'quantileTimingWeightedMap': ('quantileTimingWeighted', 'Map'), 'uniqExactMap': ('uniqExact', 'Map'), 'stddevSampMap': ('stddevSamp', 'Map'), 'windowFunnelMap': ('windowFunnel', 'Map'), 'quantilesTDigestMap': ('quantilesTDigest', 'Map'), 'theilsUMap': ('theilsU', 'Map'), 'groupBitAndMap': ('groupBitAnd', 'Map'), 'groupBitOrMap': ('groupBitOr', 'Map'), 'groupBitmapAndMap': ('groupBitmapAnd', 'Map'), 'welchTTestMap': ('welchTTest', 'Map'), 'entropyMap': ('entropy', 'Map'), 'argMinMap': ('argMin', 'Map'), 'anyMap': ('any', 'Map'), 'retentionMap': ('retention', 'Map'), 'sequenceNextNodeMap': ('sequenceNextNode', 'Map'), 'corrMap': ('corr', 'Map'), 'uniqUpToMap': ('uniqUpTo', 'Map'), 'quantileMap': ('quantile', 'Map'), 'groupArrayMovingSumMap': ('groupArrayMovingSum', 'Map'), 'varSampMap': ('varSamp', 'Map'), 'stochasticLinearRegressionMap': ('stochasticLinearRegression', 'Map'), 'sequenceCountMap': ('sequenceCount', 'Map'), 'uniqCombined64Map': ('uniqCombined64', 'Map'), 'quantileTimingMap': ('quantileTiming', 'Map'), 'quantilesExactWeightedMap': ('quantilesExactWeighted', 'Map'), 'anyHeavyMap': ('anyHeavy', 'Map'), 'quantileTDigestMap': ('quantileTDigest', 'Map'), 'kolmogorovSmirnovTestMap': ('kolmogorovSmirnovTest', 'Map'), 'uniqThetaMap': ('uniqTheta', 'Map'), 'histogramMap': ('histogram', 'Map'), 'quantileTDigestWeightedMap': ('quantileTDigestWeighted', 'Map'), 'covarPopMap': ('covarPop', 'Map'), 'quantileExactInclusiveMap': ('quantileExactInclusive', 'Map'), 'boundingRatioMap': ('boundingRatio', 'Map'), 'quantileExactMap': ('quantileExact', 'Map'), 'varPopMap': ('varPop', 'Map'), 'sumKahanMap': ('sumKahan', 'Map'), 'minMapMap': ('minMap', 'Map'), 'meanZTestMap': ('meanZTest', 'Map'), 'topKWeightedMap': ('topKWeighted', 'Map'), 'uniqMap': ('uniq', 'Map'), 'largestTriangleThreeBucketsMap': ('largestTriangleThreeBuckets', 'Map'), 'quantileExactHighMap': ('quantileExactHigh', 'Map'), 'kurtPopMap': ('kurtPop', 'Map'), 'quantilesInterpolatedWeightedMap': ('quantilesInterpolatedWeighted', 'Map'), 'quantileBFloat16Map': ('quantileBFloat16', 'Map'), 'approx_top_sumMap': ('approx_top_sum', 'Map'), 'sumMap': ('sumMap', None), 'topKMap': ('topK', 'Map'), 'skewSampMap': ('skewSamp', 'Map'), 'groupArrayInsertAtMap': ('groupArrayInsertAt', 'Map'), 'quantilesDeterministicMap': ('quantilesDeterministic', 'Map'), 'sumCountMap': ('sumCount', 'Map'), 'sumWithOverflowMap': ('sumWithOverflow', 'Map'), 'avgMap': ('avg', 'Map'), 'skewPopMap': ('skewPop', 'Map'), 'cramersVMap': ('cramersV', 'Map'), 'groupArrayMovingAvgMap': ('groupArrayMovingAvg', 'Map'), 'exponentialTimeDecayedAvgMap': ('exponentialTimeDecayedAvg', 'Map'), 'quantileDeterministicMap': ('quantileDeterministic', 'Map'), 'medianMap': ('median', 'Map'), 'groupUniqArrayMap': ('groupUniqArray', 'Map'), 'covarSampMap': ('covarSamp', 'Map'), 'argMaxMap': ('argMax', 'Map'), 'groupBitXorMap': ('groupBitXor', 'Map'), 'deltaSumTimestampMap': ('deltaSumTimestamp', 'Map'), 'groupArraySampleMap': ('groupArraySample', 'Map'), 'quantilesGKMap': ('quantilesGK', 'Map'), 'quantileExactWeightedMap': ('quantileExactWeighted', 'Map'), 'quantileGKMap': ('quantileGK', 'Map'), 'quantilesBFloat16WeightedMap': ('quantilesBFloat16Weighted', 'Map'), 'cramersVBiasCorrectedMap': ('cramersVBiasCorrected', 'Map'), 'maxMapMap': ('maxMap', 'Map'), 'sequenceMatchMap': ('sequenceMatch', 'Map'), 'quantileBFloat16WeightedMap': ('quantileBFloat16Weighted', 'Map'), 'avgWeightedMap': ('avgWeighted', 'Map'), 'quantileInterpolatedWeightedMap': ('quantileInterpolatedWeighted', 'Map'), 'categoricalInformationValueMap': ('categoricalInformationValue', 'Map'), 'studentTTestMap': ('studentTTest', 'Map'), 'minMap': ('minMap', None), 'maxMap': ('maxMap', None), 'quantilesMap': ('quantiles', 'Map'), 'groupConcatMap': ('groupConcat', 'Map'), 'groupArrayLastMap': ('groupArrayLast', 'Map'), 'groupBitmapXorMap': ('groupBitmapXor', 'Map'), 'kurtSampMap': ('kurtSamp', 'Map'), 'simpleLinearRegressionIf': ('simpleLinearRegression', 'If'), 'quantilesTimingWeightedIf': ('quantilesTimingWeighted', 'If'), 'intervalLengthSumIf': ('intervalLengthSum', 'If'), 'quantilesBFloat16If': ('quantilesBFloat16', 'If'), 'deltaSumIf': ('deltaSum', 'If'), 'maxIntersectionsIf': ('maxIntersections', 'If'), 'quantilesExactLowIf': ('quantilesExactLow', 'If'), 'contingencyIf': ('contingency', 'If'), 'anyLastIf': ('anyLast', 'If'), 'last_valueIf': ('last_value', 'If'), 'sparkBarIf': ('sparkBar', 'If'), 'groupArrayIf': ('groupArray', 'If'), 'stddevPopIf': ('stddevPop', 'If'), 'quantilesTimingIf': ('quantilesTiming', 'If'), 'uniqHLL12If': ('uniqHLL12', 'If'), 'quantilesExactHighIf': ('quantilesExactHigh', 'If'), 'uniqCombinedIf': ('uniqCombined', 'If'), 'quantilesExactExclusiveIf': ('quantilesExactExclusive', 'If'), 'quantilesExactIf': ('quantilesExact', 'If'), 'exponentialMovingAverageIf': ('exponentialMovingAverage', 'If'), 'stochasticLogisticRegressionIf': ('stochasticLogisticRegression', 'If'), 'quantileExactLowIf': ('quantileExactLow', 'If'), 'maxIntersectionsPositionIf': ('maxIntersectionsPosition', 'If'), 'first_valueIf': ('first_value', 'If'), 'mannWhitneyUTestIf': ('mannWhitneyUTest', 'If'), 'quantilesTDigestWeightedIf': ('quantilesTDigestWeighted', 'If'), 'groupBitmapIf': ('groupBitmap', 'If'), 'sumMapIf': ('sumMap', 'If'), 'groupBitmapOrIf': ('groupBitmapOr', 'If'), 'rankCorrIf': ('rankCorr', 'If'), 'countIf': ('count', 'If'), 'quantileTimingWeightedIf': ('quantileTimingWeighted', 'If'), 'uniqExactIf': ('uniqExact', 'If'), 'stddevSampIf': ('stddevSamp', 'If'), 'windowFunnelIf': ('windowFunnel', 'If'), 'quantilesTDigestIf': ('quantilesTDigest', 'If'), 'theilsUIf': ('theilsU', 'If'), 'groupBitAndIf': ('groupBitAnd', 'If'), 'groupBitOrIf': ('groupBitOr', 'If'), 'groupBitmapAndIf': ('groupBitmapAnd', 'If'), 'welchTTestIf': ('welchTTest', 'If'), 'entropyIf': ('entropy', 'If'), 'argMinIf': ('argMin', 'If'), 'anyIf': ('any', 'If'), 'retentionIf': ('retention', 'If'), 'sequenceNextNodeIf': ('sequenceNextNode', 'If'), 'corrIf': ('corr', 'If'), 'uniqUpToIf': ('uniqUpTo', 'If'), 'quantileIf': ('quantile', 'If'), 'groupArrayMovingSumIf': ('groupArrayMovingSum', 'If'), 'varSampIf': ('varSamp', 'If'), 'stochasticLinearRegressionIf': ('stochasticLinearRegression', 'If'), 'sequenceCountIf': ('sequenceCount', 'If'), 'uniqCombined64If': ('uniqCombined64', 'If'), 'quantileTimingIf': ('quantileTiming', 'If'), 'quantilesExactWeightedIf': ('quantilesExactWeighted', 'If'), 'anyHeavyIf': ('anyHeavy', 'If'), 'quantileTDigestIf': ('quantileTDigest', 'If'), 'kolmogorovSmirnovTestIf': ('kolmogorovSmirnovTest', 'If'), 'uniqThetaIf': ('uniqTheta', 'If'), 'histogramIf': ('histogram', 'If'), 'quantileTDigestWeightedIf': ('quantileTDigestWeighted', 'If'), 'covarPopIf': ('covarPop', 'If'), 'quantileExactInclusiveIf': ('quantileExactInclusive', 'If'), 'boundingRatioIf': ('boundingRatio', 'If'), 'quantileExactIf': ('quantileExact', 'If'), 'varPopIf': ('varPop', 'If'), 'sumKahanIf': ('sumKahan', 'If'), 'minMapIf': ('minMap', 'If'), 'meanZTestIf': ('meanZTest', 'If'), 'topKWeightedIf': ('topKWeighted', 'If'), 'uniqIf': ('uniq', 'If'), 'largestTriangleThreeBucketsIf': ('largestTriangleThreeBuckets', 'If'), 'quantileExactHighIf': ('quantileExactHigh', 'If'), 'kurtPopIf': ('kurtPop', 'If'), 'quantilesInterpolatedWeightedIf': ('quantilesInterpolatedWeighted', 'If'), 'quantileBFloat16If': ('quantileBFloat16', 'If'), 'approx_top_sumIf': ('approx_top_sum', 'If'), 'sumIf': ('sum', 'If'), 'topKIf': ('topK', 'If'), 'skewSampIf': ('skewSamp', 'If'), 'groupArrayInsertAtIf': ('groupArrayInsertAt', 'If'), 'quantilesDeterministicIf': ('quantilesDeterministic', 'If'), 'sumCountIf': ('sumCount', 'If'), 'sumWithOverflowIf': ('sumWithOverflow', 'If'), 'avgIf': ('avg', 'If'), 'skewPopIf': ('skewPop', 'If'), 'cramersVIf': ('cramersV', 'If'), 'groupArrayMovingAvgIf': ('groupArrayMovingAvg', 'If'), 'exponentialTimeDecayedAvgIf': ('exponentialTimeDecayedAvg', 'If'), 'quantileDeterministicIf': ('quantileDeterministic', 'If'), 'medianIf': ('median', 'If'), 'groupUniqArrayIf': ('groupUniqArray', 'If'), 'covarSampIf': ('covarSamp', 'If'), 'argMaxIf': ('argMax', 'If'), 'groupBitXorIf': ('groupBitXor', 'If'), 'deltaSumTimestampIf': ('deltaSumTimestamp', 'If'), 'groupArraySampleIf': ('groupArraySample', 'If'), 'quantilesGKIf': ('quantilesGK', 'If'), 'quantileExactWeightedIf': ('quantileExactWeighted', 'If'), 'quantileGKIf': ('quantileGK', 'If'), 'quantilesBFloat16WeightedIf': ('quantilesBFloat16Weighted', 'If'), 'cramersVBiasCorrectedIf': ('cramersVBiasCorrected', 'If'), 'maxMapIf': ('maxMap', 'If'), 'sequenceMatchIf': ('sequenceMatch', 'If'), 'quantileBFloat16WeightedIf': ('quantileBFloat16Weighted', 'If'), 'avgWeightedIf': ('avgWeighted', 'If'), 'quantileInterpolatedWeightedIf': ('quantileInterpolatedWeighted', 'If'), 'categoricalInformationValueIf': ('categoricalInformationValue', 'If'), 'studentTTestIf': ('studentTTest', 'If'), 'minIf': ('min', 'If'), 'maxIf': ('max', 'If'), 'quantilesIf': ('quantiles', 'If'), 'groupConcatIf': ('groupConcat', 'If'), 'groupArrayLastIf': ('groupArrayLast', 'If'), 'groupBitmapXorIf': ('groupBitmapXor', 'If'), 'kurtSampIf': ('kurtSamp', 'If'), 'simpleLinearRegression': ('simpleLinearRegression', None), 'quantilesTimingWeighted': ('quantilesTimingWeighted', None), 'intervalLengthSum': ('intervalLengthSum', None), 'quantilesBFloat16': ('quantilesBFloat16', None), 'deltaSum': ('deltaSum', None), 'maxIntersections': ('maxIntersections', None), 'quantilesExactLow': ('quantilesExactLow', None), 'contingency': ('contingency', None), 'anyLast': ('anyLast', None), 'last_value': ('last_value', None), 'sparkBar': ('sparkBar', None), 'groupArray': ('groupArray', None), 'stddevPop': ('stddevPop', None), 'quantilesTiming': ('quantilesTiming', None), 'uniqHLL12': ('uniqHLL12', None), 'quantilesExactHigh': ('quantilesExactHigh', None), 'uniqCombined': ('uniqCombined', None), 'quantilesExactExclusive': ('quantilesExactExclusive', None), 'quantilesExact': ('quantilesExact', None), 'exponentialMovingAverage': ('exponentialMovingAverage', None), 'stochasticLogisticRegression': ('stochasticLogisticRegression', None), 'quantileExactLow': ('quantileExactLow', None), 'maxIntersectionsPosition': ('maxIntersectionsPosition', None), 'first_value': ('first_value', None), 'mannWhitneyUTest': ('mannWhitneyUTest', None), 'quantilesTDigestWeighted': ('quantilesTDigestWeighted', None), 'groupBitmap': ('groupBitmap', None), 'groupBitmapOr': ('groupBitmapOr', None), 'rankCorr': ('rankCorr', None), 'count': ('count', None), 'quantileTimingWeighted': ('quantileTimingWeighted', None), 'uniqExact': ('uniqExact', None), 'stddevSamp': ('stddevSamp', None), 'windowFunnel': ('windowFunnel', None), 'quantilesTDigest': ('quantilesTDigest', None), 'theilsU': ('theilsU', None), 'groupBitAnd': ('groupBitAnd', None), 'groupBitOr': ('groupBitOr', None), 'groupBitmapAnd': ('groupBitmapAnd', None), 'welchTTest': ('welchTTest', None), 'entropy': ('entropy', None), 'argMin': ('argMin', None), 'any': ('any', None), 'retention': ('retention', None), 'sequenceNextNode': ('sequenceNextNode', None), 'corr': ('corr', None), 'uniqUpTo': ('uniqUpTo', None), 'quantile': ('quantile', None), 'groupArrayMovingSum': ('groupArrayMovingSum', None), 'varSamp': ('varSamp', None), 'stochasticLinearRegression': ('stochasticLinearRegression', None), 'sequenceCount': ('sequenceCount', None), 'uniqCombined64': ('uniqCombined64', None), 'quantileTiming': ('quantileTiming', None), 'quantilesExactWeighted': ('quantilesExactWeighted', None), 'anyHeavy': ('anyHeavy', None), 'quantileTDigest': ('quantileTDigest', None), 'kolmogorovSmirnovTest': ('kolmogorovSmirnovTest', None), 'uniqTheta': ('uniqTheta', None), 'histogram': ('histogram', None), 'quantileTDigestWeighted': ('quantileTDigestWeighted', None), 'covarPop': ('covarPop', None), 'quantileExactInclusive': ('quantileExactInclusive', None), 'boundingRatio': ('boundingRatio', None), 'quantileExact': ('quantileExact', None), 'varPop': ('varPop', None), 'sumKahan': ('sumKahan', None), 'meanZTest': ('meanZTest', None), 'topKWeighted': ('topKWeighted', None), 'uniq': ('uniq', None), 'largestTriangleThreeBuckets': ('largestTriangleThreeBuckets', None), 'quantileExactHigh': ('quantileExactHigh', None), 'kurtPop': ('kurtPop', None), 'quantilesInterpolatedWeighted': ('quantilesInterpolatedWeighted', None), 'quantileBFloat16': ('quantileBFloat16', None), 'approx_top_sum': ('approx_top_sum', None), 'sum': ('sum', None), 'topK': ('topK', None), 'skewSamp': ('skewSamp', None), 'groupArrayInsertAt': ('groupArrayInsertAt', None), 'quantilesDeterministic': ('quantilesDeterministic', None), 'sumCount': ('sumCount', None), 'sumWithOverflow': ('sumWithOverflow', None), 'avg': ('avg', None), 'skewPop': ('skewPop', None), 'cramersV': ('cramersV', None), 'groupArrayMovingAvg': ('groupArrayMovingAvg', None), 'exponentialTimeDecayedAvg': ('exponentialTimeDecayedAvg', None), 'quantileDeterministic': ('quantileDeterministic', None), 'median': ('median', None), 'groupUniqArray': ('groupUniqArray', None), 'covarSamp': ('covarSamp', None), 'argMax': ('argMax', None), 'groupBitXor': ('groupBitXor', None), 'deltaSumTimestamp': ('deltaSumTimestamp', None), 'groupArraySample': ('groupArraySample', None), 'quantilesGK': ('quantilesGK', None), 'quantileExactWeighted': ('quantileExactWeighted', None), 'quantileGK': ('quantileGK', None), 'quantilesBFloat16Weighted': ('quantilesBFloat16Weighted', None), 'cramersVBiasCorrected': ('cramersVBiasCorrected', None), 'sequenceMatch': ('sequenceMatch', None), 'quantileBFloat16Weighted': ('quantileBFloat16Weighted', None), 'avgWeighted': ('avgWeighted', None), 'quantileInterpolatedWeighted': ('quantileInterpolatedWeighted', None), 'categoricalInformationValue': ('categoricalInformationValue', None), 'studentTTest': ('studentTTest', None), 'min': ('min', None), 'max': ('max', None), 'quantiles': ('quantiles', None), 'groupConcat': ('groupConcat', None), 'groupArrayLast': ('groupArrayLast', None), 'groupBitmapXor': ('groupBitmapXor', None), 'kurtSamp': ('kurtSamp', 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>>, '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>>, 'REFRESH': <function ClickHouseParser.<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: 380>: <function binary_range_parser.<locals>._parse_binary_range>, <TokenType.SIMILAR_TO: 395>: <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: 388>, <TokenType.STRAIGHT_JOIN: 402>, <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.DECLARE: 255>, <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.OUT: 345>, <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.PROJECTION: 365>, <TokenType.PSEUDO_TYPE: 366>, <TokenType.PUT: 367>, <TokenType.RANGE: 371>, <TokenType.RECURSIVE: 372>, <TokenType.REFRESH: 373>, <TokenType.RENAME: 374>, <TokenType.REPLACE: 375>, <TokenType.REFERENCES: 378>, <TokenType.ROLLUP: 383>, <TokenType.ROW: 384>, <TokenType.ROWS: 385>, <TokenType.SEQUENCE: 390>, <TokenType.SET: 392>, <TokenType.SHOW: 394>, <TokenType.SOME: 396>, <TokenType.STORAGE_INTEGRATION: 401>, <TokenType.STRAIGHT_JOIN: 402>, <TokenType.STRUCT: 403>, <TokenType.TAG: 406>, <TokenType.TEMPORARY: 407>, <TokenType.TOP: 408>, <TokenType.TRUE: 410>, <TokenType.TRUNCATE: 411>, <TokenType.TRIGGER: 412>, <TokenType.TYPE: 413>, <TokenType.UNNEST: 417>, <TokenType.UNPIVOT: 418>, <TokenType.UPDATE: 419>, <TokenType.USE: 420>, <TokenType.VIEW: 424>, <TokenType.SEMANTIC_VIEW: 425>, <TokenType.VOLATILE: 426>, <TokenType.UNIQUE: 432>, <TokenType.SINK: 437>, <TokenType.SOURCE: 438>, <TokenType.ANALYZE: 439>, <TokenType.NAMESPACE: 440>, <TokenType.EXPORT: 441>}
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.DECLARE: 255>, <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.OUT: 345>, <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.PROJECTION: 365>, <TokenType.PSEUDO_TYPE: 366>, <TokenType.PUT: 367>, <TokenType.RANGE: 371>, <TokenType.RECURSIVE: 372>, <TokenType.REFRESH: 373>, <TokenType.RENAME: 374>, <TokenType.REPLACE: 375>, <TokenType.REFERENCES: 378>, <TokenType.RIGHT: 379>, <TokenType.ROLLUP: 383>, <TokenType.ROW: 384>, <TokenType.ROWS: 385>, <TokenType.SEMI: 388>, <TokenType.SEQUENCE: 390>, <TokenType.SET: 392>, <TokenType.SHOW: 394>, <TokenType.SOME: 396>, <TokenType.STORAGE_INTEGRATION: 401>, <TokenType.STRAIGHT_JOIN: 402>, <TokenType.STRUCT: 403>, <TokenType.TAG: 406>, <TokenType.TEMPORARY: 407>, <TokenType.TOP: 408>, <TokenType.TRUE: 410>, <TokenType.TRUNCATE: 411>, <TokenType.TRIGGER: 412>, <TokenType.TYPE: 413>, <TokenType.UNNEST: 417>, <TokenType.UNPIVOT: 418>, <TokenType.UPDATE: 419>, <TokenType.USE: 420>, <TokenType.VIEW: 424>, <TokenType.SEMANTIC_VIEW: 425>, <TokenType.VOLATILE: 426>, <TokenType.WINDOW: 430>, <TokenType.UNIQUE: 432>, <TokenType.SINK: 437>, <TokenType.SOURCE: 438>, <TokenType.ANALYZE: 439>, <TokenType.NAMESPACE: 440>, <TokenType.EXPORT: 441>}
LOG_DEFAULTS_TO_LN = True
QUERY_MODIFIER_PARSERS = {<TokenType.MATCH_RECOGNIZE: 326>: <function Parser.<lambda>>, <TokenType.PREWHERE: 361>: <function Parser.<lambda>>, <TokenType.WHERE: 429>: <function Parser.<lambda>>, <TokenType.GROUP_BY: 290>: <function Parser.<lambda>>, <TokenType.HAVING: 292>: <function Parser.<lambda>>, <TokenType.QUALIFY: 368>: <function Parser.<lambda>>, <TokenType.WINDOW: 430>: <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: 405>: <function Parser.<lambda>>, <TokenType.USING: 421>: <function Parser.<lambda>>, <TokenType.CLUSTER_BY: 235>: <function Parser.<lambda>>, <TokenType.DISTRIBUTE_BY: 263>: <function Parser.<lambda>>, <TokenType.SORT_BY: 397>: <function Parser.<lambda>>, <TokenType.CONNECT_BY: 240>: <function Parser.<lambda>>, <TokenType.SETTINGS: 393>: <function ClickHouseParser.<lambda>>, <TokenType.FORMAT: 282>: <function ClickHouseParser.<lambda>>}
CONSTRAINT_PARSERS = {'AUTOINCREMENT': <function Parser.<lambda>>, 'AUTO_INCREMENT': <function Parser.<lambda>>, 'CASESPECIFIC': <function Parser.<lambda>>, 'CHECK': <function Parser.<lambda>>, 'COLLATE': <function Parser.<lambda>>, 'COMMENT': <function Parser.<lambda>>, 'COMPRESS': <function Parser.<lambda>>, 'CLUSTERED': <function Parser.<lambda>>, 'NONCLUSTERED': <function Parser.<lambda>>, 'DEFAULT': <function Parser.<lambda>>, 'ENCODE': <function Parser.<lambda>>, 'EPHEMERAL': <function Parser.<lambda>>, 'EXCLUDE': <function Parser.<lambda>>, 'FOREIGN KEY': <function Parser.<lambda>>, 'FORMAT': <function Parser.<lambda>>, 'GENERATED': <function Parser.<lambda>>, 'IDENTITY': <function Parser.<lambda>>, 'INLINE': <function Parser.<lambda>>, 'LIKE': <function Parser.<lambda>>, 'NOT': <function Parser.<lambda>>, 'NULL': <function Parser.<lambda>>, 'ON': <function Parser.<lambda>>, 'PATH': <function Parser.<lambda>>, 'PERIOD': <function Parser.<lambda>>, 'PRIMARY KEY': <function Parser.<lambda>>, 'REFERENCES': <function Parser.<lambda>>, 'TITLE': <function Parser.<lambda>>, 'TTL': <function Parser.<lambda>>, 'UNIQUE': <function Parser.<lambda>>, 'UPPERCASE': <function Parser.<lambda>>, 'WITH': <function Parser.<lambda>>, 'BUCKET': <function Parser.<lambda>>, 'TRUNCATE': <function Parser.<lambda>>, 'INDEX': <function ClickHouseParser.<lambda>>, 'CODEC': <function ClickHouseParser.<lambda>>, 'ASSUME': <function ClickHouseParser.<lambda>>}
ALTER_PARSERS = {'ADD': <function Parser.<lambda>>, 'AS': <function Parser.<lambda>>, 'ALTER': <function Parser.<lambda>>, 'CLUSTER BY': <function Parser.<lambda>>, 'DELETE': <function Parser.<lambda>>, 'DROP': <function Parser.<lambda>>, 'RENAME': <function Parser.<lambda>>, 'SET': <function Parser.<lambda>>, 'SWAP': <function Parser.<lambda>>, 'MODIFY': <function ClickHouseParser.<lambda>>, 'REPLACE': <function ClickHouseParser.<lambda>>}
SCHEMA_UNNAMED_CONSTRAINTS = {'UNIQUE', 'LIKE', 'BUCKET', 'INDEX', 'PERIOD', 'EXCLUDE', 'PRIMARY KEY', 'FOREIGN KEY', 'TRUNCATE'}
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: 439>: <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.DECLARE: 255>: <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: 377>: <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: 373>: <function Parser.<lambda>>, <TokenType.ROLLBACK: 382>: <function Parser.<lambda>>, <TokenType.SET: 392>: <function Parser.<lambda>>, <TokenType.TRUNCATE: 411>: <function Parser.<lambda>>, <TokenType.UNCACHE: 414>: <function Parser.<lambda>>, <TokenType.UNPIVOT: 418>: <function Parser.<lambda>>, <TokenType.UPDATE: 419>: <function Parser.<lambda>>, <TokenType.USE: 420>: <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
TEXT_MATCH_EXCLUDED_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
VERSION_PHRASES
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
UNPIVOT_VALUE_COLUMNS_FIRST
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