aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2025-04-04 11:33:30 +0000
committerAlexander Smirnov <alex@ydb.tech>2025-04-04 11:33:30 +0000
commit5d5c6dc1b2339bf7d7757ccd8c7f7fc02b88d63a (patch)
treeb43ae343b8f9335b0289956b52f10ead5fc3661c
parent0772affb4f970fafcf51d27b9f05abd2b061139a (diff)
parent1340d5e99dbcdc63468e2f5f7ffab3a5b5f20dd0 (diff)
downloadydb-5d5c6dc1b2339bf7d7757ccd8c7f7fc02b88d63a.tar.gz
Merge pull request #16761 from ydb-platform/merge-libs-250404-0808
-rw-r--r--build/conf/go.conf110
-rw-r--r--build/conf/proto.conf3
-rw-r--r--build/conf/python.conf14
-rw-r--r--build/export_generators/ide-gradle/build.gradle.kts.jinja6
-rw-r--r--build/export_generators/ide-gradle/build.gradle.kts.proto.jinja14
-rw-r--r--build/export_generators/ide-gradle/builddir.jinja6
-rw-r--r--build/export_generators/ide-gradle/proto_builddir.jinja2
-rw-r--r--build/export_generators/ide-gradle/proto_prepare.jinja40
-rw-r--r--build/export_generators/ide-gradle/proto_vars.jinja4
-rw-r--r--build/export_generators/ide-gradle/run_common.jinja11
-rw-r--r--build/export_generators/ide-gradle/run_java_program.jinja46
-rw-r--r--build/export_generators/ide-gradle/run_program.jinja49
-rw-r--r--build/external_resources/ymake/public.resources.json10
-rw-r--r--build/external_resources/ymake/resources.json10
-rw-r--r--build/mapping.conf.json16
-rw-r--r--build/plugins/_dart_fields.py30
-rw-r--r--build/plugins/ytest.py2
-rw-r--r--build/prebuilt/tools/black_linter/resources.json12
-rw-r--r--build/scripts/check_config_h.py8
-rw-r--r--build/sysincl/esp-idf.yml3
-rw-r--r--build/ymake.core.conf10
-rw-r--r--contrib/libs/cxxsupp/builtins/.yandex_meta/build.ym2
-rw-r--r--contrib/libs/cxxsupp/builtins/ya.make4
-rw-r--r--contrib/libs/libfuzzer/.yandex_meta/override.nix4
-rw-r--r--contrib/libs/libfuzzer/lib/fuzzer/afl/ya.make2
-rw-r--r--contrib/libs/libfuzzer/ya.make4
-rw-r--r--contrib/libs/libunwind/.yandex_meta/override.nix4
-rw-r--r--contrib/libs/libunwind/ya.make4
-rw-r--r--contrib/python/iniconfig/.dist-info/METADATA9
-rw-r--r--contrib/python/iniconfig/LICENSE36
-rw-r--r--contrib/python/iniconfig/iniconfig/__init__.py2
-rw-r--r--contrib/python/iniconfig/iniconfig/_version.py23
-rw-r--r--contrib/python/iniconfig/iniconfig/exceptions.py2
-rw-r--r--contrib/python/iniconfig/ya.make2
-rw-r--r--library/cpp/neh/http2.cpp9
-rw-r--r--library/cpp/neh/https.cpp14
-rw-r--r--ydb/ci/rightlib.txt2
-rw-r--r--yql/essentials/cfg/tests/gateways-experimental.conf20
-rw-r--r--yql/essentials/core/peephole_opt/yql_opt_peephole_physical.cpp347
-rw-r--r--yql/essentials/core/type_ann/type_ann_blocks.cpp27
-rw-r--r--yql/essentials/core/yql_expr_type_annotation.h2
-rw-r--r--yql/essentials/core/yql_join.cpp76
-rw-r--r--yql/essentials/core/yql_join.h3
-rw-r--r--yql/essentials/data/language/pragmas_opensource.json1
-rw-r--r--yql/essentials/data/language/rules_corr_basic.json2
-rw-r--r--yql/essentials/docs/ru/syntax/expressions.md22
-rw-r--r--yql/essentials/minikql/computation/mkql_method_address_helper.h13
-rw-r--r--yql/essentials/providers/common/config/yql_dispatch.cpp6
-rw-r--r--yql/essentials/providers/common/config/yql_dispatch.h8
-rw-r--r--yql/essentials/providers/common/provider/yql_provider.cpp2
-rw-r--r--yql/essentials/providers/common/provider/yql_provider.h2
-rw-r--r--yql/essentials/public/fastcheck/format.cpp9
-rw-r--r--yql/essentials/public/fastcheck/linter_ut.cpp13
-rw-r--r--yql/essentials/public/fastcheck/ya.make1
-rw-r--r--yql/essentials/sql/v1/complete/antlr4/c3i.h2
-rw-r--r--yql/essentials/sql/v1/complete/antlr4/c3t.h6
-rw-r--r--yql/essentials/sql/v1/complete/bench/main.cpp40
-rw-r--r--yql/essentials/sql/v1/complete/bench/ya.make13
-rw-r--r--yql/essentials/sql/v1/complete/name/static/default_name_set.cpp73
-rw-r--r--yql/essentials/sql/v1/complete/name/static/frequency.cpp87
-rw-r--r--yql/essentials/sql/v1/complete/name/static/frequency.h17
-rw-r--r--yql/essentials/sql/v1/complete/name/static/frequency_ut.cpp37
-rw-r--r--yql/essentials/sql/v1/complete/name/static/json_name_set.cpp58
-rw-r--r--yql/essentials/sql/v1/complete/name/static/name_service.cpp84
-rw-r--r--yql/essentials/sql/v1/complete/name/static/name_service.h6
-rw-r--r--yql/essentials/sql/v1/complete/name/static/ranking.cpp102
-rw-r--r--yql/essentials/sql/v1/complete/name/static/ranking.h23
-rw-r--r--yql/essentials/sql/v1/complete/name/static/ranking_ut.cpp14
-rw-r--r--yql/essentials/sql/v1/complete/name/static/ut/ya.make7
-rw-r--r--yql/essentials/sql/v1/complete/name/static/ya.make16
-rw-r--r--yql/essentials/sql/v1/complete/sql_complete.cpp5
-rw-r--r--yql/essentials/sql/v1/complete/sql_complete_ut.cpp209
-rw-r--r--yql/essentials/sql/v1/complete/syntax/grammar.cpp32
-rw-r--r--yql/essentials/sql/v1/complete/syntax/grammar.h1
-rw-r--r--yql/essentials/sql/v1/complete/syntax/local.cpp20
-rw-r--r--yql/essentials/sql/v1/complete/syntax/ya.make5
-rw-r--r--yql/essentials/sql/v1/context.cpp12
-rw-r--r--yql/essentials/sql/v1/context.h2
-rw-r--r--yql/essentials/sql/v1/lexer/lexer_ut.cpp7
-rw-r--r--yql/essentials/sql/v1/lexer/regex/lexer.cpp5
-rw-r--r--yql/essentials/sql/v1/sql_query.cpp57
-rw-r--r--yql/essentials/sql/v1/sql_query.h2
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part6/canondata/result.json14
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part8/canondata/result.json14
-rw-r--r--yql/essentials/tests/s-expressions/suites/Blocks/ListFromBlocks.yqls23
-rw-r--r--yql/essentials/tests/s-expressions/suites/Blocks/ListToBlocks.yqls23
-rw-r--r--yql/essentials/tools/yql_complete/ya.make2
-rw-r--r--yql/essentials/tools/yql_complete/yql_complete.cpp40
-rw-r--r--yql/essentials/udfs/language/yql/test/canondata/result.json5
-rw-r--r--yql/essentials/udfs/language/yql/test/canondata/test.test_ExtractPragmas_/results.txt87
-rw-r--r--yql/essentials/udfs/language/yql/test/cases/ExtractPragmas.sql8
-rw-r--r--yql/essentials/udfs/language/yql/yql_language_udf.cpp8
-rw-r--r--yql/essentials/utils/method_index.h7
-rw-r--r--yt/cpp/mapreduce/client/client.cpp48
-rw-r--r--yt/cpp/mapreduce/client/client.h20
-rw-r--r--yt/cpp/mapreduce/client/operation.cpp3
-rw-r--r--yt/cpp/mapreduce/client/partition_reader.cpp66
-rw-r--r--yt/cpp/mapreduce/client/partition_reader.h18
-rw-r--r--yt/cpp/mapreduce/client/ya.make1
-rw-r--r--yt/cpp/mapreduce/http_client/raw_client.cpp18
-rw-r--r--yt/cpp/mapreduce/http_client/raw_client.h5
-rw-r--r--yt/cpp/mapreduce/http_client/rpc_parameters_serialization.cpp8
-rw-r--r--yt/cpp/mapreduce/http_client/rpc_parameters_serialization.h4
-rw-r--r--yt/cpp/mapreduce/interface/client_method_options.h22
-rw-r--r--yt/cpp/mapreduce/interface/common.h3
-rw-r--r--yt/cpp/mapreduce/interface/io-inl.h25
-rw-r--r--yt/cpp/mapreduce/interface/io.h42
-rw-r--r--yt/cpp/mapreduce/interface/operation.h3
-rw-r--r--yt/cpp/mapreduce/interface/raw_client.h5
-rw-r--r--yt/cpp/mapreduce/interface/serialize.cpp1
-rw-r--r--yt/yql/providers/yt/common/yql_yt_settings.cpp7
-rw-r--r--yt/yql/providers/yt/common/yql_yt_settings.h1
-rw-r--r--yt/yql/providers/yt/fmr/coordinator/impl/ya.make1
-rw-r--r--yt/yql/providers/yt/fmr/coordinator/impl/yql_yt_coordinator_impl.cpp7
-rw-r--r--yt/yql/providers/yt/fmr/coordinator/impl/yql_yt_coordinator_impl.h1
-rw-r--r--yt/yql/providers/yt/fmr/coordinator/interface/proto_helpers/ya.make1
-rw-r--r--yt/yql/providers/yt/fmr/coordinator/interface/proto_helpers/yql_yt_coordinator_proto_helpers.cpp7
-rw-r--r--yt/yql/providers/yt/fmr/coordinator/interface/yql_yt_coordinator.h3
-rw-r--r--yt/yql/providers/yt/fmr/job/impl/ut/yql_yt_job_ut.cpp8
-rw-r--r--yt/yql/providers/yt/fmr/job/impl/yql_yt_job_impl.cpp75
-rw-r--r--yt/yql/providers/yt/fmr/job/impl/yql_yt_job_impl.h6
-rw-r--r--yt/yql/providers/yt/fmr/job/impl/yql_yt_table_data_service_writer.h2
-rw-r--r--yt/yql/providers/yt/fmr/proto/coordinator.proto1
-rw-r--r--yt/yql/providers/yt/fmr/proto/request_options.proto1
-rw-r--r--yt/yql/providers/yt/fmr/request_options/proto_helpers/yql_yt_request_proto_helpers.cpp7
-rw-r--r--yt/yql/providers/yt/fmr/request_options/ya.make1
-rw-r--r--yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.cpp4
-rw-r--r--yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.h8
-rw-r--r--yt/yql/providers/yt/fmr/yt_service/impl/yql_yt_yt_service_impl.cpp8
-rw-r--r--yt/yql/providers/yt/fmr/yt_service/interface/yql_yt_yt_service.h1
-rw-r--r--yt/yql/providers/yt/gateway/file/yql_yt_file.cpp2
-rw-r--r--yt/yql/providers/yt/gateway/fmr/ya.make5
-rw-r--r--yt/yql/providers/yt/gateway/fmr/yql_yt_fmr.cpp438
-rw-r--r--yt/yql/providers/yt/gateway/native/yql_yt_native.cpp90
-rw-r--r--yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_helper.cpp10
-rw-r--r--yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_helper.h1
-rw-r--r--yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_join.cpp2
-rw-r--r--yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_map.cpp23
-rw-r--r--yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_misc.cpp6
-rw-r--r--yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_partition.cpp19
-rw-r--r--yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_sort.cpp18
-rw-r--r--yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_write.cpp18
-rw-r--r--yt/yql/providers/yt/provider/yql_yt_datasink_exec.cpp6
-rw-r--r--yt/yql/providers/yt/provider/yql_yt_datasink_type_ann.cpp29
-rw-r--r--yt/yql/providers/yt/provider/yql_yt_helpers.cpp26
-rw-r--r--yt/yql/providers/yt/provider/yql_yt_helpers.h8
-rw-r--r--yt/yql/providers/yt/provider/yql_yt_logical_optimize.cpp7
-rw-r--r--yt/yql/tests/sql/suites/multicluster/map_force.cfg4
-rw-r--r--yt/yql/tests/sql/suites/multicluster/map_force.sql6
-rw-r--r--yt/yql/tests/sql/suites/multicluster/partition_by_key_force.cfg4
-rw-r--r--yt/yql/tests/sql/suites/multicluster/partition_by_key_force.sql9
-rw-r--r--yt/yql/tests/sql/suites/multicluster/sort_force.cfg4
-rw-r--r--yt/yql/tests/sql/suites/multicluster/sort_force.sql8
-rw-r--r--yt/yt/client/api/client.cpp47
-rw-r--r--yt/yt/client/api/client.h6
-rw-r--r--yt/yt/client/api/delegating_client.h2
-rw-r--r--yt/yt/client/api/rpc_proxy/client_base.cpp4
-rw-r--r--yt/yt/client/driver/distributed_table_commands.cpp6
-rw-r--r--yt/yt/client/driver/driver.cpp4
-rw-r--r--yt/yt/client/driver/table_commands.cpp2
-rw-r--r--yt/yt/client/federated/client.cpp4
-rw-r--r--yt/yt/client/federated/unittests/client_ut.cpp22
-rw-r--r--yt/yt/client/hedging/hedging.cpp4
-rw-r--r--yt/yt/client/queue_client/consumer_client.cpp5
-rw-r--r--yt/yt/client/scheduler/public.h1
-rw-r--r--yt/yt/client/signature/generator.cpp32
-rw-r--r--yt/yt/client/signature/generator.h4
-rw-r--r--yt/yt/client/signature/signature.cpp13
-rw-r--r--yt/yt/client/signature/signature.h6
-rw-r--r--yt/yt/client/signature/unittests/dummy_ut.cpp18
-rw-r--r--yt/yt/client/signature/validator.cpp23
-rw-r--r--yt/yt/client/signature/validator.h2
-rw-r--r--yt/yt/client/unittests/mock/client.h2
-rw-r--r--yt/yt/core/actions/invoker_util.h7
-rw-r--r--yt/yt/core/actions/unittests/future_ut.cpp1
-rw-r--r--yt/yt/core/actions/unittests/invoker_ut.cpp1
-rw-r--r--yt/yt/core/concurrency/fair_share_action_queue.cpp1
-rw-r--r--yt/yt/core/concurrency/fiber_scheduler_thread.cpp1
-rw-r--r--yt/yt/core/concurrency/thread_pool_detail.cpp1
-rw-r--r--yt/yt/core/concurrency/unittests/bounded_concurrency_invoker_ut.cpp1
-rw-r--r--yt/yt/core/concurrency/unittests/invoker_pool_ut.cpp1
-rw-r--r--yt/yt/core/concurrency/unittests/scheduled_executor_ut.cpp1
-rw-r--r--yt/yt/core/http/compression.cpp1
-rw-r--r--yt/yt/core/misc/error.cpp1
-rw-r--r--yt/yt/core/misc/fs.cpp1
-rw-r--r--yt/yt/core/misc/range_helpers-inl.h14
-rw-r--r--yt/yt/core/misc/range_helpers.h6
-rw-r--r--yt/yt/core/misc/unittests/range_helpers_ut.cpp12
-rw-r--r--yt/yt/core/yson/protobuf_interop-inl.h29
-rw-r--r--yt/yt/core/yson/protobuf_interop.cpp79
-rw-r--r--yt/yt/core/yson/protobuf_interop.h16
-rw-r--r--yt/yt/core/ytree/attribute_filter-inl.h2
-rw-r--r--yt/yt/core/ytree/attribute_filter.cpp82
-rw-r--r--yt/yt/core/ytree/attribute_filter.h10
194 files changed, 2791 insertions, 1125 deletions
diff --git a/build/conf/go.conf b/build/conf/go.conf
index 397c1fc332..fe60cd6224 100644
--- a/build/conf/go.conf
+++ b/build/conf/go.conf
@@ -1020,12 +1020,34 @@ module GO_TEST: GO_PROGRAM {
}
# tag:go-specific
+_GO_TOOL_ENV=${env:"PATH=${GO_TOOLS_ROOT}/bin"} ${env:"GOROOT=${GO_TOOLS_ROOT}"} ${env:"GOCACHE=${BINDIR}/.gocache"}
+
+# tag:go-specific
+_GO_GO_MOD=${ARCADIA_ROOT}/go.mod
+_GO_MODULES_TXT=${ARCADIA_ROOT}/vendor/modules.txt
+
+# tag:go-specific
+_GO_TOOL_MOCKGEN=vendor/go.uber.org/mock/mockgen
+_GO_TOOL_REFLECTOR=library/go/mockgen/reflector
+_GO_TOOL_OAPI_CODEGEN=vendor/github.com/deepmap/oapi-codegen/cmd/oapi-codegen
+_GO_TOOL_OAPI_CODEGEN_TAXI=taxi/infra/go/platform/tools/pkg/deepmap/oapi-codegen/cmd/oapi-codegen
+_GO_TOOL_OAPI_CODEGEN_TAXI_1134=taxi/infra/go/platform/tools/pkg1134/oapi-codegen-1.13.4/cmd/oapi-codegen
+
+# tag:go-specific
+### @usage: GO_MOCKGEN_FROM(Path)
+###
+### Part of Go mock module definition, both reflect and source mode.
+### Defines path for mock interfaces source
macro GO_MOCKGEN_FROM(Path) {
SET(MOCKGEN_FROM ${Path})
SET(MOCKGEN_MODULE ${GO_ARCADIA_PROJECT_PREFIX}${Path})
}
# tag:go-specific
+### @usage: GO_MOCKGEN_CONTRIB_FROM(Path)
+###
+### Part of Go mock module definition, both reflect and source mode.
+### Defines path for mock interfaces source for contrib (vendored) sources
macro GO_MOCKGEN_CONTRIB_FROM(Path) {
SET(MOCKGEN_FROM ${GO_CONTRIB_PROJECT_PREFIX}${Path})
SET(MOCKGEN_MODULE ${Path})
@@ -1033,10 +1055,24 @@ macro GO_MOCKGEN_CONTRIB_FROM(Path) {
# tag:go-specific
macro GO_MOCKGEN_TYPES(Types...) {
- SET(MOCKGEN_TYPES ${join=\\${__COMMA__}:Types})
+ SET(MOCKGEN_TYPES ${join=,:Types})
}
+MOCKGEN_PACKAGE="mocks"
# tag:go-specific
+### @usage: GO_MOCKGEN_PACKAGE(package)
+###
+### Part of Go mock module definition, source mode.
+### Specifies generated package name, instead of default one "mocks"
+macro GO_MOCKGEN_PACKAGE(PACKAGE) {
+ SET(MOCKGEN_PACKAGE ${PACKAGE})
+}
+
+# tag:go-specific
+### @usage: GO_MOCKGEN_REFLECT()
+###
+### Part of Go mock module definition, reflect mode.
+### Creates generator program, expected in `gen` folder
macro GO_MOCKGEN_REFLECT() {
PEERDIR(${GOSTD}/encoding/gob)
PEERDIR(${GOSTD}/flag)
@@ -1047,20 +1083,80 @@ macro GO_MOCKGEN_REFLECT() {
PEERDIR(vendor/go.uber.org/mock/mockgen/model)
PEERDIR(${MOCKGEN_FROM})
- RUN_PROGRAM(vendor/go.uber.org/mock/mockgen -prog_only $MOCKGEN_MODULE $MOCKGEN_TYPES STDOUT main.go CWD $ARCADIA_BUILD_ROOT)
+ .CMD=${cwd:BINDIR} ${tool:_GO_TOOL_REFLECTOR} ${MOCKGEN_MODULE} ${MOCKGEN_TYPES} ${stdout;output:"main.go"} ${hide;kv:"p GR"} ${hide;kv:"pc blue"}
+ .STRUCT_CMD=yes
}
# tag:go-specific
-_GO_EXE_SUFFIX=
-when ($OS_WINDOWS == "yes") {
- _GO_EXE_SUFFIX=.exe
+macro _GO_MOCKGEN_MOCKS_IMPL(GEN_TOOL) {
+ PEERDIR(${GOSTD}/reflect)
+ PEERDIR(vendor/go.uber.org/mock/gomock)
+
+ .CMD=${cwd:BINDIR} ${tool:GEN_TOOL} -output gob.data && ${cwd:BINDIR} ${tool:_GO_TOOL_MOCKGEN} -package ${MOCKGEN_PACKAGE} -model_gob gob.data ${stdout;output:"main.go"} $_GO_TOOL_ENV ${hide;kv:"p GM"} ${hide;kv:"pc blue"}
}
# tag:go-specific
+### @usage: GO_MOCKGEN_MOCKS()
+###
+### Part of Go mock module definition, reflect mode.
+### Generates mocks, expect to have `gen` folder with GO_MOCKGEN_REFLECT
macro GO_MOCKGEN_MOCKS() {
+ _GO_MOCKGEN_MOCKS_IMPL(${MODDIR}/gen)
+}
+
+_GO_MOCKGEN_SOURCE_CMDLINE=\
+ $FS_TOOLS md ${BINDIR}/.arcadia/vendor && \
+ $FS_TOOLS md ${BINDIR}/.arcadia/$MOCKGEN_FROM && \
+ $COPY_CMD ${context=TEXT;input:_GO_GO_MOD} ${BINDIR}/.arcadia/go.mod && \
+ $COPY_CMD ${context=TEXT;input:_GO_MODULES_TXT} ${BINDIR}/.arcadia/vendor/modules.txt && \
+ $COPY_CMD ${context=TEXT;input:SOURCE} ${BINDIR}/.arcadia/$SOURCE && \
+ ${cwd;suf=/.arcadia:BINDIR} ${tool:_GO_TOOL_MOCKGEN} -package ${MOCKGEN_PACKAGE} -source ${rootrel;context=TEXT;input:SOURCE} ${ARGS} \
+ $_GO_TOOL_ENV ${stdout;output;suf=.source.gen.go;noext:FILENAME} \
+ ${hide;context=TEXT;input;suf=/.arcadia/go.mod:BINDIR} ${hide;context=TEXT;input;suf=/.arcadia/vendor/modules.txt:BINDIR} ${hide;context=TEXT;input:IN_NOPARSE} \
+ ${hide;kv:"p GS"} ${hide;kv:"pc blue"}
+
+# tag:go-specific
+macro _GO_MOCKGEN_SOURCE_IMPL(SOURCE, FILENAME, ARGS[], IN_NOPARSE[]) {
PEERDIR(${GOSTD}/reflect)
+ PEERDIR(${GOSTD}/context)
PEERDIR(vendor/go.uber.org/mock/gomock)
+ .CMD=$_GO_MOCKGEN_SOURCE_CMDLINE
+}
+
+# tag:go-specific
+### @usage: GO_MOCKGEN_SOURCE(FILE, ARGS[], IN_NOPARSE[])
+###
+### Part of Go mock module definition, source mode.
+### Generates mocks from file from GO_MOCKGEN_FROM or GO_MOCKGEN_CONTRIB_FROM
+### Can be placed multiple times in same ya.make
+macro GO_MOCKGEN_SOURCE(FILE, ARGS[], IN_NOPARSE[]) {
+ _GO_MOCKGEN_SOURCE_IMPL($MOCKGEN_FROM/$FILE $FILE ARGS ${ARGS} IN_NOPARSE ${IN_NOPARSE})
+}
+
+macro _GO_OAPI_CODEGEN_IMPL(TOOL, IN, FILENAME, GENERATE="", PACKAGE="", TEMPLATES="", CONFIG="", IN_NOPARSE[], Args...) {
+ .CMD=${cwd:ARCADIA_BUILD_ROOT} ${tool:TOOL} ${pre=--generate :GENERATE} ${pre=--package :PACKAGE} ${pre=--templates :TEMPLATES} ${pre=--config :CONFIG} $Args ${context=TEXT;input:IN} ${hide;context=TEXT;input:IN_NOPARSE} ${stdout;output:FILENAME} ${_GO_TOOL_ENV} ${hide;kv:"p GC"} ${hide;kv:"pc blue"}
+}
+
+# tag:go-specific
+### @usage: GO_OAPI_CODEGEN(GENERATE, PACKAGE, IN, IN_NOPARSE[], Args...)
+###
+### Go oapi-codegen module
+### Generates GENERATE thing with PACKAGE package from file IN into STDOUT file
+### Optional arguments will be passed into generator
+### IN_NOPARSE - input files required for running generation, except IN
+### Can be placed multiple times in same ya.make
+macro GO_OAPI_CODEGEN(GENERATE, PACKAGE, IN, IN_NOPARSE[], Args...) {
+ _GO_OAPI_CODEGEN_IMPL(${_GO_TOOL_OAPI_CODEGEN} ${IN} ${suf=.gen.go:GENERATE} GENERATE ${GENERATE} PACKAGE ${PACKAGE} ${Args} IN_NOPARSE ${IN_NOPARSE})
+}
- # Unfortunately ${rootrel;tool:TOOL} doesn't work currently, so we use this ugly workaround $MODDIR/gen/gen$_GO_EXE_SUFFIX
- RUN_PROGRAM(vendor/go.uber.org/mock/mockgen -package mocks -exec_only $MODDIR/gen/gen$_GO_EXE_SUFFIX ${GO_ARCADIA_PROJECT_PREFIX}${MOCKGEN_FROM} $MOCKGEN_TYPES STDOUT main.go TOOL $MODDIR/gen CWD $ARCADIA_BUILD_ROOT ENV PATH=${GO_TOOLS_ROOT}/bin GOROOT=${GO_TOOLS_ROOT} GOCACHE=${BINDIR}/.gocache)
+# tag:go-specific
+### private, taxi only
+macro GO_OAPI_CODEGEN_TAXI(GENERATE, PACKAGE, IN, IN_NOPARSE[], OUT_SUFFIX="", Args...) {
+ _GO_OAPI_CODEGEN_IMPL(${_GO_TOOL_OAPI_CODEGEN_TAXI} ${IN} ${suf=${OUT_SUFFIX}.gen.go:GENERATE} GENERATE ${GENERATE} PACKAGE ${PACKAGE} ${Args} IN_NOPARSE ${IN_NOPARSE})
+}
+
+# tag:go-specific
+### private, taxi only
+macro GO_OAPI_CODEGEN_TAXI_1134(GENERATE="", PACKAGE="", TEMPLATES="", CONFIG="", IN, FILENAME, IN_NOPARSE[], Args...) {
+ _GO_OAPI_CODEGEN_IMPL(${_GO_TOOL_OAPI_CODEGEN_TAXI_1134} ${IN} ${suf=.gen.go:FILENAME} ${pre=GENERATE :GENERATE} ${pre=PACKAGE :PACKAGE} ${pre=TEMPLATES :TEMPLATES} ${pre=CONFIG :CONFIG} ${Args} IN_NOPARSE ${IN_NOPARSE})
}
diff --git a/build/conf/proto.conf b/build/conf/proto.conf
index 6f631e5bb2..dcc4389571 100644
--- a/build/conf/proto.conf
+++ b/build/conf/proto.conf
@@ -374,6 +374,9 @@ macro _UPDATE_GO_PROTO_ENV(NAME, ENV[], DUMMY...) {
macro GO_PROTO_PLUGIN(NAME, EXT, TOOL, DEPS[]) {
SET_APPEND(GO_PROTO_OPTS $_PROTO_PLUGIN_ARGS_BASE($NAME $TOOL))
SET_APPEND(GO_PROTO_OUTS \${hide;noauto;norel;output;suf=$EXT;nopath;noext:File})
+ _UPDATE_GO_PROTO_ENV(${suf= ENV;ext=mdb-validators:NAME} PATH=${GO_TOOLS_ROOT}/bin GOROOT=${GO_TOOLS_ROOT} GOCACHE=${BINDIR}/.gocache)
+ _UPDATE_GO_PROTO_ENV(${suf= ENV;ext=proto_validation:NAME} PATH=${GO_TOOLS_ROOT}/bin GOROOT=${GO_TOOLS_ROOT} GOCACHE=${BINDIR}/.gocache)
+ _UPDATE_GO_PROTO_ENV(${suf= ENV;ext=mdb-dynforms:NAME} PATH=${GO_TOOLS_ROOT}/bin GOROOT=${GO_TOOLS_ROOT} GOCACHE=${BINDIR}/.gocache)
PEERDIR(${DEPS})
}
diff --git a/build/conf/python.conf b/build/conf/python.conf
index 82e037fb25..d99de1e854 100644
--- a/build/conf/python.conf
+++ b/build/conf/python.conf
@@ -302,18 +302,16 @@ macro STYLE_DUMMY() {
### Check python3 sources for style issues using black.
macro STYLE_PYTHON(CONFIG_TYPE="") {
.ALLOWED_IN_LINTERS_MAKE=yes
- _ADD_PY_LINTER_CHECK(NAME black LINTER tools/black_linter/black_linter FILE_PROCESSING_TIME $BLACK_FILE_PROCESSING_TIME CONFIGS $PYTHON_LINTERS_DEFAULT_CONFIGS CUSTOM_CONFIG $CONFIG_TYPE CONFIG_TYPE $CONFIG_TYPE)
+ _ADD_PY_LINTER_CHECK(NAME black LINTER tools/black_linter/black_linter FILE_PROCESSING_TIME $BLACK_FILE_PROCESSING_TIME CONFIGS $PYTHON_LINTERS_DEFAULT_CONFIGS CONFIG_TYPE $CONFIG_TYPE)
}
# tag:python-specific tag:test
### @usage: STYLE_RUFF([CONFIG_TYPE config_type] [CHECK_FORMAT])
###
### Check python3 sources for style issues using ruff. `CHECK_FORMAT` enables `ruff format` check.
-RUFF_PROJECT_TO_CONFIG_MAP=build/config/tests/ruff/ruff_config_paths.json
macro STYLE_RUFF(CONFIG_TYPE="", CHECK_FORMAT?"yes":"no") {
.ALLOWED_IN_LINTERS_MAKE=yes
- SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${ARCADIA_ROOT}/${RUFF_PROJECT_TO_CONFIG_MAP})
- _ADD_PY_LINTER_CHECK(NAME ruff LINTER tools/ruff_linter/bin/ruff_linter GLOBAL_RESOURCES build/external_resources/ruff FILE_PROCESSING_TIME $RUFF_FILE_PROCESSING_TIME CONFIGS $PYTHON_LINTERS_DEFAULT_CONFIGS PROJECT_TO_CONFIG_MAP $RUFF_PROJECT_TO_CONFIG_MAP CONFIG_TYPE $CONFIG_TYPE EXTRA_PARAMS check_format=${CHECK_FORMAT})
+ _ADD_PY_LINTER_CHECK(NAME ruff LINTER tools/ruff_linter/bin/ruff_linter GLOBAL_RESOURCES build/external_resources/ruff FILE_PROCESSING_TIME $RUFF_FILE_PROCESSING_TIME CONFIGS $PYTHON_LINTERS_DEFAULT_CONFIGS CONFIG_TYPE $CONFIG_TYPE EXTRA_PARAMS check_format=${CHECK_FORMAT})
}
# tag:python-specific tag:test
@@ -746,6 +744,14 @@ module _BASE_PY_PROGRAM: _BASE_PROGRAM {
SET(MODULE_LANG PY2)
}
+# tag:codenav tag:py2 tag:deprecated
+when ($CODENAVIGATION && $NOCODENAVIGATION != "yes") {
+ PY_PROGRAM_LINK_EXE=$LINK_EXE && ${hide;kv:"pyndex $TARGET"}
+}
+otherwise {
+ PY_PROGRAM_LINK_EXE=$LINK_EXE
+}
+
# tag:python-specific tag:codenav
when ($CODENAVIGATION && $NOCODENAVIGATION != "yes") {
PY3_PROGRAM_LINK_EXE=$LINK_EXE && ${hide;kv:"py3yndex $TARGET"}
diff --git a/build/export_generators/ide-gradle/build.gradle.kts.jinja b/build/export_generators/ide-gradle/build.gradle.kts.jinja
index c037f3e7bc..603e0a2525 100644
--- a/build/export_generators/ide-gradle/build.gradle.kts.jinja
+++ b/build/export_generators/ide-gradle/build.gradle.kts.jinja
@@ -1,8 +1,11 @@
-{%- macro PatchRoots(arg, depend = false) -%}
+{%- macro PatchRoots(arg, depend = false, output = false) -%}
{#- Always replace (arcadia_root) === (SOURCE_ROOT in ymake) to $project_root in Gradle -#}
{%- if depend -%}
{#- Replace (export_root) === (BUILD_ROOT in ymake) to $project_root in Gradle, because prebuilt tools in arcadia, not in build_root -#}
"{{ arg|replace(export_root, "$project_root")|replace(arcadia_root, "$project_root") }}"
+{%- elif output and arg[0] != '/' -%}
+{#- Relative outputs in buildDir -#}
+"$buildDir/{{ arg }}"
{%- else -%}
{#- Replace (export_root) === (BUILD_ROOT in ymake) to baseBuildDir in Gradle - root of all build folders for modules -#}
"{{ arg|replace(export_root, "$baseBuildDir")|replace(arcadia_root, "$project_root") }}"
@@ -25,6 +28,7 @@
{%- include "[generator]/javadoc.jinja" -%}
{%- include "[generator]/run_program.jinja" -%}
{%- include "[generator]/run_java_program.jinja" -%}
+{%- include "[generator]/run_common.jinja" -%}
{%- include "[generator]/dependencies.jinja" -%}
{%- include "extra-tests.gradle.kts" ignore missing -%}
{%- if publish -%}
diff --git a/build/export_generators/ide-gradle/build.gradle.kts.proto.jinja b/build/export_generators/ide-gradle/build.gradle.kts.proto.jinja
index ec3465d316..f490b8f309 100644
--- a/build/export_generators/ide-gradle/build.gradle.kts.proto.jinja
+++ b/build/export_generators/ide-gradle/build.gradle.kts.proto.jinja
@@ -1,16 +1,23 @@
-{%- macro PatchRoots(arg, depend = false) -%}
+{%- macro PatchRoots(arg, depend = false, output = false) -%}
{#- Always replace (arcadia_root) === (SOURCE_ROOT in ymake) to $project_root in Gradle -#}
{%- if depend -%}
{#- Replace (export_root) === (BUILD_ROOT in ymake) to $project_root in Gradle, because prebuilt tools in arcadia, not in build_root -#}
"{{ arg|replace(export_root, "$project_root")|replace(arcadia_root, "$project_root") }}"
+{%- elif output and arg[0] != '/' -%}
+{#- Relative outputs in buildDir -#}
+"$buildDir/{{ arg }}"
{%- else -%}
{#- Replace (export_root) === (BUILD_ROOT in ymake) to baseBuildDir in Gradle - root of all build folders for modules -#}
"{{ arg|replace(export_root, "$baseBuildDir")|replace(arcadia_root, "$project_root") }}"
{%- endif -%}
{%- endmacro -%}
-{%- macro PatchGeneratedProto(arg) -%}
-"{{ arg|replace(export_root, "$mainExtractedIncludeProtosDir")|replace(arcadia_root, "$mainExtractedIncludeProtosDir") }}"
+{%- macro PatchGeneratedProto(arg, relative = false) -%}
+{%- if relative -%}
+"{{ arg|replace(export_root + "/", "")|replace(arcadia_root + "/", "") }}"
+{%- else -%}
+"{{ arg|replace(export_root, "$baseBuildDir")|replace(arcadia_root, "$baseBuildDir") }}"
+{%- endif -%}
{%- endmacro -%}
{%- include "[generator]/proto_vars.jinja" -%}
@@ -27,6 +34,7 @@
{%- include "[generator]/proto_prepare.jinja" -%}
{%- include "[generator]/run_program.jinja" -%}
{%- include "[generator]/run_java_program.jinja" -%}
+{%- include "[generator]/run_common.jinja" -%}
{%- include "[generator]/javadoc.jinja" -%}
{%- include "[generator]/proto_dependencies.jinja" -%}
{%- include "[generator]/debug.jinja" ignore missing -%}
diff --git a/build/export_generators/ide-gradle/builddir.jinja b/build/export_generators/ide-gradle/builddir.jinja
index f3fb92f3ce..88a5694d15 100644
--- a/build/export_generators/ide-gradle/builddir.jinja
+++ b/build/export_generators/ide-gradle/builddir.jinja
@@ -1,6 +1,6 @@
{#- empty string #}
-val baseBuildDir = "{{ export_root }}/gradle.build/"
-buildDir = file(baseBuildDir + project.path.replaceFirst(":", "/").replace(":", "."))
+val baseBuildDir = "{{ export_root }}/gradle.build"
+buildDir = file(baseBuildDir + "/" + project.path.replace(":", "/"))
subprojects {
- buildDir = file(baseBuildDir + project.path.replaceFirst(":", "/").replace(":", "."))
+ buildDir = file(baseBuildDir + "/" + project.path.replace(":", "/"))
}
diff --git a/build/export_generators/ide-gradle/proto_builddir.jinja b/build/export_generators/ide-gradle/proto_builddir.jinja
index ac50a1d33b..745f52e6e2 100644
--- a/build/export_generators/ide-gradle/proto_builddir.jinja
+++ b/build/export_generators/ide-gradle/proto_builddir.jinja
@@ -1,5 +1,5 @@
{%- include "[generator]/builddir.jinja" %}
val mainProtosDir = File(buildDir, "main_protos")
-{%- if libraries|length %}
+{%- if extractLibrariesProtosTask %}
val mainExtractedIncludeProtosDir = File(buildDir, "extracted-include-protos/main")
{%- endif %}
diff --git a/build/export_generators/ide-gradle/proto_prepare.jinja b/build/export_generators/ide-gradle/proto_prepare.jinja
index cf6fc96adf..804428a964 100644
--- a/build/export_generators/ide-gradle/proto_prepare.jinja
+++ b/build/export_generators/ide-gradle/proto_prepare.jinja
@@ -1,18 +1,39 @@
-{#- empty string #}
-{%- if target.proto_files|length %}
+{%- if prepareProtosTask %}
+
val prepareMainProtos = tasks.register<Copy>("prepareMainProtos") {
+{%- if target.proto_files|length %}
from("$project_root") {
{#- list of all current project proto files -#}
-{%- for proto in target.proto_files %}
+{%- for proto in target.proto_files %}
include("{{ proto }}")
-{%- endfor %}
+{%- endfor %}
+ }
+{% endif -%}
+{%- if target.runs|length or target.custom_runs|length %}
+ from("$baseBuildDir") {
+{%- for run in target.runs -%}
+{%- for out in run.out %}
+ include({{ PatchGeneratedProto(out, true) }})
+{%- endfor -%}
+{%- for out_dir in run.out_dir %}
+ include({{ PatchGeneratedProto(out_dir, true) }} + "/**/*.proto")
+{%- endfor -%}
+{%- endfor -%}
+{%- for custom_run in target.custom_runs -%}
+{%- for out in custom_run.outputs %}
+ include({{ PatchGeneratedProto(out, true) }})
+{%- endfor -%}
+{%- endfor %}
}
+{% endif -%}
into(mainProtosDir)
}
-{%- endif %}
+{%- endif -%}
+
+{%- if extractLibrariesProtosTask -%}
-{% if libraries|length -%}
val extractMainLibrariesProtos = tasks.register<Copy>("extractMainLibrariesProtos") {
+{%- if libraries|length -%}
from("$project_root") {
{#- list of all library directories -#}
{%- for library in libraries -%}
@@ -20,15 +41,16 @@ val extractMainLibrariesProtos = tasks.register<Copy>("extractMainLibrariesProto
include("{{ path_and_jar[0] }}/**/*.proto")
{%- endfor %}
}
+{% endif -%}
into(mainExtractedIncludeProtosDir)
}
+{%- endif %}
-{% endif -%}
afterEvaluate {
-{%- if target.proto_files|length %}
+{%- if prepareProtosTask %}
tasks.getByName("extractProto").dependsOn(prepareMainProtos)
{%- endif %}
-{%- if libraries|length %}
+{%- if extractLibrariesProtosTask %}
tasks.getByName("extractProto").dependsOn(extractMainLibrariesProtos)
{%- endif %}
}
diff --git a/build/export_generators/ide-gradle/proto_vars.jinja b/build/export_generators/ide-gradle/proto_vars.jinja
index 3f357ce243..95120c106e 100644
--- a/build/export_generators/ide-gradle/proto_vars.jinja
+++ b/build/export_generators/ide-gradle/proto_vars.jinja
@@ -1,7 +1,9 @@
{%- set publish = target.publish -%}
-{%- set libraries = target.consumer|selectattr('type', 'eq', 'library') -%}
{%- set with_kotlin = target.with_kotlin -%}
{%- set kotlin_version = target.kotlin_version -%}
{%- set proto_template = true -%}
+{%- set prepareProtosTask = target.proto_files|length or target.runs|length or target.custom_runs|length -%}
+{%- set libraries = target.consumer|selectattr('type', 'eq', 'library') -%}
+{%- set extractLibrariesProtosTask = libraries|length -%}
{%- include "[generator]/jdk.jinja" -%}
diff --git a/build/export_generators/ide-gradle/run_common.jinja b/build/export_generators/ide-gradle/run_common.jinja
new file mode 100644
index 0000000000..4f8a207bb4
--- /dev/null
+++ b/build/export_generators/ide-gradle/run_common.jinja
@@ -0,0 +1,11 @@
+{%- if not proto_template and (target.runs|length or target.custom_runs|length) %}
+
+tasks.getByName("sourcesJar").dependsOn(tasks.compileJava)
+{%- if with_kotlin %}
+tasks.getByName("sourcesJar").dependsOn(tasks.compileKotlin)
+{%- endif %}
+tasks.getByName("sourcesJar").mustRunAfter(tasks.compileTestJava)
+{%- if with_kotlin %}
+tasks.getByName("sourcesJar").mustRunAfter(tasks.compileTestKotlin)
+{%- endif -%}
+{%- endif -%}
diff --git a/build/export_generators/ide-gradle/run_java_program.jinja b/build/export_generators/ide-gradle/run_java_program.jinja
index 527a81c5b4..5630c84be3 100644
--- a/build/export_generators/ide-gradle/run_java_program.jinja
+++ b/build/export_generators/ide-gradle/run_java_program.jinja
@@ -5,8 +5,11 @@ val runJav{{ loop.index }} = task<JavaExec>("runJavaProgram{{ loop.index }}") {
group = "build"
description = "Code generation by run java program"
-{%- if run.cwd %}
+{#- Ignore default CWD to export_root -#}
+{%- if run.cwd and run.cwd != export_root %}
workingDir = file({{ PatchRoots(run.cwd) }})
+{%- else %}
+ workingDir = file("$buildDir")
{%- endif -%}
{%- set classpaths = run.classpath|reject('eq', '@.cplst') -%}
@@ -25,10 +28,16 @@ val runJav{{ loop.index }} = task<JavaExec>("runJavaProgram{{ loop.index }}") {
args = listOf(
{%- for arg in run.args -%}
{%- if not loop.first %}
-{%- if proto_template and (run.out_dir|select("eq", arg)|length or run.out|select("eq", arg)|length) %}
+{%- if run.out_dir|select("eq", arg)|length or run.out|select("eq", arg)|length -%}
+{%- if proto_template %}
{{ PatchGeneratedProto(arg) }},
+{%- else %}
+ {{ PatchRoots(arg, false, true) }},
+{%- endif %}
+{%- elif run.tool|select("in", arg)|length or run.in|select("eq", arg)|length or run.in_dir|select("eq", arg)|length %}
+ {{ PatchRoots(arg, true) }},
{%- else %}
- {{ PatchRoots(arg, run.tool|select("in", arg)|length) }},
+ {{ PatchRoots(arg) }},
{%- endif -%}
{%- endif -%}
{%- endfor %}
@@ -55,13 +64,21 @@ val runJav{{ loop.index }} = task<JavaExec>("runJavaProgram{{ loop.index }}") {
{%- if run.out_dir|length -%}
{%- for out_dir in run.out_dir|unique %}
- outputs.dir({{ PatchRoots(out_dir) }})
+{%- if proto_template %}
+ outputs.files({{ PatchGeneratedProto(out_dir) }})
+{%- else %}
+ outputs.dir({{ PatchRoots(out_dir, false, true) }})
+{%- endif -%}
{%- endfor -%}
{%- endif -%}
{%- if run.out|length -%}
{%- for out in run.out|unique %}
- outputs.files({{ PatchRoots(out) }})
+{%- if proto_template %}
+ outputs.files({{ PatchGeneratedProto(out) }})
+{%- else %}
+ outputs.files({{ PatchRoots(out, false, true) }})
+{%- endif -%}
{%- endfor -%}
{%- endif -%}
@@ -75,20 +92,23 @@ val runJav{{ loop.index }} = task<JavaExec>("runJavaProgram{{ loop.index }}") {
{%- if proto_template %}
tasks.getByName("prepareMainProtos").dependsOn(runJav{{ loop.index }})
-tasks.getByName("extractMainLibrariesProtos").dependsOn(runJav{{ loop.index }})
-{% else %}
-
-tasks.getByName("sourcesJar").dependsOn(runJav{{ loop.index }})
-{% endif -%}
+{%- endif %}
tasks.compileJava.configure {
dependsOn(runJav{{ loop.index }})
}
+tasks.compileTestJava.configure {
+ dependsOn(runJav{{ loop.index }})
+}
{%- if with_kotlin %}
tasks.compileKotlin.configure {
dependsOn(runJav{{ loop.index }})
}
-{%- endif %}
-{% endfor -%}
-{% endif -%}
+
+tasks.compileTestKotlin.configure {
+ dependsOn(runJav{{ loop.index }})
+}
+{%- endif -%}
+{%- endfor -%}
+{%- endif -%}
diff --git a/build/export_generators/ide-gradle/run_program.jinja b/build/export_generators/ide-gradle/run_program.jinja
index 147ae6c165..91a314c952 100644
--- a/build/export_generators/ide-gradle/run_program.jinja
+++ b/build/export_generators/ide-gradle/run_program.jinja
@@ -5,22 +5,30 @@ val runProg{{ loop.index }} = task<Exec>("runProgram{{ loop.index }}") {
group = "build"
description = "Code generation by run custom program"
-{%- if custom_run.cwd %}
+{#- Ignore default CWD to export_root -#}
+{%- if custom_run.cwd and custom_run.cwd != export_root %}
workingDir = file({{ PatchRoots(custom_run.cwd) }})
+{%- else %}
+ workingDir = file("$buildDir")
{%- endif %}
- commandLine(
+ commandLine("bash", "-c", listOf(
{%- for arg in custom_run.command -%}
-{%- if custom_run.depends|select("eq", arg)|length -%}
-{{ PatchRoots(arg, true) }}
-{%- elif proto_template -%}
-{#- generated proto put to prepared proto dir -#}
-{{ PatchGeneratedProto(arg) }}
-{%- else -%}
-{{ PatchRoots(arg) }}
+{%- if custom_run.depends|select("eq", arg)|length %}
+ {{ PatchRoots(arg, true) }}
+{%- elif custom_run.outputs|select("eq", arg)|length %}
+{%- if proto_template -%}
+ {#- generated proto put to prepared proto dir #}
+ {{ PatchGeneratedProto(arg) }}
+{%- else %}
+ {{ PatchRoots(arg, false, true) }}
+{%- endif -%}
+{%- else %}
+ {{ PatchRoots(arg) }}
{%- endif -%}
{%- if not loop.last %}, {% endif -%}
-{%- endfor -%})
+{%- endfor %}
+ ).joinToString(" "))
{%- if custom_run.depends|length -%}
{%- for depend in custom_run.depends|unique %}
@@ -33,7 +41,7 @@ val runProg{{ loop.index }} = task<Exec>("runProgram{{ loop.index }}") {
{%- if proto_template %}
outputs.files({{ PatchGeneratedProto(out) }})
{%- else %}
- outputs.files({{ PatchRoots(out) }})
+ outputs.files({{ PatchRoots(out, false, true) }})
{%- endif -%}
{%- endfor -%}
{%- endif -%}
@@ -45,20 +53,23 @@ val runProg{{ loop.index }} = task<Exec>("runProgram{{ loop.index }}") {
{%- if proto_template %}
-tasks.getByName("extractMainLibrariesProtos").dependsOn(runProg{{ loop.index }})
-{% else %}
-
-tasks.getByName("sourcesJar").dependsOn(runProg{{ loop.index }})
-{% endif -%}
+tasks.getByName("prepareMainProtos").dependsOn(runProg{{ loop.index }})
+{%- endif %}
tasks.compileJava.configure {
dependsOn(runProg{{ loop.index }})
}
+tasks.compileTestJava.configure {
+ dependsOn(runProg{{ loop.index }})
+}
{%- if with_kotlin %}
tasks.compileKotlin.configure {
dependsOn(runProg{{ loop.index }})
}
-{%- endif %}
-{% endfor -%}
-{% endif -%}
+tasks.compileTestKotlin.configure {
+ dependsOn(runProg{{ loop.index }})
+}
+{% endif -%}
+{%- endfor -%}
+{%- endif -%}
diff --git a/build/external_resources/ymake/public.resources.json b/build/external_resources/ymake/public.resources.json
index 8dfbb03c13..3674bbaa86 100644
--- a/build/external_resources/ymake/public.resources.json
+++ b/build/external_resources/ymake/public.resources.json
@@ -1,19 +1,19 @@
{
"by_platform": {
"darwin": {
- "uri": "sbr:8350151492"
+ "uri": "sbr:8383217030"
},
"darwin-arm64": {
- "uri": "sbr:8350149418"
+ "uri": "sbr:8383215700"
},
"linux": {
- "uri": "sbr:8350156616"
+ "uri": "sbr:8383219483"
},
"linux-aarch64": {
- "uri": "sbr:8350147184"
+ "uri": "sbr:8383214378"
},
"win32": {
- "uri": "sbr:8350153953"
+ "uri": "sbr:8383218300"
}
}
}
diff --git a/build/external_resources/ymake/resources.json b/build/external_resources/ymake/resources.json
index cb4a0f9e39..1ad3f10e4d 100644
--- a/build/external_resources/ymake/resources.json
+++ b/build/external_resources/ymake/resources.json
@@ -1,19 +1,19 @@
{
"by_platform": {
"darwin": {
- "uri": "sbr:8350186976"
+ "uri": "sbr:8383201449"
},
"darwin-arm64": {
- "uri": "sbr:8350181974"
+ "uri": "sbr:8383200356"
},
"linux": {
- "uri": "sbr:8350194229"
+ "uri": "sbr:8383203472"
},
"linux-aarch64": {
- "uri": "sbr:8350177737"
+ "uri": "sbr:8383199084"
},
"win32": {
- "uri": "sbr:8350190839"
+ "uri": "sbr:8383202531"
}
}
}
diff --git a/build/mapping.conf.json b/build/mapping.conf.json
index 019d916756..ba9c62501f 100644
--- a/build/mapping.conf.json
+++ b/build/mapping.conf.json
@@ -726,6 +726,7 @@
"8295444951": "{registry_endpoint}/8295444951",
"8326169329": "{registry_endpoint}/8326169329",
"8350151492": "{registry_endpoint}/8350151492",
+ "8383217030": "{registry_endpoint}/8383217030",
"5766171800": "{registry_endpoint}/5766171800",
"5805430761": "{registry_endpoint}/5805430761",
"5829025456": "{registry_endpoint}/5829025456",
@@ -800,6 +801,7 @@
"8295443254": "{registry_endpoint}/8295443254",
"8326167937": "{registry_endpoint}/8326167937",
"8350149418": "{registry_endpoint}/8350149418",
+ "8383215700": "{registry_endpoint}/8383215700",
"5766173070": "{registry_endpoint}/5766173070",
"5805432830": "{registry_endpoint}/5805432830",
"5829031598": "{registry_endpoint}/5829031598",
@@ -874,6 +876,7 @@
"8295448171": "{registry_endpoint}/8295448171",
"8326171209": "{registry_endpoint}/8326171209",
"8350156616": "{registry_endpoint}/8350156616",
+ "8383219483": "{registry_endpoint}/8383219483",
"5766171341": "{registry_endpoint}/5766171341",
"5805430188": "{registry_endpoint}/5805430188",
"5829023352": "{registry_endpoint}/5829023352",
@@ -948,10 +951,12 @@
"8295441779": "{registry_endpoint}/8295441779",
"8326166988": "{registry_endpoint}/8326166988",
"8350147184": "{registry_endpoint}/8350147184",
+ "8383214378": "{registry_endpoint}/8383214378",
"8270821739": "{registry_endpoint}/8270821739",
"8295446553": "{registry_endpoint}/8295446553",
"8326170338": "{registry_endpoint}/8326170338",
"8350153953": "{registry_endpoint}/8350153953",
+ "8383218300": "{registry_endpoint}/8383218300",
"5766172695": "{registry_endpoint}/5766172695",
"5805432230": "{registry_endpoint}/5805432230",
"5829029743": "{registry_endpoint}/5829029743",
@@ -1190,9 +1195,11 @@
"6561719783": "{registry_endpoint}/6561719783",
"6648883615": "{registry_endpoint}/6648883615",
"8107723363": "{registry_endpoint}/8107723363",
+ "8415400280": "{registry_endpoint}/8415400280",
"6561716686": "{registry_endpoint}/6561716686",
"6648881012": "{registry_endpoint}/6648881012",
"8107722414": "{registry_endpoint}/8107722414",
+ "8415398075": "{registry_endpoint}/8415398075",
"6184290684": "{registry_endpoint}/6184290684",
"6561765464": "{registry_endpoint}/6561765464",
"6184289846": "{registry_endpoint}/6184289846",
@@ -1313,6 +1320,7 @@
"7686710688": "{registry_endpoint}/7686710688",
"7879860842": "{registry_endpoint}/7879860842",
"8367004015": "{registry_endpoint}/8367004015",
+ "8418036683": "{registry_endpoint}/8418036683",
"2980468199": "{registry_endpoint}/2980468199",
"5562224408": "{registry_endpoint}/5562224408",
"7663495611": "{registry_endpoint}/7663495611"
@@ -2040,6 +2048,7 @@
"8295444951": "devtools/ymake/bin/ymake for darwin",
"8326169329": "devtools/ymake/bin/ymake for darwin",
"8350151492": "devtools/ymake/bin/ymake for darwin",
+ "8383217030": "devtools/ymake/bin/ymake for darwin",
"5766171800": "devtools/ymake/bin/ymake for darwin-arm64",
"5805430761": "devtools/ymake/bin/ymake for darwin-arm64",
"5829025456": "devtools/ymake/bin/ymake for darwin-arm64",
@@ -2114,6 +2123,7 @@
"8295443254": "devtools/ymake/bin/ymake for darwin-arm64",
"8326167937": "devtools/ymake/bin/ymake for darwin-arm64",
"8350149418": "devtools/ymake/bin/ymake for darwin-arm64",
+ "8383215700": "devtools/ymake/bin/ymake for darwin-arm64",
"5766173070": "devtools/ymake/bin/ymake for linux",
"5805432830": "devtools/ymake/bin/ymake for linux",
"5829031598": "devtools/ymake/bin/ymake for linux",
@@ -2188,6 +2198,7 @@
"8295448171": "devtools/ymake/bin/ymake for linux",
"8326171209": "devtools/ymake/bin/ymake for linux",
"8350156616": "devtools/ymake/bin/ymake for linux",
+ "8383219483": "devtools/ymake/bin/ymake for linux",
"5766171341": "devtools/ymake/bin/ymake for linux-aarch64",
"5805430188": "devtools/ymake/bin/ymake for linux-aarch64",
"5829023352": "devtools/ymake/bin/ymake for linux-aarch64",
@@ -2262,10 +2273,12 @@
"8295441779": "devtools/ymake/bin/ymake for linux-aarch64",
"8326166988": "devtools/ymake/bin/ymake for linux-aarch64",
"8350147184": "devtools/ymake/bin/ymake for linux-aarch64",
+ "8383214378": "devtools/ymake/bin/ymake for linux-aarch64",
"8270821739": "devtools/ymake/bin/ymake for win32",
"8295446553": "devtools/ymake/bin/ymake for win32",
"8326170338": "devtools/ymake/bin/ymake for win32",
"8350153953": "devtools/ymake/bin/ymake for win32",
+ "8383218300": "devtools/ymake/bin/ymake for win32",
"5766172695": "devtools/ymake/bin/ymake for win32-clang-cl",
"5805432230": "devtools/ymake/bin/ymake for win32-clang-cl",
"5829029743": "devtools/ymake/bin/ymake for win32-clang-cl",
@@ -2504,9 +2517,11 @@
"6561719783": "tools/black_linter/bin/black_linter for linux",
"6648883615": "tools/black_linter/bin/black_linter for linux",
"8107723363": "tools/black_linter/bin/black_linter for linux",
+ "8415400280": "tools/black_linter/bin/black_linter for linux",
"6561716686": "tools/black_linter/bin/black_linter for linux-aarch64",
"6648881012": "tools/black_linter/bin/black_linter for linux-aarch64",
"8107722414": "tools/black_linter/bin/black_linter for linux-aarch64",
+ "8415398075": "tools/black_linter/bin/black_linter for linux-aarch64",
"6184290684": "tools/flake8_linter/bin/flake8_linter for linux",
"6561765464": "tools/flake8_linter/bin/flake8_linter for linux",
"6184289846": "tools/flake8_linter/bin/flake8_linter for linux-aarch64",
@@ -2627,6 +2642,7 @@
"7686710688": "yt/go/ytrecipe/cmd/ytexec for linux",
"7879860842": "yt/go/ytrecipe/cmd/ytexec for linux",
"8367004015": "yt/go/ytrecipe/cmd/ytexec for linux",
+ "8418036683": "yt/go/ytrecipe/cmd/ytexec for linux",
"2980468199": "ytexec for linux",
"5562224408": "ytexec for linux",
"7663495611": "ytexec for linux"
diff --git a/build/plugins/_dart_fields.py b/build/plugins/_dart_fields.py
index 6344bd001e..64232696d1 100644
--- a/build/plugins/_dart_fields.py
+++ b/build/plugins/_dart_fields.py
@@ -598,34 +598,10 @@ class LintConfigs:
@classmethod
def python_configs(cls, unit, flat_args, spec_args):
- resolved_configs = []
-
- if (custom_config := spec_args.get('CUSTOM_CONFIG')) and '/' in custom_config[0]:
- # black if custom config is passed.
- # XXX During migration we want to use the same macro parameter
- # for path to linter config and config type
- # thus, we check if '/' is present, if it is then it's a path
- # TODO delete once custom configs migrated to autoincludes scheme
- custom_config = custom_config[0]
- assert_file_exists(unit, custom_config)
- resolved_configs.append(custom_config)
- return {cls.KEY: serialize_list(resolved_configs)}
-
if config := cls._from_config_type(unit, spec_args):
# specified by config type, autoincludes scheme
return {cls.KEY: serialize_list([config])}
- if project_to_config_map := spec_args.get('PROJECT_TO_CONFIG_MAP'):
- # ruff, TODO delete once custom configs migrated to autoincludes scheme
- project_to_config_map = project_to_config_map[0]
- assert_file_exists(unit, project_to_config_map)
- resolved_configs.append(project_to_config_map)
- cfgs = get_linter_configs(unit, project_to_config_map).values()
- for c in cfgs:
- assert_file_exists(unit, c)
- resolved_configs.append(c)
- return {cls.KEY: serialize_list(resolved_configs)}
-
# default config
linter_name = spec_args['NAME'][0]
default_configs_path = spec_args['CONFIGS'][0]
@@ -636,10 +612,10 @@ class LintConfigs:
ymake.report_configure_error(message)
raise DartValueError()
assert_file_exists(unit, config)
- resolved_configs.append(config)
+ configs = [config]
if linter_name in ('flake8', 'py2_flake8'):
- resolved_configs.extend(spec_args.get('FLAKE_MIGRATIONS_CONFIG', []))
- return {cls.KEY: serialize_list(resolved_configs)}
+ configs.extend(spec_args.get('FLAKE_MIGRATIONS_CONFIG', []))
+ return {cls.KEY: serialize_list(configs)}
@classmethod
def cpp_configs(cls, unit, flat_args, spec_args):
diff --git a/build/plugins/ytest.py b/build/plugins/ytest.py
index 513887ac16..e65d1e65d4 100644
--- a/build/plugins/ytest.py
+++ b/build/plugins/ytest.py
@@ -1082,9 +1082,7 @@ def on_add_py_linter_check(fields, unit, *args):
"GLOBAL_RESOURCES": unlimited,
"FILE_PROCESSING_TIME": 1,
"EXTRA_PARAMS": unlimited,
- "PROJECT_TO_CONFIG_MAP": 1,
"FLAKE_MIGRATIONS_CONFIG": 1,
- "CUSTOM_CONFIG": 1,
"CONFIG_TYPE": 1,
}
_, spec_args = _common.sort_by_keywords(keywords, args)
diff --git a/build/prebuilt/tools/black_linter/resources.json b/build/prebuilt/tools/black_linter/resources.json
index 11ee13ddea..04cfd1c119 100644
--- a/build/prebuilt/tools/black_linter/resources.json
+++ b/build/prebuilt/tools/black_linter/resources.json
@@ -1,22 +1,22 @@
{
"by_platform": {
"darwin": {
- "uri": "sbr:8107723162"
+ "uri": "sbr:8415405351"
},
"darwin-arm64": {
- "uri": "sbr:8107722855"
+ "uri": "sbr:8415402574"
},
"linux": {
- "uri": "sbr:8107723363"
+ "uri": "sbr:8415400280"
},
"linux-aarch64": {
- "uri": "sbr:8107722414"
+ "uri": "sbr:8415398075"
},
"linux-ppc64le": {
"uri": "sbr:6648879110"
},
- "win32-clang-cl": {
- "uri": "sbr:8107721942"
+ "win32": {
+ "uri": "sbr:8415396109"
}
}
}
diff --git a/build/scripts/check_config_h.py b/build/scripts/check_config_h.py
index 07bc12e230..26facbc48f 100644
--- a/build/scripts/check_config_h.py
+++ b/build/scripts/check_config_h.py
@@ -82,6 +82,14 @@ static_assert(sizeof(wchar_t) == SIZEOF_WCHAR_T, "fixme 16");
#if defined(SIZEOF__BOOL)
//TODO
#endif
+
+#if defined(ALIGNOF_VOID_P)
+static_assert(alignof(void*) == ALIGNOF_VOID_P, "fixme 18");
+#endif
+
+#if defined(ALIGNOF_DOUBLE)
+static_assert(alignof(double) == ALIGNOF_DOUBLE, "fixme 19");
+#endif
"""
if __name__ == '__main__':
with open(sys.argv[2], 'w') as f:
diff --git a/build/sysincl/esp-idf.yml b/build/sysincl/esp-idf.yml
index 736166396e..f03767203d 100644
--- a/build/sysincl/esp-idf.yml
+++ b/build/sysincl/esp-idf.yml
@@ -1,4 +1,5 @@
-- includes:
+- source_filter: "^contrib/libs/esp-idf|contrib/libs/connectedhomeip|taxi"
+ includes:
# freertos
- freertos/FreeRTOS.h: contrib/libs/esp-idf/components/freertos/include/freertos/FreeRTOS.h
- freertos/semphr.h: contrib/libs/esp-idf/components/freertos/include/freertos/semphr.h
diff --git a/build/ymake.core.conf b/build/ymake.core.conf
index 8220fe80ed..b6f076e92d 100644
--- a/build/ymake.core.conf
+++ b/build/ymake.core.conf
@@ -250,14 +250,6 @@ otherwise {
COPY_PROFILE_RUNTIME=
}
-# tag:codenav
-when ($CODENAVIGATION && $NOCODENAVIGATION != "yes") {
- PY_PROGRAM_LINK_EXE=$LINK_EXE && ${hide;kv:"pyndex $TARGET"}
-}
-otherwise {
- PY_PROGRAM_LINK_EXE=$LINK_EXE
-}
-
when ($RETRY == "yes") {
RETRY_ARGS=$YMAKE_PYTHON ${input:"build/scripts/retry_cc.py"}
}
@@ -442,7 +434,7 @@ REQUIRED_TRANSITIVE_PEERS=
###
### This macro can be used if module depends on the directories specified but they can't be listed
### as direct PEERDIR dependencies (due to public include order or link order issues).
-macro REQUIRES(DIRS[]) {
+macro REQUIRES(DIRS...) {
SET_APPEND(REQUIRED_TRANSITIVE_PEERS $DIRS)
}
diff --git a/contrib/libs/cxxsupp/builtins/.yandex_meta/build.ym b/contrib/libs/cxxsupp/builtins/.yandex_meta/build.ym
index 04bc79b0c7..cecee81a03 100644
--- a/contrib/libs/cxxsupp/builtins/.yandex_meta/build.ym
+++ b/contrib/libs/cxxsupp/builtins/.yandex_meta/build.ym
@@ -1,6 +1,6 @@
{% extends '//builtin/bag.ym' %}
-{% block current_version %}20.1.0{% endblock %}
+{% block current_version %}20.1.1{% endblock %}
{% block current_url %}
https://github.com/llvm/llvm-project/releases/download/llvmorg-{{self.version().strip()}}/compiler-rt-{{self.version().strip()}}.src.tar.xz
diff --git a/contrib/libs/cxxsupp/builtins/ya.make b/contrib/libs/cxxsupp/builtins/ya.make
index dce2f27201..67e47b1a65 100644
--- a/contrib/libs/cxxsupp/builtins/ya.make
+++ b/contrib/libs/cxxsupp/builtins/ya.make
@@ -12,9 +12,9 @@ LICENSE(
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(20.1.0)
+VERSION(20.1.1)
-ORIGINAL_SOURCE(https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.0/compiler-rt-20.1.0.src.tar.xz)
+ORIGINAL_SOURCE(https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.1/compiler-rt-20.1.1.src.tar.xz)
NO_COMPILER_WARNINGS()
diff --git a/contrib/libs/libfuzzer/.yandex_meta/override.nix b/contrib/libs/libfuzzer/.yandex_meta/override.nix
index 7415420b65..15a7622b27 100644
--- a/contrib/libs/libfuzzer/.yandex_meta/override.nix
+++ b/contrib/libs/libfuzzer/.yandex_meta/override.nix
@@ -1,11 +1,11 @@
pkgs: attrs: with pkgs; with attrs; rec {
- version = "20.1.0";
+ version = "20.1.2";
src = fetchFromGitHub {
owner = "llvm";
repo = "llvm-project";
rev = "llvmorg-${version}";
- hash = "sha256-86Z8e4ubnHJc1cYHjYPLeQC9eoPF417HYtqg8NAzxts=";
+ hash = "sha256-t30Jh8ckp5qD6XDxtvnSaYiAWbEi6L6hAWh6tN8JjtY=";
};
sourceRoot = "source/compiler-rt";
diff --git a/contrib/libs/libfuzzer/lib/fuzzer/afl/ya.make b/contrib/libs/libfuzzer/lib/fuzzer/afl/ya.make
index 0315d60cc6..2cf1cb720d 100644
--- a/contrib/libs/libfuzzer/lib/fuzzer/afl/ya.make
+++ b/contrib/libs/libfuzzer/lib/fuzzer/afl/ya.make
@@ -8,7 +8,7 @@ LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
SUBSCRIBER(g:cpp-contrib)
-VERSION(20.1.0)
+VERSION(20.1.2)
PEERDIR(
contrib/libs/afl/llvm_mode
diff --git a/contrib/libs/libfuzzer/ya.make b/contrib/libs/libfuzzer/ya.make
index 938438e570..787eeaea14 100644
--- a/contrib/libs/libfuzzer/ya.make
+++ b/contrib/libs/libfuzzer/ya.make
@@ -12,9 +12,9 @@ LICENSE(
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(20.1.0)
+VERSION(20.1.2)
-ORIGINAL_SOURCE(https://github.com/llvm/llvm-project/archive/llvmorg-20.1.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/llvm/llvm-project/archive/llvmorg-20.1.2.tar.gz)
SET(SANITIZER_CFLAGS)
diff --git a/contrib/libs/libunwind/.yandex_meta/override.nix b/contrib/libs/libunwind/.yandex_meta/override.nix
index 29e81dd677..2666c93f5f 100644
--- a/contrib/libs/libunwind/.yandex_meta/override.nix
+++ b/contrib/libs/libunwind/.yandex_meta/override.nix
@@ -1,11 +1,11 @@
pkgs: attrs: with pkgs; with attrs; rec {
- version = "20.1.0";
+ version = "20.1.2";
src = fetchFromGitHub {
owner = "llvm";
repo = "llvm-project";
rev = "llvmorg-${version}";
- hash = "sha256-86Z8e4ubnHJc1cYHjYPLeQC9eoPF417HYtqg8NAzxts=";
+ hash = "sha256-t30Jh8ckp5qD6XDxtvnSaYiAWbEi6L6hAWh6tN8JjtY=";
};
patches = [];
diff --git a/contrib/libs/libunwind/ya.make b/contrib/libs/libunwind/ya.make
index b04a57ec9e..c2478a4035 100644
--- a/contrib/libs/libunwind/ya.make
+++ b/contrib/libs/libunwind/ya.make
@@ -11,9 +11,9 @@ LICENSE(
LICENSE_TEXTS(.yandex_meta/licenses.list.txt)
-VERSION(20.1.0)
+VERSION(20.1.2)
-ORIGINAL_SOURCE(https://github.com/llvm/llvm-project/archive/llvmorg-20.1.0.tar.gz)
+ORIGINAL_SOURCE(https://github.com/llvm/llvm-project/archive/llvmorg-20.1.2.tar.gz)
PEERDIR(
library/cpp/sanitizer/include
diff --git a/contrib/python/iniconfig/.dist-info/METADATA b/contrib/python/iniconfig/.dist-info/METADATA
index 3ea1e01cb0..3a8ef46a3b 100644
--- a/contrib/python/iniconfig/.dist-info/METADATA
+++ b/contrib/python/iniconfig/.dist-info/METADATA
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
Name: iniconfig
-Version: 2.0.0
+Version: 2.1.0
Summary: brain-dead simple config-ini parsing
Project-URL: Homepage, https://github.com/pytest-dev/iniconfig
Author-email: Ronny Pfannschmidt <opensource@ronnypfannschmidt.de>, Holger Krekel <holger.krekel@gmail.com>
@@ -14,14 +14,15 @@ Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
-Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
+Classifier: Programming Language :: Python :: 3.12
+Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Utilities
-Requires-Python: >=3.7
+Requires-Python: >=3.8
Description-Content-Type: text/x-rst
iniconfig: brain-dead simple parsing of ini files
diff --git a/contrib/python/iniconfig/LICENSE b/contrib/python/iniconfig/LICENSE
index 31ecdfb1db..46f4b2846f 100644
--- a/contrib/python/iniconfig/LICENSE
+++ b/contrib/python/iniconfig/LICENSE
@@ -1,19 +1,21 @@
+The MIT License (MIT)
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE.
+Copyright (c) 2010 - 2023 Holger Krekel and others
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/contrib/python/iniconfig/iniconfig/__init__.py b/contrib/python/iniconfig/iniconfig/__init__.py
index c1c94f70ae..ed6499bc6c 100644
--- a/contrib/python/iniconfig/iniconfig/__init__.py
+++ b/contrib/python/iniconfig/iniconfig/__init__.py
@@ -20,7 +20,7 @@ from typing import (
import os
if TYPE_CHECKING:
- from typing_extensions import Final
+ from typing import Final
__all__ = ["IniConfig", "ParseError", "COMMENTCHARS", "iscommentline"]
diff --git a/contrib/python/iniconfig/iniconfig/_version.py b/contrib/python/iniconfig/iniconfig/_version.py
index dd1883d734..e058e2c657 100644
--- a/contrib/python/iniconfig/iniconfig/_version.py
+++ b/contrib/python/iniconfig/iniconfig/_version.py
@@ -1,4 +1,21 @@
-# file generated by setuptools_scm
+# file generated by setuptools-scm
# don't change, don't track in version control
-__version__ = version = '2.0.0'
-__version_tuple__ = version_tuple = (2, 0, 0)
+
+__all__ = ["__version__", "__version_tuple__", "version", "version_tuple"]
+
+TYPE_CHECKING = False
+if TYPE_CHECKING:
+ from typing import Tuple
+ from typing import Union
+
+ VERSION_TUPLE = Tuple[Union[int, str], ...]
+else:
+ VERSION_TUPLE = object
+
+version: str
+__version__: str
+__version_tuple__: VERSION_TUPLE
+version_tuple: VERSION_TUPLE
+
+__version__ = version = '2.1.0'
+__version_tuple__ = version_tuple = (2, 1, 0)
diff --git a/contrib/python/iniconfig/iniconfig/exceptions.py b/contrib/python/iniconfig/iniconfig/exceptions.py
index bc898e68ee..8c4dc9a8b0 100644
--- a/contrib/python/iniconfig/iniconfig/exceptions.py
+++ b/contrib/python/iniconfig/iniconfig/exceptions.py
@@ -2,7 +2,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING
if TYPE_CHECKING:
- from typing_extensions import Final
+ from typing import Final
class ParseError(Exception):
diff --git a/contrib/python/iniconfig/ya.make b/contrib/python/iniconfig/ya.make
index 0121cca743..20492d75c6 100644
--- a/contrib/python/iniconfig/ya.make
+++ b/contrib/python/iniconfig/ya.make
@@ -2,7 +2,7 @@
PY3_LIBRARY()
-VERSION(2.0.0)
+VERSION(2.1.0)
LICENSE(MIT)
diff --git a/library/cpp/neh/http2.cpp b/library/cpp/neh/http2.cpp
index f10fdc3b3e..daf73ba0d1 100644
--- a/library/cpp/neh/http2.cpp
+++ b/library/cpp/neh/http2.cpp
@@ -912,7 +912,6 @@ namespace {
THttpConnManager()
: TotalConn(0)
, EP_(THttp2Options::AsioThreads)
- , InPurging_(0)
, MaxConnId_(0)
, Shutdown_(false)
{
@@ -1011,7 +1010,7 @@ namespace {
}
void SuggestPurgeCache() {
- if (AtomicTryLock(&InPurging_)) {
+ if (InPurging_.TryAcquire()) {
//evaluate the usefulness of purging the cache
//если в кеше мало соединений (< MaxConnId_/16 или 64), не чистим кеш
if (Cache_.Size() > (Min((size_t)AtomicGet(MaxConnId_), (size_t)1024U) >> 4)) {
@@ -1031,7 +1030,7 @@ namespace {
return; //memo: thread MUST unlock InPurging_ (see DoExecute())
}
}
- AtomicUnlock(&InPurging_);
+ InPurging_.Release();
}
}
@@ -1049,7 +1048,7 @@ namespace {
PurgeCache();
- AtomicUnlock(&InPurging_);
+ InPurging_.Release();
}
}
@@ -1076,7 +1075,7 @@ namespace {
TExecutorsPool EP_;
TConnCache<THttpConn> Cache_;
- TAtomic InPurging_;
+ TSpinLock InPurging_;
TAtomic MaxConnId_;
TAutoPtr<IThreadFactory::IThread> T_;
diff --git a/library/cpp/neh/https.cpp b/library/cpp/neh/https.cpp
index ece7d3cf2d..99db8a44cc 100644
--- a/library/cpp/neh/https.cpp
+++ b/library/cpp/neh/https.cpp
@@ -11,7 +11,6 @@
#include <openssl/ssl.h>
#include <openssl/err.h>
-#include <openssl/bio.h>
#include <openssl/x509v3.h>
#include <library/cpp/openssl/init/init.h>
@@ -26,12 +25,10 @@
#include <util/generic/list.h>
#include <util/generic/utility.h>
#include <util/network/socket.h>
-#include <util/stream/str.h>
#include <util/stream/zlib.h>
#include <util/string/builder.h>
#include <util/string/cast.h>
#include <util/system/condvar.h>
-#include <util/system/error.h>
#include <util/system/types.h>
#include <util/thread/factory.h>
@@ -448,8 +445,7 @@ namespace NNeh {
};
TConnCache()
- : InPurging_(0)
- , MaxConnId_(0)
+ : MaxConnId_(0)
, Shutdown_(false)
{
T_ = SystemThreadFactory()->Run(this);
@@ -557,7 +553,7 @@ namespace NNeh {
private:
void SuggestPurgeCache() {
- if (AtomicTryLock(&InPurging_)) {
+ if (InPurging_.TryAcquire()) {
//evaluate the usefulness of purging the cache
//если в кеше мало соединений (< MaxConnId_/16 или 64), не чистим кеш
if ((size_t)CachedConnections.Val() > (Min((size_t)MaxConnId_.load(std::memory_order_acquire), (size_t)1024U) >> 4)) {
@@ -577,7 +573,7 @@ namespace NNeh {
return; //memo: thread MUST unlock InPurging_ (see DoExecute())
}
}
- AtomicUnlock(&InPurging_);
+ InPurging_.Release();
}
}
@@ -594,7 +590,7 @@ namespace NNeh {
PurgeCache();
- AtomicUnlock(&InPurging_);
+ InPurging_.Release();
}
}
@@ -660,7 +656,7 @@ namespace NNeh {
NHttp::TLockFreeSequence<TConnList> Lst_;
- TAtomic InPurging_;
+ TSpinLock InPurging_;
std::atomic<size_t> MaxConnId_;
TAutoPtr<IThreadFactory::IThread> T_;
diff --git a/ydb/ci/rightlib.txt b/ydb/ci/rightlib.txt
index 8fcdbad5cc..20221f0853 100644
--- a/ydb/ci/rightlib.txt
+++ b/ydb/ci/rightlib.txt
@@ -1 +1 @@
-82a20ed13f9ce647673791b772685ee5997f256d
+099240b6b9d598e1178351c4324de0bae80ae98a
diff --git a/yql/essentials/cfg/tests/gateways-experimental.conf b/yql/essentials/cfg/tests/gateways-experimental.conf
index fe6fa97660..a68414581b 100644
--- a/yql/essentials/cfg/tests/gateways-experimental.conf
+++ b/yql/essentials/cfg/tests/gateways-experimental.conf
@@ -33,6 +33,26 @@ Yt {
Name: "UseColumnGroupsFromInputTables"
Value: "true"
}
+
+ DefaultSettings {
+ Name: "JobBlockInput"
+ Value: "true"
+ }
+
+ DefaultSettings {
+ Name: "JobBlockInputSupportedTypes"
+ Value: "tuple"
+ }
+
+ DefaultSettings {
+ Name: "JobBlockInputSupportedDataTypes"
+ Value: "Int8,Uint8,Int16,Uint16,Int32,Uint32,Int64,Uint64,Bool,Double,String,Utf8,Yson,Float"
+ }
+
+ DefaultSettings {
+ Name: "ReportEquiJoinStats"
+ Value: "true"
+ }
}
Dq {
diff --git a/yql/essentials/core/peephole_opt/yql_opt_peephole_physical.cpp b/yql/essentials/core/peephole_opt/yql_opt_peephole_physical.cpp
index 1b39f7dd86..19c55dbfcf 100644
--- a/yql/essentials/core/peephole_opt/yql_opt_peephole_physical.cpp
+++ b/yql/essentials/core/peephole_opt/yql_opt_peephole_physical.cpp
@@ -126,33 +126,33 @@ TExprNode::TPtr RebuildArgumentsOnlyLambdaForBlocks(const TExprNode& lambda, TEx
return ctx.NewLambda(lambda.Pos(), ctx.NewArguments(lambda.Pos(), std::move(newArgs)), std::move(newRoots));
}
+TExprNode::TPtr SwapFlowNodeWithStreamNode(const TExprNode::TPtr& flowNode, const TExprNode::TPtr& streamNode, TExprContext& ctx) {
+ const auto streamInput = streamNode->HeadPtr();
+ // If streamInput is FromFlow, its input is WideFlow and can
+ // be used intact; Otherwise the input is WideStream, so the
+ // new input should be converted to WideFlow.
+ auto flowInput = streamInput->IsCallable("FromFlow") ? streamInput->HeadPtr()
+ : ctx.NewCallable(streamInput->Pos(), "ToFlow", { streamInput });
+ // XXX: ChangeChild has to be used here and below, since
+ // the callable might have more than one input, but only
+ // the first one should be substituted.
+ const auto newFlowNode = ctx.ChangeChild(*flowNode, 0, std::move(flowInput));
+ const auto newStreamNode = ctx.ChangeChild(*streamNode, 0, {
+ ctx.NewCallable(newFlowNode->Pos(), "FromFlow", { newFlowNode })
+ });
+ return ctx.Builder(flowNode->Pos())
+ .Callable("ToFlow")
+ .Add(0, newStreamNode)
+ .Seal()
+ .Build();
+}
+
TExprNode::TPtr OptimizeWideToBlocks(const TExprNode::TPtr& node, TExprContext& ctx, TTypeAnnotationContext& types) {
Y_UNUSED(types);
const auto& input = node->Head();
if (input.IsCallable("WideFromBlocks")) {
YQL_CLOG(DEBUG, CorePeepHole) << "Drop " << node->Content() << " over " << input.Content();
- // If tail is FromFlow, its input is WideFlow and can be
- // used intact; Otherwise the input is WideStream, so the
- // new input should be converted to WideFlow.
- const auto tail = input.HeadPtr();
- const auto flowInput = tail->IsCallable("FromFlow") ? tail->HeadPtr()
- : ctx.NewCallable(tail->Pos(), "ToFlow", { tail });
-
- // Static assert to ensure backward compatible change: if the
- // constant below is true, both input and output types of
- // ReplicateScalars callable have to be WideStream; otherwise,
- // both input and output types have to be WideFlow.
- // FIXME: When all spots using ReplicateScalars are adjusted
- // to work with WideStream, drop the assertion below.
- static_assert(!NYql::NBlockStreamIO::ReplicateScalars);
-
- return ctx.Builder(node->Pos())
- .Callable("FromFlow")
- .Callable(0, "ReplicateScalars")
- .Add(0, flowInput)
- .Seal()
- .Seal()
- .Build();
+ return ctx.NewCallable(node->Pos(), "ReplicateScalars", { input.HeadPtr() });
}
if (input.IsCallable("FromFlow") && input.Head().IsCallable({"Extend", "OrderedExtend"})) {
@@ -199,30 +199,9 @@ TExprNode::TPtr OptimizeWideFromBlocks(const TExprNode::TPtr& node, TExprContext
return input.HeadPtr();
}
- // Static assert to ensure backward compatible change: if the
- // constant below is true, both input and output types of
- // ReplicateScalars callable have to be WideStream; otherwise,
- // both input and output types have to be WideFlow.
- // FIXME: When all spots using ReplicateScalars are adjusted
- // to work with WideStream, drop the assertion below.
- static_assert(!NYql::NBlockStreamIO::ReplicateScalars);
-
- if (input.IsCallable("FromFlow") && input.Head().IsCallable("ReplicateScalars")) {
- const auto& replicateScalars = input.Head();
- // Technically, the code below rewrites the following sequence
- // (WideFromBlocks (FromFlow (ReplicateScalars (<input>))))
- // into (WideFromBlocks (FromFlow (<input>))), but ToFlow/FromFlow
- // wrappers will be removed when all other nodes in block
- // pipeline start using WideStream instead of the WideFlow.
- // Hence, the logging is left intact.
- YQL_CLOG(DEBUG, CorePeepHole) << "Drop " << replicateScalars.Content() << " as input of " << node->Content();
- return ctx.Builder(node->Pos())
- .Callable(node->Content())
- .Callable(0, input.Content())
- .Add(0, replicateScalars.HeadPtr())
- .Seal()
- .Seal()
- .Build();
+ if (input.IsCallable("ReplicateScalars")) {
+ YQL_CLOG(DEBUG, CorePeepHole) << "Drop " << input.Content() << " as input of " << node->Content();
+ return ctx.ChangeChild(*node, 0, input.HeadPtr());
}
return node;
@@ -230,18 +209,17 @@ TExprNode::TPtr OptimizeWideFromBlocks(const TExprNode::TPtr& node, TExprContext
TExprNode::TPtr OptimizeWideTakeSkipBlocks(const TExprNode::TPtr& node, TExprContext& ctx, TTypeAnnotationContext& types) {
Y_UNUSED(types);
-
- // Static assert to ensure backward compatible change: if the
- // constant below is true, both input and output types of
- // ReplicateScalars callable have to be WideStream; otherwise,
- // both input and output types have to be WideFlow.
- // FIXME: When all spots using ReplicateScalars are adjusted
- // to work with WideStream, drop the assertion below.
- static_assert(!NYql::NBlockStreamIO::ReplicateScalars);
-
- if (node->Head().IsCallable("ReplicateScalars")) {
- YQL_CLOG(DEBUG, CorePeepHole) << "Swap " << node->Content() << " with " << node->Head().Content();
- return ctx.SwapWithHead(*node);
+ const auto& input = node->HeadPtr();
+ if (input->IsCallable("ToFlow") && input->Head().IsCallable("ReplicateScalars")) {
+ const auto& replicateScalars = input->HeadPtr();
+ // Technically, the code below rewrites the following sequence
+ // (Wide{Skip,Take}Blocks (ToFlow (ReplicateScalars (<input>))))
+ // into (ToFlow (ReplicateScalars (FromFlow (Wide{Skip,Take}Blocks (<input>))))),
+ // but ToFlow/FromFlow wrappers will be removed when all other
+ // nodes in block pipeline start using WideStream instead of the
+ // WideFlow. Hence, the logging is left intact.
+ YQL_CLOG(DEBUG, CorePeepHole) << "Swap " << node->Content() << " with " << replicateScalars->Content();
+ return SwapFlowNodeWithStreamNode(node, replicateScalars, ctx);
}
return node;
@@ -249,35 +227,31 @@ TExprNode::TPtr OptimizeWideTakeSkipBlocks(const TExprNode::TPtr& node, TExprCon
TExprNode::TPtr OptimizeBlockCompress(const TExprNode::TPtr& node, TExprContext& ctx, TTypeAnnotationContext& types) {
Y_UNUSED(types);
-
- // Static assert to ensure backward compatible change: if the
- // constant below is true, both input and output types of
- // ReplicateScalars callable have to be WideStream; otherwise,
- // both input and output types have to be WideFlow.
- // FIXME: When all spots using ReplicateScalars are adjusted
- // to work with WideStream, drop the assertion below.
- static_assert(!NYql::NBlockStreamIO::ReplicateScalars);
-
- if (node->Head().IsCallable("ReplicateScalars")) {
- YQL_CLOG(DEBUG, CorePeepHole) << "Swap " << node->Content() << " with " << node->Head().Content();
- if (node->Head().ChildrenSize() == 1) {
- return ctx.SwapWithHead(*node);
+ const auto& input = node->HeadPtr();
+ if (input->IsCallable("ToFlow") && input->Head().IsCallable("ReplicateScalars")) {
+ const auto& replicateScalars = input->HeadPtr();
+ // Technically, the code below rewrites the following sequence
+ // (BlockCompress (ToFlow (ReplicateScalars (<input>))))
+ // into (ToFlow (ReplicateScalars (FromFlow (BlockCompress (<input>))))),
+ // but ToFlow/FromFlow wrappers will be removed when all other
+ // nodes in block pipeline start using WideStream instead of the
+ // WideFlow. Hence, the logging is left intact.
+ YQL_CLOG(DEBUG, CorePeepHole) << "Swap " << node->Content() << " with " << replicateScalars->Content();
+ if (replicateScalars->ChildrenSize() == 1) {
+ return SwapFlowNodeWithStreamNode(node, replicateScalars, ctx);
}
const ui32 compressIndex = FromString<ui32>(node->Child(1)->Content());
TExprNodeList newReplicateIndexes;
- for (auto atom : node->Head().Child(1)->ChildrenList()) {
+ for (auto atom : replicateScalars->Child(1)->ChildrenList()) {
ui32 idx = FromString<ui32>(atom->Content());
if (idx != compressIndex) {
newReplicateIndexes.push_back((idx < compressIndex) ? atom : ctx.NewAtom(atom->Pos(), idx - 1));
}
}
- return ctx.Builder(node->Pos())
- .Callable("ReplicateScalars")
- .Add(0, ctx.ChangeChild(*node, 0, node->Head().HeadPtr()))
- .Add(1, ctx.NewList(node->Head().Child(1)->Pos(), std::move(newReplicateIndexes)))
- .Seal()
- .Build();
+ const auto& newReplicateScalars = ctx.ChangeChild(*replicateScalars, 1,
+ ctx.NewList(replicateScalars->Child(1)->Pos(), std::move(newReplicateIndexes)));
+ return SwapFlowNodeWithStreamNode(node, newReplicateScalars, ctx);
}
return node;
@@ -285,18 +259,17 @@ TExprNode::TPtr OptimizeBlockCompress(const TExprNode::TPtr& node, TExprContext&
TExprNode::TPtr OptimizeBlocksTopOrSort(const TExprNode::TPtr& node, TExprContext& ctx, TTypeAnnotationContext& types) {
Y_UNUSED(types);
-
- // Static assert to ensure backward compatible change: if the
- // constant below is true, both input and output types of
- // ReplicateScalars callable have to be WideStream; otherwise,
- // both input and output types have to be WideFlow.
- // FIXME: When all spots using ReplicateScalars are adjusted
- // to work with WideStream, drop the assertion below.
- static_assert(!NYql::NBlockStreamIO::ReplicateScalars);
-
- if (node->Head().IsCallable("ReplicateScalars")) {
- YQL_CLOG(DEBUG, CorePeepHole) << "Swap " << node->Content() << " with " << node->Head().Content();
- return ctx.SwapWithHead(*node);
+ const auto& input = node->HeadPtr();
+ if (input->IsCallable("ToFlow") && input->Head().IsCallable("ReplicateScalars")) {
+ const auto& replicateScalars = input->HeadPtr();
+ // Technically, the code below rewrites the following sequence
+ // (Wide{Top,TopSort,Sort}Blocks (ToFlow (ReplicateScalars (<input>))))
+ // into (ToFlow (ReplicateScalars (FromFlow (Wide{Top,TopSort,Sort}Blocks (<input>))))),
+ // but ToFlow/FromFlow wrappers will be removed when all other
+ // nodes in block pipeline start using WideStream instead of the
+ // WideFlow. Hence, the logging is left intact.
+ YQL_CLOG(DEBUG, CorePeepHole) << "Swap " << node->Content() << " with " << replicateScalars->Content();
+ return SwapFlowNodeWithStreamNode(node, replicateScalars, ctx);
}
return node;
@@ -307,18 +280,15 @@ TExprNode::TPtr OptimizeBlockExtend(const TExprNode::TPtr& node, TExprContext& c
TExprNodeList inputs = node->ChildrenList();
bool hasReplicateScalars = false;
for (auto& input : inputs) {
-
- // Static assert to ensure backward compatible change: if the
- // constant below is true, both input and output types of
- // ReplicateScalars callable have to be WideStream; otherwise,
- // both input and output types have to be WideFlow.
- // FIXME: When all spots using ReplicateScalars are adjusted
- // to work with WideStream, drop the assertion below.
- static_assert(!NYql::NBlockStreamIO::ReplicateScalars);
-
- if (input->IsCallable("ReplicateScalars")) {
+ if (input->IsCallable("ToFlow") && input->Head().IsCallable("ReplicateScalars")) {
+ const auto& replicateScalars = input->Head();
hasReplicateScalars = true;
- input = input->HeadPtr();
+ // If tail is FromFlow, its input is WideFlow and can be
+ // used intact; Otherwise the input is WideStream, so the
+ // new input should be converted to WideFlow.
+ const auto tail = replicateScalars.HeadPtr();
+ input = tail->IsCallable("FromFlow") ? tail->HeadPtr()
+ : ctx.NewCallable(tail->Pos(), "ToFlow", { tail });
}
}
@@ -332,15 +302,6 @@ TExprNode::TPtr OptimizeBlockExtend(const TExprNode::TPtr& node, TExprContext& c
TExprNode::TPtr OptimizeReplicateScalars(const TExprNode::TPtr& node, TExprContext& ctx, TTypeAnnotationContext& types) {
Y_UNUSED(types);
-
- // Static assert to ensure backward compatible change: if the
- // constant below is true, both input and output types of
- // ReplicateScalars callable have to be WideStream; otherwise,
- // both input and output types have to be WideFlow.
- // FIXME: When all spots using ReplicateScalars are adjusted
- // to work with WideStream, drop the assertion below.
- static_assert(!NYql::NBlockStreamIO::ReplicateScalars);
-
if (node->Head().IsCallable("ReplicateScalars")) {
if (node->ChildrenSize() == 1) {
YQL_CLOG(DEBUG, CorePeepHole) << "Drop " << node->Head().Content() << " as input of " << node->Content();
@@ -384,16 +345,20 @@ TExprNode::TPtr ExpandBlockExtend(const TExprNode::TPtr& node, TExprContext& ctx
const bool hasScalars = AnyOf(items.begin(), items.end() - 1, [](const auto& item) { return item->IsScalar(); });
seenScalars = seenScalars || hasScalars;
+ TExprNode::TPtr newChild = child;
+ if (hasScalars) {
+ newChild = ctx.Builder(child->Pos())
+ .Callable("ToFlow")
+ .Callable(0, "ReplicateScalars")
+ .Callable(0, "FromFlow")
+ .Add(0, std::move(child))
+ .Seal()
+ .Seal()
+ .Seal()
+ .Build();
+ }
- // Static assert to ensure backward compatible change: if the
- // constant below is true, both input and output types of
- // ReplicateScalars callable have to be WideStream; otherwise,
- // both input and output types have to be WideFlow.
- // FIXME: When all spots using ReplicateScalars are adjusted
- // to work with WideStream, drop the assertion below.
- static_assert(!NYql::NBlockStreamIO::ReplicateScalars);
-
- newChildren.push_back(ctx.WrapByCallableIf(hasScalars, "ReplicateScalars", std::move(child)));
+ newChildren.push_back(newChild);
}
const TStringBuf newName = node->IsCallable("BlockExtend") ? "Extend" : "OrderedExtend";
@@ -405,17 +370,8 @@ TExprNode::TPtr ExpandBlockExtend(const TExprNode::TPtr& node, TExprContext& ctx
TExprNode::TPtr ExpandReplicateScalars(const TExprNode::TPtr& node, TExprContext& ctx, TTypeAnnotationContext& types) {
Y_UNUSED(types);
-
- // Static assert to ensure backward compatible change: if the
- // constant below is true, both input and output types of
- // ReplicateScalars callable have to be WideStream; otherwise,
- // both input and output types have to be WideFlow.
- // FIXME: When all spots using ReplicateScalars are adjusted
- // to work with WideStream, drop the assertion below.
- static_assert(!NYql::NBlockStreamIO::ReplicateScalars);
-
YQL_CLOG(DEBUG, CorePeepHole) << "Expand " << node->Content();
- const auto& items = node->Head().GetTypeAnn()->Cast<TFlowExprType>()->GetItemType()->Cast<TMultiExprType>()->GetItems();
+ const auto& items = node->Head().GetTypeAnn()->Cast<TStreamExprType>()->GetItemType()->Cast<TMultiExprType>()->GetItems();
const ui32 width = items.size();
TExprNodeList args;
@@ -447,9 +403,13 @@ TExprNode::TPtr ExpandReplicateScalars(const TExprNode::TPtr& node, TExprContext
}
return ctx.Builder(node->Pos())
- .Callable("WideMap")
- .Add(0, node->HeadPtr())
- .Add(1, ctx.NewLambda(node->Pos(), ctx.NewArguments(node->Pos(), std::move(args)), std::move(bodyItems)))
+ .Callable("FromFlow")
+ .Callable(0, "WideMap")
+ .Callable(0, "ToFlow")
+ .Add(0, node->HeadPtr())
+ .Seal()
+ .Add(1, ctx.NewLambda(node->Pos(), ctx.NewArguments(node->Pos(), std::move(args)), std::move(bodyItems)))
+ .Seal()
.Seal()
.Build();
}
@@ -6402,7 +6362,15 @@ bool CanRewriteToBlocksWithInput(const TExprNode& input, const TTypeAnnotationCo
case NYql::EBlockEngineMode::Disable:
return false;
case NYql::EBlockEngineMode::Auto:
- return input.IsCallable("WideFromBlocks");
+ // The code below matches, whether the input is one of
+ // the following:
+ // * (WideFromBlocks (...))
+ // * (ToFlow (WideFromBlocks (...)))
+ // FIXME: The latter option can be removed when
+ // WideStream overloads are implemented for all nodes,
+ // using this helper.
+ return input.IsCallable("WideFromBlocks") ||
+ input.IsCallable("ToFlow") && input.Head().IsCallable("WideFromBlocks");
case NYql::EBlockEngineMode::Force:
return true;
}
@@ -6744,8 +6712,9 @@ TExprNode::TPtr UpdateBlockCombineColumns(const TExprNode::TPtr& node, std::opti
TExprNode::TPtr OptimizeBlockCombine(const TExprNode::TPtr& node, TExprContext& ctx, TTypeAnnotationContext& types) {
Y_UNUSED(types);
- if (node->Head().IsCallable("WideMap")) {
- const auto& lambda = node->Head().Tail();
+ const auto& input = node->Head();
+ if (input.IsCallable("WideMap")) {
+ const auto& lambda = input.Tail();
TVector<ui32> argIndices;
bool onlyArguments = IsArgumentsOnlyLambda(lambda, argIndices);
if (onlyArguments) {
@@ -6754,10 +6723,10 @@ TExprNode::TPtr OptimizeBlockCombine(const TExprNode::TPtr& node, TExprContext&
}
}
- if (node->Head().IsCallable("BlockCompress") && node->Child(1)->IsCallable("Void")) {
- auto filterIndex = FromString<ui32>(node->Head().Child(1)->Content());
+ if (input.IsCallable("BlockCompress") && node->Child(1)->IsCallable("Void")) {
+ auto filterIndex = FromString<ui32>(input.Child(1)->Content());
TVector<ui32> argIndices;
- argIndices.resize(node->Head().GetTypeAnn()->Cast<TFlowExprType>()->GetItemType()->Cast<TMultiExprType>()->GetSize());
+ argIndices.resize(input.GetTypeAnn()->Cast<TFlowExprType>()->GetItemType()->Cast<TMultiExprType>()->GetSize());
for (ui32 i = 0; i < argIndices.size(); ++i) {
argIndices[i] = (i < filterIndex) ? i : i + 1;
}
@@ -6766,17 +6735,22 @@ TExprNode::TPtr OptimizeBlockCombine(const TExprNode::TPtr& node, TExprContext&
return UpdateBlockCombineColumns(node, filterIndex, argIndices, ctx);
}
- // Static assert to ensure backward compatible change: if the
- // constant below is true, both input and output types of
- // ReplicateScalars callable have to be WideStream; otherwise,
- // both input and output types have to be WideFlow.
- // FIXME: When all spots using ReplicateScalars are adjusted
- // to work with WideStream, drop the assertion below.
- static_assert(!NYql::NBlockStreamIO::ReplicateScalars);
-
- if (node->Head().IsCallable("ReplicateScalars")) {
- YQL_CLOG(DEBUG, CorePeepHole) << "Drop " << node->Head().Content() << " as input of " << node->Content();
- return ctx.ChangeChild(*node, 0, node->Head().HeadPtr());
+ if (input.IsCallable("ToFlow") && input.Head().IsCallable("ReplicateScalars")) {
+ const auto& replicateScalars = input.Head();
+ // Technically, the code below rewrites the following sequence
+ // (BlockCombine{All,Hashed} (ToFlow (ReplicateScalars (<input>))))
+ // into (BlockCombine{All,Hashed} (<input>)), but ToFlow/FromFlow
+ // wrappers will be removed when all other nodes in block pipeline
+ // start using WideStream instead of the WideFlow. Hence, the
+ // logging is left intact.
+ YQL_CLOG(DEBUG, CorePeepHole) << "Drop " << replicateScalars.Content() << " as input of " << node->Content();
+ // If tail is FromFlow, its input is WideFlow and can be
+ // used intact; Otherwise the input is WideStream, so the
+ // new input should be converted to WideFlow.
+ const auto tail = replicateScalars.HeadPtr();
+ auto flowInput = tail->IsCallable("FromFlow") ? tail->HeadPtr()
+ : ctx.NewCallable(tail->Pos(), "ToFlow", { tail });
+ return ctx.ChangeChild(*node, 0, std::move(flowInput));
}
return node;
@@ -6784,31 +6758,37 @@ TExprNode::TPtr OptimizeBlockCombine(const TExprNode::TPtr& node, TExprContext&
TExprNode::TPtr OptimizeBlockMerge(const TExprNode::TPtr& node, TExprContext& ctx, TTypeAnnotationContext& types) {
Y_UNUSED(types);
-
- // Static assert to ensure backward compatible change: if the
- // constant below is true, both input and output types of
- // ReplicateScalars callable have to be WideStream; otherwise,
- // both input and output types have to be WideFlow.
- // FIXME: When all spots using ReplicateScalars are adjusted
- // to work with WideStream, drop the assertion below.
- static_assert(!NYql::NBlockStreamIO::ReplicateScalars);
-
- if (node->Head().IsCallable("ReplicateScalars")) {
- YQL_CLOG(DEBUG, CorePeepHole) << "Drop " << node->Head().Content() << " as input of " << node->Content();
- return ctx.ChangeChild(*node, 0, node->Head().HeadPtr());
+ const auto& input = node->Head();
+ if (input.IsCallable("ToFlow") && input.Head().IsCallable("ReplicateScalars")) {
+ const auto& replicateScalars = input.Head();
+ // Technically, the code below rewrites the following sequence
+ // (BlockMerge{,Many}FinalizeHashed (ToFlow (ReplicateScalars (<input>))))
+ // into (BlockMerge{,Many}FinalizeHashed (<input>)), but
+ // ToFlow/FromFlow wrappers will be removed when all other nodes
+ // in block pipeline start using WideStream instead of the WideFlow.
+ // Hence, the logging is left intact.
+ YQL_CLOG(DEBUG, CorePeepHole) << "Drop " << replicateScalars.Content() << " as input of " << node->Content();
+ // If tail is FromFlow, its input is WideFlow and can be
+ // used intact; Otherwise the input is WideStream, so the
+ // new input should be converted to WideFlow.
+ const auto tail = replicateScalars.HeadPtr();
+ auto flowInput = tail->IsCallable("FromFlow") ? tail->HeadPtr()
+ : ctx.NewCallable(tail->Pos(), "ToFlow", { tail });
+ return ctx.ChangeChild(*node, 0, std::move(flowInput));
}
return node;
}
TExprNode::TPtr SwapReplicateScalarsWithWideMap(const TExprNode::TPtr& wideMap, TExprContext& ctx) {
- YQL_ENSURE(wideMap->IsCallable("WideMap") && wideMap->Head().IsCallable("ReplicateScalars"));
- const auto& input = wideMap->Head();
- auto inputTypes = input.GetTypeAnn()->Cast<TFlowExprType>()->GetItemType()->Cast<TMultiExprType>()->GetItems();
+ const auto& child = wideMap->Head();
+ YQL_ENSURE(wideMap->IsCallable("WideMap") && child.IsCallable("ToFlow") && child.Head().IsCallable("ReplicateScalars"));
+ const auto& input = child.Head();
+ auto inputTypes = input.GetTypeAnn()->Cast<TStreamExprType>()->GetItemType()->Cast<TMultiExprType>()->GetItems();
YQL_ENSURE(inputTypes.size() > 0);
THashSet<ui32> replicatedInputIndexes;
- auto replicateScalarsInputTypes = input.Head().GetTypeAnn()->Cast<TFlowExprType>()->GetItemType()->Cast<TMultiExprType>()->GetItems();
+ auto replicateScalarsInputTypes = input.Head().GetTypeAnn()->Cast<TStreamExprType>()->GetItemType()->Cast<TMultiExprType>()->GetItems();
YQL_ENSURE(replicateScalarsInputTypes.size() > 0);
if (input.ChildrenSize() == 1) {
for (ui32 i = 0; i + 1 < replicateScalarsInputTypes.size(); ++i) {
@@ -6865,21 +6845,19 @@ TExprNode::TPtr SwapReplicateScalarsWithWideMap(const TExprNode::TPtr& wideMap,
}
}
- // Static assert to ensure backward compatible change: if the
- // constant below is true, both input and output types of
- // ReplicateScalars callable have to be WideStream; otherwise,
- // both input and output types have to be WideFlow.
- // FIXME: When all spots using ReplicateScalars are adjusted
- // to work with WideStream, drop the assertion below.
- static_assert(!NYql::NBlockStreamIO::ReplicateScalars);
-
return ctx.Builder(wideMap->Pos())
- .Callable("ReplicateScalars")
- .Callable(0, "WideMap")
- .Add(0, input.HeadPtr())
- .Add(1, ctx.DeepCopyLambda(lambda))
+ .Callable("ToFlow")
+ .Callable(0, "ReplicateScalars")
+ .Callable(0, "FromFlow")
+ .Callable(0, "WideMap")
+ .Callable(0, "ToFlow")
+ .Add(0, input.HeadPtr())
+ .Seal()
+ .Add(1, ctx.DeepCopyLambda(lambda))
+ .Seal()
+ .Seal()
+ .Add(1, ctx.NewList(input.Pos(), std::move(replicatedOutputIndexes)))
.Seal()
- .Add(1, ctx.NewList(input.Pos(), std::move(replicatedOutputIndexes)))
.Seal()
.Build();
}
@@ -7053,17 +7031,8 @@ TExprNode::TPtr OptimizeWideMaps(const TExprNode::TPtr& node, TExprContext& ctx)
.Add(0, ctx.ChangeChildren(input, std::move(children)))
.Add(1, DropUnusedArgs(node->Tail(), unused, ctx))
.Seal().Build();
- } else if (node->IsCallable("WideMap") && input.IsCallable("ReplicateScalars")) {
-
- // Static assert to ensure backward compatible change: if the
- // constant below is true, both input and output types of
- // ReplicateScalars callable have to be WideStream; otherwise,
- // both input and output types have to be WideFlow.
- // FIXME: When all spots using ReplicateScalars are adjusted
- // to work with WideStream, drop the assertion below.
- static_assert(!NYql::NBlockStreamIO::ReplicateScalars);
-
- YQL_CLOG(DEBUG, CorePeepHole) << node->Content() << " over " << input.Content();
+ } else if (node->IsCallable("WideMap") && input.IsCallable("ToFlow") && input.Head().IsCallable("ReplicateScalars")) {
+ YQL_CLOG(DEBUG, CorePeepHole) << node->Content() << " over " << input.Head().Content();
return SwapReplicateScalarsWithWideMap(node, ctx);
}
}
diff --git a/yql/essentials/core/type_ann/type_ann_blocks.cpp b/yql/essentials/core/type_ann/type_ann_blocks.cpp
index 20f09c4696..c988284b2b 100644
--- a/yql/essentials/core/type_ann/type_ann_blocks.cpp
+++ b/yql/essentials/core/type_ann/type_ann_blocks.cpp
@@ -76,26 +76,17 @@ IGraphTransformer::TStatus ReplicateScalarWrapper(const TExprNode::TPtr& input,
}
IGraphTransformer::TStatus ReplicateScalarsWrapper(const TExprNode::TPtr& input, TExprNode::TPtr& output, TContext& ctx) {
-
- // Static assert to ensure backward compatible change: if the
- // constant below is true, both input and output types of
- // ReplicateScalars callable have to be WideStream; otherwise,
- // both input and output types have to be WideFlow.
- // FIXME: When all spots using ReplicateScalars are adjusted
- // to work with WideStream, drop the assertion below.
- static_assert(!NYql::NBlockStreamIO::ReplicateScalars);
-
if (!EnsureMinArgsCount(*input, 1, ctx.Expr) || !EnsureMaxArgsCount(*input, 2, ctx.Expr)) {
return IGraphTransformer::TStatus::Error;
}
TTypeAnnotationNode::TListType blockItemTypes;
- if (!EnsureWideFlowBlockType(input->Head(), blockItemTypes, ctx.Expr)) {
+ if (!EnsureWideStreamBlockType(input->Head(), blockItemTypes, ctx.Expr)) {
return IGraphTransformer::TStatus::Error;
}
- auto flowItemTypes = input->Head().GetTypeAnn()->Cast<TFlowExprType>()->GetItemType()->Cast<TMultiExprType>()->GetItems();
- YQL_ENSURE(flowItemTypes.size() > 0);
+ auto streamItemTypes = input->Head().GetTypeAnn()->Cast<TStreamExprType>()->GetItemType()->Cast<TMultiExprType>()->GetItems();
+ YQL_ENSURE(streamItemTypes.size() > 0);
TMaybe<THashSet<ui32>> replicateIndexes;
if (input->ChildrenSize() == 2) {
@@ -110,16 +101,16 @@ IGraphTransformer::TStatus ReplicateScalarsWrapper(const TExprNode::TPtr& input,
TStringBuilder() << "Expecting integer as replicate index, got: " << atom->Content()));
return IGraphTransformer::TStatus::Error;
}
- if (idx >= flowItemTypes.size() - 1) {
+ if (idx >= streamItemTypes.size() - 1) {
ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(atom->Pos()),
- TStringBuilder() << "Replicate index too big: " << idx << ", should be less than " << (flowItemTypes.size() - 1)));
+ TStringBuilder() << "Replicate index too big: " << idx << ", should be less than " << (streamItemTypes.size() - 1)));
return IGraphTransformer::TStatus::Error;
}
if (!replicateIndexes->insert(idx).second) {
ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(atom->Pos()), TStringBuilder() << "Duplicate replicate index " << idx));
return IGraphTransformer::TStatus::Error;
}
- if (flowItemTypes[idx]->GetKind() != ETypeAnnotationKind::Scalar) {
+ if (streamItemTypes[idx]->GetKind() != ETypeAnnotationKind::Scalar) {
ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(atom->Pos()), TStringBuilder() << "Invalid replicate index " << idx << ": input item is not scalar"));
return IGraphTransformer::TStatus::Error;
}
@@ -128,8 +119,8 @@ IGraphTransformer::TStatus ReplicateScalarsWrapper(const TExprNode::TPtr& input,
bool hasScalarsToConvert = false;
size_t inputScalarsCount = 0;
- for (size_t i = 0; i + 1 < flowItemTypes.size(); ++i) {
- auto& itemType = flowItemTypes[i];
+ for (size_t i = 0; i + 1 < streamItemTypes.size(); ++i) {
+ auto& itemType = streamItemTypes[i];
if (itemType->IsScalar()) {
++inputScalarsCount;
if (!replicateIndexes.Defined() || replicateIndexes->contains(i)) {
@@ -151,7 +142,7 @@ IGraphTransformer::TStatus ReplicateScalarsWrapper(const TExprNode::TPtr& input,
return IGraphTransformer::TStatus::Repeat;
}
- input->SetTypeAnn(ctx.Expr.MakeType<TFlowExprType>(ctx.Expr.MakeType<TMultiExprType>(flowItemTypes)));
+ input->SetTypeAnn(ctx.Expr.MakeType<TStreamExprType>(ctx.Expr.MakeType<TMultiExprType>(streamItemTypes)));
return IGraphTransformer::TStatus::Ok;
}
diff --git a/yql/essentials/core/yql_expr_type_annotation.h b/yql/essentials/core/yql_expr_type_annotation.h
index 8538c45ab1..d23ce163e3 100644
--- a/yql/essentials/core/yql_expr_type_annotation.h
+++ b/yql/essentials/core/yql_expr_type_annotation.h
@@ -356,7 +356,7 @@ TStringBuf NormalizeCallableName(TStringBuf name);
void CheckExpectedTypeAndColumnOrder(const TExprNode& node, TExprContext& ctx, TTypeAnnotationContext& typesCtx);
namespace NBlockStreamIO {
- constexpr bool ReplicateScalars = false;
+ constexpr bool ReplicateScalars = true;
} // namespace NBlockStreamIO
}
diff --git a/yql/essentials/core/yql_join.cpp b/yql/essentials/core/yql_join.cpp
index 84bce2d913..7cca45604d 100644
--- a/yql/essentials/core/yql_join.cpp
+++ b/yql/essentials/core/yql_join.cpp
@@ -340,14 +340,18 @@ namespace {
else if (option.IsAtom("join_algo")) {
//do nothing
}
- else if (option.IsAtom("shuffle_lhs_by") || option.IsAtom("shuffle_rhs_by")) {
- //do nothing
- }
else if (option.IsAtom("compact")) {
if (!EnsureTupleSize(*child, 1, ctx)) {
return IGraphTransformer::TStatus::Error;
}
}
+ else if (IsCachedJoinLinkOption(option.Content())) {
+ if (option.IsAtom("shuffle_lhs_by") || option.IsAtom("shuffle_rhs_by")) {
+ //do nothing
+ } else {
+ YQL_ENSURE(false, "Cached join link option '" << option.Content() << "' not handled");
+ }
+ }
else {
ctx.AddError(TIssue(ctx.GetPosition(option.Pos()), TStringBuilder() <<
"Unknown option name: " << option.Content()));
@@ -787,40 +791,38 @@ IGraphTransformer::TStatus ValidateEquiJoinOptions(TPositionHandle positionHandl
options.Flatten = true;
} else if (optionName == "strict_keys") {
options.StrictKeys = true;
- } else if (optionName == "preferred_sort") {
- THashSet<TStringBuf> sortBySet;
- TVector<TStringBuf> sortBy;
- if (!EnsureTupleSize(*child, 2, ctx)) {
- return IGraphTransformer::TStatus::Error;
- }
- if (!EnsureTupleMinSize(*child->Child(1), 1, ctx)) {
- return IGraphTransformer::TStatus::Error;
- }
- for (auto column : child->Child(1)->Children()) {
- if (!EnsureAtom(*column, ctx)) {
+ } else if (IsCachedJoinOption(optionName)) {
+ if (optionName == "preferred_sort") {
+ THashSet<TStringBuf> sortBySet;
+ TVector<TStringBuf> sortBy;
+ if (!EnsureTupleSize(*child, 2, ctx)) {
return IGraphTransformer::TStatus::Error;
}
- if (!sortBySet.insert(column->Content()).second) {
- ctx.AddError(TIssue(ctx.GetPosition(column->Pos()), TStringBuilder() <<
- "Duplicated preferred_sort column: " << column->Content()));
+ if (!EnsureTupleMinSize(*child->Child(1), 1, ctx)) {
return IGraphTransformer::TStatus::Error;
}
- sortBy.push_back(column->Content());
- }
- if (!options.PreferredSortSets.insert(sortBy).second) {
- ctx.AddError(TIssue(ctx.GetPosition(child->Child(1)->Pos()), TStringBuilder() <<
- "Duplicated preferred_sort set: " << JoinSeq(", ", sortBy)));
+ for (auto column : child->Child(1)->Children()) {
+ if (!EnsureAtom(*column, ctx)) {
+ return IGraphTransformer::TStatus::Error;
+ }
+ if (!sortBySet.insert(column->Content()).second) {
+ ctx.AddError(TIssue(ctx.GetPosition(column->Pos()), TStringBuilder() <<
+ "Duplicated preferred_sort column: " << column->Content()));
+ return IGraphTransformer::TStatus::Error;
+ }
+ sortBy.push_back(column->Content());
+ }
+ if (!options.PreferredSortSets.insert(sortBy).second) {
+ ctx.AddError(TIssue(ctx.GetPosition(child->Child(1)->Pos()), TStringBuilder() <<
+ "Duplicated preferred_sort set: " << JoinSeq(", ", sortBy)));
+ }
+ } else if (optionName == "cbo_passed") {
+ // do nothing
+ } else if (optionName == "multiple_joins") {
+ // do nothing
+ } else {
+ YQL_ENSURE(false, "Cached join option '" << optionName << "' not handled");
}
- } else if (optionName == "cbo_passed") {
- // do nothing
- } else if (optionName == "join_algo") {
- // do nothing
- } else if (optionName == "shuffle_lhs_by" || optionName == "shuffle_rhs_by") {
- // do nothing
- } else if (optionName == "multiple_joins") {
- // do nothing
- } else if (optionName == "compact") {
- options.Compact = true;
} else {
ctx.AddError(TIssue(position, TStringBuilder() <<
"Unknown option name: " << optionName));
@@ -2004,4 +2006,14 @@ void GatherJoinInputs(const TExprNode::TPtr& expr, const TExprNode& row,
}
}
+bool IsCachedJoinOption(TStringBuf name) {
+ static THashSet<TStringBuf> CachedJoinOptions = {"preferred_sort", "cbo_passed", "multiple_joins"};
+ return CachedJoinOptions.contains(name);
+}
+
+bool IsCachedJoinLinkOption(TStringBuf name) {
+ static THashSet<TStringBuf> CachedJoinLinkOptions = {"shuffle_lhs_by", "shuffle_rhs_by"};
+ return CachedJoinLinkOptions.contains(name);
+}
+
} // namespace NYql
diff --git a/yql/essentials/core/yql_join.h b/yql/essentials/core/yql_join.h
index f556a46724..a313aceefa 100644
--- a/yql/essentials/core/yql_join.h
+++ b/yql/essentials/core/yql_join.h
@@ -60,7 +60,6 @@ struct TJoinOptions {
bool Flatten = false;
bool StrictKeys = false;
- bool Compact = false;
};
IGraphTransformer::TStatus ValidateEquiJoinOptions(
@@ -178,5 +177,7 @@ void GatherJoinInputs(const TExprNode::TPtr& expr, const TExprNode& row,
const TParentsMap& parentsMap, const THashMap<TString, TString>& backRenameMap,
const TJoinLabels& labels, TSet<ui32>& inputs, TSet<TStringBuf>& usedFields);
+bool IsCachedJoinOption(TStringBuf name);
+bool IsCachedJoinLinkOption(TStringBuf name);
}
diff --git a/yql/essentials/data/language/pragmas_opensource.json b/yql/essentials/data/language/pragmas_opensource.json
new file mode 100644
index 0000000000..4e24ec9b5a
--- /dev/null
+++ b/yql/essentials/data/language/pragmas_opensource.json
@@ -0,0 +1 @@
+[{"name":"yt.Annotations"},{"name":"yt.ApplyStoredConstraints"},{"name":"yt.Auth"},{"name":"yt.AutoMerge"},{"name":"yt.BatchListFolderConcurrency"},{"name":"yt.BinaryExpirationInterval"},{"name":"yt.BinaryTmpFolder"},{"name":"yt.BlockMapJoin"},{"name":"yt.BlockReaderSupportedDataTypes"},{"name":"yt.BlockReaderSupportedTypes"},{"name":"yt.BufferRowCount"},{"name":"yt.ClientMapTimeout"},{"name":"yt.ColumnGroupMode"},{"name":"yt.CombineCoreLimit"},{"name":"yt.CommonJoinCoreLimit"},{"name":"yt.CompactForDistinct"},{"name":"yt.CoreDumpPath"},{"name":"yt.DQRPCReaderInflight"},{"name":"yt.DQRPCReaderTimeout"},{"name":"yt.DataSizePerJob"},{"name":"yt.DataSizePerMapJob"},{"name":"yt.DataSizePerPartition"},{"name":"yt.DataSizePerSortJob"},{"name":"yt.DefaultCalcMemoryLimit"},{"name":"yt.DefaultCluster"},{"name":"yt.DefaultLocalityTimeout"},{"name":"yt.DefaultMapSelectivityFactor"},{"name":"yt.DefaultMaxJobFails"},{"name":"yt.DefaultMemoryDigestLowerBound"},{"name":"yt.DefaultMemoryLimit"},{"name":"yt.DefaultMemoryReserveFactor"},{"name":"yt.DefaultOperationWeight"},{"name":"yt.DefaultRuntimeCluster"},{"name":"yt.Description"},{"name":"yt.DisableFuseOperations"},{"name":"yt.DisableJobSplitting"},{"name":"yt.DisableOptimizers"},{"name":"yt.DockerImage"},{"name":"yt.DqPruneKeyFilterLambda"},{"name":"yt.DropUnusedKeysFromKeyFilter"},{"name":"yt.EnableDynamicStoreReadInDQ"},{"name":"yt.EnableFuseMapToMapReduce"},{"name":"yt.EnforceJobUtc"},{"name":"yt.ErasureCodecCpu"},{"name":"yt.ErasureCodecCpuForDq"},{"name":"yt.EvaluationTableSizeLimit"},{"name":"yt.ExpirationDeadline"},{"name":"yt.ExpirationInterval"},{"name":"yt.ExtendTableLimit"},{"name":"yt.ExtendedStatsMaxChunkCount"},{"name":"yt.ExternalTx"},{"name":"yt.ExtraTmpfsSize"},{"name":"yt.FileCacheTtl"},{"name":"yt.FmrOperationSpec"},{"name":"yt.FolderInlineDataLimit"},{"name":"yt.FolderInlineItemsLimit"},{"name":"yt.ForceInferSchema"},{"name":"yt.ForceJobSizeAdjuster"},{"name":"yt.ForceTmpSecurity"},{"name":"yt.GeobaseDownloadUrl"},{"name":"yt.HybridDqDataSizeLimitForOrdered"},{"name":"yt.HybridDqDataSizeLimitForUnordered"},{"name":"yt.HybridDqExecution"},{"name":"yt.HybridDqExecutionFallback"},{"name":"yt.IgnoreTypeV3"},{"name":"yt.IgnoreWeakSchema"},{"name":"yt.IgnoreYamrDsv"},{"name":"yt.InferSchema"},{"name":"yt.InferSchemaMode"},{"name":"yt.InferSchemaTableCountThreshold"},{"name":"yt.InflightTempTablesLimit"},{"name":"yt.IntermediateAccount"},{"name":"yt.IntermediateDataMedium"},{"name":"yt.IntermediateReplicationFactor"},{"name":"yt.JavascriptCpu"},{"name":"yt.JobBlockInput"},{"name":"yt.JobBlockInputSupportedDataTypes"},{"name":"yt.JobBlockInputSupportedTypes"},{"name":"yt.JobBlockOutput"},{"name":"yt.JobBlockOutputSupportedDataTypes"},{"name":"yt.JobBlockOutputSupportedTypes"},{"name":"yt.JobBlockTableContent"},{"name":"yt.JobEnv"},{"name":"yt.JoinAllowColumnRenames"},{"name":"yt.JoinCollectColumnarStatistics"},{"name":"yt.JoinColumnarStatisticsFetcherMode"},{"name":"yt.JoinCommonUseMapMultiOut"},{"name":"yt.JoinEnableStarJoin"},{"name":"yt.JoinMergeForce"},{"name":"yt.JoinMergeReduceJobMaxSize"},{"name":"yt.JoinMergeSetTopLevelFullSort"},{"name":"yt.JoinMergeTablesLimit"},{"name":"yt.JoinMergeUnsortedFactor"},{"name":"yt.JoinMergeUseSmallAsPrimary"},{"name":"yt.JoinUseColumnarStatistics"},{"name":"yt.JoinWaitAllInputs"},{"name":"yt.KeepTempTables"},{"name":"yt.KeyFilterForStartsWith"},{"name":"yt.LLVMMemSize"},{"name":"yt.LLVMNodeCountLimit"},{"name":"yt.LLVMPerNodeMemSize"},{"name":"yt.LayerPaths"},{"name":"yt.LocalCalcLimit"},{"name":"yt.LookupJoinLimit"},{"name":"yt.LookupJoinMaxRows"},{"name":"yt.MapJoinLimit"},{"name":"yt.MapJoinShardCount"},{"name":"yt.MapJoinShardMinRows"},{"name":"yt.MapJoinUseFlow"},{"name":"yt.MapLocalityTimeout"},{"name":"yt.MaxChunksForDqRead"},{"name":"yt.MaxColumnGroups"},{"name":"yt.MaxCpuUsageToFuseMultiOuts"},{"name":"yt.MaxExtraJobMemoryToFuseOperations"},{"name":"yt.MaxInputTables"},{"name":"yt.MaxInputTablesForSortedMerge"},{"name":"yt.MaxJobCount"},{"name":"yt.MaxKeyRangeCount"},{"name":"yt.MaxKeyWeight"},{"name":"yt.MaxOperationFiles"},{"name":"yt.MaxOutputTables"},{"name":"yt.MaxReplicationFactorToFuseMultiOuts"},{"name":"yt.MaxReplicationFactorToFuseOperations"},{"name":"yt.MaxRowWeight"},{"name":"yt.MaxSpeculativeJobCountPerTask"},{"name":"yt.MergeAdjacentPointRanges"},{"name":"yt.MinColumnGroupSize"},{"name":"yt.MinLocalityInputDataWeight"},{"name":"yt.MinPublishedAvgChunkSize"},{"name":"yt.MinTempAvgChunkSize"},{"name":"yt.NativeYtTypeCompatibility"},{"name":"yt.NetworkProject"},{"name":"yt.NightlyCompress"},{"name":"yt.OperationReaders"},{"name":"yt.OperationSpec"},{"name":"yt.OptimizeFor"},{"name":"yt.Owners"},{"name":"yt.ParallelOperationsLimit"},{"name":"yt.PartitionByConstantKeysViaMap"},{"name":"yt.Pool"},{"name":"yt.PoolTrees"},{"name":"yt.PrimaryMedium"},{"name":"yt.PruneKeyFilterLambda"},{"name":"yt.PruneQLFilterLambda"},{"name":"yt.PublishedAutoMerge"},{"name":"yt.PublishedCompressionCodec"},{"name":"yt.PublishedErasureCodec"},{"name":"yt.PublishedMedia"},{"name":"yt.PublishedPrimaryMedium"},{"name":"yt.PublishedReplicationFactor"},{"name":"yt.PythonCpu"},{"name":"yt.QueryCacheChunkLimit"},{"name":"yt.QueryCacheIgnoreTableRevision"},{"name":"yt.QueryCacheMode"},{"name":"yt.QueryCacheSalt"},{"name":"yt.QueryCacheTtl"},{"name":"yt.QueryCacheUseExpirationTimeout"},{"name":"yt.QueryCacheUseForCalc"},{"name":"yt.ReduceLocalityTimeout"},{"name":"yt.ReleaseTempData"},{"name":"yt.ReportEquiJoinStats"},{"name":"yt.RuntimeCluster"},{"name":"yt.RuntimeClusterSelection"},{"name":"yt.SamplingIoBlockSize"},{"name":"yt.SchedulingTag"},{"name":"yt.SchedulingTagFilter"},{"name":"yt.ScriptCpu"},{"name":"yt.SortLocalityTimeout"},{"name":"yt.StartedBy"},{"name":"yt.StaticPool"},{"name":"yt.SuspendIfAccountLimitExceeded"},{"name":"yt.SwitchLimit"},{"name":"yt.TableContentColumnarStatistics"},{"name":"yt.TableContentCompressLevel"},{"name":"yt.TableContentDeliveryMode"},{"name":"yt.TableContentLocalExecution"},{"name":"yt.TableContentMaxChunksForNativeDelivery"},{"name":"yt.TableContentMaxInputTables"},{"name":"yt.TableContentMinAvgChunkSize"},{"name":"yt.TableContentTmpFolder"},{"name":"yt.TableContentUseSkiff"},{"name":"yt.TablesTmpFolder"},{"name":"yt.TempTablesTtl"},{"name":"yt.TemporaryAutoMerge"},{"name":"yt.TemporaryCompressionCodec"},{"name":"yt.TemporaryErasureCodec"},{"name":"yt.TemporaryMedia"},{"name":"yt.TemporaryPrimaryMedium"},{"name":"yt.TemporaryReplicationFactor"},{"name":"yt.TentativePoolTrees"},{"name":"yt.TentativeTreeEligibilityMaxJobDurationRatio"},{"name":"yt.TentativeTreeEligibilityMinJobDuration"},{"name":"yt.TentativeTreeEligibilitySampleJobCount"},{"name":"yt.TmpFolder"},{"name":"yt.TopSortMaxLimit"},{"name":"yt.TopSortRowMultiplierPerJob"},{"name":"yt.TopSortSizePerJob"},{"name":"yt.UseAggPhases"},{"name":"yt.UseColumnGroupsFromInputTables"},{"name":"yt.UseColumnarStatistics"},{"name":"yt.UseDefaultTentativePoolTrees"},{"name":"yt.UseFlow"},{"name":"yt.UseIntermediateSchema"},{"name":"yt.UseIntermediateStreams"},{"name":"yt.UseNativeDescSort"},{"name":"yt.UseNativeYtTypes"},{"name":"yt.UseNewPredicateExtraction"},{"name":"yt.UsePartitionsByKeysForFinalAgg"},{"name":"yt.UseQLFilter"},{"name":"yt.UseRPCReaderInDQ"},{"name":"yt.UseSkiff"},{"name":"yt.UseSystemColumns"},{"name":"yt.UseTmpfs"},{"name":"yt.UseTypeV2"},{"name":"yt.UseYqlRowSpecCompactForm"},{"name":"yt.UserSlots"},{"name":"yt.ViewIsolation"},{"name":"yt.WideFlowLimit"},{"name":"dq.AggregateStatsByStage"},{"name":"dq.AnalyticsHopping"},{"name":"dq.AnalyzeQuery"},{"name":"dq.ChannelBufferSize"},{"name":"dq.ChunkSizeLimit"},{"name":"dq.CollectCoreDumps"},{"name":"dq.ComputeActorType"},{"name":"dq.DataSizePerJob"},{"name":"dq.DisableCheckpoints"},{"name":"dq.DisableLLVMForBlockStages"},{"name":"dq.EnableChannelStats"},{"name":"dq.EnableComputeActor"},{"name":"dq.EnableDqReplicate"},{"name":"dq.EnableFullResultWrite"},{"name":"dq.EnableInsert"},{"name":"dq.EnableSpillingInChannels"},{"name":"dq.EnableSpillingNodes"},{"name":"dq.EnableStrip"},{"name":"dq.ExportStats"},{"name":"dq.FallbackPolicy"},{"name":"dq.HashJoinMode"},{"name":"dq.HashShuffleMaxTasks"},{"name":"dq.HashShuffleTasksRatio"},{"name":"dq.MaxDataSizePerJob"},{"name":"dq.MaxDataSizePerQuery"},{"name":"dq.MaxNetworkRetries"},{"name":"dq.MaxRetries"},{"name":"dq.MaxTasksPerOperation"},{"name":"dq.MaxTasksPerStage"},{"name":"dq.MemoryLimit"},{"name":"dq.OptLLVM"},{"name":"dq.OutputChunkMaxSize"},{"name":"dq.ParallelOperationsLimit"},{"name":"dq.PingTimeoutMs"},{"name":"dq.PullRequestTimeoutMs"},{"name":"dq.QueryTimeout"},{"name":"dq.RetryBackoffMs"},{"name":"dq.Scheduler"},{"name":"dq.SpillingEngine"},{"name":"dq.SplitStageOnDqReplicate"},{"name":"dq.TaskRunnerStats"},{"name":"dq.UseAggPhases"},{"name":"dq.UseBlockReader"},{"name":"dq.UseFastPickleTransport"},{"name":"dq.UseFinalizeByKey"},{"name":"dq.UseGraceJoinCoreForMap"},{"name":"dq.UseOOBTransport"},{"name":"dq.UseSimpleYtReader"},{"name":"dq.UseWideBlockChannels"},{"name":"dq.UseWideChannels"},{"name":"dq.WatermarksEnableIdlePartitions"},{"name":"dq.WatermarksGranularityMs"},{"name":"dq.WatermarksLateArrivalDelayMs"},{"name":"dq.WatermarksMode"},{"name":"dq.WorkerFilter"},{"name":"dq.WorkersPerOperation"},{"name":"AllowDotInAlias"},{"name":"AllowUnnamedColumns"},{"name":"AnsiCurrentRow"},{"name":"AnsiImplicitCrossJoin"},{"name":"AnsiInForEmptyOrNullableItemsCollections"},{"name":"AnsiLike"},{"name":"AnsiOptionalAs"},{"name":"AnsiRankForNullableKeys"},{"name":"AutoCommit"},{"name":"BlockEngine"},{"name":"BlockEngineEnable"},{"name":"BlockEngineForce"},{"name":"BogousStarInGroupByOverJoin"},{"name":"CheckedOps"},{"name":"ClassicDivision"},{"name":"CoalesceJoinKeysOnQualifiedAll"},{"name":"CompactGroupBy"},{"name":"CompactNamedExprs"},{"name":"CostBasedOptimizer"},{"name":"DataWatermarks"},{"name":"DirectRead"},{"name":"DisableAnsiCurrentRow"},{"name":"DisableAnsiImplicitCrossJoin"},{"name":"DisableAnsiInForEmptyOrNullableItemsCollections"},{"name":"DisableAnsiLike"},{"name":"DisableAnsiOptionalAs"},{"name":"DisableAnsiRankForNullableKeys"},{"name":"DisableBlockEngineEnable"},{"name":"DisableBlockEngineForce"},{"name":"DisableBogousStarInGroupByOverJoin"},{"name":"DisableCoalesceJoinKeysOnQualifiedAll"},{"name":"DisableCompactGroupBy"},{"name":"DisableCompactNamedExprs"},{"name":"DisableDistinctOverWindow"},{"name":"DisableDqEngineEnable"},{"name":"DisableDqEngineForce"},{"name":"DisableEmitAggApply"},{"name":"DisableEmitStartsWith"},{"name":"DisableEmitTableSource"},{"name":"DisableEmitUnionMerge"},{"name":"DisableFilterPushdownOverJoinOptionalSide"},{"name":"DisableFlexibleTypes"},{"name":"DisableJsonQueryReturnsJsonDocument"},{"name":"DisableOrderedColumns"},{"name":"DisablePullUpFlatMapOverJoin"},{"name":"DisableRegexUseRe2"},{"name":"DisableRotateJoinTree"},{"name":"DisableSeqMode"},{"name":"DisableSimpleColumns"},{"name":"DisableStrictJoinKeyTypes"},{"name":"DisableUnicodeLiterals"},{"name":"DisableUnorderedResult"},{"name":"DisableUnorderedSubqueries"},{"name":"DisableUseBlocks"},{"name":"DisableValidateUnusedExprs"},{"name":"DisableWarnOnAnsiAliasShadowing"},{"name":"DisableWarnUntypedStringLiterals"},{"name":"DiscoveryMode"},{"name":"DistinctOverWindow"},{"name":"DqEngine"},{"name":"DqEngineEnable"},{"name":"DqEngineForce"},{"name":"EmitAggApply"},{"name":"EmitStartsWith"},{"name":"EmitTableSource"},{"name":"EmitUnionMerge"},{"name":"EnableSystemColumns"},{"name":"Engine"},{"name":"ErrorMsg"},{"name":"FeatureR010"},{"name":"File"},{"name":"FileOption"},{"name":"FilterPushdownOverJoinOptionalSide"},{"name":"FlexibleTypes"},{"name":"Folder"},{"name":"Greetings"},{"name":"GroupByCubeLimit"},{"name":"GroupByLimit"},{"name":"JsonQueryReturnsJsonDocument"},{"name":"Library"},{"name":"OrderedColumns"},{"name":"OverrideLibrary"},{"name":"Package"},{"name":"PackageVersion"},{"name":"PathPrefix"},{"name":"PositionalUnionAll"},{"name":"PqReadBy"},{"name":"PullUpFlatMapOverJoin"},{"name":"RefSelect"},{"name":"RegexUseRe2"},{"name":"ResultRowsLimit"},{"name":"ResultSizeLimit"},{"name":"RotateJoinTree"},{"name":"RuntimeLogLevel"},{"name":"SampleSelect"},{"name":"SeqMode"},{"name":"SimpleColumns"},{"name":"StrictJoinKeyTypes"},{"name":"Udf"},{"name":"UnicodeLiterals"},{"name":"UnorderedResult"},{"name":"UnorderedSubqueries"},{"name":"UseBlocks"},{"name":"UseTablePrefixForEach"},{"name":"ValidateUnusedExprs"},{"name":"WarnOnAnsiAliasShadowing"},{"name":"WarnUnnamedColumns"},{"name":"WarnUntypedStringLiterals"},{"name":"Warning"},{"name":"WarningMsg"},{"name":"yson.AutoConvert"},{"name":"yson.CastToString"},{"name":"yson.DisableCastToString"},{"name":"yson.DisableStrict"},{"name":"yson.Strict"}]
diff --git a/yql/essentials/data/language/rules_corr_basic.json b/yql/essentials/data/language/rules_corr_basic.json
index ac6883e51d..738d88fc61 100644
--- a/yql/essentials/data/language/rules_corr_basic.json
+++ b/yql/essentials/data/language/rules_corr_basic.json
@@ -1 +1 @@
-[{"parent":"FUNC","rule":"ABC","sum":1},{"parent":"FUNC","rule":"ABS","sum":3087662},{"parent":"FUNC","rule":"ABs","sum":1},{"parent":"FUNC","rule":"ADAPTIVE_WARD_HISTOGRAM","sum":1},{"parent":"FUNC","rule":"ADDTIMEZONE","sum":383},{"parent":"FUNC","rule":"AGGLIST","sum":1185},{"parent":"FUNC","rule":"AGGList","sum":1},{"parent":"FUNC","rule":"AGGREATE_LIST","sum":2},{"parent":"FUNC","rule":"AGGREGATELIST","sum":72},{"parent":"FUNC","rule":"AGGREGATE_BY","sum":1546765},{"parent":"FUNC","rule":"AGGREGATE_LIST","sum":19689134},{"parent":"FUNC","rule":"AGGREGATE_LIST_","sum":2},{"parent":"FUNC","rule":"AGGREGATE_LIST_DISTINCT","sum":12601412},{"parent":"FUNC","rule":"AGGREGATE_LIST_DISTINCt","sum":2},{"parent":"FUNC","rule":"AGGREGATE_LIST_DISTNCT","sum":1},{"parent":"FUNC","rule":"AGGREGATE_LIST_DiSTINCT","sum":4},{"parent":"FUNC","rule":"AGGREGATE_LIST_Distinct","sum":804},{"parent":"FUNC","rule":"AGGREGATE_LIST_distINCT","sum":4},{"parent":"FUNC","rule":"AGGREGATE_LIST_distinct","sum":18880},{"parent":"FUNC","rule":"AGGREGATE_LISt","sum":6},{"parent":"FUNC","rule":"AGGREGATE_LiST","sum":106},{"parent":"FUNC","rule":"AGGREGATE_List","sum":75},{"parent":"FUNC","rule":"AGGREGATE_lIST","sum":59},{"parent":"FUNC","rule":"AGGREGATE_lIST_DISTINCT","sum":6},{"parent":"FUNC","rule":"AGGREGATE_liST_DISTINCT","sum":9},{"parent":"FUNC","rule":"AGGREGATE_list","sum":310},{"parent":"FUNC","rule":"AGGREGATE_list_distinct","sum":1},{"parent":"FUNC","rule":"AGGREGATIONFACTORY","sum":57},{"parent":"FUNC","rule":"AGGREGATION_FACTORY","sum":65919},{"parent":"FUNC","rule":"AGGR_LIST","sum":2938},{"parent":"FUNC","rule":"AGGR_LIST_DISTINCT","sum":44719},{"parent":"FUNC","rule":"AGGReGATE_LIST","sum":3},{"parent":"FUNC","rule":"AGGReGate_list","sum":1},{"parent":"FUNC","rule":"AGG_LIST","sum":5086855},{"parent":"FUNC","rule":"AGG_LIST_","sum":5},{"parent":"FUNC","rule":"AGG_LIST_DISTINCT","sum":2853522},{"parent":"FUNC","rule":"AGG_LIST_DISTINCt","sum":9},{"parent":"FUNC","rule":"AGG_LIST_DIStiNCT","sum":10},{"parent":"FUNC","rule":"AGG_LIST_DiSTINCT","sum":4},{"parent":"FUNC","rule":"AGG_LIST_Distinct","sum":47},{"parent":"FUNC","rule":"AGG_LIST_distinct","sum":647},{"parent":"FUNC","rule":"AGG_LISt","sum":2},{"parent":"FUNC","rule":"AGG_LIst","sum":11},{"parent":"FUNC","rule":"AGG_LiST","sum":11},{"parent":"FUNC","rule":"AGG_LiST_DIStiNCT","sum":2},{"parent":"FUNC","rule":"AGG_List","sum":6275},{"parent":"FUNC","rule":"AGG_List_DISTINCT","sum":1},{"parent":"FUNC","rule":"AGG_List_Distinct","sum":949},{"parent":"FUNC","rule":"AGG_List_distinct","sum":103},{"parent":"FUNC","rule":"AGG_lIST_DISTINCT","sum":5},{"parent":"FUNC","rule":"AGG_list","sum":17870},{"parent":"FUNC","rule":"AGG_list_DISTINCT","sum":3116},{"parent":"FUNC","rule":"AGG_list_distinct","sum":769},{"parent":"FUNC","rule":"AGGrEGATE_LIST","sum":2},{"parent":"FUNC","rule":"AGGreGATE_LIST_DISTINCT","sum":3},{"parent":"FUNC","rule":"AGGregateList","sum":19},{"parent":"FUNC","rule":"AGGregate_LIST","sum":3},{"parent":"FUNC","rule":"AGGregate_LIST_DISTINCT","sum":1},{"parent":"FUNC","rule":"AGGregate_List_Distinct","sum":4},{"parent":"FUNC","rule":"AGGregate_list","sum":6},{"parent":"FUNC","rule":"AGGregate_list_distinct","sum":65},{"parent":"FUNC","rule":"AND","sum":46},{"parent":"FUNC","rule":"ARRAY_AGG","sum":2},{"parent":"FUNC","rule":"ASDICT","sum":187},{"parent":"FUNC","rule":"ASDict","sum":640},{"parent":"FUNC","rule":"ASEnum","sum":78},{"parent":"FUNC","rule":"ASIN","sum":2},{"parent":"FUNC","rule":"ASLIST","sum":27913},{"parent":"FUNC","rule":"ASLIst","sum":1},{"parent":"FUNC","rule":"ASList","sum":23309},{"parent":"FUNC","rule":"ASSET","sum":17},{"parent":"FUNC","rule":"ASSTRUCT","sum":2847},{"parent":"FUNC","rule":"ASSet","sum":5},{"parent":"FUNC","rule":"ASStruct","sum":2108},{"parent":"FUNC","rule":"ASTAGGED","sum":15},{"parent":"FUNC","rule":"ASTAgged","sum":3},{"parent":"FUNC","rule":"ASTUPLE","sum":1603},{"parent":"FUNC","rule":"ASTagged","sum":62},{"parent":"FUNC","rule":"ASTuple","sum":5590},{"parent":"FUNC","rule":"AS_DICT","sum":6},{"parent":"FUNC","rule":"AS_LIST","sum":119},{"parent":"FUNC","rule":"AS_STRUCT","sum":13241},{"parent":"FUNC","rule":"AS_TABLE","sum":32},{"parent":"FUNC","rule":"AS_TUPLE","sum":832},{"parent":"FUNC","rule":"ASdict","sum":4},{"parent":"FUNC","rule":"ASlist","sum":996},{"parent":"FUNC","rule":"ASstruct","sum":41},{"parent":"FUNC","rule":"AStagged","sum":3},{"parent":"FUNC","rule":"AStuple","sum":422},{"parent":"FUNC","rule":"AVG","sum":9007449},{"parent":"FUNC","rule":"AVGIF","sum":15},{"parent":"FUNC","rule":"AVG_IF","sum":728455},{"parent":"FUNC","rule":"AVG_If","sum":8},{"parent":"FUNC","rule":"AVG_if","sum":14767},{"parent":"FUNC","rule":"AVg","sum":4},{"parent":"FUNC","rule":"Abs","sum":322850},{"parent":"FUNC","rule":"AdaptiveDistanceHistogramCDF","sum":1},{"parent":"FUNC","rule":"AdaptiveWardHistogram","sum":1},{"parent":"FUNC","rule":"AdaptiveWardHistogramCDF","sum":3},{"parent":"FUNC","rule":"AdaptiveWeightHistogram","sum":57716},{"parent":"FUNC","rule":"AddMember","sum":875107},{"parent":"FUNC","rule":"AddTimeZone","sum":510670},{"parent":"FUNC","rule":"AddTimezone","sum":12113370},{"parent":"FUNC","rule":"Addtimezone","sum":60},{"parent":"FUNC","rule":"AggLIst","sum":1},{"parent":"FUNC","rule":"AggList","sum":18445},{"parent":"FUNC","rule":"AggListDistinct","sum":69},{"parent":"FUNC","rule":"Agg_LIST","sum":60},{"parent":"FUNC","rule":"Agg_LIST_DISTINCT","sum":3},{"parent":"FUNC","rule":"Agg_LIST_Distinct","sum":1},{"parent":"FUNC","rule":"Agg_LIst","sum":2},{"parent":"FUNC","rule":"Agg_List","sum":128583},{"parent":"FUNC","rule":"Agg_List_","sum":8},{"parent":"FUNC","rule":"Agg_List_DISTINCT","sum":730},{"parent":"FUNC","rule":"Agg_List_Distinct","sum":2541},{"parent":"FUNC","rule":"Agg_List_distinct","sum":4},{"parent":"FUNC","rule":"Agg_list","sum":35301},{"parent":"FUNC","rule":"Agg_list_distinct","sum":8200},{"parent":"FUNC","rule":"Aggergate_List","sum":1},{"parent":"FUNC","rule":"AggrList","sum":6},{"parent":"FUNC","rule":"Aggr_List","sum":1},{"parent":"FUNC","rule":"AggreGate_List","sum":6},{"parent":"FUNC","rule":"AggregateBy","sum":42097},{"parent":"FUNC","rule":"AggregateFlatten","sum":52405},{"parent":"FUNC","rule":"AggregateList","sum":40540},{"parent":"FUNC","rule":"AggregateListDistinct","sum":7726},{"parent":"FUNC","rule":"AggregateTransformInput","sum":25439},{"parent":"FUNC","rule":"AggregateTransformOutput","sum":45216},{"parent":"FUNC","rule":"Aggregate_BY","sum":248},{"parent":"FUNC","rule":"Aggregate_By","sum":138311},{"parent":"FUNC","rule":"Aggregate_LIST","sum":835},{"parent":"FUNC","rule":"Aggregate_LIST_DISTINCT","sum":2},{"parent":"FUNC","rule":"Aggregate_LIst","sum":12},{"parent":"FUNC","rule":"Aggregate_List","sum":344071},{"parent":"FUNC","rule":"Aggregate_List_Distinct","sum":5125},{"parent":"FUNC","rule":"Aggregate_List_distinct","sum":1241},{"parent":"FUNC","rule":"Aggregate_by","sum":79},{"parent":"FUNC","rule":"Aggregate_list","sum":225628},{"parent":"FUNC","rule":"Aggregate_list_DISTINCT","sum":36},{"parent":"FUNC","rule":"Aggregate_list_Distinct","sum":7},{"parent":"FUNC","rule":"Aggregate_list_distinct","sum":200172},{"parent":"FUNC","rule":"AggregationFactory","sum":1500874},{"parent":"FUNC","rule":"Apply","sum":1},{"parent":"FUNC","rule":"AsAtom","sum":688274},{"parent":"FUNC","rule":"AsDict","sum":2916201},{"parent":"FUNC","rule":"AsDictStrict","sum":4546},{"parent":"FUNC","rule":"AsEnum","sum":49363},{"parent":"FUNC","rule":"AsLIST","sum":921},{"parent":"FUNC","rule":"AsLIst","sum":2852},{"parent":"FUNC","rule":"AsLisT","sum":1493},{"parent":"FUNC","rule":"AsList","sum":17228428},{"parent":"FUNC","rule":"AsListStrict","sum":85930},{"parent":"FUNC","rule":"AsListstrict","sum":1},{"parent":"FUNC","rule":"AsSTruct","sum":371},{"parent":"FUNC","rule":"AsSet","sum":1583958},{"parent":"FUNC","rule":"AsSetStrict","sum":11208},{"parent":"FUNC","rule":"AsStruct","sum":23386032},{"parent":"FUNC","rule":"AsTAgged","sum":293},{"parent":"FUNC","rule":"AsTUPLE","sum":442},{"parent":"FUNC","rule":"AsTUple","sum":270},{"parent":"FUNC","rule":"AsTable","sum":6},{"parent":"FUNC","rule":"AsTaggeD","sum":4},{"parent":"FUNC","rule":"AsTagged","sum":183083},{"parent":"FUNC","rule":"AsTuPle","sum":1},{"parent":"FUNC","rule":"AsTuple","sum":30038540},{"parent":"FUNC","rule":"AsVariant","sum":356380},{"parent":"FUNC","rule":"As_List","sum":6},{"parent":"FUNC","rule":"As_Struct","sum":6},{"parent":"FUNC","rule":"As_list","sum":20},{"parent":"FUNC","rule":"As_tuple","sum":791},{"parent":"FUNC","rule":"Asdict","sum":176},{"parent":"FUNC","rule":"AslIST","sum":1},{"parent":"FUNC","rule":"AslIst","sum":14},{"parent":"FUNC","rule":"Aslist","sum":23055},{"parent":"FUNC","rule":"Asset","sum":49},{"parent":"FUNC","rule":"Asstruct","sum":374},{"parent":"FUNC","rule":"AssumeStrict","sum":2155},{"parent":"FUNC","rule":"Astagged","sum":166},{"parent":"FUNC","rule":"Astuple","sum":603},{"parent":"FUNC","rule":"AtomCode","sum":516000},{"parent":"FUNC","rule":"Avg","sum":138598},{"parent":"FUNC","rule":"Avg_IF","sum":162},{"parent":"FUNC","rule":"Avg_If","sum":106},{"parent":"FUNC","rule":"Avg_if","sum":251},{"parent":"FUNC","rule":"BIT_AND","sum":4},{"parent":"FUNC","rule":"BIT_OR","sum":38095},{"parent":"FUNC","rule":"BIT_XOR","sum":422858},{"parent":"FUNC","rule":"BOOL_AND","sum":266030},{"parent":"FUNC","rule":"BOOL_OR","sum":881252},{"parent":"FUNC","rule":"BOOL_XOR","sum":46},{"parent":"FUNC","rule":"BOOL_and","sum":2},{"parent":"FUNC","rule":"BOOl_OR","sum":366},{"parent":"FUNC","rule":"BOTTOM","sum":11733},{"parent":"FUNC","rule":"BOTTOM_BY","sum":46084},{"parent":"FUNC","rule":"BOTTOM_by","sum":2},{"parent":"FUNC","rule":"Bool","sum":1345},{"parent":"FUNC","rule":"Bool_And","sum":118},{"parent":"FUNC","rule":"Bool_Or","sum":568},{"parent":"FUNC","rule":"Bool_and","sum":85},{"parent":"FUNC","rule":"Bool_or","sum":823},{"parent":"FUNC","rule":"Bottom","sum":283},{"parent":"FUNC","rule":"Bottom_BY","sum":10},{"parent":"FUNC","rule":"Bottom_By","sum":87},{"parent":"FUNC","rule":"Bottom_by","sum":1583},{"parent":"FUNC","rule":"ByteAt","sum":12113},{"parent":"FUNC","rule":"Bytes","sum":3},{"parent":"FUNC","rule":"CHAR_LENGTH","sum":357},{"parent":"FUNC","rule":"COALECSE","sum":1},{"parent":"FUNC","rule":"COALESCE","sum":51205369},{"parent":"FUNC","rule":"COALESCe","sum":10},{"parent":"FUNC","rule":"COALESce","sum":8},{"parent":"FUNC","rule":"COALEsCE","sum":1},{"parent":"FUNC","rule":"COALEsce","sum":4},{"parent":"FUNC","rule":"COALeSCE","sum":1},{"parent":"FUNC","rule":"COALesce","sum":14},{"parent":"FUNC","rule":"COAlESCE","sum":2736},{"parent":"FUNC","rule":"COAlesce","sum":12},{"parent":"FUNC","rule":"CONCAT","sum":19},{"parent":"FUNC","rule":"COOUNT","sum":2},{"parent":"FUNC","rule":"CORR","sum":431},{"parent":"FUNC","rule":"CORRELATION","sum":19898},{"parent":"FUNC","rule":"COS","sum":4},{"parent":"FUNC","rule":"COUNT","sum":52424641},{"parent":"FUNC","rule":"COUNTD","sum":4},{"parent":"FUNC","rule":"COUNTDISTINCTESTIMATE","sum":609},{"parent":"FUNC","rule":"COUNTDistinctEstimate","sum":7},{"parent":"FUNC","rule":"COUNTIF","sum":16861},{"parent":"FUNC","rule":"COUNT_","sum":1},{"parent":"FUNC","rule":"COUNT_IF","sum":24213017},{"parent":"FUNC","rule":"COUNT_IF_","sum":24},{"parent":"FUNC","rule":"COUNT_If","sum":13225},{"parent":"FUNC","rule":"COUNT_iF","sum":43},{"parent":"FUNC","rule":"COUNT_if","sum":19804},{"parent":"FUNC","rule":"COUNt","sum":1256},{"parent":"FUNC","rule":"COUNt_IF","sum":24},{"parent":"FUNC","rule":"COUNt_If","sum":3},{"parent":"FUNC","rule":"COUNt_if","sum":11},{"parent":"FUNC","rule":"COUnT","sum":9},{"parent":"FUNC","rule":"COUnT_IF","sum":7},{"parent":"FUNC","rule":"COUnt","sum":39},{"parent":"FUNC","rule":"COVAR","sum":2814},{"parent":"FUNC","rule":"COVARIANCE","sum":1498},{"parent":"FUNC","rule":"COVARIANCE_POPULATION","sum":64},{"parent":"FUNC","rule":"COVARIANCE_SAMPLE","sum":4},{"parent":"FUNC","rule":"COVAR_POP","sum":4},{"parent":"FUNC","rule":"COalesce","sum":22},{"parent":"FUNC","rule":"COuNT","sum":64},{"parent":"FUNC","rule":"COuNT_If","sum":1},{"parent":"FUNC","rule":"COunt","sum":188},{"parent":"FUNC","rule":"COunt_IF","sum":57},{"parent":"FUNC","rule":"COunt_If","sum":2},{"parent":"FUNC","rule":"COunt_iF","sum":1},{"parent":"FUNC","rule":"COunt_if","sum":3},{"parent":"FUNC","rule":"CUME_DIST","sum":109},{"parent":"FUNC","rule":"CURRENTUTCDATE","sum":5416},{"parent":"FUNC","rule":"CURRENTUTCDATETIME","sum":6623},{"parent":"FUNC","rule":"CURRENTUTCDate","sum":36},{"parent":"FUNC","rule":"CURRENT_UTC_DATE","sum":2},{"parent":"FUNC","rule":"CallableArgument","sum":10045},{"parent":"FUNC","rule":"CallableArgumentType","sum":19066},{"parent":"FUNC","rule":"CallableResultType","sum":116},{"parent":"FUNC","rule":"CallableType","sum":174356},{"parent":"FUNC","rule":"CallableTypeHandle","sum":5515},{"parent":"FUNC","rule":"Ceil","sum":3},{"parent":"FUNC","rule":"ChooseMembers","sum":2497546},{"parent":"FUNC","rule":"Choosemembers","sum":21082},{"parent":"FUNC","rule":"ChosenMembers","sum":8},{"parent":"FUNC","rule":"ClearBit","sum":31148},{"parent":"FUNC","rule":"CoALESCE","sum":1},{"parent":"FUNC","rule":"CoUNT","sum":30},{"parent":"FUNC","rule":"CoUNT_IF","sum":17},{"parent":"FUNC","rule":"CoUNt","sum":2},{"parent":"FUNC","rule":"CoUnt","sum":2},{"parent":"FUNC","rule":"Coalesce","sum":722176},{"parent":"FUNC","rule":"Collect","sum":1},{"parent":"FUNC","rule":"CollectList","sum":1},{"parent":"FUNC","rule":"CombineMembers","sum":501363},{"parent":"FUNC","rule":"Concat","sum":1},{"parent":"FUNC","rule":"Correlation","sum":178},{"parent":"FUNC","rule":"CouNT","sum":2},{"parent":"FUNC","rule":"CounT","sum":17},{"parent":"FUNC","rule":"Count","sum":395725},{"parent":"FUNC","rule":"CountDistinctEstimate","sum":158460},{"parent":"FUNC","rule":"CountIF","sum":81},{"parent":"FUNC","rule":"CountIf","sum":526},{"parent":"FUNC","rule":"Count_IF","sum":15252},{"parent":"FUNC","rule":"Count_If","sum":42727},{"parent":"FUNC","rule":"Count_if","sum":324404},{"parent":"FUNC","rule":"Countif","sum":12},{"parent":"FUNC","rule":"CurrentAuthenticatedUser","sum":89327},{"parent":"FUNC","rule":"CurrentDatetime","sum":1},{"parent":"FUNC","rule":"CurrentOperationId","sum":90375},{"parent":"FUNC","rule":"CurrentOperationSharedId","sum":5558},{"parent":"FUNC","rule":"CurrentTZDate","sum":733},{"parent":"FUNC","rule":"CurrentTZDateTime","sum":35},{"parent":"FUNC","rule":"CurrentTZDatetime","sum":514},{"parent":"FUNC","rule":"CurrentTZTimestamp","sum":388},{"parent":"FUNC","rule":"CurrentTZdatetime","sum":67},{"parent":"FUNC","rule":"CurrentTzDate","sum":1608844},{"parent":"FUNC","rule":"CurrentTzDateTime","sum":1470331},{"parent":"FUNC","rule":"CurrentTzDatetime","sum":1978212},{"parent":"FUNC","rule":"CurrentTzTimeStamp","sum":4372},{"parent":"FUNC","rule":"CurrentTzTimestamp","sum":1888512},{"parent":"FUNC","rule":"CurrentUTCDATE","sum":22},{"parent":"FUNC","rule":"CurrentUTCDAte","sum":39},{"parent":"FUNC","rule":"CurrentUTCDate","sum":921323},{"parent":"FUNC","rule":"CurrentUTCDateTime","sum":182215},{"parent":"FUNC","rule":"CurrentUTCDatetime","sum":130451},{"parent":"FUNC","rule":"CurrentUTCTimeStamp","sum":105},{"parent":"FUNC","rule":"CurrentUTCTimestamp","sum":455213},{"parent":"FUNC","rule":"CurrentUTCdate","sum":71188},{"parent":"FUNC","rule":"CurrentUTCdatetime","sum":12},{"parent":"FUNC","rule":"CurrentUTcDate","sum":63},{"parent":"FUNC","rule":"CurrentUtCDate","sum":5},{"parent":"FUNC","rule":"CurrentUtCDatetime","sum":3},{"parent":"FUNC","rule":"CurrentUtcDATE","sum":2},{"parent":"FUNC","rule":"CurrentUtcDAte","sum":3},{"parent":"FUNC","rule":"CurrentUtcDatE","sum":1},{"parent":"FUNC","rule":"CurrentUtcDate","sum":19532934},{"parent":"FUNC","rule":"CurrentUtcDateTIME","sum":1},{"parent":"FUNC","rule":"CurrentUtcDateTime","sum":3179621},{"parent":"FUNC","rule":"CurrentUtcDatetime","sum":13760831},{"parent":"FUNC","rule":"CurrentUtcDttm","sum":3},{"parent":"FUNC","rule":"CurrentUtcTimeStamp","sum":60865},{"parent":"FUNC","rule":"CurrentUtcTimestamp","sum":15105793},{"parent":"FUNC","rule":"CurrentUtcdate","sum":11803},{"parent":"FUNC","rule":"CurrenttzDate","sum":310},{"parent":"FUNC","rule":"CurrenttzDatetime","sum":1},{"parent":"FUNC","rule":"CurrentutcDate","sum":20599},{"parent":"FUNC","rule":"CurrentutcDateTime","sum":492},{"parent":"FUNC","rule":"CurrentutcTimestamp","sum":4},{"parent":"FUNC","rule":"Currentutcdate","sum":1465},{"parent":"FUNC","rule":"Currentutcdatetime","sum":22622},{"parent":"FUNC","rule":"D","sum":1},{"parent":"FUNC","rule":"DATE","sum":127693},{"parent":"FUNC","rule":"DATEADD","sum":3},{"parent":"FUNC","rule":"DATEDIFF","sum":9},{"parent":"FUNC","rule":"DATETIME","sum":832},{"parent":"FUNC","rule":"DATE_PART","sum":16},{"parent":"FUNC","rule":"DATE_TRUNC","sum":29},{"parent":"FUNC","rule":"DATe","sum":20},{"parent":"FUNC","rule":"DAte","sum":169},{"parent":"FUNC","rule":"DAtetime","sum":61},{"parent":"FUNC","rule":"DENSE_RANK","sum":272243},{"parent":"FUNC","rule":"DICTKEYS","sum":30},{"parent":"FUNC","rule":"DICTLENGTH","sum":4},{"parent":"FUNC","rule":"DICTLength","sum":2},{"parent":"FUNC","rule":"DICTPAYLOADS","sum":2},{"parent":"FUNC","rule":"DICT_CONTAINS","sum":5},{"parent":"FUNC","rule":"DIctHasItems","sum":1},{"parent":"FUNC","rule":"DIctItems","sum":3},{"parent":"FUNC","rule":"DIctKeys","sum":1},{"parent":"FUNC","rule":"DIctLength","sum":1},{"parent":"FUNC","rule":"DIctLookup","sum":16},{"parent":"FUNC","rule":"DOUBLE","sum":63},{"parent":"FUNC","rule":"DatE","sum":3},{"parent":"FUNC","rule":"DataType","sum":68043},{"parent":"FUNC","rule":"DataTypeComponents","sum":36704},{"parent":"FUNC","rule":"DataTypeHandle","sum":2},{"parent":"FUNC","rule":"Datatype","sum":2},{"parent":"FUNC","rule":"Date","sum":1767677},{"parent":"FUNC","rule":"Date32","sum":74},{"parent":"FUNC","rule":"DateTime","sum":433506},{"parent":"FUNC","rule":"DateTime64","sum":45},{"parent":"FUNC","rule":"Date_Diff","sum":1},{"parent":"FUNC","rule":"DatetimE","sum":8},{"parent":"FUNC","rule":"Datetime","sum":245619},{"parent":"FUNC","rule":"Datetime64","sum":6},{"parent":"FUNC","rule":"Decimal","sum":30941},{"parent":"FUNC","rule":"DenseRank","sum":26},{"parent":"FUNC","rule":"Dense_RANK","sum":1},{"parent":"FUNC","rule":"Dense_Rank","sum":49},{"parent":"FUNC","rule":"Dense_rank","sum":6},{"parent":"FUNC","rule":"DicTKeys","sum":1},{"parent":"FUNC","rule":"DictAggregate","sum":141677},{"parent":"FUNC","rule":"DictCOntains","sum":351},{"parent":"FUNC","rule":"DictContains","sum":2023048},{"parent":"FUNC","rule":"DictCreate","sum":68793},{"parent":"FUNC","rule":"DictHasItems","sum":619694},{"parent":"FUNC","rule":"DictHasitems","sum":262},{"parent":"FUNC","rule":"DictItems","sum":2543449},{"parent":"FUNC","rule":"DictKEys","sum":1},{"parent":"FUNC","rule":"DictKeYS","sum":3},{"parent":"FUNC","rule":"DictKeyType","sum":940},{"parent":"FUNC","rule":"DictKeys","sum":2714488},{"parent":"FUNC","rule":"DictLOokup","sum":7},{"parent":"FUNC","rule":"DictLength","sum":1010189},{"parent":"FUNC","rule":"DictLookUP","sum":3},{"parent":"FUNC","rule":"DictLookUp","sum":54807},{"parent":"FUNC","rule":"DictLookup","sum":5990848},{"parent":"FUNC","rule":"DictPayLoads","sum":10617},{"parent":"FUNC","rule":"DictPayloadType","sum":208},{"parent":"FUNC","rule":"DictPayloads","sum":925682},{"parent":"FUNC","rule":"DictType","sum":626},{"parent":"FUNC","rule":"DictTypeComponents","sum":3},{"parent":"FUNC","rule":"DictTypeHandle","sum":1},{"parent":"FUNC","rule":"DictValues","sum":5},{"parent":"FUNC","rule":"Dict_Keys","sum":12},{"parent":"FUNC","rule":"Dictcontains","sum":7},{"parent":"FUNC","rule":"Dictitems","sum":19821},{"parent":"FUNC","rule":"Dictkeys","sum":1107},{"parent":"FUNC","rule":"Dictlength","sum":6},{"parent":"FUNC","rule":"Dictlookup","sum":75177},{"parent":"FUNC","rule":"Double","sum":34701},{"parent":"FUNC","rule":"DyNumber","sum":4},{"parent":"FUNC","rule":"EACH","sum":4},{"parent":"FUNC","rule":"ENDSWITH","sum":13303},{"parent":"FUNC","rule":"ENDsWith","sum":85},{"parent":"FUNC","rule":"ENSURE","sum":830120},{"parent":"FUNC","rule":"EOMONTH","sum":1},{"parent":"FUNC","rule":"EmptyDict","sum":420},{"parent":"FUNC","rule":"EmptyDictTypeHandle","sum":3},{"parent":"FUNC","rule":"EmptyList","sum":24582},{"parent":"FUNC","rule":"Emptydict","sum":6},{"parent":"FUNC","rule":"EndsWIth","sum":870},{"parent":"FUNC","rule":"EndsWith","sum":1538493},{"parent":"FUNC","rule":"Endswith","sum":19798},{"parent":"FUNC","rule":"Ensure","sum":1428331},{"parent":"FUNC","rule":"EnsureConvertibleTo","sum":1956},{"parent":"FUNC","rule":"EnsureType","sum":228291},{"parent":"FUNC","rule":"EvaluateAtom","sum":514},{"parent":"FUNC","rule":"EvaluateCode","sum":469846},{"parent":"FUNC","rule":"EvaluateExpr","sum":897702},{"parent":"FUNC","rule":"EvaluateType","sum":120824},{"parent":"FUNC","rule":"ExpandStruct","sum":257039},{"parent":"FUNC","rule":"ExtractUkropCtx","sum":1},{"parent":"FUNC","rule":"FIND","sum":5423952},{"parent":"FUNC","rule":"FIRST","sum":3},{"parent":"FUNC","rule":"FIRST_VALUE","sum":8847477},{"parent":"FUNC","rule":"FIRST_value","sum":785},{"parent":"FUNC","rule":"FIRsT_VALUE","sum":1},{"parent":"FUNC","rule":"FIleContent","sum":1},{"parent":"FUNC","rule":"FLATTEN","sum":9},{"parent":"FUNC","rule":"FLOAT","sum":7},{"parent":"FUNC","rule":"FLOOR","sum":1},{"parent":"FUNC","rule":"FORMATTYPE","sum":1},{"parent":"FUNC","rule":"FROMBYTES","sum":5},{"parent":"FUNC","rule":"FROmbytes","sum":4},{"parent":"FUNC","rule":"FileCOntent","sum":29},{"parent":"FUNC","rule":"FileContent","sum":2330268},{"parent":"FUNC","rule":"FilePath","sum":1447956},{"parent":"FUNC","rule":"Filecontent","sum":11721},{"parent":"FUNC","rule":"Filepath","sum":10},{"parent":"FUNC","rule":"FinD","sum":16},{"parent":"FUNC","rule":"Find","sum":322367},{"parent":"FUNC","rule":"FirsT_VALUE","sum":3},{"parent":"FUNC","rule":"FirstValue","sum":34},{"parent":"FUNC","rule":"First_VALUE","sum":12},{"parent":"FUNC","rule":"First_Value","sum":28},{"parent":"FUNC","rule":"First_value","sum":180},{"parent":"FUNC","rule":"FlattenMembers","sum":108910},{"parent":"FUNC","rule":"Float","sum":12294},{"parent":"FUNC","rule":"FoldMap","sum":13},{"parent":"FUNC","rule":"Folder","sum":13},{"parent":"FUNC","rule":"FolderPath","sum":10124},{"parent":"FUNC","rule":"ForceRemoveMember","sum":399636},{"parent":"FUNC","rule":"ForceRemoveMembers","sum":1072339},{"parent":"FUNC","rule":"ForceRenameMembers","sum":63857},{"parent":"FUNC","rule":"ForceSpreadMembers","sum":113357},{"parent":"FUNC","rule":"ForceSpreadmembers","sum":4},{"parent":"FUNC","rule":"Format","sum":1},{"parent":"FUNC","rule":"FormatCode","sum":688},{"parent":"FUNC","rule":"FormatType","sum":490404},{"parent":"FUNC","rule":"FormatTypeDiff","sum":781},{"parent":"FUNC","rule":"FormatTypeDiffPretty","sum":102},{"parent":"FUNC","rule":"Formattype","sum":101},{"parent":"FUNC","rule":"FromBytes","sum":98581},{"parent":"FUNC","rule":"FromPg","sum":4802},{"parent":"FUNC","rule":"FromYsonSimpleType","sum":1},{"parent":"FUNC","rule":"From_bytes","sum":1},{"parent":"FUNC","rule":"FromatType","sum":1},{"parent":"FUNC","rule":"Frombytes","sum":12},{"parent":"FUNC","rule":"FuncCode","sum":1219779},{"parent":"FUNC","rule":"GETDATE","sum":1},{"parent":"FUNC","rule":"GREATEST","sum":388297},{"parent":"FUNC","rule":"GROUPING","sum":70388},{"parent":"FUNC","rule":"GROUPINg","sum":4},{"parent":"FUNC","rule":"GROUP_CONCAT","sum":1},{"parent":"FUNC","rule":"GatherMembers","sum":1477114},{"parent":"FUNC","rule":"Gather_Members","sum":38},{"parent":"FUNC","rule":"Gathermembers","sum":8},{"parent":"FUNC","rule":"GetLength","sum":2},{"parent":"FUNC","rule":"GetWeekOfYear","sum":1},{"parent":"FUNC","rule":"Greatest","sum":6010},{"parent":"FUNC","rule":"Grouping","sum":242},{"parent":"FUNC","rule":"HISTOGRAM","sum":268900},{"parent":"FUNC","rule":"HISTOGRAMCDF","sum":468},{"parent":"FUNC","rule":"HISTOGRAMCdf","sum":47},{"parent":"FUNC","rule":"HISTOGRAM_CDF","sum":3},{"parent":"FUNC","rule":"HISTOGRAMcdf","sum":2},{"parent":"FUNC","rule":"HISTOGrAM","sum":56},{"parent":"FUNC","rule":"HISTOgram","sum":1},{"parent":"FUNC","rule":"HISToGRAM","sum":1},{"parent":"FUNC","rule":"HISTogram","sum":1},{"parent":"FUNC","rule":"HIStOGRAM","sum":1},{"parent":"FUNC","rule":"HIstogram","sum":34},{"parent":"FUNC","rule":"HLL","sum":12525},{"parent":"FUNC","rule":"HOP_END","sum":16},{"parent":"FUNC","rule":"HOP_START","sum":4},{"parent":"FUNC","rule":"Histogram","sum":35170},{"parent":"FUNC","rule":"HistogramCDF","sum":368},{"parent":"FUNC","rule":"HistogramCdf","sum":34},{"parent":"FUNC","rule":"Histogram_CDF","sum":58},{"parent":"FUNC","rule":"Histogramcdf","sum":1},{"parent":"FUNC","rule":"Hll","sum":1976},{"parent":"FUNC","rule":"HyperLogLog","sum":4221},{"parent":"FUNC","rule":"IF","sum":74831249},{"parent":"FUNC","rule":"IFNULL","sum":9},{"parent":"FUNC","rule":"IF_STRICT","sum":1},{"parent":"FUNC","rule":"IN","sum":2},{"parent":"FUNC","rule":"INT","sum":16},{"parent":"FUNC","rule":"INT32","sum":1},{"parent":"FUNC","rule":"INTERVAL","sum":886616},{"parent":"FUNC","rule":"INterval","sum":767},{"parent":"FUNC","rule":"If","sum":1068086},{"parent":"FUNC","rule":"IfNull","sum":6},{"parent":"FUNC","rule":"InstanceOf","sum":244693},{"parent":"FUNC","rule":"Int","sum":1},{"parent":"FUNC","rule":"Int16","sum":37},{"parent":"FUNC","rule":"Int32","sum":32725},{"parent":"FUNC","rule":"Int64","sum":3232},{"parent":"FUNC","rule":"Int8","sum":302},{"parent":"FUNC","rule":"InterVal","sum":4},{"parent":"FUNC","rule":"Interval","sum":16006942},{"parent":"FUNC","rule":"Interval64","sum":2},{"parent":"FUNC","rule":"IntervalFromDays","sum":9},{"parent":"FUNC","rule":"IsInt64","sum":1},{"parent":"FUNC","rule":"JSON","sum":78},{"parent":"FUNC","rule":"JUST","sum":127189},{"parent":"FUNC","rule":"Join","sum":1},{"parent":"FUNC","rule":"JoinTableRow","sum":1288166},{"parent":"FUNC","rule":"JoinTablerow","sum":721},{"parent":"FUNC","rule":"JointableRow","sum":1},{"parent":"FUNC","rule":"Json","sum":51068},{"parent":"FUNC","rule":"JsonDocument","sum":9},{"parent":"FUNC","rule":"Jsut","sum":1},{"parent":"FUNC","rule":"Just","sum":6491447},{"parent":"FUNC","rule":"LAG","sum":3999334},{"parent":"FUNC","rule":"LAST","sum":1},{"parent":"FUNC","rule":"LAST_VALUE","sum":1318288},{"parent":"FUNC","rule":"LAST_value","sum":2},{"parent":"FUNC","rule":"LEAD","sum":1634916},{"parent":"FUNC","rule":"LEAST","sum":426055},{"parent":"FUNC","rule":"LEFT","sum":3},{"parent":"FUNC","rule":"LEFT_SHIFT","sum":1},{"parent":"FUNC","rule":"LEN","sum":1686381},{"parent":"FUNC","rule":"LENGTH","sum":3834935},{"parent":"FUNC","rule":"LENgth","sum":23},{"parent":"FUNC","rule":"LEngth","sum":12},{"parent":"FUNC","rule":"LIKELY","sum":141169},{"parent":"FUNC","rule":"LINEARHISTOGRAM","sum":374},{"parent":"FUNC","rule":"LINEARHISTOGRAMCDF","sum":1},{"parent":"FUNC","rule":"LINEARHistogram","sum":3},{"parent":"FUNC","rule":"LINEAR_HISTOGRAM","sum":13},{"parent":"FUNC","rule":"LISTALL","sum":2698},{"parent":"FUNC","rule":"LISTANY","sum":130},{"parent":"FUNC","rule":"LISTAVG","sum":17},{"parent":"FUNC","rule":"LISTAny","sum":10},{"parent":"FUNC","rule":"LISTCOLLECT","sum":1},{"parent":"FUNC","rule":"LISTCONCAT","sum":1524},{"parent":"FUNC","rule":"LISTEXTEND","sum":13},{"parent":"FUNC","rule":"LISTFILTER","sum":1627},{"parent":"FUNC","rule":"LISTFLATTEN","sum":4219},{"parent":"FUNC","rule":"LISTFROMRANGE","sum":1488},{"parent":"FUNC","rule":"LISTHAS","sum":36584},{"parent":"FUNC","rule":"LISTHASITEMS","sum":2089},{"parent":"FUNC","rule":"LISTHEAD","sum":18498},{"parent":"FUNC","rule":"LISTHas","sum":9},{"parent":"FUNC","rule":"LISTHead","sum":2},{"parent":"FUNC","rule":"LISTLAST","sum":1510},{"parent":"FUNC","rule":"LISTLENGTH","sum":48055},{"parent":"FUNC","rule":"LISTLENGth","sum":4},{"parent":"FUNC","rule":"LISTLenGTH","sum":7},{"parent":"FUNC","rule":"LISTLength","sum":2085},{"parent":"FUNC","rule":"LISTMAP","sum":14251},{"parent":"FUNC","rule":"LISTMAX","sum":5639},{"parent":"FUNC","rule":"LISTMIN","sum":187},{"parent":"FUNC","rule":"LISTMap","sum":365},{"parent":"FUNC","rule":"LISTNOTNULL","sum":8480},{"parent":"FUNC","rule":"LISTREVERSE","sum":2},{"parent":"FUNC","rule":"LISTSKIP","sum":15},{"parent":"FUNC","rule":"LISTSORT","sum":7572},{"parent":"FUNC","rule":"LISTSORTASC","sum":1673},{"parent":"FUNC","rule":"LISTSORTDESC","sum":104},{"parent":"FUNC","rule":"LISTSUM","sum":175},{"parent":"FUNC","rule":"LISTSort","sum":19},{"parent":"FUNC","rule":"LISTSum","sum":6},{"parent":"FUNC","rule":"LISTTAKE","sum":265},{"parent":"FUNC","rule":"LISTUNIQ","sum":596},{"parent":"FUNC","rule":"LISTUniq","sum":26},{"parent":"FUNC","rule":"LISTZIP","sum":261},{"parent":"FUNC","rule":"LISTZIPALL","sum":290},{"parent":"FUNC","rule":"LIST_AGGREGATE","sum":1},{"parent":"FUNC","rule":"LIST_ALL","sum":1},{"parent":"FUNC","rule":"LIST_ANY","sum":7},{"parent":"FUNC","rule":"LIST_CONCAT","sum":18},{"parent":"FUNC","rule":"LIST_EXTEND","sum":1},{"parent":"FUNC","rule":"LIST_EXTRACT","sum":73},{"parent":"FUNC","rule":"LIST_FLATTEN","sum":3},{"parent":"FUNC","rule":"LIST_FOLD","sum":30},{"parent":"FUNC","rule":"LIST_FROM_RANGE","sum":346},{"parent":"FUNC","rule":"LIST_HAS","sum":1993},{"parent":"FUNC","rule":"LIST_HEAD","sum":100},{"parent":"FUNC","rule":"LIST_LAST","sum":54},{"parent":"FUNC","rule":"LIST_LENGTH","sum":2457},{"parent":"FUNC","rule":"LIST_Length","sum":1},{"parent":"FUNC","rule":"LIST_MAP","sum":9},{"parent":"FUNC","rule":"LIST_MAX","sum":285},{"parent":"FUNC","rule":"LIST_SORT","sum":647},{"parent":"FUNC","rule":"LIST_SUM","sum":2},{"parent":"FUNC","rule":"LIST_TAKE","sum":2},{"parent":"FUNC","rule":"LIST_UNIQ","sum":334},{"parent":"FUNC","rule":"LIST_length","sum":1},{"parent":"FUNC","rule":"LISTfilter","sum":7},{"parent":"FUNC","rule":"LISTfromRange","sum":1410},{"parent":"FUNC","rule":"LISTfromrange","sum":3},{"parent":"FUNC","rule":"LISThas","sum":2},{"parent":"FUNC","rule":"LISTnotNull","sum":2},{"parent":"FUNC","rule":"LIStExtend","sum":3},{"parent":"FUNC","rule":"LIStHas","sum":2},{"parent":"FUNC","rule":"LIStLENGth","sum":1},{"parent":"FUNC","rule":"LIStLength","sum":1},{"parent":"FUNC","rule":"LIStmap","sum":1},{"parent":"FUNC","rule":"LIstAny","sum":3},{"parent":"FUNC","rule":"LIstConcat","sum":304},{"parent":"FUNC","rule":"LIstExtend","sum":3},{"parent":"FUNC","rule":"LIstFilter","sum":71},{"parent":"FUNC","rule":"LIstFromRange","sum":8},{"parent":"FUNC","rule":"LIstFromrange","sum":1},{"parent":"FUNC","rule":"LIstHas","sum":16},{"parent":"FUNC","rule":"LIstHasItems","sum":6},{"parent":"FUNC","rule":"LIstHead","sum":3},{"parent":"FUNC","rule":"LIstLength","sum":374},{"parent":"FUNC","rule":"LIstMap","sum":1315},{"parent":"FUNC","rule":"LIstMax","sum":7},{"parent":"FUNC","rule":"LIstSkip","sum":2},{"parent":"FUNC","rule":"LIstSort","sum":1},{"parent":"FUNC","rule":"LIstSum","sum":1},{"parent":"FUNC","rule":"LIstfilter","sum":2},{"parent":"FUNC","rule":"LIstlength","sum":13},{"parent":"FUNC","rule":"LIstmap","sum":12},{"parent":"FUNC","rule":"LOG","sum":1},{"parent":"FUNC","rule":"LOG10","sum":6},{"parent":"FUNC","rule":"LOGHISTOGRAM","sum":1},{"parent":"FUNC","rule":"LOWER","sum":5},{"parent":"FUNC","rule":"Lag","sum":12443},{"parent":"FUNC","rule":"LambdaArgumentsCount","sum":32},{"parent":"FUNC","rule":"LambdaCode","sum":326513},{"parent":"FUNC","rule":"LastValue","sum":41},{"parent":"FUNC","rule":"Last_VALUE","sum":14},{"parent":"FUNC","rule":"Last_Value","sum":29},{"parent":"FUNC","rule":"Last_value","sum":84},{"parent":"FUNC","rule":"Lead","sum":11223},{"parent":"FUNC","rule":"Least","sum":2190},{"parent":"FUNC","rule":"Len","sum":92600},{"parent":"FUNC","rule":"LenGTH","sum":12},{"parent":"FUNC","rule":"Length","sum":1242695},{"parent":"FUNC","rule":"LiSTMAP","sum":2},{"parent":"FUNC","rule":"Likely","sum":20141},{"parent":"FUNC","rule":"LinearHISTOGRAM","sum":86},{"parent":"FUNC","rule":"LinearHistogram","sum":45772},{"parent":"FUNC","rule":"LinearHistogramCDF","sum":481},{"parent":"FUNC","rule":"LinearHistogramcdf","sum":10},{"parent":"FUNC","rule":"Linear_Histogram","sum":7},{"parent":"FUNC","rule":"Linearhistogram","sum":4},{"parent":"FUNC","rule":"Lis","sum":1},{"parent":"FUNC","rule":"LisMap","sum":2},{"parent":"FUNC","rule":"LisTHas","sum":8},{"parent":"FUNC","rule":"LisTLength","sum":2},{"parent":"FUNC","rule":"ListALL","sum":1571},{"parent":"FUNC","rule":"ListALl","sum":8},{"parent":"FUNC","rule":"ListANY","sum":1726},{"parent":"FUNC","rule":"ListAVG","sum":246},{"parent":"FUNC","rule":"ListAgg","sum":2},{"parent":"FUNC","rule":"ListAggregate","sum":424587},{"parent":"FUNC","rule":"ListAll","sum":263261},{"parent":"FUNC","rule":"ListAny","sum":1878420},{"parent":"FUNC","rule":"ListAppend","sum":1},{"parent":"FUNC","rule":"ListAvg","sum":534208},{"parent":"FUNC","rule":"ListCOncat","sum":2},{"parent":"FUNC","rule":"ListCode","sum":207058},{"parent":"FUNC","rule":"ListCollect","sum":902802},{"parent":"FUNC","rule":"ListConCat","sum":77},{"parent":"FUNC","rule":"ListConcat","sum":5449410},{"parent":"FUNC","rule":"ListCreate","sum":1958900},{"parent":"FUNC","rule":"ListDistinct","sum":1},{"parent":"FUNC","rule":"ListEnumerate","sum":1392489},{"parent":"FUNC","rule":"ListExtend","sum":4359935},{"parent":"FUNC","rule":"ListExtendStrict","sum":87958},{"parent":"FUNC","rule":"ListExtract","sum":3299019},{"parent":"FUNC","rule":"ListFILTER","sum":495},{"parent":"FUNC","rule":"ListFIlter","sum":339},{"parent":"FUNC","rule":"ListFLatMap","sum":270},{"parent":"FUNC","rule":"ListFLatten","sum":596},{"parent":"FUNC","rule":"ListFROMRange","sum":5024},{"parent":"FUNC","rule":"ListFilteR","sum":4},{"parent":"FUNC","rule":"ListFilter","sum":17748233},{"parent":"FUNC","rule":"ListFirst","sum":3},{"parent":"FUNC","rule":"ListFlatMap","sum":910460},{"parent":"FUNC","rule":"ListFlatmap","sum":28521},{"parent":"FUNC","rule":"ListFlatten","sum":2811746},{"parent":"FUNC","rule":"ListFold","sum":229604},{"parent":"FUNC","rule":"ListFold1","sum":35297},{"parent":"FUNC","rule":"ListFold1Map","sum":3440},{"parent":"FUNC","rule":"ListFoldMap","sum":38611},{"parent":"FUNC","rule":"ListFromPython","sum":2},{"parent":"FUNC","rule":"ListFromRANGE","sum":23},{"parent":"FUNC","rule":"ListFromRAnge","sum":45},{"parent":"FUNC","rule":"ListFromRange","sum":3070356},{"parent":"FUNC","rule":"ListFromTuple","sum":58796},{"parent":"FUNC","rule":"ListFromTyple","sum":2},{"parent":"FUNC","rule":"ListFromrange","sum":12},{"parent":"FUNC","rule":"ListHAS","sum":412},{"parent":"FUNC","rule":"ListHAs","sum":572},{"parent":"FUNC","rule":"ListHAsItems","sum":26},{"parent":"FUNC","rule":"ListHEAD","sum":2},{"parent":"FUNC","rule":"ListHEad","sum":66},{"parent":"FUNC","rule":"ListHaS","sum":1},{"parent":"FUNC","rule":"ListHas","sum":20684140},{"parent":"FUNC","rule":"ListHasITems","sum":9},{"parent":"FUNC","rule":"ListHasItemhs","sum":1},{"parent":"FUNC","rule":"ListHasItems","sum":5096505},{"parent":"FUNC","rule":"ListHasitems","sum":331},{"parent":"FUNC","rule":"ListHeaD","sum":102},{"parent":"FUNC","rule":"ListHead","sum":10553525},{"parent":"FUNC","rule":"ListINdexOf","sum":2},{"parent":"FUNC","rule":"ListIndex","sum":1},{"parent":"FUNC","rule":"ListIndexOF","sum":10},{"parent":"FUNC","rule":"ListIndexOf","sum":1218088},{"parent":"FUNC","rule":"ListIndexof","sum":19},{"parent":"FUNC","rule":"ListItemType","sum":206671},{"parent":"FUNC","rule":"ListJoin","sum":3},{"parent":"FUNC","rule":"ListJsonDocument","sum":1},{"parent":"FUNC","rule":"ListLAst","sum":10},{"parent":"FUNC","rule":"ListLENGTH","sum":2290},{"parent":"FUNC","rule":"ListLEngth","sum":19},{"parent":"FUNC","rule":"ListLasT","sum":12},{"parent":"FUNC","rule":"ListLast","sum":5980021},{"parent":"FUNC","rule":"ListLeNgth","sum":1},{"parent":"FUNC","rule":"ListLegth","sum":1},{"parent":"FUNC","rule":"ListLenght","sum":1},{"parent":"FUNC","rule":"ListLengtH","sum":2},{"parent":"FUNC","rule":"ListLength","sum":18360734},{"parent":"FUNC","rule":"ListMAP","sum":227},{"parent":"FUNC","rule":"ListMAX","sum":9790},{"parent":"FUNC","rule":"ListMAp","sum":4717},{"parent":"FUNC","rule":"ListMAx","sum":1},{"parent":"FUNC","rule":"ListMIN","sum":52},{"parent":"FUNC","rule":"ListMIn","sum":1},{"parent":"FUNC","rule":"ListMaP","sum":1218},{"parent":"FUNC","rule":"ListMap","sum":35320671},{"parent":"FUNC","rule":"ListMax","sum":1413335},{"parent":"FUNC","rule":"ListMin","sum":811946},{"parent":"FUNC","rule":"ListNOTNull","sum":712},{"parent":"FUNC","rule":"ListNoTNull","sum":17},{"parent":"FUNC","rule":"ListNoTnull","sum":881},{"parent":"FUNC","rule":"ListNonNull","sum":1},{"parent":"FUNC","rule":"ListNotNULL","sum":30190},{"parent":"FUNC","rule":"ListNotNUll","sum":7920},{"parent":"FUNC","rule":"ListNotNuLL","sum":5},{"parent":"FUNC","rule":"ListNotNul","sum":1},{"parent":"FUNC","rule":"ListNotNulL","sum":3},{"parent":"FUNC","rule":"ListNotNull","sum":9108047},{"parent":"FUNC","rule":"ListNotnull","sum":22},{"parent":"FUNC","rule":"ListREplicate","sum":2},{"parent":"FUNC","rule":"ListRange","sum":4},{"parent":"FUNC","rule":"ListRepeat","sum":1},{"parent":"FUNC","rule":"ListReplicate","sum":946286},{"parent":"FUNC","rule":"ListReverse","sum":1334209},{"parent":"FUNC","rule":"ListSORT","sum":1},{"parent":"FUNC","rule":"ListSORtAsc","sum":26},{"parent":"FUNC","rule":"ListSOrt","sum":3},{"parent":"FUNC","rule":"ListSUM","sum":866},{"parent":"FUNC","rule":"ListSUm","sum":12},{"parent":"FUNC","rule":"ListSample","sum":6},{"parent":"FUNC","rule":"ListSampleN","sum":645},{"parent":"FUNC","rule":"ListShuffle","sum":481},{"parent":"FUNC","rule":"ListShuffleN","sum":1},{"parent":"FUNC","rule":"ListSkip","sum":617241},{"parent":"FUNC","rule":"ListSkipWhile","sum":139816},{"parent":"FUNC","rule":"ListSkipWhileInclusive","sum":8636},{"parent":"FUNC","rule":"ListSort","sum":4987535},{"parent":"FUNC","rule":"ListSortASC","sum":17601},{"parent":"FUNC","rule":"ListSortAsc","sum":481868},{"parent":"FUNC","rule":"ListSortDESC","sum":53},{"parent":"FUNC","rule":"ListSortDEsc","sum":2},{"parent":"FUNC","rule":"ListSortDesc","sum":1133917},{"parent":"FUNC","rule":"ListSortasc","sum":9},{"parent":"FUNC","rule":"ListSortdesc","sum":669},{"parent":"FUNC","rule":"ListSum","sum":1741577},{"parent":"FUNC","rule":"ListTail","sum":1},{"parent":"FUNC","rule":"ListTake","sum":2140859},{"parent":"FUNC","rule":"ListTakeWhile","sum":89508},{"parent":"FUNC","rule":"ListTakeWhileInclusive","sum":2460},{"parent":"FUNC","rule":"ListToTuple","sum":6188},{"parent":"FUNC","rule":"ListTop","sum":2203},{"parent":"FUNC","rule":"ListTopAsc","sum":132},{"parent":"FUNC","rule":"ListTopDESC","sum":1},{"parent":"FUNC","rule":"ListTopDesc","sum":9595},{"parent":"FUNC","rule":"ListTopSort","sum":1009},{"parent":"FUNC","rule":"ListTopSortAsc","sum":40},{"parent":"FUNC","rule":"ListTopSortDesc","sum":60040},{"parent":"FUNC","rule":"ListTopdesc","sum":1},{"parent":"FUNC","rule":"ListType","sum":31551},{"parent":"FUNC","rule":"ListTypeHandle","sum":1},{"parent":"FUNC","rule":"ListUNiq","sum":24},{"parent":"FUNC","rule":"ListUnionALL","sum":127},{"parent":"FUNC","rule":"ListUnionAll","sum":56559},{"parent":"FUNC","rule":"ListUniq","sum":3966479},{"parent":"FUNC","rule":"ListUniqStable","sum":74015},{"parent":"FUNC","rule":"ListZIP","sum":8},{"parent":"FUNC","rule":"ListZIp","sum":1},{"parent":"FUNC","rule":"ListZip","sum":2521995},{"parent":"FUNC","rule":"ListZipALL","sum":291025},{"parent":"FUNC","rule":"ListZipAll","sum":275263},{"parent":"FUNC","rule":"List_FromRange","sum":11},{"parent":"FUNC","rule":"List_Has","sum":23},{"parent":"FUNC","rule":"List_Length","sum":15},{"parent":"FUNC","rule":"List_Sort","sum":10},{"parent":"FUNC","rule":"List_Uniq","sum":1},{"parent":"FUNC","rule":"List_concat","sum":3},{"parent":"FUNC","rule":"List_length","sum":2},{"parent":"FUNC","rule":"List_sort","sum":80},{"parent":"FUNC","rule":"Listall","sum":4433},{"parent":"FUNC","rule":"Listany","sum":38},{"parent":"FUNC","rule":"Listcollect","sum":5146},{"parent":"FUNC","rule":"Listconcat","sum":14947},{"parent":"FUNC","rule":"Listenumerate","sum":3},{"parent":"FUNC","rule":"Listextend","sum":5},{"parent":"FUNC","rule":"Listfilter","sum":270192},{"parent":"FUNC","rule":"Listflatmap","sum":297},{"parent":"FUNC","rule":"Listflatten","sum":35},{"parent":"FUNC","rule":"ListfromRange","sum":32},{"parent":"FUNC","rule":"Listfromrange","sum":98},{"parent":"FUNC","rule":"Listfromtuple","sum":1},{"parent":"FUNC","rule":"Listhas","sum":71109},{"parent":"FUNC","rule":"ListhasItems","sum":274},{"parent":"FUNC","rule":"Listhasitems","sum":467},{"parent":"FUNC","rule":"Listhead","sum":18611},{"parent":"FUNC","rule":"ListindexOf","sum":1943},{"parent":"FUNC","rule":"Listindexof","sum":4},{"parent":"FUNC","rule":"ListlENGTH","sum":1},{"parent":"FUNC","rule":"ListlEngth","sum":2},{"parent":"FUNC","rule":"Listlast","sum":3720},{"parent":"FUNC","rule":"Listlength","sum":10868},{"parent":"FUNC","rule":"Listmap","sum":11186},{"parent":"FUNC","rule":"Listmax","sum":488},{"parent":"FUNC","rule":"Listmin","sum":1607},{"parent":"FUNC","rule":"ListnotNull","sum":38},{"parent":"FUNC","rule":"Listnotnull","sum":11},{"parent":"FUNC","rule":"Listreverse","sum":17},{"parent":"FUNC","rule":"Listskip","sum":148},{"parent":"FUNC","rule":"ListskipWhile","sum":409},{"parent":"FUNC","rule":"Listsort","sum":989},{"parent":"FUNC","rule":"Listsortasc","sum":1},{"parent":"FUNC","rule":"Listsortdesc","sum":1},{"parent":"FUNC","rule":"Listsum","sum":27},{"parent":"FUNC","rule":"Listtake","sum":20255},{"parent":"FUNC","rule":"ListtakeWhile","sum":2},{"parent":"FUNC","rule":"Listuniq","sum":323},{"parent":"FUNC","rule":"Listzip","sum":751},{"parent":"FUNC","rule":"Listzipall","sum":1},{"parent":"FUNC","rule":"LogHISTOGRAM","sum":7},{"parent":"FUNC","rule":"LogHistogram","sum":287},{"parent":"FUNC","rule":"LogHistogramCDF","sum":15},{"parent":"FUNC","rule":"LogarithmicHISTOGRAM","sum":1},{"parent":"FUNC","rule":"LogarithmicHistogram","sum":622},{"parent":"FUNC","rule":"Logarithmichistogram","sum":20},{"parent":"FUNC","rule":"Lookup","sum":1},{"parent":"FUNC","rule":"MAX","sum":34405108},{"parent":"FUNC","rule":"MAXBY","sum":123},{"parent":"FUNC","rule":"MAXOF","sum":3},{"parent":"FUNC","rule":"MAX_BY","sum":22818637},{"parent":"FUNC","rule":"MAX_By","sum":1},{"parent":"FUNC","rule":"MAX_IF","sum":1},{"parent":"FUNC","rule":"MAX_OF","sum":2201416},{"parent":"FUNC","rule":"MAX_Of","sum":2},{"parent":"FUNC","rule":"MAX_bY","sum":7},{"parent":"FUNC","rule":"MAX_by","sum":10454},{"parent":"FUNC","rule":"MAX_of","sum":649},{"parent":"FUNC","rule":"MAx","sum":294},{"parent":"FUNC","rule":"MEDIAN","sum":905336},{"parent":"FUNC","rule":"MEDiAN","sum":4},{"parent":"FUNC","rule":"MEdian","sum":14},{"parent":"FUNC","rule":"MIN","sum":14617885},{"parent":"FUNC","rule":"MINBY","sum":1894},{"parent":"FUNC","rule":"MIN_BY","sum":5253791},{"parent":"FUNC","rule":"MIN_IF","sum":8},{"parent":"FUNC","rule":"MIN_OF","sum":2254327},{"parent":"FUNC","rule":"MIN_by","sum":1237},{"parent":"FUNC","rule":"MIN_of","sum":1},{"parent":"FUNC","rule":"MIn","sum":201},{"parent":"FUNC","rule":"MIn_OF","sum":3},{"parent":"FUNC","rule":"MODE","sum":902020},{"parent":"FUNC","rule":"MODe","sum":1},{"parent":"FUNC","rule":"MONTH","sum":1},{"parent":"FUNC","rule":"MULTI_AGGREGATE_BY","sum":686176},{"parent":"FUNC","rule":"MaX","sum":7},{"parent":"FUNC","rule":"MakeDate","sum":1},{"parent":"FUNC","rule":"Map","sum":4},{"parent":"FUNC","rule":"Max","sum":376925},{"parent":"FUNC","rule":"MaxBy","sum":5442},{"parent":"FUNC","rule":"MaxOf","sum":207},{"parent":"FUNC","rule":"Max_BY","sum":3170},{"parent":"FUNC","rule":"Max_By","sum":68730},{"parent":"FUNC","rule":"Max_OF","sum":669},{"parent":"FUNC","rule":"Max_Of","sum":648},{"parent":"FUNC","rule":"Max_by","sum":141102},{"parent":"FUNC","rule":"Max_of","sum":3235},{"parent":"FUNC","rule":"Median","sum":19448},{"parent":"FUNC","rule":"MiN","sum":35},{"parent":"FUNC","rule":"Min","sum":192664},{"parent":"FUNC","rule":"MinBy","sum":1173},{"parent":"FUNC","rule":"MinOf","sum":892},{"parent":"FUNC","rule":"Min_BY","sum":440},{"parent":"FUNC","rule":"Min_By","sum":10675},{"parent":"FUNC","rule":"Min_OF","sum":1097},{"parent":"FUNC","rule":"Min_Of","sum":794},{"parent":"FUNC","rule":"Min_by","sum":9084},{"parent":"FUNC","rule":"Min_of","sum":1340},{"parent":"FUNC","rule":"MoDE","sum":1},{"parent":"FUNC","rule":"Mode","sum":14375},{"parent":"FUNC","rule":"Mul","sum":1},{"parent":"FUNC","rule":"MultiAggregateBy","sum":629},{"parent":"FUNC","rule":"Multi_Aggregate_BY","sum":4},{"parent":"FUNC","rule":"Multi_Aggregate_By","sum":1156},{"parent":"FUNC","rule":"Multi_Aggregate_by","sum":4},{"parent":"FUNC","rule":"Multi_aggregate_by","sum":436},{"parent":"FUNC","rule":"NANVL","sum":718226},{"parent":"FUNC","rule":"NOTHING","sum":3020},{"parent":"FUNC","rule":"NOW","sum":2},{"parent":"FUNC","rule":"NOW64","sum":2},{"parent":"FUNC","rule":"NOthing","sum":1},{"parent":"FUNC","rule":"NTH_VALUE","sum":2934},{"parent":"FUNC","rule":"NTILE","sum":1642},{"parent":"FUNC","rule":"NULLIF","sum":1},{"parent":"FUNC","rule":"NVL","sum":17598846},{"parent":"FUNC","rule":"NVl","sum":817},{"parent":"FUNC","rule":"NaNvl","sum":26},{"parent":"FUNC","rule":"NanVL","sum":1},{"parent":"FUNC","rule":"NanVl","sum":3},{"parent":"FUNC","rule":"Nanvl","sum":10531},{"parent":"FUNC","rule":"NothiNG","sum":2},{"parent":"FUNC","rule":"Nothing","sum":806416},{"parent":"FUNC","rule":"NullTypeHandle","sum":2529},{"parent":"FUNC","rule":"Nvl","sum":27846},{"parent":"FUNC","rule":"OR","sum":6},{"parent":"FUNC","rule":"OVER","sum":1},{"parent":"FUNC","rule":"OptionalItemType","sum":37184},{"parent":"FUNC","rule":"OptionalType","sum":136958},{"parent":"FUNC","rule":"OptionalTypeHandle","sum":44055},{"parent":"FUNC","rule":"PERCENTILE","sum":29614610},{"parent":"FUNC","rule":"PERCENTIlE","sum":4},{"parent":"FUNC","rule":"PERCENT_RANK","sum":5854},{"parent":"FUNC","rule":"PERCENtILE","sum":1897},{"parent":"FUNC","rule":"PERCEnTILE","sum":1},{"parent":"FUNC","rule":"PICKLE","sum":77},{"parent":"FUNC","rule":"PIckle","sum":7},{"parent":"FUNC","rule":"POPULATION_STDDEV","sum":372},{"parent":"FUNC","rule":"POPULATION_VARIANCE","sum":19},{"parent":"FUNC","rule":"POWER","sum":4},{"parent":"FUNC","rule":"ParseDuration","sum":2},{"parent":"FUNC","rule":"ParseFILE","sum":22},{"parent":"FUNC","rule":"ParseFIle","sum":8},{"parent":"FUNC","rule":"ParseFile","sum":955948},{"parent":"FUNC","rule":"ParseType","sum":459502},{"parent":"FUNC","rule":"ParseTypeHandle","sum":1160868},{"parent":"FUNC","rule":"Parsefile","sum":109},{"parent":"FUNC","rule":"Path","sum":4},{"parent":"FUNC","rule":"PeRCENTILE","sum":365},{"parent":"FUNC","rule":"Percentile","sum":73722},{"parent":"FUNC","rule":"PgArray","sum":17},{"parent":"FUNC","rule":"PgBool","sum":145},{"parent":"FUNC","rule":"PgCall","sum":538},{"parent":"FUNC","rule":"PgCast","sum":5475},{"parent":"FUNC","rule":"PgCircle","sum":5},{"parent":"FUNC","rule":"PgConst","sum":99},{"parent":"FUNC","rule":"PgDate","sum":115},{"parent":"FUNC","rule":"PgGeometry","sum":6},{"parent":"FUNC","rule":"PgInt4","sum":1},{"parent":"FUNC","rule":"PgInterval","sum":33},{"parent":"FUNC","rule":"PgOp","sum":1347},{"parent":"FUNC","rule":"PgPoint","sum":75},{"parent":"FUNC","rule":"PgPolygon","sum":516},{"parent":"FUNC","rule":"PgRangeCall","sum":7},{"parent":"FUNC","rule":"PgText","sum":24},{"parent":"FUNC","rule":"PgTimestamp","sum":42},{"parent":"FUNC","rule":"PgVarBit","sum":2},{"parent":"FUNC","rule":"Pickle","sum":118777},{"parent":"FUNC","rule":"QuoteCode","sum":735840},{"parent":"FUNC","rule":"RADIANS","sum":12},{"parent":"FUNC","rule":"RAND","sum":2},{"parent":"FUNC","rule":"RANDOM","sum":484333},{"parent":"FUNC","rule":"RANDOMNUMBER","sum":3991},{"parent":"FUNC","rule":"RANDOMNumber","sum":11},{"parent":"FUNC","rule":"RANDOMUUID","sum":5},{"parent":"FUNC","rule":"RANDOM_NUMBER","sum":83},{"parent":"FUNC","rule":"RANGE","sum":150},{"parent":"FUNC","rule":"RANK","sum":931701},{"parent":"FUNC","rule":"RAndom","sum":7},{"parent":"FUNC","rule":"REGEXP","sum":1},{"parent":"FUNC","rule":"REMOVEMEMBERS","sum":41},{"parent":"FUNC","rule":"REMOVE_mEMBER","sum":6},{"parent":"FUNC","rule":"REPLACE","sum":6},{"parent":"FUNC","rule":"RFIND","sum":3509212},{"parent":"FUNC","rule":"RFind","sum":258233},{"parent":"FUNC","rule":"RIGHT","sum":2},{"parent":"FUNC","rule":"ROUND","sum":10},{"parent":"FUNC","rule":"ROWNUMBER","sum":33},{"parent":"FUNC","rule":"ROW_NUMBER","sum":9342600},{"parent":"FUNC","rule":"ROW_NUMber","sum":11},{"parent":"FUNC","rule":"ROW_Number","sum":8},{"parent":"FUNC","rule":"ROW_nUMBER","sum":1},{"parent":"FUNC","rule":"ROW_nuMBER","sum":4},{"parent":"FUNC","rule":"ROW_number","sum":13605},{"parent":"FUNC","rule":"Rand","sum":1},{"parent":"FUNC","rule":"Random","sum":721944},{"parent":"FUNC","rule":"RandomNUmber","sum":183},{"parent":"FUNC","rule":"RandomNumber","sum":269061},{"parent":"FUNC","rule":"RandomUUID","sum":8345},{"parent":"FUNC","rule":"RandomUUid","sum":33585},{"parent":"FUNC","rule":"RandomUuid","sum":215027},{"parent":"FUNC","rule":"Randomnumber","sum":2},{"parent":"FUNC","rule":"Range","sum":2},{"parent":"FUNC","rule":"Rank","sum":3074},{"parent":"FUNC","rule":"RemoveMEmbers","sum":16},{"parent":"FUNC","rule":"RemoveMember","sum":429995},{"parent":"FUNC","rule":"RemoveMembers","sum":721426},{"parent":"FUNC","rule":"RemoveTimeZone","sum":13},{"parent":"FUNC","rule":"RemoveTimezone","sum":432859},{"parent":"FUNC","rule":"Removemember","sum":692},{"parent":"FUNC","rule":"Removemembers","sum":4},{"parent":"FUNC","rule":"RenameMembers","sum":486595},{"parent":"FUNC","rule":"ReplaceMember","sum":9397},{"parent":"FUNC","rule":"ReprCode","sum":194797},{"parent":"FUNC","rule":"ResourceType","sum":9},{"parent":"FUNC","rule":"Rfind","sum":873},{"parent":"FUNC","rule":"RootAttributes","sum":20},{"parent":"FUNC","rule":"RowNum","sum":1},{"parent":"FUNC","rule":"RowNumber","sum":21310},{"parent":"FUNC","rule":"Row_NUMBER","sum":29},{"parent":"FUNC","rule":"Row_NUmber","sum":12},{"parent":"FUNC","rule":"Row_Number","sum":60795},{"parent":"FUNC","rule":"Row_number","sum":4003},{"parent":"FUNC","rule":"SESSIONWINDOW","sum":131},{"parent":"FUNC","rule":"SETINTERSECTION","sum":20},{"parent":"FUNC","rule":"SIGN","sum":1},{"parent":"FUNC","rule":"SIN","sum":4},{"parent":"FUNC","rule":"SOME","sum":32912475},{"parent":"FUNC","rule":"SOMe","sum":17},{"parent":"FUNC","rule":"SON_VALUE","sum":1},{"parent":"FUNC","rule":"SOmE","sum":3},{"parent":"FUNC","rule":"SOme","sum":9},{"parent":"FUNC","rule":"SQL","sum":6},{"parent":"FUNC","rule":"SQRT","sum":2},{"parent":"FUNC","rule":"STARTSWITH","sum":25639},{"parent":"FUNC","rule":"STARTS_WITH","sum":42},{"parent":"FUNC","rule":"STARTsWITH","sum":17},{"parent":"FUNC","rule":"STATICMAP","sum":46},{"parent":"FUNC","rule":"STD","sum":6},{"parent":"FUNC","rule":"STDDEV","sum":401637},{"parent":"FUNC","rule":"STDDEVPOP","sum":2917},{"parent":"FUNC","rule":"STDDEVSAMP","sum":1094},{"parent":"FUNC","rule":"STDDEV_POP","sum":14},{"parent":"FUNC","rule":"STDDEV_POPULATION","sum":18435},{"parent":"FUNC","rule":"STDDEV_SAMP","sum":3551},{"parent":"FUNC","rule":"STDDEV_SAMPLE","sum":9894},{"parent":"FUNC","rule":"STDDev","sum":2},{"parent":"FUNC","rule":"STDdev","sum":4},{"parent":"FUNC","rule":"STRING_SPLIT","sum":1},{"parent":"FUNC","rule":"ST_AsText","sum":3},{"parent":"FUNC","rule":"ST_ClosestPoint","sum":3},{"parent":"FUNC","rule":"ST_Distance","sum":5},{"parent":"FUNC","rule":"ST_GeomFromGeoHash","sum":1},{"parent":"FUNC","rule":"ST_Point","sum":10},{"parent":"FUNC","rule":"ST_PolygonFromText","sum":5},{"parent":"FUNC","rule":"ST_SetSRID","sum":6},{"parent":"FUNC","rule":"STartsWith","sum":2},{"parent":"FUNC","rule":"STdDEV","sum":9},{"parent":"FUNC","rule":"SUBQUERYExtendFor","sum":6},{"parent":"FUNC","rule":"SUBSTIRNG","sum":4},{"parent":"FUNC","rule":"SUBSTRING","sum":29234003},{"parent":"FUNC","rule":"SUBSTRINg","sum":2},{"parent":"FUNC","rule":"SUBSTRInG","sum":4},{"parent":"FUNC","rule":"SUBSTRiNG","sum":2},{"parent":"FUNC","rule":"SUBSTRinG","sum":2},{"parent":"FUNC","rule":"SUBSTRing","sum":224},{"parent":"FUNC","rule":"SUBSTrING","sum":21},{"parent":"FUNC","rule":"SUBSTring","sum":14},{"parent":"FUNC","rule":"SUBStRING","sum":2},{"parent":"FUNC","rule":"SUBString","sum":20},{"parent":"FUNC","rule":"SUBstring","sum":3},{"parent":"FUNC","rule":"SUM","sum":42261625},{"parent":"FUNC","rule":"SUMIF","sum":3317},{"parent":"FUNC","rule":"SUM_","sum":320},{"parent":"FUNC","rule":"SUM_IF","sum":8449934},{"parent":"FUNC","rule":"SUM_If","sum":110},{"parent":"FUNC","rule":"SUM_iF","sum":19},{"parent":"FUNC","rule":"SUM_if","sum":264857},{"parent":"FUNC","rule":"SUN","sum":1},{"parent":"FUNC","rule":"SUbstring","sum":5},{"parent":"FUNC","rule":"SUm","sum":78},{"parent":"FUNC","rule":"SUm_IF","sum":30},{"parent":"FUNC","rule":"SWITCH","sum":2},{"parent":"FUNC","rule":"SecureParam","sum":891313},{"parent":"FUNC","rule":"SessionStart","sum":24374},{"parent":"FUNC","rule":"SessionState","sum":708},{"parent":"FUNC","rule":"SessionWindow","sum":101921},{"parent":"FUNC","rule":"SetBit","sum":45764},{"parent":"FUNC","rule":"SetContains","sum":1},{"parent":"FUNC","rule":"SetCreate","sum":45653},{"parent":"FUNC","rule":"SetDIfference","sum":11},{"parent":"FUNC","rule":"SetDifference","sum":483448},{"parent":"FUNC","rule":"SetIncludes","sum":248781},{"parent":"FUNC","rule":"SetInterSection","sum":21},{"parent":"FUNC","rule":"SetIntersection","sum":1262511},{"parent":"FUNC","rule":"SetIsDisJOINt","sum":8271},{"parent":"FUNC","rule":"SetIsDisJoint","sum":1665},{"parent":"FUNC","rule":"SetIsDisjoint","sum":1224131},{"parent":"FUNC","rule":"SetSymmetricDifference","sum":8950},{"parent":"FUNC","rule":"SetUNION","sum":1},{"parent":"FUNC","rule":"SetUnion","sum":581567},{"parent":"FUNC","rule":"Setintersection","sum":4333},{"parent":"FUNC","rule":"SizeOf","sum":1},{"parent":"FUNC","rule":"Some","sum":2506744},{"parent":"FUNC","rule":"SplitToList","sum":6},{"parent":"FUNC","rule":"SpreadMembers","sum":346135},{"parent":"FUNC","rule":"StablePicke","sum":1},{"parent":"FUNC","rule":"StablePickle","sum":210832},{"parent":"FUNC","rule":"StartSwith","sum":105},{"parent":"FUNC","rule":"StartsWIth","sum":696},{"parent":"FUNC","rule":"StartsWith","sum":5729777},{"parent":"FUNC","rule":"Startswith","sum":18841},{"parent":"FUNC","rule":"StaticFold","sum":297},{"parent":"FUNC","rule":"StaticMap","sum":685188},{"parent":"FUNC","rule":"StaticZip","sum":13310},{"parent":"FUNC","rule":"Staticmap","sum":2},{"parent":"FUNC","rule":"StdDev","sum":33},{"parent":"FUNC","rule":"Stddev","sum":43},{"parent":"FUNC","rule":"StreamItemType","sum":5736},{"parent":"FUNC","rule":"StreamType","sum":76883},{"parent":"FUNC","rule":"StreamTypeHandle","sum":17},{"parent":"FUNC","rule":"String","sum":34646},{"parent":"FUNC","rule":"StringLength","sum":5},{"parent":"FUNC","rule":"StringSplitToList","sum":4},{"parent":"FUNC","rule":"StructDifference","sum":229},{"parent":"FUNC","rule":"StructIntersection","sum":779},{"parent":"FUNC","rule":"StructMemberType","sum":18722},{"parent":"FUNC","rule":"StructMembers","sum":964266},{"parent":"FUNC","rule":"StructSymmetricDifference","sum":172},{"parent":"FUNC","rule":"StructType","sum":18113},{"parent":"FUNC","rule":"StructTypeComponents","sum":99048},{"parent":"FUNC","rule":"StructTypeHandle","sum":87242},{"parent":"FUNC","rule":"StructUnion","sum":95400},{"parent":"FUNC","rule":"SuBSTRING","sum":1},{"parent":"FUNC","rule":"SuM","sum":9},{"parent":"FUNC","rule":"SuM_IF","sum":4},{"parent":"FUNC","rule":"SubQueryExtendFor","sum":3},{"parent":"FUNC","rule":"SubSTRING","sum":3},{"parent":"FUNC","rule":"SubString","sum":27042},{"parent":"FUNC","rule":"SubqueryAssumeOrderBy","sum":809},{"parent":"FUNC","rule":"SubqueryExtend","sum":36478},{"parent":"FUNC","rule":"SubqueryExtendFor","sum":769666},{"parent":"FUNC","rule":"SubqueryMerge","sum":17},{"parent":"FUNC","rule":"SubqueryMergeFor","sum":36094},{"parent":"FUNC","rule":"SubqueryOrderBy","sum":181209},{"parent":"FUNC","rule":"SubqueryUnionALLFor","sum":9},{"parent":"FUNC","rule":"SubqueryUnionALlFor","sum":17},{"parent":"FUNC","rule":"SubqueryUnionAll","sum":26106},{"parent":"FUNC","rule":"SubqueryUnionAllFor","sum":137115},{"parent":"FUNC","rule":"SubqueryUnionAllfor","sum":380},{"parent":"FUNC","rule":"SubqueryUnionMerge","sum":30587},{"parent":"FUNC","rule":"SubqueryUnionMergeFor","sum":73721},{"parent":"FUNC","rule":"SubsTRING","sum":3},{"parent":"FUNC","rule":"Substring","sum":2938868},{"parent":"FUNC","rule":"Sum","sum":452555},{"parent":"FUNC","rule":"SumIf","sum":1597},{"parent":"FUNC","rule":"Sum_IF","sum":85},{"parent":"FUNC","rule":"Sum_If","sum":14878},{"parent":"FUNC","rule":"Sum_if","sum":52115},{"parent":"FUNC","rule":"TABLENAME","sum":11760},{"parent":"FUNC","rule":"TABLEPATH","sum":316},{"parent":"FUNC","rule":"TABLERECORDINDEX","sum":45},{"parent":"FUNC","rule":"TABLEROW","sum":1277},{"parent":"FUNC","rule":"TABLE_NAME","sum":124},{"parent":"FUNC","rule":"TABLE_PATH","sum":53},{"parent":"FUNC","rule":"TABLE_ROW","sum":124},{"parent":"FUNC","rule":"TABLEname","sum":4},{"parent":"FUNC","rule":"TAbleName","sum":65},{"parent":"FUNC","rule":"TAblePath","sum":2},{"parent":"FUNC","rule":"TAbleRow","sum":25},{"parent":"FUNC","rule":"TAblename","sum":1},{"parent":"FUNC","rule":"TESTBIT","sum":3},{"parent":"FUNC","rule":"TEstBit","sum":1},{"parent":"FUNC","rule":"TIMESTAMP","sum":426},{"parent":"FUNC","rule":"TIMESTAMPDIFF","sum":2},{"parent":"FUNC","rule":"TIMESTAMP_SECONDS","sum":1},{"parent":"FUNC","rule":"TOBytes","sum":1},{"parent":"FUNC","rule":"TODICT","sum":21},{"parent":"FUNC","rule":"TODIct","sum":1},{"parent":"FUNC","rule":"TOP","sum":499603},{"parent":"FUNC","rule":"TOPBY","sum":1},{"parent":"FUNC","rule":"TOPFREQ","sum":513458},{"parent":"FUNC","rule":"TOPFreq","sum":3},{"parent":"FUNC","rule":"TOP_BY","sum":1756151},{"parent":"FUNC","rule":"TOP_FREQ","sum":46},{"parent":"FUNC","rule":"TOP_by","sum":25},{"parent":"FUNC","rule":"TOSET","sum":41},{"parent":"FUNC","rule":"TOSet","sum":762},{"parent":"FUNC","rule":"TO_NUMBER","sum":14},{"parent":"FUNC","rule":"TO_TIMESTAMP","sum":1},{"parent":"FUNC","rule":"TObytes","sum":3},{"parent":"FUNC","rule":"TRY_MEMBER","sum":37},{"parent":"FUNC","rule":"TYPEOF","sum":1},{"parent":"FUNC","rule":"TYPEof","sum":28},{"parent":"FUNC","rule":"TZDateTime","sum":129},{"parent":"FUNC","rule":"TZDatetime","sum":3},{"parent":"FUNC","rule":"TZTimestamp","sum":64},{"parent":"FUNC","rule":"TabLeName","sum":1},{"parent":"FUNC","rule":"TableNAME","sum":3},{"parent":"FUNC","rule":"TableNAme","sum":1509},{"parent":"FUNC","rule":"TableNamE","sum":2},{"parent":"FUNC","rule":"TableName","sum":14993581},{"parent":"FUNC","rule":"TablePATH","sum":1},{"parent":"FUNC","rule":"TablePAth","sum":5},{"parent":"FUNC","rule":"TablePath","sum":1494366},{"parent":"FUNC","rule":"TableROW","sum":4},{"parent":"FUNC","rule":"TableROw","sum":19},{"parent":"FUNC","rule":"TableRecordINdex","sum":4},{"parent":"FUNC","rule":"TableRecordIndex","sum":2323768},{"parent":"FUNC","rule":"TableRedordIndex","sum":1},{"parent":"FUNC","rule":"TableRow","sum":26859346},{"parent":"FUNC","rule":"TableRowIndex","sum":1},{"parent":"FUNC","rule":"TableRows","sum":1668276},{"parent":"FUNC","rule":"Table_Name","sum":55},{"parent":"FUNC","rule":"Table_Row","sum":5},{"parent":"FUNC","rule":"Table_name","sum":75},{"parent":"FUNC","rule":"Table_path","sum":3},{"parent":"FUNC","rule":"Tablename","sum":103643},{"parent":"FUNC","rule":"Tablepath","sum":217},{"parent":"FUNC","rule":"TablerRow","sum":1},{"parent":"FUNC","rule":"TablerecordIndex","sum":1},{"parent":"FUNC","rule":"Tablerecordindex","sum":3},{"parent":"FUNC","rule":"Tablerow","sum":26448},{"parent":"FUNC","rule":"TestBit","sum":251665},{"parent":"FUNC","rule":"Text","sum":20},{"parent":"FUNC","rule":"TimeStamp","sum":4393},{"parent":"FUNC","rule":"Timestamp","sum":1354341},{"parent":"FUNC","rule":"Timestamp64","sum":59},{"parent":"FUNC","rule":"ToBytes","sum":6604327},{"parent":"FUNC","rule":"ToDIct","sum":269},{"parent":"FUNC","rule":"ToDict","sum":6382929},{"parent":"FUNC","rule":"ToList","sum":3},{"parent":"FUNC","rule":"ToLower","sum":4},{"parent":"FUNC","rule":"ToMilliseconds","sum":2},{"parent":"FUNC","rule":"ToMultiDict","sum":339431},{"parent":"FUNC","rule":"ToPg","sum":3053},{"parent":"FUNC","rule":"ToSET","sum":80},{"parent":"FUNC","rule":"ToSet","sum":5458552},{"parent":"FUNC","rule":"ToSortedDict","sum":1116},{"parent":"FUNC","rule":"ToStartOfMonth","sum":4},{"parent":"FUNC","rule":"To_bytes","sum":3},{"parent":"FUNC","rule":"Todict","sum":232},{"parent":"FUNC","rule":"Top","sum":766},{"parent":"FUNC","rule":"TopBy","sum":79},{"parent":"FUNC","rule":"TopFreq","sum":13374},{"parent":"FUNC","rule":"Top_BY","sum":22},{"parent":"FUNC","rule":"Top_By","sum":125},{"parent":"FUNC","rule":"Top_by","sum":119},{"parent":"FUNC","rule":"Topfreq","sum":28},{"parent":"FUNC","rule":"Toset","sum":2347},{"parent":"FUNC","rule":"TryMember","sum":16627965},{"parent":"FUNC","rule":"Trymember","sum":36871},{"parent":"FUNC","rule":"TupleElementType","sum":7546},{"parent":"FUNC","rule":"TupleType","sum":2404},{"parent":"FUNC","rule":"TupleTypeComponents","sum":60},{"parent":"FUNC","rule":"TupleTypeHandle","sum":5725},{"parent":"FUNC","rule":"TypeHandle","sum":163107},{"parent":"FUNC","rule":"TypeKind","sum":54320},{"parent":"FUNC","rule":"TypeOF","sum":37},{"parent":"FUNC","rule":"TypeOf","sum":842640},{"parent":"FUNC","rule":"Typeof","sum":78},{"parent":"FUNC","rule":"TzDate","sum":676},{"parent":"FUNC","rule":"TzDate32","sum":7},{"parent":"FUNC","rule":"TzDateTime","sum":24915},{"parent":"FUNC","rule":"TzDateTime64","sum":7},{"parent":"FUNC","rule":"TzDatetime","sum":46254},{"parent":"FUNC","rule":"TzTimeStamp","sum":4},{"parent":"FUNC","rule":"TzTimestamp","sum":342200},{"parent":"FUNC","rule":"TzTimestamp64","sum":7},{"parent":"FUNC","rule":"UBSTRING","sum":1},{"parent":"FUNC","rule":"UDAF","sum":141439},{"parent":"FUNC","rule":"UDF","sum":1686},{"parent":"FUNC","rule":"UINT32","sum":4},{"parent":"FUNC","rule":"UINT64","sum":6},{"parent":"FUNC","rule":"UInt32","sum":108286},{"parent":"FUNC","rule":"UInt64","sum":747},{"parent":"FUNC","rule":"UInt8","sum":740},{"parent":"FUNC","rule":"UNIQ","sum":1},{"parent":"FUNC","rule":"UNPICKLE","sum":28},{"parent":"FUNC","rule":"UNTAG","sum":18},{"parent":"FUNC","rule":"UNWRAP","sum":13846988},{"parent":"FUNC","rule":"UNWRAp","sum":44},{"parent":"FUNC","rule":"UNWRaP","sum":1},{"parent":"FUNC","rule":"UNWRap","sum":9838},{"parent":"FUNC","rule":"UNWrAP","sum":4},{"parent":"FUNC","rule":"UNWraP","sum":5},{"parent":"FUNC","rule":"UNWrap","sum":2},{"parent":"FUNC","rule":"UNwRAP","sum":6},{"parent":"FUNC","rule":"UNwrap","sum":1274},{"parent":"FUNC","rule":"USING","sum":6},{"parent":"FUNC","rule":"UTF8","sum":342555},{"parent":"FUNC","rule":"UUID","sum":1},{"parent":"FUNC","rule":"Udf","sum":295914},{"parent":"FUNC","rule":"Uint16","sum":83},{"parent":"FUNC","rule":"Uint32","sum":331609},{"parent":"FUNC","rule":"Uint64","sum":12037},{"parent":"FUNC","rule":"Uint8","sum":2898},{"parent":"FUNC","rule":"UnTag","sum":55},{"parent":"FUNC","rule":"UnWRAP","sum":10},{"parent":"FUNC","rule":"UnWrAp","sum":1},{"parent":"FUNC","rule":"UnWrap","sum":1079656},{"parent":"FUNC","rule":"UnionAll","sum":3},{"parent":"FUNC","rule":"Unpickle","sum":180},{"parent":"FUNC","rule":"Untag","sum":14594},{"parent":"FUNC","rule":"Unwarp","sum":1},{"parent":"FUNC","rule":"Unwrap","sum":35630413},{"parent":"FUNC","rule":"UtcCurrentDatetime","sum":8},{"parent":"FUNC","rule":"Utf8","sum":41450},{"parent":"FUNC","rule":"Uuid","sum":459},{"parent":"FUNC","rule":"VALUES","sum":15},{"parent":"FUNC","rule":"VARIANCE","sum":30976},{"parent":"FUNC","rule":"VARIANCE_POPULATION","sum":2917},{"parent":"FUNC","rule":"VARIANCE_SAMPLE","sum":1299},{"parent":"FUNC","rule":"VARP","sum":146},{"parent":"FUNC","rule":"VARPOP","sum":15},{"parent":"FUNC","rule":"VAR_POP","sum":4},{"parent":"FUNC","rule":"VAR_SAMP","sum":44},{"parent":"FUNC","rule":"VERSION","sum":2},{"parent":"FUNC","rule":"Variance","sum":1146},{"parent":"FUNC","rule":"Variance_SAMPLE","sum":30},{"parent":"FUNC","rule":"Variance_Sample","sum":23},{"parent":"FUNC","rule":"Variance_sample","sum":24},{"parent":"FUNC","rule":"VariantType","sum":3235},{"parent":"FUNC","rule":"VariantTypeHandle","sum":8},{"parent":"FUNC","rule":"VariantUnderlyingType","sum":6437},{"parent":"FUNC","rule":"Version","sum":3},{"parent":"FUNC","rule":"Visit","sum":18},{"parent":"FUNC","rule":"Void","sum":93478},{"parent":"FUNC","rule":"WEAKFIELD","sum":833},{"parent":"FUNC","rule":"WEAK_FIELD","sum":384},{"parent":"FUNC","rule":"WEakField","sum":2},{"parent":"FUNC","rule":"Way","sum":8613},{"parent":"FUNC","rule":"WeakFIeld","sum":43},{"parent":"FUNC","rule":"WeakField","sum":21081419},{"parent":"FUNC","rule":"WeakFiled","sum":2},{"parent":"FUNC","rule":"Weakfield","sum":1841},{"parent":"FUNC","rule":"WorldCode","sum":365},{"parent":"FUNC","rule":"YPathDouble","sum":4},{"parent":"FUNC","rule":"YPathExtract","sum":4},{"parent":"FUNC","rule":"YPathInt64","sum":6},{"parent":"FUNC","rule":"YPathString","sum":4},{"parent":"FUNC","rule":"YSON","sum":762},{"parent":"FUNC","rule":"YSONExtractString","sum":6},{"parent":"FUNC","rule":"Yson","sum":601523},{"parent":"FUNC","rule":"aGGREGATE_LIST","sum":13},{"parent":"FUNC","rule":"aGGREGATE_LIST_DISTINCT","sum":4},{"parent":"FUNC","rule":"aGG_LIST","sum":2},{"parent":"FUNC","rule":"aGG_LIST_DISTINCT","sum":10},{"parent":"FUNC","rule":"aSSTRUCT","sum":1},{"parent":"FUNC","rule":"aSTuple","sum":3},{"parent":"FUNC","rule":"aVG","sum":2},{"parent":"FUNC","rule":"abs","sum":1545323},{"parent":"FUNC","rule":"addMember","sum":2503},{"parent":"FUNC","rule":"addTimezone","sum":784},{"parent":"FUNC","rule":"age","sum":2},{"parent":"FUNC","rule":"aggList","sum":268},{"parent":"FUNC","rule":"agg_LIST","sum":76},{"parent":"FUNC","rule":"agg_LIST_DISTINCT","sum":1},{"parent":"FUNC","rule":"agg_List","sum":546},{"parent":"FUNC","rule":"agg_List_distinct","sum":24},{"parent":"FUNC","rule":"agg_list","sum":1278790},{"parent":"FUNC","rule":"agg_list_DISTINCT","sum":2},{"parent":"FUNC","rule":"agg_list_Distinct","sum":1},{"parent":"FUNC","rule":"agg_list_distinct","sum":433891},{"parent":"FUNC","rule":"agg_set","sum":1},{"parent":"FUNC","rule":"agglist","sum":122},{"parent":"FUNC","rule":"agglistdistinct","sum":25},{"parent":"FUNC","rule":"aggr_list","sum":2752},{"parent":"FUNC","rule":"aggr_list_distinct","sum":35},{"parent":"FUNC","rule":"aggr_set","sum":2},{"parent":"FUNC","rule":"aggregATE_LIST","sum":16},{"parent":"FUNC","rule":"aggregateList","sum":373},{"parent":"FUNC","rule":"aggregateListDistinct","sum":33},{"parent":"FUNC","rule":"aggregate_List","sum":993},{"parent":"FUNC","rule":"aggregate_List_Distinct","sum":8},{"parent":"FUNC","rule":"aggregate_List_distinct","sum":10},{"parent":"FUNC","rule":"aggregate_by","sum":370741},{"parent":"FUNC","rule":"aggregate_list","sum":2509693},{"parent":"FUNC","rule":"aggregate_list_","sum":1},{"parent":"FUNC","rule":"aggregate_list_DISTINCT","sum":1760},{"parent":"FUNC","rule":"aggregate_list_Distinct","sum":27},{"parent":"FUNC","rule":"aggregate_list_distinct","sum":932178},{"parent":"FUNC","rule":"aggregatelist","sum":534},{"parent":"FUNC","rule":"aggregatetransforminput","sum":1},{"parent":"FUNC","rule":"aggregationFactory","sum":85},{"parent":"FUNC","rule":"aggregation_factory","sum":9375},{"parent":"FUNC","rule":"aggregationfactory","sum":71},{"parent":"FUNC","rule":"agregate_list_distinct","sum":1},{"parent":"FUNC","rule":"and","sum":7},{"parent":"FUNC","rule":"anyLast","sum":8},{"parent":"FUNC","rule":"argMax","sum":14},{"parent":"FUNC","rule":"arrayElement","sum":1},{"parent":"FUNC","rule":"arrayJoin","sum":10},{"parent":"FUNC","rule":"arrayMax","sum":4},{"parent":"FUNC","rule":"array_agg","sum":5},{"parent":"FUNC","rule":"array_to_string","sum":2},{"parent":"FUNC","rule":"asDIct","sum":1},{"parent":"FUNC","rule":"asDict","sum":3719},{"parent":"FUNC","rule":"asLIST","sum":50},{"parent":"FUNC","rule":"asList","sum":173093},{"parent":"FUNC","rule":"asSet","sum":1949},{"parent":"FUNC","rule":"asStruct","sum":106781},{"parent":"FUNC","rule":"asTUPLE","sum":1},{"parent":"FUNC","rule":"asTagged","sum":2015},{"parent":"FUNC","rule":"asTuple","sum":83815},{"parent":"FUNC","rule":"asVariant","sum":10},{"parent":"FUNC","rule":"as_dict","sum":4},{"parent":"FUNC","rule":"as_list","sum":77},{"parent":"FUNC","rule":"as_struct","sum":122},{"parent":"FUNC","rule":"as_table","sum":30},{"parent":"FUNC","rule":"as_tagged","sum":1},{"parent":"FUNC","rule":"as_tuple","sum":360},{"parent":"FUNC","rule":"asdict","sum":3903},{"parent":"FUNC","rule":"asenum","sum":13},{"parent":"FUNC","rule":"aslist","sum":165329},{"parent":"FUNC","rule":"assessments_integralListReverse","sum":2},{"parent":"FUNC","rule":"asset","sum":1208},{"parent":"FUNC","rule":"asstruct","sum":12857},{"parent":"FUNC","rule":"assumeNotNull","sum":3},{"parent":"FUNC","rule":"astagged","sum":1374},{"parent":"FUNC","rule":"astuple","sum":31282},{"parent":"FUNC","rule":"asvariant","sum":3},{"parent":"FUNC","rule":"atan2","sum":4},{"parent":"FUNC","rule":"avG","sum":56},{"parent":"FUNC","rule":"avg","sum":5965083},{"parent":"FUNC","rule":"avgIf","sum":18733},{"parent":"FUNC","rule":"avg_","sum":1},{"parent":"FUNC","rule":"avg_IF","sum":155},{"parent":"FUNC","rule":"avg_If","sum":129},{"parent":"FUNC","rule":"avg_if","sum":495871},{"parent":"FUNC","rule":"ax","sum":13},{"parent":"FUNC","rule":"bit_or","sum":26835},{"parent":"FUNC","rule":"bool","sum":286},{"parent":"FUNC","rule":"bool_and","sum":65763},{"parent":"FUNC","rule":"bool_or","sum":239951},{"parent":"FUNC","rule":"bool_xor","sum":2},{"parent":"FUNC","rule":"bottom","sum":11156},{"parent":"FUNC","rule":"bottom_by","sum":325871},{"parent":"FUNC","rule":"business_id","sum":1},{"parent":"FUNC","rule":"bytes","sum":2},{"parent":"FUNC","rule":"cOALESCE","sum":5},{"parent":"FUNC","rule":"cOUNT","sum":62},{"parent":"FUNC","rule":"cOUNT_IF","sum":39},{"parent":"FUNC","rule":"cOunt","sum":2},{"parent":"FUNC","rule":"ceil","sum":1},{"parent":"FUNC","rule":"char_LENGTH","sum":2},{"parent":"FUNC","rule":"char_length","sum":18},{"parent":"FUNC","rule":"check_google_id","sum":1},{"parent":"FUNC","rule":"choosemembers","sum":5},{"parent":"FUNC","rule":"client_id","sum":1},{"parent":"FUNC","rule":"cnt","sum":2},{"parent":"FUNC","rule":"coALESCE","sum":14},{"parent":"FUNC","rule":"coUNT","sum":3},{"parent":"FUNC","rule":"coUNt","sum":3},{"parent":"FUNC","rule":"coalESCE","sum":40},{"parent":"FUNC","rule":"coalescE","sum":1},{"parent":"FUNC","rule":"coalesce","sum":24843533},{"parent":"FUNC","rule":"coalescue","sum":2},{"parent":"FUNC","rule":"coalsece","sum":1},{"parent":"FUNC","rule":"combinemembers","sum":5},{"parent":"FUNC","rule":"concat","sum":25},{"parent":"FUNC","rule":"conunt","sum":1},{"parent":"FUNC","rule":"convert_to_360","sum":2},{"parent":"FUNC","rule":"corr","sum":701},{"parent":"FUNC","rule":"correlation","sum":3830},{"parent":"FUNC","rule":"cos","sum":8},{"parent":"FUNC","rule":"couNT","sum":1},{"parent":"FUNC","rule":"couNT_IF","sum":7},{"parent":"FUNC","rule":"counT","sum":24},{"parent":"FUNC","rule":"count","sum":38597076},{"parent":"FUNC","rule":"countDistinct","sum":1},{"parent":"FUNC","rule":"countDistinctEstimate","sum":284728},{"parent":"FUNC","rule":"countIF","sum":8421},{"parent":"FUNC","rule":"countIf","sum":1395469},{"parent":"FUNC","rule":"count_","sum":587},{"parent":"FUNC","rule":"count_IF","sum":33881},{"parent":"FUNC","rule":"count_If","sum":26345},{"parent":"FUNC","rule":"count_distinct_estimate","sum":14},{"parent":"FUNC","rule":"count_if","sum":18886551},{"parent":"FUNC","rule":"countdistinctEstimate","sum":1906},{"parent":"FUNC","rule":"countdistinctestimate","sum":2796},{"parent":"FUNC","rule":"countif","sum":22798},{"parent":"FUNC","rule":"covar","sum":239},{"parent":"FUNC","rule":"covariance","sum":278},{"parent":"FUNC","rule":"covariance_sample","sum":165},{"parent":"FUNC","rule":"cpunt","sum":1},{"parent":"FUNC","rule":"cume_dist","sum":69},{"parent":"FUNC","rule":"currentTzDate","sum":4108},{"parent":"FUNC","rule":"currentTzTimestamp","sum":53},{"parent":"FUNC","rule":"currentUTCDATETIME","sum":19},{"parent":"FUNC","rule":"currentUTCDate","sum":646},{"parent":"FUNC","rule":"currentUTCDateTime","sum":291},{"parent":"FUNC","rule":"currentUTCdate","sum":358},{"parent":"FUNC","rule":"currentUTCdatetime","sum":20},{"parent":"FUNC","rule":"currentUTcdate","sum":1305},{"parent":"FUNC","rule":"currentUtcDate","sum":6074},{"parent":"FUNC","rule":"currentUtcDateTime","sum":13854},{"parent":"FUNC","rule":"currentUtcDatetime","sum":2309},{"parent":"FUNC","rule":"currentUtcTimestamp","sum":197},{"parent":"FUNC","rule":"current_utc_timestamp","sum":2},{"parent":"FUNC","rule":"currenttzdate","sum":419},{"parent":"FUNC","rule":"currenttzdatetime","sum":258},{"parent":"FUNC","rule":"currenttztimestamp","sum":47},{"parent":"FUNC","rule":"currentutcDateTime","sum":3},{"parent":"FUNC","rule":"currentutcdate","sum":117924},{"parent":"FUNC","rule":"currentutcdatetime","sum":57736},{"parent":"FUNC","rule":"currentutctimestamp","sum":48035},{"parent":"FUNC","rule":"d","sum":1},{"parent":"FUNC","rule":"dATE","sum":4},{"parent":"FUNC","rule":"date","sum":413808},{"parent":"FUNC","rule":"date32","sum":11},{"parent":"FUNC","rule":"dateDiff","sum":1},{"parent":"FUNC","rule":"dateNow","sum":2},{"parent":"FUNC","rule":"dateTIME","sum":2},{"parent":"FUNC","rule":"dateTime","sum":10},{"parent":"FUNC","rule":"date_add","sum":8},{"parent":"FUNC","rule":"date_format","sum":2},{"parent":"FUNC","rule":"date_from_ts","sum":1},{"parent":"FUNC","rule":"date_sub","sum":2},{"parent":"FUNC","rule":"dateadd","sum":1},{"parent":"FUNC","rule":"datetime","sum":12284},{"parent":"FUNC","rule":"datetime64","sum":19},{"parent":"FUNC","rule":"decimal","sum":333},{"parent":"FUNC","rule":"dense_RANK","sum":42},{"parent":"FUNC","rule":"dense_rank","sum":45856},{"parent":"FUNC","rule":"dictAggregate","sum":14},{"parent":"FUNC","rule":"dictContains","sum":7},{"parent":"FUNC","rule":"dictGetString","sum":1},{"parent":"FUNC","rule":"dictItems","sum":8154},{"parent":"FUNC","rule":"dictKeys","sum":1175},{"parent":"FUNC","rule":"dictLength","sum":104},{"parent":"FUNC","rule":"dictLookUp","sum":9405},{"parent":"FUNC","rule":"dictLookup","sum":671},{"parent":"FUNC","rule":"dictPayloads","sum":90},{"parent":"FUNC","rule":"dict_keys","sum":8709},{"parent":"FUNC","rule":"dictcontains","sum":349},{"parent":"FUNC","rule":"dictcreate","sum":2},{"parent":"FUNC","rule":"dicthasitems","sum":24},{"parent":"FUNC","rule":"dictitems","sum":2383},{"parent":"FUNC","rule":"dictkeys","sum":888},{"parent":"FUNC","rule":"dictlength","sum":6542},{"parent":"FUNC","rule":"dictlookup","sum":1561},{"parent":"FUNC","rule":"dictpayloads","sum":113},{"parent":"FUNC","rule":"disctinct","sum":2},{"parent":"FUNC","rule":"dol_show1","sum":1},{"parent":"FUNC","rule":"double","sum":134},{"parent":"FUNC","rule":"dynumber","sum":12},{"parent":"FUNC","rule":"each","sum":1},{"parent":"FUNC","rule":"empty","sum":3},{"parent":"FUNC","rule":"endsWith","sum":2155},{"parent":"FUNC","rule":"endswith","sum":30845},{"parent":"FUNC","rule":"ensure","sum":404947},{"parent":"FUNC","rule":"ensuretype","sum":710},{"parent":"FUNC","rule":"evaluateCode","sum":59},{"parent":"FUNC","rule":"evaluateExpr","sum":280},{"parent":"FUNC","rule":"expandstruct","sum":20},{"parent":"FUNC","rule":"f","sum":1},{"parent":"FUNC","rule":"filecontent","sum":603},{"parent":"FUNC","rule":"filepath","sum":990},{"parent":"FUNC","rule":"filter","sum":2},{"parent":"FUNC","rule":"find","sum":4031435},{"parent":"FUNC","rule":"first_VALUE","sum":19},{"parent":"FUNC","rule":"first_route_timestamp","sum":1},{"parent":"FUNC","rule":"first_value","sum":1150137},{"parent":"FUNC","rule":"flatten","sum":1},{"parent":"FUNC","rule":"float","sum":23057},{"parent":"FUNC","rule":"floor","sum":1},{"parent":"FUNC","rule":"foo","sum":1},{"parent":"FUNC","rule":"forceremovemember","sum":373},{"parent":"FUNC","rule":"format","sum":1},{"parent":"FUNC","rule":"formatType","sum":8},{"parent":"FUNC","rule":"formattype","sum":143},{"parent":"FUNC","rule":"fromBytes","sum":12},{"parent":"FUNC","rule":"fromPg","sum":115},{"parent":"FUNC","rule":"fromUnixTimestamp64Micro","sum":1},{"parent":"FUNC","rule":"from_bytes","sum":2},{"parent":"FUNC","rule":"frombytes","sum":51},{"parent":"FUNC","rule":"frompg","sum":122},{"parent":"FUNC","rule":"gatherMembers","sum":67},{"parent":"FUNC","rule":"gathermembers","sum":7},{"parent":"FUNC","rule":"get_auto_label","sum":1},{"parent":"FUNC","rule":"get_html","sum":1},{"parent":"FUNC","rule":"get_is_in_collection_feature","sum":1},{"parent":"FUNC","rule":"get_metrika_bro","sum":1},{"parent":"FUNC","rule":"get_pay_processing","sum":2},{"parent":"FUNC","rule":"get_post_profiles","sum":1},{"parent":"FUNC","rule":"get_rewrite_prompt","sum":1},{"parent":"FUNC","rule":"get_support_line","sum":1},{"parent":"FUNC","rule":"get_test_id","sum":7},{"parent":"FUNC","rule":"getdate","sum":2},{"parent":"FUNC","rule":"greatest","sum":318861},{"parent":"FUNC","rule":"groupArray","sum":4},{"parent":"FUNC","rule":"groupUniqArray","sum":2},{"parent":"FUNC","rule":"grouping","sum":17523},{"parent":"FUNC","rule":"hISTOGRAM","sum":2},{"parent":"FUNC","rule":"has","sum":16},{"parent":"FUNC","rule":"histOGRAM","sum":4},{"parent":"FUNC","rule":"histograM","sum":356},{"parent":"FUNC","rule":"histogram","sum":52833},{"parent":"FUNC","rule":"histogramcdf","sum":84},{"parent":"FUNC","rule":"hll","sum":82171},{"parent":"FUNC","rule":"iF","sum":2678},{"parent":"FUNC","rule":"iNtErVaL","sum":1},{"parent":"FUNC","rule":"if","sum":42963453},{"parent":"FUNC","rule":"ifNull","sum":6},{"parent":"FUNC","rule":"in","sum":10},{"parent":"FUNC","rule":"indexOf","sum":12},{"parent":"FUNC","rule":"instanceof","sum":55},{"parent":"FUNC","rule":"instr","sum":1},{"parent":"FUNC","rule":"int","sum":31625},{"parent":"FUNC","rule":"int32","sum":2},{"parent":"FUNC","rule":"int64","sum":19},{"parent":"FUNC","rule":"int8","sum":2},{"parent":"FUNC","rule":"intervaL","sum":9012},{"parent":"FUNC","rule":"interval","sum":1785040},{"parent":"FUNC","rule":"interval64","sum":7},{"parent":"FUNC","rule":"isNull","sum":7},{"parent":"FUNC","rule":"is_allowed_in_kz","sum":2},{"parent":"FUNC","rule":"is_valid_intent","sum":4},{"parent":"FUNC","rule":"is_valid_organic","sum":4},{"parent":"FUNC","rule":"istLast","sum":1},{"parent":"FUNC","rule":"isum","sum":6},{"parent":"FUNC","rule":"joinTableRow","sum":5},{"parent":"FUNC","rule":"jointablerow","sum":215},{"parent":"FUNC","rule":"json","sum":5551},{"parent":"FUNC","rule":"json_extract","sum":3},{"parent":"FUNC","rule":"json_object_agg","sum":1},{"parent":"FUNC","rule":"jsondocument","sum":6},{"parent":"FUNC","rule":"just","sum":239226},{"parent":"FUNC","rule":"lAG","sum":2309},{"parent":"FUNC","rule":"lEAD","sum":6792},{"parent":"FUNC","rule":"lEN","sum":30},{"parent":"FUNC","rule":"lINEARHISTOGRAM","sum":115},{"parent":"FUNC","rule":"lISTlENGTH","sum":2},{"parent":"FUNC","rule":"lISTlength","sum":1},{"parent":"FUNC","rule":"lag","sum":1010915},{"parent":"FUNC","rule":"last_VALUE","sum":14},{"parent":"FUNC","rule":"last_value","sum":1134965},{"parent":"FUNC","rule":"lead","sum":922115},{"parent":"FUNC","rule":"least","sum":367295},{"parent":"FUNC","rule":"len","sum":712028},{"parent":"FUNC","rule":"lenGTH","sum":1},{"parent":"FUNC","rule":"lenght","sum":1},{"parent":"FUNC","rule":"lengtH","sum":2},{"parent":"FUNC","rule":"length","sum":2513539},{"parent":"FUNC","rule":"like","sum":4},{"parent":"FUNC","rule":"likely","sum":16421},{"parent":"FUNC","rule":"linearHISTOGRAM","sum":10},{"parent":"FUNC","rule":"linearHistogram","sum":9},{"parent":"FUNC","rule":"linearhistogram","sum":167},{"parent":"FUNC","rule":"linearhistogramcdf","sum":20},{"parent":"FUNC","rule":"listALL","sum":3},{"parent":"FUNC","rule":"listAVG","sum":831},{"parent":"FUNC","rule":"listAggregateUnique","sum":1},{"parent":"FUNC","rule":"listAll","sum":86},{"parent":"FUNC","rule":"listAny","sum":116},{"parent":"FUNC","rule":"listAvg","sum":96},{"parent":"FUNC","rule":"listCollect","sum":378},{"parent":"FUNC","rule":"listConcat","sum":11135},{"parent":"FUNC","rule":"listEnumerate","sum":150},{"parent":"FUNC","rule":"listExtend","sum":6421},{"parent":"FUNC","rule":"listExtract","sum":24},{"parent":"FUNC","rule":"listFilter","sum":38539},{"parent":"FUNC","rule":"listFlatten","sum":292},{"parent":"FUNC","rule":"listFold","sum":294},{"parent":"FUNC","rule":"listFromRange","sum":791},{"parent":"FUNC","rule":"listHAs","sum":52},{"parent":"FUNC","rule":"listHas","sum":40660},{"parent":"FUNC","rule":"listHasItems","sum":3198},{"parent":"FUNC","rule":"listHead","sum":2174},{"parent":"FUNC","rule":"listIndexOf","sum":15},{"parent":"FUNC","rule":"listLENGTH","sum":231},{"parent":"FUNC","rule":"listLast","sum":1009},{"parent":"FUNC","rule":"listLength","sum":29071},{"parent":"FUNC","rule":"listMAX","sum":1},{"parent":"FUNC","rule":"listMIN","sum":1},{"parent":"FUNC","rule":"listMap","sum":52384},{"parent":"FUNC","rule":"listMax","sum":804},{"parent":"FUNC","rule":"listMin","sum":172},{"parent":"FUNC","rule":"listNotNull","sum":274},{"parent":"FUNC","rule":"listReverse","sum":3733},{"parent":"FUNC","rule":"listSkip","sum":21},{"parent":"FUNC","rule":"listSort","sum":21769},{"parent":"FUNC","rule":"listSortAsc","sum":2},{"parent":"FUNC","rule":"listSortDesc","sum":193},{"parent":"FUNC","rule":"listSum","sum":1467},{"parent":"FUNC","rule":"listTake","sum":784},{"parent":"FUNC","rule":"listTopSort","sum":18},{"parent":"FUNC","rule":"listUniq","sum":10565},{"parent":"FUNC","rule":"listUniqStable","sum":1},{"parent":"FUNC","rule":"listZip","sum":1226},{"parent":"FUNC","rule":"listZipAll","sum":1580},{"parent":"FUNC","rule":"list_Length","sum":1},{"parent":"FUNC","rule":"list_MAX","sum":1},{"parent":"FUNC","rule":"list_agg","sum":2},{"parent":"FUNC","rule":"list_avg","sum":25},{"parent":"FUNC","rule":"list_concat","sum":254},{"parent":"FUNC","rule":"list_filter","sum":2},{"parent":"FUNC","rule":"list_flatten","sum":15},{"parent":"FUNC","rule":"list_has","sum":6090},{"parent":"FUNC","rule":"list_has_items","sum":2},{"parent":"FUNC","rule":"list_head","sum":16},{"parent":"FUNC","rule":"list_length","sum":866},{"parent":"FUNC","rule":"list_map","sum":3},{"parent":"FUNC","rule":"list_max","sum":3},{"parent":"FUNC","rule":"list_min","sum":3},{"parent":"FUNC","rule":"list_not_null","sum":1},{"parent":"FUNC","rule":"list_sort","sum":144},{"parent":"FUNC","rule":"list_uniq","sum":1},{"parent":"FUNC","rule":"list_zip","sum":36},{"parent":"FUNC","rule":"listaggregate","sum":87},{"parent":"FUNC","rule":"listall","sum":13166},{"parent":"FUNC","rule":"listany","sum":15097},{"parent":"FUNC","rule":"listavg","sum":11305},{"parent":"FUNC","rule":"listcollect","sum":483},{"parent":"FUNC","rule":"listconcat","sum":19554},{"parent":"FUNC","rule":"listcreate","sum":10},{"parent":"FUNC","rule":"listenumerate","sum":2065},{"parent":"FUNC","rule":"listextend","sum":3758},{"parent":"FUNC","rule":"listextendstrict","sum":61},{"parent":"FUNC","rule":"listextract","sum":1904},{"parent":"FUNC","rule":"listfilter","sum":103472},{"parent":"FUNC","rule":"listflatmap","sum":7081},{"parent":"FUNC","rule":"listflatten","sum":21498},{"parent":"FUNC","rule":"listfold","sum":14},{"parent":"FUNC","rule":"listfold1map","sum":60},{"parent":"FUNC","rule":"listfromRange","sum":15},{"parent":"FUNC","rule":"listfromrange","sum":13893},{"parent":"FUNC","rule":"listfromtuple","sum":58},{"parent":"FUNC","rule":"listhas","sum":171277},{"parent":"FUNC","rule":"listhasItems","sum":34},{"parent":"FUNC","rule":"listhasitems","sum":10455},{"parent":"FUNC","rule":"listhead","sum":18559},{"parent":"FUNC","rule":"listindexof","sum":1209},{"parent":"FUNC","rule":"listlast","sum":3107},{"parent":"FUNC","rule":"listlength","sum":342025},{"parent":"FUNC","rule":"listmap","sum":524953},{"parent":"FUNC","rule":"listmax","sum":3903},{"parent":"FUNC","rule":"listmin","sum":2675},{"parent":"FUNC","rule":"listnotNull","sum":1},{"parent":"FUNC","rule":"listnotnull","sum":12807},{"parent":"FUNC","rule":"listreplicate","sum":49},{"parent":"FUNC","rule":"listreverse","sum":2311},{"parent":"FUNC","rule":"listskip","sum":1193},{"parent":"FUNC","rule":"listsort","sum":56164},{"parent":"FUNC","rule":"listsortDesc","sum":1},{"parent":"FUNC","rule":"listsortasc","sum":377},{"parent":"FUNC","rule":"listsortdesc","sum":3978},{"parent":"FUNC","rule":"listsum","sum":3366},{"parent":"FUNC","rule":"listtake","sum":15952},{"parent":"FUNC","rule":"listtop","sum":68},{"parent":"FUNC","rule":"listunionall","sum":8},{"parent":"FUNC","rule":"listuniq","sum":24918},{"parent":"FUNC","rule":"listuniqstable","sum":94},{"parent":"FUNC","rule":"listzip","sum":16490},{"parent":"FUNC","rule":"listzipALL","sum":2},{"parent":"FUNC","rule":"listzipAll","sum":11},{"parent":"FUNC","rule":"listzipall","sum":100},{"parent":"FUNC","rule":"log","sum":2},{"parent":"FUNC","rule":"logarithmicHistogram","sum":1},{"parent":"FUNC","rule":"logarithmichistogram","sum":6},{"parent":"FUNC","rule":"loghistogram","sum":1},{"parent":"FUNC","rule":"lower","sum":3},{"parent":"FUNC","rule":"mAX","sum":15},{"parent":"FUNC","rule":"mAX_BY","sum":128},{"parent":"FUNC","rule":"mIN","sum":2},{"parent":"FUNC","rule":"mIN_by","sum":10},{"parent":"FUNC","rule":"maX","sum":5},{"parent":"FUNC","rule":"maX_BY","sum":1},{"parent":"FUNC","rule":"map","sum":2},{"parent":"FUNC","rule":"max","sum":25061450},{"parent":"FUNC","rule":"maxBy","sum":1},{"parent":"FUNC","rule":"maxOf","sum":3433},{"parent":"FUNC","rule":"max_","sum":1},{"parent":"FUNC","rule":"max_BY","sum":2350},{"parent":"FUNC","rule":"max_By","sum":4552},{"parent":"FUNC","rule":"max_OF","sum":8},{"parent":"FUNC","rule":"max_Of","sum":30},{"parent":"FUNC","rule":"max_by","sum":28896698},{"parent":"FUNC","rule":"max_if","sum":3},{"parent":"FUNC","rule":"max_of","sum":1287338},{"parent":"FUNC","rule":"maxby","sum":5161},{"parent":"FUNC","rule":"maxof","sum":849},{"parent":"FUNC","rule":"md5int","sum":1},{"parent":"FUNC","rule":"median","sum":377952},{"parent":"FUNC","rule":"metric_exp","sum":1},{"parent":"FUNC","rule":"min","sum":10208917},{"parent":"FUNC","rule":"minOf","sum":12},{"parent":"FUNC","rule":"min_BY","sum":8639},{"parent":"FUNC","rule":"min_By","sum":6},{"parent":"FUNC","rule":"min_OF","sum":9},{"parent":"FUNC","rule":"min_Of","sum":337},{"parent":"FUNC","rule":"min_by","sum":2325677},{"parent":"FUNC","rule":"min_if","sum":10},{"parent":"FUNC","rule":"min_of","sum":577834},{"parent":"FUNC","rule":"minby","sum":1},{"parent":"FUNC","rule":"minof","sum":94},{"parent":"FUNC","rule":"mode","sum":117549},{"parent":"FUNC","rule":"multiIf","sum":2},{"parent":"FUNC","rule":"multi_aggregate_by","sum":115834},{"parent":"FUNC","rule":"nanvl","sum":129203},{"parent":"FUNC","rule":"notEmpty","sum":2},{"parent":"FUNC","rule":"nothing","sum":12757},{"parent":"FUNC","rule":"now","sum":16},{"parent":"FUNC","rule":"nth_value","sum":17},{"parent":"FUNC","rule":"ntile","sum":337},{"parent":"FUNC","rule":"nvL","sum":61},{"parent":"FUNC","rule":"nvl","sum":14001743},{"parent":"FUNC","rule":"on","sum":1},{"parent":"FUNC","rule":"optionaltype","sum":161},{"parent":"FUNC","rule":"or","sum":3},{"parent":"FUNC","rule":"order_nr","sum":1},{"parent":"FUNC","rule":"p25","sum":1},{"parent":"FUNC","rule":"p75","sum":1},{"parent":"FUNC","rule":"pERCENTILE","sum":11},{"parent":"FUNC","rule":"parseFile","sum":138},{"parent":"FUNC","rule":"parseForErrors","sum":32},{"parent":"FUNC","rule":"parsefile","sum":11204},{"parent":"FUNC","rule":"percent_rank","sum":2159},{"parent":"FUNC","rule":"percentile","sum":3344572},{"parent":"FUNC","rule":"pgInt2","sum":2},{"parent":"FUNC","rule":"pgarray","sum":2},{"parent":"FUNC","rule":"pgbpchar","sum":2},{"parent":"FUNC","rule":"pgbytea","sum":6},{"parent":"FUNC","rule":"pgcast","sum":39},{"parent":"FUNC","rule":"pgdate","sum":94},{"parent":"FUNC","rule":"pgfloat4","sum":5},{"parent":"FUNC","rule":"pgfloat8","sum":3},{"parent":"FUNC","rule":"pgint2","sum":9},{"parent":"FUNC","rule":"pginterval","sum":176},{"parent":"FUNC","rule":"pgjson","sum":10},{"parent":"FUNC","rule":"pgname","sum":4},{"parent":"FUNC","rule":"pgnumeric","sum":4},{"parent":"FUNC","rule":"pgoidvector","sum":1},{"parent":"FUNC","rule":"pgtext","sum":9},{"parent":"FUNC","rule":"pgtimestamp","sum":7},{"parent":"FUNC","rule":"pgtimestamptz","sum":4},{"parent":"FUNC","rule":"pickle","sum":480},{"parent":"FUNC","rule":"pow","sum":8},{"parent":"FUNC","rule":"power","sum":3},{"parent":"FUNC","rule":"quantile","sum":1},{"parent":"FUNC","rule":"quantileExact","sum":1},{"parent":"FUNC","rule":"rFIND","sum":3},{"parent":"FUNC","rule":"rand","sum":3},{"parent":"FUNC","rule":"random","sum":258306},{"parent":"FUNC","rule":"randomNumber","sum":8},{"parent":"FUNC","rule":"randomUuid","sum":145},{"parent":"FUNC","rule":"random_number","sum":11},{"parent":"FUNC","rule":"randomnumber","sum":479},{"parent":"FUNC","rule":"randomuuid","sum":37},{"parent":"FUNC","rule":"range","sum":97},{"parent":"FUNC","rule":"rank","sum":222787},{"parent":"FUNC","rule":"regex_full_match","sum":1},{"parent":"FUNC","rule":"regex_replace_first","sum":1},{"parent":"FUNC","rule":"regionIn","sum":2},{"parent":"FUNC","rule":"removeMember","sum":160},{"parent":"FUNC","rule":"removemember","sum":18},{"parent":"FUNC","rule":"removemembers","sum":77},{"parent":"FUNC","rule":"removetimezone","sum":5},{"parent":"FUNC","rule":"renamemembers","sum":4},{"parent":"FUNC","rule":"replace","sum":1},{"parent":"FUNC","rule":"replaceRegexpAll","sum":2},{"parent":"FUNC","rule":"rfind","sum":127805},{"parent":"FUNC","rule":"round","sum":27},{"parent":"FUNC","rule":"row_NUMBER","sum":5},{"parent":"FUNC","rule":"row_Number","sum":3},{"parent":"FUNC","rule":"row_number","sum":2158139},{"parent":"FUNC","rule":"rownumber","sum":370},{"parent":"FUNC","rule":"sUBSTRING","sum":3},{"parent":"FUNC","rule":"sUM","sum":440},{"parent":"FUNC","rule":"sUM_IF","sum":18},{"parent":"FUNC","rule":"sUm","sum":8},{"parent":"FUNC","rule":"sessionWindow","sum":4},{"parent":"FUNC","rule":"session_start","sum":3},{"parent":"FUNC","rule":"sessionwindow","sum":166},{"parent":"FUNC","rule":"setDifference","sum":59},{"parent":"FUNC","rule":"setIntersection","sum":13},{"parent":"FUNC","rule":"setIsDisjoint","sum":1},{"parent":"FUNC","rule":"setUnion","sum":172},{"parent":"FUNC","rule":"setbit","sum":20},{"parent":"FUNC","rule":"setdifference","sum":162},{"parent":"FUNC","rule":"setincludes","sum":20},{"parent":"FUNC","rule":"setintersection","sum":118},{"parent":"FUNC","rule":"setisdisjoint","sum":1114},{"parent":"FUNC","rule":"setsymmetricdifference","sum":204},{"parent":"FUNC","rule":"setunion","sum":1780},{"parent":"FUNC","rule":"sign","sum":1},{"parent":"FUNC","rule":"sin","sum":16},{"parent":"FUNC","rule":"sipHash64","sum":2},{"parent":"FUNC","rule":"size","sum":1},{"parent":"FUNC","rule":"somE","sum":2},{"parent":"FUNC","rule":"some","sum":20260898},{"parent":"FUNC","rule":"somr","sum":1},{"parent":"FUNC","rule":"splitByChar","sum":1},{"parent":"FUNC","rule":"splitByString","sum":6},{"parent":"FUNC","rule":"spreadmembers","sum":3},{"parent":"FUNC","rule":"sqrt","sum":11},{"parent":"FUNC","rule":"ssubstring","sum":2},{"parent":"FUNC","rule":"stablepickle","sum":30},{"parent":"FUNC","rule":"startsWith","sum":201462},{"parent":"FUNC","rule":"starts_with","sum":11},{"parent":"FUNC","rule":"startswith","sum":21778},{"parent":"FUNC","rule":"staticmap","sum":23},{"parent":"FUNC","rule":"staticzip","sum":1},{"parent":"FUNC","rule":"std_dev","sum":4},{"parent":"FUNC","rule":"stddev","sum":612665},{"parent":"FUNC","rule":"stddevPop","sum":11},{"parent":"FUNC","rule":"stddev_pop","sum":108},{"parent":"FUNC","rule":"stddev_population","sum":88},{"parent":"FUNC","rule":"stddev_samp","sum":27},{"parent":"FUNC","rule":"stddev_sample","sum":895},{"parent":"FUNC","rule":"stddevpop","sum":19},{"parent":"FUNC","rule":"stddevsamp","sum":5},{"parent":"FUNC","rule":"str","sum":51},{"parent":"FUNC","rule":"strfdate","sum":164},{"parent":"FUNC","rule":"string","sum":77},{"parent":"FUNC","rule":"string_agg","sum":1},{"parent":"FUNC","rule":"string_split","sum":1},{"parent":"FUNC","rule":"string_to_array","sum":3},{"parent":"FUNC","rule":"string_to_features","sum":1},{"parent":"FUNC","rule":"structMembers","sum":7},{"parent":"FUNC","rule":"structUnion","sum":41},{"parent":"FUNC","rule":"structdifference","sum":2},{"parent":"FUNC","rule":"structunion","sum":7},{"parent":"FUNC","rule":"suM","sum":176},{"parent":"FUNC","rule":"suM_if","sum":16},{"parent":"FUNC","rule":"subDate","sum":1},{"parent":"FUNC","rule":"subSTRING","sum":1},{"parent":"FUNC","rule":"subString","sum":573},{"parent":"FUNC","rule":"subqueryMergeFor","sum":21},{"parent":"FUNC","rule":"subqueryUnionMergeFor","sum":4450},{"parent":"FUNC","rule":"subquerymergefor","sum":1863},{"parent":"FUNC","rule":"subsTRING","sum":2},{"parent":"FUNC","rule":"subsrting","sum":3},{"parent":"FUNC","rule":"substing","sum":2},{"parent":"FUNC","rule":"substr","sum":172},{"parent":"FUNC","rule":"substring","sum":16470645},{"parent":"FUNC","rule":"substringUTF8","sum":1},{"parent":"FUNC","rule":"substring_index","sum":1},{"parent":"FUNC","rule":"sum","sum":45713563},{"parent":"FUNC","rule":"sumIF","sum":84},{"parent":"FUNC","rule":"sumIf","sum":96775},{"parent":"FUNC","rule":"sum_","sum":356},{"parent":"FUNC","rule":"sum_IF","sum":19423},{"parent":"FUNC","rule":"sum_If","sum":12653},{"parent":"FUNC","rule":"sum_if","sum":4247363},{"parent":"FUNC","rule":"sum_range2","sum":47},{"parent":"FUNC","rule":"sum_recursive_range","sum":1},{"parent":"FUNC","rule":"suma","sum":1},{"parent":"FUNC","rule":"sumif","sum":7586},{"parent":"FUNC","rule":"summ","sum":10},{"parent":"FUNC","rule":"sunstring","sum":2},{"parent":"FUNC","rule":"susbstring","sum":1},{"parent":"FUNC","rule":"tableName","sum":43016},{"parent":"FUNC","rule":"tablePath","sum":1433},{"parent":"FUNC","rule":"tableRecordIndex","sum":19},{"parent":"FUNC","rule":"tableRow","sum":22420},{"parent":"FUNC","rule":"table_name","sum":2928},{"parent":"FUNC","rule":"table_path","sum":46},{"parent":"FUNC","rule":"table_row","sum":354},{"parent":"FUNC","rule":"tablename","sum":165184},{"parent":"FUNC","rule":"tablepath","sum":33063},{"parent":"FUNC","rule":"tablerecordindex","sum":111},{"parent":"FUNC","rule":"tablerow","sum":42403},{"parent":"FUNC","rule":"tablerows","sum":5},{"parent":"FUNC","rule":"testBit","sum":34},{"parent":"FUNC","rule":"testbit","sum":38269},{"parent":"FUNC","rule":"testid","sum":2},{"parent":"FUNC","rule":"timestamp","sum":9963},{"parent":"FUNC","rule":"timestamp64","sum":7},{"parent":"FUNC","rule":"timezone","sum":2},{"parent":"FUNC","rule":"toBytes","sum":24336},{"parent":"FUNC","rule":"toDate","sum":57},{"parent":"FUNC","rule":"toDate32","sum":10},{"parent":"FUNC","rule":"toDateTime","sum":21},{"parent":"FUNC","rule":"toDateTimeOrNull","sum":3},{"parent":"FUNC","rule":"toDayOfWeek","sum":2},{"parent":"FUNC","rule":"toDict","sum":95252},{"parent":"FUNC","rule":"toFloat32","sum":4},{"parent":"FUNC","rule":"toInt128","sum":3},{"parent":"FUNC","rule":"toIntervalMonth","sum":2},{"parent":"FUNC","rule":"toLastDayOfMonth","sum":1},{"parent":"FUNC","rule":"toMonth","sum":1},{"parent":"FUNC","rule":"toMultiDict","sum":264},{"parent":"FUNC","rule":"toQuarter","sum":1},{"parent":"FUNC","rule":"toSet","sum":417292},{"parent":"FUNC","rule":"toStartOfMonth","sum":15},{"parent":"FUNC","rule":"toStartOfQuarter","sum":1},{"parent":"FUNC","rule":"toStartOfWeek","sum":9},{"parent":"FUNC","rule":"toString","sum":46},{"parent":"FUNC","rule":"toUInt64","sum":5},{"parent":"FUNC","rule":"toUnixTimestamp","sum":2},{"parent":"FUNC","rule":"toUnixTimestamp64Micro","sum":2},{"parent":"FUNC","rule":"toYear","sum":9},{"parent":"FUNC","rule":"to_bytes","sum":36},{"parent":"FUNC","rule":"to_char","sum":2},{"parent":"FUNC","rule":"to_date","sum":4},{"parent":"FUNC","rule":"to_dict","sum":65},{"parent":"FUNC","rule":"tobytes","sum":154},{"parent":"FUNC","rule":"today","sum":1},{"parent":"FUNC","rule":"todict","sum":96532},{"parent":"FUNC","rule":"tomultidict","sum":1132},{"parent":"FUNC","rule":"top","sum":52785},{"parent":"FUNC","rule":"topFreq","sum":90},{"parent":"FUNC","rule":"top_BY","sum":2},{"parent":"FUNC","rule":"top_by","sum":116981},{"parent":"FUNC","rule":"top_freq","sum":113},{"parent":"FUNC","rule":"topfreq","sum":23256},{"parent":"FUNC","rule":"topg","sum":2},{"parent":"FUNC","rule":"toset","sum":37979},{"parent":"FUNC","rule":"trunc","sum":13},{"parent":"FUNC","rule":"truncate","sum":2},{"parent":"FUNC","rule":"tryMember","sum":527},{"parent":"FUNC","rule":"trymember","sum":9922},{"parent":"FUNC","rule":"tupleElement","sum":2},{"parent":"FUNC","rule":"typeOf","sum":38},{"parent":"FUNC","rule":"typeof","sum":417},{"parent":"FUNC","rule":"tzdate","sum":8},{"parent":"FUNC","rule":"tzdate32","sum":7},{"parent":"FUNC","rule":"tzdatetime","sum":44},{"parent":"FUNC","rule":"tzdatetime64","sum":7},{"parent":"FUNC","rule":"tztimestamp","sum":35},{"parent":"FUNC","rule":"tztimestamp64","sum":7},{"parent":"FUNC","rule":"uNWRAP","sum":88},{"parent":"FUNC","rule":"udaf","sum":18138},{"parent":"FUNC","rule":"uint32","sum":13393},{"parent":"FUNC","rule":"uint64","sum":30},{"parent":"FUNC","rule":"uint8","sum":2},{"parent":"FUNC","rule":"unWRap","sum":3},{"parent":"FUNC","rule":"unWrap","sum":5},{"parent":"FUNC","rule":"uniq","sum":9},{"parent":"FUNC","rule":"uniqExact","sum":10},{"parent":"FUNC","rule":"unique","sum":1},{"parent":"FUNC","rule":"unique_pairs","sum":1},{"parent":"FUNC","rule":"unnest","sum":3},{"parent":"FUNC","rule":"untag","sum":1569},{"parent":"FUNC","rule":"unwrap","sum":26989251},{"parent":"FUNC","rule":"unwraped","sum":1},{"parent":"FUNC","rule":"upper","sum":2},{"parent":"FUNC","rule":"using","sum":12},{"parent":"FUNC","rule":"utc_action_created_dttm","sum":1},{"parent":"FUNC","rule":"utf8","sum":2041},{"parent":"FUNC","rule":"uuid","sum":25},{"parent":"FUNC","rule":"values","sum":6},{"parent":"FUNC","rule":"varPop","sum":75},{"parent":"FUNC","rule":"varSamp","sum":85},{"parent":"FUNC","rule":"var_samp","sum":43},{"parent":"FUNC","rule":"variance","sum":66920},{"parent":"FUNC","rule":"variance_population","sum":4},{"parent":"FUNC","rule":"variance_sample","sum":394},{"parent":"FUNC","rule":"varpop","sum":19},{"parent":"FUNC","rule":"version","sum":16},{"parent":"FUNC","rule":"visitParamExtractFloat","sum":4},{"parent":"FUNC","rule":"vl","sum":2},{"parent":"FUNC","rule":"way","sum":38547},{"parent":"FUNC","rule":"weakField","sum":1077},{"parent":"FUNC","rule":"weakfield","sum":967371},{"parent":"FUNC","rule":"windowFunnel","sum":1},{"parent":"FUNC","rule":"worked_rules","sum":3},{"parent":"FUNC","rule":"wrap","sum":1},{"parent":"FUNC","rule":"yesterday","sum":4},{"parent":"FUNC","rule":"yson","sum":42},{"parent":"FUNC","rule":"ytListTables","sum":1},{"parent":"MODULE","rule":"Compress","sum":84392},{"parent":"MODULE","rule":"DATETIME","sum":1138},{"parent":"MODULE","rule":"DATEtime","sum":2},{"parent":"MODULE","rule":"DAteTime","sum":3313},{"parent":"MODULE","rule":"DAtetime","sum":7},{"parent":"MODULE","rule":"DaTETIME","sum":342},{"parent":"MODULE","rule":"DaTeTime","sum":84},{"parent":"MODULE","rule":"DateTIME","sum":725},{"parent":"MODULE","rule":"DateTIme","sum":4270},{"parent":"MODULE","rule":"DateTime","sum":274712777},{"parent":"MODULE","rule":"DatetIme","sum":367},{"parent":"MODULE","rule":"Datetime","sum":7049867},{"parent":"MODULE","rule":"Decompress","sum":24116},{"parent":"MODULE","rule":"Digest","sum":7633296},{"parent":"MODULE","rule":"HyperScan","sum":2366},{"parent":"MODULE","rule":"Hyperscan","sum":388855},{"parent":"MODULE","rule":"Ip","sum":1388948},{"parent":"MODULE","rule":"JSON","sum":27043},{"parent":"MODULE","rule":"JSon","sum":2},{"parent":"MODULE","rule":"Json","sum":1037994},{"parent":"MODULE","rule":"MATH","sum":4},{"parent":"MODULE","rule":"Math","sum":44475654},{"parent":"MODULE","rule":"PG","sum":198},{"parent":"MODULE","rule":"PIRE","sum":29},{"parent":"MODULE","rule":"Pg","sum":4820},{"parent":"MODULE","rule":"Pire","sum":1912006},{"parent":"MODULE","rule":"Protobuf","sum":266369},{"parent":"MODULE","rule":"RE2","sum":5040},{"parent":"MODULE","rule":"Re2","sum":12119791},{"parent":"MODULE","rule":"STRING","sum":6},{"parent":"MODULE","rule":"String","sum":94884988},{"parent":"MODULE","rule":"TryDecompress","sum":4663},{"parent":"MODULE","rule":"URL","sum":2},{"parent":"MODULE","rule":"Unicode","sum":4876299},{"parent":"MODULE","rule":"Url","sum":23432845},{"parent":"MODULE","rule":"YSON","sum":25},{"parent":"MODULE","rule":"YSon","sum":10},{"parent":"MODULE","rule":"Yson","sum":393818003},{"parent":"MODULE","rule":"dateTime","sum":458},{"parent":"MODULE","rule":"datetime","sum":14231},{"parent":"MODULE","rule":"digest","sum":1},{"parent":"MODULE","rule":"hyperscan","sum":1},{"parent":"MODULE","rule":"json","sum":8},{"parent":"MODULE","rule":"math","sum":9},{"parent":"MODULE","rule":"pg","sum":1716},{"parent":"MODULE","rule":"pire","sum":36},{"parent":"MODULE","rule":"re2","sum":3094},{"parent":"MODULE","rule":"string","sum":21},{"parent":"MODULE","rule":"url","sum":1},{"parent":"MODULE","rule":"ySoN","sum":1},{"parent":"MODULE","rule":"yson","sum":54},{"parent":"MODULE_FUNC","rule":"Compress::BZip2","sum":2},{"parent":"MODULE_FUNC","rule":"Compress::BlockCodec","sum":6},{"parent":"MODULE_FUNC","rule":"Compress::Brotli","sum":160},{"parent":"MODULE_FUNC","rule":"Compress::Gzip","sum":83425},{"parent":"MODULE_FUNC","rule":"Compress::Lz4","sum":605},{"parent":"MODULE_FUNC","rule":"Compress::Lzma","sum":4},{"parent":"MODULE_FUNC","rule":"Compress::Snappy","sum":7},{"parent":"MODULE_FUNC","rule":"Compress::Zlib","sum":32},{"parent":"MODULE_FUNC","rule":"Compress::Zstd","sum":151},{"parent":"MODULE_FUNC","rule":"DATETIME::Format","sum":10},{"parent":"MODULE_FUNC","rule":"DATETIME::FromMilliseconds","sum":50},{"parent":"MODULE_FUNC","rule":"DATETIME::FromSeconds","sum":1},{"parent":"MODULE_FUNC","rule":"DATETIME::GetYear","sum":18},{"parent":"MODULE_FUNC","rule":"DATETIME::MakeDate","sum":744},{"parent":"MODULE_FUNC","rule":"DATETIME::MakeDatetime","sum":292},{"parent":"MODULE_FUNC","rule":"DATETIME::Parse","sum":9},{"parent":"MODULE_FUNC","rule":"DATETIME::StartOfWeek","sum":14},{"parent":"MODULE_FUNC","rule":"DATEtime::GetMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DATEtime::GetYear","sum":1},{"parent":"MODULE_FUNC","rule":"DAteTime::FromSeconds","sum":1},{"parent":"MODULE_FUNC","rule":"DAteTime::GetDayOfMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DAteTime::MakeDate","sum":562},{"parent":"MODULE_FUNC","rule":"DAteTime::Parse","sum":150},{"parent":"MODULE_FUNC","rule":"DAteTime::StartOfMonth","sum":2590},{"parent":"MODULE_FUNC","rule":"DAteTime::StartOfWeek","sum":1},{"parent":"MODULE_FUNC","rule":"DAteTime::ToDays","sum":8},{"parent":"MODULE_FUNC","rule":"DAtetime::FromSeconds","sum":1},{"parent":"MODULE_FUNC","rule":"DAtetime::MakeDatetime","sum":2},{"parent":"MODULE_FUNC","rule":"DAtetime::ToStartOfWeek","sum":4},{"parent":"MODULE_FUNC","rule":"DaTETIME::StartOfWeek","sum":342},{"parent":"MODULE_FUNC","rule":"DaTeTime::GetMonth","sum":4},{"parent":"MODULE_FUNC","rule":"DaTeTime::GetYear","sum":4},{"parent":"MODULE_FUNC","rule":"DaTeTime::IntervalFromDays","sum":1},{"parent":"MODULE_FUNC","rule":"DaTeTime::MakeDate","sum":32},{"parent":"MODULE_FUNC","rule":"DaTeTime::ShiftMonths","sum":42},{"parent":"MODULE_FUNC","rule":"DaTeTime::StartOfMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTIME::IntervalFromDays","sum":725},{"parent":"MODULE_FUNC","rule":"DateTIme::EndOfMonth","sum":3},{"parent":"MODULE_FUNC","rule":"DateTIme::Format","sum":11},{"parent":"MODULE_FUNC","rule":"DateTIme::FromMicroseconds","sum":11},{"parent":"MODULE_FUNC","rule":"DateTIme::FromSeconds","sum":54},{"parent":"MODULE_FUNC","rule":"DateTIme::GetDayOfWeek","sum":44},{"parent":"MODULE_FUNC","rule":"DateTIme::GetHour","sum":2},{"parent":"MODULE_FUNC","rule":"DateTIme::GetMinute","sum":38},{"parent":"MODULE_FUNC","rule":"DateTIme::GetYear","sum":47},{"parent":"MODULE_FUNC","rule":"DateTIme::IntervalFromDays","sum":46},{"parent":"MODULE_FUNC","rule":"DateTIme::MakeDate","sum":3553},{"parent":"MODULE_FUNC","rule":"DateTIme::MakeDatetime","sum":284},{"parent":"MODULE_FUNC","rule":"DateTIme::MakeTimestamp","sum":7},{"parent":"MODULE_FUNC","rule":"DateTIme::MakeTzTimestamp","sum":4},{"parent":"MODULE_FUNC","rule":"DateTIme::Parse","sum":7},{"parent":"MODULE_FUNC","rule":"DateTIme::ParseIso8601","sum":2},{"parent":"MODULE_FUNC","rule":"DateTIme::ShiftMonths","sum":6},{"parent":"MODULE_FUNC","rule":"DateTIme::StartOfMonth","sum":135},{"parent":"MODULE_FUNC","rule":"DateTIme::StartOfWeek","sum":1},{"parent":"MODULE_FUNC","rule":"DateTIme::ToDays","sum":12},{"parent":"MODULE_FUNC","rule":"DateTIme::ToHours","sum":1},{"parent":"MODULE_FUNC","rule":"DateTIme::ToMinutes","sum":1},{"parent":"MODULE_FUNC","rule":"DateTIme::ToSeconds","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::AddTimezone","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Convert","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::CurrentDate","sum":5},{"parent":"MODULE_FUNC","rule":"DateTime::CurrentDateTimeUTC","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::CurrentUtcDate","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Date","sum":4},{"parent":"MODULE_FUNC","rule":"DateTime::DateTime","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::DatetimeStartOfMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::DayOfWeek","sum":7},{"parent":"MODULE_FUNC","rule":"DateTime::Days","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::DiffMinutes","sum":8},{"parent":"MODULE_FUNC","rule":"DateTime::DiffMonths","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Difference","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::EndOf","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfDay","sum":251},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfMonth","sum":37082},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfQuarter","sum":306},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfWeek","sum":508},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfYear","sum":136},{"parent":"MODULE_FUNC","rule":"DateTime::EndtOfMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ExtractHour","sum":4},{"parent":"MODULE_FUNC","rule":"DateTime::FROMMilliseconds","sum":14},{"parent":"MODULE_FUNC","rule":"DateTime::FROMSeconds","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::Format","sum":39707127},{"parent":"MODULE_FUNC","rule":"DateTime::FormatTime","sum":6},{"parent":"MODULE_FUNC","rule":"DateTime::FromDays","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::FromMicroSeconds","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::FromMicroseconds","sum":4616490},{"parent":"MODULE_FUNC","rule":"DateTime::FromMicroseconds64","sum":118},{"parent":"MODULE_FUNC","rule":"DateTime::FromMilliSeconds","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::FromMilliseconds","sum":9165394},{"parent":"MODULE_FUNC","rule":"DateTime::FromMilliseconds64","sum":765},{"parent":"MODULE_FUNC","rule":"DateTime::FromSecond","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::FromSeconds","sum":15247163},{"parent":"MODULE_FUNC","rule":"DateTime::FromSeconds64","sum":857},{"parent":"MODULE_FUNC","rule":"DateTime::FromString","sum":368},{"parent":"MODULE_FUNC","rule":"DateTime::FromTimeZone","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::Fromat","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::GetDay","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::GetDayOfMonth","sum":585699},{"parent":"MODULE_FUNC","rule":"DateTime::GetDayOfWeek","sum":631982},{"parent":"MODULE_FUNC","rule":"DateTime::GetDayOfWeekName","sum":125803},{"parent":"MODULE_FUNC","rule":"DateTime::GetDayOfYear","sum":43988},{"parent":"MODULE_FUNC","rule":"DateTime::GetHour","sum":1448753},{"parent":"MODULE_FUNC","rule":"DateTime::GetLastDayOfMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::GetMicrosecondOfSecond","sum":1288},{"parent":"MODULE_FUNC","rule":"DateTime::GetMillisecondOfSecond","sum":57},{"parent":"MODULE_FUNC","rule":"DateTime::GetMinute","sum":290921},{"parent":"MODULE_FUNC","rule":"DateTime::GetMonth","sum":700509},{"parent":"MODULE_FUNC","rule":"DateTime::GetMonthName","sum":38082},{"parent":"MODULE_FUNC","rule":"DateTime::GetMonthOfYear","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::GetSecond","sum":88516},{"parent":"MODULE_FUNC","rule":"DateTime::GetTimezoneId","sum":103},{"parent":"MODULE_FUNC","rule":"DateTime::GetTimezoneName","sum":523},{"parent":"MODULE_FUNC","rule":"DateTime::GetWeek","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::GetWeekOfYear","sum":499728},{"parent":"MODULE_FUNC","rule":"DateTime::GetWeekOfYearIso8601","sum":33942},{"parent":"MODULE_FUNC","rule":"DateTime::GetYEAR","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::GetYear","sum":773010},{"parent":"MODULE_FUNC","rule":"DateTime::Interval","sum":21},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromDays","sum":1750},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromHours","sum":3701},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromMicroseconds","sum":9},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromMilliseconds","sum":8},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromMinutes","sum":107},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromSeconds","sum":122},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFROMDays","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFrom","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromDays","sum":15010793},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromHDays","sum":28},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromHours","sum":8923033},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMicroseconds","sum":76251},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMilliseconds","sum":512537},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMinute","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMinutes","sum":4240370},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMonth","sum":9},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMonths","sum":7},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromSeconds","sum":945211},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromYears","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalfromDays","sum":23},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalfromHours","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::LastDayOfMonth","sum":6},{"parent":"MODULE_FUNC","rule":"DateTime::MakeData","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDate","sum":23028266},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDate32","sum":68},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDateTime","sum":226},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDatetime","sum":36736676},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDatetime64","sum":110},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTimestamp","sum":7825820},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTimestamp64","sum":290},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDate","sum":261460},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDateTime","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDatetime","sum":3135906},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDatetime64","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzTimestamp","sum":151709},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzTimestamp64","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::Makedate","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::MilliSeconds","sum":156},{"parent":"MODULE_FUNC","rule":"DateTime::NOW","sum":4},{"parent":"MODULE_FUNC","rule":"DateTime::Now","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::Parce","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Parse","sum":23530104},{"parent":"MODULE_FUNC","rule":"DateTime::Parse64","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Parse8601","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ParseDateTime","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ParseDateTimeBestEffort","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::ParseFromString","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ParseHttp","sum":26823},{"parent":"MODULE_FUNC","rule":"DateTime::ParseIso","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ParseIso8601","sum":18450539},{"parent":"MODULE_FUNC","rule":"DateTime::ParseRfc822","sum":1853},{"parent":"MODULE_FUNC","rule":"DateTime::ParseX509","sum":237},{"parent":"MODULE_FUNC","rule":"DateTime::STartOfWeek","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Shift","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftDay","sum":51},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftDays","sum":202},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftMinutes","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftMonth","sum":11},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftMonths","sum":3278312},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftQuarters","sum":382929},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftWeek","sum":7},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftWeeks","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftYears","sum":667243},{"parent":"MODULE_FUNC","rule":"DateTime::Split","sum":706293},{"parent":"MODULE_FUNC","rule":"DateTime::StartOf","sum":2326728},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfDay","sum":2630469},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfHour","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfMohth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfMonth","sum":4135195},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfQuarter","sum":547470},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfWeek","sum":2073964},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfYear","sum":934564},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfmonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfweek","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::StartofQuarter","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::TimeOfDay","sum":67013},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromMicroSeconds","sum":364},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromMilliSeconds","sum":2599},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromMinutes","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromSeconds","sum":391},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromString","sum":425},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampStartOfMonth","sum":818},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampStartOfWeek","sum":394},{"parent":"MODULE_FUNC","rule":"DateTime::To","sum":5},{"parent":"MODULE_FUNC","rule":"DateTime::ToDate","sum":1460},{"parent":"MODULE_FUNC","rule":"DateTime::ToDateTime","sum":6},{"parent":"MODULE_FUNC","rule":"DateTime::ToDays","sum":3455240},{"parent":"MODULE_FUNC","rule":"DateTime::ToHours","sum":1318595},{"parent":"MODULE_FUNC","rule":"DateTime::ToIsoFormat","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ToMicroseconds","sum":2192443},{"parent":"MODULE_FUNC","rule":"DateTime::ToMilliseconds","sum":5240333},{"parent":"MODULE_FUNC","rule":"DateTime::ToMinutes","sum":850881},{"parent":"MODULE_FUNC","rule":"DateTime::ToMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ToMonths","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ToSeconds","sum":23356009},{"parent":"MODULE_FUNC","rule":"DateTime::ToSeconds64","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Today","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Trunc","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Update","sum":3638500},{"parent":"MODULE_FUNC","rule":"DateTime::format","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::fromSeconds","sum":15},{"parent":"MODULE_FUNC","rule":"DateTime::parse","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::parseiso8601","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::toDate","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::toSeconds","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::toStartOfMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::todate","sum":1},{"parent":"MODULE_FUNC","rule":"DatetIme::IntervalFromDays","sum":367},{"parent":"MODULE_FUNC","rule":"Datetime::CurrentDate","sum":2},{"parent":"MODULE_FUNC","rule":"Datetime::CurrentUtcDatetime","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::DaysInMonth","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::EndOfMonth","sum":157},{"parent":"MODULE_FUNC","rule":"Datetime::EndOfWeek","sum":43},{"parent":"MODULE_FUNC","rule":"Datetime::Format","sum":366004},{"parent":"MODULE_FUNC","rule":"Datetime::FromMicroseconds","sum":36568},{"parent":"MODULE_FUNC","rule":"Datetime::FromMilliseconds","sum":768052},{"parent":"MODULE_FUNC","rule":"Datetime::FromSeconds","sum":566372},{"parent":"MODULE_FUNC","rule":"Datetime::FromSeconds64","sum":24},{"parent":"MODULE_FUNC","rule":"Datetime::GetDay","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::GetDayOfMonth","sum":757},{"parent":"MODULE_FUNC","rule":"Datetime::GetDayOfWeek","sum":12730},{"parent":"MODULE_FUNC","rule":"Datetime::GetDayOfWeekName","sum":850},{"parent":"MODULE_FUNC","rule":"Datetime::GetDayOfYear","sum":59},{"parent":"MODULE_FUNC","rule":"Datetime::GetHour","sum":14277},{"parent":"MODULE_FUNC","rule":"Datetime::GetMinute","sum":13316},{"parent":"MODULE_FUNC","rule":"Datetime::GetMonth","sum":1025},{"parent":"MODULE_FUNC","rule":"Datetime::GetMonthName","sum":330},{"parent":"MODULE_FUNC","rule":"Datetime::GetWeekOfYear","sum":2649},{"parent":"MODULE_FUNC","rule":"Datetime::GetWeekOfYearIso8601","sum":3},{"parent":"MODULE_FUNC","rule":"Datetime::GetYear","sum":2683},{"parent":"MODULE_FUNC","rule":"Datetime::Interval","sum":9},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromDays","sum":369388},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromHours","sum":263462},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromMicroseconds","sum":194},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromMilliseconds","sum":91},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromMinutes","sum":49017},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromSeconds","sum":9503},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDate","sum":671239},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDate32","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDateTime","sum":2},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDatetime","sum":916311},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDatetime64","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTimestamp","sum":423835},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTzDate","sum":2262},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTzDatetime","sum":23148},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTzTimestamp","sum":33029},{"parent":"MODULE_FUNC","rule":"Datetime::Makedate","sum":6},{"parent":"MODULE_FUNC","rule":"Datetime::Parse","sum":137796},{"parent":"MODULE_FUNC","rule":"Datetime::ParseIso8601","sum":255648},{"parent":"MODULE_FUNC","rule":"Datetime::ShiftMonths","sum":25955},{"parent":"MODULE_FUNC","rule":"Datetime::ShiftQuarters","sum":538},{"parent":"MODULE_FUNC","rule":"Datetime::ShiftYears","sum":286},{"parent":"MODULE_FUNC","rule":"Datetime::Split","sum":209},{"parent":"MODULE_FUNC","rule":"Datetime::StartOf","sum":64222},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfDay","sum":20717},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfMonth","sum":74361},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfQuarter","sum":4336},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfWeek","sum":23122},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfYear","sum":11695},{"parent":"MODULE_FUNC","rule":"Datetime::TimeOfDay","sum":127},{"parent":"MODULE_FUNC","rule":"Datetime::ToDatetime","sum":12},{"parent":"MODULE_FUNC","rule":"Datetime::ToDays","sum":139662},{"parent":"MODULE_FUNC","rule":"Datetime::ToHours","sum":22923},{"parent":"MODULE_FUNC","rule":"Datetime::ToMicroseconds","sum":587},{"parent":"MODULE_FUNC","rule":"Datetime::ToMilliseconds","sum":122898},{"parent":"MODULE_FUNC","rule":"Datetime::ToMinutes","sum":44700},{"parent":"MODULE_FUNC","rule":"Datetime::ToSeconds","sum":1523247},{"parent":"MODULE_FUNC","rule":"Datetime::Update","sum":29424},{"parent":"MODULE_FUNC","rule":"Decompress::BZip2","sum":513},{"parent":"MODULE_FUNC","rule":"Decompress::Brotli","sum":7933},{"parent":"MODULE_FUNC","rule":"Decompress::Gzip","sum":3929},{"parent":"MODULE_FUNC","rule":"Decompress::Lz4","sum":890},{"parent":"MODULE_FUNC","rule":"Decompress::Lzma","sum":1},{"parent":"MODULE_FUNC","rule":"Decompress::Snappy","sum":470},{"parent":"MODULE_FUNC","rule":"Decompress::Xz","sum":1},{"parent":"MODULE_FUNC","rule":"Decompress::Zlib","sum":10349},{"parent":"MODULE_FUNC","rule":"Decompress::Zstd","sum":30},{"parent":"MODULE_FUNC","rule":"Digest::Argon2","sum":48904},{"parent":"MODULE_FUNC","rule":"Digest::Blake2B","sum":4570},{"parent":"MODULE_FUNC","rule":"Digest::CityHash","sum":1214048},{"parent":"MODULE_FUNC","rule":"Digest::CityHash128","sum":17592},{"parent":"MODULE_FUNC","rule":"Digest::Crc32c","sum":77608},{"parent":"MODULE_FUNC","rule":"Digest::Crc64","sum":139930},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint","sum":67997},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint128","sum":26},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint2","sum":161650},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint32","sum":208},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint64","sum":1043933},{"parent":"MODULE_FUNC","rule":"Digest::Fnv32","sum":1733},{"parent":"MODULE_FUNC","rule":"Digest::Fnv64","sum":261975},{"parent":"MODULE_FUNC","rule":"Digest::IntHash64","sum":18637},{"parent":"MODULE_FUNC","rule":"Digest::MD5Hex","sum":1},{"parent":"MODULE_FUNC","rule":"Digest::Md5","sum":2},{"parent":"MODULE_FUNC","rule":"Digest::Md5HalfMix","sum":425111},{"parent":"MODULE_FUNC","rule":"Digest::Md5Hex","sum":564006},{"parent":"MODULE_FUNC","rule":"Digest::Md5Raw","sum":15887},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash","sum":2387613},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash2A","sum":2482},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash2A32","sum":854},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash32","sum":258742},{"parent":"MODULE_FUNC","rule":"Digest::NimericHash","sum":3},{"parent":"MODULE_FUNC","rule":"Digest::NumericHash","sum":268509},{"parent":"MODULE_FUNC","rule":"Digest::Sha1","sum":42089},{"parent":"MODULE_FUNC","rule":"Digest::Sha256","sum":395607},{"parent":"MODULE_FUNC","rule":"Digest::SipHash","sum":130836},{"parent":"MODULE_FUNC","rule":"Digest::SuperFastHash","sum":33943},{"parent":"MODULE_FUNC","rule":"Digest::XXH3","sum":48781},{"parent":"MODULE_FUNC","rule":"Digest::XXH3_128","sum":19},{"parent":"MODULE_FUNC","rule":"HyperScan::BacktrackingGrep","sum":1},{"parent":"MODULE_FUNC","rule":"HyperScan::Grep","sum":2359},{"parent":"MODULE_FUNC","rule":"HyperScan::Match","sum":6},{"parent":"MODULE_FUNC","rule":"Hyperscan::BacktrackingGrep","sum":45875},{"parent":"MODULE_FUNC","rule":"Hyperscan::BacktrackingMatch","sum":127},{"parent":"MODULE_FUNC","rule":"Hyperscan::Capture","sum":5834},{"parent":"MODULE_FUNC","rule":"Hyperscan::Grep","sum":145920},{"parent":"MODULE_FUNC","rule":"Hyperscan::Match","sum":53623},{"parent":"MODULE_FUNC","rule":"Hyperscan::MultiGrep","sum":62},{"parent":"MODULE_FUNC","rule":"Hyperscan::MultiMatch","sum":40908},{"parent":"MODULE_FUNC","rule":"Hyperscan::Replace","sum":96506},{"parent":"MODULE_FUNC","rule":"Ip::ConvertToIPv6","sum":44300},{"parent":"MODULE_FUNC","rule":"Ip::FromString","sum":389162},{"parent":"MODULE_FUNC","rule":"Ip::GetSubnet","sum":135675},{"parent":"MODULE_FUNC","rule":"Ip::GetSubnetByMask","sum":4},{"parent":"MODULE_FUNC","rule":"Ip::IsEmbeddedIPv4","sum":6914},{"parent":"MODULE_FUNC","rule":"Ip::IsIPv4","sum":136411},{"parent":"MODULE_FUNC","rule":"Ip::IsIPv6","sum":118870},{"parent":"MODULE_FUNC","rule":"Ip::SubnetFromString","sum":548},{"parent":"MODULE_FUNC","rule":"Ip::SubnetMatch","sum":501},{"parent":"MODULE_FUNC","rule":"Ip::ToFixedIPv6String","sum":3829},{"parent":"MODULE_FUNC","rule":"Ip::ToString","sum":552734},{"parent":"MODULE_FUNC","rule":"JSON::ConvertToDouble","sum":19612},{"parent":"MODULE_FUNC","rule":"JSON::ConvertToInt64","sum":3261},{"parent":"MODULE_FUNC","rule":"JSON::ConvertToList","sum":15},{"parent":"MODULE_FUNC","rule":"JSON::ConvertToString","sum":133},{"parent":"MODULE_FUNC","rule":"JSON::ConvertToStringList","sum":4},{"parent":"MODULE_FUNC","rule":"JSON::From","sum":5},{"parent":"MODULE_FUNC","rule":"JSON::LookupBool","sum":5},{"parent":"MODULE_FUNC","rule":"JSON::LookupDouble","sum":10},{"parent":"MODULE_FUNC","rule":"JSON::LookupInt64","sum":8},{"parent":"MODULE_FUNC","rule":"JSON::LookupString","sum":245},{"parent":"MODULE_FUNC","rule":"JSON::PARSE","sum":2},{"parent":"MODULE_FUNC","rule":"JSON::Parse","sum":3743},{"parent":"MODULE_FUNC","rule":"JSon::From","sum":2},{"parent":"MODULE_FUNC","rule":"Json::Attributes","sum":2},{"parent":"MODULE_FUNC","rule":"Json::Contains","sum":1},{"parent":"MODULE_FUNC","rule":"Json::ConvertToBool","sum":6},{"parent":"MODULE_FUNC","rule":"Json::ConvertToDict","sum":114},{"parent":"MODULE_FUNC","rule":"Json::ConvertToDouble","sum":1},{"parent":"MODULE_FUNC","rule":"Json::ConvertToInt64","sum":1},{"parent":"MODULE_FUNC","rule":"Json::ConvertToList","sum":116},{"parent":"MODULE_FUNC","rule":"Json::ConvertToString","sum":168},{"parent":"MODULE_FUNC","rule":"Json::ConvertToStringDict","sum":5},{"parent":"MODULE_FUNC","rule":"Json::ConvertToStringList","sum":21},{"parent":"MODULE_FUNC","rule":"Json::From","sum":3765},{"parent":"MODULE_FUNC","rule":"Json::FromString","sum":16},{"parent":"MODULE_FUNC","rule":"Json::GetField","sum":21},{"parent":"MODULE_FUNC","rule":"Json::GetHash","sum":1},{"parent":"MODULE_FUNC","rule":"Json::GetLength","sum":19},{"parent":"MODULE_FUNC","rule":"Json::Lookup","sum":1},{"parent":"MODULE_FUNC","rule":"Json::LookupInt64","sum":847912},{"parent":"MODULE_FUNC","rule":"Json::LookupString","sum":53},{"parent":"MODULE_FUNC","rule":"Json::Options","sum":852},{"parent":"MODULE_FUNC","rule":"Json::Parse","sum":181050},{"parent":"MODULE_FUNC","rule":"Json::ParseJson","sum":205},{"parent":"MODULE_FUNC","rule":"Json::Serialize","sum":1556},{"parent":"MODULE_FUNC","rule":"Json::SerializeJson","sum":933},{"parent":"MODULE_FUNC","rule":"Json::SerializePretty","sum":1137},{"parent":"MODULE_FUNC","rule":"Json::SerializeText","sum":3},{"parent":"MODULE_FUNC","rule":"Json::YPath","sum":20},{"parent":"MODULE_FUNC","rule":"Json::YPathDict","sum":14},{"parent":"MODULE_FUNC","rule":"Json::YPathString","sum":1},{"parent":"MODULE_FUNC","rule":"MATH::ROUND","sum":4},{"parent":"MODULE_FUNC","rule":"Math::Aabs","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Abs","sum":477715},{"parent":"MODULE_FUNC","rule":"Math::Acos","sum":12415},{"parent":"MODULE_FUNC","rule":"Math::Asin","sum":10403},{"parent":"MODULE_FUNC","rule":"Math::Asinh","sum":4},{"parent":"MODULE_FUNC","rule":"Math::Atan","sum":7800},{"parent":"MODULE_FUNC","rule":"Math::Atan2","sum":12085},{"parent":"MODULE_FUNC","rule":"Math::Cbrt","sum":480},{"parent":"MODULE_FUNC","rule":"Math::Ceil","sum":1248484},{"parent":"MODULE_FUNC","rule":"Math::Cos","sum":87693},{"parent":"MODULE_FUNC","rule":"Math::Cosh","sum":5},{"parent":"MODULE_FUNC","rule":"Math::Crbt","sum":1},{"parent":"MODULE_FUNC","rule":"Math::E","sum":9683},{"parent":"MODULE_FUNC","rule":"Math::EXP","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Eps","sum":181},{"parent":"MODULE_FUNC","rule":"Math::Erf","sum":2543},{"parent":"MODULE_FUNC","rule":"Math::ErfInv","sum":42},{"parent":"MODULE_FUNC","rule":"Math::ErfcInv","sum":6},{"parent":"MODULE_FUNC","rule":"Math::Exp","sum":558803},{"parent":"MODULE_FUNC","rule":"Math::Exp2","sum":2138},{"parent":"MODULE_FUNC","rule":"Math::Fabs","sum":145504},{"parent":"MODULE_FUNC","rule":"Math::Floor","sum":326311},{"parent":"MODULE_FUNC","rule":"Math::Flor","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Fmod","sum":9},{"parent":"MODULE_FUNC","rule":"Math::FuzzyEquals","sum":18761},{"parent":"MODULE_FUNC","rule":"Math::Hypot","sum":18561},{"parent":"MODULE_FUNC","rule":"Math::IsFinite","sum":185199},{"parent":"MODULE_FUNC","rule":"Math::IsInf","sum":74643},{"parent":"MODULE_FUNC","rule":"Math::IsNaN","sum":251807},{"parent":"MODULE_FUNC","rule":"Math::Ldexp","sum":46},{"parent":"MODULE_FUNC","rule":"Math::Lgamma","sum":4},{"parent":"MODULE_FUNC","rule":"Math::Log","sum":824060},{"parent":"MODULE_FUNC","rule":"Math::Log10","sum":150347},{"parent":"MODULE_FUNC","rule":"Math::Log2","sum":196490},{"parent":"MODULE_FUNC","rule":"Math::Max","sum":3},{"parent":"MODULE_FUNC","rule":"Math::Min","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Mod","sum":65399},{"parent":"MODULE_FUNC","rule":"Math::NearbyInt","sum":410555},{"parent":"MODULE_FUNC","rule":"Math::Pi","sum":71587},{"parent":"MODULE_FUNC","rule":"Math::Pow","sum":1326346},{"parent":"MODULE_FUNC","rule":"Math::Power","sum":6},{"parent":"MODULE_FUNC","rule":"Math::ROUND","sum":5},{"parent":"MODULE_FUNC","rule":"Math::Rem","sum":2325},{"parent":"MODULE_FUNC","rule":"Math::Remainder","sum":171},{"parent":"MODULE_FUNC","rule":"Math::Rint","sum":20445},{"parent":"MODULE_FUNC","rule":"Math::Round","sum":36407421},{"parent":"MODULE_FUNC","rule":"Math::RoundDownward","sum":135216},{"parent":"MODULE_FUNC","rule":"Math::RoundToNearest","sum":74644},{"parent":"MODULE_FUNC","rule":"Math::RoundTowardZero","sum":907},{"parent":"MODULE_FUNC","rule":"Math::RoundUpward","sum":199858},{"parent":"MODULE_FUNC","rule":"Math::Sigmoid","sum":279068},{"parent":"MODULE_FUNC","rule":"Math::Sin","sum":75206},{"parent":"MODULE_FUNC","rule":"Math::Sinh","sum":6030},{"parent":"MODULE_FUNC","rule":"Math::Sqrt","sum":612224},{"parent":"MODULE_FUNC","rule":"Math::Tan","sum":4808},{"parent":"MODULE_FUNC","rule":"Math::Tanh","sum":4815},{"parent":"MODULE_FUNC","rule":"Math::Tgamma","sum":60},{"parent":"MODULE_FUNC","rule":"Math::Trunc","sum":156289},{"parent":"MODULE_FUNC","rule":"Math::abs","sum":2},{"parent":"MODULE_FUNC","rule":"Math::ceil","sum":8},{"parent":"MODULE_FUNC","rule":"Math::cos","sum":2},{"parent":"MODULE_FUNC","rule":"Math::exp","sum":6},{"parent":"MODULE_FUNC","rule":"Math::floor","sum":3},{"parent":"MODULE_FUNC","rule":"Math::round","sum":13},{"parent":"MODULE_FUNC","rule":"Math::sin","sum":2},{"parent":"MODULE_FUNC","rule":"Math::sqrt","sum":3},{"parent":"MODULE_FUNC","rule":"PG::ARRAY_AGG","sum":7},{"parent":"MODULE_FUNC","rule":"PG::STRING_AGG","sum":50},{"parent":"MODULE_FUNC","rule":"PG::json_object_keys","sum":19},{"parent":"MODULE_FUNC","rule":"PG::jsonb_object_keys","sum":18},{"parent":"MODULE_FUNC","rule":"PG::string_agg","sum":95},{"parent":"MODULE_FUNC","rule":"PG::to_hex","sum":9},{"parent":"MODULE_FUNC","rule":"PIRE::Capture","sum":7},{"parent":"MODULE_FUNC","rule":"PIRE::Grep","sum":22},{"parent":"MODULE_FUNC","rule":"Pg::ARRAY_AGG","sum":11},{"parent":"MODULE_FUNC","rule":"Pg::Array_Agg","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::CONCAT","sum":12},{"parent":"MODULE_FUNC","rule":"Pg::Date","sum":3},{"parent":"MODULE_FUNC","rule":"Pg::GENERATE_SERIES","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::SPLIT_PART","sum":5},{"parent":"MODULE_FUNC","rule":"Pg::STRING_AGG","sum":49},{"parent":"MODULE_FUNC","rule":"Pg::ST_Area","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::ST_AsEWKB","sum":57},{"parent":"MODULE_FUNC","rule":"Pg::ST_AsEWKT","sum":15},{"parent":"MODULE_FUNC","rule":"Pg::ST_AsGeoJSON","sum":7},{"parent":"MODULE_FUNC","rule":"Pg::ST_AsSVG","sum":3},{"parent":"MODULE_FUNC","rule":"Pg::ST_AsText","sum":57},{"parent":"MODULE_FUNC","rule":"Pg::ST_Boundary","sum":43},{"parent":"MODULE_FUNC","rule":"Pg::ST_Centroid","sum":14},{"parent":"MODULE_FUNC","rule":"Pg::ST_ClosestPoint","sum":37},{"parent":"MODULE_FUNC","rule":"Pg::ST_Contains","sum":3},{"parent":"MODULE_FUNC","rule":"Pg::ST_Distance","sum":13},{"parent":"MODULE_FUNC","rule":"Pg::ST_GeoHash","sum":15},{"parent":"MODULE_FUNC","rule":"Pg::ST_GeomFromEWKB","sum":86},{"parent":"MODULE_FUNC","rule":"Pg::ST_GeomFromGeoHash","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::ST_GeomFromText","sum":65},{"parent":"MODULE_FUNC","rule":"Pg::ST_GeomFromWKB","sum":7},{"parent":"MODULE_FUNC","rule":"Pg::ST_Intersects","sum":13},{"parent":"MODULE_FUNC","rule":"Pg::ST_IsValid","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::ST_MakePoint","sum":7},{"parent":"MODULE_FUNC","rule":"Pg::ST_MakeValid","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::ST_Point","sum":6},{"parent":"MODULE_FUNC","rule":"Pg::ST_PointOnSurface","sum":17},{"parent":"MODULE_FUNC","rule":"Pg::ST_Scale","sum":3},{"parent":"MODULE_FUNC","rule":"Pg::ST_SetSRID","sum":6},{"parent":"MODULE_FUNC","rule":"Pg::ST_Transform","sum":183},{"parent":"MODULE_FUNC","rule":"Pg::ST_X","sum":72},{"parent":"MODULE_FUNC","rule":"Pg::ST_Y","sum":66},{"parent":"MODULE_FUNC","rule":"Pg::St_geomfromewkb","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::String_Agg","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::age","sum":8},{"parent":"MODULE_FUNC","rule":"Pg::array_agg","sum":6},{"parent":"MODULE_FUNC","rule":"Pg::array_length","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::bit_length","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::center","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::concat","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::date_generate_series","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::date_part","sum":8},{"parent":"MODULE_FUNC","rule":"Pg::date_trunc","sum":11},{"parent":"MODULE_FUNC","rule":"Pg::extract","sum":136},{"parent":"MODULE_FUNC","rule":"Pg::generate_series","sum":1467},{"parent":"MODULE_FUNC","rule":"Pg::json_object_agg","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::lower","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::max","sum":365},{"parent":"MODULE_FUNC","rule":"Pg::sind","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::split_part","sum":20},{"parent":"MODULE_FUNC","rule":"Pg::st_asgeojson","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::st_astext","sum":6},{"parent":"MODULE_FUNC","rule":"Pg::st_collect","sum":8},{"parent":"MODULE_FUNC","rule":"Pg::st_geomfromewkb","sum":22},{"parent":"MODULE_FUNC","rule":"Pg::st_intersects","sum":9},{"parent":"MODULE_FUNC","rule":"Pg::st_transform","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::st_union","sum":8},{"parent":"MODULE_FUNC","rule":"Pg::string_Agg","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::string_agg","sum":1748},{"parent":"MODULE_FUNC","rule":"Pg::to_char","sum":18},{"parent":"MODULE_FUNC","rule":"Pg::to_timestamp","sum":73},{"parent":"MODULE_FUNC","rule":"Pg::version","sum":3},{"parent":"MODULE_FUNC","rule":"Pire::Capture","sum":533463},{"parent":"MODULE_FUNC","rule":"Pire::Grep","sum":144104},{"parent":"MODULE_FUNC","rule":"Pire::Match","sum":232792},{"parent":"MODULE_FUNC","rule":"Pire::MultiGrep","sum":607},{"parent":"MODULE_FUNC","rule":"Pire::MultiMatch","sum":152},{"parent":"MODULE_FUNC","rule":"Pire::Replace","sum":1000888},{"parent":"MODULE_FUNC","rule":"Protobuf::Parse","sum":20839},{"parent":"MODULE_FUNC","rule":"Protobuf::Serialize","sum":103024},{"parent":"MODULE_FUNC","rule":"Protobuf::TryParse","sum":142506},{"parent":"MODULE_FUNC","rule":"RE2::Capture","sum":4000},{"parent":"MODULE_FUNC","rule":"RE2::Count","sum":269},{"parent":"MODULE_FUNC","rule":"RE2::FindAndConsume","sum":31},{"parent":"MODULE_FUNC","rule":"RE2::Grep","sum":70},{"parent":"MODULE_FUNC","rule":"RE2::Match","sum":546},{"parent":"MODULE_FUNC","rule":"RE2::Replace","sum":124},{"parent":"MODULE_FUNC","rule":"Re2::Capture","sum":4380331},{"parent":"MODULE_FUNC","rule":"Re2::Catch","sum":1},{"parent":"MODULE_FUNC","rule":"Re2::Compile","sum":4},{"parent":"MODULE_FUNC","rule":"Re2::Count","sum":172802},{"parent":"MODULE_FUNC","rule":"Re2::FindAll","sum":2},{"parent":"MODULE_FUNC","rule":"Re2::FindAllSubmatch","sum":2},{"parent":"MODULE_FUNC","rule":"Re2::FindAndConsume","sum":390406},{"parent":"MODULE_FUNC","rule":"Re2::Grep","sum":646127},{"parent":"MODULE_FUNC","rule":"Re2::Match","sum":1694173},{"parent":"MODULE_FUNC","rule":"Re2::Options","sum":251696},{"parent":"MODULE_FUNC","rule":"Re2::Replace","sum":4584232},{"parent":"MODULE_FUNC","rule":"Re2::ReplaceAll","sum":15},{"parent":"MODULE_FUNC","rule":"STRING::AsciiToLower","sum":1},{"parent":"MODULE_FUNC","rule":"STRING::Contains","sum":2},{"parent":"MODULE_FUNC","rule":"STRING::RemoveAll","sum":1},{"parent":"MODULE_FUNC","rule":"STRING::SplitToList","sum":2},{"parent":"MODULE_FUNC","rule":"String::ASciiToLower","sum":1},{"parent":"MODULE_FUNC","rule":"String::AsciiToLower","sum":4111448},{"parent":"MODULE_FUNC","rule":"String::AsciiToTitle","sum":91290},{"parent":"MODULE_FUNC","rule":"String::AsciiToUpper","sum":550631},{"parent":"MODULE_FUNC","rule":"String::Base32Decode","sum":285},{"parent":"MODULE_FUNC","rule":"String::Base32Encode","sum":191},{"parent":"MODULE_FUNC","rule":"String::Base32StrictDecode","sum":53},{"parent":"MODULE_FUNC","rule":"String::Base64Decode","sum":393554},{"parent":"MODULE_FUNC","rule":"String::Base64Encode","sum":111803},{"parent":"MODULE_FUNC","rule":"String::Base64EncodeUrl","sum":5545},{"parent":"MODULE_FUNC","rule":"String::Base64StrictDecode","sum":96933},{"parent":"MODULE_FUNC","rule":"String::Bin","sum":523},{"parent":"MODULE_FUNC","rule":"String::BinText","sum":121},{"parent":"MODULE_FUNC","rule":"String::CgiEscape","sum":66088},{"parent":"MODULE_FUNC","rule":"String::CgiUnescape","sum":24021},{"parent":"MODULE_FUNC","rule":"String::ColapseText","sum":4},{"parent":"MODULE_FUNC","rule":"String::Collapse","sum":192279},{"parent":"MODULE_FUNC","rule":"String::CollapseText","sum":197906},{"parent":"MODULE_FUNC","rule":"String::Contains","sum":6172023},{"parent":"MODULE_FUNC","rule":"String::DecodeHtml","sum":3003},{"parent":"MODULE_FUNC","rule":"String::EncodeHtml","sum":423},{"parent":"MODULE_FUNC","rule":"String::EndsWith","sum":539754},{"parent":"MODULE_FUNC","rule":"String::EndsWithIgnoreCase","sum":36145},{"parent":"MODULE_FUNC","rule":"String::EscapeC","sum":56401},{"parent":"MODULE_FUNC","rule":"String::Find","sum":652932},{"parent":"MODULE_FUNC","rule":"String::From","sum":2},{"parent":"MODULE_FUNC","rule":"String::FromByteList","sum":1055651},{"parent":"MODULE_FUNC","rule":"String::HasPrefix","sum":20389},{"parent":"MODULE_FUNC","rule":"String::HasPrefixIgnoreCase","sum":48},{"parent":"MODULE_FUNC","rule":"String::HasSuffix","sum":4980},{"parent":"MODULE_FUNC","rule":"String::HasSuffixIgnoreCase","sum":29164},{"parent":"MODULE_FUNC","rule":"String::Hex","sum":371063},{"parent":"MODULE_FUNC","rule":"String::HexDecode","sum":164295},{"parent":"MODULE_FUNC","rule":"String::HexEncode","sum":192212},{"parent":"MODULE_FUNC","rule":"String::HexText","sum":80085},{"parent":"MODULE_FUNC","rule":"String::HumanReadableBytes","sum":243},{"parent":"MODULE_FUNC","rule":"String::HumanReadableDuration","sum":1104910},{"parent":"MODULE_FUNC","rule":"String::HumanReadableQuantity","sum":333},{"parent":"MODULE_FUNC","rule":"String::IsAscii","sum":13898},{"parent":"MODULE_FUNC","rule":"String::IsAsciiAlnum","sum":981},{"parent":"MODULE_FUNC","rule":"String::IsAsciiAlpha","sum":380},{"parent":"MODULE_FUNC","rule":"String::IsAsciiDigit","sum":8629},{"parent":"MODULE_FUNC","rule":"String::IsAsciiHex","sum":19541},{"parent":"MODULE_FUNC","rule":"String::IsAsciiLower","sum":22},{"parent":"MODULE_FUNC","rule":"String::IsAsciiSpace","sum":13},{"parent":"MODULE_FUNC","rule":"String::IsAsciiUpper","sum":350},{"parent":"MODULE_FUNC","rule":"String::Join","sum":2},{"parent":"MODULE_FUNC","rule":"String::JoinFROMList","sum":33364},{"parent":"MODULE_FUNC","rule":"String::JoinFromList","sum":13950209},{"parent":"MODULE_FUNC","rule":"String::LeftPad","sum":64974},{"parent":"MODULE_FUNC","rule":"String::Length","sum":2},{"parent":"MODULE_FUNC","rule":"String::LevenshteinDistance","sum":4},{"parent":"MODULE_FUNC","rule":"String::LevensteinDistance","sum":11541},{"parent":"MODULE_FUNC","rule":"String::Prec","sum":1854},{"parent":"MODULE_FUNC","rule":"String::RaplaceAll","sum":3},{"parent":"MODULE_FUNC","rule":"String::RemoveAll","sum":1246160},{"parent":"MODULE_FUNC","rule":"String::RemoveFirst","sum":637168},{"parent":"MODULE_FUNC","rule":"String::RemoveLast","sum":551351},{"parent":"MODULE_FUNC","rule":"String::Replace","sum":11},{"parent":"MODULE_FUNC","rule":"String::ReplaceALL","sum":1},{"parent":"MODULE_FUNC","rule":"String::ReplaceAll","sum":15572806},{"parent":"MODULE_FUNC","rule":"String::ReplaceFirst","sum":1349608},{"parent":"MODULE_FUNC","rule":"String::ReplaceFirstStartsWith","sum":1},{"parent":"MODULE_FUNC","rule":"String::ReplaceLast","sum":170281},{"parent":"MODULE_FUNC","rule":"String::ReplaceRegex","sum":1},{"parent":"MODULE_FUNC","rule":"String::Reverse","sum":117285},{"parent":"MODULE_FUNC","rule":"String::ReverseFind","sum":39020},{"parent":"MODULE_FUNC","rule":"String::RightPad","sum":364701},{"parent":"MODULE_FUNC","rule":"String::SBin","sum":7},{"parent":"MODULE_FUNC","rule":"String::SHex","sum":6295},{"parent":"MODULE_FUNC","rule":"String::Split","sum":10},{"parent":"MODULE_FUNC","rule":"String::SplitToList","sum":31568162},{"parent":"MODULE_FUNC","rule":"String::SplitToSet","sum":12},{"parent":"MODULE_FUNC","rule":"String::StartWith","sum":1},{"parent":"MODULE_FUNC","rule":"String::StartsWith","sum":3461444},{"parent":"MODULE_FUNC","rule":"String::StartsWithIgnoreCase","sum":57315},{"parent":"MODULE_FUNC","rule":"String::Strip","sum":3166173},{"parent":"MODULE_FUNC","rule":"String::Substring","sum":300136},{"parent":"MODULE_FUNC","rule":"String::ToByteList","sum":140137},{"parent":"MODULE_FUNC","rule":"String::ToLower","sum":5220539},{"parent":"MODULE_FUNC","rule":"String::ToLowerCase","sum":1},{"parent":"MODULE_FUNC","rule":"String::ToTitle","sum":34209},{"parent":"MODULE_FUNC","rule":"String::ToUpper","sum":140356},{"parent":"MODULE_FUNC","rule":"String::Trim","sum":3},{"parent":"MODULE_FUNC","rule":"String::UnescapeC","sum":309291},{"parent":"MODULE_FUNC","rule":"String::contains","sum":1},{"parent":"MODULE_FUNC","rule":"String::splittolist","sum":1},{"parent":"MODULE_FUNC","rule":"String::tolower","sum":2},{"parent":"MODULE_FUNC","rule":"TryDecompress::BZip2","sum":5},{"parent":"MODULE_FUNC","rule":"TryDecompress::BlockCodec","sum":1},{"parent":"MODULE_FUNC","rule":"TryDecompress::Brotli","sum":12},{"parent":"MODULE_FUNC","rule":"TryDecompress::Gzip","sum":967},{"parent":"MODULE_FUNC","rule":"TryDecompress::Lz4","sum":92},{"parent":"MODULE_FUNC","rule":"TryDecompress::Lzma","sum":5},{"parent":"MODULE_FUNC","rule":"TryDecompress::Snappy","sum":11},{"parent":"MODULE_FUNC","rule":"TryDecompress::Xz","sum":5},{"parent":"MODULE_FUNC","rule":"TryDecompress::Zlib","sum":3546},{"parent":"MODULE_FUNC","rule":"TryDecompress::Zstd","sum":19},{"parent":"MODULE_FUNC","rule":"URL::GetHost","sum":2},{"parent":"MODULE_FUNC","rule":"Unicode::Find","sum":150548},{"parent":"MODULE_FUNC","rule":"Unicode::Fold","sum":29451},{"parent":"MODULE_FUNC","rule":"Unicode::FromCodePointList","sum":120601},{"parent":"MODULE_FUNC","rule":"Unicode::GetLength","sum":593619},{"parent":"MODULE_FUNC","rule":"Unicode::GetLengthn","sum":1},{"parent":"MODULE_FUNC","rule":"Unicode::IsAlnum","sum":556},{"parent":"MODULE_FUNC","rule":"Unicode::IsAlpha","sum":465},{"parent":"MODULE_FUNC","rule":"Unicode::IsAscii","sum":660},{"parent":"MODULE_FUNC","rule":"Unicode::IsDigit","sum":9012},{"parent":"MODULE_FUNC","rule":"Unicode::IsHex","sum":4},{"parent":"MODULE_FUNC","rule":"Unicode::IsLower","sum":96},{"parent":"MODULE_FUNC","rule":"Unicode::IsSpace","sum":18},{"parent":"MODULE_FUNC","rule":"Unicode::IsUnicodeSet","sum":423},{"parent":"MODULE_FUNC","rule":"Unicode::IsUpper","sum":1807},{"parent":"MODULE_FUNC","rule":"Unicode::IsUtf","sum":668623},{"parent":"MODULE_FUNC","rule":"Unicode::JoinFromList","sum":201306},{"parent":"MODULE_FUNC","rule":"Unicode::LevensteinDistance","sum":38466},{"parent":"MODULE_FUNC","rule":"Unicode::Normalize","sum":109260},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFC","sum":550},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFD","sum":37},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFKC","sum":6876},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFKD","sum":1714},{"parent":"MODULE_FUNC","rule":"Unicode::RFind","sum":73084},{"parent":"MODULE_FUNC","rule":"Unicode::RemoveAll","sum":139648},{"parent":"MODULE_FUNC","rule":"Unicode::RemoveFirst","sum":7903},{"parent":"MODULE_FUNC","rule":"Unicode::RemoveLast","sum":7941},{"parent":"MODULE_FUNC","rule":"Unicode::ReplaceAll","sum":262575},{"parent":"MODULE_FUNC","rule":"Unicode::ReplaceFirst","sum":1817},{"parent":"MODULE_FUNC","rule":"Unicode::ReplaceLast","sum":318},{"parent":"MODULE_FUNC","rule":"Unicode::Reverse","sum":48417},{"parent":"MODULE_FUNC","rule":"Unicode::SUBSTRING","sum":2},{"parent":"MODULE_FUNC","rule":"Unicode::SplitToList","sum":176816},{"parent":"MODULE_FUNC","rule":"Unicode::Strip","sum":63682},{"parent":"MODULE_FUNC","rule":"Unicode::Substring","sum":597192},{"parent":"MODULE_FUNC","rule":"Unicode::ToCodePointList","sum":123182},{"parent":"MODULE_FUNC","rule":"Unicode::ToLower","sum":1184377},{"parent":"MODULE_FUNC","rule":"Unicode::ToTitle","sum":36928},{"parent":"MODULE_FUNC","rule":"Unicode::ToUint64","sum":342},{"parent":"MODULE_FUNC","rule":"Unicode::ToUpper","sum":111543},{"parent":"MODULE_FUNC","rule":"Unicode::Translit","sum":104468},{"parent":"MODULE_FUNC","rule":"Unicode::TryToUint64","sum":1971},{"parent":"MODULE_FUNC","rule":"Url::AsciiToLower","sum":1},{"parent":"MODULE_FUNC","rule":"Url::BuildQueryString","sum":25601},{"parent":"MODULE_FUNC","rule":"Url::CanBePunycodeHostName","sum":6563},{"parent":"MODULE_FUNC","rule":"Url::CutQueryStringAndFragment","sum":231682},{"parent":"MODULE_FUNC","rule":"Url::CutScheme","sum":1121349},{"parent":"MODULE_FUNC","rule":"Url::CutWWW","sum":849205},{"parent":"MODULE_FUNC","rule":"Url::CutWWW2","sum":742495},{"parent":"MODULE_FUNC","rule":"Url::Decode","sum":1696641},{"parent":"MODULE_FUNC","rule":"Url::Encode","sum":367989},{"parent":"MODULE_FUNC","rule":"Url::ForceHostNameToPunycode","sum":200127},{"parent":"MODULE_FUNC","rule":"Url::ForcePunycodeToHostName","sum":132412},{"parent":"MODULE_FUNC","rule":"Url::GetCGIParam","sum":1840630},{"parent":"MODULE_FUNC","rule":"Url::GetCgiParam","sum":7},{"parent":"MODULE_FUNC","rule":"Url::GetDomain","sum":1121266},{"parent":"MODULE_FUNC","rule":"Url::GetDomainLevel","sum":70135},{"parent":"MODULE_FUNC","rule":"Url::GetFragment","sum":501},{"parent":"MODULE_FUNC","rule":"Url::GetHost","sum":4031182},{"parent":"MODULE_FUNC","rule":"Url::GetHostPort","sum":195237},{"parent":"MODULE_FUNC","rule":"Url::GetOwner","sum":1404269},{"parent":"MODULE_FUNC","rule":"Url::GetPath","sum":1684170},{"parent":"MODULE_FUNC","rule":"Url::GetPort","sum":812419},{"parent":"MODULE_FUNC","rule":"Url::GetScheme","sum":2032067},{"parent":"MODULE_FUNC","rule":"Url::GetSchemeHost","sum":145759},{"parent":"MODULE_FUNC","rule":"Url::GetSchemeHostPort","sum":693603},{"parent":"MODULE_FUNC","rule":"Url::GetSignificantDomain","sum":468216},{"parent":"MODULE_FUNC","rule":"Url::GetTLD","sum":35496},{"parent":"MODULE_FUNC","rule":"Url::GetTail","sum":567027},{"parent":"MODULE_FUNC","rule":"Url::Getowner","sum":1},{"parent":"MODULE_FUNC","rule":"Url::HostNameToPunycode","sum":580246},{"parent":"MODULE_FUNC","rule":"Url::IsAllowedByRobotsTxt","sum":7},{"parent":"MODULE_FUNC","rule":"Url::IsKnownTLD","sum":20608},{"parent":"MODULE_FUNC","rule":"Url::IsWellKnownTLD","sum":4987},{"parent":"MODULE_FUNC","rule":"Url::Normalize","sum":1041437},{"parent":"MODULE_FUNC","rule":"Url::NormalizeWithDefaultHttpScheme","sum":616892},{"parent":"MODULE_FUNC","rule":"Url::Parse","sum":299131},{"parent":"MODULE_FUNC","rule":"Url::PunycodeToHostName","sum":201367},{"parent":"MODULE_FUNC","rule":"Url::QueryStringToDict","sum":153593},{"parent":"MODULE_FUNC","rule":"Url::QueryStringToList","sum":38519},{"parent":"MODULE_FUNC","rule":"Url::ReplaceAll","sum":8},{"parent":"MODULE_FUNC","rule":"YSON::Co","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToDoubleList","sum":2},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToInt64","sum":2},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToList","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToString","sum":5},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToStringList","sum":8},{"parent":"MODULE_FUNC","rule":"YSON::LookupDict","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::LookupInt64","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::LookupString","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::ToString","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::convertToString","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::from","sum":1},{"parent":"MODULE_FUNC","rule":"YSon::ConvertToList","sum":3},{"parent":"MODULE_FUNC","rule":"YSon::ConvertToString","sum":1},{"parent":"MODULE_FUNC","rule":"YSon::LookupString","sum":1},{"parent":"MODULE_FUNC","rule":"YSon::Parse","sum":5},{"parent":"MODULE_FUNC","rule":"Yson::AsList","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::AsTuple","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Attributes","sum":1895},{"parent":"MODULE_FUNC","rule":"Yson::COntains","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::CastToStringList","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Contains","sum":2970778},{"parent":"MODULE_FUNC","rule":"Yson::Conver","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::ConverTToInt64","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConverToDouble","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::ConverToInt64","sum":10},{"parent":"MODULE_FUNC","rule":"Yson::ConverToList","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::ConverToString","sum":21},{"parent":"MODULE_FUNC","rule":"Yson::ConvertFromString","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertTo","sum":8853250},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToAttributes","sum":16},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBool","sum":8786371},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBoolDict","sum":105587},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBoolList","sum":7423},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBoolgDict","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBytes","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDate","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDateTime","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDict","sum":8491755},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDictList","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDictOfDouble","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDictString","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDouble","sum":9500865},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDoubleDict","sum":278052},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDoubleList","sum":1173216},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToFloat","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToFloat64","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToINT64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToIn64","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt","sum":15},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt32","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt32List","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt64","sum":20389333},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt64Dict","sum":187168},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt64List","sum":2391486},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToIntList","sum":5},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInteget","sum":157},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToJson","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToList","sum":18849836},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToListDouble","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToListString","sum":16},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToListg","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToSTring","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToSTringList","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToSetring","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToString","sum":96410632},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStringDict","sum":1445511},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStringInt64","sum":4},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStringList","sum":24313201},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStrint","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStruct","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToText","sum":13},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUINT64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUInt64","sum":8},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUInt64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint32","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint64","sum":8459681},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint64Dict","sum":36715},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint64List","sum":2205194},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUnit64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToevent_value","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToint64","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToint64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertTolIST","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertTolist","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertTostring","sum":4},{"parent":"MODULE_FUNC","rule":"Yson::ConverttoList","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConverttoString","sum":11},{"parent":"MODULE_FUNC","rule":"Yson::ConvvertToString","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Dict","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::Equals","sum":794322},{"parent":"MODULE_FUNC","rule":"Yson::Extract","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FROM","sum":6},{"parent":"MODULE_FUNC","rule":"Yson::Find","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::From","sum":24870602},{"parent":"MODULE_FUNC","rule":"Yson::From64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromAGG_LIST","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromASDFDSKLDJF","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromAboba","sum":4},{"parent":"MODULE_FUNC","rule":"Yson::FromBoolDict","sum":13},{"parent":"MODULE_FUNC","rule":"Yson::FromBytes","sum":16},{"parent":"MODULE_FUNC","rule":"Yson::FromDict","sum":3079},{"parent":"MODULE_FUNC","rule":"Yson::FromDouble","sum":2822},{"parent":"MODULE_FUNC","rule":"Yson::FromDouble64Dict","sum":3692},{"parent":"MODULE_FUNC","rule":"Yson::FromDoubleDict","sum":42356},{"parent":"MODULE_FUNC","rule":"Yson::FromDoubleList","sum":1017},{"parent":"MODULE_FUNC","rule":"Yson::FromInt64Dict","sum":2156},{"parent":"MODULE_FUNC","rule":"Yson::FromInt64List","sum":7488},{"parent":"MODULE_FUNC","rule":"Yson::FromJson","sum":2090},{"parent":"MODULE_FUNC","rule":"Yson::FromKek","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::FromList","sum":4973},{"parent":"MODULE_FUNC","rule":"Yson::FromListTake","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::FromMap","sum":358},{"parent":"MODULE_FUNC","rule":"Yson::FromSHEEEEEEEEEEEEE","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::FromSHIIIIIIIIIII","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromSeconds","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::FromSring","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::FromSting","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromString","sum":56446},{"parent":"MODULE_FUNC","rule":"Yson::FromStringDict","sum":68687},{"parent":"MODULE_FUNC","rule":"Yson::FromStringList","sum":60027},{"parent":"MODULE_FUNC","rule":"Yson::FromStruct","sum":642551},{"parent":"MODULE_FUNC","rule":"Yson::FromUi64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromUin64List","sum":380},{"parent":"MODULE_FUNC","rule":"Yson::FromUint32Dict","sum":10250},{"parent":"MODULE_FUNC","rule":"Yson::FromUint64","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::FromUint64Dict","sum":16143},{"parent":"MODULE_FUNC","rule":"Yson::FromUint64List","sum":25149},{"parent":"MODULE_FUNC","rule":"Yson::FromY2020MachoDachaTbIhaHouse","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Fromt","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::Get","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::GetHash","sum":859162},{"parent":"MODULE_FUNC","rule":"Yson::GetLength","sum":2791907},{"parent":"MODULE_FUNC","rule":"Yson::IsBool","sum":33054},{"parent":"MODULE_FUNC","rule":"Yson::IsDict","sum":262608},{"parent":"MODULE_FUNC","rule":"Yson::IsDouble","sum":98144},{"parent":"MODULE_FUNC","rule":"Yson::IsEntity","sum":2685091},{"parent":"MODULE_FUNC","rule":"Yson::IsInt64","sum":288907},{"parent":"MODULE_FUNC","rule":"Yson::IsList","sum":286841},{"parent":"MODULE_FUNC","rule":"Yson::IsString","sum":1013476},{"parent":"MODULE_FUNC","rule":"Yson::IsUint64","sum":155716},{"parent":"MODULE_FUNC","rule":"Yson::ListMap","sum":12},{"parent":"MODULE_FUNC","rule":"Yson::Lo","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Loo","sum":10},{"parent":"MODULE_FUNC","rule":"Yson::LookUp","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookUpDict","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookUpString","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Lookup","sum":6552294},{"parent":"MODULE_FUNC","rule":"Yson::LookupBool","sum":2149412},{"parent":"MODULE_FUNC","rule":"Yson::LookupDict","sum":402758},{"parent":"MODULE_FUNC","rule":"Yson::LookupDouble","sum":3070211},{"parent":"MODULE_FUNC","rule":"Yson::LookupInt","sum":15},{"parent":"MODULE_FUNC","rule":"Yson::LookupInt32","sum":91},{"parent":"MODULE_FUNC","rule":"Yson::LookupInt64","sum":5509537},{"parent":"MODULE_FUNC","rule":"Yson::LookupInteger","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookupList","sum":1629712},{"parent":"MODULE_FUNC","rule":"Yson::LookupSTRING","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookupString","sum":41167625},{"parent":"MODULE_FUNC","rule":"Yson::LookupStringList","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::LookupStruct","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::LookupTimestamp","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookupUInt64","sum":6},{"parent":"MODULE_FUNC","rule":"Yson::LookupUint64","sum":3799019},{"parent":"MODULE_FUNC","rule":"Yson::LookupsTRING","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LoopUpString","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Option","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Options","sum":9252128},{"parent":"MODULE_FUNC","rule":"Yson::Parse","sum":8639995},{"parent":"MODULE_FUNC","rule":"Yson::ParseJSON","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ParseJson","sum":12631463},{"parent":"MODULE_FUNC","rule":"Yson::ParseJsonDecodeUtf8","sum":135897},{"parent":"MODULE_FUNC","rule":"Yson::Parsejson","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::Path","sum":23},{"parent":"MODULE_FUNC","rule":"Yson::Serialize","sum":3856335},{"parent":"MODULE_FUNC","rule":"Yson::SerializeJson","sum":9796705},{"parent":"MODULE_FUNC","rule":"Yson::SerializeJsonEncodeUtf8","sum":201029},{"parent":"MODULE_FUNC","rule":"Yson::SerializePretty","sum":1186662},{"parent":"MODULE_FUNC","rule":"Yson::SerializeText","sum":609005},{"parent":"MODULE_FUNC","rule":"Yson::WithAttributes","sum":667},{"parent":"MODULE_FUNC","rule":"Yson::YPath","sum":12592591},{"parent":"MODULE_FUNC","rule":"Yson::YPathBool","sum":1170476},{"parent":"MODULE_FUNC","rule":"Yson::YPathBoolean","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::YPathDict","sum":25039},{"parent":"MODULE_FUNC","rule":"Yson::YPathDouble","sum":1376465},{"parent":"MODULE_FUNC","rule":"Yson::YPathInt16","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::YPathInt64","sum":2682245},{"parent":"MODULE_FUNC","rule":"Yson::YPathList","sum":1337807},{"parent":"MODULE_FUNC","rule":"Yson::YPathListString","sum":7},{"parent":"MODULE_FUNC","rule":"Yson::YPathString","sum":13384229},{"parent":"MODULE_FUNC","rule":"Yson::YPathUint64","sum":710582},{"parent":"MODULE_FUNC","rule":"Yson::YaPathString","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::Ypath","sum":21},{"parent":"MODULE_FUNC","rule":"Yson::Yson2","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::convertToInt64","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::convertToString","sum":6},{"parent":"MODULE_FUNC","rule":"Yson::from","sum":14},{"parent":"MODULE_FUNC","rule":"Yson::fromJson","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::lookupString","sum":1},{"parent":"MODULE_FUNC","rule":"dateTime::Format","sum":3},{"parent":"MODULE_FUNC","rule":"dateTime::GetMonth","sum":6},{"parent":"MODULE_FUNC","rule":"dateTime::IntervalFromDays","sum":354},{"parent":"MODULE_FUNC","rule":"dateTime::IntervalFromSeconds","sum":1},{"parent":"MODULE_FUNC","rule":"dateTime::MakeDate","sum":85},{"parent":"MODULE_FUNC","rule":"dateTime::MakeDatetime","sum":7},{"parent":"MODULE_FUNC","rule":"dateTime::StartOfMonth","sum":2},{"parent":"MODULE_FUNC","rule":"datetime::Format","sum":7},{"parent":"MODULE_FUNC","rule":"datetime::FromMilliseconds","sum":2},{"parent":"MODULE_FUNC","rule":"datetime::FromSeconds","sum":3796},{"parent":"MODULE_FUNC","rule":"datetime::GetDayOfWeek","sum":4},{"parent":"MODULE_FUNC","rule":"datetime::GetDayOfWeekName","sum":3},{"parent":"MODULE_FUNC","rule":"datetime::GetHour","sum":8},{"parent":"MODULE_FUNC","rule":"datetime::GetMonth","sum":2},{"parent":"MODULE_FUNC","rule":"datetime::GetYear","sum":5},{"parent":"MODULE_FUNC","rule":"datetime::IntervalFromDays","sum":1346},{"parent":"MODULE_FUNC","rule":"datetime::IntervalFromHours","sum":37},{"parent":"MODULE_FUNC","rule":"datetime::IntervalFromMinutes","sum":6},{"parent":"MODULE_FUNC","rule":"datetime::MakeDate","sum":5460},{"parent":"MODULE_FUNC","rule":"datetime::MakeDatetime","sum":655},{"parent":"MODULE_FUNC","rule":"datetime::MakeTimestamp","sum":1},{"parent":"MODULE_FUNC","rule":"datetime::Parse","sum":398},{"parent":"MODULE_FUNC","rule":"datetime::ParseIso8601","sum":3},{"parent":"MODULE_FUNC","rule":"datetime::ShiftMonths","sum":313},{"parent":"MODULE_FUNC","rule":"datetime::StartOf","sum":1},{"parent":"MODULE_FUNC","rule":"datetime::StartOfDay","sum":2},{"parent":"MODULE_FUNC","rule":"datetime::StartOfMonth","sum":552},{"parent":"MODULE_FUNC","rule":"datetime::StartOfWeek","sum":522},{"parent":"MODULE_FUNC","rule":"datetime::ToDays","sum":376},{"parent":"MODULE_FUNC","rule":"datetime::ToSeconds","sum":729},{"parent":"MODULE_FUNC","rule":"datetime::fromseconds","sum":3},{"parent":"MODULE_FUNC","rule":"digest::city_hash","sum":1},{"parent":"MODULE_FUNC","rule":"hyperscan::Match","sum":1},{"parent":"MODULE_FUNC","rule":"json::ConvertToString","sum":7},{"parent":"MODULE_FUNC","rule":"json::From","sum":1},{"parent":"MODULE_FUNC","rule":"math::floor","sum":1},{"parent":"MODULE_FUNC","rule":"math::log","sum":2},{"parent":"MODULE_FUNC","rule":"math::round","sum":6},{"parent":"MODULE_FUNC","rule":"pg::GENERATE_SERIES","sum":8},{"parent":"MODULE_FUNC","rule":"pg::SPLIT_PART","sum":2},{"parent":"MODULE_FUNC","rule":"pg::age","sum":697},{"parent":"MODULE_FUNC","rule":"pg::array_agg","sum":2},{"parent":"MODULE_FUNC","rule":"pg::date_part","sum":676},{"parent":"MODULE_FUNC","rule":"pg::extract","sum":285},{"parent":"MODULE_FUNC","rule":"pg::generate_series","sum":2},{"parent":"MODULE_FUNC","rule":"pg::st_asgeojson","sum":2},{"parent":"MODULE_FUNC","rule":"pg::st_astext","sum":4},{"parent":"MODULE_FUNC","rule":"pg::st_geomfromewkb","sum":14},{"parent":"MODULE_FUNC","rule":"pg::st_transform","sum":9},{"parent":"MODULE_FUNC","rule":"pg::string_agg","sum":15},{"parent":"MODULE_FUNC","rule":"pire::Capture","sum":7},{"parent":"MODULE_FUNC","rule":"pire::Match","sum":29},{"parent":"MODULE_FUNC","rule":"re2::Capture","sum":2622},{"parent":"MODULE_FUNC","rule":"re2::Grep","sum":1},{"parent":"MODULE_FUNC","rule":"re2::Match","sum":25},{"parent":"MODULE_FUNC","rule":"re2::Replace","sum":438},{"parent":"MODULE_FUNC","rule":"re2::capture","sum":8},{"parent":"MODULE_FUNC","rule":"string::JoinFromList","sum":1},{"parent":"MODULE_FUNC","rule":"string::StartsWith","sum":1},{"parent":"MODULE_FUNC","rule":"string::contains","sum":1},{"parent":"MODULE_FUNC","rule":"string::removeall","sum":4},{"parent":"MODULE_FUNC","rule":"string::splittolist","sum":12},{"parent":"MODULE_FUNC","rule":"string::strip","sum":2},{"parent":"MODULE_FUNC","rule":"url::gethost","sum":1},{"parent":"MODULE_FUNC","rule":"ySoN::CoNveRtTo","sum":1},{"parent":"MODULE_FUNC","rule":"yson::ConvertToDict","sum":1},{"parent":"MODULE_FUNC","rule":"yson::ConvertToDouble","sum":1},{"parent":"MODULE_FUNC","rule":"yson::ConvertToInt64","sum":1},{"parent":"MODULE_FUNC","rule":"yson::ConvertToStringList","sum":2},{"parent":"MODULE_FUNC","rule":"yson::From","sum":1},{"parent":"MODULE_FUNC","rule":"yson::convertto","sum":2},{"parent":"MODULE_FUNC","rule":"yson::converttodoubledict","sum":8},{"parent":"MODULE_FUNC","rule":"yson::converttolist","sum":1},{"parent":"MODULE_FUNC","rule":"yson::converttostring","sum":3},{"parent":"MODULE_FUNC","rule":"yson::converttostringdict","sum":8},{"parent":"MODULE_FUNC","rule":"yson::from","sum":2},{"parent":"MODULE_FUNC","rule":"yson::options","sum":8},{"parent":"MODULE_FUNC","rule":"yson::parsejson","sum":16},{"parent":"TRule_action_or_subquery_args","rule":"TRule_action_or_subquery_args.Block2","sum":4874480},{"parent":"TRule_action_or_subquery_args","rule":"TRule_action_or_subquery_args.Rule_opt_bind_parameter1","sum":13863320},{"parent":"TRule_action_or_subquery_args.TBlock2","rule":"TRule_action_or_subquery_args.TBlock2.Rule_opt_bind_parameter2","sum":7419395},{"parent":"TRule_action_or_subquery_args.TBlock2","rule":"TRule_action_or_subquery_args.TBlock2.Token1","sum":7419395},{"parent":"TRule_add_subexpr","rule":"TRule_add_subexpr.Block2","sum":136130356},{"parent":"TRule_add_subexpr","rule":"TRule_add_subexpr.Rule_mul_subexpr1","sum":15578887004},{"parent":"TRule_add_subexpr.TBlock2","rule":"TRule_add_subexpr.TBlock2.Rule_mul_subexpr2","sum":167530812},{"parent":"TRule_add_subexpr.TBlock2","rule":"TRule_add_subexpr.TBlock2.Token1","sum":167530812},{"parent":"TRule_an_id","rule":"TRule_an_id.Alt_an_id1","sum":1991339715},{"parent":"TRule_an_id.TAlt1","rule":"TRule_an_id.TAlt1.Rule_id1","sum":1991339715},{"parent":"TRule_an_id_as_compat","rule":"TRule_an_id_as_compat.Alt_an_id_as_compat1","sum":2917673},{"parent":"TRule_an_id_as_compat.TAlt1","rule":"TRule_an_id_as_compat.TAlt1.Rule_id_as_compat1","sum":2917673},{"parent":"TRule_an_id_expr","rule":"TRule_an_id_expr.Alt_an_id_expr1","sum":96096575},{"parent":"TRule_an_id_expr.TAlt1","rule":"TRule_an_id_expr.TAlt1.Rule_id_expr1","sum":96096575},{"parent":"TRule_an_id_hint","rule":"TRule_an_id_hint.Alt_an_id_hint1","sum":153546171},{"parent":"TRule_an_id_hint.TAlt1","rule":"TRule_an_id_hint.TAlt1.Rule_id_hint1","sum":153546171},{"parent":"TRule_an_id_or_type","rule":"TRule_an_id_or_type.Alt_an_id_or_type1","sum":9580237140},{"parent":"TRule_an_id_or_type","rule":"TRule_an_id_or_type.Alt_an_id_or_type2","sum":7},{"parent":"TRule_an_id_or_type.TAlt1","rule":"TRule_an_id_or_type.TAlt1.Rule_id_or_type1","sum":9580237140},{"parent":"TRule_an_id_or_type.TAlt2","rule":"TRule_an_id_or_type.TAlt2.Token1","sum":7},{"parent":"TRule_an_id_pure","rule":"TRule_an_id_pure.Alt_an_id_pure1","sum":674730413},{"parent":"TRule_an_id_pure.TAlt1","rule":"TRule_an_id_pure.TAlt1.Rule_identifier1","sum":674730413},{"parent":"TRule_an_id_schema","rule":"TRule_an_id_schema.Alt_an_id_schema1","sum":1286},{"parent":"TRule_an_id_schema.TAlt1","rule":"TRule_an_id_schema.TAlt1.Rule_id_schema1","sum":1286},{"parent":"TRule_an_id_table","rule":"TRule_an_id_table.Alt_an_id_table1","sum":330498585},{"parent":"TRule_an_id_table","rule":"TRule_an_id_table.Alt_an_id_table2","sum":1},{"parent":"TRule_an_id_table.TAlt1","rule":"TRule_an_id_table.TAlt1.Rule_id_table1","sum":330498585},{"parent":"TRule_an_id_table.TAlt2","rule":"TRule_an_id_table.TAlt2.Token1","sum":1},{"parent":"TRule_an_id_window","rule":"TRule_an_id_window.Alt_an_id_window1","sum":46472719},{"parent":"TRule_an_id_window.TAlt1","rule":"TRule_an_id_window.TAlt1.Rule_id_window1","sum":46472719},{"parent":"TRule_an_id_without","rule":"TRule_an_id_without.Alt_an_id_without1","sum":23122170},{"parent":"TRule_an_id_without.TAlt1","rule":"TRule_an_id_without.TAlt1.Rule_id_without1","sum":23122170},{"parent":"TRule_and_subexpr","rule":"TRule_and_subexpr.Block2","sum":29488},{"parent":"TRule_and_subexpr","rule":"TRule_and_subexpr.Rule_xor_subexpr1","sum":14246157279},{"parent":"TRule_and_subexpr.TBlock2","rule":"TRule_and_subexpr.TBlock2.Rule_xor_subexpr2","sum":29552},{"parent":"TRule_and_subexpr.TBlock2","rule":"TRule_and_subexpr.TBlock2.Token1","sum":29552},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr1","sum":5167329915},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr10","sum":35705142},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr11","sum":8458526},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr12","sum":14420408},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr2","sum":1761410676},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr3","sum":444713693},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr4","sum":397451793},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr5","sum":76996},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr6","sum":61323841},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr7","sum":924342021},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr8","sum":161016},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr9","sum":501677},{"parent":"TRule_atom_expr.TAlt1","rule":"TRule_atom_expr.TAlt1.Rule_literal_value1","sum":5167329915},{"parent":"TRule_atom_expr.TAlt10","rule":"TRule_atom_expr.TAlt10.Rule_list_literal1","sum":35705142},{"parent":"TRule_atom_expr.TAlt11","rule":"TRule_atom_expr.TAlt11.Rule_dict_literal1","sum":8458526},{"parent":"TRule_atom_expr.TAlt12","rule":"TRule_atom_expr.TAlt12.Rule_struct_literal1","sum":14420408},{"parent":"TRule_atom_expr.TAlt2","rule":"TRule_atom_expr.TAlt2.Rule_bind_parameter1","sum":1761410676},{"parent":"TRule_atom_expr.TAlt3","rule":"TRule_atom_expr.TAlt3.Rule_lambda1","sum":444713693},{"parent":"TRule_atom_expr.TAlt4","rule":"TRule_atom_expr.TAlt4.Rule_cast_expr1","sum":397451793},{"parent":"TRule_atom_expr.TAlt5","rule":"TRule_atom_expr.TAlt5.Rule_exists_expr1","sum":76996},{"parent":"TRule_atom_expr.TAlt6","rule":"TRule_atom_expr.TAlt6.Rule_case_expr1","sum":61323841},{"parent":"TRule_atom_expr.TAlt7","rule":"TRule_atom_expr.TAlt7.Block3","sum":924342021},{"parent":"TRule_atom_expr.TAlt7","rule":"TRule_atom_expr.TAlt7.Rule_an_id_or_type1","sum":924342021},{"parent":"TRule_atom_expr.TAlt7","rule":"TRule_atom_expr.TAlt7.Token2","sum":924342021},{"parent":"TRule_atom_expr.TAlt7.TBlock3","rule":"TRule_atom_expr.TAlt7.TBlock3.Alt1","sum":924340776},{"parent":"TRule_atom_expr.TAlt7.TBlock3","rule":"TRule_atom_expr.TAlt7.TBlock3.Alt2","sum":1245},{"parent":"TRule_atom_expr.TAlt7.TBlock3.TAlt1","rule":"TRule_atom_expr.TAlt7.TBlock3.TAlt1.Rule_id_or_type1","sum":924340776},{"parent":"TRule_atom_expr.TAlt7.TBlock3.TAlt2","rule":"TRule_atom_expr.TAlt7.TBlock3.TAlt2.Token1","sum":1245},{"parent":"TRule_atom_expr.TAlt8","rule":"TRule_atom_expr.TAlt8.Rule_value_constructor1","sum":161016},{"parent":"TRule_atom_expr.TAlt9","rule":"TRule_atom_expr.TAlt9.Rule_bitcast_expr1","sum":501677},{"parent":"TRule_bind_parameter","rule":"TRule_bind_parameter.Block2","sum":3682021854},{"parent":"TRule_bind_parameter","rule":"TRule_bind_parameter.Token1","sum":3682021854},{"parent":"TRule_bind_parameter.TBlock2","rule":"TRule_bind_parameter.TBlock2.Alt1","sum":3682009956},{"parent":"TRule_bind_parameter.TBlock2","rule":"TRule_bind_parameter.TBlock2.Alt2","sum":9444},{"parent":"TRule_bind_parameter.TBlock2","rule":"TRule_bind_parameter.TBlock2.Alt3","sum":2454},{"parent":"TRule_bind_parameter.TBlock2.TAlt1","rule":"TRule_bind_parameter.TBlock2.TAlt1.Rule_an_id_or_type1","sum":3682009956},{"parent":"TRule_bind_parameter.TBlock2.TAlt2","rule":"TRule_bind_parameter.TBlock2.TAlt2.Token1","sum":9444},{"parent":"TRule_bind_parameter.TBlock2.TAlt3","rule":"TRule_bind_parameter.TBlock2.TAlt3.Token1","sum":2454},{"parent":"TRule_bind_parameter_list","rule":"TRule_bind_parameter_list.Block2","sum":235943},{"parent":"TRule_bind_parameter_list","rule":"TRule_bind_parameter_list.Rule_bind_parameter1","sum":1002566900},{"parent":"TRule_bind_parameter_list.TBlock2","rule":"TRule_bind_parameter_list.TBlock2.Rule_bind_parameter2","sum":322786},{"parent":"TRule_bind_parameter_list.TBlock2","rule":"TRule_bind_parameter_list.TBlock2.Token1","sum":322786},{"parent":"TRule_bit_subexpr","rule":"TRule_bit_subexpr.Block2","sum":137841123},{"parent":"TRule_bit_subexpr","rule":"TRule_bit_subexpr.Rule_add_subexpr1","sum":15421715199},{"parent":"TRule_bit_subexpr.TBlock2","rule":"TRule_bit_subexpr.TBlock2.Rule_add_subexpr2","sum":157171805},{"parent":"TRule_bit_subexpr.TBlock2","rule":"TRule_bit_subexpr.TBlock2.Token1","sum":157171805},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Rule_expr3","sum":501677},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Rule_type_name_simple5","sum":501677},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token1","sum":501677},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token2","sum":501677},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token4","sum":501677},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token6","sum":501677},{"parent":"TRule_bool_value","rule":"TRule_bool_value.Token1","sum":103662442},{"parent":"TRule_call_action","rule":"TRule_call_action.Block1","sum":9387011},{"parent":"TRule_call_action","rule":"TRule_call_action.Block3","sum":7125589},{"parent":"TRule_call_action","rule":"TRule_call_action.Token2","sum":9387011},{"parent":"TRule_call_action","rule":"TRule_call_action.Token4","sum":9387011},{"parent":"TRule_call_action.TBlock1","rule":"TRule_call_action.TBlock1.Alt1","sum":9261232},{"parent":"TRule_call_action.TBlock1","rule":"TRule_call_action.TBlock1.Alt2","sum":125779},{"parent":"TRule_call_action.TBlock1.TAlt1","rule":"TRule_call_action.TBlock1.TAlt1.Rule_bind_parameter1","sum":9261232},{"parent":"TRule_call_action.TBlock1.TAlt2","rule":"TRule_call_action.TBlock1.TAlt2.Token1","sum":125779},{"parent":"TRule_call_action.TBlock3","rule":"TRule_call_action.TBlock3.Rule_expr_list1","sum":7125589},{"parent":"TRule_callable_arg","rule":"TRule_callable_arg.Block2","sum":1},{"parent":"TRule_callable_arg","rule":"TRule_callable_arg.Rule_variant_arg1","sum":17897089},{"parent":"TRule_callable_arg.TBlock2","rule":"TRule_callable_arg.TBlock2.Token1","sum":1},{"parent":"TRule_callable_arg.TBlock2","rule":"TRule_callable_arg.TBlock2.Token2","sum":1},{"parent":"TRule_callable_arg.TBlock2","rule":"TRule_callable_arg.TBlock2.Token3","sum":1},{"parent":"TRule_callable_arg_list","rule":"TRule_callable_arg_list.Block2","sum":4335701},{"parent":"TRule_callable_arg_list","rule":"TRule_callable_arg_list.Rule_callable_arg1","sum":9731361},{"parent":"TRule_callable_arg_list.TBlock2","rule":"TRule_callable_arg_list.TBlock2.Rule_callable_arg2","sum":8165728},{"parent":"TRule_callable_arg_list.TBlock2","rule":"TRule_callable_arg_list.TBlock2.Token1","sum":8165728},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Block2","sum":4728673},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Block3","sum":61323845},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Block4","sum":61323845},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Token1","sum":61323845},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Token5","sum":61323845},{"parent":"TRule_case_expr.TBlock2","rule":"TRule_case_expr.TBlock2.Rule_expr1","sum":4728673},{"parent":"TRule_case_expr.TBlock3","rule":"TRule_case_expr.TBlock3.Rule_when_expr1","sum":157500144},{"parent":"TRule_case_expr.TBlock4","rule":"TRule_case_expr.TBlock4.Rule_expr2","sum":61323845},{"parent":"TRule_case_expr.TBlock4","rule":"TRule_case_expr.TBlock4.Token1","sum":61323845},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Rule_expr3","sum":397496235},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Rule_type_name_or_bind5","sum":397496235},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token1","sum":397496235},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token2","sum":397496235},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token4","sum":397496235},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token6","sum":397496235},{"parent":"TRule_cluster_expr","rule":"TRule_cluster_expr.Block1","sum":6754440},{"parent":"TRule_cluster_expr","rule":"TRule_cluster_expr.Block2","sum":373099947},{"parent":"TRule_cluster_expr.TBlock1","rule":"TRule_cluster_expr.TBlock1.Rule_an_id1","sum":6754440},{"parent":"TRule_cluster_expr.TBlock1","rule":"TRule_cluster_expr.TBlock1.Token2","sum":6754440},{"parent":"TRule_cluster_expr.TBlock2","rule":"TRule_cluster_expr.TBlock2.Alt1","sum":373099947},{"parent":"TRule_cluster_expr.TBlock2.TAlt1","rule":"TRule_cluster_expr.TBlock2.TAlt1.Rule_pure_column_or_named1","sum":373099947},{"parent":"TRule_column_list","rule":"TRule_column_list.Block2","sum":277335},{"parent":"TRule_column_list","rule":"TRule_column_list.Block3","sum":762},{"parent":"TRule_column_list","rule":"TRule_column_list.Rule_column_name1","sum":838466},{"parent":"TRule_column_list.TBlock2","rule":"TRule_column_list.TBlock2.Rule_column_name2","sum":1118235},{"parent":"TRule_column_list.TBlock2","rule":"TRule_column_list.TBlock2.Token1","sum":1118235},{"parent":"TRule_column_list.TBlock3","rule":"TRule_column_list.TBlock3.Token1","sum":762},{"parent":"TRule_column_name","rule":"TRule_column_name.Rule_an_id2","sum":23207765},{"parent":"TRule_column_name","rule":"TRule_column_name.Rule_opt_id_prefix1","sum":23207765},{"parent":"TRule_column_order_by_specification","rule":"TRule_column_order_by_specification.Rule_an_id1","sum":117},{"parent":"TRule_column_schema","rule":"TRule_column_schema.Rule_an_id_schema1","sum":1286},{"parent":"TRule_column_schema","rule":"TRule_column_schema.Rule_opt_column_constraints4","sum":1286},{"parent":"TRule_column_schema","rule":"TRule_column_schema.Rule_type_name_or_bind2","sum":1286},{"parent":"TRule_commit_stmt","rule":"TRule_commit_stmt.Token1","sum":12985670},{"parent":"TRule_con_subexpr","rule":"TRule_con_subexpr.Alt_con_subexpr1","sum":15887314010},{"parent":"TRule_con_subexpr","rule":"TRule_con_subexpr.Alt_con_subexpr2","sum":87288612},{"parent":"TRule_con_subexpr.TAlt1","rule":"TRule_con_subexpr.TAlt1.Rule_unary_subexpr1","sum":15887314010},{"parent":"TRule_con_subexpr.TAlt2","rule":"TRule_con_subexpr.TAlt2.Rule_unary_op1","sum":87288612},{"parent":"TRule_con_subexpr.TAlt2","rule":"TRule_con_subexpr.TAlt2.Rule_unary_subexpr2","sum":87288612},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr1","sum":52031343},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr2","sum":126033122},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr3","sum":172004062},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr4","sum":24780845},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr5","sum":716833017},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Block1","sum":9227033},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Block4","sum":93875},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Rule_eq_subexpr3","sum":52031343},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Rule_match_op2","sum":52031343},{"parent":"TRule_cond_expr.TAlt1.TBlock1","rule":"TRule_cond_expr.TAlt1.TBlock1.Token1","sum":9227033},{"parent":"TRule_cond_expr.TAlt1.TBlock4","rule":"TRule_cond_expr.TAlt1.TBlock4.Rule_eq_subexpr2","sum":93875},{"parent":"TRule_cond_expr.TAlt1.TBlock4","rule":"TRule_cond_expr.TAlt1.TBlock4.Token1","sum":93875},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Block1","sum":26082912},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Block3","sum":3149029},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Rule_in_expr4","sum":126033122},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Token2","sum":126033122},{"parent":"TRule_cond_expr.TAlt2.TBlock1","rule":"TRule_cond_expr.TAlt2.TBlock1.Token1","sum":26082912},{"parent":"TRule_cond_expr.TAlt2.TBlock3","rule":"TRule_cond_expr.TAlt2.TBlock3.Token1","sum":3149029},{"parent":"TRule_cond_expr.TAlt3","rule":"TRule_cond_expr.TAlt3.Block1","sum":172004062},{"parent":"TRule_cond_expr.TAlt3.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.Alt1","sum":162},{"parent":"TRule_cond_expr.TAlt3.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.Alt2","sum":413},{"parent":"TRule_cond_expr.TAlt3.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.Alt3","sum":60447743},{"parent":"TRule_cond_expr.TAlt3.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.Alt4","sum":111555744},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt1","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt1.Token1","sum":162},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt2","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt2.Token1","sum":413},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt3","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt3.Token1","sum":60447743},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt3","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt3.Token2","sum":60447743},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.Block1","sum":111514343},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.Token2","sum":111555744},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.Token3","sum":111555744},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.TBlock1.Token1","sum":111514343},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Block1","sum":399471},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Block3","sum":25},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Rule_eq_subexpr4","sum":24780845},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Rule_eq_subexpr6","sum":24780845},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Token2","sum":24780845},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Token5","sum":24780845},{"parent":"TRule_cond_expr.TAlt4.TBlock1","rule":"TRule_cond_expr.TAlt4.TBlock1.Token1","sum":399471},{"parent":"TRule_cond_expr.TAlt4.TBlock3","rule":"TRule_cond_expr.TAlt4.TBlock3.Token1","sum":25},{"parent":"TRule_cond_expr.TAlt5","rule":"TRule_cond_expr.TAlt5.Block1","sum":716833017},{"parent":"TRule_cond_expr.TAlt5.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.Block1","sum":716835030},{"parent":"TRule_cond_expr.TAlt5.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.Rule_eq_subexpr2","sum":716835030},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt1","sum":490458705},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt2","sum":171386461},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt3","sum":49527982},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt4","sum":5069975},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt5","sum":391907},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt1.Token1","sum":490458705},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt2","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt2.Token1","sum":171386461},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt3","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt3.Token1","sum":49527982},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt4.Token1","sum":5069975},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt5","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt5.Rule_distinct_from_op1","sum":391907},{"parent":"TRule_create_table_entry","rule":"TRule_create_table_entry.Alt_create_table_entry1","sum":1286},{"parent":"TRule_create_table_entry","rule":"TRule_create_table_entry.Alt_create_table_entry2","sum":253},{"parent":"TRule_create_table_entry.TAlt1","rule":"TRule_create_table_entry.TAlt1.Rule_column_schema1","sum":1286},{"parent":"TRule_create_table_entry.TAlt2","rule":"TRule_create_table_entry.TAlt2.Rule_table_constraint1","sum":253},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Block3","sum":137},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Block8","sum":137},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Rule_create_table_entry7","sum":137},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Rule_simple_table_ref5","sum":137},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Token1","sum":137},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Token10","sum":137},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Token6","sum":137},{"parent":"TRule_create_table_stmt.TBlock3","rule":"TRule_create_table_stmt.TBlock3.Alt1","sum":137},{"parent":"TRule_create_table_stmt.TBlock3.TAlt1","rule":"TRule_create_table_stmt.TBlock3.TAlt1.Token1","sum":137},{"parent":"TRule_create_table_stmt.TBlock8","rule":"TRule_create_table_stmt.TBlock8.Rule_create_table_entry2","sum":1402},{"parent":"TRule_create_table_stmt.TBlock8","rule":"TRule_create_table_stmt.TBlock8.Token1","sum":1402},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Rule_ordinary_grouping_set_list3","sum":277764},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Token1","sum":277764},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Token2","sum":277764},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Token4","sum":277764},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Rule_bind_parameter2","sum":154773177},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Rule_type_name4","sum":154773177},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Token1","sum":154773177},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Token3","sum":154773177},{"parent":"TRule_define_action_or_subquery_body","rule":"TRule_define_action_or_subquery_body.Block1","sum":45289},{"parent":"TRule_define_action_or_subquery_body","rule":"TRule_define_action_or_subquery_body.Block2","sum":35937107},{"parent":"TRule_define_action_or_subquery_body.TBlock1","rule":"TRule_define_action_or_subquery_body.TBlock1.Token1","sum":45289},{"parent":"TRule_define_action_or_subquery_body.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.Block2","sum":15998025},{"parent":"TRule_define_action_or_subquery_body.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.Block3","sum":23395636},{"parent":"TRule_define_action_or_subquery_body.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.Rule_sql_stmt_core1","sum":35937107},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.Block1","sum":45662997},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.Rule_sql_stmt_core2","sum":45662997},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.TBlock1","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.TBlock1.Token1","sum":45676021},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock3","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock3.Token1","sum":23420787},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Block5","sum":13863320},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Rule_bind_parameter3","sum":22146478},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Rule_define_action_or_subquery_body8","sum":22146478},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token1","sum":22146478},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token10","sum":22146478},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token2","sum":22146478},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token4","sum":22146478},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token6","sum":22146478},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token7","sum":22146478},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token9","sum":22146478},{"parent":"TRule_define_action_or_subquery_stmt.TBlock5","rule":"TRule_define_action_or_subquery_stmt.TBlock5.Rule_action_or_subquery_args1","sum":13863320},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Block2","sum":8186701},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Block3","sum":2240048},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Token1","sum":8913652},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Token4","sum":8913652},{"parent":"TRule_dict_literal.TBlock2","rule":"TRule_dict_literal.TBlock2.Rule_expr_dict_list1","sum":8186701},{"parent":"TRule_dict_literal.TBlock3","rule":"TRule_dict_literal.TBlock3.Token1","sum":2240048},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Block2","sum":119057},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Token1","sum":391907},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Token3","sum":391907},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Token4","sum":391907},{"parent":"TRule_distinct_from_op.TBlock2","rule":"TRule_distinct_from_op.TBlock2.Token1","sum":119057},{"parent":"TRule_do_stmt","rule":"TRule_do_stmt.Block2","sum":23184321},{"parent":"TRule_do_stmt","rule":"TRule_do_stmt.Token1","sum":23184321},{"parent":"TRule_do_stmt.TBlock2","rule":"TRule_do_stmt.TBlock2.Alt1","sum":9387011},{"parent":"TRule_do_stmt.TBlock2","rule":"TRule_do_stmt.TBlock2.Alt2","sum":13797310},{"parent":"TRule_do_stmt.TBlock2.TAlt1","rule":"TRule_do_stmt.TBlock2.TAlt1.Rule_call_action1","sum":9387011},{"parent":"TRule_do_stmt.TBlock2.TAlt2","rule":"TRule_do_stmt.TBlock2.TAlt2.Rule_inline_action1","sum":13797310},{"parent":"TRule_double_question","rule":"TRule_double_question.Token1","sum":108571603},{"parent":"TRule_double_question","rule":"TRule_double_question.Token2","sum":108571603},{"parent":"TRule_drop_table_stmt","rule":"TRule_drop_table_stmt.Block2","sum":2560940},{"parent":"TRule_drop_table_stmt","rule":"TRule_drop_table_stmt.Block3","sum":3},{"parent":"TRule_drop_table_stmt","rule":"TRule_drop_table_stmt.Rule_simple_table_ref4","sum":2560940},{"parent":"TRule_drop_table_stmt","rule":"TRule_drop_table_stmt.Token1","sum":2560940},{"parent":"TRule_drop_table_stmt.TBlock2","rule":"TRule_drop_table_stmt.TBlock2.Alt1","sum":2560940},{"parent":"TRule_drop_table_stmt.TBlock2.TAlt1","rule":"TRule_drop_table_stmt.TBlock2.TAlt1.Token1","sum":2560940},{"parent":"TRule_drop_table_stmt.TBlock3","rule":"TRule_drop_table_stmt.TBlock3.Token1","sum":3},{"parent":"TRule_drop_table_stmt.TBlock3","rule":"TRule_drop_table_stmt.TBlock3.Token2","sum":3},{"parent":"TRule_eq_subexpr","rule":"TRule_eq_subexpr.Block2","sum":239228334},{"parent":"TRule_eq_subexpr","rule":"TRule_eq_subexpr.Rule_neq_subexpr1","sum":15064708769},{"parent":"TRule_eq_subexpr.TBlock2","rule":"TRule_eq_subexpr.TBlock2.Rule_neq_subexpr2","sum":239228389},{"parent":"TRule_eq_subexpr.TBlock2","rule":"TRule_eq_subexpr.TBlock2.Token1","sum":239228389},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Block3","sum":76996},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Token1","sum":76996},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Token2","sum":76996},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Token4","sum":76996},{"parent":"TRule_exists_expr.TBlock3","rule":"TRule_exists_expr.TBlock3.Alt1","sum":76996},{"parent":"TRule_exists_expr.TBlock3.TAlt1","rule":"TRule_exists_expr.TBlock3.TAlt1.Rule_select_stmt1","sum":76996},{"parent":"TRule_expr","rule":"TRule_expr.Alt_expr1","sum":13661547647},{"parent":"TRule_expr","rule":"TRule_expr.Alt_expr2","sum":17316702},{"parent":"TRule_expr.TAlt1","rule":"TRule_expr.TAlt1.Block2","sum":68173343},{"parent":"TRule_expr.TAlt1","rule":"TRule_expr.TAlt1.Rule_or_subexpr1","sum":13661547647},{"parent":"TRule_expr.TAlt1.TBlock2","rule":"TRule_expr.TAlt1.TBlock2.Rule_or_subexpr2","sum":114910990},{"parent":"TRule_expr.TAlt1.TBlock2","rule":"TRule_expr.TAlt1.TBlock2.Token1","sum":114910990},{"parent":"TRule_expr.TAlt2","rule":"TRule_expr.TAlt2.Rule_type_name_composite1","sum":17316702},{"parent":"TRule_expr_dict_list","rule":"TRule_expr_dict_list.Block2","sum":6987187},{"parent":"TRule_expr_dict_list","rule":"TRule_expr_dict_list.Block3","sum":6609858},{"parent":"TRule_expr_dict_list","rule":"TRule_expr_dict_list.Rule_expr1","sum":8186701},{"parent":"TRule_expr_dict_list.TBlock2","rule":"TRule_expr_dict_list.TBlock2.Rule_expr2","sum":6987187},{"parent":"TRule_expr_dict_list.TBlock2","rule":"TRule_expr_dict_list.TBlock2.Token1","sum":6987187},{"parent":"TRule_expr_dict_list.TBlock3","rule":"TRule_expr_dict_list.TBlock3.Block3","sum":35002670},{"parent":"TRule_expr_dict_list.TBlock3","rule":"TRule_expr_dict_list.TBlock3.Rule_expr2","sum":41922446},{"parent":"TRule_expr_dict_list.TBlock3","rule":"TRule_expr_dict_list.TBlock3.Token1","sum":41922446},{"parent":"TRule_expr_dict_list.TBlock3.TBlock3","rule":"TRule_expr_dict_list.TBlock3.TBlock3.Rule_expr2","sum":35002670},{"parent":"TRule_expr_dict_list.TBlock3.TBlock3","rule":"TRule_expr_dict_list.TBlock3.TBlock3.Token1","sum":35002670},{"parent":"TRule_expr_list","rule":"TRule_expr_list.Block2","sum":41640838},{"parent":"TRule_expr_list","rule":"TRule_expr_list.Rule_expr1","sum":67094752},{"parent":"TRule_expr_list.TBlock2","rule":"TRule_expr_list.TBlock2.Rule_expr2","sum":205214370},{"parent":"TRule_expr_list.TBlock2","rule":"TRule_expr_list.TBlock2.Token1","sum":205214370},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Block4","sum":12377549},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Rule_expr1","sum":14291717},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Rule_expr3","sum":14291717},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Token2","sum":14291717},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Rule_expr2","sum":30895823},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Rule_expr4","sum":30895823},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Token1","sum":30895823},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Token3","sum":30895823},{"parent":"TRule_ext_order_by_clause","rule":"TRule_ext_order_by_clause.Block1","sum":2547590},{"parent":"TRule_ext_order_by_clause","rule":"TRule_ext_order_by_clause.Rule_order_by_clause2","sum":88178773},{"parent":"TRule_ext_order_by_clause.TBlock1","rule":"TRule_ext_order_by_clause.TBlock1.Token1","sum":2547590},{"parent":"TRule_flatten_by_arg","rule":"TRule_flatten_by_arg.Alt_flatten_by_arg1","sum":21251064},{"parent":"TRule_flatten_by_arg","rule":"TRule_flatten_by_arg.Alt_flatten_by_arg2","sum":4298431},{"parent":"TRule_flatten_by_arg.TAlt1","rule":"TRule_flatten_by_arg.TAlt1.Rule_named_column1","sum":21251064},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Block3","sum":50342},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Rule_named_expr_list2","sum":4298431},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Token1","sum":4298431},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Token4","sum":4298431},{"parent":"TRule_flatten_by_arg.TAlt2.TBlock3","rule":"TRule_flatten_by_arg.TAlt2.TBlock3.Token1","sum":50342},{"parent":"TRule_flatten_source","rule":"TRule_flatten_source.Block2","sum":33439229},{"parent":"TRule_flatten_source","rule":"TRule_flatten_source.Rule_named_single_source1","sum":1049358312},{"parent":"TRule_flatten_source.TBlock2","rule":"TRule_flatten_source.TBlock2.Block2","sum":33439229},{"parent":"TRule_flatten_source.TBlock2","rule":"TRule_flatten_source.TBlock2.Token1","sum":33439229},{"parent":"TRule_flatten_source.TBlock2.TBlock2","rule":"TRule_flatten_source.TBlock2.TBlock2.Alt1","sum":25549495},{"parent":"TRule_flatten_source.TBlock2.TBlock2","rule":"TRule_flatten_source.TBlock2.TBlock2.Alt2","sum":7889734},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.Block1","sum":19506949},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.Rule_flatten_by_arg3","sum":25549495},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.Token2","sum":25549495},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.TBlock1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.TBlock1.Token1","sum":19506949},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt2","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt2.Token1","sum":7889734},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Block1","sum":6943161},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Block2","sum":7},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Block8","sum":64542},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Rule_bind_parameter4","sum":6943272},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Rule_do_stmt7","sum":6943272},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Rule_expr6","sum":6943272},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Token3","sum":6943272},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Token5","sum":6943272},{"parent":"TRule_for_stmt.TBlock1","rule":"TRule_for_stmt.TBlock1.Token1","sum":6943161},{"parent":"TRule_for_stmt.TBlock2","rule":"TRule_for_stmt.TBlock2.Token1","sum":7},{"parent":"TRule_for_stmt.TBlock8","rule":"TRule_for_stmt.TBlock8.Rule_do_stmt2","sum":64542},{"parent":"TRule_for_stmt.TBlock8","rule":"TRule_for_stmt.TBlock8.Token1","sum":64542},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Block2","sum":1598829},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Block6","sum":6},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Rule_grouping_element_list5","sum":137629459},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Rule_opt_set_quantifier4","sum":137629459},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Token1","sum":137629459},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Token3","sum":137629459},{"parent":"TRule_group_by_clause.TBlock2","rule":"TRule_group_by_clause.TBlock2.Token1","sum":1598829},{"parent":"TRule_group_by_clause.TBlock6","rule":"TRule_group_by_clause.TBlock6.Rule_an_id2","sum":6},{"parent":"TRule_group_by_clause.TBlock6","rule":"TRule_group_by_clause.TBlock6.Token1","sum":6},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element1","sum":299922312},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element2","sum":61937},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element3","sum":277764},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element4","sum":92760},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element5","sum":23},{"parent":"TRule_grouping_element.TAlt1","rule":"TRule_grouping_element.TAlt1.Rule_ordinary_grouping_set1","sum":299922312},{"parent":"TRule_grouping_element.TAlt2","rule":"TRule_grouping_element.TAlt2.Rule_rollup_list1","sum":61937},{"parent":"TRule_grouping_element.TAlt3","rule":"TRule_grouping_element.TAlt3.Rule_cube_list1","sum":277764},{"parent":"TRule_grouping_element.TAlt4","rule":"TRule_grouping_element.TAlt4.Rule_grouping_sets_specification1","sum":92760},{"parent":"TRule_grouping_element.TAlt5","rule":"TRule_grouping_element.TAlt5.Rule_hopping_window_specification1","sum":23},{"parent":"TRule_grouping_element_list","rule":"TRule_grouping_element_list.Block2","sum":62592674},{"parent":"TRule_grouping_element_list","rule":"TRule_grouping_element_list.Rule_grouping_element1","sum":137722219},{"parent":"TRule_grouping_element_list.TBlock2","rule":"TRule_grouping_element_list.TBlock2.Rule_grouping_element2","sum":162632577},{"parent":"TRule_grouping_element_list.TBlock2","rule":"TRule_grouping_element_list.TBlock2.Token1","sum":162632577},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Rule_grouping_element_list4","sum":92760},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token1","sum":92760},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token2","sum":92760},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token3","sum":92760},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token5","sum":92760},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Rule_expr3","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Rule_expr5","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Rule_expr7","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Rule_expr9","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Token1","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Token10","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Token2","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Token4","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Token6","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Token8","sum":23},{"parent":"TRule_id","rule":"TRule_id.Alt_id1","sum":12063488533},{"parent":"TRule_id","rule":"TRule_id.Alt_id2","sum":528985260},{"parent":"TRule_id.TAlt1","rule":"TRule_id.TAlt1.Rule_identifier1","sum":12063488533},{"parent":"TRule_id.TAlt2","rule":"TRule_id.TAlt2.Rule_keyword1","sum":528985260},{"parent":"TRule_id_as_compat","rule":"TRule_id_as_compat.Alt_id_as_compat1","sum":2915239},{"parent":"TRule_id_as_compat","rule":"TRule_id_as_compat.Alt_id_as_compat2","sum":2434},{"parent":"TRule_id_as_compat.TAlt1","rule":"TRule_id_as_compat.TAlt1.Rule_identifier1","sum":2915239},{"parent":"TRule_id_as_compat.TAlt2","rule":"TRule_id_as_compat.TAlt2.Rule_keyword_as_compat1","sum":2434},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr1","sum":6894549449},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr2","sum":318138520},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr3","sum":447776},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr5","sum":35140433},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr6","sum":181847},{"parent":"TRule_id_expr.TAlt1","rule":"TRule_id_expr.TAlt1.Rule_identifier1","sum":6894549449},{"parent":"TRule_id_expr.TAlt2","rule":"TRule_id_expr.TAlt2.Rule_keyword_compat1","sum":318138520},{"parent":"TRule_id_expr.TAlt3","rule":"TRule_id_expr.TAlt3.Rule_keyword_alter_uncompat1","sum":447776},{"parent":"TRule_id_expr.TAlt5","rule":"TRule_id_expr.TAlt5.Rule_keyword_window_uncompat1","sum":35140433},{"parent":"TRule_id_expr.TAlt6","rule":"TRule_id_expr.TAlt6.Rule_keyword_hint_uncompat1","sum":181847},{"parent":"TRule_id_expr_in","rule":"TRule_id_expr_in.Alt_id_expr_in1","sum":5622636},{"parent":"TRule_id_expr_in","rule":"TRule_id_expr_in.Alt_id_expr_in2","sum":72371},{"parent":"TRule_id_expr_in","rule":"TRule_id_expr_in.Alt_id_expr_in4","sum":206},{"parent":"TRule_id_expr_in","rule":"TRule_id_expr_in.Alt_id_expr_in5","sum":53},{"parent":"TRule_id_expr_in.TAlt1","rule":"TRule_id_expr_in.TAlt1.Rule_identifier1","sum":5622636},{"parent":"TRule_id_expr_in.TAlt2","rule":"TRule_id_expr_in.TAlt2.Rule_keyword_compat1","sum":72371},{"parent":"TRule_id_expr_in.TAlt4","rule":"TRule_id_expr_in.TAlt4.Rule_keyword_window_uncompat1","sum":206},{"parent":"TRule_id_expr_in.TAlt5","rule":"TRule_id_expr_in.TAlt5.Rule_keyword_hint_uncompat1","sum":53},{"parent":"TRule_id_hint","rule":"TRule_id_hint.Alt_id_hint1","sum":153502519},{"parent":"TRule_id_hint","rule":"TRule_id_hint.Alt_id_hint2","sum":21826},{"parent":"TRule_id_hint","rule":"TRule_id_hint.Alt_id_hint3","sum":21826},{"parent":"TRule_id_hint.TAlt1","rule":"TRule_id_hint.TAlt1.Rule_identifier1","sum":153502519},{"parent":"TRule_id_hint.TAlt2","rule":"TRule_id_hint.TAlt2.Rule_keyword_compat1","sum":21826},{"parent":"TRule_id_hint.TAlt3","rule":"TRule_id_hint.TAlt3.Rule_keyword_expr_uncompat1","sum":21826},{"parent":"TRule_id_or_at","rule":"TRule_id_or_at.Block1","sum":4715132},{"parent":"TRule_id_or_at","rule":"TRule_id_or_at.Rule_an_id_or_type2","sum":133548148},{"parent":"TRule_id_or_at.TBlock1","rule":"TRule_id_or_at.TBlock1.Token1","sum":4715132},{"parent":"TRule_id_or_type","rule":"TRule_id_or_type.Alt_id_or_type1","sum":10495928453},{"parent":"TRule_id_or_type","rule":"TRule_id_or_type.Alt_id_or_type2","sum":11600652},{"parent":"TRule_id_or_type.TAlt1","rule":"TRule_id_or_type.TAlt1.Rule_id1","sum":10495928453},{"parent":"TRule_id_or_type.TAlt2","rule":"TRule_id_or_type.TAlt2.Rule_type_id1","sum":11600652},{"parent":"TRule_id_schema","rule":"TRule_id_schema.Alt_id_schema1","sum":1274},{"parent":"TRule_id_schema","rule":"TRule_id_schema.Alt_id_schema2","sum":12},{"parent":"TRule_id_schema.TAlt1","rule":"TRule_id_schema.TAlt1.Rule_identifier1","sum":1274},{"parent":"TRule_id_schema.TAlt2","rule":"TRule_id_schema.TAlt2.Rule_keyword_compat1","sum":12},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table1","sum":329845374},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table2","sum":638516},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table3","sum":371},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table4","sum":12499},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table5","sum":4},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table6","sum":1811},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table7","sum":10},{"parent":"TRule_id_table.TAlt1","rule":"TRule_id_table.TAlt1.Rule_identifier1","sum":329845374},{"parent":"TRule_id_table.TAlt2","rule":"TRule_id_table.TAlt2.Rule_keyword_compat1","sum":638516},{"parent":"TRule_id_table.TAlt3","rule":"TRule_id_table.TAlt3.Rule_keyword_expr_uncompat1","sum":371},{"parent":"TRule_id_table.TAlt4","rule":"TRule_id_table.TAlt4.Rule_keyword_select_uncompat1","sum":12499},{"parent":"TRule_id_table.TAlt5","rule":"TRule_id_table.TAlt5.Rule_keyword_in_uncompat1","sum":4},{"parent":"TRule_id_table.TAlt6","rule":"TRule_id_table.TAlt6.Rule_keyword_window_uncompat1","sum":1811},{"parent":"TRule_id_table.TAlt7","rule":"TRule_id_table.TAlt7.Rule_keyword_hint_uncompat1","sum":10},{"parent":"TRule_id_table_or_type","rule":"TRule_id_table_or_type.Alt_id_table_or_type1","sum":330498586},{"parent":"TRule_id_table_or_type","rule":"TRule_id_table_or_type.Alt_id_table_or_type2","sum":4384},{"parent":"TRule_id_table_or_type.TAlt1","rule":"TRule_id_table_or_type.TAlt1.Rule_an_id_table1","sum":330498586},{"parent":"TRule_id_table_or_type.TAlt2","rule":"TRule_id_table_or_type.TAlt2.Rule_type_id1","sum":4384},{"parent":"TRule_id_window","rule":"TRule_id_window.Alt_id_window1","sum":46200178},{"parent":"TRule_id_window","rule":"TRule_id_window.Alt_id_window2","sum":16509},{"parent":"TRule_id_window","rule":"TRule_id_window.Alt_id_window3","sum":248205},{"parent":"TRule_id_window","rule":"TRule_id_window.Alt_id_window5","sum":7827},{"parent":"TRule_id_window.TAlt1","rule":"TRule_id_window.TAlt1.Rule_identifier1","sum":46200178},{"parent":"TRule_id_window.TAlt2","rule":"TRule_id_window.TAlt2.Rule_keyword_compat1","sum":16509},{"parent":"TRule_id_window.TAlt3","rule":"TRule_id_window.TAlt3.Rule_keyword_expr_uncompat1","sum":248205},{"parent":"TRule_id_window.TAlt5","rule":"TRule_id_window.TAlt5.Rule_keyword_select_uncompat1","sum":7827},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without1","sum":22845469},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without2","sum":274994},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without6","sum":1194},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without7","sum":513},{"parent":"TRule_id_without.TAlt1","rule":"TRule_id_without.TAlt1.Rule_identifier1","sum":22845469},{"parent":"TRule_id_without.TAlt2","rule":"TRule_id_without.TAlt2.Rule_keyword_compat1","sum":274994},{"parent":"TRule_id_without.TAlt6","rule":"TRule_id_without.TAlt6.Rule_keyword_window_uncompat1","sum":1194},{"parent":"TRule_id_without.TAlt7","rule":"TRule_id_without.TAlt7.Rule_keyword_hint_uncompat1","sum":513},{"parent":"TRule_identifier","rule":"TRule_identifier.Token1","sum":20193701086},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Block1","sum":8529510},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Block5","sum":2956710},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Rule_do_stmt4","sum":8529552},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Rule_expr3","sum":8529552},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Token2","sum":8529552},{"parent":"TRule_if_stmt.TBlock1","rule":"TRule_if_stmt.TBlock1.Token1","sum":8529510},{"parent":"TRule_if_stmt.TBlock5","rule":"TRule_if_stmt.TBlock5.Rule_do_stmt2","sum":2956710},{"parent":"TRule_if_stmt.TBlock5","rule":"TRule_if_stmt.TBlock5.Token1","sum":2956710},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Rule_module_path2","sum":16448365},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Rule_named_bind_parameter_list4","sum":16448365},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Token1","sum":16448365},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Token3","sum":16448365},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr1","sum":2254},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr10","sum":5088024},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr11","sum":455126},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr2","sum":36289544},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr3","sum":65822822},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr4","sum":44442},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr5","sum":4},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr6","sum":2951189},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr7","sum":9684399},{"parent":"TRule_in_atom_expr.TAlt1","rule":"TRule_in_atom_expr.TAlt1.Rule_literal_value1","sum":2254},{"parent":"TRule_in_atom_expr.TAlt10","rule":"TRule_in_atom_expr.TAlt10.Rule_list_literal1","sum":5088024},{"parent":"TRule_in_atom_expr.TAlt11","rule":"TRule_in_atom_expr.TAlt11.Rule_dict_literal1","sum":455126},{"parent":"TRule_in_atom_expr.TAlt2","rule":"TRule_in_atom_expr.TAlt2.Rule_bind_parameter1","sum":36289544},{"parent":"TRule_in_atom_expr.TAlt3","rule":"TRule_in_atom_expr.TAlt3.Rule_lambda1","sum":65822822},{"parent":"TRule_in_atom_expr.TAlt4","rule":"TRule_in_atom_expr.TAlt4.Rule_cast_expr1","sum":44442},{"parent":"TRule_in_atom_expr.TAlt5","rule":"TRule_in_atom_expr.TAlt5.Rule_case_expr1","sum":4},{"parent":"TRule_in_atom_expr.TAlt6","rule":"TRule_in_atom_expr.TAlt6.Block3","sum":2951189},{"parent":"TRule_in_atom_expr.TAlt6","rule":"TRule_in_atom_expr.TAlt6.Rule_an_id_or_type1","sum":2951189},{"parent":"TRule_in_atom_expr.TAlt6","rule":"TRule_in_atom_expr.TAlt6.Token2","sum":2951189},{"parent":"TRule_in_atom_expr.TAlt6.TBlock3","rule":"TRule_in_atom_expr.TAlt6.TBlock3.Alt1","sum":2951189},{"parent":"TRule_in_atom_expr.TAlt6.TBlock3.TAlt1","rule":"TRule_in_atom_expr.TAlt6.TBlock3.TAlt1.Rule_id_or_type1","sum":2951189},{"parent":"TRule_in_atom_expr.TAlt7","rule":"TRule_in_atom_expr.TAlt7.Rule_select_stmt2","sum":9684399},{"parent":"TRule_in_atom_expr.TAlt7","rule":"TRule_in_atom_expr.TAlt7.Token1","sum":9684399},{"parent":"TRule_in_atom_expr.TAlt7","rule":"TRule_in_atom_expr.TAlt7.Token3","sum":9684399},{"parent":"TRule_in_expr","rule":"TRule_in_expr.Rule_in_unary_subexpr1","sum":126033122},{"parent":"TRule_in_unary_casual_subexpr","rule":"TRule_in_unary_casual_subexpr.Block1","sum":126033070},{"parent":"TRule_in_unary_casual_subexpr","rule":"TRule_in_unary_casual_subexpr.Rule_unary_subexpr_suffix2","sum":126033070},{"parent":"TRule_in_unary_casual_subexpr.TBlock1","rule":"TRule_in_unary_casual_subexpr.TBlock1.Alt1","sum":5695266},{"parent":"TRule_in_unary_casual_subexpr.TBlock1","rule":"TRule_in_unary_casual_subexpr.TBlock1.Alt2","sum":120337804},{"parent":"TRule_in_unary_casual_subexpr.TBlock1.TAlt1","rule":"TRule_in_unary_casual_subexpr.TBlock1.TAlt1.Rule_id_expr_in1","sum":5695266},{"parent":"TRule_in_unary_casual_subexpr.TBlock1.TAlt2","rule":"TRule_in_unary_casual_subexpr.TBlock1.TAlt2.Rule_in_atom_expr1","sum":120337804},{"parent":"TRule_in_unary_subexpr","rule":"TRule_in_unary_subexpr.Alt_in_unary_subexpr1","sum":126033070},{"parent":"TRule_in_unary_subexpr","rule":"TRule_in_unary_subexpr.Alt_in_unary_subexpr2","sum":52},{"parent":"TRule_in_unary_subexpr.TAlt1","rule":"TRule_in_unary_subexpr.TAlt1.Rule_in_unary_casual_subexpr1","sum":126033070},{"parent":"TRule_in_unary_subexpr.TAlt2","rule":"TRule_in_unary_subexpr.TAlt2.Rule_json_api_expr1","sum":52},{"parent":"TRule_inline_action","rule":"TRule_inline_action.Rule_define_action_or_subquery_body2","sum":13797310},{"parent":"TRule_inline_action","rule":"TRule_inline_action.Token1","sum":13797310},{"parent":"TRule_inline_action","rule":"TRule_inline_action.Token3","sum":13797310},{"parent":"TRule_inline_action","rule":"TRule_inline_action.Token4","sum":13797310},{"parent":"TRule_integer","rule":"TRule_integer.Token1","sum":2818111025},{"parent":"TRule_integer_or_bind","rule":"TRule_integer_or_bind.Alt_integer_or_bind1","sum":56294441},{"parent":"TRule_integer_or_bind","rule":"TRule_integer_or_bind.Alt_integer_or_bind2","sum":48839},{"parent":"TRule_integer_or_bind.TAlt1","rule":"TRule_integer_or_bind.TAlt1.Rule_integer1","sum":56294441},{"parent":"TRule_integer_or_bind.TAlt2","rule":"TRule_integer_or_bind.TAlt2.Rule_bind_parameter1","sum":48839},{"parent":"TRule_into_simple_table_ref","rule":"TRule_into_simple_table_ref.Block2","sum":25051},{"parent":"TRule_into_simple_table_ref","rule":"TRule_into_simple_table_ref.Rule_simple_table_ref1","sum":208016439},{"parent":"TRule_into_simple_table_ref.TBlock2","rule":"TRule_into_simple_table_ref.TBlock2.Rule_pure_column_list3","sum":25051},{"parent":"TRule_into_simple_table_ref.TBlock2","rule":"TRule_into_simple_table_ref.TBlock2.Token1","sum":25051},{"parent":"TRule_into_simple_table_ref.TBlock2","rule":"TRule_into_simple_table_ref.TBlock2.Token2","sum":25051},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Block1","sum":208016439},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Rule_into_simple_table_ref3","sum":208016439},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Rule_into_values_source4","sum":208016439},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Token2","sum":208016439},{"parent":"TRule_into_table_stmt.TBlock1","rule":"TRule_into_table_stmt.TBlock1.Alt1","sum":207904214},{"parent":"TRule_into_table_stmt.TBlock1","rule":"TRule_into_table_stmt.TBlock1.Alt5","sum":112224},{"parent":"TRule_into_table_stmt.TBlock1","rule":"TRule_into_table_stmt.TBlock1.Alt6","sum":1},{"parent":"TRule_into_table_stmt.TBlock1.TAlt1","rule":"TRule_into_table_stmt.TBlock1.TAlt1.Token1","sum":207904214},{"parent":"TRule_into_table_stmt.TBlock1.TAlt5","rule":"TRule_into_table_stmt.TBlock1.TAlt5.Token1","sum":112224},{"parent":"TRule_into_table_stmt.TBlock1.TAlt6","rule":"TRule_into_table_stmt.TBlock1.TAlt6.Token1","sum":1},{"parent":"TRule_into_values_source","rule":"TRule_into_values_source.Alt_into_values_source1","sum":208016439},{"parent":"TRule_into_values_source.TAlt1","rule":"TRule_into_values_source.TAlt1.Block1","sum":4453941},{"parent":"TRule_into_values_source.TAlt1","rule":"TRule_into_values_source.TAlt1.Rule_values_source2","sum":208016439},{"parent":"TRule_into_values_source.TAlt1.TBlock1","rule":"TRule_into_values_source.TAlt1.TBlock1.Rule_pure_column_list1","sum":4453941},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Block2","sum":2751646800},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Rule_invoke_expr_tail4","sum":2865255245},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Token1","sum":2865255245},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Token3","sum":2865255245},{"parent":"TRule_invoke_expr.TBlock2","rule":"TRule_invoke_expr.TBlock2.Alt1","sum":2692693481},{"parent":"TRule_invoke_expr.TBlock2","rule":"TRule_invoke_expr.TBlock2.Alt2","sum":58953319},{"parent":"TRule_invoke_expr.TBlock2.TAlt1","rule":"TRule_invoke_expr.TBlock2.TAlt1.Block3","sum":9565798},{"parent":"TRule_invoke_expr.TBlock2.TAlt1","rule":"TRule_invoke_expr.TBlock2.TAlt1.Rule_named_expr_list2","sum":2692693481},{"parent":"TRule_invoke_expr.TBlock2.TAlt1","rule":"TRule_invoke_expr.TBlock2.TAlt1.Rule_opt_set_quantifier1","sum":2692693481},{"parent":"TRule_invoke_expr.TBlock2.TAlt1.TBlock3","rule":"TRule_invoke_expr.TBlock2.TAlt1.TBlock3.Token1","sum":9565798},{"parent":"TRule_invoke_expr.TBlock2.TAlt2","rule":"TRule_invoke_expr.TBlock2.TAlt2.Token1","sum":58953319},{"parent":"TRule_invoke_expr_tail","rule":"TRule_invoke_expr_tail.Block1","sum":7082217},{"parent":"TRule_invoke_expr_tail","rule":"TRule_invoke_expr_tail.Block2","sum":45101859},{"parent":"TRule_invoke_expr_tail.TBlock1","rule":"TRule_invoke_expr_tail.TBlock1.Alt1","sum":7082217},{"parent":"TRule_invoke_expr_tail.TBlock1.TAlt1","rule":"TRule_invoke_expr_tail.TBlock1.TAlt1.Rule_null_treatment1","sum":7082217},{"parent":"TRule_invoke_expr_tail.TBlock2","rule":"TRule_invoke_expr_tail.TBlock2.Rule_window_name_or_specification2","sum":45101859},{"parent":"TRule_invoke_expr_tail.TBlock2","rule":"TRule_invoke_expr_tail.TBlock2.Token1","sum":45101859},{"parent":"TRule_join_constraint","rule":"TRule_join_constraint.Alt_join_constraint1","sum":172608937},{"parent":"TRule_join_constraint","rule":"TRule_join_constraint.Alt_join_constraint2","sum":32377040},{"parent":"TRule_join_constraint.TAlt1","rule":"TRule_join_constraint.TAlt1.Rule_expr2","sum":172608937},{"parent":"TRule_join_constraint.TAlt1","rule":"TRule_join_constraint.TAlt1.Token1","sum":172608937},{"parent":"TRule_join_constraint.TAlt2","rule":"TRule_join_constraint.TAlt2.Rule_pure_column_or_named_list2","sum":32377040},{"parent":"TRule_join_constraint.TAlt2","rule":"TRule_join_constraint.TAlt2.Token1","sum":32377040},{"parent":"TRule_join_op","rule":"TRule_join_op.Alt_join_op1","sum":27521},{"parent":"TRule_join_op","rule":"TRule_join_op.Alt_join_op2","sum":208029004},{"parent":"TRule_join_op.TAlt1","rule":"TRule_join_op.TAlt1.Token1","sum":27521},{"parent":"TRule_join_op.TAlt2","rule":"TRule_join_op.TAlt2.Block2","sum":208029004},{"parent":"TRule_join_op.TAlt2","rule":"TRule_join_op.TAlt2.Token3","sum":208029004},{"parent":"TRule_join_op.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.Alt1","sum":174370818},{"parent":"TRule_join_op.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.Alt2","sum":30615159},{"parent":"TRule_join_op.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.Alt3","sum":3043027},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.Block1","sum":126366173},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.Block2","sum":293102},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt1","sum":118497224},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt2","sum":1699355},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt3","sum":285361},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt4","sum":5884233},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.Block2","sum":19629114},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.Token1","sum":118497224},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.TBlock2.Token1","sum":19629114},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.Block2","sum":518795},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.Token1","sum":1699355},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.TBlock2.Token1","sum":518795},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt3","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt3.Token1","sum":285361},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt4","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt4.Token1","sum":5884233},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock2.Token1","sum":293102},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt2.Token1","sum":30615159},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt3","rule":"TRule_join_op.TAlt2.TBlock2.TAlt3.Token1","sum":3043027},{"parent":"TRule_join_source","rule":"TRule_join_source.Block1","sum":598677},{"parent":"TRule_join_source","rule":"TRule_join_source.Block3","sum":145029172},{"parent":"TRule_join_source","rule":"TRule_join_source.Rule_flatten_source2","sum":841301787},{"parent":"TRule_join_source.TBlock1","rule":"TRule_join_source.TBlock1.Token1","sum":598677},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Block2","sum":13957383},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Block4","sum":204985977},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Rule_flatten_source3","sum":208056525},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Rule_join_op1","sum":208056525},{"parent":"TRule_join_source.TBlock3.TBlock2","rule":"TRule_join_source.TBlock3.TBlock2.Token1","sum":13957383},{"parent":"TRule_join_source.TBlock3.TBlock4","rule":"TRule_join_source.TBlock3.TBlock4.Rule_join_constraint1","sum":204985977},{"parent":"TRule_json_api_expr","rule":"TRule_json_api_expr.Alt_json_api_expr1","sum":5853150},{"parent":"TRule_json_api_expr","rule":"TRule_json_api_expr.Alt_json_api_expr2","sum":192353},{"parent":"TRule_json_api_expr","rule":"TRule_json_api_expr.Alt_json_api_expr3","sum":318814},{"parent":"TRule_json_api_expr.TAlt1","rule":"TRule_json_api_expr.TAlt1.Rule_json_value1","sum":5853150},{"parent":"TRule_json_api_expr.TAlt2","rule":"TRule_json_api_expr.TAlt2.Rule_json_exists1","sum":192353},{"parent":"TRule_json_api_expr.TAlt3","rule":"TRule_json_api_expr.TAlt3.Rule_json_query1","sum":318814},{"parent":"TRule_json_case_handler","rule":"TRule_json_case_handler.Alt_json_case_handler1","sum":8070},{"parent":"TRule_json_case_handler","rule":"TRule_json_case_handler.Alt_json_case_handler2","sum":14342},{"parent":"TRule_json_case_handler","rule":"TRule_json_case_handler.Alt_json_case_handler3","sum":201249},{"parent":"TRule_json_case_handler.TAlt1","rule":"TRule_json_case_handler.TAlt1.Token1","sum":8070},{"parent":"TRule_json_case_handler.TAlt2","rule":"TRule_json_case_handler.TAlt2.Token1","sum":14342},{"parent":"TRule_json_case_handler.TAlt3","rule":"TRule_json_case_handler.TAlt3.Rule_expr2","sum":201249},{"parent":"TRule_json_case_handler.TAlt3","rule":"TRule_json_case_handler.TAlt3.Token1","sum":201249},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Block4","sum":20977},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Rule_expr1","sum":6364317},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Rule_jsonpath_spec3","sum":6364317},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Token2","sum":6364317},{"parent":"TRule_json_common_args.TBlock4","rule":"TRule_json_common_args.TBlock4.Rule_json_variables2","sum":20977},{"parent":"TRule_json_common_args.TBlock4","rule":"TRule_json_common_args.TBlock4.Token1","sum":20977},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Block4","sum":47},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Rule_json_common_args3","sum":192353},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Token1","sum":192353},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Token2","sum":192353},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Token5","sum":192353},{"parent":"TRule_json_exists.TBlock4","rule":"TRule_json_exists.TBlock4.Rule_json_exists_handler1","sum":47},{"parent":"TRule_json_exists_handler","rule":"TRule_json_exists_handler.Token1","sum":47},{"parent":"TRule_json_exists_handler","rule":"TRule_json_exists_handler.Token2","sum":47},{"parent":"TRule_json_exists_handler","rule":"TRule_json_exists_handler.Token3","sum":47},{"parent":"TRule_json_query","rule":"TRule_json_query.Block4","sum":190849},{"parent":"TRule_json_query","rule":"TRule_json_query.Block5","sum":86},{"parent":"TRule_json_query","rule":"TRule_json_query.Block6","sum":4096},{"parent":"TRule_json_query","rule":"TRule_json_query.Rule_json_common_args3","sum":318814},{"parent":"TRule_json_query","rule":"TRule_json_query.Token1","sum":318814},{"parent":"TRule_json_query","rule":"TRule_json_query.Token2","sum":318814},{"parent":"TRule_json_query","rule":"TRule_json_query.Token7","sum":318814},{"parent":"TRule_json_query.TBlock4","rule":"TRule_json_query.TBlock4.Rule_json_query_wrapper1","sum":190849},{"parent":"TRule_json_query.TBlock4","rule":"TRule_json_query.TBlock4.Token2","sum":190849},{"parent":"TRule_json_query.TBlock5","rule":"TRule_json_query.TBlock5.Rule_json_query_handler1","sum":86},{"parent":"TRule_json_query.TBlock5","rule":"TRule_json_query.TBlock5.Token2","sum":86},{"parent":"TRule_json_query.TBlock5","rule":"TRule_json_query.TBlock5.Token3","sum":86},{"parent":"TRule_json_query.TBlock6","rule":"TRule_json_query.TBlock6.Rule_json_query_handler1","sum":4096},{"parent":"TRule_json_query.TBlock6","rule":"TRule_json_query.TBlock6.Token2","sum":4096},{"parent":"TRule_json_query.TBlock6","rule":"TRule_json_query.TBlock6.Token3","sum":4096},{"parent":"TRule_json_query_handler","rule":"TRule_json_query_handler.Alt_json_query_handler1","sum":1641},{"parent":"TRule_json_query_handler","rule":"TRule_json_query_handler.Alt_json_query_handler2","sum":26},{"parent":"TRule_json_query_handler","rule":"TRule_json_query_handler.Alt_json_query_handler3","sum":2296},{"parent":"TRule_json_query_handler","rule":"TRule_json_query_handler.Alt_json_query_handler4","sum":219},{"parent":"TRule_json_query_handler.TAlt1","rule":"TRule_json_query_handler.TAlt1.Token1","sum":1641},{"parent":"TRule_json_query_handler.TAlt2","rule":"TRule_json_query_handler.TAlt2.Token1","sum":26},{"parent":"TRule_json_query_handler.TAlt3","rule":"TRule_json_query_handler.TAlt3.Token1","sum":2296},{"parent":"TRule_json_query_handler.TAlt3","rule":"TRule_json_query_handler.TAlt3.Token2","sum":2296},{"parent":"TRule_json_query_handler.TAlt4","rule":"TRule_json_query_handler.TAlt4.Token1","sum":219},{"parent":"TRule_json_query_handler.TAlt4","rule":"TRule_json_query_handler.TAlt4.Token2","sum":219},{"parent":"TRule_json_query_wrapper","rule":"TRule_json_query_wrapper.Alt_json_query_wrapper1","sum":46},{"parent":"TRule_json_query_wrapper","rule":"TRule_json_query_wrapper.Alt_json_query_wrapper2","sum":190803},{"parent":"TRule_json_query_wrapper.TAlt1","rule":"TRule_json_query_wrapper.TAlt1.Block2","sum":10},{"parent":"TRule_json_query_wrapper.TAlt1","rule":"TRule_json_query_wrapper.TAlt1.Token1","sum":46},{"parent":"TRule_json_query_wrapper.TAlt1.TBlock2","rule":"TRule_json_query_wrapper.TAlt1.TBlock2.Token1","sum":10},{"parent":"TRule_json_query_wrapper.TAlt2","rule":"TRule_json_query_wrapper.TAlt2.Block2","sum":166762},{"parent":"TRule_json_query_wrapper.TAlt2","rule":"TRule_json_query_wrapper.TAlt2.Block3","sum":31743},{"parent":"TRule_json_query_wrapper.TAlt2","rule":"TRule_json_query_wrapper.TAlt2.Token1","sum":190803},{"parent":"TRule_json_query_wrapper.TAlt2.TBlock2","rule":"TRule_json_query_wrapper.TAlt2.TBlock2.Token1","sum":166762},{"parent":"TRule_json_query_wrapper.TAlt2.TBlock3","rule":"TRule_json_query_wrapper.TAlt2.TBlock3.Token1","sum":31743},{"parent":"TRule_json_value","rule":"TRule_json_value.Block4","sum":1332940},{"parent":"TRule_json_value","rule":"TRule_json_value.Block5","sum":203540},{"parent":"TRule_json_value","rule":"TRule_json_value.Rule_json_common_args3","sum":5853150},{"parent":"TRule_json_value","rule":"TRule_json_value.Token1","sum":5853150},{"parent":"TRule_json_value","rule":"TRule_json_value.Token2","sum":5853150},{"parent":"TRule_json_value","rule":"TRule_json_value.Token6","sum":5853150},{"parent":"TRule_json_value.TBlock4","rule":"TRule_json_value.TBlock4.Rule_type_name_simple2","sum":1332940},{"parent":"TRule_json_value.TBlock4","rule":"TRule_json_value.TBlock4.Token1","sum":1332940},{"parent":"TRule_json_value.TBlock5","rule":"TRule_json_value.TBlock5.Rule_json_case_handler1","sum":223661},{"parent":"TRule_json_value.TBlock5","rule":"TRule_json_value.TBlock5.Token2","sum":223661},{"parent":"TRule_json_value.TBlock5","rule":"TRule_json_value.TBlock5.Token3","sum":223661},{"parent":"TRule_json_variable","rule":"TRule_json_variable.Rule_expr1","sum":20984},{"parent":"TRule_json_variable","rule":"TRule_json_variable.Rule_json_variable_name3","sum":20984},{"parent":"TRule_json_variable","rule":"TRule_json_variable.Token2","sum":20984},{"parent":"TRule_json_variable_name","rule":"TRule_json_variable_name.Alt_json_variable_name1","sum":18797},{"parent":"TRule_json_variable_name","rule":"TRule_json_variable_name.Alt_json_variable_name2","sum":2187},{"parent":"TRule_json_variable_name.TAlt1","rule":"TRule_json_variable_name.TAlt1.Rule_id_expr1","sum":18797},{"parent":"TRule_json_variable_name.TAlt2","rule":"TRule_json_variable_name.TAlt2.Token1","sum":2187},{"parent":"TRule_json_variables","rule":"TRule_json_variables.Block2","sum":7},{"parent":"TRule_json_variables","rule":"TRule_json_variables.Rule_json_variable1","sum":20977},{"parent":"TRule_json_variables.TBlock2","rule":"TRule_json_variables.TBlock2.Rule_json_variable2","sum":7},{"parent":"TRule_json_variables.TBlock2","rule":"TRule_json_variables.TBlock2.Token1","sum":7},{"parent":"TRule_jsonpath_spec","rule":"TRule_jsonpath_spec.Token1","sum":6364317},{"parent":"TRule_key_expr","rule":"TRule_key_expr.Rule_expr2","sum":172134618},{"parent":"TRule_key_expr","rule":"TRule_key_expr.Token1","sum":172134618},{"parent":"TRule_key_expr","rule":"TRule_key_expr.Token3","sum":172134618},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword1","sum":478913202},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword2","sum":33222498},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword3","sum":486056},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword4","sum":9186563},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword5","sum":772458},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword6","sum":23762},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword7","sum":3881437},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword8","sum":2499284},{"parent":"TRule_keyword.TAlt1","rule":"TRule_keyword.TAlt1.Rule_keyword_compat1","sum":478913202},{"parent":"TRule_keyword.TAlt2","rule":"TRule_keyword.TAlt2.Rule_keyword_expr_uncompat1","sum":33222498},{"parent":"TRule_keyword.TAlt3","rule":"TRule_keyword.TAlt3.Rule_keyword_table_uncompat1","sum":486056},{"parent":"TRule_keyword.TAlt4","rule":"TRule_keyword.TAlt4.Rule_keyword_select_uncompat1","sum":9186563},{"parent":"TRule_keyword.TAlt5","rule":"TRule_keyword.TAlt5.Rule_keyword_alter_uncompat1","sum":772458},{"parent":"TRule_keyword.TAlt6","rule":"TRule_keyword.TAlt6.Rule_keyword_in_uncompat1","sum":23762},{"parent":"TRule_keyword.TAlt7","rule":"TRule_keyword.TAlt7.Rule_keyword_window_uncompat1","sum":3881437},{"parent":"TRule_keyword.TAlt8","rule":"TRule_keyword.TAlt8.Rule_keyword_hint_uncompat1","sum":2499284},{"parent":"TRule_keyword_alter_uncompat","rule":"TRule_keyword_alter_uncompat.Token1","sum":1220234},{"parent":"TRule_keyword_as_compat","rule":"TRule_keyword_as_compat.Token1","sum":2434},{"parent":"TRule_keyword_compat","rule":"TRule_keyword_compat.Token1","sum":798075950},{"parent":"TRule_keyword_expr_uncompat","rule":"TRule_keyword_expr_uncompat.Token1","sum":33492900},{"parent":"TRule_keyword_hint_uncompat","rule":"TRule_keyword_hint_uncompat.Token1","sum":2681707},{"parent":"TRule_keyword_in_uncompat","rule":"TRule_keyword_in_uncompat.Token1","sum":23766},{"parent":"TRule_keyword_select_uncompat","rule":"TRule_keyword_select_uncompat.Token1","sum":9206889},{"parent":"TRule_keyword_table_uncompat","rule":"TRule_keyword_table_uncompat.Token1","sum":486056},{"parent":"TRule_keyword_window_uncompat","rule":"TRule_keyword_window_uncompat.Token1","sum":39025081},{"parent":"TRule_lambda","rule":"TRule_lambda.Block2","sum":207932792},{"parent":"TRule_lambda","rule":"TRule_lambda.Rule_smart_parenthesis1","sum":510536515},{"parent":"TRule_lambda.TBlock2","rule":"TRule_lambda.TBlock2.Block2","sum":207932792},{"parent":"TRule_lambda.TBlock2","rule":"TRule_lambda.TBlock2.Token1","sum":207932792},{"parent":"TRule_lambda.TBlock2.TBlock2","rule":"TRule_lambda.TBlock2.TBlock2.Alt1","sum":42426124},{"parent":"TRule_lambda.TBlock2.TBlock2","rule":"TRule_lambda.TBlock2.TBlock2.Alt2","sum":165506668},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt1","rule":"TRule_lambda.TBlock2.TBlock2.TAlt1.Rule_expr2","sum":42426124},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt1","rule":"TRule_lambda.TBlock2.TBlock2.TAlt1.Token1","sum":42426124},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt1","rule":"TRule_lambda.TBlock2.TBlock2.TAlt1.Token3","sum":42426124},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt2","rule":"TRule_lambda.TBlock2.TBlock2.TAlt2.Rule_lambda_body2","sum":165506668},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt2","rule":"TRule_lambda.TBlock2.TBlock2.TAlt2.Token1","sum":165506668},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt2","rule":"TRule_lambda.TBlock2.TBlock2.TAlt2.Token3","sum":165506668},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Block1","sum":160},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Block2","sum":34592028},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Block5","sum":87262227},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Rule_expr4","sum":165506668},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Token3","sum":165506668},{"parent":"TRule_lambda_body.TBlock1","rule":"TRule_lambda_body.TBlock1.Token1","sum":160},{"parent":"TRule_lambda_body.TBlock2","rule":"TRule_lambda_body.TBlock2.Block2","sum":63344785},{"parent":"TRule_lambda_body.TBlock2","rule":"TRule_lambda_body.TBlock2.Rule_lambda_stmt1","sum":63344785},{"parent":"TRule_lambda_body.TBlock2.TBlock2","rule":"TRule_lambda_body.TBlock2.TBlock2.Token1","sum":63345921},{"parent":"TRule_lambda_body.TBlock5","rule":"TRule_lambda_body.TBlock5.Token1","sum":87271135},{"parent":"TRule_lambda_stmt","rule":"TRule_lambda_stmt.Alt_lambda_stmt1","sum":63342259},{"parent":"TRule_lambda_stmt","rule":"TRule_lambda_stmt.Alt_lambda_stmt2","sum":2526},{"parent":"TRule_lambda_stmt.TAlt1","rule":"TRule_lambda_stmt.TAlt1.Rule_named_nodes_stmt1","sum":63342259},{"parent":"TRule_lambda_stmt.TAlt2","rule":"TRule_lambda_stmt.TAlt2.Rule_import_stmt1","sum":2526},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Block2","sum":35129262},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Block3","sum":2261896},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Token1","sum":40793166},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Token4","sum":40793166},{"parent":"TRule_list_literal.TBlock2","rule":"TRule_list_literal.TBlock2.Rule_expr_list1","sum":35129262},{"parent":"TRule_list_literal.TBlock3","rule":"TRule_list_literal.TBlock3.Token1","sum":2261896},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value1","sum":2761816583},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value10","sum":2},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value2","sum":108407914},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value3","sum":2114359138},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value5","sum":79086090},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value9","sum":103662442},{"parent":"TRule_literal_value.TAlt1","rule":"TRule_literal_value.TAlt1.Rule_integer1","sum":2761816583},{"parent":"TRule_literal_value.TAlt10","rule":"TRule_literal_value.TAlt10.Token1","sum":2},{"parent":"TRule_literal_value.TAlt2","rule":"TRule_literal_value.TAlt2.Rule_real1","sum":108407914},{"parent":"TRule_literal_value.TAlt3","rule":"TRule_literal_value.TAlt3.Token1","sum":2114359138},{"parent":"TRule_literal_value.TAlt5","rule":"TRule_literal_value.TAlt5.Token1","sum":79086090},{"parent":"TRule_literal_value.TAlt9","rule":"TRule_literal_value.TAlt9.Rule_bool_value1","sum":103662442},{"parent":"TRule_match_op","rule":"TRule_match_op.Token1","sum":52031343},{"parent":"TRule_module_path","rule":"TRule_module_path.Block3","sum":356512},{"parent":"TRule_module_path","rule":"TRule_module_path.Rule_an_id2","sum":16448365},{"parent":"TRule_module_path.TBlock3","rule":"TRule_module_path.TBlock3.Rule_an_id2","sum":1062672},{"parent":"TRule_module_path.TBlock3","rule":"TRule_module_path.TBlock3.Token1","sum":1062672},{"parent":"TRule_mul_subexpr","rule":"TRule_mul_subexpr.Block2","sum":114586727},{"parent":"TRule_mul_subexpr","rule":"TRule_mul_subexpr.Rule_con_subexpr1","sum":15746417816},{"parent":"TRule_mul_subexpr.TBlock2","rule":"TRule_mul_subexpr.TBlock2.Rule_con_subexpr2","sum":228184806},{"parent":"TRule_mul_subexpr.TBlock2","rule":"TRule_mul_subexpr.TBlock2.Token1","sum":228184806},{"parent":"TRule_named_bind_parameter","rule":"TRule_named_bind_parameter.Block2","sum":124116},{"parent":"TRule_named_bind_parameter","rule":"TRule_named_bind_parameter.Rule_bind_parameter1","sum":37659580},{"parent":"TRule_named_bind_parameter.TBlock2","rule":"TRule_named_bind_parameter.TBlock2.Rule_bind_parameter2","sum":124116},{"parent":"TRule_named_bind_parameter.TBlock2","rule":"TRule_named_bind_parameter.TBlock2.Token1","sum":124116},{"parent":"TRule_named_bind_parameter_list","rule":"TRule_named_bind_parameter_list.Block2","sum":6985500},{"parent":"TRule_named_bind_parameter_list","rule":"TRule_named_bind_parameter_list.Rule_named_bind_parameter1","sum":16448365},{"parent":"TRule_named_bind_parameter_list.TBlock2","rule":"TRule_named_bind_parameter_list.TBlock2.Rule_named_bind_parameter2","sum":21211215},{"parent":"TRule_named_bind_parameter_list.TBlock2","rule":"TRule_named_bind_parameter_list.TBlock2.Token1","sum":21211215},{"parent":"TRule_named_column","rule":"TRule_named_column.Block2","sum":7134215},{"parent":"TRule_named_column","rule":"TRule_named_column.Rule_column_name1","sum":21251064},{"parent":"TRule_named_column.TBlock2","rule":"TRule_named_column.TBlock2.Rule_an_id2","sum":7134215},{"parent":"TRule_named_column.TBlock2","rule":"TRule_named_column.TBlock2.Token1","sum":7134215},{"parent":"TRule_named_expr","rule":"TRule_named_expr.Block2","sum":155643888},{"parent":"TRule_named_expr","rule":"TRule_named_expr.Rule_expr1","sum":7192172357},{"parent":"TRule_named_expr.TBlock2","rule":"TRule_named_expr.TBlock2.Rule_an_id_or_type2","sum":155643888},{"parent":"TRule_named_expr.TBlock2","rule":"TRule_named_expr.TBlock2.Token1","sum":155643888},{"parent":"TRule_named_expr_list","rule":"TRule_named_expr_list.Block2","sum":1177219617},{"parent":"TRule_named_expr_list","rule":"TRule_named_expr_list.Rule_named_expr1","sum":3225305268},{"parent":"TRule_named_expr_list.TBlock2","rule":"TRule_named_expr_list.TBlock2.Rule_named_expr2","sum":3473260447},{"parent":"TRule_named_expr_list.TBlock2","rule":"TRule_named_expr_list.TBlock2.Token1","sum":3473260447},{"parent":"TRule_named_nodes_stmt","rule":"TRule_named_nodes_stmt.Block3","sum":1002566900},{"parent":"TRule_named_nodes_stmt","rule":"TRule_named_nodes_stmt.Rule_bind_parameter_list1","sum":1002566900},{"parent":"TRule_named_nodes_stmt","rule":"TRule_named_nodes_stmt.Token2","sum":1002566900},{"parent":"TRule_named_nodes_stmt.TBlock3","rule":"TRule_named_nodes_stmt.TBlock3.Alt1","sum":673827946},{"parent":"TRule_named_nodes_stmt.TBlock3","rule":"TRule_named_nodes_stmt.TBlock3.Alt2","sum":328738954},{"parent":"TRule_named_nodes_stmt.TBlock3.TAlt1","rule":"TRule_named_nodes_stmt.TBlock3.TAlt1.Rule_expr1","sum":673827946},{"parent":"TRule_named_nodes_stmt.TBlock3.TAlt2","rule":"TRule_named_nodes_stmt.TBlock3.TAlt2.Rule_subselect_stmt1","sum":328738954},{"parent":"TRule_named_single_source","rule":"TRule_named_single_source.Block2","sum":1},{"parent":"TRule_named_single_source","rule":"TRule_named_single_source.Block3","sum":441207217},{"parent":"TRule_named_single_source","rule":"TRule_named_single_source.Block4","sum":402903},{"parent":"TRule_named_single_source","rule":"TRule_named_single_source.Rule_single_source1","sum":1054906953},{"parent":"TRule_named_single_source.TBlock2","rule":"TRule_named_single_source.TBlock2.Rule_row_pattern_recognition_clause1","sum":1},{"parent":"TRule_named_single_source.TBlock3","rule":"TRule_named_single_source.TBlock3.Block1","sum":441207217},{"parent":"TRule_named_single_source.TBlock3","rule":"TRule_named_single_source.TBlock3.Block2","sum":159399},{"parent":"TRule_named_single_source.TBlock3.TBlock1","rule":"TRule_named_single_source.TBlock3.TBlock1.Alt1","sum":439152846},{"parent":"TRule_named_single_source.TBlock3.TBlock1","rule":"TRule_named_single_source.TBlock3.TBlock1.Alt2","sum":2054371},{"parent":"TRule_named_single_source.TBlock3.TBlock1.TAlt1","rule":"TRule_named_single_source.TBlock3.TBlock1.TAlt1.Rule_an_id2","sum":439152846},{"parent":"TRule_named_single_source.TBlock3.TBlock1.TAlt1","rule":"TRule_named_single_source.TBlock3.TBlock1.TAlt1.Token1","sum":439152846},{"parent":"TRule_named_single_source.TBlock3.TBlock1.TAlt2","rule":"TRule_named_single_source.TBlock3.TBlock1.TAlt2.Rule_an_id_as_compat1","sum":2054371},{"parent":"TRule_named_single_source.TBlock3.TBlock2","rule":"TRule_named_single_source.TBlock3.TBlock2.Rule_pure_column_list1","sum":159399},{"parent":"TRule_named_single_source.TBlock4","rule":"TRule_named_single_source.TBlock4.Alt1","sum":75042},{"parent":"TRule_named_single_source.TBlock4","rule":"TRule_named_single_source.TBlock4.Alt2","sum":327861},{"parent":"TRule_named_single_source.TBlock4.TAlt1","rule":"TRule_named_single_source.TBlock4.TAlt1.Rule_sample_clause1","sum":75042},{"parent":"TRule_named_single_source.TBlock4.TAlt2","rule":"TRule_named_single_source.TBlock4.TAlt2.Rule_tablesample_clause1","sum":327861},{"parent":"TRule_neq_subexpr","rule":"TRule_neq_subexpr.Block2","sum":9136767},{"parent":"TRule_neq_subexpr","rule":"TRule_neq_subexpr.Block3","sum":112324076},{"parent":"TRule_neq_subexpr","rule":"TRule_neq_subexpr.Rule_bit_subexpr1","sum":15412508761},{"parent":"TRule_neq_subexpr.TBlock2","rule":"TRule_neq_subexpr.TBlock2.Block1","sum":9206438},{"parent":"TRule_neq_subexpr.TBlock2","rule":"TRule_neq_subexpr.TBlock2.Rule_bit_subexpr2","sum":9206438},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt1","sum":8104033},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt2","sum":52838},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt3","sum":464},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt4","sum":23},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt5","sum":753087},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt6","sum":135478},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt7","sum":160515},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt1.Token1","sum":8104033},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt2","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt2.Rule_shift_right1","sum":52838},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt3","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt3.Token1","sum":464},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt4","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt4.Rule_rot_right1","sum":23},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt5","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt5.Token1","sum":753087},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt6","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt6.Token1","sum":135478},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt7","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt7.Token1","sum":160515},{"parent":"TRule_neq_subexpr.TBlock3","rule":"TRule_neq_subexpr.TBlock3.Alt1","sum":108571603},{"parent":"TRule_neq_subexpr.TBlock3","rule":"TRule_neq_subexpr.TBlock3.Alt2","sum":3752473},{"parent":"TRule_neq_subexpr.TBlock3.TAlt1","rule":"TRule_neq_subexpr.TBlock3.TAlt1.Rule_double_question1","sum":108571603},{"parent":"TRule_neq_subexpr.TBlock3.TAlt1","rule":"TRule_neq_subexpr.TBlock3.TAlt1.Rule_neq_subexpr2","sum":108571603},{"parent":"TRule_neq_subexpr.TBlock3.TAlt2","rule":"TRule_neq_subexpr.TBlock3.TAlt2.Block1","sum":3752473},{"parent":"TRule_neq_subexpr.TBlock3.TAlt2.TBlock1","rule":"TRule_neq_subexpr.TBlock3.TAlt2.TBlock1.Token1","sum":3764021},{"parent":"TRule_new_window_name","rule":"TRule_new_window_name.Rule_window_name1","sum":14110566},{"parent":"TRule_null_treatment","rule":"TRule_null_treatment.Alt_null_treatment1","sum":45},{"parent":"TRule_null_treatment","rule":"TRule_null_treatment.Alt_null_treatment2","sum":7082172},{"parent":"TRule_null_treatment.TAlt1","rule":"TRule_null_treatment.TAlt1.Token1","sum":45},{"parent":"TRule_null_treatment.TAlt1","rule":"TRule_null_treatment.TAlt1.Token2","sum":45},{"parent":"TRule_null_treatment.TAlt2","rule":"TRule_null_treatment.TAlt2.Token1","sum":7082172},{"parent":"TRule_null_treatment.TAlt2","rule":"TRule_null_treatment.TAlt2.Token2","sum":7082172},{"parent":"TRule_object_ref","rule":"TRule_object_ref.Block1","sum":5285194},{"parent":"TRule_object_ref","rule":"TRule_object_ref.Rule_id_or_at2","sum":133548148},{"parent":"TRule_object_ref.TBlock1","rule":"TRule_object_ref.TBlock1.Rule_cluster_expr1","sum":5285194},{"parent":"TRule_object_ref.TBlock1","rule":"TRule_object_ref.TBlock1.Token2","sum":5285194},{"parent":"TRule_opt_bind_parameter","rule":"TRule_opt_bind_parameter.Block2","sum":27466},{"parent":"TRule_opt_bind_parameter","rule":"TRule_opt_bind_parameter.Rule_bind_parameter1","sum":21282715},{"parent":"TRule_opt_bind_parameter.TBlock2","rule":"TRule_opt_bind_parameter.TBlock2.Token1","sum":27466},{"parent":"TRule_opt_id_prefix","rule":"TRule_opt_id_prefix.Block1","sum":82491107},{"parent":"TRule_opt_id_prefix.TBlock1","rule":"TRule_opt_id_prefix.TBlock1.Rule_an_id1","sum":82491107},{"parent":"TRule_opt_id_prefix.TBlock1","rule":"TRule_opt_id_prefix.TBlock1.Token2","sum":82491107},{"parent":"TRule_opt_id_prefix_or_type","rule":"TRule_opt_id_prefix_or_type.Block1","sum":771372817},{"parent":"TRule_opt_id_prefix_or_type.TBlock1","rule":"TRule_opt_id_prefix_or_type.TBlock1.Rule_an_id_or_type1","sum":771372817},{"parent":"TRule_opt_id_prefix_or_type.TBlock1","rule":"TRule_opt_id_prefix_or_type.TBlock1.Token2","sum":771372817},{"parent":"TRule_opt_set_quantifier","rule":"TRule_opt_set_quantifier.Block1","sum":70044287},{"parent":"TRule_opt_set_quantifier.TBlock1","rule":"TRule_opt_set_quantifier.TBlock1.Token1","sum":70044287},{"parent":"TRule_or_subexpr","rule":"TRule_or_subexpr.Block2","sum":276276983},{"parent":"TRule_or_subexpr","rule":"TRule_or_subexpr.Rule_and_subexpr1","sum":13776458637},{"parent":"TRule_or_subexpr.TBlock2","rule":"TRule_or_subexpr.TBlock2.Rule_and_subexpr2","sum":469698642},{"parent":"TRule_or_subexpr.TBlock2","rule":"TRule_or_subexpr.TBlock2.Token1","sum":469698642},{"parent":"TRule_order_by_clause","rule":"TRule_order_by_clause.Rule_sort_specification_list3","sum":107098966},{"parent":"TRule_order_by_clause","rule":"TRule_order_by_clause.Token1","sum":107098966},{"parent":"TRule_order_by_clause","rule":"TRule_order_by_clause.Token2","sum":107098966},{"parent":"TRule_ordinary_grouping_set","rule":"TRule_ordinary_grouping_set.Rule_named_expr1","sum":300694524},{"parent":"TRule_ordinary_grouping_set_list","rule":"TRule_ordinary_grouping_set_list.Block2","sum":199805},{"parent":"TRule_ordinary_grouping_set_list","rule":"TRule_ordinary_grouping_set_list.Rule_ordinary_grouping_set1","sum":339701},{"parent":"TRule_ordinary_grouping_set_list.TBlock2","rule":"TRule_ordinary_grouping_set_list.TBlock2.Rule_ordinary_grouping_set2","sum":432511},{"parent":"TRule_ordinary_grouping_set_list.TBlock2","rule":"TRule_ordinary_grouping_set_list.TBlock2.Token1","sum":432511},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Block4","sum":785793323},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Rule_an_id3","sum":889708160},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Rule_opt_id_prefix_or_type2","sum":889708160},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Token1","sum":889708160},{"parent":"TRule_pragma_stmt.TBlock4","rule":"TRule_pragma_stmt.TBlock4.Alt1","sum":738017904},{"parent":"TRule_pragma_stmt.TBlock4","rule":"TRule_pragma_stmt.TBlock4.Alt2","sum":47775419},{"parent":"TRule_pragma_stmt.TBlock4.TAlt1","rule":"TRule_pragma_stmt.TBlock4.TAlt1.Rule_pragma_value2","sum":738017904},{"parent":"TRule_pragma_stmt.TBlock4.TAlt1","rule":"TRule_pragma_stmt.TBlock4.TAlt1.Token1","sum":738017904},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Block3","sum":17591907},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Rule_pragma_value2","sum":47775419},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Token1","sum":47775419},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Token4","sum":47775419},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3","rule":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3.Rule_pragma_value2","sum":18396599},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3","rule":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3.Token1","sum":18396599},{"parent":"TRule_pragma_value","rule":"TRule_pragma_value.Alt_pragma_value2","sum":255302},{"parent":"TRule_pragma_value","rule":"TRule_pragma_value.Alt_pragma_value3","sum":791603349},{"parent":"TRule_pragma_value","rule":"TRule_pragma_value.Alt_pragma_value5","sum":12331271},{"parent":"TRule_pragma_value.TAlt2","rule":"TRule_pragma_value.TAlt2.Rule_id1","sum":255302},{"parent":"TRule_pragma_value.TAlt3","rule":"TRule_pragma_value.TAlt3.Token1","sum":791603349},{"parent":"TRule_pragma_value.TAlt5","rule":"TRule_pragma_value.TAlt5.Rule_bind_parameter1","sum":12331271},{"parent":"TRule_process_core","rule":"TRule_process_core.Block4","sum":1132},{"parent":"TRule_process_core","rule":"TRule_process_core.Block5","sum":1901404},{"parent":"TRule_process_core","rule":"TRule_process_core.Rule_named_single_source3","sum":4511331},{"parent":"TRule_process_core","rule":"TRule_process_core.Token1","sum":4511331},{"parent":"TRule_process_core.TBlock4","rule":"TRule_process_core.TBlock4.Rule_named_single_source2","sum":1133},{"parent":"TRule_process_core.TBlock4","rule":"TRule_process_core.TBlock4.Token1","sum":1133},{"parent":"TRule_process_core.TBlock5","rule":"TRule_process_core.TBlock5.Block3","sum":46},{"parent":"TRule_process_core.TBlock5","rule":"TRule_process_core.TBlock5.Block5","sum":4479},{"parent":"TRule_process_core.TBlock5","rule":"TRule_process_core.TBlock5.Block7","sum":9},{"parent":"TRule_process_core.TBlock5","rule":"TRule_process_core.TBlock5.Rule_using_call_expr2","sum":1901404},{"parent":"TRule_process_core.TBlock5","rule":"TRule_process_core.TBlock5.Token1","sum":1901404},{"parent":"TRule_process_core.TBlock5.TBlock3","rule":"TRule_process_core.TBlock5.TBlock3.Rule_an_id2","sum":46},{"parent":"TRule_process_core.TBlock5.TBlock3","rule":"TRule_process_core.TBlock5.TBlock3.Token1","sum":46},{"parent":"TRule_process_core.TBlock5.TBlock5","rule":"TRule_process_core.TBlock5.TBlock5.Rule_expr2","sum":4479},{"parent":"TRule_process_core.TBlock5.TBlock5","rule":"TRule_process_core.TBlock5.TBlock5.Token1","sum":4479},{"parent":"TRule_process_core.TBlock5.TBlock7","rule":"TRule_process_core.TBlock5.TBlock7.Rule_order_by_clause2","sum":9},{"parent":"TRule_process_core.TBlock5.TBlock7","rule":"TRule_process_core.TBlock5.TBlock7.Token1","sum":9},{"parent":"TRule_pure_column_list","rule":"TRule_pure_column_list.Block3","sum":3902316},{"parent":"TRule_pure_column_list","rule":"TRule_pure_column_list.Rule_an_id2","sum":4638391},{"parent":"TRule_pure_column_list","rule":"TRule_pure_column_list.Token1","sum":4638391},{"parent":"TRule_pure_column_list","rule":"TRule_pure_column_list.Token4","sum":4638391},{"parent":"TRule_pure_column_list.TBlock3","rule":"TRule_pure_column_list.TBlock3.Rule_an_id2","sum":34537553},{"parent":"TRule_pure_column_list.TBlock3","rule":"TRule_pure_column_list.TBlock3.Token1","sum":34537553},{"parent":"TRule_pure_column_or_named","rule":"TRule_pure_column_or_named.Alt_pure_column_or_named1","sum":6570850},{"parent":"TRule_pure_column_or_named","rule":"TRule_pure_column_or_named.Alt_pure_column_or_named2","sum":423525984},{"parent":"TRule_pure_column_or_named.TAlt1","rule":"TRule_pure_column_or_named.TAlt1.Rule_bind_parameter1","sum":6570850},{"parent":"TRule_pure_column_or_named.TAlt2","rule":"TRule_pure_column_or_named.TAlt2.Rule_an_id1","sum":423525984},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Block3","sum":11707260},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Rule_pure_column_or_named2","sum":32377040},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Token1","sum":32377040},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Token4","sum":32377040},{"parent":"TRule_pure_column_or_named_list.TBlock3","rule":"TRule_pure_column_or_named_list.TBlock3.Rule_pure_column_or_named2","sum":21738897},{"parent":"TRule_pure_column_or_named_list.TBlock3","rule":"TRule_pure_column_or_named_list.TBlock3.Token1","sum":21738897},{"parent":"TRule_real","rule":"TRule_real.Token1","sum":108407914},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block11","sum":9015},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block13","sum":25920},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block3","sum":113733},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block4","sum":295368},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block8","sum":305499},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Rule_column_list6","sum":838466},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Rule_named_single_source2","sum":838466},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Rule_using_call_expr9","sum":838466},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Token1","sum":838466},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Token5","sum":838466},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Token7","sum":838466},{"parent":"TRule_reduce_core.TBlock11","rule":"TRule_reduce_core.TBlock11.Rule_expr2","sum":9015},{"parent":"TRule_reduce_core.TBlock11","rule":"TRule_reduce_core.TBlock11.Token1","sum":9015},{"parent":"TRule_reduce_core.TBlock13","rule":"TRule_reduce_core.TBlock13.Rule_order_by_clause2","sum":25920},{"parent":"TRule_reduce_core.TBlock13","rule":"TRule_reduce_core.TBlock13.Token1","sum":25920},{"parent":"TRule_reduce_core.TBlock3","rule":"TRule_reduce_core.TBlock3.Rule_named_single_source2","sum":197711},{"parent":"TRule_reduce_core.TBlock3","rule":"TRule_reduce_core.TBlock3.Token1","sum":197711},{"parent":"TRule_reduce_core.TBlock4","rule":"TRule_reduce_core.TBlock4.Rule_sort_specification_list2","sum":295368},{"parent":"TRule_reduce_core.TBlock4","rule":"TRule_reduce_core.TBlock4.Token1","sum":295368},{"parent":"TRule_reduce_core.TBlock8","rule":"TRule_reduce_core.TBlock8.Token1","sum":305499},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Rule_expr3","sum":9174},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Token1","sum":9174},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Token2","sum":9174},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Token4","sum":9174},{"parent":"TRule_result_column","rule":"TRule_result_column.Alt_result_column1","sum":249019740},{"parent":"TRule_result_column","rule":"TRule_result_column.Alt_result_column2","sum":3434636821},{"parent":"TRule_result_column.TAlt1","rule":"TRule_result_column.TAlt1.Rule_opt_id_prefix1","sum":249019740},{"parent":"TRule_result_column.TAlt1","rule":"TRule_result_column.TAlt1.Token2","sum":249019740},{"parent":"TRule_result_column.TAlt2","rule":"TRule_result_column.TAlt2.Block2","sum":1980143194},{"parent":"TRule_result_column.TAlt2","rule":"TRule_result_column.TAlt2.Rule_expr1","sum":3434636821},{"parent":"TRule_result_column.TAlt2.TBlock2","rule":"TRule_result_column.TAlt2.TBlock2.Alt1","sum":1979279892},{"parent":"TRule_result_column.TAlt2.TBlock2","rule":"TRule_result_column.TAlt2.TBlock2.Alt2","sum":863302},{"parent":"TRule_result_column.TAlt2.TBlock2.TAlt1","rule":"TRule_result_column.TAlt2.TBlock2.TAlt1.Rule_an_id_or_type2","sum":1979279892},{"parent":"TRule_result_column.TAlt2.TBlock2.TAlt1","rule":"TRule_result_column.TAlt2.TBlock2.TAlt1.Token1","sum":1979279892},{"parent":"TRule_result_column.TAlt2.TBlock2.TAlt2","rule":"TRule_result_column.TAlt2.TBlock2.TAlt2.Rule_an_id_as_compat1","sum":863302},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Rule_ordinary_grouping_set_list3","sum":61937},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Token1","sum":61937},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Token2","sum":61937},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Token4","sum":61937},{"parent":"TRule_rot_right","rule":"TRule_rot_right.Token1","sum":23},{"parent":"TRule_rot_right","rule":"TRule_rot_right.Token2","sum":23},{"parent":"TRule_rot_right","rule":"TRule_rot_right.Token3","sum":23},{"parent":"TRule_row_pattern","rule":"TRule_row_pattern.Rule_row_pattern_term1","sum":2},{"parent":"TRule_row_pattern_common_syntax","rule":"TRule_row_pattern_common_syntax.Rule_row_pattern5","sum":1},{"parent":"TRule_row_pattern_common_syntax","rule":"TRule_row_pattern_common_syntax.Rule_row_pattern_definition_list9","sum":1},{"parent":"TRule_row_pattern_common_syntax","rule":"TRule_row_pattern_common_syntax.Token3","sum":1},{"parent":"TRule_row_pattern_common_syntax","rule":"TRule_row_pattern_common_syntax.Token4","sum":1},{"parent":"TRule_row_pattern_common_syntax","rule":"TRule_row_pattern_common_syntax.Token6","sum":1},{"parent":"TRule_row_pattern_common_syntax","rule":"TRule_row_pattern_common_syntax.Token8","sum":1},{"parent":"TRule_row_pattern_definition","rule":"TRule_row_pattern_definition.Rule_row_pattern_definition_search_condition3","sum":1},{"parent":"TRule_row_pattern_definition","rule":"TRule_row_pattern_definition.Rule_row_pattern_definition_variable_name1","sum":1},{"parent":"TRule_row_pattern_definition","rule":"TRule_row_pattern_definition.Token2","sum":1},{"parent":"TRule_row_pattern_definition_list","rule":"TRule_row_pattern_definition_list.Rule_row_pattern_definition1","sum":1},{"parent":"TRule_row_pattern_definition_search_condition","rule":"TRule_row_pattern_definition_search_condition.Rule_search_condition1","sum":1},{"parent":"TRule_row_pattern_definition_variable_name","rule":"TRule_row_pattern_definition_variable_name.Rule_row_pattern_variable_name1","sum":1},{"parent":"TRule_row_pattern_factor","rule":"TRule_row_pattern_factor.Block2","sum":1},{"parent":"TRule_row_pattern_factor","rule":"TRule_row_pattern_factor.Rule_row_pattern_primary1","sum":2},{"parent":"TRule_row_pattern_factor.TBlock2","rule":"TRule_row_pattern_factor.TBlock2.Rule_row_pattern_quantifier1","sum":1},{"parent":"TRule_row_pattern_measure_definition","rule":"TRule_row_pattern_measure_definition.Rule_an_id3","sum":3},{"parent":"TRule_row_pattern_measure_definition","rule":"TRule_row_pattern_measure_definition.Rule_expr1","sum":3},{"parent":"TRule_row_pattern_measure_definition","rule":"TRule_row_pattern_measure_definition.Token2","sum":3},{"parent":"TRule_row_pattern_measure_list","rule":"TRule_row_pattern_measure_list.Block2","sum":1},{"parent":"TRule_row_pattern_measure_list","rule":"TRule_row_pattern_measure_list.Rule_row_pattern_measure_definition1","sum":1},{"parent":"TRule_row_pattern_measure_list.TBlock2","rule":"TRule_row_pattern_measure_list.TBlock2.Rule_row_pattern_measure_definition2","sum":2},{"parent":"TRule_row_pattern_measure_list.TBlock2","rule":"TRule_row_pattern_measure_list.TBlock2.Token1","sum":2},{"parent":"TRule_row_pattern_measures","rule":"TRule_row_pattern_measures.Rule_row_pattern_measure_list2","sum":1},{"parent":"TRule_row_pattern_measures","rule":"TRule_row_pattern_measures.Token1","sum":1},{"parent":"TRule_row_pattern_primary","rule":"TRule_row_pattern_primary.Alt_row_pattern_primary1","sum":1},{"parent":"TRule_row_pattern_primary","rule":"TRule_row_pattern_primary.Alt_row_pattern_primary4","sum":1},{"parent":"TRule_row_pattern_primary.TAlt1","rule":"TRule_row_pattern_primary.TAlt1.Rule_row_pattern_primary_variable_name1","sum":1},{"parent":"TRule_row_pattern_primary.TAlt4","rule":"TRule_row_pattern_primary.TAlt4.Block2","sum":1},{"parent":"TRule_row_pattern_primary.TAlt4","rule":"TRule_row_pattern_primary.TAlt4.Token1","sum":1},{"parent":"TRule_row_pattern_primary.TAlt4","rule":"TRule_row_pattern_primary.TAlt4.Token3","sum":1},{"parent":"TRule_row_pattern_primary.TAlt4.TBlock2","rule":"TRule_row_pattern_primary.TAlt4.TBlock2.Rule_row_pattern1","sum":1},{"parent":"TRule_row_pattern_primary_variable_name","rule":"TRule_row_pattern_primary_variable_name.Rule_row_pattern_variable_name1","sum":1},{"parent":"TRule_row_pattern_quantifier","rule":"TRule_row_pattern_quantifier.Alt_row_pattern_quantifier5","sum":1},{"parent":"TRule_row_pattern_quantifier.TAlt5","rule":"TRule_row_pattern_quantifier.TAlt5.Rule_integer2","sum":1},{"parent":"TRule_row_pattern_quantifier.TAlt5","rule":"TRule_row_pattern_quantifier.TAlt5.Token1","sum":1},{"parent":"TRule_row_pattern_quantifier.TAlt5","rule":"TRule_row_pattern_quantifier.TAlt5.Token3","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Block3","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Block4","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Block5","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Block6","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Rule_row_pattern_common_syntax7","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Token1","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Token2","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Token8","sum":1},{"parent":"TRule_row_pattern_recognition_clause.TBlock3","rule":"TRule_row_pattern_recognition_clause.TBlock3.Rule_window_partition_clause1","sum":1},{"parent":"TRule_row_pattern_recognition_clause.TBlock4","rule":"TRule_row_pattern_recognition_clause.TBlock4.Rule_order_by_clause1","sum":1},{"parent":"TRule_row_pattern_recognition_clause.TBlock5","rule":"TRule_row_pattern_recognition_clause.TBlock5.Rule_row_pattern_measures1","sum":1},{"parent":"TRule_row_pattern_recognition_clause.TBlock6","rule":"TRule_row_pattern_recognition_clause.TBlock6.Rule_row_pattern_rows_per_match1","sum":1},{"parent":"TRule_row_pattern_rows_per_match","rule":"TRule_row_pattern_rows_per_match.Alt_row_pattern_rows_per_match1","sum":1},{"parent":"TRule_row_pattern_rows_per_match.TAlt1","rule":"TRule_row_pattern_rows_per_match.TAlt1.Token1","sum":1},{"parent":"TRule_row_pattern_rows_per_match.TAlt1","rule":"TRule_row_pattern_rows_per_match.TAlt1.Token2","sum":1},{"parent":"TRule_row_pattern_rows_per_match.TAlt1","rule":"TRule_row_pattern_rows_per_match.TAlt1.Token3","sum":1},{"parent":"TRule_row_pattern_rows_per_match.TAlt1","rule":"TRule_row_pattern_rows_per_match.TAlt1.Token4","sum":1},{"parent":"TRule_row_pattern_term","rule":"TRule_row_pattern_term.Block1","sum":2},{"parent":"TRule_row_pattern_term.TBlock1","rule":"TRule_row_pattern_term.TBlock1.Rule_row_pattern_factor1","sum":2},{"parent":"TRule_row_pattern_variable_name","rule":"TRule_row_pattern_variable_name.Rule_identifier1","sum":2},{"parent":"TRule_sample_clause","rule":"TRule_sample_clause.Rule_expr2","sum":75042},{"parent":"TRule_sample_clause","rule":"TRule_sample_clause.Token1","sum":75042},{"parent":"TRule_sampling_mode","rule":"TRule_sampling_mode.Token1","sum":327861},{"parent":"TRule_search_condition","rule":"TRule_search_condition.Rule_expr1","sum":1},{"parent":"TRule_select_core","rule":"TRule_select_core.Block1","sum":10686557},{"parent":"TRule_select_core","rule":"TRule_select_core.Block10","sum":340046928},{"parent":"TRule_select_core","rule":"TRule_select_core.Block11","sum":137629459},{"parent":"TRule_select_core","rule":"TRule_select_core.Block12","sum":12099314},{"parent":"TRule_select_core","rule":"TRule_select_core.Block13","sum":13537900},{"parent":"TRule_select_core","rule":"TRule_select_core.Block14","sum":88178773},{"parent":"TRule_select_core","rule":"TRule_select_core.Block3","sum":117},{"parent":"TRule_select_core","rule":"TRule_select_core.Block6","sum":528240331},{"parent":"TRule_select_core","rule":"TRule_select_core.Block7","sum":93118064},{"parent":"TRule_select_core","rule":"TRule_select_core.Block8","sum":24720066},{"parent":"TRule_select_core","rule":"TRule_select_core.Block9","sum":830615230},{"parent":"TRule_select_core","rule":"TRule_select_core.Rule_opt_set_quantifier4","sum":900766423},{"parent":"TRule_select_core","rule":"TRule_select_core.Rule_result_column5","sum":900766423},{"parent":"TRule_select_core","rule":"TRule_select_core.Token2","sum":900766423},{"parent":"TRule_select_core.TBlock1","rule":"TRule_select_core.TBlock1.Rule_join_source2","sum":10686557},{"parent":"TRule_select_core.TBlock1","rule":"TRule_select_core.TBlock1.Token1","sum":10686557},{"parent":"TRule_select_core.TBlock10","rule":"TRule_select_core.TBlock10.Rule_expr2","sum":340046928},{"parent":"TRule_select_core.TBlock10","rule":"TRule_select_core.TBlock10.Token1","sum":340046928},{"parent":"TRule_select_core.TBlock11","rule":"TRule_select_core.TBlock11.Rule_group_by_clause1","sum":137629459},{"parent":"TRule_select_core.TBlock12","rule":"TRule_select_core.TBlock12.Rule_expr2","sum":12099314},{"parent":"TRule_select_core.TBlock12","rule":"TRule_select_core.TBlock12.Token1","sum":12099314},{"parent":"TRule_select_core.TBlock13","rule":"TRule_select_core.TBlock13.Rule_window_clause1","sum":13537900},{"parent":"TRule_select_core.TBlock14","rule":"TRule_select_core.TBlock14.Rule_ext_order_by_clause1","sum":88178773},{"parent":"TRule_select_core.TBlock3","rule":"TRule_select_core.TBlock3.Token1","sum":117},{"parent":"TRule_select_core.TBlock6","rule":"TRule_select_core.TBlock6.Rule_result_column2","sum":2782890138},{"parent":"TRule_select_core.TBlock6","rule":"TRule_select_core.TBlock6.Token1","sum":2782890138},{"parent":"TRule_select_core.TBlock7","rule":"TRule_select_core.TBlock7.Token1","sum":93118064},{"parent":"TRule_select_core.TBlock8","rule":"TRule_select_core.TBlock8.Block2","sum":3},{"parent":"TRule_select_core.TBlock8","rule":"TRule_select_core.TBlock8.Rule_without_column_list3","sum":24720066},{"parent":"TRule_select_core.TBlock8","rule":"TRule_select_core.TBlock8.Token1","sum":24720066},{"parent":"TRule_select_core.TBlock8.TBlock2","rule":"TRule_select_core.TBlock8.TBlock2.Token1","sum":3},{"parent":"TRule_select_core.TBlock8.TBlock2","rule":"TRule_select_core.TBlock8.TBlock2.Token2","sum":3},{"parent":"TRule_select_core.TBlock9","rule":"TRule_select_core.TBlock9.Rule_join_source2","sum":830615230},{"parent":"TRule_select_core.TBlock9","rule":"TRule_select_core.TBlock9.Token1","sum":830615230},{"parent":"TRule_select_kind","rule":"TRule_select_kind.Block1","sum":915353},{"parent":"TRule_select_kind","rule":"TRule_select_kind.Block2","sum":906116220},{"parent":"TRule_select_kind","rule":"TRule_select_kind.Block3","sum":2880950},{"parent":"TRule_select_kind.TBlock1","rule":"TRule_select_kind.TBlock1.Token1","sum":915353},{"parent":"TRule_select_kind.TBlock2","rule":"TRule_select_kind.TBlock2.Alt1","sum":4511331},{"parent":"TRule_select_kind.TBlock2","rule":"TRule_select_kind.TBlock2.Alt2","sum":838466},{"parent":"TRule_select_kind.TBlock2","rule":"TRule_select_kind.TBlock2.Alt3","sum":900766423},{"parent":"TRule_select_kind.TBlock2.TAlt1","rule":"TRule_select_kind.TBlock2.TAlt1.Rule_process_core1","sum":4511331},{"parent":"TRule_select_kind.TBlock2.TAlt2","rule":"TRule_select_kind.TBlock2.TAlt2.Rule_reduce_core1","sum":838466},{"parent":"TRule_select_kind.TBlock2.TAlt3","rule":"TRule_select_kind.TBlock2.TAlt3.Rule_select_core1","sum":900766423},{"parent":"TRule_select_kind.TBlock3","rule":"TRule_select_kind.TBlock3.Rule_pure_column_or_named3","sum":2880950},{"parent":"TRule_select_kind.TBlock3","rule":"TRule_select_kind.TBlock3.Token1","sum":2880950},{"parent":"TRule_select_kind.TBlock3","rule":"TRule_select_kind.TBlock3.Token2","sum":2880950},{"parent":"TRule_select_kind_parenthesis","rule":"TRule_select_kind_parenthesis.Alt_select_kind_parenthesis1","sum":775950850},{"parent":"TRule_select_kind_parenthesis","rule":"TRule_select_kind_parenthesis.Alt_select_kind_parenthesis2","sum":7927813},{"parent":"TRule_select_kind_parenthesis.TAlt1","rule":"TRule_select_kind_parenthesis.TAlt1.Rule_select_kind_partial1","sum":775950850},{"parent":"TRule_select_kind_parenthesis.TAlt2","rule":"TRule_select_kind_parenthesis.TAlt2.Rule_select_kind_partial2","sum":7927813},{"parent":"TRule_select_kind_parenthesis.TAlt2","rule":"TRule_select_kind_parenthesis.TAlt2.Token1","sum":7927813},{"parent":"TRule_select_kind_parenthesis.TAlt2","rule":"TRule_select_kind_parenthesis.TAlt2.Token3","sum":7927813},{"parent":"TRule_select_kind_partial","rule":"TRule_select_kind_partial.Block2","sum":30562305},{"parent":"TRule_select_kind_partial","rule":"TRule_select_kind_partial.Rule_select_kind1","sum":906116220},{"parent":"TRule_select_kind_partial.TBlock2","rule":"TRule_select_kind_partial.TBlock2.Block3","sum":4496625},{"parent":"TRule_select_kind_partial.TBlock2","rule":"TRule_select_kind_partial.TBlock2.Rule_expr2","sum":30562305},{"parent":"TRule_select_kind_partial.TBlock2","rule":"TRule_select_kind_partial.TBlock2.Token1","sum":30562305},{"parent":"TRule_select_kind_partial.TBlock2.TBlock3","rule":"TRule_select_kind_partial.TBlock2.TBlock3.Rule_expr2","sum":4496625},{"parent":"TRule_select_kind_partial.TBlock2.TBlock3","rule":"TRule_select_kind_partial.TBlock2.TBlock3.Token1","sum":4496625},{"parent":"TRule_select_op","rule":"TRule_select_op.Alt_select_op1","sum":63830507},{"parent":"TRule_select_op.TAlt1","rule":"TRule_select_op.TAlt1.Block2","sum":62947922},{"parent":"TRule_select_op.TAlt1","rule":"TRule_select_op.TAlt1.Token1","sum":63830507},{"parent":"TRule_select_op.TAlt1.TBlock2","rule":"TRule_select_op.TAlt1.TBlock2.Token1","sum":62947922},{"parent":"TRule_select_stmt","rule":"TRule_select_stmt.Block2","sum":33216727},{"parent":"TRule_select_stmt","rule":"TRule_select_stmt.Rule_select_kind_parenthesis1","sum":720048156},{"parent":"TRule_select_stmt.TBlock2","rule":"TRule_select_stmt.TBlock2.Rule_select_kind_parenthesis2","sum":56908673},{"parent":"TRule_select_stmt.TBlock2","rule":"TRule_select_stmt.TBlock2.Rule_select_op1","sum":56908673},{"parent":"TRule_select_unparenthesized_stmt","rule":"TRule_select_unparenthesized_stmt.Block2","sum":4274079},{"parent":"TRule_select_unparenthesized_stmt","rule":"TRule_select_unparenthesized_stmt.Rule_select_kind_partial1","sum":122237557},{"parent":"TRule_select_unparenthesized_stmt.TBlock2","rule":"TRule_select_unparenthesized_stmt.TBlock2.Rule_select_kind_parenthesis2","sum":6921834},{"parent":"TRule_select_unparenthesized_stmt.TBlock2","rule":"TRule_select_unparenthesized_stmt.TBlock2.Rule_select_op1","sum":6921834},{"parent":"TRule_shift_right","rule":"TRule_shift_right.Token1","sum":52838},{"parent":"TRule_shift_right","rule":"TRule_shift_right.Token2","sum":52838},{"parent":"TRule_simple_table_ref","rule":"TRule_simple_table_ref.Block2","sum":142445588},{"parent":"TRule_simple_table_ref","rule":"TRule_simple_table_ref.Rule_simple_table_ref_core1","sum":210577516},{"parent":"TRule_simple_table_ref.TBlock2","rule":"TRule_simple_table_ref.TBlock2.Rule_table_hints1","sum":142445588},{"parent":"TRule_simple_table_ref_core","rule":"TRule_simple_table_ref_core.Alt_simple_table_ref_core1","sum":133548148},{"parent":"TRule_simple_table_ref_core","rule":"TRule_simple_table_ref_core.Alt_simple_table_ref_core2","sum":77029368},{"parent":"TRule_simple_table_ref_core.TAlt1","rule":"TRule_simple_table_ref_core.TAlt1.Rule_object_ref1","sum":133548148},{"parent":"TRule_simple_table_ref_core.TAlt2","rule":"TRule_simple_table_ref_core.TAlt2.Block1","sum":71573},{"parent":"TRule_simple_table_ref_core.TAlt2","rule":"TRule_simple_table_ref_core.TAlt2.Rule_bind_parameter2","sum":77029368},{"parent":"TRule_simple_table_ref_core.TAlt2.TBlock1","rule":"TRule_simple_table_ref_core.TAlt2.TBlock1.Token1","sum":71573},{"parent":"TRule_single_source","rule":"TRule_single_source.Alt_single_source1","sum":950258780},{"parent":"TRule_single_source","rule":"TRule_single_source.Alt_single_source2","sum":104480181},{"parent":"TRule_single_source","rule":"TRule_single_source.Alt_single_source3","sum":167992},{"parent":"TRule_single_source.TAlt1","rule":"TRule_single_source.TAlt1.Rule_table_ref1","sum":950258780},{"parent":"TRule_single_source.TAlt2","rule":"TRule_single_source.TAlt2.Rule_select_stmt2","sum":104480181},{"parent":"TRule_single_source.TAlt2","rule":"TRule_single_source.TAlt2.Token1","sum":104480181},{"parent":"TRule_single_source.TAlt2","rule":"TRule_single_source.TAlt2.Token3","sum":104480181},{"parent":"TRule_single_source.TAlt3","rule":"TRule_single_source.TAlt3.Rule_values_stmt2","sum":167992},{"parent":"TRule_single_source.TAlt3","rule":"TRule_single_source.TAlt3.Token1","sum":167992},{"parent":"TRule_single_source.TAlt3","rule":"TRule_single_source.TAlt3.Token3","sum":167992},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Block2","sum":506638603},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Block3","sum":2604905},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Token1","sum":510536515},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Token4","sum":510536515},{"parent":"TRule_smart_parenthesis.TBlock2","rule":"TRule_smart_parenthesis.TBlock2.Rule_named_expr_list1","sum":506638603},{"parent":"TRule_smart_parenthesis.TBlock3","rule":"TRule_smart_parenthesis.TBlock3.Token1","sum":2604905},{"parent":"TRule_sort_specification","rule":"TRule_sort_specification.Block2","sum":32972666},{"parent":"TRule_sort_specification","rule":"TRule_sort_specification.Rule_expr1","sum":180557811},{"parent":"TRule_sort_specification.TBlock2","rule":"TRule_sort_specification.TBlock2.Token1","sum":32972666},{"parent":"TRule_sort_specification_list","rule":"TRule_sort_specification_list.Block2","sum":39667162},{"parent":"TRule_sort_specification_list","rule":"TRule_sort_specification_list.Rule_sort_specification1","sum":107394334},{"parent":"TRule_sort_specification_list.TBlock2","rule":"TRule_sort_specification_list.TBlock2.Rule_sort_specification2","sum":73163477},{"parent":"TRule_sort_specification_list.TBlock2","rule":"TRule_sort_specification_list.TBlock2.Token1","sum":73163477},{"parent":"TRule_sql_query","rule":"TRule_sql_query.Alt_sql_query1","sum":318387605},{"parent":"TRule_sql_query.TAlt1","rule":"TRule_sql_query.TAlt1.Rule_sql_stmt_list1","sum":318387605},{"parent":"TRule_sql_stmt","rule":"TRule_sql_stmt.Block1","sum":51},{"parent":"TRule_sql_stmt","rule":"TRule_sql_stmt.Rule_sql_stmt_core2","sum":2704776586},{"parent":"TRule_sql_stmt.TBlock1","rule":"TRule_sql_stmt.TBlock1.Token1","sum":51},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core1","sum":889708160},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core12","sum":154773177},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core13","sum":16445839},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core17","sum":4690245},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core18","sum":22146478},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core19","sum":8529552},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core2","sum":192372863},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core20","sum":6943272},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core21","sum":329},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core3","sum":939224641},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core4","sum":137},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core5","sum":2560940},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core6","sum":327978948},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core7","sum":208016439},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core8","sum":12985670},{"parent":"TRule_sql_stmt_core.TAlt1","rule":"TRule_sql_stmt_core.TAlt1.Rule_pragma_stmt1","sum":889708160},{"parent":"TRule_sql_stmt_core.TAlt12","rule":"TRule_sql_stmt_core.TAlt12.Rule_declare_stmt1","sum":154773177},{"parent":"TRule_sql_stmt_core.TAlt13","rule":"TRule_sql_stmt_core.TAlt13.Rule_import_stmt1","sum":16445839},{"parent":"TRule_sql_stmt_core.TAlt17","rule":"TRule_sql_stmt_core.TAlt17.Rule_do_stmt1","sum":4690245},{"parent":"TRule_sql_stmt_core.TAlt18","rule":"TRule_sql_stmt_core.TAlt18.Rule_define_action_or_subquery_stmt1","sum":22146478},{"parent":"TRule_sql_stmt_core.TAlt19","rule":"TRule_sql_stmt_core.TAlt19.Rule_if_stmt1","sum":8529552},{"parent":"TRule_sql_stmt_core.TAlt2","rule":"TRule_sql_stmt_core.TAlt2.Rule_select_stmt1","sum":192372863},{"parent":"TRule_sql_stmt_core.TAlt20","rule":"TRule_sql_stmt_core.TAlt20.Rule_for_stmt1","sum":6943272},{"parent":"TRule_sql_stmt_core.TAlt21","rule":"TRule_sql_stmt_core.TAlt21.Rule_values_stmt1","sum":329},{"parent":"TRule_sql_stmt_core.TAlt3","rule":"TRule_sql_stmt_core.TAlt3.Rule_named_nodes_stmt1","sum":939224641},{"parent":"TRule_sql_stmt_core.TAlt4","rule":"TRule_sql_stmt_core.TAlt4.Rule_create_table_stmt1","sum":137},{"parent":"TRule_sql_stmt_core.TAlt5","rule":"TRule_sql_stmt_core.TAlt5.Rule_drop_table_stmt1","sum":2560940},{"parent":"TRule_sql_stmt_core.TAlt6","rule":"TRule_sql_stmt_core.TAlt6.Rule_use_stmt1","sum":327978948},{"parent":"TRule_sql_stmt_core.TAlt7","rule":"TRule_sql_stmt_core.TAlt7.Rule_into_table_stmt1","sum":208016439},{"parent":"TRule_sql_stmt_core.TAlt8","rule":"TRule_sql_stmt_core.TAlt8.Rule_commit_stmt1","sum":12985670},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Block1","sum":442},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Block3","sum":312962614},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Block4","sum":194275107},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Rule_sql_stmt2","sum":318387605},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Token5","sum":318387605},{"parent":"TRule_sql_stmt_list.TBlock1","rule":"TRule_sql_stmt_list.TBlock1.Token1","sum":465},{"parent":"TRule_sql_stmt_list.TBlock3","rule":"TRule_sql_stmt_list.TBlock3.Block1","sum":2386388981},{"parent":"TRule_sql_stmt_list.TBlock3","rule":"TRule_sql_stmt_list.TBlock3.Rule_sql_stmt2","sum":2386388981},{"parent":"TRule_sql_stmt_list.TBlock3.TBlock1","rule":"TRule_sql_stmt_list.TBlock3.TBlock1.Token1","sum":2395451248},{"parent":"TRule_sql_stmt_list.TBlock4","rule":"TRule_sql_stmt_list.TBlock4.Token1","sum":196953420},{"parent":"TRule_struct_arg","rule":"TRule_struct_arg.Rule_type_name_or_bind3","sum":114249217},{"parent":"TRule_struct_arg","rule":"TRule_struct_arg.Rule_type_name_tag1","sum":114249217},{"parent":"TRule_struct_arg","rule":"TRule_struct_arg.Token2","sum":114249217},{"parent":"TRule_struct_arg_positional","rule":"TRule_struct_arg_positional.Alt_struct_arg_positional1","sum":175},{"parent":"TRule_struct_arg_positional.TAlt1","rule":"TRule_struct_arg_positional.TAlt1.Block3","sum":146},{"parent":"TRule_struct_arg_positional.TAlt1","rule":"TRule_struct_arg_positional.TAlt1.Rule_type_name_or_bind2","sum":175},{"parent":"TRule_struct_arg_positional.TAlt1","rule":"TRule_struct_arg_positional.TAlt1.Rule_type_name_tag1","sum":175},{"parent":"TRule_struct_arg_positional.TAlt1.TBlock3","rule":"TRule_struct_arg_positional.TAlt1.TBlock3.Token2","sum":146},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Block2","sum":14291717},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Block3","sum":2496630},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Token1","sum":14420408},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Token4","sum":14420408},{"parent":"TRule_struct_literal.TBlock2","rule":"TRule_struct_literal.TBlock2.Rule_expr_struct_list1","sum":14291717},{"parent":"TRule_struct_literal.TBlock3","rule":"TRule_struct_literal.TBlock3.Token1","sum":2496630},{"parent":"TRule_subselect_stmt","rule":"TRule_subselect_stmt.Block1","sum":328738954},{"parent":"TRule_subselect_stmt.TBlock1","rule":"TRule_subselect_stmt.TBlock1.Alt1","sum":206501397},{"parent":"TRule_subselect_stmt.TBlock1","rule":"TRule_subselect_stmt.TBlock1.Alt2","sum":122237557},{"parent":"TRule_subselect_stmt.TBlock1.TAlt1","rule":"TRule_subselect_stmt.TBlock1.TAlt1.Rule_select_stmt2","sum":206501397},{"parent":"TRule_subselect_stmt.TBlock1.TAlt1","rule":"TRule_subselect_stmt.TBlock1.TAlt1.Token1","sum":206501397},{"parent":"TRule_subselect_stmt.TBlock1.TAlt1","rule":"TRule_subselect_stmt.TBlock1.TAlt1.Token3","sum":206501397},{"parent":"TRule_subselect_stmt.TBlock1.TAlt2","rule":"TRule_subselect_stmt.TBlock1.TAlt2.Rule_select_unparenthesized_stmt1","sum":122237557},{"parent":"TRule_table_arg","rule":"TRule_table_arg.Block1","sum":115539},{"parent":"TRule_table_arg","rule":"TRule_table_arg.Block3","sum":260484},{"parent":"TRule_table_arg","rule":"TRule_table_arg.Rule_named_expr2","sum":192912118},{"parent":"TRule_table_arg.TBlock1","rule":"TRule_table_arg.TBlock1.Token1","sum":115539},{"parent":"TRule_table_arg.TBlock3","rule":"TRule_table_arg.TBlock3.Rule_view_name2","sum":260484},{"parent":"TRule_table_arg.TBlock3","rule":"TRule_table_arg.TBlock3.Token1","sum":260484},{"parent":"TRule_table_constraint","rule":"TRule_table_constraint.Alt_table_constraint2","sum":136},{"parent":"TRule_table_constraint","rule":"TRule_table_constraint.Alt_table_constraint3","sum":117},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Block5","sum":115},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Rule_an_id4","sum":136},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Token1","sum":136},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Token2","sum":136},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Token3","sum":136},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Token6","sum":136},{"parent":"TRule_table_constraint.TAlt2.TBlock5","rule":"TRule_table_constraint.TAlt2.TBlock5.Rule_an_id2","sum":289},{"parent":"TRule_table_constraint.TAlt2.TBlock5","rule":"TRule_table_constraint.TAlt2.TBlock5.Token1","sum":289},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Rule_column_order_by_specification4","sum":117},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Token1","sum":117},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Token2","sum":117},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Token3","sum":117},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Token6","sum":117},{"parent":"TRule_table_hint","rule":"TRule_table_hint.Alt_table_hint1","sum":153546171},{"parent":"TRule_table_hint","rule":"TRule_table_hint.Alt_table_hint2","sum":18976651},{"parent":"TRule_table_hint","rule":"TRule_table_hint.Alt_table_hint3","sum":12},{"parent":"TRule_table_hint.TAlt1","rule":"TRule_table_hint.TAlt1.Block2","sum":10469920},{"parent":"TRule_table_hint.TAlt1","rule":"TRule_table_hint.TAlt1.Rule_an_id_hint1","sum":153546171},{"parent":"TRule_table_hint.TAlt1.TBlock2","rule":"TRule_table_hint.TAlt1.TBlock2.Block2","sum":10469920},{"parent":"TRule_table_hint.TAlt1.TBlock2","rule":"TRule_table_hint.TAlt1.TBlock2.Token1","sum":10469920},{"parent":"TRule_table_hint.TAlt1.TBlock2.TBlock2","rule":"TRule_table_hint.TAlt1.TBlock2.TBlock2.Alt1","sum":10469920},{"parent":"TRule_table_hint.TAlt1.TBlock2.TBlock2.TAlt1","rule":"TRule_table_hint.TAlt1.TBlock2.TBlock2.TAlt1.Rule_type_name_tag1","sum":10469920},{"parent":"TRule_table_hint.TAlt2","rule":"TRule_table_hint.TAlt2.Block2","sum":1518},{"parent":"TRule_table_hint.TAlt2","rule":"TRule_table_hint.TAlt2.Rule_type_name_or_bind3","sum":18976651},{"parent":"TRule_table_hint.TAlt2","rule":"TRule_table_hint.TAlt2.Token1","sum":18976651},{"parent":"TRule_table_hint.TAlt2.TBlock2","rule":"TRule_table_hint.TAlt2.TBlock2.Token1","sum":1518},{"parent":"TRule_table_hint.TAlt3","rule":"TRule_table_hint.TAlt3.Block4","sum":12},{"parent":"TRule_table_hint.TAlt3","rule":"TRule_table_hint.TAlt3.Token1","sum":12},{"parent":"TRule_table_hint.TAlt3","rule":"TRule_table_hint.TAlt3.Token3","sum":12},{"parent":"TRule_table_hint.TAlt3","rule":"TRule_table_hint.TAlt3.Token6","sum":12},{"parent":"TRule_table_hint.TAlt3.TBlock4","rule":"TRule_table_hint.TAlt3.TBlock4.Block2","sum":7},{"parent":"TRule_table_hint.TAlt3.TBlock4","rule":"TRule_table_hint.TAlt3.TBlock4.Rule_struct_arg_positional1","sum":12},{"parent":"TRule_table_hint.TAlt3.TBlock4.TBlock2","rule":"TRule_table_hint.TAlt3.TBlock4.TBlock2.Rule_struct_arg_positional2","sum":163},{"parent":"TRule_table_hint.TAlt3.TBlock4.TBlock2","rule":"TRule_table_hint.TAlt3.TBlock4.TBlock2.Token1","sum":163},{"parent":"TRule_table_hints","rule":"TRule_table_hints.Block2","sum":162142057},{"parent":"TRule_table_hints","rule":"TRule_table_hints.Token1","sum":162142057},{"parent":"TRule_table_hints.TBlock2","rule":"TRule_table_hints.TBlock2.Alt1","sum":151892471},{"parent":"TRule_table_hints.TBlock2","rule":"TRule_table_hints.TBlock2.Alt2","sum":10249586},{"parent":"TRule_table_hints.TBlock2.TAlt1","rule":"TRule_table_hints.TBlock2.TAlt1.Rule_table_hint1","sum":151892471},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Block3","sum":9986448},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Rule_table_hint2","sum":10249586},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Token1","sum":10249586},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Token4","sum":10249586},{"parent":"TRule_table_hints.TBlock2.TAlt2.TBlock3","rule":"TRule_table_hints.TBlock2.TAlt2.TBlock3.Rule_table_hint2","sum":10380777},{"parent":"TRule_table_hints.TBlock2.TAlt2.TBlock3","rule":"TRule_table_hints.TBlock2.TAlt2.TBlock3.Token1","sum":10380777},{"parent":"TRule_table_key","rule":"TRule_table_key.Block2","sum":862367},{"parent":"TRule_table_key","rule":"TRule_table_key.Rule_id_table_or_type1","sum":330502970},{"parent":"TRule_table_key.TBlock2","rule":"TRule_table_key.TBlock2.Rule_view_name2","sum":862367},{"parent":"TRule_table_key.TBlock2","rule":"TRule_table_key.TBlock2.Token1","sum":862367},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block1","sum":39835805},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block2","sum":5991149},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block3","sum":950258780},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block4","sum":19696469},{"parent":"TRule_table_ref.TBlock1","rule":"TRule_table_ref.TBlock1.Rule_cluster_expr1","sum":39835805},{"parent":"TRule_table_ref.TBlock1","rule":"TRule_table_ref.TBlock1.Token2","sum":39835805},{"parent":"TRule_table_ref.TBlock2","rule":"TRule_table_ref.TBlock2.Token1","sum":5991149},{"parent":"TRule_table_ref.TBlock3","rule":"TRule_table_ref.TBlock3.Alt1","sum":330502970},{"parent":"TRule_table_ref.TBlock3","rule":"TRule_table_ref.TBlock3.Alt2","sum":96096575},{"parent":"TRule_table_ref.TBlock3","rule":"TRule_table_ref.TBlock3.Alt3","sum":523659235},{"parent":"TRule_table_ref.TBlock3.TAlt1","rule":"TRule_table_ref.TBlock3.TAlt1.Rule_table_key1","sum":330502970},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Block3","sum":96096550},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Rule_an_id_expr1","sum":96096575},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Token2","sum":96096575},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Token4","sum":96096575},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.Block2","sum":49748295},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.Block3","sum":354064},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.Rule_table_arg1","sum":96096550},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2.Rule_table_arg2","sum":96815568},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2.Token1","sum":96815568},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock3.Token1","sum":354064},{"parent":"TRule_table_ref.TBlock3.TAlt3","rule":"TRule_table_ref.TBlock3.TAlt3.Block2","sum":22139268},{"parent":"TRule_table_ref.TBlock3.TAlt3","rule":"TRule_table_ref.TBlock3.TAlt3.Block3","sum":175129},{"parent":"TRule_table_ref.TBlock3.TAlt3","rule":"TRule_table_ref.TBlock3.TAlt3.Rule_bind_parameter1","sum":523659235},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.Block2","sum":15792195},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.Token1","sum":22139268},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.Token3","sum":22139268},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.TBlock2.Rule_expr_list1","sum":15792195},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock3.Rule_view_name2","sum":175129},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock3.Token1","sum":175129},{"parent":"TRule_table_ref.TBlock4","rule":"TRule_table_ref.TBlock4.Rule_table_hints1","sum":19696469},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Block6","sum":9174},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Rule_expr4","sum":327861},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Rule_sampling_mode2","sum":327861},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Token1","sum":327861},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Token3","sum":327861},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Token5","sum":327861},{"parent":"TRule_tablesample_clause.TBlock6","rule":"TRule_tablesample_clause.TBlock6.Rule_repeatable_clause1","sum":9174},{"parent":"TRule_type_id","rule":"TRule_type_id.Token1","sum":11605036},{"parent":"TRule_type_name","rule":"TRule_type_name.Alt_type_name1","sum":89143008},{"parent":"TRule_type_name","rule":"TRule_type_name.Alt_type_name2","sum":701067436},{"parent":"TRule_type_name.TAlt1","rule":"TRule_type_name.TAlt1.Rule_type_name_composite1","sum":89143008},{"parent":"TRule_type_name.TAlt2","rule":"TRule_type_name.TAlt2.Block1","sum":701067436},{"parent":"TRule_type_name.TAlt2","rule":"TRule_type_name.TAlt2.Block2","sum":73831696},{"parent":"TRule_type_name.TAlt2.TBlock1","rule":"TRule_type_name.TAlt2.TBlock1.Alt1","sum":28171640},{"parent":"TRule_type_name.TAlt2.TBlock1","rule":"TRule_type_name.TAlt2.TBlock1.Alt2","sum":672895796},{"parent":"TRule_type_name.TAlt2.TBlock1.TAlt1","rule":"TRule_type_name.TAlt2.TBlock1.TAlt1.Rule_type_name_decimal1","sum":28171640},{"parent":"TRule_type_name.TAlt2.TBlock1.TAlt2","rule":"TRule_type_name.TAlt2.TBlock1.TAlt2.Rule_type_name_simple1","sum":672895796},{"parent":"TRule_type_name.TAlt2.TBlock2","rule":"TRule_type_name.TAlt2.TBlock2.Token1","sum":73832709},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Block4","sum":9720740},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Block5","sum":215778},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Block6","sum":10621},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Rule_type_name_or_bind9","sum":10047579},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token1","sum":10047579},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token10","sum":10047579},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token2","sum":10047579},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token3","sum":10047579},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token7","sum":10047579},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token8","sum":10047579},{"parent":"TRule_type_name_callable.TBlock4","rule":"TRule_type_name_callable.TBlock4.Rule_callable_arg_list1","sum":9720740},{"parent":"TRule_type_name_callable.TBlock5","rule":"TRule_type_name_callable.TBlock5.Token1","sum":215778},{"parent":"TRule_type_name_callable.TBlock6","rule":"TRule_type_name_callable.TBlock6.Rule_callable_arg_list2","sum":10621},{"parent":"TRule_type_name_callable.TBlock6","rule":"TRule_type_name_callable.TBlock6.Token1","sum":10621},{"parent":"TRule_type_name_callable.TBlock6","rule":"TRule_type_name_callable.TBlock6.Token3","sum":10621},{"parent":"TRule_type_name_composite","rule":"TRule_type_name_composite.Block1","sum":106459710},{"parent":"TRule_type_name_composite","rule":"TRule_type_name_composite.Block2","sum":4232015},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt1","sum":33241727},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt10","sum":19606},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt11","sum":461582},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt12","sum":8101},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt13","sum":10047579},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt2","sum":2141941},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt3","sum":26667991},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt4","sum":134576},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt5","sum":25611693},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt6","sum":1511517},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt8","sum":6600605},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt9","sum":12792},{"parent":"TRule_type_name_composite.TBlock1.TAlt1","rule":"TRule_type_name_composite.TBlock1.TAlt1.Rule_type_name_optional1","sum":33241727},{"parent":"TRule_type_name_composite.TBlock1.TAlt10","rule":"TRule_type_name_composite.TBlock1.TAlt10.Rule_type_name_enum1","sum":19606},{"parent":"TRule_type_name_composite.TBlock1.TAlt11","rule":"TRule_type_name_composite.TBlock1.TAlt11.Rule_type_name_resource1","sum":461582},{"parent":"TRule_type_name_composite.TBlock1.TAlt12","rule":"TRule_type_name_composite.TBlock1.TAlt12.Rule_type_name_tagged1","sum":8101},{"parent":"TRule_type_name_composite.TBlock1.TAlt13","rule":"TRule_type_name_composite.TBlock1.TAlt13.Rule_type_name_callable1","sum":10047579},{"parent":"TRule_type_name_composite.TBlock1.TAlt2","rule":"TRule_type_name_composite.TBlock1.TAlt2.Rule_type_name_tuple1","sum":2141941},{"parent":"TRule_type_name_composite.TBlock1.TAlt3","rule":"TRule_type_name_composite.TBlock1.TAlt3.Rule_type_name_struct1","sum":26667991},{"parent":"TRule_type_name_composite.TBlock1.TAlt4","rule":"TRule_type_name_composite.TBlock1.TAlt4.Rule_type_name_variant1","sum":134576},{"parent":"TRule_type_name_composite.TBlock1.TAlt5","rule":"TRule_type_name_composite.TBlock1.TAlt5.Rule_type_name_list1","sum":25611693},{"parent":"TRule_type_name_composite.TBlock1.TAlt6","rule":"TRule_type_name_composite.TBlock1.TAlt6.Rule_type_name_stream1","sum":1511517},{"parent":"TRule_type_name_composite.TBlock1.TAlt8","rule":"TRule_type_name_composite.TBlock1.TAlt8.Rule_type_name_dict1","sum":6600605},{"parent":"TRule_type_name_composite.TBlock1.TAlt9","rule":"TRule_type_name_composite.TBlock1.TAlt9.Rule_type_name_set1","sum":12792},{"parent":"TRule_type_name_composite.TBlock2","rule":"TRule_type_name_composite.TBlock2.Token1","sum":4232018},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Rule_integer_or_bind3","sum":28171640},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Rule_integer_or_bind5","sum":28171640},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token1","sum":28171640},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token2","sum":28171640},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token4","sum":28171640},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token6","sum":28171640},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Rule_type_name_or_bind3","sum":6600605},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Rule_type_name_or_bind5","sum":6600605},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token1","sum":6600605},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token2","sum":6600605},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token4","sum":6600605},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token6","sum":6600605},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Block4","sum":19361},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Block5","sum":379},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Rule_type_name_tag3","sum":19606},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Token1","sum":19606},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Token2","sum":19606},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Token6","sum":19606},{"parent":"TRule_type_name_enum.TBlock4","rule":"TRule_type_name_enum.TBlock4.Rule_type_name_tag2","sum":42245},{"parent":"TRule_type_name_enum.TBlock4","rule":"TRule_type_name_enum.TBlock4.Token1","sum":42245},{"parent":"TRule_type_name_enum.TBlock5","rule":"TRule_type_name_enum.TBlock5.Token1","sum":379},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Rule_type_name_or_bind3","sum":25611693},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Token1","sum":25611693},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Token2","sum":25611693},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Token4","sum":25611693},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Rule_type_name_or_bind3","sum":33241727},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Token1","sum":33241727},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Token2","sum":33241727},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Token4","sum":33241727},{"parent":"TRule_type_name_or_bind","rule":"TRule_type_name_or_bind.Alt_type_name_or_bind1","sum":635437267},{"parent":"TRule_type_name_or_bind","rule":"TRule_type_name_or_bind.Alt_type_name_or_bind2","sum":2641538},{"parent":"TRule_type_name_or_bind.TAlt1","rule":"TRule_type_name_or_bind.TAlt1.Rule_type_name1","sum":635437267},{"parent":"TRule_type_name_or_bind.TAlt2","rule":"TRule_type_name_or_bind.TAlt2.Rule_bind_parameter1","sum":2641538},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Rule_type_name_tag3","sum":461582},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Token1","sum":461582},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Token2","sum":461582},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Token4","sum":461582},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Rule_type_name_or_bind3","sum":12792},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Token1","sum":12792},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Token2","sum":12792},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Token4","sum":12792},{"parent":"TRule_type_name_simple","rule":"TRule_type_name_simple.Rule_an_id_pure1","sum":674730413},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Rule_type_name_or_bind3","sum":1511517},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Token1","sum":1511517},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Token2","sum":1511517},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Token4","sum":1511517},{"parent":"TRule_type_name_struct","rule":"TRule_type_name_struct.Block2","sum":26667991},{"parent":"TRule_type_name_struct","rule":"TRule_type_name_struct.Token1","sum":26667991},{"parent":"TRule_type_name_struct.TBlock2","rule":"TRule_type_name_struct.TBlock2.Alt1","sum":26665125},{"parent":"TRule_type_name_struct.TBlock2","rule":"TRule_type_name_struct.TBlock2.Alt2","sum":2866},{"parent":"TRule_type_name_struct.TBlock2.TAlt1","rule":"TRule_type_name_struct.TBlock2.TAlt1.Block2","sum":26665114},{"parent":"TRule_type_name_struct.TBlock2.TAlt1","rule":"TRule_type_name_struct.TBlock2.TAlt1.Token1","sum":26665125},{"parent":"TRule_type_name_struct.TBlock2.TAlt1","rule":"TRule_type_name_struct.TBlock2.TAlt1.Token3","sum":26665125},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.Block2","sum":20354699},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.Block3","sum":2043506},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.Rule_struct_arg1","sum":26665114},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2.Rule_struct_arg2","sum":87584103},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2.Token1","sum":87584103},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock3","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock3.Token1","sum":2043506},{"parent":"TRule_type_name_struct.TBlock2.TAlt2","rule":"TRule_type_name_struct.TBlock2.TAlt2.Token1","sum":2866},{"parent":"TRule_type_name_tag","rule":"TRule_type_name_tag.Alt_type_name_tag1","sum":104950323},{"parent":"TRule_type_name_tag","rule":"TRule_type_name_tag.Alt_type_name_tag2","sum":18081381},{"parent":"TRule_type_name_tag","rule":"TRule_type_name_tag.Alt_type_name_tag3","sum":2578002},{"parent":"TRule_type_name_tag.TAlt1","rule":"TRule_type_name_tag.TAlt1.Rule_id1","sum":104950323},{"parent":"TRule_type_name_tag.TAlt2","rule":"TRule_type_name_tag.TAlt2.Token1","sum":18081381},{"parent":"TRule_type_name_tag.TAlt3","rule":"TRule_type_name_tag.TAlt3.Rule_bind_parameter1","sum":2578002},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Rule_type_name_or_bind3","sum":8101},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Rule_type_name_tag5","sum":8101},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token1","sum":8101},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token2","sum":8101},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token4","sum":8101},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token6","sum":8101},{"parent":"TRule_type_name_tuple","rule":"TRule_type_name_tuple.Block2","sum":2141941},{"parent":"TRule_type_name_tuple","rule":"TRule_type_name_tuple.Token1","sum":2141941},{"parent":"TRule_type_name_tuple.TBlock2","rule":"TRule_type_name_tuple.TBlock2.Alt1","sum":2141931},{"parent":"TRule_type_name_tuple.TBlock2","rule":"TRule_type_name_tuple.TBlock2.Alt2","sum":10},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1","rule":"TRule_type_name_tuple.TBlock2.TAlt1.Block2","sum":2141931},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1","rule":"TRule_type_name_tuple.TBlock2.TAlt1.Token1","sum":2141931},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1","rule":"TRule_type_name_tuple.TBlock2.TAlt1.Token3","sum":2141931},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.Block2","sum":2140421},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.Block3","sum":63802},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.Rule_type_name_or_bind1","sum":2141931},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2.Rule_type_name_or_bind2","sum":3322309},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2.Token1","sum":3322309},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock3","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock3.Token1","sum":63802},{"parent":"TRule_type_name_tuple.TBlock2.TAlt2","rule":"TRule_type_name_tuple.TBlock2.TAlt2.Token1","sum":10},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Block4","sum":119447},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Block5","sum":98},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Rule_variant_arg3","sum":134576},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Token1","sum":134576},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Token2","sum":134576},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Token6","sum":134576},{"parent":"TRule_type_name_variant.TBlock4","rule":"TRule_type_name_variant.TBlock4.Rule_variant_arg2","sum":224717},{"parent":"TRule_type_name_variant.TBlock4","rule":"TRule_type_name_variant.TBlock4.Token1","sum":224717},{"parent":"TRule_type_name_variant.TBlock5","rule":"TRule_type_name_variant.TBlock5.Token1","sum":98},{"parent":"TRule_unary_casual_subexpr","rule":"TRule_unary_casual_subexpr.Block1","sum":15968238357},{"parent":"TRule_unary_casual_subexpr","rule":"TRule_unary_casual_subexpr.Rule_unary_subexpr_suffix2","sum":15968238357},{"parent":"TRule_unary_casual_subexpr.TBlock1","rule":"TRule_unary_casual_subexpr.TBlock1.Alt1","sum":7152342653},{"parent":"TRule_unary_casual_subexpr.TBlock1","rule":"TRule_unary_casual_subexpr.TBlock1.Alt2","sum":8815895704},{"parent":"TRule_unary_casual_subexpr.TBlock1.TAlt1","rule":"TRule_unary_casual_subexpr.TBlock1.TAlt1.Rule_id_expr1","sum":7152342653},{"parent":"TRule_unary_casual_subexpr.TBlock1.TAlt2","rule":"TRule_unary_casual_subexpr.TBlock1.TAlt2.Rule_atom_expr1","sum":8815895704},{"parent":"TRule_unary_op","rule":"TRule_unary_op.Token1","sum":87288612},{"parent":"TRule_unary_subexpr","rule":"TRule_unary_subexpr.Alt_unary_subexpr1","sum":15968238357},{"parent":"TRule_unary_subexpr","rule":"TRule_unary_subexpr.Alt_unary_subexpr2","sum":6364265},{"parent":"TRule_unary_subexpr.TAlt1","rule":"TRule_unary_subexpr.TAlt1.Rule_unary_casual_subexpr1","sum":15968238357},{"parent":"TRule_unary_subexpr.TAlt2","rule":"TRule_unary_subexpr.TAlt2.Rule_json_api_expr1","sum":6364265},{"parent":"TRule_unary_subexpr_suffix","rule":"TRule_unary_subexpr_suffix.Block1","sum":4753125763},{"parent":"TRule_unary_subexpr_suffix.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.Block1","sum":5006032286},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.Alt1","sum":172134618},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.Alt2","sum":2862515375},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.Alt3","sum":1971382293},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt1.Rule_key_expr1","sum":172134618},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt2.Rule_invoke_expr1","sum":2862515375},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.Block2","sum":1971382293},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.Token1","sum":1971382293},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.Alt1","sum":3151772},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.Alt2","sum":40160019},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.Alt3","sum":1928070502},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt1.Rule_bind_parameter1","sum":3151772},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt2.Token1","sum":40160019},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt3","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt3.Rule_an_id_or_type1","sum":1928070502},{"parent":"TRule_use_stmt","rule":"TRule_use_stmt.Rule_cluster_expr2","sum":327978948},{"parent":"TRule_use_stmt","rule":"TRule_use_stmt.Token1","sum":327978948},{"parent":"TRule_using_call_expr","rule":"TRule_using_call_expr.Block1","sum":2739870},{"parent":"TRule_using_call_expr","rule":"TRule_using_call_expr.Rule_invoke_expr2","sum":2739870},{"parent":"TRule_using_call_expr.TBlock1","rule":"TRule_using_call_expr.TBlock1.Alt1","sum":1509367},{"parent":"TRule_using_call_expr.TBlock1","rule":"TRule_using_call_expr.TBlock1.Alt3","sum":1230503},{"parent":"TRule_using_call_expr.TBlock1.TAlt1","rule":"TRule_using_call_expr.TBlock1.TAlt1.Rule_an_id_or_type1","sum":1509367},{"parent":"TRule_using_call_expr.TBlock1.TAlt1","rule":"TRule_using_call_expr.TBlock1.TAlt1.Rule_an_id_or_type3","sum":1509367},{"parent":"TRule_using_call_expr.TBlock1.TAlt1","rule":"TRule_using_call_expr.TBlock1.TAlt1.Token2","sum":1509367},{"parent":"TRule_using_call_expr.TBlock1.TAlt3","rule":"TRule_using_call_expr.TBlock1.TAlt3.Rule_bind_parameter1","sum":1230503},{"parent":"TRule_value_constructor","rule":"TRule_value_constructor.Alt_value_constructor1","sum":32195},{"parent":"TRule_value_constructor","rule":"TRule_value_constructor.Alt_value_constructor2","sum":49134},{"parent":"TRule_value_constructor","rule":"TRule_value_constructor.Alt_value_constructor3","sum":79687},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Rule_expr3","sum":32195},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Rule_expr5","sum":32195},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Rule_expr7","sum":32195},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token1","sum":32195},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token2","sum":32195},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token4","sum":32195},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token6","sum":32195},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token8","sum":32195},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Rule_expr3","sum":49134},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Rule_expr5","sum":49134},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token1","sum":49134},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token2","sum":49134},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token4","sum":49134},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token6","sum":49134},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Rule_expr3","sum":79687},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Rule_expr5","sum":79687},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token1","sum":79687},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token2","sum":79687},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token4","sum":79687},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token6","sum":79687},{"parent":"TRule_values_source","rule":"TRule_values_source.Alt_values_source1","sum":1084119},{"parent":"TRule_values_source","rule":"TRule_values_source.Alt_values_source2","sum":206932320},{"parent":"TRule_values_source.TAlt1","rule":"TRule_values_source.TAlt1.Rule_values_stmt1","sum":1084119},{"parent":"TRule_values_source.TAlt2","rule":"TRule_values_source.TAlt2.Rule_select_stmt1","sum":206932320},{"parent":"TRule_values_source_row","rule":"TRule_values_source_row.Rule_expr_list2","sum":9047706},{"parent":"TRule_values_source_row","rule":"TRule_values_source_row.Token1","sum":9047706},{"parent":"TRule_values_source_row","rule":"TRule_values_source_row.Token3","sum":9047706},{"parent":"TRule_values_source_row_list","rule":"TRule_values_source_row_list.Block2","sum":489068},{"parent":"TRule_values_source_row_list","rule":"TRule_values_source_row_list.Rule_values_source_row1","sum":1252440},{"parent":"TRule_values_source_row_list.TBlock2","rule":"TRule_values_source_row_list.TBlock2.Rule_values_source_row2","sum":7795266},{"parent":"TRule_values_source_row_list.TBlock2","rule":"TRule_values_source_row_list.TBlock2.Token1","sum":7795266},{"parent":"TRule_values_stmt","rule":"TRule_values_stmt.Rule_values_source_row_list2","sum":1252440},{"parent":"TRule_values_stmt","rule":"TRule_values_stmt.Token1","sum":1252440},{"parent":"TRule_variant_arg","rule":"TRule_variant_arg.Block1","sum":358860},{"parent":"TRule_variant_arg","rule":"TRule_variant_arg.Rule_type_name_or_bind2","sum":18256382},{"parent":"TRule_variant_arg.TBlock1","rule":"TRule_variant_arg.TBlock1.Rule_type_name_tag1","sum":358860},{"parent":"TRule_variant_arg.TBlock1","rule":"TRule_variant_arg.TBlock1.Token2","sum":358860},{"parent":"TRule_view_name","rule":"TRule_view_name.Alt_view_name1","sum":1297980},{"parent":"TRule_view_name.TAlt1","rule":"TRule_view_name.TAlt1.Rule_an_id1","sum":1297980},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Rule_expr2","sum":157500144},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Rule_expr4","sum":157500144},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Token1","sum":157500144},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Token3","sum":157500144},{"parent":"TRule_window_clause","rule":"TRule_window_clause.Rule_window_definition_list2","sum":13537900},{"parent":"TRule_window_clause","rule":"TRule_window_clause.Token1","sum":13537900},{"parent":"TRule_window_definition","rule":"TRule_window_definition.Rule_new_window_name1","sum":14110566},{"parent":"TRule_window_definition","rule":"TRule_window_definition.Rule_window_specification3","sum":14110566},{"parent":"TRule_window_definition","rule":"TRule_window_definition.Token2","sum":14110566},{"parent":"TRule_window_definition_list","rule":"TRule_window_definition_list.Block2","sum":432400},{"parent":"TRule_window_definition_list","rule":"TRule_window_definition_list.Rule_window_definition1","sum":13537900},{"parent":"TRule_window_definition_list.TBlock2","rule":"TRule_window_definition_list.TBlock2.Rule_window_definition2","sum":572666},{"parent":"TRule_window_definition_list.TBlock2","rule":"TRule_window_definition_list.TBlock2.Token1","sum":572666},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Rule_window_frame_bound2","sum":2309562},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Rule_window_frame_bound4","sum":2309562},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Token1","sum":2309562},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Token3","sum":2309562},{"parent":"TRule_window_frame_bound","rule":"TRule_window_frame_bound.Alt_window_frame_bound1","sum":1317591},{"parent":"TRule_window_frame_bound","rule":"TRule_window_frame_bound.Alt_window_frame_bound2","sum":3359164},{"parent":"TRule_window_frame_bound.TAlt1","rule":"TRule_window_frame_bound.TAlt1.Token1","sum":1317591},{"parent":"TRule_window_frame_bound.TAlt1","rule":"TRule_window_frame_bound.TAlt1.Token2","sum":1317591},{"parent":"TRule_window_frame_bound.TAlt2","rule":"TRule_window_frame_bound.TAlt2.Block1","sum":3359164},{"parent":"TRule_window_frame_bound.TAlt2","rule":"TRule_window_frame_bound.TAlt2.Token2","sum":3359164},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1","rule":"TRule_window_frame_bound.TAlt2.TBlock1.Alt1","sum":1114703},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1","rule":"TRule_window_frame_bound.TAlt2.TBlock1.Alt2","sum":2244461},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt1","rule":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt1.Rule_expr1","sum":1114703},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt2","rule":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt2.Token1","sum":2244461},{"parent":"TRule_window_frame_clause","rule":"TRule_window_frame_clause.Rule_window_frame_extent2","sum":2367193},{"parent":"TRule_window_frame_clause","rule":"TRule_window_frame_clause.Rule_window_frame_units1","sum":2367193},{"parent":"TRule_window_frame_extent","rule":"TRule_window_frame_extent.Alt_window_frame_extent1","sum":57631},{"parent":"TRule_window_frame_extent","rule":"TRule_window_frame_extent.Alt_window_frame_extent2","sum":2309562},{"parent":"TRule_window_frame_extent.TAlt1","rule":"TRule_window_frame_extent.TAlt1.Rule_window_frame_bound1","sum":57631},{"parent":"TRule_window_frame_extent.TAlt2","rule":"TRule_window_frame_extent.TAlt2.Rule_window_frame_between1","sum":2309562},{"parent":"TRule_window_frame_units","rule":"TRule_window_frame_units.Token1","sum":2367193},{"parent":"TRule_window_name","rule":"TRule_window_name.Rule_an_id_window1","sum":46472719},{"parent":"TRule_window_name_or_specification","rule":"TRule_window_name_or_specification.Alt_window_name_or_specification1","sum":32362153},{"parent":"TRule_window_name_or_specification","rule":"TRule_window_name_or_specification.Alt_window_name_or_specification2","sum":12739706},{"parent":"TRule_window_name_or_specification.TAlt1","rule":"TRule_window_name_or_specification.TAlt1.Rule_window_name1","sum":32362153},{"parent":"TRule_window_name_or_specification.TAlt2","rule":"TRule_window_name_or_specification.TAlt2.Rule_window_specification1","sum":12739706},{"parent":"TRule_window_order_clause","rule":"TRule_window_order_clause.Rule_order_by_clause1","sum":18894263},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Block2","sum":51324},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Rule_named_expr_list4","sum":21674753},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Token1","sum":21674753},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Token3","sum":21674753},{"parent":"TRule_window_partition_clause.TBlock2","rule":"TRule_window_partition_clause.TBlock2.Token1","sum":51324},{"parent":"TRule_window_specification","rule":"TRule_window_specification.Rule_window_specification_details2","sum":26850272},{"parent":"TRule_window_specification","rule":"TRule_window_specification.Token1","sum":26850272},{"parent":"TRule_window_specification","rule":"TRule_window_specification.Token3","sum":26850272},{"parent":"TRule_window_specification_details","rule":"TRule_window_specification_details.Block2","sum":21674752},{"parent":"TRule_window_specification_details","rule":"TRule_window_specification_details.Block3","sum":18894263},{"parent":"TRule_window_specification_details","rule":"TRule_window_specification_details.Block4","sum":2367193},{"parent":"TRule_window_specification_details.TBlock2","rule":"TRule_window_specification_details.TBlock2.Rule_window_partition_clause1","sum":21674752},{"parent":"TRule_window_specification_details.TBlock3","rule":"TRule_window_specification_details.TBlock3.Rule_window_order_clause1","sum":18894263},{"parent":"TRule_window_specification_details.TBlock4","rule":"TRule_window_specification_details.TBlock4.Rule_window_frame_clause1","sum":2367193},{"parent":"TRule_without_column_list","rule":"TRule_without_column_list.Block2","sum":9142942},{"parent":"TRule_without_column_list","rule":"TRule_without_column_list.Block3","sum":1296663},{"parent":"TRule_without_column_list","rule":"TRule_without_column_list.Rule_without_column_name1","sum":24720066},{"parent":"TRule_without_column_list.TBlock2","rule":"TRule_without_column_list.TBlock2.Rule_without_column_name2","sum":29091924},{"parent":"TRule_without_column_list.TBlock2","rule":"TRule_without_column_list.TBlock2.Token1","sum":29091924},{"parent":"TRule_without_column_list.TBlock3","rule":"TRule_without_column_list.TBlock3.Token1","sum":1296663},{"parent":"TRule_without_column_name","rule":"TRule_without_column_name.Alt_without_column_name1","sum":30689820},{"parent":"TRule_without_column_name","rule":"TRule_without_column_name.Alt_without_column_name2","sum":23122170},{"parent":"TRule_without_column_name.TAlt1","rule":"TRule_without_column_name.TAlt1.Rule_an_id1","sum":30689820},{"parent":"TRule_without_column_name.TAlt1","rule":"TRule_without_column_name.TAlt1.Rule_an_id3","sum":30689820},{"parent":"TRule_without_column_name.TAlt1","rule":"TRule_without_column_name.TAlt1.Token2","sum":30689820},{"parent":"TRule_without_column_name.TAlt2","rule":"TRule_without_column_name.TAlt2.Rule_an_id_without1","sum":23122170},{"parent":"TRule_xor_subexpr","rule":"TRule_xor_subexpr.Block2","sum":1091682389},{"parent":"TRule_xor_subexpr","rule":"TRule_xor_subexpr.Rule_eq_subexpr1","sum":14246186831},{"parent":"TRule_xor_subexpr.TBlock2","rule":"TRule_xor_subexpr.TBlock2.Rule_cond_expr1","sum":1091682389},{"parent":"TSQLv1ParserAST","rule":"TSQLv1ParserAST.Rule_sql_query","sum":318387605},{"parent":"TYPE","rule":"BIGINT","sum":7101},{"parent":"TYPE","rule":"BOOL","sum":108389},{"parent":"TYPE","rule":"BYTEs","sum":1},{"parent":"TYPE","rule":"BigInt","sum":210},{"parent":"TYPE","rule":"Bool","sum":9272747},{"parent":"TYPE","rule":"Bytes","sum":414522},{"parent":"TYPE","rule":"DATE","sum":1242372},{"parent":"TYPE","rule":"DATETIME","sum":66264},{"parent":"TYPE","rule":"DATETime","sum":2},{"parent":"TYPE","rule":"DATEtIME","sum":1},{"parent":"TYPE","rule":"DATEtime","sum":34},{"parent":"TYPE","rule":"DAte","sum":9541},{"parent":"TYPE","rule":"DAteTime","sum":54},{"parent":"TYPE","rule":"DAtetime","sum":685},{"parent":"TYPE","rule":"DOUBLE","sum":1338435},{"parent":"TYPE","rule":"DOUBLe","sum":1},{"parent":"TYPE","rule":"DOUBle","sum":1},{"parent":"TYPE","rule":"DOUble","sum":3},{"parent":"TYPE","rule":"DOuble","sum":2118},{"parent":"TYPE","rule":"DaTeTime","sum":1},{"parent":"TYPE","rule":"Date","sum":20552673},{"parent":"TYPE","rule":"Date32","sum":57},{"parent":"TYPE","rule":"DateTIME","sum":19},{"parent":"TYPE","rule":"DateTIme","sum":113},{"parent":"TYPE","rule":"DateTime","sum":4961130},{"parent":"TYPE","rule":"DateTime64","sum":8},{"parent":"TYPE","rule":"DatetIME","sum":35},{"parent":"TYPE","rule":"Datetime","sum":3245135},{"parent":"TYPE","rule":"Datetime64","sum":26},{"parent":"TYPE","rule":"DoubLe","sum":13},{"parent":"TYPE","rule":"Double","sum":30004369},{"parent":"TYPE","rule":"EmptyDict","sum":28},{"parent":"TYPE","rule":"EmptyList","sum":27},{"parent":"TYPE","rule":"FLOAT","sum":196112},{"parent":"TYPE","rule":"FLoat","sum":3502},{"parent":"TYPE","rule":"FlOAT","sum":15},{"parent":"TYPE","rule":"FloaT","sum":317},{"parent":"TYPE","rule":"Float","sum":7045265},{"parent":"TYPE","rule":"Generic","sum":2},{"parent":"TYPE","rule":"INT","sum":440180},{"parent":"TYPE","rule":"INT16","sum":9699},{"parent":"TYPE","rule":"INT32","sum":139102},{"parent":"TYPE","rule":"INT64","sum":4131992},{"parent":"TYPE","rule":"INT8","sum":1770},{"parent":"TYPE","rule":"INTEGER","sum":73607},{"parent":"TYPE","rule":"INTERVAL","sum":11073},{"parent":"TYPE","rule":"INt16","sum":1},{"parent":"TYPE","rule":"INt32","sum":1154},{"parent":"TYPE","rule":"INt64","sum":38786},{"parent":"TYPE","rule":"InT32","sum":1},{"parent":"TYPE","rule":"Int","sum":522114},{"parent":"TYPE","rule":"Int16","sum":897927},{"parent":"TYPE","rule":"Int32","sum":13668505},{"parent":"TYPE","rule":"Int64","sum":47331088},{"parent":"TYPE","rule":"Int8","sum":969156},{"parent":"TYPE","rule":"Integer","sum":468888},{"parent":"TYPE","rule":"Interval","sum":203511},{"parent":"TYPE","rule":"Interval64","sum":34},{"parent":"TYPE","rule":"JSON","sum":1720792},{"parent":"TYPE","rule":"JSONDocument","sum":243},{"parent":"TYPE","rule":"JSOn","sum":1},{"parent":"TYPE","rule":"JSon","sum":11},{"parent":"TYPE","rule":"Json","sum":5441608},{"parent":"TYPE","rule":"JsonDocument","sum":17227},{"parent":"TYPE","rule":"Jsondocument","sum":25},{"parent":"TYPE","rule":"PgBool","sum":20},{"parent":"TYPE","rule":"PgBox","sum":2},{"parent":"TYPE","rule":"PgByteA","sum":16},{"parent":"TYPE","rule":"PgCString","sum":19},{"parent":"TYPE","rule":"PgDate","sum":85},{"parent":"TYPE","rule":"PgFloat4","sum":31},{"parent":"TYPE","rule":"PgFloat8","sum":31},{"parent":"TYPE","rule":"PgInt","sum":1},{"parent":"TYPE","rule":"PgInt2","sum":97},{"parent":"TYPE","rule":"PgInt4","sum":37},{"parent":"TYPE","rule":"PgInt8","sum":32},{"parent":"TYPE","rule":"PgInterval","sum":238},{"parent":"TYPE","rule":"PgMoney","sum":2},{"parent":"TYPE","rule":"PgName","sum":2},{"parent":"TYPE","rule":"PgNumeric","sum":10},{"parent":"TYPE","rule":"PgPoint","sum":1264},{"parent":"TYPE","rule":"PgPolygon","sum":622},{"parent":"TYPE","rule":"PgText","sum":414},{"parent":"TYPE","rule":"PgTimestamp","sum":1805},{"parent":"TYPE","rule":"PgVarChar","sum":1},{"parent":"TYPE","rule":"PgVarchar","sum":231},{"parent":"TYPE","rule":"STRING","sum":2682014},{"parent":"TYPE","rule":"STRINg","sum":3},{"parent":"TYPE","rule":"STRing","sum":3},{"parent":"TYPE","rule":"STring","sum":1294},{"parent":"TYPE","rule":"StrINg","sum":45},{"parent":"TYPE","rule":"StrinG","sum":27},{"parent":"TYPE","rule":"String","sum":333866429},{"parent":"TYPE","rule":"TEXT","sum":18984},{"parent":"TYPE","rule":"TIMESTAMP","sum":312271},{"parent":"TYPE","rule":"TINYINT","sum":1},{"parent":"TYPE","rule":"TZDate","sum":30},{"parent":"TYPE","rule":"TZDateTime","sum":1},{"parent":"TYPE","rule":"TZDatetime","sum":25},{"parent":"TYPE","rule":"TZtimestamp","sum":1},{"parent":"TYPE","rule":"Text","sum":185895},{"parent":"TYPE","rule":"TimeStamp","sum":296676},{"parent":"TYPE","rule":"Timestamp","sum":5958368},{"parent":"TYPE","rule":"Timestamp64","sum":458},{"parent":"TYPE","rule":"TzDATE","sum":5},{"parent":"TYPE","rule":"TzDate","sum":47109},{"parent":"TYPE","rule":"TzDateTime","sum":43848},{"parent":"TYPE","rule":"TzDatetime","sum":675925},{"parent":"TYPE","rule":"TzTimeStamp","sum":6},{"parent":"TYPE","rule":"TzTimestamp","sum":7872},{"parent":"TYPE","rule":"Tzdate","sum":5},{"parent":"TYPE","rule":"Tzdatetime","sum":4},{"parent":"TYPE","rule":"UINT16","sum":1206},{"parent":"TYPE","rule":"UINT32","sum":515088},{"parent":"TYPE","rule":"UINT64","sum":597046},{"parent":"TYPE","rule":"UINT8","sum":170},{"parent":"TYPE","rule":"UINt32","sum":44},{"parent":"TYPE","rule":"UINt64","sum":412},{"parent":"TYPE","rule":"UINt8","sum":24},{"parent":"TYPE","rule":"UInt16","sum":128862},{"parent":"TYPE","rule":"UInt32","sum":7273735},{"parent":"TYPE","rule":"UInt64","sum":9432595},{"parent":"TYPE","rule":"UInt8","sum":153493},{"parent":"TYPE","rule":"UNIT","sum":757},{"parent":"TYPE","rule":"UTF8","sum":265559},{"parent":"TYPE","rule":"UTf8","sum":132},{"parent":"TYPE","rule":"UUID","sum":1237799},{"parent":"TYPE","rule":"UiNt32","sum":4},{"parent":"TYPE","rule":"Uint16","sum":333684},{"parent":"TYPE","rule":"Uint32","sum":18570372},{"parent":"TYPE","rule":"Uint64","sum":32555431},{"parent":"TYPE","rule":"Uint8","sum":2327761},{"parent":"TYPE","rule":"Unit","sum":1182},{"parent":"TYPE","rule":"Utf8","sum":14236247},{"parent":"TYPE","rule":"Uuid","sum":43021},{"parent":"TYPE","rule":"VARCHAR","sum":515452},{"parent":"TYPE","rule":"Varchar","sum":2},{"parent":"TYPE","rule":"Void","sum":11464},{"parent":"TYPE","rule":"XML","sum":2},{"parent":"TYPE","rule":"YSON","sum":228232},{"parent":"TYPE","rule":"YSon","sum":468},{"parent":"TYPE","rule":"Yson","sum":17583554},{"parent":"TYPE","rule":"_PgMoney","sum":3},{"parent":"TYPE","rule":"bigint","sum":8678},{"parent":"TYPE","rule":"bool","sum":935018},{"parent":"TYPE","rule":"bytes","sum":35935},{"parent":"TYPE","rule":"dATE","sum":1},{"parent":"TYPE","rule":"daTE","sum":5},{"parent":"TYPE","rule":"date","sum":32278586},{"parent":"TYPE","rule":"date32","sum":40},{"parent":"TYPE","rule":"dateTIME","sum":8},{"parent":"TYPE","rule":"dateTime","sum":41625},{"parent":"TYPE","rule":"datetime","sum":7152182},{"parent":"TYPE","rule":"datetime64","sum":61},{"parent":"TYPE","rule":"double","sum":6913434},{"parent":"TYPE","rule":"emptyList","sum":1},{"parent":"TYPE","rule":"float","sum":4734731},{"parent":"TYPE","rule":"generic","sum":2},{"parent":"TYPE","rule":"iNT","sum":1},{"parent":"TYPE","rule":"iNT64","sum":27},{"parent":"TYPE","rule":"inT64","sum":260},{"parent":"TYPE","rule":"int","sum":1112457},{"parent":"TYPE","rule":"int16","sum":80702},{"parent":"TYPE","rule":"int32","sum":3188473},{"parent":"TYPE","rule":"int64","sum":8433961},{"parent":"TYPE","rule":"int8","sum":42328},{"parent":"TYPE","rule":"integer","sum":135058},{"parent":"TYPE","rule":"interval","sum":389459},{"parent":"TYPE","rule":"json","sum":1065443},{"parent":"TYPE","rule":"pgDate","sum":22},{"parent":"TYPE","rule":"pg_name","sum":2},{"parent":"TYPE","rule":"pgbigint","sum":1},{"parent":"TYPE","rule":"pgbool","sum":18},{"parent":"TYPE","rule":"pgdate","sum":14},{"parent":"TYPE","rule":"pgfloat8","sum":2},{"parent":"TYPE","rule":"pgint","sum":366},{"parent":"TYPE","rule":"pgint2","sum":6},{"parent":"TYPE","rule":"pgint4","sum":40},{"parent":"TYPE","rule":"pgint8","sum":1},{"parent":"TYPE","rule":"pginteger","sum":1},{"parent":"TYPE","rule":"pginterval","sum":374},{"parent":"TYPE","rule":"pgnumeric","sum":5},{"parent":"TYPE","rule":"pgoid","sum":1},{"parent":"TYPE","rule":"pgtext","sum":76},{"parent":"TYPE","rule":"pgtimestamp","sum":20},{"parent":"TYPE","rule":"sTRING","sum":16},{"parent":"TYPE","rule":"smallint","sum":1},{"parent":"TYPE","rule":"strINg","sum":14},{"parent":"TYPE","rule":"striNg","sum":1},{"parent":"TYPE","rule":"strinG","sum":73},{"parent":"TYPE","rule":"string","sum":45428906},{"parent":"TYPE","rule":"text","sum":4537855},{"parent":"TYPE","rule":"timeStamp","sum":99},{"parent":"TYPE","rule":"timestamp","sum":21885666},{"parent":"TYPE","rule":"timestamp64","sum":12},{"parent":"TYPE","rule":"tinyint","sum":2},{"parent":"TYPE","rule":"tzDate","sum":1},{"parent":"TYPE","rule":"tzDateTime","sum":3},{"parent":"TYPE","rule":"tzDatetime","sum":29},{"parent":"TYPE","rule":"tzTimestamp","sum":709},{"parent":"TYPE","rule":"tzdate","sum":19},{"parent":"TYPE","rule":"tzdatetime","sum":67},{"parent":"TYPE","rule":"tzdatetime64","sum":2},{"parent":"TYPE","rule":"tztimestamp","sum":32},{"parent":"TYPE","rule":"tztimestamp64","sum":3},{"parent":"TYPE","rule":"uINT32","sum":6},{"parent":"TYPE","rule":"uInt32","sum":12588},{"parent":"TYPE","rule":"uInt64","sum":2521},{"parent":"TYPE","rule":"uInt8","sum":52},{"parent":"TYPE","rule":"uint16","sum":26721},{"parent":"TYPE","rule":"uint32","sum":5285960},{"parent":"TYPE","rule":"uint64","sum":8563801},{"parent":"TYPE","rule":"uint8","sum":158497},{"parent":"TYPE","rule":"unit","sum":693132},{"parent":"TYPE","rule":"utf8","sum":4490416},{"parent":"TYPE","rule":"uuid","sum":2964762},{"parent":"TYPE","rule":"varchar","sum":59579},{"parent":"TYPE","rule":"void","sum":1},{"parent":"TYPE","rule":"xml","sum":31888},{"parent":"TYPE","rule":"yaml","sum":144},{"parent":"TYPE","rule":"yson","sum":1127334}]
+[{"parent":"FUNC","rule":"ABC","sum":1},{"parent":"FUNC","rule":"ABS","sum":3127148},{"parent":"FUNC","rule":"ADAPTIVE_WARD_HISTOGRAM","sum":1},{"parent":"FUNC","rule":"ADDTIMEZONE","sum":395},{"parent":"FUNC","rule":"AGGLIST","sum":1221},{"parent":"FUNC","rule":"AGGList","sum":1},{"parent":"FUNC","rule":"AGGREATE_LIST","sum":2},{"parent":"FUNC","rule":"AGGREGATELIST","sum":72},{"parent":"FUNC","rule":"AGGREGATE_BY","sum":1576927},{"parent":"FUNC","rule":"AGGREGATE_LIST","sum":19711752},{"parent":"FUNC","rule":"AGGREGATE_LIST_","sum":2},{"parent":"FUNC","rule":"AGGREGATE_LIST_DISTINCT","sum":12772929},{"parent":"FUNC","rule":"AGGREGATE_LIST_DISTINCt","sum":2},{"parent":"FUNC","rule":"AGGREGATE_LIST_DISTNCT","sum":1},{"parent":"FUNC","rule":"AGGREGATE_LIST_DiSTINCT","sum":4},{"parent":"FUNC","rule":"AGGREGATE_LIST_Distinct","sum":783},{"parent":"FUNC","rule":"AGGREGATE_LIST_distINCT","sum":4},{"parent":"FUNC","rule":"AGGREGATE_LIST_distinct","sum":18908},{"parent":"FUNC","rule":"AGGREGATE_LISt","sum":6},{"parent":"FUNC","rule":"AGGREGATE_LiST","sum":106},{"parent":"FUNC","rule":"AGGREGATE_List","sum":75},{"parent":"FUNC","rule":"AGGREGATE_lIST","sum":59},{"parent":"FUNC","rule":"AGGREGATE_lIST_DISTINCT","sum":6},{"parent":"FUNC","rule":"AGGREGATE_liST_DISTINCT","sum":9},{"parent":"FUNC","rule":"AGGREGATE_list","sum":316},{"parent":"FUNC","rule":"AGGREGATE_list_distinct","sum":1},{"parent":"FUNC","rule":"AGGREGATIONFACTORY","sum":57},{"parent":"FUNC","rule":"AGGREGATION_FACTORY","sum":66663},{"parent":"FUNC","rule":"AGGREGate_List","sum":2},{"parent":"FUNC","rule":"AGGR_LIST","sum":2975},{"parent":"FUNC","rule":"AGGR_LIST_DISTINCT","sum":44471},{"parent":"FUNC","rule":"AGGReGATE_LIST","sum":3},{"parent":"FUNC","rule":"AGGReGate_list","sum":1},{"parent":"FUNC","rule":"AGG_LIST","sum":5125300},{"parent":"FUNC","rule":"AGG_LIST_","sum":5},{"parent":"FUNC","rule":"AGG_LIST_DISTINCT","sum":2870859},{"parent":"FUNC","rule":"AGG_LIST_DISTINCt","sum":9},{"parent":"FUNC","rule":"AGG_LIST_DIStiNCT","sum":10},{"parent":"FUNC","rule":"AGG_LIST_DiSTINCT","sum":4},{"parent":"FUNC","rule":"AGG_LIST_Distinct","sum":47},{"parent":"FUNC","rule":"AGG_LIST_distinct","sum":647},{"parent":"FUNC","rule":"AGG_LISt","sum":2},{"parent":"FUNC","rule":"AGG_LIst","sum":11},{"parent":"FUNC","rule":"AGG_LiST","sum":4},{"parent":"FUNC","rule":"AGG_LiST_DIStiNCT","sum":2},{"parent":"FUNC","rule":"AGG_List","sum":6674},{"parent":"FUNC","rule":"AGG_List_DISTINCT","sum":33},{"parent":"FUNC","rule":"AGG_List_Distinct","sum":928},{"parent":"FUNC","rule":"AGG_List_distinct","sum":103},{"parent":"FUNC","rule":"AGG_lIST_DISTINCT","sum":5},{"parent":"FUNC","rule":"AGG_list","sum":17554},{"parent":"FUNC","rule":"AGG_list_DISTINCT","sum":3065},{"parent":"FUNC","rule":"AGG_list_distinct","sum":784},{"parent":"FUNC","rule":"AGGrEGATE_LIST","sum":2},{"parent":"FUNC","rule":"AGGreGATE_LIST_DISTINCT","sum":3},{"parent":"FUNC","rule":"AGGregateList","sum":19},{"parent":"FUNC","rule":"AGGregate_LIST","sum":3},{"parent":"FUNC","rule":"AGGregate_LIST_DISTINCT","sum":1},{"parent":"FUNC","rule":"AGGregate_List_Distinct","sum":4},{"parent":"FUNC","rule":"AGGregate_list","sum":6},{"parent":"FUNC","rule":"AGGregate_list_distinct","sum":65},{"parent":"FUNC","rule":"AND","sum":46},{"parent":"FUNC","rule":"ARRAY_AGG","sum":2},{"parent":"FUNC","rule":"ASDICT","sum":193},{"parent":"FUNC","rule":"ASDict","sum":627},{"parent":"FUNC","rule":"ASEnum","sum":84},{"parent":"FUNC","rule":"ASIN","sum":2},{"parent":"FUNC","rule":"ASLIST","sum":27702},{"parent":"FUNC","rule":"ASLIst","sum":4},{"parent":"FUNC","rule":"ASList","sum":23526},{"parent":"FUNC","rule":"ASSET","sum":17},{"parent":"FUNC","rule":"ASSTRUCT","sum":2700},{"parent":"FUNC","rule":"ASSet","sum":5},{"parent":"FUNC","rule":"ASStruct","sum":2343},{"parent":"FUNC","rule":"ASTAGGED","sum":15},{"parent":"FUNC","rule":"ASTAgged","sum":3},{"parent":"FUNC","rule":"ASTUPLE","sum":1586},{"parent":"FUNC","rule":"ASTagged","sum":63},{"parent":"FUNC","rule":"ASTuple","sum":5806},{"parent":"FUNC","rule":"AS_DICT","sum":6},{"parent":"FUNC","rule":"AS_LIST","sum":119},{"parent":"FUNC","rule":"AS_STRUCT","sum":13360},{"parent":"FUNC","rule":"AS_TABLE","sum":33},{"parent":"FUNC","rule":"AS_TUPLE","sum":844},{"parent":"FUNC","rule":"ASdict","sum":4},{"parent":"FUNC","rule":"ASlist","sum":1022},{"parent":"FUNC","rule":"ASstruct","sum":41},{"parent":"FUNC","rule":"AStagged","sum":3},{"parent":"FUNC","rule":"AStuple","sum":408},{"parent":"FUNC","rule":"AVG","sum":9080971},{"parent":"FUNC","rule":"AVGIF","sum":15},{"parent":"FUNC","rule":"AVG_IF","sum":732569},{"parent":"FUNC","rule":"AVG_If","sum":8},{"parent":"FUNC","rule":"AVG_if","sum":14378},{"parent":"FUNC","rule":"AVg","sum":4},{"parent":"FUNC","rule":"Abs","sum":323219},{"parent":"FUNC","rule":"AdaptiveDistanceHistogramCDF","sum":1},{"parent":"FUNC","rule":"AdaptiveWardHistogram","sum":1},{"parent":"FUNC","rule":"AdaptiveWardHistogramCDF","sum":3},{"parent":"FUNC","rule":"AdaptiveWeightHistogram","sum":57440},{"parent":"FUNC","rule":"AddMember","sum":880740},{"parent":"FUNC","rule":"AddTimeZone","sum":514894},{"parent":"FUNC","rule":"AddTimezone","sum":12053335},{"parent":"FUNC","rule":"Addtimezone","sum":60},{"parent":"FUNC","rule":"AggLIst","sum":1},{"parent":"FUNC","rule":"AggList","sum":19938},{"parent":"FUNC","rule":"AggListDistinct","sum":72},{"parent":"FUNC","rule":"Agg_LIST","sum":60},{"parent":"FUNC","rule":"Agg_LIST_DISTINCT","sum":20},{"parent":"FUNC","rule":"Agg_LIST_Distinct","sum":1},{"parent":"FUNC","rule":"Agg_LIst","sum":2},{"parent":"FUNC","rule":"Agg_LiSt","sum":3},{"parent":"FUNC","rule":"Agg_List","sum":129321},{"parent":"FUNC","rule":"Agg_List_","sum":8},{"parent":"FUNC","rule":"Agg_List_DISTINCT","sum":730},{"parent":"FUNC","rule":"Agg_List_Distinct","sum":2506},{"parent":"FUNC","rule":"Agg_List_distinct","sum":4},{"parent":"FUNC","rule":"Agg_list","sum":35594},{"parent":"FUNC","rule":"Agg_list_distinct","sum":8130},{"parent":"FUNC","rule":"Aggergate_List","sum":1},{"parent":"FUNC","rule":"Agglist","sum":12},{"parent":"FUNC","rule":"AggrList","sum":13},{"parent":"FUNC","rule":"Aggr_List","sum":1},{"parent":"FUNC","rule":"AggreGate_List","sum":6},{"parent":"FUNC","rule":"AggregateBy","sum":42230},{"parent":"FUNC","rule":"AggregateFlatten","sum":52396},{"parent":"FUNC","rule":"AggregateList","sum":40547},{"parent":"FUNC","rule":"AggregateListDistinct","sum":7694},{"parent":"FUNC","rule":"AggregateTransformInput","sum":25589},{"parent":"FUNC","rule":"AggregateTransformOutput","sum":44958},{"parent":"FUNC","rule":"Aggregate_BY","sum":242},{"parent":"FUNC","rule":"Aggregate_By","sum":137121},{"parent":"FUNC","rule":"Aggregate_LIST","sum":853},{"parent":"FUNC","rule":"Aggregate_LIST_DISTINCT","sum":2},{"parent":"FUNC","rule":"Aggregate_LIst","sum":12},{"parent":"FUNC","rule":"Aggregate_List","sum":345188},{"parent":"FUNC","rule":"Aggregate_List_Distinct","sum":5207},{"parent":"FUNC","rule":"Aggregate_List_distinct","sum":1306},{"parent":"FUNC","rule":"Aggregate_by","sum":79},{"parent":"FUNC","rule":"Aggregate_list","sum":228359},{"parent":"FUNC","rule":"Aggregate_list_DISTINCT","sum":36},{"parent":"FUNC","rule":"Aggregate_list_Distinct","sum":11},{"parent":"FUNC","rule":"Aggregate_list_distinct","sum":201434},{"parent":"FUNC","rule":"AggregationFactory","sum":1510101},{"parent":"FUNC","rule":"Apply","sum":1},{"parent":"FUNC","rule":"AsAtom","sum":688112},{"parent":"FUNC","rule":"AsDict","sum":2925286},{"parent":"FUNC","rule":"AsDictStrict","sum":4459},{"parent":"FUNC","rule":"AsEnum","sum":50660},{"parent":"FUNC","rule":"AsLIST","sum":917},{"parent":"FUNC","rule":"AsLIst","sum":2770},{"parent":"FUNC","rule":"AsLisT","sum":1501},{"parent":"FUNC","rule":"AsList","sum":17305413},{"parent":"FUNC","rule":"AsListStrict","sum":86208},{"parent":"FUNC","rule":"AsListstrict","sum":1},{"parent":"FUNC","rule":"AsSTruct","sum":374},{"parent":"FUNC","rule":"AsSet","sum":1592807},{"parent":"FUNC","rule":"AsSetStrict","sum":11347},{"parent":"FUNC","rule":"AsStruct","sum":23491726},{"parent":"FUNC","rule":"AsTAgged","sum":281},{"parent":"FUNC","rule":"AsTUPLE","sum":448},{"parent":"FUNC","rule":"AsTUple","sum":270},{"parent":"FUNC","rule":"AsTable","sum":6},{"parent":"FUNC","rule":"AsTaggeD","sum":4},{"parent":"FUNC","rule":"AsTagged","sum":183444},{"parent":"FUNC","rule":"AsTuPle","sum":1},{"parent":"FUNC","rule":"AsTuple","sum":30224732},{"parent":"FUNC","rule":"AsTupleunwrap","sum":4},{"parent":"FUNC","rule":"AsVariant","sum":357080},{"parent":"FUNC","rule":"As_List","sum":6},{"parent":"FUNC","rule":"As_Struct","sum":6},{"parent":"FUNC","rule":"As_list","sum":20},{"parent":"FUNC","rule":"As_tuple","sum":804},{"parent":"FUNC","rule":"Asdict","sum":181},{"parent":"FUNC","rule":"AslIst","sum":14},{"parent":"FUNC","rule":"Aslist","sum":23551},{"parent":"FUNC","rule":"Asset","sum":49},{"parent":"FUNC","rule":"Asstruct","sum":411},{"parent":"FUNC","rule":"AssumeStrict","sum":2524},{"parent":"FUNC","rule":"Astagged","sum":163},{"parent":"FUNC","rule":"Astuple","sum":728},{"parent":"FUNC","rule":"AtomCode","sum":522128},{"parent":"FUNC","rule":"Avg","sum":139147},{"parent":"FUNC","rule":"Avg_IF","sum":162},{"parent":"FUNC","rule":"Avg_If","sum":121},{"parent":"FUNC","rule":"Avg_if","sum":222},{"parent":"FUNC","rule":"BIT_AND","sum":4},{"parent":"FUNC","rule":"BIT_OR","sum":38656},{"parent":"FUNC","rule":"BIT_XOR","sum":432891},{"parent":"FUNC","rule":"BOOL_AND","sum":265915},{"parent":"FUNC","rule":"BOOL_OR","sum":878803},{"parent":"FUNC","rule":"BOOL_XOR","sum":46},{"parent":"FUNC","rule":"BOOL_and","sum":2},{"parent":"FUNC","rule":"BOOl_OR","sum":378},{"parent":"FUNC","rule":"BOTTOM","sum":11629},{"parent":"FUNC","rule":"BOTTOM_BY","sum":47254},{"parent":"FUNC","rule":"BOTTOM_by","sum":2},{"parent":"FUNC","rule":"Bool","sum":1385},{"parent":"FUNC","rule":"Bool_And","sum":118},{"parent":"FUNC","rule":"Bool_Or","sum":580},{"parent":"FUNC","rule":"Bool_and","sum":85},{"parent":"FUNC","rule":"Bool_or","sum":820},{"parent":"FUNC","rule":"Bottom","sum":278},{"parent":"FUNC","rule":"Bottom_BY","sum":10},{"parent":"FUNC","rule":"Bottom_By","sum":102},{"parent":"FUNC","rule":"Bottom_by","sum":1639},{"parent":"FUNC","rule":"ByteAt","sum":13545},{"parent":"FUNC","rule":"Bytes","sum":5},{"parent":"FUNC","rule":"CHAR_LENGTH","sum":373},{"parent":"FUNC","rule":"COALECSE","sum":1},{"parent":"FUNC","rule":"COALESCE","sum":51653941},{"parent":"FUNC","rule":"COALESCe","sum":10},{"parent":"FUNC","rule":"COALESce","sum":8},{"parent":"FUNC","rule":"COALEsCE","sum":1},{"parent":"FUNC","rule":"COALEsce","sum":4},{"parent":"FUNC","rule":"COALeSCE","sum":1},{"parent":"FUNC","rule":"COALesce","sum":14},{"parent":"FUNC","rule":"COAlESCE","sum":2736},{"parent":"FUNC","rule":"COAlesce","sum":12},{"parent":"FUNC","rule":"CONCAT","sum":19},{"parent":"FUNC","rule":"COOUNT","sum":2},{"parent":"FUNC","rule":"CORR","sum":430},{"parent":"FUNC","rule":"CORRELATION","sum":20868},{"parent":"FUNC","rule":"COS","sum":4},{"parent":"FUNC","rule":"COUNT","sum":52725662},{"parent":"FUNC","rule":"COUNTD","sum":4},{"parent":"FUNC","rule":"COUNTDISTINCTESTIMATE","sum":609},{"parent":"FUNC","rule":"COUNTDistinctEstimate","sum":7},{"parent":"FUNC","rule":"COUNTIF","sum":15797},{"parent":"FUNC","rule":"COUNT_","sum":1},{"parent":"FUNC","rule":"COUNT_IF","sum":24106602},{"parent":"FUNC","rule":"COUNT_IF_","sum":24},{"parent":"FUNC","rule":"COUNT_If","sum":12983},{"parent":"FUNC","rule":"COUNT_iF","sum":44},{"parent":"FUNC","rule":"COUNT_if","sum":19536},{"parent":"FUNC","rule":"COUNt","sum":1260},{"parent":"FUNC","rule":"COUNt_IF","sum":24},{"parent":"FUNC","rule":"COUNt_If","sum":3},{"parent":"FUNC","rule":"COUNt_if","sum":11},{"parent":"FUNC","rule":"COUnT","sum":10},{"parent":"FUNC","rule":"COUnT_IF","sum":7},{"parent":"FUNC","rule":"COUnt","sum":40},{"parent":"FUNC","rule":"COVAR","sum":2848},{"parent":"FUNC","rule":"COVARIANCE","sum":1520},{"parent":"FUNC","rule":"COVARIANCE_POPULATION","sum":64},{"parent":"FUNC","rule":"COVARIANCE_SAMPLE","sum":4},{"parent":"FUNC","rule":"COVAR_POP","sum":4},{"parent":"FUNC","rule":"COalesce","sum":22},{"parent":"FUNC","rule":"COuNT","sum":64},{"parent":"FUNC","rule":"COuNT_If","sum":1},{"parent":"FUNC","rule":"COunt","sum":189},{"parent":"FUNC","rule":"COunt_IF","sum":57},{"parent":"FUNC","rule":"COunt_If","sum":2},{"parent":"FUNC","rule":"COunt_iF","sum":1},{"parent":"FUNC","rule":"COunt_if","sum":3},{"parent":"FUNC","rule":"CUME_DIST","sum":109},{"parent":"FUNC","rule":"CURRENTUTCDATE","sum":5408},{"parent":"FUNC","rule":"CURRENTUTCDATETIME","sum":6637},{"parent":"FUNC","rule":"CURRENTUTCDate","sum":82},{"parent":"FUNC","rule":"CURRENT_UTC_DATE","sum":8},{"parent":"FUNC","rule":"CallableArgument","sum":10160},{"parent":"FUNC","rule":"CallableArgumentType","sum":19070},{"parent":"FUNC","rule":"CallableResultType","sum":115},{"parent":"FUNC","rule":"CallableType","sum":179101},{"parent":"FUNC","rule":"CallableTypeHandle","sum":5700},{"parent":"FUNC","rule":"Ceil","sum":3},{"parent":"FUNC","rule":"ChooseMembers","sum":2492144},{"parent":"FUNC","rule":"Choosemembers","sum":21067},{"parent":"FUNC","rule":"ChosenMembers","sum":8},{"parent":"FUNC","rule":"ClearBit","sum":30223},{"parent":"FUNC","rule":"CoALESCE","sum":1},{"parent":"FUNC","rule":"CoUNT","sum":35},{"parent":"FUNC","rule":"CoUNT_IF","sum":17},{"parent":"FUNC","rule":"CoUNt","sum":2},{"parent":"FUNC","rule":"CoUnt","sum":2},{"parent":"FUNC","rule":"Coalesce","sum":725375},{"parent":"FUNC","rule":"Collect","sum":1},{"parent":"FUNC","rule":"CollectList","sum":1},{"parent":"FUNC","rule":"CombineMembers","sum":505747},{"parent":"FUNC","rule":"Concat","sum":1},{"parent":"FUNC","rule":"Correlation","sum":180},{"parent":"FUNC","rule":"CouNT","sum":2},{"parent":"FUNC","rule":"CounT","sum":17},{"parent":"FUNC","rule":"Count","sum":395770},{"parent":"FUNC","rule":"CountDistinctEstimate","sum":157543},{"parent":"FUNC","rule":"CountIF","sum":81},{"parent":"FUNC","rule":"CountIf","sum":511},{"parent":"FUNC","rule":"Count_IF","sum":15751},{"parent":"FUNC","rule":"Count_If","sum":42577},{"parent":"FUNC","rule":"Count_if","sum":323527},{"parent":"FUNC","rule":"Countif","sum":12},{"parent":"FUNC","rule":"CurrentAuthenticatedUser","sum":90046},{"parent":"FUNC","rule":"CurrentDatetime","sum":1},{"parent":"FUNC","rule":"CurrentOperationId","sum":89890},{"parent":"FUNC","rule":"CurrentOperationSharedId","sum":5666},{"parent":"FUNC","rule":"CurrentTZDate","sum":615},{"parent":"FUNC","rule":"CurrentTZDateTime","sum":35},{"parent":"FUNC","rule":"CurrentTZDatetime","sum":526},{"parent":"FUNC","rule":"CurrentTZTimestamp","sum":263},{"parent":"FUNC","rule":"CurrentTZdatetime","sum":68},{"parent":"FUNC","rule":"CurrentTzDate","sum":1610399},{"parent":"FUNC","rule":"CurrentTzDateTime","sum":1466723},{"parent":"FUNC","rule":"CurrentTzDatetime","sum":1990148},{"parent":"FUNC","rule":"CurrentTzTimeStamp","sum":4342},{"parent":"FUNC","rule":"CurrentTzTimestamp","sum":1900232},{"parent":"FUNC","rule":"CurrentUTCDATE","sum":19},{"parent":"FUNC","rule":"CurrentUTCDAte","sum":38},{"parent":"FUNC","rule":"CurrentUTCDate","sum":919233},{"parent":"FUNC","rule":"CurrentUTCDateTime","sum":182498},{"parent":"FUNC","rule":"CurrentUTCDatetime","sum":131115},{"parent":"FUNC","rule":"CurrentUTCTimeStamp","sum":99},{"parent":"FUNC","rule":"CurrentUTCTimestamp","sum":452742},{"parent":"FUNC","rule":"CurrentUTCdate","sum":71306},{"parent":"FUNC","rule":"CurrentUTcDate","sum":63},{"parent":"FUNC","rule":"CurrentUtCDate","sum":5},{"parent":"FUNC","rule":"CurrentUtCDatetime","sum":3},{"parent":"FUNC","rule":"CurrentUtcDATE","sum":2},{"parent":"FUNC","rule":"CurrentUtcDAte","sum":3},{"parent":"FUNC","rule":"CurrentUtcDatE","sum":1},{"parent":"FUNC","rule":"CurrentUtcDate","sum":19601950},{"parent":"FUNC","rule":"CurrentUtcDateTIME","sum":1},{"parent":"FUNC","rule":"CurrentUtcDateTime","sum":3195699},{"parent":"FUNC","rule":"CurrentUtcDatetime","sum":13792949},{"parent":"FUNC","rule":"CurrentUtcDttm","sum":3},{"parent":"FUNC","rule":"CurrentUtcTimeStamp","sum":60287},{"parent":"FUNC","rule":"CurrentUtcTimestamp","sum":15261212},{"parent":"FUNC","rule":"CurrentUtcdate","sum":11664},{"parent":"FUNC","rule":"CurrenttzDate","sum":337},{"parent":"FUNC","rule":"CurrenttzDatetime","sum":1},{"parent":"FUNC","rule":"CurrentutcDate","sum":20941},{"parent":"FUNC","rule":"CurrentutcDateTime","sum":565},{"parent":"FUNC","rule":"CurrentutcTimestamp","sum":4},{"parent":"FUNC","rule":"Currentutcdate","sum":1501},{"parent":"FUNC","rule":"Currentutcdatetime","sum":22651},{"parent":"FUNC","rule":"D","sum":1},{"parent":"FUNC","rule":"DATE","sum":128427},{"parent":"FUNC","rule":"DATEADD","sum":3},{"parent":"FUNC","rule":"DATEDIFF","sum":9},{"parent":"FUNC","rule":"DATETIME","sum":832},{"parent":"FUNC","rule":"DATE_PART","sum":16},{"parent":"FUNC","rule":"DATE_TRUNC","sum":29},{"parent":"FUNC","rule":"DATe","sum":20},{"parent":"FUNC","rule":"DAte","sum":174},{"parent":"FUNC","rule":"DAtetime","sum":61},{"parent":"FUNC","rule":"DENSE_RANK","sum":273683},{"parent":"FUNC","rule":"DICTKEYS","sum":27},{"parent":"FUNC","rule":"DICTLENGTH","sum":4},{"parent":"FUNC","rule":"DICTLength","sum":2},{"parent":"FUNC","rule":"DICTPAYLOADS","sum":2},{"parent":"FUNC","rule":"DICT_CONTAINS","sum":5},{"parent":"FUNC","rule":"DIctHasItems","sum":1},{"parent":"FUNC","rule":"DIctItems","sum":1},{"parent":"FUNC","rule":"DIctKeys","sum":1},{"parent":"FUNC","rule":"DIctLength","sum":1},{"parent":"FUNC","rule":"DIctLookup","sum":16},{"parent":"FUNC","rule":"DOUBLE","sum":63},{"parent":"FUNC","rule":"DatE","sum":3},{"parent":"FUNC","rule":"DataType","sum":68953},{"parent":"FUNC","rule":"DataTypeComponents","sum":37116},{"parent":"FUNC","rule":"DataTypeHandle","sum":2},{"parent":"FUNC","rule":"Datatype","sum":2},{"parent":"FUNC","rule":"Date","sum":1771472},{"parent":"FUNC","rule":"Date32","sum":74},{"parent":"FUNC","rule":"DateTime","sum":434966},{"parent":"FUNC","rule":"DateTime64","sum":45},{"parent":"FUNC","rule":"Date_Diff","sum":1},{"parent":"FUNC","rule":"DatetimE","sum":8},{"parent":"FUNC","rule":"Datetime","sum":269629},{"parent":"FUNC","rule":"Datetime64","sum":6},{"parent":"FUNC","rule":"Decimal","sum":31267},{"parent":"FUNC","rule":"DenseRank","sum":26},{"parent":"FUNC","rule":"Dense_RANK","sum":1},{"parent":"FUNC","rule":"Dense_Rank","sum":54},{"parent":"FUNC","rule":"Dense_rank","sum":6},{"parent":"FUNC","rule":"DicTKeys","sum":1},{"parent":"FUNC","rule":"DictAggregate","sum":140521},{"parent":"FUNC","rule":"DictCOntains","sum":350},{"parent":"FUNC","rule":"DictContains","sum":2022763},{"parent":"FUNC","rule":"DictCreate","sum":69265},{"parent":"FUNC","rule":"DictHasItems","sum":614720},{"parent":"FUNC","rule":"DictHasitems","sum":261},{"parent":"FUNC","rule":"DictItems","sum":2551895},{"parent":"FUNC","rule":"DictKEYS","sum":12},{"parent":"FUNC","rule":"DictKEys","sum":1},{"parent":"FUNC","rule":"DictKeYS","sum":3},{"parent":"FUNC","rule":"DictKeyType","sum":940},{"parent":"FUNC","rule":"DictKeys","sum":2714504},{"parent":"FUNC","rule":"DictLOokup","sum":7},{"parent":"FUNC","rule":"DictLength","sum":1015710},{"parent":"FUNC","rule":"DictLookUP","sum":3},{"parent":"FUNC","rule":"DictLookUp","sum":59096},{"parent":"FUNC","rule":"DictLookup","sum":5977839},{"parent":"FUNC","rule":"DictPayLoads","sum":10411},{"parent":"FUNC","rule":"DictPayloadType","sum":209},{"parent":"FUNC","rule":"DictPayloads","sum":926973},{"parent":"FUNC","rule":"DictType","sum":551},{"parent":"FUNC","rule":"DictTypeComponents","sum":3},{"parent":"FUNC","rule":"DictTypeHandle","sum":1},{"parent":"FUNC","rule":"DictValues","sum":5},{"parent":"FUNC","rule":"Dict_Keys","sum":12},{"parent":"FUNC","rule":"Dictcontains","sum":7},{"parent":"FUNC","rule":"Dictitems","sum":19815},{"parent":"FUNC","rule":"Dictkeys","sum":1128},{"parent":"FUNC","rule":"Dictlength","sum":6},{"parent":"FUNC","rule":"Dictlookup","sum":75954},{"parent":"FUNC","rule":"Double","sum":34124},{"parent":"FUNC","rule":"DyNumber","sum":4},{"parent":"FUNC","rule":"EACH","sum":4},{"parent":"FUNC","rule":"ENDSWITH","sum":13654},{"parent":"FUNC","rule":"ENDsWith","sum":85},{"parent":"FUNC","rule":"ENSURE","sum":832081},{"parent":"FUNC","rule":"EOMONTH","sum":1},{"parent":"FUNC","rule":"EmptyDict","sum":430},{"parent":"FUNC","rule":"EmptyDictTypeHandle","sum":3},{"parent":"FUNC","rule":"EmptyList","sum":23968},{"parent":"FUNC","rule":"Emptydict","sum":6},{"parent":"FUNC","rule":"EndsWIth","sum":870},{"parent":"FUNC","rule":"EndsWith","sum":1563464},{"parent":"FUNC","rule":"Endswith","sum":19802},{"parent":"FUNC","rule":"Ensure","sum":1434516},{"parent":"FUNC","rule":"EnsureConvertibleTo","sum":2013},{"parent":"FUNC","rule":"EnsureType","sum":229229},{"parent":"FUNC","rule":"EvaluateAtom","sum":464},{"parent":"FUNC","rule":"EvaluateCode","sum":467542},{"parent":"FUNC","rule":"EvaluateExpr","sum":899431},{"parent":"FUNC","rule":"EvaluateType","sum":121899},{"parent":"FUNC","rule":"ExpandStruct","sum":264149},{"parent":"FUNC","rule":"ExtractUkropCtx","sum":1},{"parent":"FUNC","rule":"FIND","sum":5553194},{"parent":"FUNC","rule":"FIRST","sum":3},{"parent":"FUNC","rule":"FIRST_VALUE","sum":8897911},{"parent":"FUNC","rule":"FIRST_value","sum":811},{"parent":"FUNC","rule":"FIRsT_VALUE","sum":1},{"parent":"FUNC","rule":"FIleContent","sum":1},{"parent":"FUNC","rule":"FLATTEN","sum":9},{"parent":"FUNC","rule":"FLOAT","sum":7},{"parent":"FUNC","rule":"FLOOR","sum":1},{"parent":"FUNC","rule":"FORMATTYPE","sum":1},{"parent":"FUNC","rule":"FROMBYTES","sum":5},{"parent":"FUNC","rule":"FROmbytes","sum":4},{"parent":"FUNC","rule":"FileCOntent","sum":33},{"parent":"FUNC","rule":"FileContent","sum":2362479},{"parent":"FUNC","rule":"FilePath","sum":1452419},{"parent":"FUNC","rule":"Filecontent","sum":11771},{"parent":"FUNC","rule":"Filepath","sum":10},{"parent":"FUNC","rule":"FinD","sum":16},{"parent":"FUNC","rule":"Find","sum":321147},{"parent":"FUNC","rule":"FirsT_VALUE","sum":3},{"parent":"FUNC","rule":"FirstValue","sum":25},{"parent":"FUNC","rule":"First_VALUE","sum":12},{"parent":"FUNC","rule":"First_Value","sum":28},{"parent":"FUNC","rule":"First_value","sum":180},{"parent":"FUNC","rule":"FlattenMembers","sum":109223},{"parent":"FUNC","rule":"Float","sum":12362},{"parent":"FUNC","rule":"FoldMap","sum":13},{"parent":"FUNC","rule":"Folder","sum":13},{"parent":"FUNC","rule":"FolderPath","sum":9948},{"parent":"FUNC","rule":"ForceRemoveMember","sum":401413},{"parent":"FUNC","rule":"ForceRemoveMembers","sum":1080839},{"parent":"FUNC","rule":"ForceRenameMembers","sum":64041},{"parent":"FUNC","rule":"ForceSpreadMembers","sum":115090},{"parent":"FUNC","rule":"ForceSpreadmembers","sum":4},{"parent":"FUNC","rule":"Format","sum":1},{"parent":"FUNC","rule":"FormatCode","sum":676},{"parent":"FUNC","rule":"FormatType","sum":470195},{"parent":"FUNC","rule":"FormatTypeDiff","sum":809},{"parent":"FUNC","rule":"FormatTypeDiffPretty","sum":103},{"parent":"FUNC","rule":"Formattype","sum":101},{"parent":"FUNC","rule":"FromBytes","sum":99141},{"parent":"FUNC","rule":"FromPg","sum":4860},{"parent":"FUNC","rule":"FromYsonSimpleType","sum":1},{"parent":"FUNC","rule":"From_bytes","sum":1},{"parent":"FUNC","rule":"FromatType","sum":1},{"parent":"FUNC","rule":"Frombytes","sum":12},{"parent":"FUNC","rule":"FuncCode","sum":1237484},{"parent":"FUNC","rule":"GETDATE","sum":1},{"parent":"FUNC","rule":"GREATEST","sum":389548},{"parent":"FUNC","rule":"GROUPING","sum":71200},{"parent":"FUNC","rule":"GROUPINg","sum":4},{"parent":"FUNC","rule":"GROUP_CONCAT","sum":1},{"parent":"FUNC","rule":"GatherMembers","sum":1479159},{"parent":"FUNC","rule":"Gather_Members","sum":38},{"parent":"FUNC","rule":"Gathermembers","sum":8},{"parent":"FUNC","rule":"GetLength","sum":2},{"parent":"FUNC","rule":"GetWeekOfYear","sum":1},{"parent":"FUNC","rule":"Greatest","sum":6014},{"parent":"FUNC","rule":"Grouping","sum":243},{"parent":"FUNC","rule":"HISTOGRAM","sum":272979},{"parent":"FUNC","rule":"HISTOGRAMCDF","sum":425},{"parent":"FUNC","rule":"HISTOGRAMCdf","sum":47},{"parent":"FUNC","rule":"HISTOGRAM_CDF","sum":3},{"parent":"FUNC","rule":"HISTOGRAMcdf","sum":2},{"parent":"FUNC","rule":"HISTOGrAM","sum":49},{"parent":"FUNC","rule":"HISTOgram","sum":1},{"parent":"FUNC","rule":"HISToGRAM","sum":1},{"parent":"FUNC","rule":"HISTogram","sum":1},{"parent":"FUNC","rule":"HIStOGRAM","sum":1},{"parent":"FUNC","rule":"HIstogram","sum":34},{"parent":"FUNC","rule":"HLL","sum":12424},{"parent":"FUNC","rule":"HOP_END","sum":16},{"parent":"FUNC","rule":"HOP_START","sum":4},{"parent":"FUNC","rule":"Histogram","sum":35012},{"parent":"FUNC","rule":"HistogramCDF","sum":411},{"parent":"FUNC","rule":"HistogramCdf","sum":34},{"parent":"FUNC","rule":"Histogram_CDF","sum":57},{"parent":"FUNC","rule":"Histogramcdf","sum":1},{"parent":"FUNC","rule":"Hll","sum":1915},{"parent":"FUNC","rule":"HyperLogLog","sum":4057},{"parent":"FUNC","rule":"IF","sum":75252951},{"parent":"FUNC","rule":"IFNULL","sum":9},{"parent":"FUNC","rule":"IF_STRICT","sum":1},{"parent":"FUNC","rule":"IN","sum":2},{"parent":"FUNC","rule":"INT","sum":16},{"parent":"FUNC","rule":"INT32","sum":1},{"parent":"FUNC","rule":"INTERVAL","sum":889107},{"parent":"FUNC","rule":"INterval","sum":763},{"parent":"FUNC","rule":"If","sum":1084143},{"parent":"FUNC","rule":"IfNull","sum":6},{"parent":"FUNC","rule":"InstanceOf","sum":247258},{"parent":"FUNC","rule":"Int","sum":1},{"parent":"FUNC","rule":"Int16","sum":37},{"parent":"FUNC","rule":"Int32","sum":32669},{"parent":"FUNC","rule":"Int64","sum":3613},{"parent":"FUNC","rule":"Int8","sum":302},{"parent":"FUNC","rule":"InterVal","sum":4},{"parent":"FUNC","rule":"Interval","sum":16047614},{"parent":"FUNC","rule":"Interval64","sum":2},{"parent":"FUNC","rule":"IntervalFromDays","sum":8},{"parent":"FUNC","rule":"IsInt64","sum":1},{"parent":"FUNC","rule":"JSON","sum":68},{"parent":"FUNC","rule":"JUST","sum":128163},{"parent":"FUNC","rule":"Join","sum":1},{"parent":"FUNC","rule":"JoinTableRow","sum":1309793},{"parent":"FUNC","rule":"JoinTablerow","sum":721},{"parent":"FUNC","rule":"JointableRow","sum":1},{"parent":"FUNC","rule":"Json","sum":52981},{"parent":"FUNC","rule":"JsonDocument","sum":9},{"parent":"FUNC","rule":"Just","sum":6553330},{"parent":"FUNC","rule":"LAG","sum":4037229},{"parent":"FUNC","rule":"LAST","sum":1},{"parent":"FUNC","rule":"LAST_VALUE","sum":1335902},{"parent":"FUNC","rule":"LAST_value","sum":2},{"parent":"FUNC","rule":"LEAD","sum":1649498},{"parent":"FUNC","rule":"LEAST","sum":426967},{"parent":"FUNC","rule":"LEFT","sum":3},{"parent":"FUNC","rule":"LEFT_SHIFT","sum":1},{"parent":"FUNC","rule":"LEN","sum":1686905},{"parent":"FUNC","rule":"LENGTH","sum":3844541},{"parent":"FUNC","rule":"LENgth","sum":23},{"parent":"FUNC","rule":"LEngth","sum":12},{"parent":"FUNC","rule":"LIKELY","sum":140955},{"parent":"FUNC","rule":"LINEARHISTOGRAM","sum":374},{"parent":"FUNC","rule":"LINEARHISTOGRAMCDF","sum":1},{"parent":"FUNC","rule":"LINEARHistogram","sum":3},{"parent":"FUNC","rule":"LINEAR_HISTOGRAM","sum":13},{"parent":"FUNC","rule":"LISTALL","sum":2863},{"parent":"FUNC","rule":"LISTANY","sum":102},{"parent":"FUNC","rule":"LISTAVG","sum":25},{"parent":"FUNC","rule":"LISTAny","sum":10},{"parent":"FUNC","rule":"LISTCOLLECT","sum":1},{"parent":"FUNC","rule":"LISTCONCAT","sum":1518},{"parent":"FUNC","rule":"LISTENUMERATE","sum":2},{"parent":"FUNC","rule":"LISTEXTEND","sum":13},{"parent":"FUNC","rule":"LISTFILTER","sum":1629},{"parent":"FUNC","rule":"LISTFLATTEN","sum":4259},{"parent":"FUNC","rule":"LISTFROMRANGE","sum":1498},{"parent":"FUNC","rule":"LISTHAS","sum":31530},{"parent":"FUNC","rule":"LISTHASITEMS","sum":2093},{"parent":"FUNC","rule":"LISTHASItems","sum":1},{"parent":"FUNC","rule":"LISTHEAD","sum":18296},{"parent":"FUNC","rule":"LISTHas","sum":9},{"parent":"FUNC","rule":"LISTHead","sum":2},{"parent":"FUNC","rule":"LISTLAST","sum":1552},{"parent":"FUNC","rule":"LISTLENGTH","sum":48076},{"parent":"FUNC","rule":"LISTLENGth","sum":4},{"parent":"FUNC","rule":"LISTLenGTH","sum":7},{"parent":"FUNC","rule":"LISTLength","sum":2122},{"parent":"FUNC","rule":"LISTMAP","sum":14234},{"parent":"FUNC","rule":"LISTMAX","sum":6939},{"parent":"FUNC","rule":"LISTMIN","sum":187},{"parent":"FUNC","rule":"LISTMap","sum":365},{"parent":"FUNC","rule":"LISTNOTNULL","sum":8538},{"parent":"FUNC","rule":"LISTREVERSE","sum":2},{"parent":"FUNC","rule":"LISTSKIP","sum":15},{"parent":"FUNC","rule":"LISTSORT","sum":7613},{"parent":"FUNC","rule":"LISTSORTASC","sum":1666},{"parent":"FUNC","rule":"LISTSORTDESC","sum":109},{"parent":"FUNC","rule":"LISTSUM","sum":175},{"parent":"FUNC","rule":"LISTSort","sum":19},{"parent":"FUNC","rule":"LISTSum","sum":6},{"parent":"FUNC","rule":"LISTTAKE","sum":261},{"parent":"FUNC","rule":"LISTUNIQ","sum":596},{"parent":"FUNC","rule":"LISTUniq","sum":26},{"parent":"FUNC","rule":"LISTZIP","sum":261},{"parent":"FUNC","rule":"LISTZIPALL","sum":290},{"parent":"FUNC","rule":"LIST_AGGREGATE","sum":1},{"parent":"FUNC","rule":"LIST_ALL","sum":1},{"parent":"FUNC","rule":"LIST_ANY","sum":7},{"parent":"FUNC","rule":"LIST_CONCAT","sum":18},{"parent":"FUNC","rule":"LIST_EXTEND","sum":1},{"parent":"FUNC","rule":"LIST_EXTRACT","sum":73},{"parent":"FUNC","rule":"LIST_FOLD","sum":30},{"parent":"FUNC","rule":"LIST_FROM_RANGE","sum":351},{"parent":"FUNC","rule":"LIST_HAS","sum":2035},{"parent":"FUNC","rule":"LIST_HEAD","sum":100},{"parent":"FUNC","rule":"LIST_LAST","sum":54},{"parent":"FUNC","rule":"LIST_LENGTH","sum":2452},{"parent":"FUNC","rule":"LIST_Length","sum":1},{"parent":"FUNC","rule":"LIST_MAP","sum":9},{"parent":"FUNC","rule":"LIST_MAX","sum":285},{"parent":"FUNC","rule":"LIST_SORT","sum":626},{"parent":"FUNC","rule":"LIST_SUM","sum":2},{"parent":"FUNC","rule":"LIST_TAKE","sum":2},{"parent":"FUNC","rule":"LIST_UNIQ","sum":343},{"parent":"FUNC","rule":"LIST_length","sum":1},{"parent":"FUNC","rule":"LISTfilter","sum":7},{"parent":"FUNC","rule":"LISTfromRange","sum":1417},{"parent":"FUNC","rule":"LISTfromrange","sum":3},{"parent":"FUNC","rule":"LISThas","sum":2},{"parent":"FUNC","rule":"LISTnotNull","sum":2},{"parent":"FUNC","rule":"LIStExtend","sum":3},{"parent":"FUNC","rule":"LIStHas","sum":2},{"parent":"FUNC","rule":"LIStLENGth","sum":1},{"parent":"FUNC","rule":"LIStLength","sum":1},{"parent":"FUNC","rule":"LIStmap","sum":1},{"parent":"FUNC","rule":"LIstConcat","sum":303},{"parent":"FUNC","rule":"LIstExtend","sum":3},{"parent":"FUNC","rule":"LIstFilter","sum":71},{"parent":"FUNC","rule":"LIstFromRange","sum":8},{"parent":"FUNC","rule":"LIstFromrange","sum":1},{"parent":"FUNC","rule":"LIstHas","sum":14},{"parent":"FUNC","rule":"LIstHasItems","sum":13},{"parent":"FUNC","rule":"LIstHead","sum":3},{"parent":"FUNC","rule":"LIstLength","sum":350},{"parent":"FUNC","rule":"LIstMap","sum":1343},{"parent":"FUNC","rule":"LIstMax","sum":7},{"parent":"FUNC","rule":"LIstSkip","sum":2},{"parent":"FUNC","rule":"LIstSort","sum":1},{"parent":"FUNC","rule":"LIstSum","sum":1},{"parent":"FUNC","rule":"LIstfilter","sum":2},{"parent":"FUNC","rule":"LIstlength","sum":13},{"parent":"FUNC","rule":"LIstmap","sum":12},{"parent":"FUNC","rule":"LOG","sum":1},{"parent":"FUNC","rule":"LOG10","sum":6},{"parent":"FUNC","rule":"LOGHISTOGRAM","sum":1},{"parent":"FUNC","rule":"LOWER","sum":5},{"parent":"FUNC","rule":"Lag","sum":12315},{"parent":"FUNC","rule":"LambdaArgumentsCount","sum":32},{"parent":"FUNC","rule":"LambdaCode","sum":330239},{"parent":"FUNC","rule":"LastValue","sum":32},{"parent":"FUNC","rule":"Last_VALUE","sum":14},{"parent":"FUNC","rule":"Last_Value","sum":29},{"parent":"FUNC","rule":"Last_value","sum":101},{"parent":"FUNC","rule":"Lead","sum":11179},{"parent":"FUNC","rule":"Least","sum":2216},{"parent":"FUNC","rule":"Len","sum":93003},{"parent":"FUNC","rule":"LenGTH","sum":12},{"parent":"FUNC","rule":"Length","sum":1248306},{"parent":"FUNC","rule":"LiSTMAP","sum":2},{"parent":"FUNC","rule":"Likely","sum":20762},{"parent":"FUNC","rule":"LinearHISTOGRAM","sum":86},{"parent":"FUNC","rule":"LinearHistogram","sum":46166},{"parent":"FUNC","rule":"LinearHistogramCDF","sum":463},{"parent":"FUNC","rule":"LinearHistogramcdf","sum":10},{"parent":"FUNC","rule":"Linear_Histogram","sum":7},{"parent":"FUNC","rule":"Linearhistogram","sum":4},{"parent":"FUNC","rule":"Lis","sum":1},{"parent":"FUNC","rule":"LisMap","sum":2},{"parent":"FUNC","rule":"LisTHas","sum":8},{"parent":"FUNC","rule":"LisTLength","sum":2},{"parent":"FUNC","rule":"ListALL","sum":1552},{"parent":"FUNC","rule":"ListALl","sum":8},{"parent":"FUNC","rule":"ListANY","sum":1722},{"parent":"FUNC","rule":"ListAVG","sum":240},{"parent":"FUNC","rule":"ListAgg","sum":2},{"parent":"FUNC","rule":"ListAggregate","sum":424985},{"parent":"FUNC","rule":"ListAll","sum":265153},{"parent":"FUNC","rule":"ListAny","sum":1880286},{"parent":"FUNC","rule":"ListAppend","sum":1},{"parent":"FUNC","rule":"ListAvg","sum":542328},{"parent":"FUNC","rule":"ListCOncat","sum":2},{"parent":"FUNC","rule":"ListCode","sum":209429},{"parent":"FUNC","rule":"ListCollect","sum":903405},{"parent":"FUNC","rule":"ListConCat","sum":99},{"parent":"FUNC","rule":"ListConcat","sum":5473538},{"parent":"FUNC","rule":"ListCreate","sum":1959344},{"parent":"FUNC","rule":"ListDistinct","sum":1},{"parent":"FUNC","rule":"ListEnumerate","sum":1399312},{"parent":"FUNC","rule":"ListExtEnd","sum":1},{"parent":"FUNC","rule":"ListExtend","sum":4375262},{"parent":"FUNC","rule":"ListExtendStrict","sum":91484},{"parent":"FUNC","rule":"ListExtract","sum":3343121},{"parent":"FUNC","rule":"ListFILTER","sum":540},{"parent":"FUNC","rule":"ListFIlter","sum":345},{"parent":"FUNC","rule":"ListFLatMap","sum":263},{"parent":"FUNC","rule":"ListFLatten","sum":578},{"parent":"FUNC","rule":"ListFROMRange","sum":5061},{"parent":"FUNC","rule":"ListFilteR","sum":4},{"parent":"FUNC","rule":"ListFilter","sum":17808256},{"parent":"FUNC","rule":"ListFirst","sum":3},{"parent":"FUNC","rule":"ListFlatMap","sum":908504},{"parent":"FUNC","rule":"ListFlatmap","sum":29149},{"parent":"FUNC","rule":"ListFlatten","sum":2822248},{"parent":"FUNC","rule":"ListFold","sum":232637},{"parent":"FUNC","rule":"ListFold1","sum":35605},{"parent":"FUNC","rule":"ListFold1Map","sum":3427},{"parent":"FUNC","rule":"ListFoldMap","sum":41412},{"parent":"FUNC","rule":"ListFromPython","sum":2},{"parent":"FUNC","rule":"ListFromRANGE","sum":23},{"parent":"FUNC","rule":"ListFromRAnge","sum":45},{"parent":"FUNC","rule":"ListFromRange","sum":3090733},{"parent":"FUNC","rule":"ListFromTuple","sum":59287},{"parent":"FUNC","rule":"ListFromTyple","sum":2},{"parent":"FUNC","rule":"ListFromrange","sum":12},{"parent":"FUNC","rule":"ListHAS","sum":384},{"parent":"FUNC","rule":"ListHAs","sum":556},{"parent":"FUNC","rule":"ListHAsItems","sum":26},{"parent":"FUNC","rule":"ListHEAD","sum":2},{"parent":"FUNC","rule":"ListHEad","sum":69},{"parent":"FUNC","rule":"ListHaS","sum":1},{"parent":"FUNC","rule":"ListHas","sum":20692887},{"parent":"FUNC","rule":"ListHasITems","sum":9},{"parent":"FUNC","rule":"ListHasItemhs","sum":1},{"parent":"FUNC","rule":"ListHasItems","sum":5125383},{"parent":"FUNC","rule":"ListHasitems","sum":342},{"parent":"FUNC","rule":"ListHeaD","sum":95},{"parent":"FUNC","rule":"ListHead","sum":10716553},{"parent":"FUNC","rule":"ListINdexOf","sum":2},{"parent":"FUNC","rule":"ListIndex","sum":1},{"parent":"FUNC","rule":"ListIndexOF","sum":10},{"parent":"FUNC","rule":"ListIndexOf","sum":1227811},{"parent":"FUNC","rule":"ListIndexof","sum":19},{"parent":"FUNC","rule":"ListItemType","sum":208215},{"parent":"FUNC","rule":"ListJoin","sum":3},{"parent":"FUNC","rule":"ListJsonDocument","sum":1},{"parent":"FUNC","rule":"ListLAst","sum":10},{"parent":"FUNC","rule":"ListLENGTH","sum":2222},{"parent":"FUNC","rule":"ListLEngth","sum":19},{"parent":"FUNC","rule":"ListLasT","sum":12},{"parent":"FUNC","rule":"ListLast","sum":5986734},{"parent":"FUNC","rule":"ListLeNgth","sum":1},{"parent":"FUNC","rule":"ListLegth","sum":1},{"parent":"FUNC","rule":"ListLenght","sum":1},{"parent":"FUNC","rule":"ListLengtH","sum":2},{"parent":"FUNC","rule":"ListLength","sum":18497952},{"parent":"FUNC","rule":"ListMAP","sum":227},{"parent":"FUNC","rule":"ListMAX","sum":10229},{"parent":"FUNC","rule":"ListMAp","sum":4807},{"parent":"FUNC","rule":"ListMAx","sum":1},{"parent":"FUNC","rule":"ListMIN","sum":52},{"parent":"FUNC","rule":"ListMIn","sum":1},{"parent":"FUNC","rule":"ListMaP","sum":1164},{"parent":"FUNC","rule":"ListMap","sum":35454479},{"parent":"FUNC","rule":"ListMax","sum":1416009},{"parent":"FUNC","rule":"ListMin","sum":814448},{"parent":"FUNC","rule":"ListNOTNull","sum":714},{"parent":"FUNC","rule":"ListNoTNull","sum":17},{"parent":"FUNC","rule":"ListNoTnull","sum":953},{"parent":"FUNC","rule":"ListNonNull","sum":1},{"parent":"FUNC","rule":"ListNotNULL","sum":30544},{"parent":"FUNC","rule":"ListNotNUll","sum":7772},{"parent":"FUNC","rule":"ListNotNuLL","sum":5},{"parent":"FUNC","rule":"ListNotNul","sum":1},{"parent":"FUNC","rule":"ListNotNulL","sum":3},{"parent":"FUNC","rule":"ListNotNull","sum":9254299},{"parent":"FUNC","rule":"ListNotnull","sum":22},{"parent":"FUNC","rule":"ListREplicate","sum":2},{"parent":"FUNC","rule":"ListRange","sum":4},{"parent":"FUNC","rule":"ListRepeat","sum":1},{"parent":"FUNC","rule":"ListReplicate","sum":951308},{"parent":"FUNC","rule":"ListReverse","sum":1333079},{"parent":"FUNC","rule":"ListSORT","sum":1},{"parent":"FUNC","rule":"ListSORtAsc","sum":26},{"parent":"FUNC","rule":"ListSOrt","sum":3},{"parent":"FUNC","rule":"ListSUM","sum":854},{"parent":"FUNC","rule":"ListSUm","sum":12},{"parent":"FUNC","rule":"ListSample","sum":13},{"parent":"FUNC","rule":"ListSampleN","sum":706},{"parent":"FUNC","rule":"ListShuffle","sum":525},{"parent":"FUNC","rule":"ListShuffleN","sum":1},{"parent":"FUNC","rule":"ListSkip","sum":617760},{"parent":"FUNC","rule":"ListSkipWhile","sum":139511},{"parent":"FUNC","rule":"ListSkipWhileInclusive","sum":8743},{"parent":"FUNC","rule":"ListSort","sum":5009469},{"parent":"FUNC","rule":"ListSortASC","sum":18047},{"parent":"FUNC","rule":"ListSortAsc","sum":485962},{"parent":"FUNC","rule":"ListSortDESC","sum":56},{"parent":"FUNC","rule":"ListSortDEsc","sum":2},{"parent":"FUNC","rule":"ListSortDesc","sum":1136848},{"parent":"FUNC","rule":"ListSortasc","sum":9},{"parent":"FUNC","rule":"ListSortdesc","sum":638},{"parent":"FUNC","rule":"ListSum","sum":1750208},{"parent":"FUNC","rule":"ListTail","sum":1},{"parent":"FUNC","rule":"ListTake","sum":2153837},{"parent":"FUNC","rule":"ListTakeWhile","sum":89554},{"parent":"FUNC","rule":"ListTakeWhileInclusive","sum":2465},{"parent":"FUNC","rule":"ListToTuple","sum":6392},{"parent":"FUNC","rule":"ListTop","sum":2337},{"parent":"FUNC","rule":"ListTopAsc","sum":132},{"parent":"FUNC","rule":"ListTopDESC","sum":1},{"parent":"FUNC","rule":"ListTopDesc","sum":10812},{"parent":"FUNC","rule":"ListTopSort","sum":1051},{"parent":"FUNC","rule":"ListTopSortAsc","sum":40},{"parent":"FUNC","rule":"ListTopSortDesc","sum":60191},{"parent":"FUNC","rule":"ListTopdesc","sum":1},{"parent":"FUNC","rule":"ListType","sum":32196},{"parent":"FUNC","rule":"ListTypeHandle","sum":1},{"parent":"FUNC","rule":"ListUNiq","sum":30},{"parent":"FUNC","rule":"ListUnionALL","sum":128},{"parent":"FUNC","rule":"ListUnionAll","sum":56471},{"parent":"FUNC","rule":"ListUniq","sum":3978493},{"parent":"FUNC","rule":"ListUniqStable","sum":75921},{"parent":"FUNC","rule":"ListZIP","sum":8},{"parent":"FUNC","rule":"ListZIp","sum":1},{"parent":"FUNC","rule":"ListZip","sum":2532464},{"parent":"FUNC","rule":"ListZipALL","sum":290767},{"parent":"FUNC","rule":"ListZipAll","sum":275100},{"parent":"FUNC","rule":"List_FromRange","sum":11},{"parent":"FUNC","rule":"List_Has","sum":23},{"parent":"FUNC","rule":"List_Length","sum":15},{"parent":"FUNC","rule":"List_Sort","sum":10},{"parent":"FUNC","rule":"List_Uniq","sum":1},{"parent":"FUNC","rule":"List_concat","sum":3},{"parent":"FUNC","rule":"List_length","sum":2},{"parent":"FUNC","rule":"List_sort","sum":80},{"parent":"FUNC","rule":"Listall","sum":4448},{"parent":"FUNC","rule":"Listany","sum":38},{"parent":"FUNC","rule":"Listcollect","sum":5250},{"parent":"FUNC","rule":"Listconcat","sum":14858},{"parent":"FUNC","rule":"Listenumerate","sum":3},{"parent":"FUNC","rule":"Listextend","sum":5},{"parent":"FUNC","rule":"Listfilter","sum":263891},{"parent":"FUNC","rule":"Listflatmap","sum":297},{"parent":"FUNC","rule":"Listflatten","sum":33},{"parent":"FUNC","rule":"ListfromRange","sum":32},{"parent":"FUNC","rule":"Listfromrange","sum":110},{"parent":"FUNC","rule":"Listfromtuple","sum":1},{"parent":"FUNC","rule":"Listhas","sum":69815},{"parent":"FUNC","rule":"ListhasItems","sum":267},{"parent":"FUNC","rule":"Listhasitems","sum":488},{"parent":"FUNC","rule":"Listhead","sum":18578},{"parent":"FUNC","rule":"ListindexOf","sum":2077},{"parent":"FUNC","rule":"Listindexof","sum":4},{"parent":"FUNC","rule":"ListlENGTH","sum":1},{"parent":"FUNC","rule":"ListlEngth","sum":2},{"parent":"FUNC","rule":"Listlast","sum":4104},{"parent":"FUNC","rule":"Listlength","sum":10851},{"parent":"FUNC","rule":"Listmap","sum":11269},{"parent":"FUNC","rule":"Listmax","sum":495},{"parent":"FUNC","rule":"Listmin","sum":1627},{"parent":"FUNC","rule":"ListnotNull","sum":38},{"parent":"FUNC","rule":"Listnotnull","sum":8},{"parent":"FUNC","rule":"Listreverse","sum":17},{"parent":"FUNC","rule":"Listskip","sum":148},{"parent":"FUNC","rule":"ListskipWhile","sum":409},{"parent":"FUNC","rule":"Listsort","sum":1045},{"parent":"FUNC","rule":"Listsortasc","sum":1},{"parent":"FUNC","rule":"Listsortdesc","sum":1},{"parent":"FUNC","rule":"Listsum","sum":27},{"parent":"FUNC","rule":"Listtake","sum":20212},{"parent":"FUNC","rule":"ListtakeWhile","sum":2},{"parent":"FUNC","rule":"Listuniq","sum":326},{"parent":"FUNC","rule":"Listzip","sum":766},{"parent":"FUNC","rule":"Listzipall","sum":1},{"parent":"FUNC","rule":"LogHISTOGRAM","sum":7},{"parent":"FUNC","rule":"LogHistogram","sum":285},{"parent":"FUNC","rule":"LogHistogramCDF","sum":15},{"parent":"FUNC","rule":"LogarithmicHISTOGRAM","sum":1},{"parent":"FUNC","rule":"LogarithmicHistogram","sum":611},{"parent":"FUNC","rule":"Logarithmichistogram","sum":20},{"parent":"FUNC","rule":"Lookup","sum":1},{"parent":"FUNC","rule":"MAX","sum":34515863},{"parent":"FUNC","rule":"MAXBY","sum":123},{"parent":"FUNC","rule":"MAXOF","sum":3},{"parent":"FUNC","rule":"MAX_BY","sum":22826836},{"parent":"FUNC","rule":"MAX_By","sum":19},{"parent":"FUNC","rule":"MAX_IF","sum":1},{"parent":"FUNC","rule":"MAX_OF","sum":2198760},{"parent":"FUNC","rule":"MAX_Of","sum":2},{"parent":"FUNC","rule":"MAX_bY","sum":7},{"parent":"FUNC","rule":"MAX_by","sum":10595},{"parent":"FUNC","rule":"MAX_of","sum":596},{"parent":"FUNC","rule":"MAx","sum":286},{"parent":"FUNC","rule":"MEDIAN","sum":912799},{"parent":"FUNC","rule":"MEDiAN","sum":4},{"parent":"FUNC","rule":"MEdian","sum":14},{"parent":"FUNC","rule":"MIN","sum":14648475},{"parent":"FUNC","rule":"MINBY","sum":1906},{"parent":"FUNC","rule":"MIN_BY","sum":5284759},{"parent":"FUNC","rule":"MIN_IF","sum":8},{"parent":"FUNC","rule":"MIN_OF","sum":2264108},{"parent":"FUNC","rule":"MIN_by","sum":1285},{"parent":"FUNC","rule":"MIN_of","sum":2},{"parent":"FUNC","rule":"MIn","sum":199},{"parent":"FUNC","rule":"MIn_OF","sum":3},{"parent":"FUNC","rule":"MODE","sum":900632},{"parent":"FUNC","rule":"MODe","sum":1},{"parent":"FUNC","rule":"MONTH","sum":1},{"parent":"FUNC","rule":"MULTI_AGGREGATE_BY","sum":695092},{"parent":"FUNC","rule":"MaX","sum":7},{"parent":"FUNC","rule":"MakeDate","sum":1},{"parent":"FUNC","rule":"Map","sum":4},{"parent":"FUNC","rule":"Max","sum":379920},{"parent":"FUNC","rule":"MaxBy","sum":5401},{"parent":"FUNC","rule":"MaxOf","sum":207},{"parent":"FUNC","rule":"Max_BY","sum":3216},{"parent":"FUNC","rule":"Max_By","sum":70597},{"parent":"FUNC","rule":"Max_OF","sum":679},{"parent":"FUNC","rule":"Max_Of","sum":648},{"parent":"FUNC","rule":"Max_by","sum":141194},{"parent":"FUNC","rule":"Max_of","sum":3630},{"parent":"FUNC","rule":"Median","sum":19438},{"parent":"FUNC","rule":"MiN","sum":32},{"parent":"FUNC","rule":"Min","sum":193235},{"parent":"FUNC","rule":"MinBy","sum":1195},{"parent":"FUNC","rule":"MinOf","sum":892},{"parent":"FUNC","rule":"Min_BY","sum":433},{"parent":"FUNC","rule":"Min_By","sum":10707},{"parent":"FUNC","rule":"Min_OF","sum":1095},{"parent":"FUNC","rule":"Min_Of","sum":827},{"parent":"FUNC","rule":"Min_by","sum":9098},{"parent":"FUNC","rule":"Min_of","sum":1312},{"parent":"FUNC","rule":"MoDE","sum":1},{"parent":"FUNC","rule":"Mode","sum":14678},{"parent":"FUNC","rule":"Mul","sum":1},{"parent":"FUNC","rule":"MultiAggregateBy","sum":643},{"parent":"FUNC","rule":"Multi_Aggregate_BY","sum":4},{"parent":"FUNC","rule":"Multi_Aggregate_By","sum":1157},{"parent":"FUNC","rule":"Multi_Aggregate_by","sum":4},{"parent":"FUNC","rule":"Multi_aggregate_by","sum":411},{"parent":"FUNC","rule":"NANVL","sum":720019},{"parent":"FUNC","rule":"NOTHING","sum":3213},{"parent":"FUNC","rule":"NOW","sum":2},{"parent":"FUNC","rule":"NOW64","sum":2},{"parent":"FUNC","rule":"NOthing","sum":1},{"parent":"FUNC","rule":"NTH_VALUE","sum":2998},{"parent":"FUNC","rule":"NTILE","sum":1812},{"parent":"FUNC","rule":"NULLIF","sum":3},{"parent":"FUNC","rule":"NVL","sum":17663064},{"parent":"FUNC","rule":"NVl","sum":814},{"parent":"FUNC","rule":"NaNvl","sum":26},{"parent":"FUNC","rule":"NanVL","sum":1},{"parent":"FUNC","rule":"NanVl","sum":3},{"parent":"FUNC","rule":"Nanvl","sum":10762},{"parent":"FUNC","rule":"NothiNG","sum":2},{"parent":"FUNC","rule":"Nothing","sum":811549},{"parent":"FUNC","rule":"NullTypeHandle","sum":2344},{"parent":"FUNC","rule":"Nvl","sum":28388},{"parent":"FUNC","rule":"OR","sum":6},{"parent":"FUNC","rule":"OVER","sum":1},{"parent":"FUNC","rule":"OptionalItemType","sum":37171},{"parent":"FUNC","rule":"OptionalType","sum":137315},{"parent":"FUNC","rule":"OptionalTypeHandle","sum":44188},{"parent":"FUNC","rule":"PERCENTILE","sum":29880047},{"parent":"FUNC","rule":"PERCENTIlE","sum":4},{"parent":"FUNC","rule":"PERCENT_RANK","sum":6088},{"parent":"FUNC","rule":"PERCENtILE","sum":1952},{"parent":"FUNC","rule":"PERCEnTILE","sum":1},{"parent":"FUNC","rule":"PICKLE","sum":77},{"parent":"FUNC","rule":"PIckle","sum":7},{"parent":"FUNC","rule":"POPULATION_STDDEV","sum":365},{"parent":"FUNC","rule":"POPULATION_VARIANCE","sum":19},{"parent":"FUNC","rule":"POWER","sum":4},{"parent":"FUNC","rule":"ParseDuration","sum":2},{"parent":"FUNC","rule":"ParseFILE","sum":22},{"parent":"FUNC","rule":"ParseFIle","sum":8},{"parent":"FUNC","rule":"ParseFile","sum":952351},{"parent":"FUNC","rule":"ParseType","sum":463703},{"parent":"FUNC","rule":"ParseTypeHandle","sum":1189481},{"parent":"FUNC","rule":"Parsefile","sum":111},{"parent":"FUNC","rule":"Path","sum":4},{"parent":"FUNC","rule":"PeRCENTILE","sum":365},{"parent":"FUNC","rule":"Percentile","sum":72997},{"parent":"FUNC","rule":"PgArray","sum":17},{"parent":"FUNC","rule":"PgBool","sum":152},{"parent":"FUNC","rule":"PgCall","sum":552},{"parent":"FUNC","rule":"PgCast","sum":5580},{"parent":"FUNC","rule":"PgCircle","sum":5},{"parent":"FUNC","rule":"PgConst","sum":96},{"parent":"FUNC","rule":"PgDate","sum":110},{"parent":"FUNC","rule":"PgGeometry","sum":6},{"parent":"FUNC","rule":"PgInt4","sum":4},{"parent":"FUNC","rule":"PgInt8","sum":1},{"parent":"FUNC","rule":"PgInterval","sum":33},{"parent":"FUNC","rule":"PgOp","sum":1369},{"parent":"FUNC","rule":"PgPoint","sum":76},{"parent":"FUNC","rule":"PgPolygon","sum":517},{"parent":"FUNC","rule":"PgRangeCall","sum":7},{"parent":"FUNC","rule":"PgText","sum":24},{"parent":"FUNC","rule":"PgTimestamp","sum":42},{"parent":"FUNC","rule":"PgVarBit","sum":2},{"parent":"FUNC","rule":"Pickle","sum":118410},{"parent":"FUNC","rule":"QuoteCode","sum":723777},{"parent":"FUNC","rule":"RADIANS","sum":12},{"parent":"FUNC","rule":"RAND","sum":2},{"parent":"FUNC","rule":"RANDOM","sum":486258},{"parent":"FUNC","rule":"RANDOMNUMBER","sum":4002},{"parent":"FUNC","rule":"RANDOMNumber","sum":11},{"parent":"FUNC","rule":"RANDOMUUID","sum":5},{"parent":"FUNC","rule":"RANDOM_NUMBER","sum":83},{"parent":"FUNC","rule":"RANGE","sum":150},{"parent":"FUNC","rule":"RANK","sum":943535},{"parent":"FUNC","rule":"RAndom","sum":7},{"parent":"FUNC","rule":"REGEXP","sum":1},{"parent":"FUNC","rule":"REMOVEMEMBERS","sum":41},{"parent":"FUNC","rule":"REMOVE_mEMBER","sum":6},{"parent":"FUNC","rule":"REPLACE","sum":3},{"parent":"FUNC","rule":"RFIND","sum":3580748},{"parent":"FUNC","rule":"RFind","sum":252143},{"parent":"FUNC","rule":"RIGHT","sum":2},{"parent":"FUNC","rule":"ROUND","sum":10},{"parent":"FUNC","rule":"ROWNUMBER","sum":33},{"parent":"FUNC","rule":"ROW_NUMBER","sum":9398855},{"parent":"FUNC","rule":"ROW_NUMber","sum":11},{"parent":"FUNC","rule":"ROW_Number","sum":8},{"parent":"FUNC","rule":"ROW_nUMBER","sum":1},{"parent":"FUNC","rule":"ROW_nuMBER","sum":4},{"parent":"FUNC","rule":"ROW_number","sum":13485},{"parent":"FUNC","rule":"Rand","sum":1},{"parent":"FUNC","rule":"Random","sum":731275},{"parent":"FUNC","rule":"RandomNUmber","sum":172},{"parent":"FUNC","rule":"RandomNumber","sum":271843},{"parent":"FUNC","rule":"RandomUUID","sum":8087},{"parent":"FUNC","rule":"RandomUUid","sum":33004},{"parent":"FUNC","rule":"RandomUuid","sum":214066},{"parent":"FUNC","rule":"Randomnumber","sum":2},{"parent":"FUNC","rule":"Range","sum":2},{"parent":"FUNC","rule":"Rank","sum":3091},{"parent":"FUNC","rule":"RemoveMEmbers","sum":16},{"parent":"FUNC","rule":"RemoveMember","sum":431434},{"parent":"FUNC","rule":"RemoveMembers","sum":727140},{"parent":"FUNC","rule":"RemoveTimeZone","sum":13},{"parent":"FUNC","rule":"RemoveTimezone","sum":433575},{"parent":"FUNC","rule":"Removemember","sum":686},{"parent":"FUNC","rule":"Removemembers","sum":4},{"parent":"FUNC","rule":"RenameMembers","sum":504186},{"parent":"FUNC","rule":"ReplaceMember","sum":9374},{"parent":"FUNC","rule":"ReprCode","sum":195638},{"parent":"FUNC","rule":"ResourceType","sum":9},{"parent":"FUNC","rule":"Rfind","sum":870},{"parent":"FUNC","rule":"RootAttributes","sum":20},{"parent":"FUNC","rule":"RowNum","sum":1},{"parent":"FUNC","rule":"RowNumber","sum":21077},{"parent":"FUNC","rule":"Row_NUMBER","sum":33},{"parent":"FUNC","rule":"Row_NUmber","sum":16},{"parent":"FUNC","rule":"Row_Number","sum":60208},{"parent":"FUNC","rule":"Row_number","sum":4109},{"parent":"FUNC","rule":"SESSIONWINDOW","sum":131},{"parent":"FUNC","rule":"SETINTERSECTION","sum":20},{"parent":"FUNC","rule":"SIGN","sum":1},{"parent":"FUNC","rule":"SIN","sum":4},{"parent":"FUNC","rule":"SOME","sum":32962069},{"parent":"FUNC","rule":"SOMe","sum":17},{"parent":"FUNC","rule":"SON_VALUE","sum":1},{"parent":"FUNC","rule":"SOmE","sum":3},{"parent":"FUNC","rule":"SOme","sum":9},{"parent":"FUNC","rule":"SQL","sum":6},{"parent":"FUNC","rule":"SQRT","sum":2},{"parent":"FUNC","rule":"STARTSWITH","sum":25435},{"parent":"FUNC","rule":"STARTS_WITH","sum":46},{"parent":"FUNC","rule":"STARTsWITH","sum":17},{"parent":"FUNC","rule":"STATICMAP","sum":46},{"parent":"FUNC","rule":"STD","sum":6},{"parent":"FUNC","rule":"STDDEV","sum":400454},{"parent":"FUNC","rule":"STDDEVPOP","sum":2821},{"parent":"FUNC","rule":"STDDEVSAMP","sum":1096},{"parent":"FUNC","rule":"STDDEV_POP","sum":14},{"parent":"FUNC","rule":"STDDEV_POPULATION","sum":18575},{"parent":"FUNC","rule":"STDDEV_SAMP","sum":3383},{"parent":"FUNC","rule":"STDDEV_SAMPLE","sum":9929},{"parent":"FUNC","rule":"STDDev","sum":2},{"parent":"FUNC","rule":"STDdev","sum":4},{"parent":"FUNC","rule":"STRING_SPLIT","sum":1},{"parent":"FUNC","rule":"ST_AsText","sum":3},{"parent":"FUNC","rule":"ST_ClosestPoint","sum":3},{"parent":"FUNC","rule":"ST_Distance","sum":5},{"parent":"FUNC","rule":"ST_GeomFromGeoHash","sum":1},{"parent":"FUNC","rule":"ST_Point","sum":10},{"parent":"FUNC","rule":"ST_PolygonFromText","sum":5},{"parent":"FUNC","rule":"ST_SetSRID","sum":6},{"parent":"FUNC","rule":"STartsWith","sum":2},{"parent":"FUNC","rule":"STdDEV","sum":9},{"parent":"FUNC","rule":"SUBQUERYExtendFor","sum":6},{"parent":"FUNC","rule":"SUBSTIRNG","sum":4},{"parent":"FUNC","rule":"SUBSTRING","sum":29486312},{"parent":"FUNC","rule":"SUBSTRINg","sum":2},{"parent":"FUNC","rule":"SUBSTRInG","sum":4},{"parent":"FUNC","rule":"SUBSTRiNG","sum":2},{"parent":"FUNC","rule":"SUBSTRinG","sum":2},{"parent":"FUNC","rule":"SUBSTRing","sum":222},{"parent":"FUNC","rule":"SUBSTrING","sum":21},{"parent":"FUNC","rule":"SUBSTring","sum":14},{"parent":"FUNC","rule":"SUBStRING","sum":2},{"parent":"FUNC","rule":"SUBString","sum":20},{"parent":"FUNC","rule":"SUBstring","sum":3},{"parent":"FUNC","rule":"SUM","sum":42518480},{"parent":"FUNC","rule":"SUMIF","sum":3307},{"parent":"FUNC","rule":"SUM_","sum":317},{"parent":"FUNC","rule":"SUM_IF","sum":8450348},{"parent":"FUNC","rule":"SUM_If","sum":117},{"parent":"FUNC","rule":"SUM_iF","sum":19},{"parent":"FUNC","rule":"SUM_if","sum":266967},{"parent":"FUNC","rule":"SUN","sum":1},{"parent":"FUNC","rule":"SUbstring","sum":5},{"parent":"FUNC","rule":"SUm","sum":80},{"parent":"FUNC","rule":"SUm_IF","sum":30},{"parent":"FUNC","rule":"SWITCH","sum":2},{"parent":"FUNC","rule":"SecureParam","sum":899360},{"parent":"FUNC","rule":"SessionStart","sum":24214},{"parent":"FUNC","rule":"SessionState","sum":715},{"parent":"FUNC","rule":"SessionWindow","sum":102011},{"parent":"FUNC","rule":"SetBit","sum":44653},{"parent":"FUNC","rule":"SetContains","sum":1},{"parent":"FUNC","rule":"SetCreate","sum":45695},{"parent":"FUNC","rule":"SetDIfference","sum":11},{"parent":"FUNC","rule":"SetDifference","sum":485655},{"parent":"FUNC","rule":"SetINtersection","sum":1},{"parent":"FUNC","rule":"SetIncludes","sum":246893},{"parent":"FUNC","rule":"SetInterSection","sum":21},{"parent":"FUNC","rule":"SetIntersection","sum":1266285},{"parent":"FUNC","rule":"SetIsDisJOINt","sum":8105},{"parent":"FUNC","rule":"SetIsDisJoint","sum":1682},{"parent":"FUNC","rule":"SetIsDisjoint","sum":1239534},{"parent":"FUNC","rule":"SetSymmetricDifference","sum":8881},{"parent":"FUNC","rule":"SetUNION","sum":1},{"parent":"FUNC","rule":"SetUnion","sum":587911},{"parent":"FUNC","rule":"Setintersection","sum":4469},{"parent":"FUNC","rule":"SizeOf","sum":1},{"parent":"FUNC","rule":"Some","sum":2527597},{"parent":"FUNC","rule":"SplitToList","sum":6},{"parent":"FUNC","rule":"SpreadMembers","sum":344856},{"parent":"FUNC","rule":"StablePicke","sum":1},{"parent":"FUNC","rule":"StablePickle","sum":212261},{"parent":"FUNC","rule":"StartSwith","sum":105},{"parent":"FUNC","rule":"StartsWIth","sum":703},{"parent":"FUNC","rule":"StartsWith","sum":5761432},{"parent":"FUNC","rule":"Startswith","sum":19556},{"parent":"FUNC","rule":"StaticFold","sum":306},{"parent":"FUNC","rule":"StaticMap","sum":683879},{"parent":"FUNC","rule":"StaticZip","sum":14379},{"parent":"FUNC","rule":"Staticmap","sum":2},{"parent":"FUNC","rule":"StdDev","sum":33},{"parent":"FUNC","rule":"Stddev","sum":43},{"parent":"FUNC","rule":"StreamItemType","sum":5717},{"parent":"FUNC","rule":"StreamType","sum":78367},{"parent":"FUNC","rule":"StreamTypeHandle","sum":17},{"parent":"FUNC","rule":"String","sum":34439},{"parent":"FUNC","rule":"StringLength","sum":5},{"parent":"FUNC","rule":"StringSplitToList","sum":4},{"parent":"FUNC","rule":"StructDifference","sum":235},{"parent":"FUNC","rule":"StructIntersection","sum":811},{"parent":"FUNC","rule":"StructMemberType","sum":19757},{"parent":"FUNC","rule":"StructMembers","sum":969975},{"parent":"FUNC","rule":"StructSymmetricDifference","sum":172},{"parent":"FUNC","rule":"StructType","sum":17999},{"parent":"FUNC","rule":"StructTypeComponents","sum":99610},{"parent":"FUNC","rule":"StructTypeHandle","sum":87847},{"parent":"FUNC","rule":"StructUnion","sum":100902},{"parent":"FUNC","rule":"SuBSTRING","sum":1},{"parent":"FUNC","rule":"SuM","sum":9},{"parent":"FUNC","rule":"SuM_IF","sum":4},{"parent":"FUNC","rule":"SubQueryExtendFor","sum":3},{"parent":"FUNC","rule":"SubSTRING","sum":3},{"parent":"FUNC","rule":"SubString","sum":27399},{"parent":"FUNC","rule":"SubqueryAssumeOrderBy","sum":842},{"parent":"FUNC","rule":"SubqueryExtend","sum":37066},{"parent":"FUNC","rule":"SubqueryExtendFor","sum":769785},{"parent":"FUNC","rule":"SubqueryMerge","sum":19},{"parent":"FUNC","rule":"SubqueryMergeFor","sum":36395},{"parent":"FUNC","rule":"SubqueryOrderBy","sum":183831},{"parent":"FUNC","rule":"SubqueryUnionALLFor","sum":9},{"parent":"FUNC","rule":"SubqueryUnionALlFor","sum":76},{"parent":"FUNC","rule":"SubqueryUnionAll","sum":26080},{"parent":"FUNC","rule":"SubqueryUnionAllFor","sum":140800},{"parent":"FUNC","rule":"SubqueryUnionAllfor","sum":380},{"parent":"FUNC","rule":"SubqueryUnionMerge","sum":30574},{"parent":"FUNC","rule":"SubqueryUnionMergeFor","sum":73776},{"parent":"FUNC","rule":"SubsTRING","sum":3},{"parent":"FUNC","rule":"Substring","sum":2922245},{"parent":"FUNC","rule":"Sum","sum":453802},{"parent":"FUNC","rule":"SumIf","sum":1597},{"parent":"FUNC","rule":"Sum_IF","sum":85},{"parent":"FUNC","rule":"Sum_If","sum":14030},{"parent":"FUNC","rule":"Sum_if","sum":52960},{"parent":"FUNC","rule":"TABLENAME","sum":12019},{"parent":"FUNC","rule":"TABLEPATH","sum":282},{"parent":"FUNC","rule":"TABLERECORDINDEX","sum":45},{"parent":"FUNC","rule":"TABLEROW","sum":1253},{"parent":"FUNC","rule":"TABLE_NAME","sum":138},{"parent":"FUNC","rule":"TABLE_PATH","sum":53},{"parent":"FUNC","rule":"TABLE_ROW","sum":124},{"parent":"FUNC","rule":"TABLEname","sum":4},{"parent":"FUNC","rule":"TAbleName","sum":68},{"parent":"FUNC","rule":"TAblePath","sum":2},{"parent":"FUNC","rule":"TAbleRow","sum":25},{"parent":"FUNC","rule":"TAblename","sum":1},{"parent":"FUNC","rule":"TESTBIT","sum":3},{"parent":"FUNC","rule":"TEstBit","sum":1},{"parent":"FUNC","rule":"TIMESTAMP","sum":420},{"parent":"FUNC","rule":"TIMESTAMPDIFF","sum":2},{"parent":"FUNC","rule":"TIMESTAMP_SECONDS","sum":1},{"parent":"FUNC","rule":"TOBytes","sum":1},{"parent":"FUNC","rule":"TODICT","sum":21},{"parent":"FUNC","rule":"TODIct","sum":1},{"parent":"FUNC","rule":"TOP","sum":501195},{"parent":"FUNC","rule":"TOPBY","sum":1},{"parent":"FUNC","rule":"TOPFREQ","sum":510950},{"parent":"FUNC","rule":"TOPFreq","sum":3},{"parent":"FUNC","rule":"TOP_BY","sum":1770572},{"parent":"FUNC","rule":"TOP_FREQ","sum":46},{"parent":"FUNC","rule":"TOP_by","sum":26},{"parent":"FUNC","rule":"TOSET","sum":41},{"parent":"FUNC","rule":"TOSet","sum":774},{"parent":"FUNC","rule":"TO_NUMBER","sum":14},{"parent":"FUNC","rule":"TO_TIMESTAMP","sum":1},{"parent":"FUNC","rule":"TObytes","sum":3},{"parent":"FUNC","rule":"TRY_MEMBER","sum":37},{"parent":"FUNC","rule":"TYPEOF","sum":1},{"parent":"FUNC","rule":"TYPEof","sum":28},{"parent":"FUNC","rule":"TZDateTime","sum":135},{"parent":"FUNC","rule":"TZDatetime","sum":3},{"parent":"FUNC","rule":"TZTimestamp","sum":64},{"parent":"FUNC","rule":"TabLeName","sum":1},{"parent":"FUNC","rule":"TableNAME","sum":3},{"parent":"FUNC","rule":"TableNAme","sum":1633},{"parent":"FUNC","rule":"TableNamE","sum":2},{"parent":"FUNC","rule":"TableName","sum":15042117},{"parent":"FUNC","rule":"TablePATH","sum":1},{"parent":"FUNC","rule":"TablePAth","sum":5},{"parent":"FUNC","rule":"TablePath","sum":1501216},{"parent":"FUNC","rule":"TableROW","sum":4},{"parent":"FUNC","rule":"TableROw","sum":19},{"parent":"FUNC","rule":"TableRecordINdex","sum":4},{"parent":"FUNC","rule":"TableRecordIndex","sum":2316230},{"parent":"FUNC","rule":"TableRedordIndex","sum":1},{"parent":"FUNC","rule":"TableRow","sum":27008055},{"parent":"FUNC","rule":"TableRowIndex","sum":1},{"parent":"FUNC","rule":"TableRows","sum":1687797},{"parent":"FUNC","rule":"Table_Name","sum":55},{"parent":"FUNC","rule":"Table_Row","sum":5},{"parent":"FUNC","rule":"Table_name","sum":73},{"parent":"FUNC","rule":"Table_path","sum":3},{"parent":"FUNC","rule":"Tablename","sum":104251},{"parent":"FUNC","rule":"Tablepath","sum":205},{"parent":"FUNC","rule":"TablerRow","sum":1},{"parent":"FUNC","rule":"TablerecordIndex","sum":1},{"parent":"FUNC","rule":"Tablerecordindex","sum":3},{"parent":"FUNC","rule":"Tablerow","sum":26428},{"parent":"FUNC","rule":"TestBit","sum":253322},{"parent":"FUNC","rule":"Text","sum":20},{"parent":"FUNC","rule":"TimeStamp","sum":4383},{"parent":"FUNC","rule":"Timestamp","sum":1352330},{"parent":"FUNC","rule":"Timestamp64","sum":59},{"parent":"FUNC","rule":"ToBytes","sum":6649582},{"parent":"FUNC","rule":"ToDIct","sum":258},{"parent":"FUNC","rule":"ToDict","sum":6404050},{"parent":"FUNC","rule":"ToList","sum":3},{"parent":"FUNC","rule":"ToLower","sum":4},{"parent":"FUNC","rule":"ToMilliseconds","sum":2},{"parent":"FUNC","rule":"ToMultiDict","sum":339195},{"parent":"FUNC","rule":"ToPg","sum":3151},{"parent":"FUNC","rule":"ToSET","sum":80},{"parent":"FUNC","rule":"ToSet","sum":5473624},{"parent":"FUNC","rule":"ToSortedDict","sum":1116},{"parent":"FUNC","rule":"ToStartOfMonth","sum":4},{"parent":"FUNC","rule":"To_bytes","sum":3},{"parent":"FUNC","rule":"Todict","sum":232},{"parent":"FUNC","rule":"Top","sum":810},{"parent":"FUNC","rule":"TopBy","sum":77},{"parent":"FUNC","rule":"TopFreq","sum":13726},{"parent":"FUNC","rule":"Top_BY","sum":22},{"parent":"FUNC","rule":"Top_By","sum":110},{"parent":"FUNC","rule":"Top_by","sum":122},{"parent":"FUNC","rule":"Topfreq","sum":28},{"parent":"FUNC","rule":"Toset","sum":2338},{"parent":"FUNC","rule":"TryMember","sum":16740604},{"parent":"FUNC","rule":"Trymember","sum":36901},{"parent":"FUNC","rule":"TupleElementType","sum":7628},{"parent":"FUNC","rule":"TupleType","sum":2404},{"parent":"FUNC","rule":"TupleTypeComponents","sum":58},{"parent":"FUNC","rule":"TupleTypeHandle","sum":5589},{"parent":"FUNC","rule":"TypeHandle","sum":161732},{"parent":"FUNC","rule":"TypeKind","sum":54811},{"parent":"FUNC","rule":"TypeOF","sum":37},{"parent":"FUNC","rule":"TypeOf","sum":848023},{"parent":"FUNC","rule":"Typeof","sum":78},{"parent":"FUNC","rule":"TzDate","sum":671},{"parent":"FUNC","rule":"TzDate32","sum":7},{"parent":"FUNC","rule":"TzDateTime","sum":24914},{"parent":"FUNC","rule":"TzDateTime64","sum":7},{"parent":"FUNC","rule":"TzDatetime","sum":46364},{"parent":"FUNC","rule":"TzTimeStamp","sum":4},{"parent":"FUNC","rule":"TzTimestamp","sum":343086},{"parent":"FUNC","rule":"TzTimestamp64","sum":7},{"parent":"FUNC","rule":"UBSTRING","sum":1},{"parent":"FUNC","rule":"UDAF","sum":141471},{"parent":"FUNC","rule":"UDF","sum":1822},{"parent":"FUNC","rule":"UINT32","sum":4},{"parent":"FUNC","rule":"UINT64","sum":6},{"parent":"FUNC","rule":"UInt32","sum":110038},{"parent":"FUNC","rule":"UInt64","sum":829},{"parent":"FUNC","rule":"UInt8","sum":421},{"parent":"FUNC","rule":"UNIQ","sum":1},{"parent":"FUNC","rule":"UNPICKLE","sum":28},{"parent":"FUNC","rule":"UNTAG","sum":18},{"parent":"FUNC","rule":"UNWRAP","sum":14008231},{"parent":"FUNC","rule":"UNWRAp","sum":1},{"parent":"FUNC","rule":"UNWRaP","sum":1},{"parent":"FUNC","rule":"UNWRap","sum":10490},{"parent":"FUNC","rule":"UNWrAP","sum":11},{"parent":"FUNC","rule":"UNWraP","sum":8},{"parent":"FUNC","rule":"UNWrap","sum":4},{"parent":"FUNC","rule":"UNwRAP","sum":6},{"parent":"FUNC","rule":"UNwrap","sum":1355},{"parent":"FUNC","rule":"USING","sum":6},{"parent":"FUNC","rule":"UTF8","sum":337764},{"parent":"FUNC","rule":"UUID","sum":1},{"parent":"FUNC","rule":"Udf","sum":299447},{"parent":"FUNC","rule":"Uint16","sum":83},{"parent":"FUNC","rule":"Uint32","sum":331912},{"parent":"FUNC","rule":"Uint64","sum":11976},{"parent":"FUNC","rule":"Uint8","sum":2921},{"parent":"FUNC","rule":"UnTag","sum":55},{"parent":"FUNC","rule":"UnWRAP","sum":10},{"parent":"FUNC","rule":"UnWrAp","sum":1},{"parent":"FUNC","rule":"UnWrap","sum":1072429},{"parent":"FUNC","rule":"UnionAll","sum":3},{"parent":"FUNC","rule":"Unpickle","sum":180},{"parent":"FUNC","rule":"Untag","sum":15484},{"parent":"FUNC","rule":"Unwarp","sum":1},{"parent":"FUNC","rule":"Unwrap","sum":35759752},{"parent":"FUNC","rule":"UtcCurrentDatetime","sum":8},{"parent":"FUNC","rule":"Utf8","sum":41056},{"parent":"FUNC","rule":"Uuid","sum":453},{"parent":"FUNC","rule":"VALUES","sum":14},{"parent":"FUNC","rule":"VARIANCE","sum":31051},{"parent":"FUNC","rule":"VARIANCE_POPULATION","sum":3016},{"parent":"FUNC","rule":"VARIANCE_SAMPLE","sum":1240},{"parent":"FUNC","rule":"VARP","sum":146},{"parent":"FUNC","rule":"VARPOP","sum":15},{"parent":"FUNC","rule":"VAR_POP","sum":4},{"parent":"FUNC","rule":"VAR_SAMP","sum":44},{"parent":"FUNC","rule":"VERSION","sum":2},{"parent":"FUNC","rule":"Variance","sum":1146},{"parent":"FUNC","rule":"Variance_SAMPLE","sum":30},{"parent":"FUNC","rule":"Variance_Sample","sum":23},{"parent":"FUNC","rule":"Variance_sample","sum":24},{"parent":"FUNC","rule":"VariantType","sum":3175},{"parent":"FUNC","rule":"VariantTypeHandle","sum":8},{"parent":"FUNC","rule":"VariantUnderlyingType","sum":6519},{"parent":"FUNC","rule":"Version","sum":3},{"parent":"FUNC","rule":"Visit","sum":28},{"parent":"FUNC","rule":"Void","sum":92606},{"parent":"FUNC","rule":"WEAKFIELD","sum":834},{"parent":"FUNC","rule":"WEAK_FIELD","sum":374},{"parent":"FUNC","rule":"WEakField","sum":2},{"parent":"FUNC","rule":"Way","sum":8991},{"parent":"FUNC","rule":"WeakFIeld","sum":43},{"parent":"FUNC","rule":"WeakField","sum":21170482},{"parent":"FUNC","rule":"WeakFiled","sum":2},{"parent":"FUNC","rule":"Weakfield","sum":1912},{"parent":"FUNC","rule":"WorldCode","sum":372},{"parent":"FUNC","rule":"YPathDouble","sum":4},{"parent":"FUNC","rule":"YPathExtract","sum":4},{"parent":"FUNC","rule":"YPathInt64","sum":6},{"parent":"FUNC","rule":"YPathString","sum":4},{"parent":"FUNC","rule":"YSON","sum":756},{"parent":"FUNC","rule":"YSONExtractString","sum":6},{"parent":"FUNC","rule":"Yson","sum":608385},{"parent":"FUNC","rule":"aGGREGATE_LIST","sum":13},{"parent":"FUNC","rule":"aGGREGATE_LIST_DISTINCT","sum":4},{"parent":"FUNC","rule":"aGG_LIST","sum":2},{"parent":"FUNC","rule":"aGG_LIST_DISTINCT","sum":10},{"parent":"FUNC","rule":"aSSTRUCT","sum":1},{"parent":"FUNC","rule":"aSTuple","sum":3},{"parent":"FUNC","rule":"aVG","sum":2},{"parent":"FUNC","rule":"abs","sum":1550616},{"parent":"FUNC","rule":"addMember","sum":2582},{"parent":"FUNC","rule":"addTimezone","sum":782},{"parent":"FUNC","rule":"age","sum":2},{"parent":"FUNC","rule":"aggList","sum":265},{"parent":"FUNC","rule":"agg_LIST","sum":76},{"parent":"FUNC","rule":"agg_LIST_DISTINCT","sum":1},{"parent":"FUNC","rule":"agg_List","sum":546},{"parent":"FUNC","rule":"agg_List_distinct","sum":24},{"parent":"FUNC","rule":"agg_list","sum":1285452},{"parent":"FUNC","rule":"agg_list_DISTINCT","sum":2},{"parent":"FUNC","rule":"agg_list_Distinct","sum":1},{"parent":"FUNC","rule":"agg_list_distinct","sum":434951},{"parent":"FUNC","rule":"agg_set","sum":1},{"parent":"FUNC","rule":"agglist","sum":122},{"parent":"FUNC","rule":"agglistdistinct","sum":27},{"parent":"FUNC","rule":"aggr_list","sum":2670},{"parent":"FUNC","rule":"aggr_list_distinct","sum":18},{"parent":"FUNC","rule":"aggr_set","sum":2},{"parent":"FUNC","rule":"aggregATE_LIST","sum":16},{"parent":"FUNC","rule":"aggregateList","sum":369},{"parent":"FUNC","rule":"aggregateListDistinct","sum":37},{"parent":"FUNC","rule":"aggregate_List","sum":986},{"parent":"FUNC","rule":"aggregate_List_Distinct","sum":8},{"parent":"FUNC","rule":"aggregate_List_distinct","sum":10},{"parent":"FUNC","rule":"aggregate_by","sum":369867},{"parent":"FUNC","rule":"aggregate_list","sum":2507268},{"parent":"FUNC","rule":"aggregate_list_","sum":1},{"parent":"FUNC","rule":"aggregate_list_DISTINCT","sum":1790},{"parent":"FUNC","rule":"aggregate_list_Distinct","sum":27},{"parent":"FUNC","rule":"aggregate_list_distinct","sum":940324},{"parent":"FUNC","rule":"aggregatelist","sum":556},{"parent":"FUNC","rule":"aggregatetransforminput","sum":1},{"parent":"FUNC","rule":"aggregationFactory","sum":134},{"parent":"FUNC","rule":"aggregation_factory","sum":9007},{"parent":"FUNC","rule":"aggregationfactory","sum":77},{"parent":"FUNC","rule":"agregate_list_distinct","sum":1},{"parent":"FUNC","rule":"and","sum":5},{"parent":"FUNC","rule":"anyLast","sum":8},{"parent":"FUNC","rule":"argMax","sum":14},{"parent":"FUNC","rule":"arrayElement","sum":1},{"parent":"FUNC","rule":"arrayJoin","sum":10},{"parent":"FUNC","rule":"arrayMax","sum":4},{"parent":"FUNC","rule":"array_agg","sum":5},{"parent":"FUNC","rule":"array_to_string","sum":2},{"parent":"FUNC","rule":"asDIct","sum":1},{"parent":"FUNC","rule":"asDict","sum":3801},{"parent":"FUNC","rule":"asLIST","sum":50},{"parent":"FUNC","rule":"asList","sum":175410},{"parent":"FUNC","rule":"asSet","sum":1978},{"parent":"FUNC","rule":"asStruct","sum":116578},{"parent":"FUNC","rule":"asTUPLE","sum":1},{"parent":"FUNC","rule":"asTagged","sum":2117},{"parent":"FUNC","rule":"asTuple","sum":83395},{"parent":"FUNC","rule":"asVariant","sum":10},{"parent":"FUNC","rule":"as_dict","sum":4},{"parent":"FUNC","rule":"as_list","sum":77},{"parent":"FUNC","rule":"as_struct","sum":122},{"parent":"FUNC","rule":"as_table","sum":30},{"parent":"FUNC","rule":"as_tagged","sum":1},{"parent":"FUNC","rule":"as_tuple","sum":367},{"parent":"FUNC","rule":"asdict","sum":3856},{"parent":"FUNC","rule":"asenum","sum":13},{"parent":"FUNC","rule":"aslist","sum":164797},{"parent":"FUNC","rule":"assessments_integralListReverse","sum":2},{"parent":"FUNC","rule":"asset","sum":1154},{"parent":"FUNC","rule":"asstruct","sum":12980},{"parent":"FUNC","rule":"assumeNotNull","sum":3},{"parent":"FUNC","rule":"astagged","sum":1383},{"parent":"FUNC","rule":"astuple","sum":30946},{"parent":"FUNC","rule":"asvariant","sum":3},{"parent":"FUNC","rule":"atan2","sum":4},{"parent":"FUNC","rule":"avG","sum":52},{"parent":"FUNC","rule":"avg","sum":6007241},{"parent":"FUNC","rule":"avgIf","sum":19330},{"parent":"FUNC","rule":"avg_","sum":1},{"parent":"FUNC","rule":"avg_IF","sum":155},{"parent":"FUNC","rule":"avg_If","sum":129},{"parent":"FUNC","rule":"avg_if","sum":497377},{"parent":"FUNC","rule":"ax","sum":13},{"parent":"FUNC","rule":"bit_or","sum":26592},{"parent":"FUNC","rule":"bool","sum":279},{"parent":"FUNC","rule":"bool_and","sum":67086},{"parent":"FUNC","rule":"bool_or","sum":237042},{"parent":"FUNC","rule":"bool_xor","sum":2},{"parent":"FUNC","rule":"bottom","sum":10584},{"parent":"FUNC","rule":"bottom_by","sum":332186},{"parent":"FUNC","rule":"business_id","sum":1},{"parent":"FUNC","rule":"bytes","sum":2},{"parent":"FUNC","rule":"cOALESCE","sum":36},{"parent":"FUNC","rule":"cOUNT","sum":64},{"parent":"FUNC","rule":"cOUNT_IF","sum":40},{"parent":"FUNC","rule":"cOunt","sum":2},{"parent":"FUNC","rule":"ceil","sum":1},{"parent":"FUNC","rule":"char_LENGTH","sum":2},{"parent":"FUNC","rule":"char_length","sum":18},{"parent":"FUNC","rule":"check_google_id","sum":1},{"parent":"FUNC","rule":"choosemembers","sum":5},{"parent":"FUNC","rule":"client_id","sum":1},{"parent":"FUNC","rule":"cnt","sum":2},{"parent":"FUNC","rule":"coALESCE","sum":14},{"parent":"FUNC","rule":"coUNT","sum":3},{"parent":"FUNC","rule":"coUNt","sum":3},{"parent":"FUNC","rule":"coalESCE","sum":40},{"parent":"FUNC","rule":"coalescE","sum":1},{"parent":"FUNC","rule":"coalesce","sum":24980542},{"parent":"FUNC","rule":"coalescue","sum":2},{"parent":"FUNC","rule":"coalsece","sum":1},{"parent":"FUNC","rule":"combinemembers","sum":5},{"parent":"FUNC","rule":"concat","sum":26},{"parent":"FUNC","rule":"conunt","sum":1},{"parent":"FUNC","rule":"convert_to_360","sum":2},{"parent":"FUNC","rule":"corr","sum":705},{"parent":"FUNC","rule":"correlation","sum":3875},{"parent":"FUNC","rule":"cos","sum":8},{"parent":"FUNC","rule":"couNT","sum":1},{"parent":"FUNC","rule":"couNT_IF","sum":7},{"parent":"FUNC","rule":"counT","sum":24},{"parent":"FUNC","rule":"count","sum":38634912},{"parent":"FUNC","rule":"countDistinct","sum":1},{"parent":"FUNC","rule":"countDistinctEstimate","sum":272527},{"parent":"FUNC","rule":"countIF","sum":8373},{"parent":"FUNC","rule":"countIf","sum":1390204},{"parent":"FUNC","rule":"count_","sum":555},{"parent":"FUNC","rule":"count_IF","sum":34194},{"parent":"FUNC","rule":"count_If","sum":26486},{"parent":"FUNC","rule":"count_distinct_estimate","sum":33},{"parent":"FUNC","rule":"count_if","sum":18926527},{"parent":"FUNC","rule":"countdistinctEstimate","sum":1793},{"parent":"FUNC","rule":"countdistinctestimate","sum":2835},{"parent":"FUNC","rule":"countif","sum":21244},{"parent":"FUNC","rule":"covar","sum":243},{"parent":"FUNC","rule":"covariance","sum":285},{"parent":"FUNC","rule":"covariance_sample","sum":165},{"parent":"FUNC","rule":"cpunt","sum":1},{"parent":"FUNC","rule":"cume_dist","sum":69},{"parent":"FUNC","rule":"currentTzDate","sum":3995},{"parent":"FUNC","rule":"currentTzTimestamp","sum":53},{"parent":"FUNC","rule":"currentUTCDATETIME","sum":19},{"parent":"FUNC","rule":"currentUTCDate","sum":657},{"parent":"FUNC","rule":"currentUTCDateTime","sum":305},{"parent":"FUNC","rule":"currentUTCdate","sum":364},{"parent":"FUNC","rule":"currentUTCdatetime","sum":20},{"parent":"FUNC","rule":"currentUTcdate","sum":1334},{"parent":"FUNC","rule":"currentUtcDate","sum":6288},{"parent":"FUNC","rule":"currentUtcDateTime","sum":14407},{"parent":"FUNC","rule":"currentUtcDatetime","sum":2376},{"parent":"FUNC","rule":"currentUtcTimestamp","sum":197},{"parent":"FUNC","rule":"current_utc_timestamp","sum":2},{"parent":"FUNC","rule":"currenttzdate","sum":418},{"parent":"FUNC","rule":"currenttzdatetime","sum":262},{"parent":"FUNC","rule":"currenttztimestamp","sum":47},{"parent":"FUNC","rule":"currentutcDateTime","sum":3},{"parent":"FUNC","rule":"currentutcdate","sum":118575},{"parent":"FUNC","rule":"currentutcdatetime","sum":58411},{"parent":"FUNC","rule":"currentutctimestamp","sum":48324},{"parent":"FUNC","rule":"d","sum":1},{"parent":"FUNC","rule":"dATE","sum":4},{"parent":"FUNC","rule":"date","sum":415478},{"parent":"FUNC","rule":"date32","sum":11},{"parent":"FUNC","rule":"dateDiff","sum":1},{"parent":"FUNC","rule":"dateNow","sum":2},{"parent":"FUNC","rule":"dateTIME","sum":2},{"parent":"FUNC","rule":"dateTime","sum":10},{"parent":"FUNC","rule":"date_add","sum":8},{"parent":"FUNC","rule":"date_format","sum":2},{"parent":"FUNC","rule":"date_from_ts","sum":1},{"parent":"FUNC","rule":"date_sub","sum":2},{"parent":"FUNC","rule":"dateadd","sum":1},{"parent":"FUNC","rule":"datetime","sum":11813},{"parent":"FUNC","rule":"datetime64","sum":19},{"parent":"FUNC","rule":"decimal","sum":339},{"parent":"FUNC","rule":"dense_RANK","sum":42},{"parent":"FUNC","rule":"dense_rank","sum":46285},{"parent":"FUNC","rule":"dictAggregate","sum":56},{"parent":"FUNC","rule":"dictContains","sum":7},{"parent":"FUNC","rule":"dictGetString","sum":1},{"parent":"FUNC","rule":"dictItems","sum":8443},{"parent":"FUNC","rule":"dictKeys","sum":1199},{"parent":"FUNC","rule":"dictLength","sum":104},{"parent":"FUNC","rule":"dictLookUp","sum":9345},{"parent":"FUNC","rule":"dictLookup","sum":675},{"parent":"FUNC","rule":"dictPayloads","sum":90},{"parent":"FUNC","rule":"dict_keys","sum":8696},{"parent":"FUNC","rule":"dictcontains","sum":344},{"parent":"FUNC","rule":"dictcreate","sum":2},{"parent":"FUNC","rule":"dicthasitems","sum":24},{"parent":"FUNC","rule":"dictitems","sum":2496},{"parent":"FUNC","rule":"dictkeys","sum":896},{"parent":"FUNC","rule":"dictlength","sum":6531},{"parent":"FUNC","rule":"dictlookup","sum":1585},{"parent":"FUNC","rule":"dictpayloads","sum":113},{"parent":"FUNC","rule":"disctinct","sum":2},{"parent":"FUNC","rule":"dol_show1","sum":1},{"parent":"FUNC","rule":"double","sum":134},{"parent":"FUNC","rule":"dynumber","sum":12},{"parent":"FUNC","rule":"each","sum":1},{"parent":"FUNC","rule":"empty","sum":3},{"parent":"FUNC","rule":"emptylist","sum":1},{"parent":"FUNC","rule":"endsWith","sum":2161},{"parent":"FUNC","rule":"endswith","sum":31546},{"parent":"FUNC","rule":"ensure","sum":408577},{"parent":"FUNC","rule":"ensuretype","sum":708},{"parent":"FUNC","rule":"evaluateCode","sum":52},{"parent":"FUNC","rule":"evaluateExpr","sum":294},{"parent":"FUNC","rule":"expandstruct","sum":20},{"parent":"FUNC","rule":"f","sum":1},{"parent":"FUNC","rule":"file_content","sum":10},{"parent":"FUNC","rule":"file_path","sum":1},{"parent":"FUNC","rule":"filecontent","sum":603},{"parent":"FUNC","rule":"filepath","sum":988},{"parent":"FUNC","rule":"filter","sum":2},{"parent":"FUNC","rule":"find","sum":4065628},{"parent":"FUNC","rule":"first_VALUE","sum":19},{"parent":"FUNC","rule":"first_route_timestamp","sum":1},{"parent":"FUNC","rule":"first_value","sum":1147813},{"parent":"FUNC","rule":"flatten","sum":1},{"parent":"FUNC","rule":"float","sum":23035},{"parent":"FUNC","rule":"floor","sum":1},{"parent":"FUNC","rule":"forceremovemember","sum":373},{"parent":"FUNC","rule":"format","sum":1},{"parent":"FUNC","rule":"formatType","sum":8},{"parent":"FUNC","rule":"formattype","sum":146},{"parent":"FUNC","rule":"fromBytes","sum":13},{"parent":"FUNC","rule":"fromPg","sum":130},{"parent":"FUNC","rule":"fromUnixTimestamp64Micro","sum":1},{"parent":"FUNC","rule":"from_bytes","sum":2},{"parent":"FUNC","rule":"frombytes","sum":47},{"parent":"FUNC","rule":"frompg","sum":129},{"parent":"FUNC","rule":"gatherMembers","sum":67},{"parent":"FUNC","rule":"gathermembers","sum":7},{"parent":"FUNC","rule":"get_auto_label","sum":1},{"parent":"FUNC","rule":"get_html","sum":1},{"parent":"FUNC","rule":"get_is_in_collection_feature","sum":1},{"parent":"FUNC","rule":"get_metrika_bro","sum":1},{"parent":"FUNC","rule":"get_pay_processing","sum":2},{"parent":"FUNC","rule":"get_post_profiles","sum":1},{"parent":"FUNC","rule":"get_rewrite_prompt","sum":1},{"parent":"FUNC","rule":"get_support_line","sum":1},{"parent":"FUNC","rule":"get_test_id","sum":7},{"parent":"FUNC","rule":"getdate","sum":2},{"parent":"FUNC","rule":"greatest","sum":318150},{"parent":"FUNC","rule":"groupArray","sum":4},{"parent":"FUNC","rule":"groupUniqArray","sum":2},{"parent":"FUNC","rule":"grouping","sum":17591},{"parent":"FUNC","rule":"hISTOGRAM","sum":2},{"parent":"FUNC","rule":"has","sum":16},{"parent":"FUNC","rule":"histOGRAM","sum":4},{"parent":"FUNC","rule":"histograM","sum":359},{"parent":"FUNC","rule":"histogram","sum":52782},{"parent":"FUNC","rule":"histogramcdf","sum":84},{"parent":"FUNC","rule":"hll","sum":82167},{"parent":"FUNC","rule":"iF","sum":2688},{"parent":"FUNC","rule":"iNtErVaL","sum":1},{"parent":"FUNC","rule":"if","sum":43171932},{"parent":"FUNC","rule":"ifNull","sum":6},{"parent":"FUNC","rule":"in","sum":13},{"parent":"FUNC","rule":"indexOf","sum":6},{"parent":"FUNC","rule":"instanceof","sum":55},{"parent":"FUNC","rule":"instr","sum":1},{"parent":"FUNC","rule":"int","sum":32302},{"parent":"FUNC","rule":"int32","sum":2},{"parent":"FUNC","rule":"int64","sum":19},{"parent":"FUNC","rule":"int8","sum":2},{"parent":"FUNC","rule":"intervaL","sum":9360},{"parent":"FUNC","rule":"interval","sum":1798205},{"parent":"FUNC","rule":"interval64","sum":7},{"parent":"FUNC","rule":"isNull","sum":7},{"parent":"FUNC","rule":"is_allowed_in_kz","sum":2},{"parent":"FUNC","rule":"is_valid_intent","sum":4},{"parent":"FUNC","rule":"is_valid_organic","sum":4},{"parent":"FUNC","rule":"istLast","sum":1},{"parent":"FUNC","rule":"isum","sum":6},{"parent":"FUNC","rule":"joinTableRow","sum":5},{"parent":"FUNC","rule":"jointablerow","sum":215},{"parent":"FUNC","rule":"json","sum":5614},{"parent":"FUNC","rule":"json_extract","sum":3},{"parent":"FUNC","rule":"json_object_agg","sum":1},{"parent":"FUNC","rule":"jsondocument","sum":6},{"parent":"FUNC","rule":"just","sum":244471},{"parent":"FUNC","rule":"lAG","sum":2250},{"parent":"FUNC","rule":"lEAD","sum":6796},{"parent":"FUNC","rule":"lEN","sum":30},{"parent":"FUNC","rule":"lINEARHISTOGRAM","sum":115},{"parent":"FUNC","rule":"lISTlENGTH","sum":2},{"parent":"FUNC","rule":"lISTlength","sum":1},{"parent":"FUNC","rule":"lag","sum":1012017},{"parent":"FUNC","rule":"last_VALUE","sum":14},{"parent":"FUNC","rule":"last_value","sum":1088627},{"parent":"FUNC","rule":"lead","sum":928421},{"parent":"FUNC","rule":"least","sum":374625},{"parent":"FUNC","rule":"len","sum":712039},{"parent":"FUNC","rule":"lenGTH","sum":1},{"parent":"FUNC","rule":"lenght","sum":1},{"parent":"FUNC","rule":"lengtH","sum":2},{"parent":"FUNC","rule":"length","sum":2548583},{"parent":"FUNC","rule":"like","sum":4},{"parent":"FUNC","rule":"likely","sum":16461},{"parent":"FUNC","rule":"linearHISTOGRAM","sum":10},{"parent":"FUNC","rule":"linearHistogram","sum":11},{"parent":"FUNC","rule":"linearhistogram","sum":171},{"parent":"FUNC","rule":"linearhistogramcdf","sum":20},{"parent":"FUNC","rule":"listALL","sum":3},{"parent":"FUNC","rule":"listAVG","sum":887},{"parent":"FUNC","rule":"listAggregateUnique","sum":1},{"parent":"FUNC","rule":"listAll","sum":86},{"parent":"FUNC","rule":"listAny","sum":121},{"parent":"FUNC","rule":"listAvg","sum":102},{"parent":"FUNC","rule":"listCollect","sum":378},{"parent":"FUNC","rule":"listConcat","sum":11083},{"parent":"FUNC","rule":"listEnumerate","sum":132},{"parent":"FUNC","rule":"listExtend","sum":6680},{"parent":"FUNC","rule":"listExtract","sum":24},{"parent":"FUNC","rule":"listFilter","sum":39682},{"parent":"FUNC","rule":"listFlatten","sum":289},{"parent":"FUNC","rule":"listFold","sum":300},{"parent":"FUNC","rule":"listFromRange","sum":770},{"parent":"FUNC","rule":"listHAs","sum":52},{"parent":"FUNC","rule":"listHas","sum":41485},{"parent":"FUNC","rule":"listHasItems","sum":3240},{"parent":"FUNC","rule":"listHead","sum":2187},{"parent":"FUNC","rule":"listIndexOf","sum":39},{"parent":"FUNC","rule":"listLENGTH","sum":225},{"parent":"FUNC","rule":"listLENgth","sum":2},{"parent":"FUNC","rule":"listLast","sum":1011},{"parent":"FUNC","rule":"listLength","sum":29751},{"parent":"FUNC","rule":"listMAX","sum":1},{"parent":"FUNC","rule":"listMIN","sum":1},{"parent":"FUNC","rule":"listMap","sum":53473},{"parent":"FUNC","rule":"listMax","sum":813},{"parent":"FUNC","rule":"listMin","sum":170},{"parent":"FUNC","rule":"listNotNull","sum":279},{"parent":"FUNC","rule":"listReverse","sum":4320},{"parent":"FUNC","rule":"listSkip","sum":18},{"parent":"FUNC","rule":"listSort","sum":23329},{"parent":"FUNC","rule":"listSortAsc","sum":2},{"parent":"FUNC","rule":"listSortDesc","sum":199},{"parent":"FUNC","rule":"listSum","sum":1472},{"parent":"FUNC","rule":"listTake","sum":734},{"parent":"FUNC","rule":"listTopSort","sum":18},{"parent":"FUNC","rule":"listUniq","sum":10540},{"parent":"FUNC","rule":"listUniqStable","sum":1},{"parent":"FUNC","rule":"listZip","sum":1339},{"parent":"FUNC","rule":"listZipAll","sum":1424},{"parent":"FUNC","rule":"list_Length","sum":1},{"parent":"FUNC","rule":"list_MAX","sum":1},{"parent":"FUNC","rule":"list_agg","sum":2},{"parent":"FUNC","rule":"list_avg","sum":25},{"parent":"FUNC","rule":"list_concat","sum":262},{"parent":"FUNC","rule":"list_filter","sum":2},{"parent":"FUNC","rule":"list_flatten","sum":15},{"parent":"FUNC","rule":"list_has","sum":6239},{"parent":"FUNC","rule":"list_has_items","sum":2},{"parent":"FUNC","rule":"list_head","sum":16},{"parent":"FUNC","rule":"list_length","sum":865},{"parent":"FUNC","rule":"list_map","sum":3},{"parent":"FUNC","rule":"list_max","sum":3},{"parent":"FUNC","rule":"list_min","sum":3},{"parent":"FUNC","rule":"list_not_null","sum":1},{"parent":"FUNC","rule":"list_sort","sum":112},{"parent":"FUNC","rule":"list_uniq","sum":1},{"parent":"FUNC","rule":"list_zip","sum":30},{"parent":"FUNC","rule":"listaggregate","sum":95},{"parent":"FUNC","rule":"listall","sum":13228},{"parent":"FUNC","rule":"listany","sum":15147},{"parent":"FUNC","rule":"listavg","sum":11752},{"parent":"FUNC","rule":"listcollect","sum":505},{"parent":"FUNC","rule":"listconcat","sum":19388},{"parent":"FUNC","rule":"listcreate","sum":10},{"parent":"FUNC","rule":"listenumerate","sum":2076},{"parent":"FUNC","rule":"listextend","sum":3845},{"parent":"FUNC","rule":"listextendstrict","sum":61},{"parent":"FUNC","rule":"listextract","sum":1831},{"parent":"FUNC","rule":"listfilter","sum":102248},{"parent":"FUNC","rule":"listflatmap","sum":7221},{"parent":"FUNC","rule":"listflatten","sum":22581},{"parent":"FUNC","rule":"listfold","sum":16},{"parent":"FUNC","rule":"listfold1map","sum":60},{"parent":"FUNC","rule":"listfromRange","sum":15},{"parent":"FUNC","rule":"listfromrange","sum":14073},{"parent":"FUNC","rule":"listfromtuple","sum":58},{"parent":"FUNC","rule":"listhas","sum":172035},{"parent":"FUNC","rule":"listhasItems","sum":34},{"parent":"FUNC","rule":"listhasitems","sum":10543},{"parent":"FUNC","rule":"listhead","sum":18546},{"parent":"FUNC","rule":"listindexof","sum":1206},{"parent":"FUNC","rule":"listlast","sum":3097},{"parent":"FUNC","rule":"listlength","sum":343216},{"parent":"FUNC","rule":"listmap","sum":517934},{"parent":"FUNC","rule":"listmax","sum":3950},{"parent":"FUNC","rule":"listmin","sum":2669},{"parent":"FUNC","rule":"listnotNull","sum":1},{"parent":"FUNC","rule":"listnotnull","sum":12906},{"parent":"FUNC","rule":"listreplicate","sum":49},{"parent":"FUNC","rule":"listreverse","sum":2241},{"parent":"FUNC","rule":"listskip","sum":1176},{"parent":"FUNC","rule":"listsort","sum":56414},{"parent":"FUNC","rule":"listsortDesc","sum":1},{"parent":"FUNC","rule":"listsortasc","sum":383},{"parent":"FUNC","rule":"listsortdesc","sum":3962},{"parent":"FUNC","rule":"listsum","sum":3416},{"parent":"FUNC","rule":"listtake","sum":16090},{"parent":"FUNC","rule":"listtop","sum":68},{"parent":"FUNC","rule":"listunionall","sum":8},{"parent":"FUNC","rule":"listuniq","sum":25574},{"parent":"FUNC","rule":"listuniqstable","sum":94},{"parent":"FUNC","rule":"listzip","sum":16664},{"parent":"FUNC","rule":"listzipALL","sum":2},{"parent":"FUNC","rule":"listzipAll","sum":11},{"parent":"FUNC","rule":"listzipall","sum":99},{"parent":"FUNC","rule":"log","sum":2},{"parent":"FUNC","rule":"logarithmicHistogram","sum":1},{"parent":"FUNC","rule":"logarithmichistogram","sum":6},{"parent":"FUNC","rule":"loghistogram","sum":1},{"parent":"FUNC","rule":"lower","sum":3},{"parent":"FUNC","rule":"mAX","sum":17},{"parent":"FUNC","rule":"mAX_BY","sum":131},{"parent":"FUNC","rule":"mIN","sum":2},{"parent":"FUNC","rule":"mIN_by","sum":10},{"parent":"FUNC","rule":"maX","sum":6},{"parent":"FUNC","rule":"maX_BY","sum":1},{"parent":"FUNC","rule":"map","sum":2},{"parent":"FUNC","rule":"max","sum":25147259},{"parent":"FUNC","rule":"maxBy","sum":1},{"parent":"FUNC","rule":"maxOf","sum":3529},{"parent":"FUNC","rule":"max_","sum":1},{"parent":"FUNC","rule":"max_BY","sum":2357},{"parent":"FUNC","rule":"max_By","sum":4552},{"parent":"FUNC","rule":"max_OF","sum":8},{"parent":"FUNC","rule":"max_Of","sum":29},{"parent":"FUNC","rule":"max_by","sum":28967975},{"parent":"FUNC","rule":"max_if","sum":3},{"parent":"FUNC","rule":"max_of","sum":1282982},{"parent":"FUNC","rule":"maxby","sum":4208},{"parent":"FUNC","rule":"maxof","sum":852},{"parent":"FUNC","rule":"md5int","sum":1},{"parent":"FUNC","rule":"median","sum":381741},{"parent":"FUNC","rule":"metric_exp","sum":1},{"parent":"FUNC","rule":"min","sum":10259043},{"parent":"FUNC","rule":"minOf","sum":2},{"parent":"FUNC","rule":"min_BY","sum":8617},{"parent":"FUNC","rule":"min_By","sum":6},{"parent":"FUNC","rule":"min_OF","sum":9},{"parent":"FUNC","rule":"min_Of","sum":343},{"parent":"FUNC","rule":"min_by","sum":2330282},{"parent":"FUNC","rule":"min_if","sum":10},{"parent":"FUNC","rule":"min_of","sum":577330},{"parent":"FUNC","rule":"minby","sum":1},{"parent":"FUNC","rule":"minof","sum":98},{"parent":"FUNC","rule":"mode","sum":117583},{"parent":"FUNC","rule":"multiIf","sum":2},{"parent":"FUNC","rule":"multi_aggregate_by","sum":117499},{"parent":"FUNC","rule":"nanvl","sum":129162},{"parent":"FUNC","rule":"notEmpty","sum":2},{"parent":"FUNC","rule":"nothing","sum":12869},{"parent":"FUNC","rule":"now","sum":16},{"parent":"FUNC","rule":"nth_value","sum":17},{"parent":"FUNC","rule":"ntile","sum":339},{"parent":"FUNC","rule":"nvL","sum":62},{"parent":"FUNC","rule":"nvl","sum":14029600},{"parent":"FUNC","rule":"on","sum":1},{"parent":"FUNC","rule":"optionaltype","sum":161},{"parent":"FUNC","rule":"or","sum":3},{"parent":"FUNC","rule":"order_nr","sum":1},{"parent":"FUNC","rule":"p25","sum":1},{"parent":"FUNC","rule":"p75","sum":1},{"parent":"FUNC","rule":"pERCENTILE","sum":11},{"parent":"FUNC","rule":"parseFile","sum":150},{"parent":"FUNC","rule":"parseForErrors","sum":32},{"parent":"FUNC","rule":"parse_dt_formatted","sum":1},{"parent":"FUNC","rule":"parsefile","sum":11196},{"parent":"FUNC","rule":"percent_rank","sum":2192},{"parent":"FUNC","rule":"percentile","sum":3352530},{"parent":"FUNC","rule":"pgInt2","sum":2},{"parent":"FUNC","rule":"pgarray","sum":2},{"parent":"FUNC","rule":"pgbpchar","sum":2},{"parent":"FUNC","rule":"pgbytea","sum":6},{"parent":"FUNC","rule":"pgcast","sum":39},{"parent":"FUNC","rule":"pgchar","sum":2},{"parent":"FUNC","rule":"pgdate","sum":94},{"parent":"FUNC","rule":"pgfloat4","sum":5},{"parent":"FUNC","rule":"pgfloat8","sum":3},{"parent":"FUNC","rule":"pgint2","sum":9},{"parent":"FUNC","rule":"pginterval","sum":176},{"parent":"FUNC","rule":"pgjson","sum":10},{"parent":"FUNC","rule":"pgname","sum":4},{"parent":"FUNC","rule":"pgnumeric","sum":4},{"parent":"FUNC","rule":"pgoidvector","sum":1},{"parent":"FUNC","rule":"pgtext","sum":9},{"parent":"FUNC","rule":"pgtimestamp","sum":7},{"parent":"FUNC","rule":"pgtimestamptz","sum":4},{"parent":"FUNC","rule":"pickle","sum":501},{"parent":"FUNC","rule":"pow","sum":8},{"parent":"FUNC","rule":"power","sum":3},{"parent":"FUNC","rule":"quantile","sum":1},{"parent":"FUNC","rule":"quantileExact","sum":1},{"parent":"FUNC","rule":"rFIND","sum":2},{"parent":"FUNC","rule":"rand","sum":5},{"parent":"FUNC","rule":"random","sum":260140},{"parent":"FUNC","rule":"randomNumber","sum":10},{"parent":"FUNC","rule":"randomUuid","sum":152},{"parent":"FUNC","rule":"random_number","sum":11},{"parent":"FUNC","rule":"randomnumber","sum":477},{"parent":"FUNC","rule":"randomuuid","sum":37},{"parent":"FUNC","rule":"range","sum":97},{"parent":"FUNC","rule":"rank","sum":222308},{"parent":"FUNC","rule":"regex_full_match","sum":1},{"parent":"FUNC","rule":"regex_replace_first","sum":1},{"parent":"FUNC","rule":"regionIn","sum":2},{"parent":"FUNC","rule":"removeMember","sum":160},{"parent":"FUNC","rule":"removemember","sum":18},{"parent":"FUNC","rule":"removemembers","sum":77},{"parent":"FUNC","rule":"removetimezone","sum":5},{"parent":"FUNC","rule":"renamemembers","sum":4},{"parent":"FUNC","rule":"replace","sum":1},{"parent":"FUNC","rule":"replaceRegexpAll","sum":2},{"parent":"FUNC","rule":"rfind","sum":127982},{"parent":"FUNC","rule":"round","sum":27},{"parent":"FUNC","rule":"row_NUMBER","sum":5},{"parent":"FUNC","rule":"row_Number","sum":3},{"parent":"FUNC","rule":"row_number","sum":2178991},{"parent":"FUNC","rule":"rownumber","sum":388},{"parent":"FUNC","rule":"sUBSTRING","sum":3},{"parent":"FUNC","rule":"sUM","sum":444},{"parent":"FUNC","rule":"sUM_IF","sum":20},{"parent":"FUNC","rule":"sUm","sum":8},{"parent":"FUNC","rule":"sessionWindow","sum":4},{"parent":"FUNC","rule":"session_start","sum":3},{"parent":"FUNC","rule":"sessionwindow","sum":171},{"parent":"FUNC","rule":"setDifference","sum":59},{"parent":"FUNC","rule":"setIntersection","sum":13},{"parent":"FUNC","rule":"setIsDisjoint","sum":1},{"parent":"FUNC","rule":"setUnion","sum":172},{"parent":"FUNC","rule":"setbit","sum":20},{"parent":"FUNC","rule":"setdifference","sum":171},{"parent":"FUNC","rule":"setincludes","sum":20},{"parent":"FUNC","rule":"setintersection","sum":120},{"parent":"FUNC","rule":"setisdisjoint","sum":1060},{"parent":"FUNC","rule":"setsymmetricdifference","sum":204},{"parent":"FUNC","rule":"setunion","sum":1787},{"parent":"FUNC","rule":"sign","sum":1},{"parent":"FUNC","rule":"sin","sum":16},{"parent":"FUNC","rule":"sipHash64","sum":2},{"parent":"FUNC","rule":"size","sum":1},{"parent":"FUNC","rule":"somE","sum":2},{"parent":"FUNC","rule":"some","sum":20342393},{"parent":"FUNC","rule":"somr","sum":1},{"parent":"FUNC","rule":"splitByChar","sum":1},{"parent":"FUNC","rule":"splitByString","sum":6},{"parent":"FUNC","rule":"spreadmembers","sum":3},{"parent":"FUNC","rule":"sqrt","sum":11},{"parent":"FUNC","rule":"ssubstring","sum":2},{"parent":"FUNC","rule":"stablepickle","sum":30},{"parent":"FUNC","rule":"startsWith","sum":200139},{"parent":"FUNC","rule":"starts_with","sum":14},{"parent":"FUNC","rule":"startswith","sum":20678},{"parent":"FUNC","rule":"staticmap","sum":22},{"parent":"FUNC","rule":"staticzip","sum":1},{"parent":"FUNC","rule":"status$$name","sum":3},{"parent":"FUNC","rule":"std_dev","sum":4},{"parent":"FUNC","rule":"stddev","sum":619643},{"parent":"FUNC","rule":"stddevPop","sum":13},{"parent":"FUNC","rule":"stddev_pop","sum":108},{"parent":"FUNC","rule":"stddev_population","sum":88},{"parent":"FUNC","rule":"stddev_samp","sum":27},{"parent":"FUNC","rule":"stddev_sample","sum":886},{"parent":"FUNC","rule":"stddevpop","sum":19},{"parent":"FUNC","rule":"stddevsamp","sum":5},{"parent":"FUNC","rule":"str","sum":24},{"parent":"FUNC","rule":"strfdate","sum":164},{"parent":"FUNC","rule":"string","sum":77},{"parent":"FUNC","rule":"string_agg","sum":1},{"parent":"FUNC","rule":"string_split","sum":1},{"parent":"FUNC","rule":"string_to_array","sum":3},{"parent":"FUNC","rule":"string_to_features","sum":1},{"parent":"FUNC","rule":"structMembers","sum":7},{"parent":"FUNC","rule":"structUnion","sum":41},{"parent":"FUNC","rule":"structdifference","sum":2},{"parent":"FUNC","rule":"structunion","sum":7},{"parent":"FUNC","rule":"suM","sum":184},{"parent":"FUNC","rule":"suM_if","sum":16},{"parent":"FUNC","rule":"subDate","sum":1},{"parent":"FUNC","rule":"subSTRING","sum":1},{"parent":"FUNC","rule":"subString","sum":580},{"parent":"FUNC","rule":"subqueryMergeFor","sum":21},{"parent":"FUNC","rule":"subqueryUnionMergeFor","sum":4410},{"parent":"FUNC","rule":"subquerymergefor","sum":1936},{"parent":"FUNC","rule":"subsTRING","sum":2},{"parent":"FUNC","rule":"subsrting","sum":3},{"parent":"FUNC","rule":"substing","sum":2},{"parent":"FUNC","rule":"substr","sum":173},{"parent":"FUNC","rule":"substring","sum":16531291},{"parent":"FUNC","rule":"substringUTF8","sum":1},{"parent":"FUNC","rule":"substring_index","sum":1},{"parent":"FUNC","rule":"sum","sum":45451451},{"parent":"FUNC","rule":"sumIF","sum":84},{"parent":"FUNC","rule":"sumIf","sum":94714},{"parent":"FUNC","rule":"sum_","sum":356},{"parent":"FUNC","rule":"sum_IF","sum":19568},{"parent":"FUNC","rule":"sum_If","sum":13003},{"parent":"FUNC","rule":"sum_if","sum":4235537},{"parent":"FUNC","rule":"sum_range2","sum":47},{"parent":"FUNC","rule":"sum_recursive_range","sum":1},{"parent":"FUNC","rule":"suma","sum":1},{"parent":"FUNC","rule":"sumif","sum":7479},{"parent":"FUNC","rule":"summ","sum":10},{"parent":"FUNC","rule":"sunstring","sum":2},{"parent":"FUNC","rule":"susbstring","sum":1},{"parent":"FUNC","rule":"tableName","sum":43245},{"parent":"FUNC","rule":"tablePath","sum":1480},{"parent":"FUNC","rule":"tableRecordIndex","sum":19},{"parent":"FUNC","rule":"tableRow","sum":22824},{"parent":"FUNC","rule":"table_name","sum":2894},{"parent":"FUNC","rule":"table_path","sum":46},{"parent":"FUNC","rule":"table_row","sum":377},{"parent":"FUNC","rule":"tablename","sum":165603},{"parent":"FUNC","rule":"tablepath","sum":32961},{"parent":"FUNC","rule":"tablerecordindex","sum":111},{"parent":"FUNC","rule":"tablerow","sum":42717},{"parent":"FUNC","rule":"tablerows","sum":5},{"parent":"FUNC","rule":"testBit","sum":34},{"parent":"FUNC","rule":"testbit","sum":38968},{"parent":"FUNC","rule":"testid","sum":2},{"parent":"FUNC","rule":"timestamp","sum":9971},{"parent":"FUNC","rule":"timestamp64","sum":7},{"parent":"FUNC","rule":"timezone","sum":2},{"parent":"FUNC","rule":"toBytes","sum":25421},{"parent":"FUNC","rule":"toDate","sum":57},{"parent":"FUNC","rule":"toDate32","sum":10},{"parent":"FUNC","rule":"toDateTime","sum":21},{"parent":"FUNC","rule":"toDateTimeOrNull","sum":3},{"parent":"FUNC","rule":"toDayOfWeek","sum":2},{"parent":"FUNC","rule":"toDict","sum":96254},{"parent":"FUNC","rule":"toFloat32","sum":4},{"parent":"FUNC","rule":"toInt128","sum":3},{"parent":"FUNC","rule":"toIntervalMonth","sum":2},{"parent":"FUNC","rule":"toLastDayOfMonth","sum":1},{"parent":"FUNC","rule":"toMonth","sum":1},{"parent":"FUNC","rule":"toMultiDict","sum":264},{"parent":"FUNC","rule":"toQuarter","sum":1},{"parent":"FUNC","rule":"toSet","sum":435881},{"parent":"FUNC","rule":"toStartOfMonth","sum":15},{"parent":"FUNC","rule":"toStartOfQuarter","sum":1},{"parent":"FUNC","rule":"toStartOfWeek","sum":9},{"parent":"FUNC","rule":"toString","sum":46},{"parent":"FUNC","rule":"toUInt64","sum":5},{"parent":"FUNC","rule":"toUnixTimestamp","sum":2},{"parent":"FUNC","rule":"toUnixTimestamp64Micro","sum":2},{"parent":"FUNC","rule":"toYear","sum":9},{"parent":"FUNC","rule":"to_bytes","sum":36},{"parent":"FUNC","rule":"to_char","sum":2},{"parent":"FUNC","rule":"to_date","sum":4},{"parent":"FUNC","rule":"to_dict","sum":65},{"parent":"FUNC","rule":"tobytes","sum":154},{"parent":"FUNC","rule":"today","sum":1},{"parent":"FUNC","rule":"todict","sum":100072},{"parent":"FUNC","rule":"tomultidict","sum":1157},{"parent":"FUNC","rule":"top","sum":54295},{"parent":"FUNC","rule":"topFreq","sum":94},{"parent":"FUNC","rule":"top_BY","sum":1},{"parent":"FUNC","rule":"top_by","sum":115898},{"parent":"FUNC","rule":"top_freq","sum":113},{"parent":"FUNC","rule":"topfreq","sum":23272},{"parent":"FUNC","rule":"topg","sum":2},{"parent":"FUNC","rule":"toset","sum":38682},{"parent":"FUNC","rule":"trunc","sum":13},{"parent":"FUNC","rule":"truncate","sum":2},{"parent":"FUNC","rule":"tryMember","sum":527},{"parent":"FUNC","rule":"trymember","sum":10121},{"parent":"FUNC","rule":"tupleElement","sum":2},{"parent":"FUNC","rule":"typeOf","sum":38},{"parent":"FUNC","rule":"typeof","sum":407},{"parent":"FUNC","rule":"tzdate","sum":8},{"parent":"FUNC","rule":"tzdate32","sum":7},{"parent":"FUNC","rule":"tzdatetime","sum":44},{"parent":"FUNC","rule":"tzdatetime64","sum":7},{"parent":"FUNC","rule":"tztimestamp","sum":35},{"parent":"FUNC","rule":"tztimestamp64","sum":7},{"parent":"FUNC","rule":"uNWRAP","sum":88},{"parent":"FUNC","rule":"udaf","sum":17656},{"parent":"FUNC","rule":"uint32","sum":13540},{"parent":"FUNC","rule":"uint64","sum":31},{"parent":"FUNC","rule":"uint8","sum":2},{"parent":"FUNC","rule":"unWRap","sum":3},{"parent":"FUNC","rule":"unWrap","sum":5},{"parent":"FUNC","rule":"uniq","sum":9},{"parent":"FUNC","rule":"uniqExact","sum":10},{"parent":"FUNC","rule":"unique","sum":1},{"parent":"FUNC","rule":"unique_pairs","sum":1},{"parent":"FUNC","rule":"unnest","sum":3},{"parent":"FUNC","rule":"untag","sum":1363},{"parent":"FUNC","rule":"unwrap","sum":27076605},{"parent":"FUNC","rule":"unwraped","sum":1},{"parent":"FUNC","rule":"upper","sum":2},{"parent":"FUNC","rule":"using","sum":12},{"parent":"FUNC","rule":"utc_action_created_dttm","sum":1},{"parent":"FUNC","rule":"utf8","sum":2039},{"parent":"FUNC","rule":"uuid","sum":25},{"parent":"FUNC","rule":"values","sum":6},{"parent":"FUNC","rule":"varPop","sum":77},{"parent":"FUNC","rule":"varSamp","sum":85},{"parent":"FUNC","rule":"var_samp","sum":43},{"parent":"FUNC","rule":"variance","sum":66705},{"parent":"FUNC","rule":"variance_population","sum":4},{"parent":"FUNC","rule":"variance_sample","sum":512},{"parent":"FUNC","rule":"varpop","sum":19},{"parent":"FUNC","rule":"version","sum":19},{"parent":"FUNC","rule":"vl","sum":2},{"parent":"FUNC","rule":"void","sum":1},{"parent":"FUNC","rule":"way","sum":41571},{"parent":"FUNC","rule":"weakField","sum":1077},{"parent":"FUNC","rule":"weakfield","sum":979276},{"parent":"FUNC","rule":"windowFunnel","sum":1},{"parent":"FUNC","rule":"worked_rules","sum":3},{"parent":"FUNC","rule":"wrap","sum":1},{"parent":"FUNC","rule":"yesterday","sum":4},{"parent":"FUNC","rule":"yson","sum":42},{"parent":"FUNC","rule":"ytListTables","sum":1},{"parent":"MODULE","rule":"Compress","sum":84348},{"parent":"MODULE","rule":"DATETIME","sum":1129},{"parent":"MODULE","rule":"DATEtime","sum":2},{"parent":"MODULE","rule":"DAteTime","sum":3242},{"parent":"MODULE","rule":"DAtetime","sum":7},{"parent":"MODULE","rule":"DIgest","sum":2},{"parent":"MODULE","rule":"DaTETIME","sum":335},{"parent":"MODULE","rule":"DaTeTime","sum":84},{"parent":"MODULE","rule":"DateTIME","sum":723},{"parent":"MODULE","rule":"DateTIme","sum":4334},{"parent":"MODULE","rule":"DateTime","sum":275526739},{"parent":"MODULE","rule":"DatetIme","sum":367},{"parent":"MODULE","rule":"Datetime","sum":7098291},{"parent":"MODULE","rule":"Decompress","sum":24693},{"parent":"MODULE","rule":"Digest","sum":7702122},{"parent":"MODULE","rule":"HyperScan","sum":2310},{"parent":"MODULE","rule":"Hyperscan","sum":389922},{"parent":"MODULE","rule":"Ip","sum":1351732},{"parent":"MODULE","rule":"JSON","sum":26918},{"parent":"MODULE","rule":"JSon","sum":2},{"parent":"MODULE","rule":"Json","sum":1015827},{"parent":"MODULE","rule":"MATH","sum":31},{"parent":"MODULE","rule":"Math","sum":44852436},{"parent":"MODULE","rule":"PG","sum":198},{"parent":"MODULE","rule":"PIRE","sum":29},{"parent":"MODULE","rule":"Pg","sum":4885},{"parent":"MODULE","rule":"PgAgg","sum":2},{"parent":"MODULE","rule":"PgProc","sum":2},{"parent":"MODULE","rule":"Pire","sum":1913153},{"parent":"MODULE","rule":"Protobuf","sum":269851},{"parent":"MODULE","rule":"RE2","sum":5121},{"parent":"MODULE","rule":"Re2","sum":12179227},{"parent":"MODULE","rule":"STRING","sum":6},{"parent":"MODULE","rule":"String","sum":95380120},{"parent":"MODULE","rule":"TryDecompress","sum":4743},{"parent":"MODULE","rule":"URL","sum":7},{"parent":"MODULE","rule":"Unicode","sum":4909149},{"parent":"MODULE","rule":"Url","sum":23522080},{"parent":"MODULE","rule":"YSON","sum":149},{"parent":"MODULE","rule":"YSon","sum":17},{"parent":"MODULE","rule":"Yson","sum":395219884},{"parent":"MODULE","rule":"dateTime","sum":467},{"parent":"MODULE","rule":"datetime","sum":14180},{"parent":"MODULE","rule":"digest","sum":15},{"parent":"MODULE","rule":"json","sum":8},{"parent":"MODULE","rule":"math","sum":54},{"parent":"MODULE","rule":"pg","sum":1786},{"parent":"MODULE","rule":"pire","sum":36},{"parent":"MODULE","rule":"re2","sum":3195},{"parent":"MODULE","rule":"string","sum":75},{"parent":"MODULE","rule":"url","sum":5},{"parent":"MODULE","rule":"ySoN","sum":1},{"parent":"MODULE","rule":"yson","sum":61},{"parent":"MODULE_FUNC","rule":"Compress::BZip2","sum":2},{"parent":"MODULE_FUNC","rule":"Compress::BlockCodec","sum":6},{"parent":"MODULE_FUNC","rule":"Compress::Brotli","sum":160},{"parent":"MODULE_FUNC","rule":"Compress::Gzip","sum":83366},{"parent":"MODULE_FUNC","rule":"Compress::Lz4","sum":620},{"parent":"MODULE_FUNC","rule":"Compress::Lzma","sum":7},{"parent":"MODULE_FUNC","rule":"Compress::Snappy","sum":7},{"parent":"MODULE_FUNC","rule":"Compress::Zlib","sum":32},{"parent":"MODULE_FUNC","rule":"Compress::Zstd","sum":148},{"parent":"MODULE_FUNC","rule":"DATETIME::Format","sum":10},{"parent":"MODULE_FUNC","rule":"DATETIME::FromMilliseconds","sum":49},{"parent":"MODULE_FUNC","rule":"DATETIME::FromSeconds","sum":1},{"parent":"MODULE_FUNC","rule":"DATETIME::GetYear","sum":18},{"parent":"MODULE_FUNC","rule":"DATETIME::MakeDate","sum":742},{"parent":"MODULE_FUNC","rule":"DATETIME::MakeDatetime","sum":286},{"parent":"MODULE_FUNC","rule":"DATETIME::Parse","sum":9},{"parent":"MODULE_FUNC","rule":"DATETIME::StartOfWeek","sum":14},{"parent":"MODULE_FUNC","rule":"DATEtime::GetMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DATEtime::GetYear","sum":1},{"parent":"MODULE_FUNC","rule":"DAteTime::FromSeconds","sum":1},{"parent":"MODULE_FUNC","rule":"DAteTime::GetDayOfMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DAteTime::MakeDate","sum":581},{"parent":"MODULE_FUNC","rule":"DAteTime::Parse","sum":150},{"parent":"MODULE_FUNC","rule":"DAteTime::StartOfMonth","sum":2500},{"parent":"MODULE_FUNC","rule":"DAteTime::StartOfWeek","sum":1},{"parent":"MODULE_FUNC","rule":"DAteTime::ToDays","sum":8},{"parent":"MODULE_FUNC","rule":"DAtetime::FromSeconds","sum":1},{"parent":"MODULE_FUNC","rule":"DAtetime::MakeDatetime","sum":2},{"parent":"MODULE_FUNC","rule":"DAtetime::ToStartOfWeek","sum":4},{"parent":"MODULE_FUNC","rule":"DIgest::SipHash","sum":2},{"parent":"MODULE_FUNC","rule":"DaTETIME::StartOfWeek","sum":335},{"parent":"MODULE_FUNC","rule":"DaTeTime::GetMonth","sum":4},{"parent":"MODULE_FUNC","rule":"DaTeTime::GetYear","sum":4},{"parent":"MODULE_FUNC","rule":"DaTeTime::IntervalFromDays","sum":1},{"parent":"MODULE_FUNC","rule":"DaTeTime::MakeDate","sum":32},{"parent":"MODULE_FUNC","rule":"DaTeTime::ShiftMonths","sum":42},{"parent":"MODULE_FUNC","rule":"DaTeTime::StartOfMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTIME::IntervalFromDays","sum":723},{"parent":"MODULE_FUNC","rule":"DateTIme::EndOfMonth","sum":3},{"parent":"MODULE_FUNC","rule":"DateTIme::Format","sum":11},{"parent":"MODULE_FUNC","rule":"DateTIme::FromMicroseconds","sum":11},{"parent":"MODULE_FUNC","rule":"DateTIme::FromSeconds","sum":64},{"parent":"MODULE_FUNC","rule":"DateTIme::GetDayOfWeek","sum":44},{"parent":"MODULE_FUNC","rule":"DateTIme::GetHour","sum":2},{"parent":"MODULE_FUNC","rule":"DateTIme::GetMinute","sum":38},{"parent":"MODULE_FUNC","rule":"DateTIme::GetYear","sum":71},{"parent":"MODULE_FUNC","rule":"DateTIme::IntervalFromDays","sum":46},{"parent":"MODULE_FUNC","rule":"DateTIme::MakeDate","sum":3587},{"parent":"MODULE_FUNC","rule":"DateTIme::MakeDatetime","sum":284},{"parent":"MODULE_FUNC","rule":"DateTIme::MakeTimestamp","sum":7},{"parent":"MODULE_FUNC","rule":"DateTIme::MakeTzTimestamp","sum":4},{"parent":"MODULE_FUNC","rule":"DateTIme::Parse","sum":2},{"parent":"MODULE_FUNC","rule":"DateTIme::ParseIso8601","sum":2},{"parent":"MODULE_FUNC","rule":"DateTIme::ShiftMonths","sum":6},{"parent":"MODULE_FUNC","rule":"DateTIme::StartOfMonth","sum":135},{"parent":"MODULE_FUNC","rule":"DateTIme::StartOfWeek","sum":1},{"parent":"MODULE_FUNC","rule":"DateTIme::ToDays","sum":13},{"parent":"MODULE_FUNC","rule":"DateTIme::ToHours","sum":1},{"parent":"MODULE_FUNC","rule":"DateTIme::ToMinutes","sum":1},{"parent":"MODULE_FUNC","rule":"DateTIme::ToSeconds","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::AddTimezone","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Convert","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::CurrentDate","sum":5},{"parent":"MODULE_FUNC","rule":"DateTime::CurrentDateTimeUTC","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::CurrentUtcDate","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Date","sum":4},{"parent":"MODULE_FUNC","rule":"DateTime::DateTime","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::DatetimeStartOfMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::DayOfWeek","sum":7},{"parent":"MODULE_FUNC","rule":"DateTime::Days","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::DiffMinutes","sum":8},{"parent":"MODULE_FUNC","rule":"DateTime::DiffMonths","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Difference","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::EndOf","sum":4},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfDay","sum":381},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfMonth","sum":38771},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfQuarter","sum":306},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfWeek","sum":571},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfYear","sum":144},{"parent":"MODULE_FUNC","rule":"DateTime::EndofMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::EndtOfMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ExtractHour","sum":4},{"parent":"MODULE_FUNC","rule":"DateTime::FROMMilliseconds","sum":14},{"parent":"MODULE_FUNC","rule":"DateTime::FROMSeconds","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::Format","sum":39880424},{"parent":"MODULE_FUNC","rule":"DateTime::FormatTime","sum":6},{"parent":"MODULE_FUNC","rule":"DateTime::FromDays","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::FromMicroSeconds","sum":153},{"parent":"MODULE_FUNC","rule":"DateTime::FromMicroseconds","sum":4675092},{"parent":"MODULE_FUNC","rule":"DateTime::FromMicroseconds64","sum":122},{"parent":"MODULE_FUNC","rule":"DateTime::FromMilliSeconds","sum":7},{"parent":"MODULE_FUNC","rule":"DateTime::FromMilliseconds","sum":9211698},{"parent":"MODULE_FUNC","rule":"DateTime::FromMilliseconds64","sum":958},{"parent":"MODULE_FUNC","rule":"DateTime::FromSecond","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::FromSeconds","sum":15196525},{"parent":"MODULE_FUNC","rule":"DateTime::FromSeconds64","sum":931},{"parent":"MODULE_FUNC","rule":"DateTime::FromString","sum":368},{"parent":"MODULE_FUNC","rule":"DateTime::FromTimeZone","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::Fromat","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::GetDay","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::GetDayOfMonth","sum":595723},{"parent":"MODULE_FUNC","rule":"DateTime::GetDayOfWeek","sum":636422},{"parent":"MODULE_FUNC","rule":"DateTime::GetDayOfWeekName","sum":125820},{"parent":"MODULE_FUNC","rule":"DateTime::GetDayOfYear","sum":44450},{"parent":"MODULE_FUNC","rule":"DateTime::GetHour","sum":1453652},{"parent":"MODULE_FUNC","rule":"DateTime::GetIntervalLength","sum":12},{"parent":"MODULE_FUNC","rule":"DateTime::GetLastDayOfMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::GetMicrosecondOfSecond","sum":1253},{"parent":"MODULE_FUNC","rule":"DateTime::GetMillisecondOfSecond","sum":41},{"parent":"MODULE_FUNC","rule":"DateTime::GetMinute","sum":288991},{"parent":"MODULE_FUNC","rule":"DateTime::GetMonth","sum":704438},{"parent":"MODULE_FUNC","rule":"DateTime::GetMonthName","sum":38740},{"parent":"MODULE_FUNC","rule":"DateTime::GetMonthOfYear","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::GetSecond","sum":86244},{"parent":"MODULE_FUNC","rule":"DateTime::GetTimezoneId","sum":104},{"parent":"MODULE_FUNC","rule":"DateTime::GetTimezoneName","sum":518},{"parent":"MODULE_FUNC","rule":"DateTime::GetWeek","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::GetWeekOfYear","sum":503668},{"parent":"MODULE_FUNC","rule":"DateTime::GetWeekOfYearIso8601","sum":34273},{"parent":"MODULE_FUNC","rule":"DateTime::GetYEAR","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::GetYear","sum":784656},{"parent":"MODULE_FUNC","rule":"DateTime::Interval","sum":33},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromDays","sum":2158},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromHours","sum":4268},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromMicroseconds","sum":9},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromMilliseconds","sum":8},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromMinutes","sum":182},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromSeconds","sum":132},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFROMDays","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFrom","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromDays","sum":15020678},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromHDays","sum":28},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromHours","sum":8954718},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMicroseconds","sum":77537},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMilliseconds","sum":515472},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMinute","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMinutes","sum":4270970},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMonth","sum":9},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMonths","sum":7},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromSeconds","sum":935649},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromYears","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalfromDays","sum":27},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalfromHours","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::LastDayOfMonth","sum":6},{"parent":"MODULE_FUNC","rule":"DateTime::MakeData","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDate","sum":23153151},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDate32","sum":73},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDateTime","sum":246},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDatetime","sum":36716857},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDatetime64","sum":113},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTimestamp","sum":7837490},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTimestamp64","sum":295},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDate","sum":262396},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDateTime","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDatetime","sum":3127159},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDatetime64","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzTimestamp","sum":153334},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzTimestamp64","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::Makedate","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::MilliSeconds","sum":156},{"parent":"MODULE_FUNC","rule":"DateTime::NOW","sum":4},{"parent":"MODULE_FUNC","rule":"DateTime::Now","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::Parce","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Parse","sum":23597513},{"parent":"MODULE_FUNC","rule":"DateTime::Parse64","sum":13},{"parent":"MODULE_FUNC","rule":"DateTime::Parse8601","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ParseDateTime","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ParseDateTimeBestEffort","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::ParseFromString","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ParseHttp","sum":26993},{"parent":"MODULE_FUNC","rule":"DateTime::ParseIso","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ParseIso8601","sum":18536999},{"parent":"MODULE_FUNC","rule":"DateTime::ParseRfc822","sum":1862},{"parent":"MODULE_FUNC","rule":"DateTime::ParseX509","sum":245},{"parent":"MODULE_FUNC","rule":"DateTime::STartOfWeek","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Shift","sum":4},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftDay","sum":51},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftDays","sum":195},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftMinutes","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftMonth","sum":11},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftMonths","sum":3302965},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftQuarters","sum":388068},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftWeek","sum":7},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftWeeks","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftYears","sum":672410},{"parent":"MODULE_FUNC","rule":"DateTime::Split","sum":700021},{"parent":"MODULE_FUNC","rule":"DateTime::StartOf","sum":2338328},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfDay","sum":2651264},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfHour","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfMohth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfMonth","sum":4155079},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfQuarter","sum":554245},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfWeek","sum":2075179},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfYear","sum":942330},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfmonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfweek","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::TimeOfDay","sum":66970},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromMicroSeconds","sum":364},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromMilliSeconds","sum":2515},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromMinutes","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromSeconds","sum":391},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromString","sum":424},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampStartOfMonth","sum":821},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampStartOfWeek","sum":398},{"parent":"MODULE_FUNC","rule":"DateTime::To","sum":5},{"parent":"MODULE_FUNC","rule":"DateTime::ToDate","sum":1435},{"parent":"MODULE_FUNC","rule":"DateTime::ToDateTime","sum":6},{"parent":"MODULE_FUNC","rule":"DateTime::ToDays","sum":3467508},{"parent":"MODULE_FUNC","rule":"DateTime::ToHours","sum":1320055},{"parent":"MODULE_FUNC","rule":"DateTime::ToIsoFormat","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ToMicroseconds","sum":2220231},{"parent":"MODULE_FUNC","rule":"DateTime::ToMilliseconds","sum":5300346},{"parent":"MODULE_FUNC","rule":"DateTime::ToMinutes","sum":859430},{"parent":"MODULE_FUNC","rule":"DateTime::ToMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ToMonths","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ToSeconds","sum":23407059},{"parent":"MODULE_FUNC","rule":"DateTime::ToSeconds64","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Today","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Toseconds","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Trunc","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Update","sum":3596216},{"parent":"MODULE_FUNC","rule":"DateTime::format","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::fromSeconds","sum":15},{"parent":"MODULE_FUNC","rule":"DateTime::parse","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::parseiso8601","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::toDate","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::toMinutes","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::toSeconds","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::toStartOfMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::todate","sum":1},{"parent":"MODULE_FUNC","rule":"DatetIme::IntervalFromDays","sum":367},{"parent":"MODULE_FUNC","rule":"Datetime::CurrentDate","sum":2},{"parent":"MODULE_FUNC","rule":"Datetime::CurrentUtcDatetime","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::DaysInMonth","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::EndOfMonth","sum":182},{"parent":"MODULE_FUNC","rule":"Datetime::EndOfWeek","sum":59},{"parent":"MODULE_FUNC","rule":"Datetime::Format","sum":366091},{"parent":"MODULE_FUNC","rule":"Datetime::FromMicroseconds","sum":36372},{"parent":"MODULE_FUNC","rule":"Datetime::FromMilliseconds","sum":786334},{"parent":"MODULE_FUNC","rule":"Datetime::FromSeconds","sum":567404},{"parent":"MODULE_FUNC","rule":"Datetime::FromSeconds64","sum":24},{"parent":"MODULE_FUNC","rule":"Datetime::GetDay","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::GetDayOfMonth","sum":709},{"parent":"MODULE_FUNC","rule":"Datetime::GetDayOfWeek","sum":12460},{"parent":"MODULE_FUNC","rule":"Datetime::GetDayOfWeekName","sum":838},{"parent":"MODULE_FUNC","rule":"Datetime::GetDayOfYear","sum":59},{"parent":"MODULE_FUNC","rule":"Datetime::GetHour","sum":14645},{"parent":"MODULE_FUNC","rule":"Datetime::GetMinute","sum":13706},{"parent":"MODULE_FUNC","rule":"Datetime::GetMonth","sum":1036},{"parent":"MODULE_FUNC","rule":"Datetime::GetMonthName","sum":344},{"parent":"MODULE_FUNC","rule":"Datetime::GetWeekOfYear","sum":2701},{"parent":"MODULE_FUNC","rule":"Datetime::GetWeekOfYearIso8601","sum":3},{"parent":"MODULE_FUNC","rule":"Datetime::GetYear","sum":2720},{"parent":"MODULE_FUNC","rule":"Datetime::Interval","sum":9},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFROMDays","sum":6},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromDays","sum":372229},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromHours","sum":265903},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromMicroseconds","sum":194},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromMilliseconds","sum":91},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromMinutes","sum":49879},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromSeconds","sum":9623},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDate","sum":678374},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDate32","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDateTime","sum":2},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDatetime","sum":920770},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDatetime64","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTimestamp","sum":417045},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTzDate","sum":2307},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTzDatetime","sum":23894},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTzTimestamp","sum":33282},{"parent":"MODULE_FUNC","rule":"Datetime::Makedate","sum":37},{"parent":"MODULE_FUNC","rule":"Datetime::Parse","sum":138225},{"parent":"MODULE_FUNC","rule":"Datetime::ParseIso8601","sum":257650},{"parent":"MODULE_FUNC","rule":"Datetime::ShiftMonths","sum":25927},{"parent":"MODULE_FUNC","rule":"Datetime::ShiftQuarters","sum":543},{"parent":"MODULE_FUNC","rule":"Datetime::ShiftYears","sum":313},{"parent":"MODULE_FUNC","rule":"Datetime::Split","sum":207},{"parent":"MODULE_FUNC","rule":"Datetime::StarOfWeek","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::StartOf","sum":64223},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfDay","sum":22765},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfMonth","sum":74579},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfQuarter","sum":4372},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfWeek","sum":23019},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfYear","sum":11647},{"parent":"MODULE_FUNC","rule":"Datetime::TimeOfDay","sum":126},{"parent":"MODULE_FUNC","rule":"Datetime::ToDatetime","sum":12},{"parent":"MODULE_FUNC","rule":"Datetime::ToDays","sum":141482},{"parent":"MODULE_FUNC","rule":"Datetime::ToHours","sum":22945},{"parent":"MODULE_FUNC","rule":"Datetime::ToMicroseconds","sum":582},{"parent":"MODULE_FUNC","rule":"Datetime::ToMilliseconds","sum":121842},{"parent":"MODULE_FUNC","rule":"Datetime::ToMinutes","sum":45209},{"parent":"MODULE_FUNC","rule":"Datetime::ToSeconds","sum":1533763},{"parent":"MODULE_FUNC","rule":"Datetime::Update","sum":29519},{"parent":"MODULE_FUNC","rule":"Datetime::startOfmonth","sum":1},{"parent":"MODULE_FUNC","rule":"Decompress::BZip2","sum":518},{"parent":"MODULE_FUNC","rule":"Decompress::Brotli","sum":7961},{"parent":"MODULE_FUNC","rule":"Decompress::Gzip","sum":3922},{"parent":"MODULE_FUNC","rule":"Decompress::Lz4","sum":902},{"parent":"MODULE_FUNC","rule":"Decompress::Snappy","sum":462},{"parent":"MODULE_FUNC","rule":"Decompress::Zlib","sum":10899},{"parent":"MODULE_FUNC","rule":"Decompress::Zstd","sum":29},{"parent":"MODULE_FUNC","rule":"Digest::Argon2","sum":48547},{"parent":"MODULE_FUNC","rule":"Digest::Blake2B","sum":4535},{"parent":"MODULE_FUNC","rule":"Digest::CityHash","sum":1224275},{"parent":"MODULE_FUNC","rule":"Digest::CityHash128","sum":17823},{"parent":"MODULE_FUNC","rule":"Digest::Crc32c","sum":77315},{"parent":"MODULE_FUNC","rule":"Digest::Crc64","sum":140567},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint","sum":69786},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint128","sum":26},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint2","sum":166218},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint32","sum":208},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint64","sum":1051198},{"parent":"MODULE_FUNC","rule":"Digest::Fnv32","sum":1747},{"parent":"MODULE_FUNC","rule":"Digest::Fnv64","sum":261123},{"parent":"MODULE_FUNC","rule":"Digest::IntHash64","sum":18293},{"parent":"MODULE_FUNC","rule":"Digest::MD5Hex","sum":5},{"parent":"MODULE_FUNC","rule":"Digest::Md5","sum":2},{"parent":"MODULE_FUNC","rule":"Digest::Md5HalfMix","sum":427803},{"parent":"MODULE_FUNC","rule":"Digest::Md5Hex","sum":567611},{"parent":"MODULE_FUNC","rule":"Digest::Md5Raw","sum":15724},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash","sum":2418430},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash2A","sum":2499},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash2A32","sum":840},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash32","sum":256424},{"parent":"MODULE_FUNC","rule":"Digest::MurMurhash","sum":2},{"parent":"MODULE_FUNC","rule":"Digest::NimericHash","sum":3},{"parent":"MODULE_FUNC","rule":"Digest::NumericHash","sum":274144},{"parent":"MODULE_FUNC","rule":"Digest::Sha1","sum":42460},{"parent":"MODULE_FUNC","rule":"Digest::Sha256","sum":399343},{"parent":"MODULE_FUNC","rule":"Digest::SipHash","sum":132347},{"parent":"MODULE_FUNC","rule":"Digest::SuperFastHash","sum":34802},{"parent":"MODULE_FUNC","rule":"Digest::XXH3","sum":48000},{"parent":"MODULE_FUNC","rule":"Digest::XXH3_128","sum":19},{"parent":"MODULE_FUNC","rule":"Digest::murmurhash","sum":3},{"parent":"MODULE_FUNC","rule":"HyperScan::BacktrackingGrep","sum":1},{"parent":"MODULE_FUNC","rule":"HyperScan::Grep","sum":2303},{"parent":"MODULE_FUNC","rule":"HyperScan::Match","sum":6},{"parent":"MODULE_FUNC","rule":"Hyperscan::BacktrackingGrep","sum":48609},{"parent":"MODULE_FUNC","rule":"Hyperscan::BacktrackingMatch","sum":128},{"parent":"MODULE_FUNC","rule":"Hyperscan::Capture","sum":5639},{"parent":"MODULE_FUNC","rule":"Hyperscan::Grep","sum":145100},{"parent":"MODULE_FUNC","rule":"Hyperscan::Match","sum":52838},{"parent":"MODULE_FUNC","rule":"Hyperscan::MultiGrep","sum":64},{"parent":"MODULE_FUNC","rule":"Hyperscan::MultiMatch","sum":40637},{"parent":"MODULE_FUNC","rule":"Hyperscan::Replace","sum":96907},{"parent":"MODULE_FUNC","rule":"Ip::ConvertToIPv6","sum":44916},{"parent":"MODULE_FUNC","rule":"Ip::FromString","sum":391207},{"parent":"MODULE_FUNC","rule":"Ip::GetSubnet","sum":135473},{"parent":"MODULE_FUNC","rule":"Ip::GetSubnetByMask","sum":4},{"parent":"MODULE_FUNC","rule":"Ip::IsEmbeddedIPv4","sum":6948},{"parent":"MODULE_FUNC","rule":"Ip::IsIPv4","sum":136060},{"parent":"MODULE_FUNC","rule":"Ip::IsIPv6","sum":118500},{"parent":"MODULE_FUNC","rule":"Ip::SubnetFromString","sum":549},{"parent":"MODULE_FUNC","rule":"Ip::SubnetMatch","sum":502},{"parent":"MODULE_FUNC","rule":"Ip::ToFixedIPv6String","sum":3821},{"parent":"MODULE_FUNC","rule":"Ip::ToString","sum":513752},{"parent":"MODULE_FUNC","rule":"JSON::ConvertToDouble","sum":19612},{"parent":"MODULE_FUNC","rule":"JSON::ConvertToInt64","sum":3261},{"parent":"MODULE_FUNC","rule":"JSON::ConvertToList","sum":15},{"parent":"MODULE_FUNC","rule":"JSON::ConvertToString","sum":133},{"parent":"MODULE_FUNC","rule":"JSON::ConvertToStringList","sum":4},{"parent":"MODULE_FUNC","rule":"JSON::From","sum":5},{"parent":"MODULE_FUNC","rule":"JSON::LookupBool","sum":5},{"parent":"MODULE_FUNC","rule":"JSON::LookupDouble","sum":10},{"parent":"MODULE_FUNC","rule":"JSON::LookupInt64","sum":8},{"parent":"MODULE_FUNC","rule":"JSON::LookupString","sum":254},{"parent":"MODULE_FUNC","rule":"JSON::PARSE","sum":2},{"parent":"MODULE_FUNC","rule":"JSON::Parse","sum":3609},{"parent":"MODULE_FUNC","rule":"JSon::From","sum":2},{"parent":"MODULE_FUNC","rule":"Json::Attributes","sum":2},{"parent":"MODULE_FUNC","rule":"Json::Contains","sum":1},{"parent":"MODULE_FUNC","rule":"Json::ConvertToBool","sum":5},{"parent":"MODULE_FUNC","rule":"Json::ConvertToDict","sum":114},{"parent":"MODULE_FUNC","rule":"Json::ConvertToDouble","sum":1},{"parent":"MODULE_FUNC","rule":"Json::ConvertToInt64","sum":1},{"parent":"MODULE_FUNC","rule":"Json::ConvertToList","sum":108},{"parent":"MODULE_FUNC","rule":"Json::ConvertToString","sum":160},{"parent":"MODULE_FUNC","rule":"Json::ConvertToStringDict","sum":5},{"parent":"MODULE_FUNC","rule":"Json::ConvertToStringList","sum":19},{"parent":"MODULE_FUNC","rule":"Json::From","sum":3874},{"parent":"MODULE_FUNC","rule":"Json::FromString","sum":16},{"parent":"MODULE_FUNC","rule":"Json::GetField","sum":21},{"parent":"MODULE_FUNC","rule":"Json::GetHash","sum":1},{"parent":"MODULE_FUNC","rule":"Json::GetLength","sum":19},{"parent":"MODULE_FUNC","rule":"Json::Lookup","sum":1},{"parent":"MODULE_FUNC","rule":"Json::LookupInt64","sum":824343},{"parent":"MODULE_FUNC","rule":"Json::LookupString","sum":53},{"parent":"MODULE_FUNC","rule":"Json::Options","sum":852},{"parent":"MODULE_FUNC","rule":"Json::Parse","sum":182381},{"parent":"MODULE_FUNC","rule":"Json::ParseJson","sum":211},{"parent":"MODULE_FUNC","rule":"Json::Serialize","sum":1558},{"parent":"MODULE_FUNC","rule":"Json::SerializeJson","sum":919},{"parent":"MODULE_FUNC","rule":"Json::SerializePretty","sum":1124},{"parent":"MODULE_FUNC","rule":"Json::SerializeText","sum":3},{"parent":"MODULE_FUNC","rule":"Json::YPath","sum":20},{"parent":"MODULE_FUNC","rule":"Json::YPathDict","sum":14},{"parent":"MODULE_FUNC","rule":"Json::YPathString","sum":1},{"parent":"MODULE_FUNC","rule":"MATH::ABS","sum":1},{"parent":"MODULE_FUNC","rule":"MATH::Cos","sum":4},{"parent":"MODULE_FUNC","rule":"MATH::EXP","sum":1},{"parent":"MODULE_FUNC","rule":"MATH::Log","sum":4},{"parent":"MODULE_FUNC","rule":"MATH::NearbyINT","sum":1},{"parent":"MODULE_FUNC","rule":"MATH::NearbyInt","sum":1},{"parent":"MODULE_FUNC","rule":"MATH::ROUND","sum":19},{"parent":"MODULE_FUNC","rule":"Math::Aabs","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Abs","sum":477598},{"parent":"MODULE_FUNC","rule":"Math::Acos","sum":13299},{"parent":"MODULE_FUNC","rule":"Math::Asin","sum":11228},{"parent":"MODULE_FUNC","rule":"Math::Asinh","sum":4},{"parent":"MODULE_FUNC","rule":"Math::Atan","sum":7909},{"parent":"MODULE_FUNC","rule":"Math::Atan2","sum":13019},{"parent":"MODULE_FUNC","rule":"Math::Cbrt","sum":492},{"parent":"MODULE_FUNC","rule":"Math::Ceil","sum":1246578},{"parent":"MODULE_FUNC","rule":"Math::Cos","sum":96598},{"parent":"MODULE_FUNC","rule":"Math::Cosh","sum":5},{"parent":"MODULE_FUNC","rule":"Math::Crbt","sum":1},{"parent":"MODULE_FUNC","rule":"Math::E","sum":9607},{"parent":"MODULE_FUNC","rule":"Math::EXP","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Eps","sum":179},{"parent":"MODULE_FUNC","rule":"Math::Erf","sum":2569},{"parent":"MODULE_FUNC","rule":"Math::ErfInv","sum":42},{"parent":"MODULE_FUNC","rule":"Math::ErfcInv","sum":6},{"parent":"MODULE_FUNC","rule":"Math::Exp","sum":557620},{"parent":"MODULE_FUNC","rule":"Math::Exp2","sum":2024},{"parent":"MODULE_FUNC","rule":"Math::Fabs","sum":144459},{"parent":"MODULE_FUNC","rule":"Math::Floor","sum":327868},{"parent":"MODULE_FUNC","rule":"Math::Flor","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Fmod","sum":9},{"parent":"MODULE_FUNC","rule":"Math::FuzzyEquals","sum":19429},{"parent":"MODULE_FUNC","rule":"Math::Hypot","sum":18779},{"parent":"MODULE_FUNC","rule":"Math::IsFinite","sum":186397},{"parent":"MODULE_FUNC","rule":"Math::IsInf","sum":76878},{"parent":"MODULE_FUNC","rule":"Math::IsNaN","sum":250281},{"parent":"MODULE_FUNC","rule":"Math::IsNan","sum":6},{"parent":"MODULE_FUNC","rule":"Math::Ldexp","sum":47},{"parent":"MODULE_FUNC","rule":"Math::Lgamma","sum":4},{"parent":"MODULE_FUNC","rule":"Math::Log","sum":822843},{"parent":"MODULE_FUNC","rule":"Math::Log10","sum":153177},{"parent":"MODULE_FUNC","rule":"Math::Log2","sum":197640},{"parent":"MODULE_FUNC","rule":"Math::Max","sum":3},{"parent":"MODULE_FUNC","rule":"Math::Min","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Mod","sum":66515},{"parent":"MODULE_FUNC","rule":"Math::NearbyInt","sum":426816},{"parent":"MODULE_FUNC","rule":"Math::Pi","sum":74410},{"parent":"MODULE_FUNC","rule":"Math::Pow","sum":1331521},{"parent":"MODULE_FUNC","rule":"Math::Power","sum":6},{"parent":"MODULE_FUNC","rule":"Math::ROUND","sum":5},{"parent":"MODULE_FUNC","rule":"Math::Rem","sum":2276},{"parent":"MODULE_FUNC","rule":"Math::Remainder","sum":163},{"parent":"MODULE_FUNC","rule":"Math::Rint","sum":20365},{"parent":"MODULE_FUNC","rule":"Math::Round","sum":36720906},{"parent":"MODULE_FUNC","rule":"Math::RoundDownward","sum":138123},{"parent":"MODULE_FUNC","rule":"Math::RoundToNearest","sum":76444},{"parent":"MODULE_FUNC","rule":"Math::RoundTowardZero","sum":896},{"parent":"MODULE_FUNC","rule":"Math::RoundUpward","sum":211425},{"parent":"MODULE_FUNC","rule":"Math::Sigmoid","sum":279198},{"parent":"MODULE_FUNC","rule":"Math::Sin","sum":82019},{"parent":"MODULE_FUNC","rule":"Math::Sinh","sum":6030},{"parent":"MODULE_FUNC","rule":"Math::Sqrt","sum":612531},{"parent":"MODULE_FUNC","rule":"Math::Tan","sum":4988},{"parent":"MODULE_FUNC","rule":"Math::Tanh","sum":4957},{"parent":"MODULE_FUNC","rule":"Math::Tgamma","sum":60},{"parent":"MODULE_FUNC","rule":"Math::Trunc","sum":156094},{"parent":"MODULE_FUNC","rule":"Math::abs","sum":2},{"parent":"MODULE_FUNC","rule":"Math::ceil","sum":8},{"parent":"MODULE_FUNC","rule":"Math::cos","sum":2},{"parent":"MODULE_FUNC","rule":"Math::exp","sum":6},{"parent":"MODULE_FUNC","rule":"Math::floor","sum":3},{"parent":"MODULE_FUNC","rule":"Math::isnan","sum":1},{"parent":"MODULE_FUNC","rule":"Math::round","sum":59},{"parent":"MODULE_FUNC","rule":"Math::sin","sum":2},{"parent":"MODULE_FUNC","rule":"Math::sqrt","sum":3},{"parent":"MODULE_FUNC","rule":"PG::ARRAY_AGG","sum":7},{"parent":"MODULE_FUNC","rule":"PG::STRING_AGG","sum":37},{"parent":"MODULE_FUNC","rule":"PG::generate_series","sum":7},{"parent":"MODULE_FUNC","rule":"PG::json_object_keys","sum":19},{"parent":"MODULE_FUNC","rule":"PG::jsonb_object_keys","sum":18},{"parent":"MODULE_FUNC","rule":"PG::string_agg","sum":101},{"parent":"MODULE_FUNC","rule":"PG::to_hex","sum":9},{"parent":"MODULE_FUNC","rule":"PIRE::Capture","sum":7},{"parent":"MODULE_FUNC","rule":"PIRE::Grep","sum":22},{"parent":"MODULE_FUNC","rule":"Pg::ARRAY_AGG","sum":11},{"parent":"MODULE_FUNC","rule":"Pg::Array_Agg","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::CONCAT","sum":12},{"parent":"MODULE_FUNC","rule":"Pg::Date","sum":3},{"parent":"MODULE_FUNC","rule":"Pg::GENERATE_SERIES","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::SPLIT_PART","sum":5},{"parent":"MODULE_FUNC","rule":"Pg::STRING_AGG","sum":50},{"parent":"MODULE_FUNC","rule":"Pg::ST_Area","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::ST_AsEWKB","sum":57},{"parent":"MODULE_FUNC","rule":"Pg::ST_AsEWKT","sum":15},{"parent":"MODULE_FUNC","rule":"Pg::ST_AsGeoJSON","sum":7},{"parent":"MODULE_FUNC","rule":"Pg::ST_AsSVG","sum":3},{"parent":"MODULE_FUNC","rule":"Pg::ST_AsText","sum":57},{"parent":"MODULE_FUNC","rule":"Pg::ST_Boundary","sum":43},{"parent":"MODULE_FUNC","rule":"Pg::ST_Centroid","sum":14},{"parent":"MODULE_FUNC","rule":"Pg::ST_ClosestPoint","sum":37},{"parent":"MODULE_FUNC","rule":"Pg::ST_Contains","sum":3},{"parent":"MODULE_FUNC","rule":"Pg::ST_Distance","sum":13},{"parent":"MODULE_FUNC","rule":"Pg::ST_GeoHash","sum":15},{"parent":"MODULE_FUNC","rule":"Pg::ST_GeomFromEWKB","sum":86},{"parent":"MODULE_FUNC","rule":"Pg::ST_GeomFromGeoHash","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::ST_GeomFromText","sum":65},{"parent":"MODULE_FUNC","rule":"Pg::ST_GeomFromWKB","sum":7},{"parent":"MODULE_FUNC","rule":"Pg::ST_Intersects","sum":13},{"parent":"MODULE_FUNC","rule":"Pg::ST_IsValid","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::ST_MakePoint","sum":7},{"parent":"MODULE_FUNC","rule":"Pg::ST_MakeValid","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::ST_Point","sum":6},{"parent":"MODULE_FUNC","rule":"Pg::ST_PointOnSurface","sum":17},{"parent":"MODULE_FUNC","rule":"Pg::ST_Scale","sum":3},{"parent":"MODULE_FUNC","rule":"Pg::ST_SetSRID","sum":6},{"parent":"MODULE_FUNC","rule":"Pg::ST_Transform","sum":183},{"parent":"MODULE_FUNC","rule":"Pg::ST_X","sum":72},{"parent":"MODULE_FUNC","rule":"Pg::ST_Y","sum":66},{"parent":"MODULE_FUNC","rule":"Pg::St_geomfromewkb","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::String_Agg","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::age","sum":8},{"parent":"MODULE_FUNC","rule":"Pg::array_agg","sum":6},{"parent":"MODULE_FUNC","rule":"Pg::array_length","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::bit_length","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::center","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::concat","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::date_generate_series","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::date_part","sum":8},{"parent":"MODULE_FUNC","rule":"Pg::date_trunc","sum":11},{"parent":"MODULE_FUNC","rule":"Pg::extract","sum":136},{"parent":"MODULE_FUNC","rule":"Pg::generate_series","sum":1511},{"parent":"MODULE_FUNC","rule":"Pg::json_object_agg","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::lower","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::max","sum":364},{"parent":"MODULE_FUNC","rule":"Pg::sind","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::split_part","sum":20},{"parent":"MODULE_FUNC","rule":"Pg::st_asgeojson","sum":1},{"parent":"MODULE_FUNC","rule":"Pg::st_astext","sum":6},{"parent":"MODULE_FUNC","rule":"Pg::st_collect","sum":8},{"parent":"MODULE_FUNC","rule":"Pg::st_geomfromewkb","sum":22},{"parent":"MODULE_FUNC","rule":"Pg::st_intersects","sum":9},{"parent":"MODULE_FUNC","rule":"Pg::st_transform","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::st_union","sum":8},{"parent":"MODULE_FUNC","rule":"Pg::string_Agg","sum":2},{"parent":"MODULE_FUNC","rule":"Pg::string_agg","sum":1768},{"parent":"MODULE_FUNC","rule":"Pg::to_char","sum":18},{"parent":"MODULE_FUNC","rule":"Pg::to_timestamp","sum":74},{"parent":"MODULE_FUNC","rule":"Pg::version","sum":3},{"parent":"MODULE_FUNC","rule":"PgAgg::string_agg","sum":2},{"parent":"MODULE_FUNC","rule":"PgProc::upper","sum":2},{"parent":"MODULE_FUNC","rule":"Pire::Capture","sum":529324},{"parent":"MODULE_FUNC","rule":"Pire::Grep","sum":144108},{"parent":"MODULE_FUNC","rule":"Pire::Match","sum":234334},{"parent":"MODULE_FUNC","rule":"Pire::MultiGrep","sum":675},{"parent":"MODULE_FUNC","rule":"Pire::MultiMatch","sum":153},{"parent":"MODULE_FUNC","rule":"Pire::Replace","sum":1004559},{"parent":"MODULE_FUNC","rule":"Protobuf::Parse","sum":21023},{"parent":"MODULE_FUNC","rule":"Protobuf::Serialize","sum":103687},{"parent":"MODULE_FUNC","rule":"Protobuf::TryParse","sum":145141},{"parent":"MODULE_FUNC","rule":"RE2::Capture","sum":4027},{"parent":"MODULE_FUNC","rule":"RE2::Count","sum":328},{"parent":"MODULE_FUNC","rule":"RE2::FindAndConsume","sum":31},{"parent":"MODULE_FUNC","rule":"RE2::Grep","sum":66},{"parent":"MODULE_FUNC","rule":"RE2::Match","sum":545},{"parent":"MODULE_FUNC","rule":"RE2::Replace","sum":124},{"parent":"MODULE_FUNC","rule":"Re2::Capture","sum":4402477},{"parent":"MODULE_FUNC","rule":"Re2::Catch","sum":1},{"parent":"MODULE_FUNC","rule":"Re2::Compile","sum":4},{"parent":"MODULE_FUNC","rule":"Re2::Count","sum":172471},{"parent":"MODULE_FUNC","rule":"Re2::FindAll","sum":2},{"parent":"MODULE_FUNC","rule":"Re2::FindAllSubmatch","sum":2},{"parent":"MODULE_FUNC","rule":"Re2::FindAndConsume","sum":389517},{"parent":"MODULE_FUNC","rule":"Re2::Grep","sum":651844},{"parent":"MODULE_FUNC","rule":"Re2::Match","sum":1685101},{"parent":"MODULE_FUNC","rule":"Re2::Options","sum":248654},{"parent":"MODULE_FUNC","rule":"Re2::Replace","sum":4629139},{"parent":"MODULE_FUNC","rule":"Re2::ReplaceAll","sum":15},{"parent":"MODULE_FUNC","rule":"STRING::AsciiToLower","sum":1},{"parent":"MODULE_FUNC","rule":"STRING::Contains","sum":2},{"parent":"MODULE_FUNC","rule":"STRING::RemoveAll","sum":1},{"parent":"MODULE_FUNC","rule":"STRING::SplitToList","sum":2},{"parent":"MODULE_FUNC","rule":"String::ASciiToLower","sum":2},{"parent":"MODULE_FUNC","rule":"String::AsciiToLower","sum":4121260},{"parent":"MODULE_FUNC","rule":"String::AsciiToTitle","sum":95297},{"parent":"MODULE_FUNC","rule":"String::AsciiToUpper","sum":549100},{"parent":"MODULE_FUNC","rule":"String::AsciiTolower","sum":4},{"parent":"MODULE_FUNC","rule":"String::Base32Decode","sum":274},{"parent":"MODULE_FUNC","rule":"String::Base32Encode","sum":194},{"parent":"MODULE_FUNC","rule":"String::Base32StrictDecode","sum":56},{"parent":"MODULE_FUNC","rule":"String::Base64Decode","sum":394448},{"parent":"MODULE_FUNC","rule":"String::Base64Encode","sum":112358},{"parent":"MODULE_FUNC","rule":"String::Base64EncodeUrl","sum":5714},{"parent":"MODULE_FUNC","rule":"String::Base64StrictDecode","sum":96599},{"parent":"MODULE_FUNC","rule":"String::Bin","sum":510},{"parent":"MODULE_FUNC","rule":"String::BinText","sum":121},{"parent":"MODULE_FUNC","rule":"String::CgiEscape","sum":71141},{"parent":"MODULE_FUNC","rule":"String::CgiUnescape","sum":24008},{"parent":"MODULE_FUNC","rule":"String::ColapseText","sum":4},{"parent":"MODULE_FUNC","rule":"String::Collapse","sum":197504},{"parent":"MODULE_FUNC","rule":"String::CollapseText","sum":200340},{"parent":"MODULE_FUNC","rule":"String::Contains","sum":6167479},{"parent":"MODULE_FUNC","rule":"String::DecodeHtml","sum":3005},{"parent":"MODULE_FUNC","rule":"String::EncodeHtml","sum":416},{"parent":"MODULE_FUNC","rule":"String::EndsWith","sum":539060},{"parent":"MODULE_FUNC","rule":"String::EndsWithIgnoreCase","sum":36079},{"parent":"MODULE_FUNC","rule":"String::EscapeC","sum":56141},{"parent":"MODULE_FUNC","rule":"String::Find","sum":654309},{"parent":"MODULE_FUNC","rule":"String::From","sum":2},{"parent":"MODULE_FUNC","rule":"String::FromByteList","sum":1048344},{"parent":"MODULE_FUNC","rule":"String::HasPrefix","sum":21305},{"parent":"MODULE_FUNC","rule":"String::HasPrefixIgnoreCase","sum":49},{"parent":"MODULE_FUNC","rule":"String::HasSuffix","sum":4930},{"parent":"MODULE_FUNC","rule":"String::HasSuffixIgnoreCase","sum":28771},{"parent":"MODULE_FUNC","rule":"String::Hex","sum":376508},{"parent":"MODULE_FUNC","rule":"String::HexDecode","sum":165567},{"parent":"MODULE_FUNC","rule":"String::HexEncode","sum":194436},{"parent":"MODULE_FUNC","rule":"String::HexText","sum":79392},{"parent":"MODULE_FUNC","rule":"String::HumanReadableBytes","sum":244},{"parent":"MODULE_FUNC","rule":"String::HumanReadableDuration","sum":1122121},{"parent":"MODULE_FUNC","rule":"String::HumanReadableQuantity","sum":342},{"parent":"MODULE_FUNC","rule":"String::IsAscii","sum":13981},{"parent":"MODULE_FUNC","rule":"String::IsAsciiAlnum","sum":1001},{"parent":"MODULE_FUNC","rule":"String::IsAsciiAlpha","sum":383},{"parent":"MODULE_FUNC","rule":"String::IsAsciiDigit","sum":8442},{"parent":"MODULE_FUNC","rule":"String::IsAsciiHex","sum":19443},{"parent":"MODULE_FUNC","rule":"String::IsAsciiLower","sum":22},{"parent":"MODULE_FUNC","rule":"String::IsAsciiSpace","sum":13},{"parent":"MODULE_FUNC","rule":"String::IsAsciiUpper","sum":355},{"parent":"MODULE_FUNC","rule":"String::Join","sum":2},{"parent":"MODULE_FUNC","rule":"String::JoinFROMList","sum":32020},{"parent":"MODULE_FUNC","rule":"String::JoinFromList","sum":14003251},{"parent":"MODULE_FUNC","rule":"String::LeftPad","sum":65910},{"parent":"MODULE_FUNC","rule":"String::Length","sum":2},{"parent":"MODULE_FUNC","rule":"String::LevenshteinDistance","sum":4},{"parent":"MODULE_FUNC","rule":"String::LevensteinDistance","sum":11690},{"parent":"MODULE_FUNC","rule":"String::Prec","sum":1849},{"parent":"MODULE_FUNC","rule":"String::RaplaceAll","sum":3},{"parent":"MODULE_FUNC","rule":"String::RemoveAll","sum":1248314},{"parent":"MODULE_FUNC","rule":"String::RemoveFirst","sum":640987},{"parent":"MODULE_FUNC","rule":"String::RemoveLast","sum":556385},{"parent":"MODULE_FUNC","rule":"String::Replace","sum":11},{"parent":"MODULE_FUNC","rule":"String::ReplaceALL","sum":3},{"parent":"MODULE_FUNC","rule":"String::ReplaceAll","sum":15647494},{"parent":"MODULE_FUNC","rule":"String::ReplaceFirst","sum":1364617},{"parent":"MODULE_FUNC","rule":"String::ReplaceFirstStartsWith","sum":1},{"parent":"MODULE_FUNC","rule":"String::ReplaceLast","sum":173452},{"parent":"MODULE_FUNC","rule":"String::ReplaceRegex","sum":1},{"parent":"MODULE_FUNC","rule":"String::Reverse","sum":118761},{"parent":"MODULE_FUNC","rule":"String::ReverseFind","sum":38847},{"parent":"MODULE_FUNC","rule":"String::RightPad","sum":372890},{"parent":"MODULE_FUNC","rule":"String::SBin","sum":7},{"parent":"MODULE_FUNC","rule":"String::SHex","sum":6281},{"parent":"MODULE_FUNC","rule":"String::Split","sum":10},{"parent":"MODULE_FUNC","rule":"String::SplitToList","sum":31793998},{"parent":"MODULE_FUNC","rule":"String::SplitToSet","sum":12},{"parent":"MODULE_FUNC","rule":"String::StartWith","sum":1},{"parent":"MODULE_FUNC","rule":"String::StartsWith","sum":3456492},{"parent":"MODULE_FUNC","rule":"String::StartsWithIgnoreCase","sum":56347},{"parent":"MODULE_FUNC","rule":"String::Strip","sum":3178205},{"parent":"MODULE_FUNC","rule":"String::Substring","sum":302275},{"parent":"MODULE_FUNC","rule":"String::ToByteList","sum":140330},{"parent":"MODULE_FUNC","rule":"String::ToLower","sum":5256794},{"parent":"MODULE_FUNC","rule":"String::ToLowerCase","sum":1},{"parent":"MODULE_FUNC","rule":"String::ToTitle","sum":34547},{"parent":"MODULE_FUNC","rule":"String::ToUpper","sum":140634},{"parent":"MODULE_FUNC","rule":"String::Trim","sum":3},{"parent":"MODULE_FUNC","rule":"String::UnescapeC","sum":326609},{"parent":"MODULE_FUNC","rule":"String::contains","sum":3},{"parent":"MODULE_FUNC","rule":"String::splittolist","sum":1},{"parent":"MODULE_FUNC","rule":"String::tolower","sum":2},{"parent":"MODULE_FUNC","rule":"TryDecompress::BZip2","sum":4},{"parent":"MODULE_FUNC","rule":"TryDecompress::BlockCodec","sum":1},{"parent":"MODULE_FUNC","rule":"TryDecompress::Brotli","sum":11},{"parent":"MODULE_FUNC","rule":"TryDecompress::Gzip","sum":1015},{"parent":"MODULE_FUNC","rule":"TryDecompress::Lz4","sum":124},{"parent":"MODULE_FUNC","rule":"TryDecompress::Lzma","sum":4},{"parent":"MODULE_FUNC","rule":"TryDecompress::Snappy","sum":10},{"parent":"MODULE_FUNC","rule":"TryDecompress::Xz","sum":4},{"parent":"MODULE_FUNC","rule":"TryDecompress::Zlib","sum":3552},{"parent":"MODULE_FUNC","rule":"TryDecompress::Zstd","sum":18},{"parent":"MODULE_FUNC","rule":"URL::Decode","sum":5},{"parent":"MODULE_FUNC","rule":"URL::GetHost","sum":2},{"parent":"MODULE_FUNC","rule":"Unicode::FInd","sum":4},{"parent":"MODULE_FUNC","rule":"Unicode::Find","sum":153146},{"parent":"MODULE_FUNC","rule":"Unicode::Fold","sum":29117},{"parent":"MODULE_FUNC","rule":"Unicode::FromCodePointList","sum":120420},{"parent":"MODULE_FUNC","rule":"Unicode::GetLength","sum":594623},{"parent":"MODULE_FUNC","rule":"Unicode::GetLengthn","sum":1},{"parent":"MODULE_FUNC","rule":"Unicode::IsAlnum","sum":551},{"parent":"MODULE_FUNC","rule":"Unicode::IsAlpha","sum":460},{"parent":"MODULE_FUNC","rule":"Unicode::IsAscii","sum":688},{"parent":"MODULE_FUNC","rule":"Unicode::IsDigit","sum":8984},{"parent":"MODULE_FUNC","rule":"Unicode::IsHex","sum":4},{"parent":"MODULE_FUNC","rule":"Unicode::IsLower","sum":96},{"parent":"MODULE_FUNC","rule":"Unicode::IsSpace","sum":18},{"parent":"MODULE_FUNC","rule":"Unicode::IsUnicodeSet","sum":440},{"parent":"MODULE_FUNC","rule":"Unicode::IsUpper","sum":1816},{"parent":"MODULE_FUNC","rule":"Unicode::IsUtf","sum":670446},{"parent":"MODULE_FUNC","rule":"Unicode::JoinFromList","sum":202740},{"parent":"MODULE_FUNC","rule":"Unicode::Length","sum":2},{"parent":"MODULE_FUNC","rule":"Unicode::LevensteinDistance","sum":39597},{"parent":"MODULE_FUNC","rule":"Unicode::Normalize","sum":110601},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFC","sum":527},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFD","sum":36},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFKC","sum":6965},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFKD","sum":1729},{"parent":"MODULE_FUNC","rule":"Unicode::RFind","sum":73240},{"parent":"MODULE_FUNC","rule":"Unicode::RemoveAll","sum":139022},{"parent":"MODULE_FUNC","rule":"Unicode::RemoveFirst","sum":7747},{"parent":"MODULE_FUNC","rule":"Unicode::RemoveLast","sum":7785},{"parent":"MODULE_FUNC","rule":"Unicode::ReplaceAll","sum":269427},{"parent":"MODULE_FUNC","rule":"Unicode::ReplaceFirst","sum":1750},{"parent":"MODULE_FUNC","rule":"Unicode::ReplaceLast","sum":317},{"parent":"MODULE_FUNC","rule":"Unicode::Reverse","sum":52328},{"parent":"MODULE_FUNC","rule":"Unicode::SUBSTRING","sum":2},{"parent":"MODULE_FUNC","rule":"Unicode::SplitToList","sum":180911},{"parent":"MODULE_FUNC","rule":"Unicode::Strip","sum":64726},{"parent":"MODULE_FUNC","rule":"Unicode::Substring","sum":601464},{"parent":"MODULE_FUNC","rule":"Unicode::ToCodePointList","sum":122853},{"parent":"MODULE_FUNC","rule":"Unicode::ToLower","sum":1190672},{"parent":"MODULE_FUNC","rule":"Unicode::ToTitle","sum":36005},{"parent":"MODULE_FUNC","rule":"Unicode::ToUint64","sum":413},{"parent":"MODULE_FUNC","rule":"Unicode::ToUpper","sum":111882},{"parent":"MODULE_FUNC","rule":"Unicode::Translit","sum":103652},{"parent":"MODULE_FUNC","rule":"Unicode::TryToUint64","sum":1942},{"parent":"MODULE_FUNC","rule":"Url::AsciiToLower","sum":1},{"parent":"MODULE_FUNC","rule":"Url::BuildQueryString","sum":25869},{"parent":"MODULE_FUNC","rule":"Url::CanBePunycodeHostName","sum":6528},{"parent":"MODULE_FUNC","rule":"Url::CutQueryStringAndFragment","sum":232746},{"parent":"MODULE_FUNC","rule":"Url::CutScheme","sum":1132324},{"parent":"MODULE_FUNC","rule":"Url::CutWWW","sum":859165},{"parent":"MODULE_FUNC","rule":"Url::CutWWW2","sum":741509},{"parent":"MODULE_FUNC","rule":"Url::Decode","sum":1694041},{"parent":"MODULE_FUNC","rule":"Url::Encode","sum":370603},{"parent":"MODULE_FUNC","rule":"Url::ForceHostNameToPunycode","sum":200827},{"parent":"MODULE_FUNC","rule":"Url::ForcePunycodeToHostName","sum":132424},{"parent":"MODULE_FUNC","rule":"Url::GetCGIParam","sum":1824397},{"parent":"MODULE_FUNC","rule":"Url::GetCgiParam","sum":7},{"parent":"MODULE_FUNC","rule":"Url::GetDomain","sum":1124409},{"parent":"MODULE_FUNC","rule":"Url::GetDomainLevel","sum":70675},{"parent":"MODULE_FUNC","rule":"Url::GetFragment","sum":495},{"parent":"MODULE_FUNC","rule":"Url::GetHost","sum":4049696},{"parent":"MODULE_FUNC","rule":"Url::GetHostPort","sum":196358},{"parent":"MODULE_FUNC","rule":"Url::GetOwner","sum":1403748},{"parent":"MODULE_FUNC","rule":"Url::GetPath","sum":1692312},{"parent":"MODULE_FUNC","rule":"Url::GetPort","sum":817082},{"parent":"MODULE_FUNC","rule":"Url::GetScheme","sum":2056328},{"parent":"MODULE_FUNC","rule":"Url::GetSchemeHost","sum":145839},{"parent":"MODULE_FUNC","rule":"Url::GetSchemeHostPort","sum":697464},{"parent":"MODULE_FUNC","rule":"Url::GetSignificantDomain","sum":463398},{"parent":"MODULE_FUNC","rule":"Url::GetTLD","sum":35514},{"parent":"MODULE_FUNC","rule":"Url::GetTail","sum":574437},{"parent":"MODULE_FUNC","rule":"Url::Getowner","sum":1},{"parent":"MODULE_FUNC","rule":"Url::HostNameToPunycode","sum":580783},{"parent":"MODULE_FUNC","rule":"Url::IsAllowedByRobotsTxt","sum":7},{"parent":"MODULE_FUNC","rule":"Url::IsKnownTLD","sum":20834},{"parent":"MODULE_FUNC","rule":"Url::IsWellKnownTLD","sum":4928},{"parent":"MODULE_FUNC","rule":"Url::Normalize","sum":1049217},{"parent":"MODULE_FUNC","rule":"Url::NormalizeWithDefaultHttpScheme","sum":622798},{"parent":"MODULE_FUNC","rule":"Url::Parse","sum":299237},{"parent":"MODULE_FUNC","rule":"Url::PunycodeToHostName","sum":202698},{"parent":"MODULE_FUNC","rule":"Url::QueryStringToDict","sum":154631},{"parent":"MODULE_FUNC","rule":"Url::QueryStringToList","sum":38742},{"parent":"MODULE_FUNC","rule":"Url::ReplaceAll","sum":8},{"parent":"MODULE_FUNC","rule":"YSON::Co","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToBool","sum":12},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToDict","sum":2},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToDouble","sum":4},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToDoubleList","sum":10},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToInt64","sum":2},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToList","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToString","sum":64},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToStringList","sum":20},{"parent":"MODULE_FUNC","rule":"YSON::From","sum":7},{"parent":"MODULE_FUNC","rule":"YSON::IsDict","sum":3},{"parent":"MODULE_FUNC","rule":"YSON::Lookup","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::LookupDict","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::LookupDouble","sum":3},{"parent":"MODULE_FUNC","rule":"YSON::LookupInt64","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::LookupString","sum":3},{"parent":"MODULE_FUNC","rule":"YSON::Parse","sum":5},{"parent":"MODULE_FUNC","rule":"YSON::ToString","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::convertToString","sum":7},{"parent":"MODULE_FUNC","rule":"YSON::from","sum":1},{"parent":"MODULE_FUNC","rule":"YSon::ConvertToDouble","sum":6},{"parent":"MODULE_FUNC","rule":"YSon::ConvertToList","sum":3},{"parent":"MODULE_FUNC","rule":"YSon::ConvertToString","sum":2},{"parent":"MODULE_FUNC","rule":"YSon::LookupString","sum":1},{"parent":"MODULE_FUNC","rule":"YSon::Parse","sum":5},{"parent":"MODULE_FUNC","rule":"Yson::AsList","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Attributes","sum":1892},{"parent":"MODULE_FUNC","rule":"Yson::COntains","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::COnvertToDouble","sum":7},{"parent":"MODULE_FUNC","rule":"Yson::CastToStringList","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Contains","sum":2964796},{"parent":"MODULE_FUNC","rule":"Yson::Conver","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::ConverTToInt64","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConverToDouble","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::ConverToInt64","sum":10},{"parent":"MODULE_FUNC","rule":"Yson::ConverToList","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::ConverToString","sum":12},{"parent":"MODULE_FUNC","rule":"Yson::ConvertFromString","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertTOList","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertTo","sum":8887873},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToAttributes","sum":16},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBool","sum":8778198},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBoolDict","sum":105286},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBoolList","sum":7400},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBoolgDict","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBytes","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDate","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDateTime","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDict","sum":8505885},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDictList","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDictOfDouble","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDictString","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDouble","sum":9532162},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDoubleDict","sum":279814},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDoubleList","sum":1192022},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToFloat","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToFloat64","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToINT64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToIn64","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt","sum":37},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt32","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt32List","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt64","sum":20427706},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt64Dict","sum":186913},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt64List","sum":2391814},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToIntList","sum":5},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInteget","sum":168},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToJson","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToList","sum":18954978},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToListDouble","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToListString","sum":16},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToListg","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToSTring","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToSTringList","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToSetring","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToString","sum":96745330},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStringDict","sum":1449218},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStringInt64","sum":4},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStringList","sum":24374452},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStrint","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStruct","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToText","sum":13},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUINT64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUInt64","sum":164},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUInt64List","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint32","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint64","sum":8491077},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint64Dict","sum":36518},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint64List","sum":2200184},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUnit64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToevent_value","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToint64","sum":8},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToint64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertTolIST","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertTolist","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertTostring","sum":4},{"parent":"MODULE_FUNC","rule":"Yson::ConverttoList","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConverttoString","sum":12},{"parent":"MODULE_FUNC","rule":"Yson::ConvvertToString","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Dict","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::Equals","sum":796957},{"parent":"MODULE_FUNC","rule":"Yson::Extract","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FROM","sum":8},{"parent":"MODULE_FUNC","rule":"Yson::Find","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::From","sum":25115604},{"parent":"MODULE_FUNC","rule":"Yson::From64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromAGG_LIST","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromASDFDSKLDJF","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromAboba","sum":4},{"parent":"MODULE_FUNC","rule":"Yson::FromBinary","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromBoolDict","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromBytes","sum":17},{"parent":"MODULE_FUNC","rule":"Yson::FromDict","sum":3076},{"parent":"MODULE_FUNC","rule":"Yson::FromDouble","sum":2801},{"parent":"MODULE_FUNC","rule":"Yson::FromDouble64Dict","sum":3673},{"parent":"MODULE_FUNC","rule":"Yson::FromDoubleDict","sum":42637},{"parent":"MODULE_FUNC","rule":"Yson::FromDoubleList","sum":996},{"parent":"MODULE_FUNC","rule":"Yson::FromInt32","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromInt64Dict","sum":2139},{"parent":"MODULE_FUNC","rule":"Yson::FromInt64List","sum":7479},{"parent":"MODULE_FUNC","rule":"Yson::FromJson","sum":2153},{"parent":"MODULE_FUNC","rule":"Yson::FromKek","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::FromList","sum":4907},{"parent":"MODULE_FUNC","rule":"Yson::FromListTake","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::FromMap","sum":356},{"parent":"MODULE_FUNC","rule":"Yson::FromMinutes","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromSHEEEEEEEEEEEEE","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::FromSHIIIIIIIIIII","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromSeconds","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::FromSring","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::FromSting","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromString","sum":56274},{"parent":"MODULE_FUNC","rule":"Yson::FromStringDict","sum":69232},{"parent":"MODULE_FUNC","rule":"Yson::FromStringList","sum":59327},{"parent":"MODULE_FUNC","rule":"Yson::FromStruct","sum":651231},{"parent":"MODULE_FUNC","rule":"Yson::FromUi64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromUin64List","sum":378},{"parent":"MODULE_FUNC","rule":"Yson::FromUint32Dict","sum":10257},{"parent":"MODULE_FUNC","rule":"Yson::FromUint64","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::FromUint64Dict","sum":16028},{"parent":"MODULE_FUNC","rule":"Yson::FromUint64List","sum":25356},{"parent":"MODULE_FUNC","rule":"Yson::FromY2020MachoDachaTbIhaHouse","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Fromt","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::Get","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::GetHash","sum":863949},{"parent":"MODULE_FUNC","rule":"Yson::GetLength","sum":2810726},{"parent":"MODULE_FUNC","rule":"Yson::IsBool","sum":33313},{"parent":"MODULE_FUNC","rule":"Yson::IsDict","sum":257947},{"parent":"MODULE_FUNC","rule":"Yson::IsDouble","sum":99984},{"parent":"MODULE_FUNC","rule":"Yson::IsEntity","sum":2675802},{"parent":"MODULE_FUNC","rule":"Yson::IsInt64","sum":288518},{"parent":"MODULE_FUNC","rule":"Yson::IsList","sum":286846},{"parent":"MODULE_FUNC","rule":"Yson::IsString","sum":1024354},{"parent":"MODULE_FUNC","rule":"Yson::IsUint64","sum":154279},{"parent":"MODULE_FUNC","rule":"Yson::ListMap","sum":12},{"parent":"MODULE_FUNC","rule":"Yson::Lo","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Loo","sum":10},{"parent":"MODULE_FUNC","rule":"Yson::LookUp","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookUpDict","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookUpString","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::Lookup","sum":6565660},{"parent":"MODULE_FUNC","rule":"Yson::LookupBool","sum":2150705},{"parent":"MODULE_FUNC","rule":"Yson::LookupDict","sum":402618},{"parent":"MODULE_FUNC","rule":"Yson::LookupDouble","sum":3063358},{"parent":"MODULE_FUNC","rule":"Yson::LookupInt","sum":15},{"parent":"MODULE_FUNC","rule":"Yson::LookupInt32","sum":91},{"parent":"MODULE_FUNC","rule":"Yson::LookupInt64","sum":5505702},{"parent":"MODULE_FUNC","rule":"Yson::LookupInteger","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookupList","sum":1627353},{"parent":"MODULE_FUNC","rule":"Yson::LookupSTRING","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookupString","sum":41313918},{"parent":"MODULE_FUNC","rule":"Yson::LookupStringList","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::LookupStruct","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::LookupTimestamp","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookupUInt64","sum":6},{"parent":"MODULE_FUNC","rule":"Yson::LookupUint64","sum":3802432},{"parent":"MODULE_FUNC","rule":"Yson::LookupsTRING","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LoopUpString","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Options","sum":9252892},{"parent":"MODULE_FUNC","rule":"Yson::Parse","sum":8644334},{"parent":"MODULE_FUNC","rule":"Yson::ParseJSON","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::ParseJson","sum":12622535},{"parent":"MODULE_FUNC","rule":"Yson::ParseJsonDecodeUtf8","sum":134162},{"parent":"MODULE_FUNC","rule":"Yson::Parsejson","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::Path","sum":23},{"parent":"MODULE_FUNC","rule":"Yson::Serialize","sum":3870551},{"parent":"MODULE_FUNC","rule":"Yson::SerializeJSON","sum":5},{"parent":"MODULE_FUNC","rule":"Yson::SerializeJson","sum":9849752},{"parent":"MODULE_FUNC","rule":"Yson::SerializeJsonEncodeUtf8","sum":201909},{"parent":"MODULE_FUNC","rule":"Yson::SerializePretty","sum":1187442},{"parent":"MODULE_FUNC","rule":"Yson::SerializeText","sum":611791},{"parent":"MODULE_FUNC","rule":"Yson::WithAttributes","sum":660},{"parent":"MODULE_FUNC","rule":"Yson::YPath","sum":12613297},{"parent":"MODULE_FUNC","rule":"Yson::YPathBool","sum":1177444},{"parent":"MODULE_FUNC","rule":"Yson::YPathBoolean","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::YPathDict","sum":25491},{"parent":"MODULE_FUNC","rule":"Yson::YPathDouble","sum":1365910},{"parent":"MODULE_FUNC","rule":"Yson::YPathInt16","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::YPathInt64","sum":2718665},{"parent":"MODULE_FUNC","rule":"Yson::YPathList","sum":1387120},{"parent":"MODULE_FUNC","rule":"Yson::YPathListString","sum":7},{"parent":"MODULE_FUNC","rule":"Yson::YPathString","sum":13533915},{"parent":"MODULE_FUNC","rule":"Yson::YPathUint64","sum":709229},{"parent":"MODULE_FUNC","rule":"Yson::YaPathString","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::Ypath","sum":51},{"parent":"MODULE_FUNC","rule":"Yson::YpathString","sum":7},{"parent":"MODULE_FUNC","rule":"Yson::Yson2","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::convertToDict","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::convertToInt64","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::convertToString","sum":7},{"parent":"MODULE_FUNC","rule":"Yson::convertToUint64","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::from","sum":45},{"parent":"MODULE_FUNC","rule":"Yson::fromJson","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::lookupString","sum":1},{"parent":"MODULE_FUNC","rule":"dateTime::Format","sum":3},{"parent":"MODULE_FUNC","rule":"dateTime::GetMonth","sum":6},{"parent":"MODULE_FUNC","rule":"dateTime::IntervalFromDays","sum":361},{"parent":"MODULE_FUNC","rule":"dateTime::IntervalFromSeconds","sum":1},{"parent":"MODULE_FUNC","rule":"dateTime::MakeDate","sum":87},{"parent":"MODULE_FUNC","rule":"dateTime::MakeDatetime","sum":7},{"parent":"MODULE_FUNC","rule":"dateTime::StartOfMonth","sum":2},{"parent":"MODULE_FUNC","rule":"datetime::Format","sum":5},{"parent":"MODULE_FUNC","rule":"datetime::FromMilliseconds","sum":3},{"parent":"MODULE_FUNC","rule":"datetime::FromSeconds","sum":3736},{"parent":"MODULE_FUNC","rule":"datetime::GetDayOfWeek","sum":4},{"parent":"MODULE_FUNC","rule":"datetime::GetDayOfWeekName","sum":3},{"parent":"MODULE_FUNC","rule":"datetime::GetHour","sum":8},{"parent":"MODULE_FUNC","rule":"datetime::GetMonth","sum":14},{"parent":"MODULE_FUNC","rule":"datetime::GetWeekOfYear","sum":20},{"parent":"MODULE_FUNC","rule":"datetime::GetYear","sum":29},{"parent":"MODULE_FUNC","rule":"datetime::IntervalFromDays","sum":1345},{"parent":"MODULE_FUNC","rule":"datetime::IntervalFromHours","sum":37},{"parent":"MODULE_FUNC","rule":"datetime::IntervalFromMinutes","sum":6},{"parent":"MODULE_FUNC","rule":"datetime::MakeDate","sum":5405},{"parent":"MODULE_FUNC","rule":"datetime::MakeDatetime","sum":661},{"parent":"MODULE_FUNC","rule":"datetime::MakeTimestamp","sum":1},{"parent":"MODULE_FUNC","rule":"datetime::Parse","sum":397},{"parent":"MODULE_FUNC","rule":"datetime::ParseIso8601","sum":3},{"parent":"MODULE_FUNC","rule":"datetime::ShiftMonths","sum":309},{"parent":"MODULE_FUNC","rule":"datetime::StartOf","sum":1},{"parent":"MODULE_FUNC","rule":"datetime::StartOfDay","sum":2},{"parent":"MODULE_FUNC","rule":"datetime::StartOfMonth","sum":549},{"parent":"MODULE_FUNC","rule":"datetime::StartOfWeek","sum":528},{"parent":"MODULE_FUNC","rule":"datetime::ToDays","sum":375},{"parent":"MODULE_FUNC","rule":"datetime::ToSeconds","sum":735},{"parent":"MODULE_FUNC","rule":"datetime::fromseconds","sum":4},{"parent":"MODULE_FUNC","rule":"digest::Md5HalfMix","sum":14},{"parent":"MODULE_FUNC","rule":"digest::city_hash","sum":1},{"parent":"MODULE_FUNC","rule":"json::ConvertToString","sum":7},{"parent":"MODULE_FUNC","rule":"json::From","sum":1},{"parent":"MODULE_FUNC","rule":"math::Round","sum":2},{"parent":"MODULE_FUNC","rule":"math::floor","sum":1},{"parent":"MODULE_FUNC","rule":"math::log","sum":2},{"parent":"MODULE_FUNC","rule":"math::pow","sum":6},{"parent":"MODULE_FUNC","rule":"math::round","sum":43},{"parent":"MODULE_FUNC","rule":"pg::GENERATE_SERIES","sum":8},{"parent":"MODULE_FUNC","rule":"pg::SPLIT_PART","sum":2},{"parent":"MODULE_FUNC","rule":"pg::age","sum":732},{"parent":"MODULE_FUNC","rule":"pg::array_agg","sum":2},{"parent":"MODULE_FUNC","rule":"pg::date_part","sum":711},{"parent":"MODULE_FUNC","rule":"pg::extract","sum":285},{"parent":"MODULE_FUNC","rule":"pg::generate_series","sum":2},{"parent":"MODULE_FUNC","rule":"pg::st_asgeojson","sum":2},{"parent":"MODULE_FUNC","rule":"pg::st_astext","sum":4},{"parent":"MODULE_FUNC","rule":"pg::st_geomfromewkb","sum":14},{"parent":"MODULE_FUNC","rule":"pg::st_transform","sum":9},{"parent":"MODULE_FUNC","rule":"pg::string_agg","sum":15},{"parent":"MODULE_FUNC","rule":"pire::Capture","sum":7},{"parent":"MODULE_FUNC","rule":"pire::Match","sum":29},{"parent":"MODULE_FUNC","rule":"re2::Capture","sum":2733},{"parent":"MODULE_FUNC","rule":"re2::Grep","sum":1},{"parent":"MODULE_FUNC","rule":"re2::Match","sum":24},{"parent":"MODULE_FUNC","rule":"re2::Replace","sum":429},{"parent":"MODULE_FUNC","rule":"re2::capture","sum":8},{"parent":"MODULE_FUNC","rule":"string::AsciiToLower","sum":6},{"parent":"MODULE_FUNC","rule":"string::JoinFromList","sum":1},{"parent":"MODULE_FUNC","rule":"string::ReplaceFirst","sum":14},{"parent":"MODULE_FUNC","rule":"string::SplitToList","sum":5},{"parent":"MODULE_FUNC","rule":"string::StartsWith","sum":1},{"parent":"MODULE_FUNC","rule":"string::contains","sum":4},{"parent":"MODULE_FUNC","rule":"string::joinfromlist","sum":15},{"parent":"MODULE_FUNC","rule":"string::removeall","sum":4},{"parent":"MODULE_FUNC","rule":"string::replaceall","sum":11},{"parent":"MODULE_FUNC","rule":"string::splittolist","sum":12},{"parent":"MODULE_FUNC","rule":"string::strip","sum":2},{"parent":"MODULE_FUNC","rule":"url::Encode","sum":2},{"parent":"MODULE_FUNC","rule":"url::decode","sum":2},{"parent":"MODULE_FUNC","rule":"url::gethost","sum":1},{"parent":"MODULE_FUNC","rule":"ySoN::CoNveRtTo","sum":1},{"parent":"MODULE_FUNC","rule":"yson::ConvertToDict","sum":1},{"parent":"MODULE_FUNC","rule":"yson::ConvertToDouble","sum":1},{"parent":"MODULE_FUNC","rule":"yson::ConvertToInt64","sum":1},{"parent":"MODULE_FUNC","rule":"yson::ConvertToString","sum":3},{"parent":"MODULE_FUNC","rule":"yson::ConvertToStringList","sum":2},{"parent":"MODULE_FUNC","rule":"yson::From","sum":1},{"parent":"MODULE_FUNC","rule":"yson::LookupString","sum":1},{"parent":"MODULE_FUNC","rule":"yson::PARSE","sum":2},{"parent":"MODULE_FUNC","rule":"yson::convertto","sum":2},{"parent":"MODULE_FUNC","rule":"yson::converttodoubledict","sum":8},{"parent":"MODULE_FUNC","rule":"yson::converttolist","sum":1},{"parent":"MODULE_FUNC","rule":"yson::converttostring","sum":4},{"parent":"MODULE_FUNC","rule":"yson::converttostringdict","sum":8},{"parent":"MODULE_FUNC","rule":"yson::from","sum":2},{"parent":"MODULE_FUNC","rule":"yson::options","sum":8},{"parent":"MODULE_FUNC","rule":"yson::parsejson","sum":16},{"parent":"PRAGMA","rule":"AllowDotInAlias","sum":258051},{"parent":"PRAGMA","rule":"AllowUnnamedColumns","sum":4},{"parent":"PRAGMA","rule":"AnsiCurrentRow","sum":951},{"parent":"PRAGMA","rule":"AnsiImplicitCrossJoin","sum":13019},{"parent":"PRAGMA","rule":"AnsiInFOREmptyORNullableItemsCollections","sum":52},{"parent":"PRAGMA","rule":"AnsiInForEmptyOrNULLableItemsCollectiONs","sum":158},{"parent":"PRAGMA","rule":"AnsiInForEmptyOrNULLableItemsCollections","sum":4074},{"parent":"PRAGMA","rule":"AnsiInForEmptyOrNullableItemsCollections","sum":39592457},{"parent":"PRAGMA","rule":"AnsiInForEmptyOrnullableItemsCollections","sum":260},{"parent":"PRAGMA","rule":"AnsiInForEmptyorNullableItemsCollections","sum":2145},{"parent":"PRAGMA","rule":"AnsiInForEmptyornullableItemsCollections","sum":1272},{"parent":"PRAGMA","rule":"AnsiInforEmptyOrNullableItemsCollections","sum":243},{"parent":"PRAGMA","rule":"AnsiOptionalAS","sum":4},{"parent":"PRAGMA","rule":"AnsiOptionalAs","sum":2145464},{"parent":"PRAGMA","rule":"AnsiOptionalas","sum":352},{"parent":"PRAGMA","rule":"AnsiOrderByLimitInUnionAll","sum":210077},{"parent":"PRAGMA","rule":"AnsiRankForNullableKeys","sum":223539},{"parent":"PRAGMA","rule":"AnsiinForEmptyOrNullableItemsCollections","sum":8480},{"parent":"PRAGMA","rule":"AnsiinForEmptyOrNullableitemsCollections","sum":16},{"parent":"PRAGMA","rule":"AutoCommit","sum":39070},{"parent":"PRAGMA","rule":"BlockEngine","sum":351069},{"parent":"PRAGMA","rule":"BogousStarInGroupByOverJoin","sum":2},{"parent":"PRAGMA","rule":"CLassicDivision","sum":9},{"parent":"PRAGMA","rule":"CheckedOps","sum":649},{"parent":"PRAGMA","rule":"ClASsicDivision","sum":627},{"parent":"PRAGMA","rule":"ClassicDIvision","sum":44},{"parent":"PRAGMA","rule":"ClassicDivisiON","sum":148},{"parent":"PRAGMA","rule":"ClassicDivision","sum":2553059},{"parent":"PRAGMA","rule":"Classicdivision","sum":6},{"parent":"PRAGMA","rule":"CoalesceJoinKeysOnQualifiedAll","sum":36},{"parent":"PRAGMA","rule":"CompactGroupBy","sum":26},{"parent":"PRAGMA","rule":"CompactNamedExprs","sum":2438},{"parent":"PRAGMA","rule":"CostBasedOptimizer","sum":14407},{"parent":"PRAGMA","rule":"DQ.ANALYZEQUERY","sum":1617},{"parent":"PRAGMA","rule":"DQEngine","sum":3},{"parent":"PRAGMA","rule":"DirectRead","sum":48},{"parent":"PRAGMA","rule":"DisableAnsiInForEmptyOrNullableItemsCollections","sum":233532},{"parent":"PRAGMA","rule":"DisableAnsiRankForNullableKeys","sum":38142},{"parent":"PRAGMA","rule":"DisableCoalesceJoinKeysOnQualifiedAll","sum":197550},{"parent":"PRAGMA","rule":"DisableCompactNamedExprs","sum":12},{"parent":"PRAGMA","rule":"DisableOrderedColumns","sum":536},{"parent":"PRAGMA","rule":"DisablePullUpFlatMapOverJoin","sum":2},{"parent":"PRAGMA","rule":"DisableSimpleColumns","sum":397601},{"parent":"PRAGMA","rule":"DisableStrictJoinKeyTypes","sum":416},{"parent":"PRAGMA","rule":"DisableUnicodeLiterals","sum":34},{"parent":"PRAGMA","rule":"DisableUnordered","sum":869},{"parent":"PRAGMA","rule":"DistinctOverWindow","sum":7},{"parent":"PRAGMA","rule":"Dq.HashJoinMode","sum":6},{"parent":"PRAGMA","rule":"Dq.MaxTasksPerStage","sum":5},{"parent":"PRAGMA","rule":"Dq.SplitStageOnDqReplicate","sum":4},{"parent":"PRAGMA","rule":"Dq.UseBlockReader","sum":2},{"parent":"PRAGMA","rule":"DqEngine","sum":10781569},{"parent":"PRAGMA","rule":"Dqengine","sum":2},{"parent":"PRAGMA","rule":"EmitAggApply","sum":1},{"parent":"PRAGMA","rule":"EmitUnionMerge","sum":7},{"parent":"PRAGMA","rule":"EnableSystemColumns","sum":3},{"parent":"PRAGMA","rule":"FILE","sum":289321},{"parent":"PRAGMA","rule":"FeatureR010","sum":224},{"parent":"PRAGMA","rule":"File","sum":7397697},{"parent":"PRAGMA","rule":"FileOption","sum":15305},{"parent":"PRAGMA","rule":"FilterPushdownOverJoinOptionalSide","sum":6},{"parent":"PRAGMA","rule":"FlexibleTypes","sum":943},{"parent":"PRAGMA","rule":"Folder","sum":3774},{"parent":"PRAGMA","rule":"Greetings","sum":1443},{"parent":"PRAGMA","rule":"GroupByCubeLimit","sum":39613},{"parent":"PRAGMA","rule":"GroupByLimit","sum":152020},{"parent":"PRAGMA","rule":"JsonQueryReturnsJsonDocument","sum":300759},{"parent":"PRAGMA","rule":"LIBRARY","sum":246771},{"parent":"PRAGMA","rule":"LIbrary","sum":52},{"parent":"PRAGMA","rule":"Library","sum":15064301},{"parent":"PRAGMA","rule":"OrderedColumns","sum":5979946},{"parent":"PRAGMA","rule":"Orderedcolumns","sum":12},{"parent":"PRAGMA","rule":"OverrideLibrary","sum":182},{"parent":"PRAGMA","rule":"Package","sum":5},{"parent":"PRAGMA","rule":"PositionalUnionAll","sum":119861},{"parent":"PRAGMA","rule":"PqReadBy","sum":42},{"parent":"PRAGMA","rule":"REGEXUSERE2","sum":13433},{"parent":"PRAGMA","rule":"RefSelect","sum":433467},{"parent":"PRAGMA","rule":"RegExUseRe2","sum":32},{"parent":"PRAGMA","rule":"RegexUseRe2","sum":312165},{"parent":"PRAGMA","rule":"ResultRowsLimit","sum":3},{"parent":"PRAGMA","rule":"SampleSelect","sum":11},{"parent":"PRAGMA","rule":"SeqMode","sum":4},{"parent":"PRAGMA","rule":"SimpleColumns","sum":6945318},{"parent":"PRAGMA","rule":"Simplecolumns","sum":3},{"parent":"PRAGMA","rule":"StrictJoinKeyTypes","sum":76407},{"parent":"PRAGMA","rule":"TablePathPrefix","sum":5599047},{"parent":"PRAGMA","rule":"UDF","sum":2171118},{"parent":"PRAGMA","rule":"Udf","sum":1936209},{"parent":"PRAGMA","rule":"UnicodeLiterals","sum":98},{"parent":"PRAGMA","rule":"UnorderedSubqueries","sum":2},{"parent":"PRAGMA","rule":"UseBlocks","sum":57},{"parent":"PRAGMA","rule":"UseTablePrefixForEach","sum":52},{"parent":"PRAGMA","rule":"WARNING","sum":26},{"parent":"PRAGMA","rule":"WarnUnnamedColumns","sum":26250},{"parent":"PRAGMA","rule":"Warning","sum":2962871},{"parent":"PRAGMA","rule":"WarningMsg","sum":12640},{"parent":"PRAGMA","rule":"YSON.AutoConvert","sum":834},{"parent":"PRAGMA","rule":"YSON.DisableStrict","sum":44713},{"parent":"PRAGMA","rule":"YSON.Strict","sum":732},{"parent":"PRAGMA","rule":"YT.Auth","sum":58},{"parent":"PRAGMA","rule":"YT.DefaultOperationWeight","sum":253828},{"parent":"PRAGMA","rule":"YT.InferSchema","sum":17857},{"parent":"PRAGMA","rule":"YT.POOL","sum":275},{"parent":"PRAGMA","rule":"YT.Pool","sum":86019},{"parent":"PRAGMA","rule":"YT.StaticPool","sum":6},{"parent":"PRAGMA","rule":"YT.TableContentDeliveryMode","sum":1666},{"parent":"PRAGMA","rule":"YT.UseNativeYTTypes","sum":2},{"parent":"PRAGMA","rule":"YT.UseNativeYTtypes","sum":3},{"parent":"PRAGMA","rule":"YT.pOOL","sum":4},{"parent":"PRAGMA","rule":"YT.pool","sum":18841},{"parent":"PRAGMA","rule":"YsON.Disablestrict","sum":131},{"parent":"PRAGMA","rule":"Yson.AutoConvert","sum":41777},{"parent":"PRAGMA","rule":"Yson.DIsableStrict","sum":15201},{"parent":"PRAGMA","rule":"Yson.DisableStrict","sum":481166},{"parent":"PRAGMA","rule":"Yson.Strict","sum":6872},{"parent":"PRAGMA","rule":"Yson.disablestrict","sum":29},{"parent":"PRAGMA","rule":"Yt.Auth","sum":33},{"parent":"PRAGMA","rule":"Yt.Description","sum":4},{"parent":"PRAGMA","rule":"Yt.ExternalTx","sum":24787},{"parent":"PRAGMA","rule":"Yt.HybridDqExecution","sum":9},{"parent":"PRAGMA","rule":"Yt.InferSchema","sum":2746},{"parent":"PRAGMA","rule":"Yt.MaxRowWeight","sum":955},{"parent":"PRAGMA","rule":"Yt.ParallelOperationsLimit","sum":12},{"parent":"PRAGMA","rule":"Yt.Pool","sum":255054},{"parent":"PRAGMA","rule":"Yt.PoolTrees","sum":1},{"parent":"PRAGMA","rule":"Yt.StaticPool","sum":9950},{"parent":"PRAGMA","rule":"Yt.TmpFolder","sum":4},{"parent":"PRAGMA","rule":"Yt.UseNativeYtTypes","sum":2851},{"parent":"PRAGMA","rule":"Yt.pool","sum":82540},{"parent":"PRAGMA","rule":"ansiInForEmptyOrNullableItemsCollections","sum":118},{"parent":"PRAGMA","rule":"ansiimplicitcrossjoin","sum":2},{"parent":"PRAGMA","rule":"ansiinforemptyornullableitemscollections","sum":12},{"parent":"PRAGMA","rule":"ansioptionalas","sum":98},{"parent":"PRAGMA","rule":"autocommit","sum":133608},{"parent":"PRAGMA","rule":"classicDivision","sum":18},{"parent":"PRAGMA","rule":"classic_division","sum":11},{"parent":"PRAGMA","rule":"classicdivision","sum":77},{"parent":"PRAGMA","rule":"config.flags","sum":1287644},{"parent":"PRAGMA","rule":"direct_read","sum":2},{"parent":"PRAGMA","rule":"directread","sum":2},{"parent":"PRAGMA","rule":"disableSimpleColumns","sum":8},{"parent":"PRAGMA","rule":"disablesimplecolumns","sum":6},{"parent":"PRAGMA","rule":"dq.AnalyticsHopping","sum":4},{"parent":"PRAGMA","rule":"dq.AnalyzeQuery","sum":3092333},{"parent":"PRAGMA","rule":"dq.ENABLEDQREPLICATE","sum":1},{"parent":"PRAGMA","rule":"dq.EnableComputeActor","sum":1},{"parent":"PRAGMA","rule":"dq.EnableDqReplicate","sum":920387},{"parent":"PRAGMA","rule":"dq.EnableDqreplicate","sum":3},{"parent":"PRAGMA","rule":"dq.EnableFullResultWrite","sum":28736},{"parent":"PRAGMA","rule":"dq.EnableInsert","sum":86029},{"parent":"PRAGMA","rule":"dq.FallbackPolicy","sum":3},{"parent":"PRAGMA","rule":"dq.HashJoinMode","sum":6061},{"parent":"PRAGMA","rule":"dq.HashShuffleMaxTasks","sum":7},{"parent":"PRAGMA","rule":"dq.HashShuffleTasksRatio","sum":7},{"parent":"PRAGMA","rule":"dq.MaxDataSizePerJob","sum":11},{"parent":"PRAGMA","rule":"dq.MaxDataSizePerQuery","sum":2},{"parent":"PRAGMA","rule":"dq.MaxRetries","sum":1124},{"parent":"PRAGMA","rule":"dq.MaxTasksPerOperation","sum":22991},{"parent":"PRAGMA","rule":"dq.MaxTasksPerStage","sum":60968},{"parent":"PRAGMA","rule":"dq.MemoryLimit","sum":7899},{"parent":"PRAGMA","rule":"dq.OptLLVM","sum":11},{"parent":"PRAGMA","rule":"dq.SplitStageOnDqReplicate","sum":11031},{"parent":"PRAGMA","rule":"dq.UseBlockReader","sum":3948},{"parent":"PRAGMA","rule":"dq.UseFastPickleTransport","sum":3},{"parent":"PRAGMA","rule":"dq.UseFinalizeByKey","sum":10},{"parent":"PRAGMA","rule":"dq.UseOOBTransport","sum":9},{"parent":"PRAGMA","rule":"dq.UseWideBlockChannels","sum":2},{"parent":"PRAGMA","rule":"dq.UseWideChannels","sum":1},{"parent":"PRAGMA","rule":"dq.WorkerFilter","sum":109},{"parent":"PRAGMA","rule":"dq.enableDqReplicate","sum":348},{"parent":"PRAGMA","rule":"dq.enabledqreplicate","sum":24},{"parent":"PRAGMA","rule":"dqEngine","sum":91599},{"parent":"PRAGMA","rule":"dqengine","sum":21267},{"parent":"PRAGMA","rule":"equijoin","sum":4},{"parent":"PRAGMA","rule":"file","sum":1808859},{"parent":"PRAGMA","rule":"folder","sum":674},{"parent":"PRAGMA","rule":"greetings","sum":1},{"parent":"PRAGMA","rule":"library","sum":4874289},{"parent":"PRAGMA","rule":"orderedColumns","sum":7},{"parent":"PRAGMA","rule":"orderedcolumns","sum":15150},{"parent":"PRAGMA","rule":"override_library","sum":32},{"parent":"PRAGMA","rule":"package","sum":228295},{"parent":"PRAGMA","rule":"refselect","sum":32461},{"parent":"PRAGMA","rule":"rtmr.Account","sum":4},{"parent":"PRAGMA","rule":"rtmr.TaskName","sum":12},{"parent":"PRAGMA","rule":"rtmr.YfInstanceCount","sum":8},{"parent":"PRAGMA","rule":"rtmr.YfSlotCount","sum":8},{"parent":"PRAGMA","rule":"rtmr.yfPool","sum":1},{"parent":"PRAGMA","rule":"sampleselect","sum":177},{"parent":"PRAGMA","rule":"simpleColumns","sum":1442},{"parent":"PRAGMA","rule":"simplecolumns","sum":243154},{"parent":"PRAGMA","rule":"tablepathprefix","sum":2},{"parent":"PRAGMA","rule":"udf","sum":4332081},{"parent":"PRAGMA","rule":"warning","sum":66551},{"parent":"PRAGMA","rule":"yson.AutoConvert","sum":4727715},{"parent":"PRAGMA","rule":"yson.Auto_convert","sum":18},{"parent":"PRAGMA","rule":"yson.Autoconvert","sum":1161},{"parent":"PRAGMA","rule":"yson.DisableStrict","sum":20043055},{"parent":"PRAGMA","rule":"yson.Disablestrict","sum":46},{"parent":"PRAGMA","rule":"yson.Fast","sum":664},{"parent":"PRAGMA","rule":"yson.Strict","sum":3492262},{"parent":"PRAGMA","rule":"yson.autoConvert","sum":4},{"parent":"PRAGMA","rule":"yson.autoconvert","sum":3737},{"parent":"PRAGMA","rule":"yson.disableStrict","sum":2363},{"parent":"PRAGMA","rule":"yson.disable_strict","sum":3},{"parent":"PRAGMA","rule":"yson.disablestrict","sum":211677},{"parent":"PRAGMA","rule":"yson.strict","sum":708},{"parent":"PRAGMA","rule":"yt.AUth","sum":4},{"parent":"PRAGMA","rule":"yt.Annotations","sum":46403354},{"parent":"PRAGMA","rule":"yt.Auth","sum":1277833},{"parent":"PRAGMA","rule":"yt.AutoMerge","sum":4456791},{"parent":"PRAGMA","rule":"yt.Automerge","sum":2800},{"parent":"PRAGMA","rule":"yt.BatchListFolderConcurrency","sum":152},{"parent":"PRAGMA","rule":"yt.BinaryExpirationInterval","sum":6212936},{"parent":"PRAGMA","rule":"yt.BinaryTmpFolder","sum":6238906},{"parent":"PRAGMA","rule":"yt.BlockReaderSupportedDataTypes","sum":5},{"parent":"PRAGMA","rule":"yt.ColumnGroupMode","sum":443562},{"parent":"PRAGMA","rule":"yt.CombineCoreLimit","sum":76823},{"parent":"PRAGMA","rule":"yt.CommonJoinCoreLimit","sum":1845},{"parent":"PRAGMA","rule":"yt.CoreDumpPath","sum":2},{"parent":"PRAGMA","rule":"yt.DQRPCReaderInflight","sum":140},{"parent":"PRAGMA","rule":"yt.DQRPCReaderTimeout","sum":8},{"parent":"PRAGMA","rule":"yt.DatASizePerJob","sum":2146},{"parent":"PRAGMA","rule":"yt.DatASizePerPartition","sum":732},{"parent":"PRAGMA","rule":"yt.DataSizePerJob","sum":5239479},{"parent":"PRAGMA","rule":"yt.DataSizePerMapJob","sum":314117},{"parent":"PRAGMA","rule":"yt.DataSizePerPartition","sum":513857},{"parent":"PRAGMA","rule":"yt.DataSizePerSortJob","sum":199622},{"parent":"PRAGMA","rule":"yt.DatasizePerJob","sum":16},{"parent":"PRAGMA","rule":"yt.DatasizePerSortJob","sum":16},{"parent":"PRAGMA","rule":"yt.DefaultCalcMemoryLimit","sum":258983},{"parent":"PRAGMA","rule":"yt.DefaultCluster","sum":71795086},{"parent":"PRAGMA","rule":"yt.DefaultLocalityTimeout","sum":4063},{"parent":"PRAGMA","rule":"yt.DefaultMapSelectivityFactor","sum":53},{"parent":"PRAGMA","rule":"yt.DefaultMaxJobFails","sum":1550814},{"parent":"PRAGMA","rule":"yt.DefaultMemORyLimit","sum":7},{"parent":"PRAGMA","rule":"yt.DefaultMemoryLimit","sum":2058884},{"parent":"PRAGMA","rule":"yt.DefaultMemoryReserveFactor","sum":25433},{"parent":"PRAGMA","rule":"yt.DefaultOperationWeight","sum":9750845},{"parent":"PRAGMA","rule":"yt.Description","sum":236380},{"parent":"PRAGMA","rule":"yt.DisableFuseOperations","sum":2},{"parent":"PRAGMA","rule":"yt.DisableJobSplitting","sum":4638},{"parent":"PRAGMA","rule":"yt.DisableOptimizers","sum":30931},{"parent":"PRAGMA","rule":"yt.EnableDynamicStoreReadInDQ","sum":1},{"parent":"PRAGMA","rule":"yt.ErasureCodecCpu","sum":148239},{"parent":"PRAGMA","rule":"yt.EvaluationTableSizeLimit","sum":815030},{"parent":"PRAGMA","rule":"yt.ExpirationDeadline","sum":3423055},{"parent":"PRAGMA","rule":"yt.ExpirationInterval","sum":8107892},{"parent":"PRAGMA","rule":"yt.ExtendedStatsMaxChunkCount","sum":4},{"parent":"PRAGMA","rule":"yt.ExternalTx","sum":80671058},{"parent":"PRAGMA","rule":"yt.ExtraTmpfsSize","sum":95},{"parent":"PRAGMA","rule":"yt.FileCacheTtl","sum":8247621},{"parent":"PRAGMA","rule":"yt.FolderInlineDataLimit","sum":40},{"parent":"PRAGMA","rule":"yt.FolderInlineItemsLimit","sum":2},{"parent":"PRAGMA","rule":"yt.ForceInferSchema","sum":801298},{"parent":"PRAGMA","rule":"yt.ForceJobSizeAdjuster","sum":10237},{"parent":"PRAGMA","rule":"yt.GeobaseDownloadUrl","sum":62921},{"parent":"PRAGMA","rule":"yt.HybridDqDataSizeLimitForOrdered","sum":312251},{"parent":"PRAGMA","rule":"yt.HybridDqDataSizeLimitForUnordered","sum":315268},{"parent":"PRAGMA","rule":"yt.HybridDqExecution","sum":3699504},{"parent":"PRAGMA","rule":"yt.HybridDqExecutionFallback","sum":108},{"parent":"PRAGMA","rule":"yt.INFERSCHEMA","sum":1},{"parent":"PRAGMA","rule":"yt.INferSchema","sum":6},{"parent":"PRAGMA","rule":"yt.IgnoreTypeV3","sum":4595},{"parent":"PRAGMA","rule":"yt.IgnoreWeakSchema","sum":231556},{"parent":"PRAGMA","rule":"yt.IgnoreYamrDsv","sum":22544},{"parent":"PRAGMA","rule":"yt.InferSchemA","sum":11},{"parent":"PRAGMA","rule":"yt.InferSchema","sum":32292775},{"parent":"PRAGMA","rule":"yt.InferSchemaTableCountThreshold","sum":1},{"parent":"PRAGMA","rule":"yt.Inferschema","sum":85412},{"parent":"PRAGMA","rule":"yt.IntermediateAccount","sum":132967},{"parent":"PRAGMA","rule":"yt.IntermediateDataMedium","sum":294637},{"parent":"PRAGMA","rule":"yt.IntermediateReplicationFactor","sum":2782},{"parent":"PRAGMA","rule":"yt.JavascriptCpu","sum":42},{"parent":"PRAGMA","rule":"yt.JobBlockInput","sum":27},{"parent":"PRAGMA","rule":"yt.JobBlockOutput","sum":12},{"parent":"PRAGMA","rule":"yt.JobEnv","sum":14134},{"parent":"PRAGMA","rule":"yt.JoinAllowColumnRenames","sum":446},{"parent":"PRAGMA","rule":"yt.JoinCollectColumnarStatistics","sum":20355},{"parent":"PRAGMA","rule":"yt.JoinColumnarStatisticsFetcherMode","sum":592},{"parent":"PRAGMA","rule":"yt.JoinEnableStarJoin","sum":41721},{"parent":"PRAGMA","rule":"yt.JoinMergeForce","sum":53571},{"parent":"PRAGMA","rule":"yt.JoinMergeReduceJobMaxSize","sum":2753},{"parent":"PRAGMA","rule":"yt.JoinMergeTablesLimit","sum":3660},{"parent":"PRAGMA","rule":"yt.JoinMergeUnsortedFactor","sum":1673},{"parent":"PRAGMA","rule":"yt.JoinMergeUseSmallAsPrimary","sum":5933},{"parent":"PRAGMA","rule":"yt.JoinUseColumnarStatistics","sum":1013},{"parent":"PRAGMA","rule":"yt.JoinWaitAllInputs","sum":16},{"parent":"PRAGMA","rule":"yt.KeepTempTables","sum":974},{"parent":"PRAGMA","rule":"yt.LayerPaths","sum":159087},{"parent":"PRAGMA","rule":"yt.LookupJoinLimit","sum":230889},{"parent":"PRAGMA","rule":"yt.LookupJoinMaxRows","sum":181590},{"parent":"PRAGMA","rule":"yt.MAXRowWeight","sum":56},{"parent":"PRAGMA","rule":"yt.MAxJobCount","sum":64},{"parent":"PRAGMA","rule":"yt.MAxRowWeight","sum":1},{"parent":"PRAGMA","rule":"yt.MapJOINLimit","sum":721},{"parent":"PRAGMA","rule":"yt.MapJoinLimit","sum":691161},{"parent":"PRAGMA","rule":"yt.MapJoinShardCount","sum":320751},{"parent":"PRAGMA","rule":"yt.MapJoinShardMinRows","sum":4},{"parent":"PRAGMA","rule":"yt.MapJoinUseFlow","sum":1},{"parent":"PRAGMA","rule":"yt.MapLocalityTimeout","sum":4},{"parent":"PRAGMA","rule":"yt.MaxChunksForDqRead","sum":120},{"parent":"PRAGMA","rule":"yt.MaxExtraJobMemoryToFuseOperations","sum":19952},{"parent":"PRAGMA","rule":"yt.MaxInputTables","sum":29639},{"parent":"PRAGMA","rule":"yt.MaxInputTablesForSortedMerge","sum":5917},{"parent":"PRAGMA","rule":"yt.MaxJobCount","sum":12535931},{"parent":"PRAGMA","rule":"yt.MaxJobcount","sum":1383},{"parent":"PRAGMA","rule":"yt.MaxKeyRangeCount","sum":9},{"parent":"PRAGMA","rule":"yt.MaxKeyWeight","sum":206061},{"parent":"PRAGMA","rule":"yt.MaxOutputTables","sum":54},{"parent":"PRAGMA","rule":"yt.MaxReplicationFactorToFuseOperations","sum":15},{"parent":"PRAGMA","rule":"yt.MaxRowWeight","sum":6096066},{"parent":"PRAGMA","rule":"yt.MaxSpeculativeJobCountPerTask","sum":2243},{"parent":"PRAGMA","rule":"yt.MinLocalityInputDataWeight","sum":8},{"parent":"PRAGMA","rule":"yt.MinPublishedAvgChunkSize","sum":3163080},{"parent":"PRAGMA","rule":"yt.MinTempAvgChunkSize","sum":178194},{"parent":"PRAGMA","rule":"yt.NativeYtTypeCompatibility","sum":15},{"parent":"PRAGMA","rule":"yt.NetworkProject","sum":608728},{"parent":"PRAGMA","rule":"yt.NightlyCompress","sum":146858},{"parent":"PRAGMA","rule":"yt.OWners","sum":21},{"parent":"PRAGMA","rule":"yt.OperationReaders","sum":12782804},{"parent":"PRAGMA","rule":"yt.OperationSpec","sum":8554262},{"parent":"PRAGMA","rule":"yt.OptimizeFor","sum":5765068},{"parent":"PRAGMA","rule":"yt.Owners","sum":65852261},{"parent":"PRAGMA","rule":"yt.POOL","sum":68},{"parent":"PRAGMA","rule":"yt.POol","sum":12},{"parent":"PRAGMA","rule":"yt.ParallelOperationsLimit","sum":1384490},{"parent":"PRAGMA","rule":"yt.PartitionByConstantKeysViaMap","sum":13},{"parent":"PRAGMA","rule":"yt.PooL","sum":1},{"parent":"PRAGMA","rule":"yt.Pool","sum":54684434},{"parent":"PRAGMA","rule":"yt.PoolTrees","sum":6598981},{"parent":"PRAGMA","rule":"yt.PrimaryMedium","sum":381954},{"parent":"PRAGMA","rule":"yt.PruneKeyFilterLambda","sum":560},{"parent":"PRAGMA","rule":"yt.PublishedAutoMerge","sum":3402932},{"parent":"PRAGMA","rule":"yt.PublishedCompressionCodec","sum":7389711},{"parent":"PRAGMA","rule":"yt.PublishedErasureCodec","sum":5377449},{"parent":"PRAGMA","rule":"yt.PublishedMedia","sum":4220},{"parent":"PRAGMA","rule":"yt.PublishedPrimaryMedium","sum":782354},{"parent":"PRAGMA","rule":"yt.PublishedReplicationFactor","sum":23458},{"parent":"PRAGMA","rule":"yt.PythonCpu","sum":81442},{"parent":"PRAGMA","rule":"yt.QueryCacheIgnoreTableRevision","sum":65674},{"parent":"PRAGMA","rule":"yt.QueryCacheMode","sum":24255862},{"parent":"PRAGMA","rule":"yt.QueryCacheSalt","sum":5},{"parent":"PRAGMA","rule":"yt.QueryCacheTtl","sum":8944821},{"parent":"PRAGMA","rule":"yt.QueryCacheUseForCalc","sum":8},{"parent":"PRAGMA","rule":"yt.QuerycacheMode","sum":2},{"parent":"PRAGMA","rule":"yt.ReleaseTempData","sum":2701171},{"parent":"PRAGMA","rule":"yt.STaticPool","sum":3},{"parent":"PRAGMA","rule":"yt.SamplingIoBlockSize","sum":3871},{"parent":"PRAGMA","rule":"yt.SchedulingTag","sum":37},{"parent":"PRAGMA","rule":"yt.SchedulingTagFilter","sum":2971},{"parent":"PRAGMA","rule":"yt.ScriptCpu","sum":4799},{"parent":"PRAGMA","rule":"yt.StartedBy","sum":264057},{"parent":"PRAGMA","rule":"yt.StaticPOol","sum":1},{"parent":"PRAGMA","rule":"yt.StaticPool","sum":112934029},{"parent":"PRAGMA","rule":"yt.Static_pool","sum":1},{"parent":"PRAGMA","rule":"yt.SuspendIfAccountLimitExceeded","sum":42805},{"parent":"PRAGMA","rule":"yt.TableContentDeliveryMode","sum":591},{"parent":"PRAGMA","rule":"yt.TableContentLocalExecution","sum":18},{"parent":"PRAGMA","rule":"yt.TableContentMaxChunksForNativeDelivery","sum":1},{"parent":"PRAGMA","rule":"yt.TableContentMaxInputTables","sum":6745},{"parent":"PRAGMA","rule":"yt.TableContentMinAvgChunkSize","sum":2641},{"parent":"PRAGMA","rule":"yt.TableContentTmpFolder","sum":28},{"parent":"PRAGMA","rule":"yt.TableContentUseSkiff","sum":11},{"parent":"PRAGMA","rule":"yt.TablesTmpFolder","sum":3427851},{"parent":"PRAGMA","rule":"yt.TempTablesTtl","sum":5363561},{"parent":"PRAGMA","rule":"yt.TemporaryAutoMerge","sum":8842097},{"parent":"PRAGMA","rule":"yt.TemporaryCompressionCodec","sum":5825991},{"parent":"PRAGMA","rule":"yt.TemporaryErasureCodec","sum":4747451},{"parent":"PRAGMA","rule":"yt.TemporaryPrimaryMedium","sum":494255},{"parent":"PRAGMA","rule":"yt.TemporaryReplicationFactor","sum":94},{"parent":"PRAGMA","rule":"yt.TentativePoolTrees","sum":1850255},{"parent":"PRAGMA","rule":"yt.TentativeTreeEligibilityMaxJobDurationRatio","sum":17563},{"parent":"PRAGMA","rule":"yt.TentativeTreeEligibilityMinJobDuration","sum":2176},{"parent":"PRAGMA","rule":"yt.TentativeTreeEligibilitySampleJobCount","sum":16218},{"parent":"PRAGMA","rule":"yt.TmpFolder","sum":31243741},{"parent":"PRAGMA","rule":"yt.TopSortMaxLimit","sum":59},{"parent":"PRAGMA","rule":"yt.TopSortSizePerJob","sum":1},{"parent":"PRAGMA","rule":"yt.USENATIVEYTTYPES","sum":25},{"parent":"PRAGMA","rule":"yt.USeNativeYtTypes","sum":12},{"parent":"PRAGMA","rule":"yt.UseColumnarStatistics","sum":166172},{"parent":"PRAGMA","rule":"yt.UseDefaultTentativePoolTrees","sum":252423},{"parent":"PRAGMA","rule":"yt.UseFlow","sum":3},{"parent":"PRAGMA","rule":"yt.UseIntermediateStreams","sum":6},{"parent":"PRAGMA","rule":"yt.UseNAtiveYtTypes","sum":1},{"parent":"PRAGMA","rule":"yt.UseNativeDescSort","sum":2005},{"parent":"PRAGMA","rule":"yt.UseNativeYtTYpes","sum":1485},{"parent":"PRAGMA","rule":"yt.UseNativeYtTypes","sum":24243051},{"parent":"PRAGMA","rule":"yt.UseNativeYttypes","sum":760},{"parent":"PRAGMA","rule":"yt.UseNativeytTypes","sum":514},{"parent":"PRAGMA","rule":"yt.UseNewPredicateExtraction","sum":182128},{"parent":"PRAGMA","rule":"yt.UseRPCReaderInDQ","sum":79},{"parent":"PRAGMA","rule":"yt.UseRPCReaderInDq","sum":12130},{"parent":"PRAGMA","rule":"yt.UseSkiff","sum":4049},{"parent":"PRAGMA","rule":"yt.UseSystemColumns","sum":2137},{"parent":"PRAGMA","rule":"yt.UseTmpfs","sum":34350},{"parent":"PRAGMA","rule":"yt.UseTypeV2","sum":4421},{"parent":"PRAGMA","rule":"yt.UseYqlRowSpecCompactForm","sum":3756},{"parent":"PRAGMA","rule":"yt.UserSlots","sum":2521151},{"parent":"PRAGMA","rule":"yt.ViewIsolation","sum":966},{"parent":"PRAGMA","rule":"yt.WideFlowLimit","sum":157941},{"parent":"PRAGMA","rule":"yt.auth","sum":47422},{"parent":"PRAGMA","rule":"yt.datasizeperjob","sum":2025},{"parent":"PRAGMA","rule":"yt.defaultoperationweight","sum":47},{"parent":"PRAGMA","rule":"yt.forceinferschema","sum":50},{"parent":"PRAGMA","rule":"yt.inferSchema","sum":54517},{"parent":"PRAGMA","rule":"yt.infer_schema","sum":10},{"parent":"PRAGMA","rule":"yt.inferschema","sum":2993},{"parent":"PRAGMA","rule":"yt.mapjoinlimit","sum":97691},{"parent":"PRAGMA","rule":"yt.maxRowWeight","sum":1},{"parent":"PRAGMA","rule":"yt.max_row_weight","sum":19},{"parent":"PRAGMA","rule":"yt.maxjobcount","sum":5},{"parent":"PRAGMA","rule":"yt.maxrowweight","sum":41883},{"parent":"PRAGMA","rule":"yt.minPublishedAvgChunksize","sum":11},{"parent":"PRAGMA","rule":"yt.network_project","sum":14438},{"parent":"PRAGMA","rule":"yt.pool","sum":6851101},{"parent":"PRAGMA","rule":"yt.pool_trees","sum":1},{"parent":"PRAGMA","rule":"yt.pooltrees","sum":53},{"parent":"PRAGMA","rule":"yt.publishedcompressioncodec","sum":402},{"parent":"PRAGMA","rule":"yt.staticPool","sum":1262549},{"parent":"PRAGMA","rule":"yt.static_pool","sum":20},{"parent":"PRAGMA","rule":"yt.staticpool","sum":10663},{"parent":"PRAGMA","rule":"yt.tmpFolder","sum":76618},{"parent":"PRAGMA","rule":"yt.tmpfolder","sum":65},{"parent":"PRAGMA","rule":"yt.useNativeYtTYpes","sum":1},{"parent":"PRAGMA","rule":"yt.useNativeYtTypes","sum":909},{"parent":"PRAGMA","rule":"yt.usenativeyttypes","sum":167},{"parent":"TRule_action_or_subquery_args","rule":"TRule_action_or_subquery_args.Block2","sum":4937230},{"parent":"TRule_action_or_subquery_args","rule":"TRule_action_or_subquery_args.Rule_opt_bind_parameter1","sum":13950455},{"parent":"TRule_action_or_subquery_args.TBlock2","rule":"TRule_action_or_subquery_args.TBlock2.Rule_opt_bind_parameter2","sum":7499701},{"parent":"TRule_action_or_subquery_args.TBlock2","rule":"TRule_action_or_subquery_args.TBlock2.Token1","sum":7499701},{"parent":"TRule_add_subexpr","rule":"TRule_add_subexpr.Block2","sum":136399194},{"parent":"TRule_add_subexpr","rule":"TRule_add_subexpr.Rule_mul_subexpr1","sum":15618407399},{"parent":"TRule_add_subexpr.TBlock2","rule":"TRule_add_subexpr.TBlock2.Rule_mul_subexpr2","sum":167963005},{"parent":"TRule_add_subexpr.TBlock2","rule":"TRule_add_subexpr.TBlock2.Token1","sum":167963005},{"parent":"TRule_an_id","rule":"TRule_an_id.Alt_an_id1","sum":2002378369},{"parent":"TRule_an_id.TAlt1","rule":"TRule_an_id.TAlt1.Rule_id1","sum":2002378369},{"parent":"TRule_an_id_as_compat","rule":"TRule_an_id_as_compat.Alt_an_id_as_compat1","sum":2986536},{"parent":"TRule_an_id_as_compat.TAlt1","rule":"TRule_an_id_as_compat.TAlt1.Rule_id_as_compat1","sum":2986536},{"parent":"TRule_an_id_expr","rule":"TRule_an_id_expr.Alt_an_id_expr1","sum":96266390},{"parent":"TRule_an_id_expr.TAlt1","rule":"TRule_an_id_expr.TAlt1.Rule_id_expr1","sum":96266390},{"parent":"TRule_an_id_hint","rule":"TRule_an_id_hint.Alt_an_id_hint1","sum":154334901},{"parent":"TRule_an_id_hint.TAlt1","rule":"TRule_an_id_hint.TAlt1.Rule_id_hint1","sum":154334901},{"parent":"TRule_an_id_or_type","rule":"TRule_an_id_or_type.Alt_an_id_or_type1","sum":9623698435},{"parent":"TRule_an_id_or_type","rule":"TRule_an_id_or_type.Alt_an_id_or_type2","sum":7},{"parent":"TRule_an_id_or_type.TAlt1","rule":"TRule_an_id_or_type.TAlt1.Rule_id_or_type1","sum":9623698435},{"parent":"TRule_an_id_or_type.TAlt2","rule":"TRule_an_id_or_type.TAlt2.Token1","sum":7},{"parent":"TRule_an_id_pure","rule":"TRule_an_id_pure.Alt_an_id_pure1","sum":677385895},{"parent":"TRule_an_id_pure.TAlt1","rule":"TRule_an_id_pure.TAlt1.Rule_identifier1","sum":677385895},{"parent":"TRule_an_id_schema","rule":"TRule_an_id_schema.Alt_an_id_schema1","sum":1181},{"parent":"TRule_an_id_schema.TAlt1","rule":"TRule_an_id_schema.TAlt1.Rule_id_schema1","sum":1181},{"parent":"TRule_an_id_table","rule":"TRule_an_id_table.Alt_an_id_table1","sum":330797323},{"parent":"TRule_an_id_table","rule":"TRule_an_id_table.Alt_an_id_table2","sum":1},{"parent":"TRule_an_id_table.TAlt1","rule":"TRule_an_id_table.TAlt1.Rule_id_table1","sum":330797323},{"parent":"TRule_an_id_table.TAlt2","rule":"TRule_an_id_table.TAlt2.Token1","sum":1},{"parent":"TRule_an_id_window","rule":"TRule_an_id_window.Alt_an_id_window1","sum":46640092},{"parent":"TRule_an_id_window.TAlt1","rule":"TRule_an_id_window.TAlt1.Rule_id_window1","sum":46640092},{"parent":"TRule_an_id_without","rule":"TRule_an_id_without.Alt_an_id_without1","sum":23278546},{"parent":"TRule_an_id_without.TAlt1","rule":"TRule_an_id_without.TAlt1.Rule_id_without1","sum":23278546},{"parent":"TRule_and_subexpr","rule":"TRule_and_subexpr.Block2","sum":29466},{"parent":"TRule_and_subexpr","rule":"TRule_and_subexpr.Rule_xor_subexpr1","sum":14281530840},{"parent":"TRule_and_subexpr.TBlock2","rule":"TRule_and_subexpr.TBlock2.Rule_xor_subexpr2","sum":29530},{"parent":"TRule_and_subexpr.TBlock2","rule":"TRule_and_subexpr.TBlock2.Token1","sum":29530},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr1","sum":5166388612},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr10","sum":35961481},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr11","sum":8505553},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr12","sum":14597994},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr2","sum":1770883384},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr3","sum":446646858},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr4","sum":398317432},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr5","sum":77082},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr6","sum":61695919},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr7","sum":927990981},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr8","sum":163639},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr9","sum":510126},{"parent":"TRule_atom_expr.TAlt1","rule":"TRule_atom_expr.TAlt1.Rule_literal_value1","sum":5166388612},{"parent":"TRule_atom_expr.TAlt10","rule":"TRule_atom_expr.TAlt10.Rule_list_literal1","sum":35961481},{"parent":"TRule_atom_expr.TAlt11","rule":"TRule_atom_expr.TAlt11.Rule_dict_literal1","sum":8505553},{"parent":"TRule_atom_expr.TAlt12","rule":"TRule_atom_expr.TAlt12.Rule_struct_literal1","sum":14597994},{"parent":"TRule_atom_expr.TAlt2","rule":"TRule_atom_expr.TAlt2.Rule_bind_parameter1","sum":1770883384},{"parent":"TRule_atom_expr.TAlt3","rule":"TRule_atom_expr.TAlt3.Rule_lambda1","sum":446646858},{"parent":"TRule_atom_expr.TAlt4","rule":"TRule_atom_expr.TAlt4.Rule_cast_expr1","sum":398317432},{"parent":"TRule_atom_expr.TAlt5","rule":"TRule_atom_expr.TAlt5.Rule_exists_expr1","sum":77082},{"parent":"TRule_atom_expr.TAlt6","rule":"TRule_atom_expr.TAlt6.Rule_case_expr1","sum":61695919},{"parent":"TRule_atom_expr.TAlt7","rule":"TRule_atom_expr.TAlt7.Block3","sum":927990981},{"parent":"TRule_atom_expr.TAlt7","rule":"TRule_atom_expr.TAlt7.Rule_an_id_or_type1","sum":927990981},{"parent":"TRule_atom_expr.TAlt7","rule":"TRule_atom_expr.TAlt7.Token2","sum":927990981},{"parent":"TRule_atom_expr.TAlt7.TBlock3","rule":"TRule_atom_expr.TAlt7.TBlock3.Alt1","sum":927989742},{"parent":"TRule_atom_expr.TAlt7.TBlock3","rule":"TRule_atom_expr.TAlt7.TBlock3.Alt2","sum":1239},{"parent":"TRule_atom_expr.TAlt7.TBlock3.TAlt1","rule":"TRule_atom_expr.TAlt7.TBlock3.TAlt1.Rule_id_or_type1","sum":927989742},{"parent":"TRule_atom_expr.TAlt7.TBlock3.TAlt2","rule":"TRule_atom_expr.TAlt7.TBlock3.TAlt2.Token1","sum":1239},{"parent":"TRule_atom_expr.TAlt8","rule":"TRule_atom_expr.TAlt8.Rule_value_constructor1","sum":163639},{"parent":"TRule_atom_expr.TAlt9","rule":"TRule_atom_expr.TAlt9.Rule_bitcast_expr1","sum":510126},{"parent":"TRule_bind_parameter","rule":"TRule_bind_parameter.Block2","sum":3701723791},{"parent":"TRule_bind_parameter","rule":"TRule_bind_parameter.Token1","sum":3701723791},{"parent":"TRule_bind_parameter.TBlock2","rule":"TRule_bind_parameter.TBlock2.Alt1","sum":3701711851},{"parent":"TRule_bind_parameter.TBlock2","rule":"TRule_bind_parameter.TBlock2.Alt2","sum":9460},{"parent":"TRule_bind_parameter.TBlock2","rule":"TRule_bind_parameter.TBlock2.Alt3","sum":2480},{"parent":"TRule_bind_parameter.TBlock2.TAlt1","rule":"TRule_bind_parameter.TBlock2.TAlt1.Rule_an_id_or_type1","sum":3701711851},{"parent":"TRule_bind_parameter.TBlock2.TAlt2","rule":"TRule_bind_parameter.TBlock2.TAlt2.Token1","sum":9460},{"parent":"TRule_bind_parameter.TBlock2.TAlt3","rule":"TRule_bind_parameter.TBlock2.TAlt3.Token1","sum":2480},{"parent":"TRule_bind_parameter_list","rule":"TRule_bind_parameter_list.Block2","sum":244789},{"parent":"TRule_bind_parameter_list","rule":"TRule_bind_parameter_list.Rule_bind_parameter1","sum":1007079493},{"parent":"TRule_bind_parameter_list.TBlock2","rule":"TRule_bind_parameter_list.TBlock2.Rule_bind_parameter2","sum":336756},{"parent":"TRule_bind_parameter_list.TBlock2","rule":"TRule_bind_parameter_list.TBlock2.Token1","sum":336756},{"parent":"TRule_bit_subexpr","rule":"TRule_bit_subexpr.Block2","sum":138551599},{"parent":"TRule_bit_subexpr","rule":"TRule_bit_subexpr.Rule_add_subexpr1","sum":15460391762},{"parent":"TRule_bit_subexpr.TBlock2","rule":"TRule_bit_subexpr.TBlock2.Rule_add_subexpr2","sum":158015637},{"parent":"TRule_bit_subexpr.TBlock2","rule":"TRule_bit_subexpr.TBlock2.Token1","sum":158015637},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Rule_expr3","sum":510126},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Rule_type_name_simple5","sum":510126},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token1","sum":510126},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token2","sum":510126},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token4","sum":510126},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token6","sum":510126},{"parent":"TRule_bool_value","rule":"TRule_bool_value.Token1","sum":104231904},{"parent":"TRule_call_action","rule":"TRule_call_action.Block1","sum":9439855},{"parent":"TRule_call_action","rule":"TRule_call_action.Block3","sum":7169537},{"parent":"TRule_call_action","rule":"TRule_call_action.Token2","sum":9439855},{"parent":"TRule_call_action","rule":"TRule_call_action.Token4","sum":9439855},{"parent":"TRule_call_action.TBlock1","rule":"TRule_call_action.TBlock1.Alt1","sum":9313937},{"parent":"TRule_call_action.TBlock1","rule":"TRule_call_action.TBlock1.Alt2","sum":125918},{"parent":"TRule_call_action.TBlock1.TAlt1","rule":"TRule_call_action.TBlock1.TAlt1.Rule_bind_parameter1","sum":9313937},{"parent":"TRule_call_action.TBlock1.TAlt2","rule":"TRule_call_action.TBlock1.TAlt2.Token1","sum":125918},{"parent":"TRule_call_action.TBlock3","rule":"TRule_call_action.TBlock3.Rule_expr_list1","sum":7169537},{"parent":"TRule_callable_arg","rule":"TRule_callable_arg.Block2","sum":1},{"parent":"TRule_callable_arg","rule":"TRule_callable_arg.Rule_variant_arg1","sum":17979058},{"parent":"TRule_callable_arg.TBlock2","rule":"TRule_callable_arg.TBlock2.Token1","sum":1},{"parent":"TRule_callable_arg.TBlock2","rule":"TRule_callable_arg.TBlock2.Token2","sum":1},{"parent":"TRule_callable_arg.TBlock2","rule":"TRule_callable_arg.TBlock2.Token3","sum":1},{"parent":"TRule_callable_arg_list","rule":"TRule_callable_arg_list.Block2","sum":4366203},{"parent":"TRule_callable_arg_list","rule":"TRule_callable_arg_list.Rule_callable_arg1","sum":9770032},{"parent":"TRule_callable_arg_list.TBlock2","rule":"TRule_callable_arg_list.TBlock2.Rule_callable_arg2","sum":8209026},{"parent":"TRule_callable_arg_list.TBlock2","rule":"TRule_callable_arg_list.TBlock2.Token1","sum":8209026},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Block2","sum":4703469},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Block3","sum":61695923},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Block4","sum":61695923},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Token1","sum":61695923},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Token5","sum":61695923},{"parent":"TRule_case_expr.TBlock2","rule":"TRule_case_expr.TBlock2.Rule_expr1","sum":4703469},{"parent":"TRule_case_expr.TBlock3","rule":"TRule_case_expr.TBlock3.Rule_when_expr1","sum":158241873},{"parent":"TRule_case_expr.TBlock4","rule":"TRule_case_expr.TBlock4.Rule_expr2","sum":61695923},{"parent":"TRule_case_expr.TBlock4","rule":"TRule_case_expr.TBlock4.Token1","sum":61695923},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Rule_expr3","sum":398361820},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Rule_type_name_or_bind5","sum":398361820},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token1","sum":398361820},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token2","sum":398361820},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token4","sum":398361820},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token6","sum":398361820},{"parent":"TRule_cluster_expr","rule":"TRule_cluster_expr.Block1","sum":6776988},{"parent":"TRule_cluster_expr","rule":"TRule_cluster_expr.Block2","sum":374662314},{"parent":"TRule_cluster_expr.TBlock1","rule":"TRule_cluster_expr.TBlock1.Rule_an_id1","sum":6776988},{"parent":"TRule_cluster_expr.TBlock1","rule":"TRule_cluster_expr.TBlock1.Token2","sum":6776988},{"parent":"TRule_cluster_expr.TBlock2","rule":"TRule_cluster_expr.TBlock2.Alt1","sum":374662314},{"parent":"TRule_cluster_expr.TBlock2.TAlt1","rule":"TRule_cluster_expr.TBlock2.TAlt1.Rule_pure_column_or_named1","sum":374662314},{"parent":"TRule_column_list","rule":"TRule_column_list.Block2","sum":282294},{"parent":"TRule_column_list","rule":"TRule_column_list.Block3","sum":805},{"parent":"TRule_column_list","rule":"TRule_column_list.Rule_column_name1","sum":848767},{"parent":"TRule_column_list.TBlock2","rule":"TRule_column_list.TBlock2.Rule_column_name2","sum":1124311},{"parent":"TRule_column_list.TBlock2","rule":"TRule_column_list.TBlock2.Token1","sum":1124311},{"parent":"TRule_column_list.TBlock3","rule":"TRule_column_list.TBlock3.Token1","sum":805},{"parent":"TRule_column_name","rule":"TRule_column_name.Rule_an_id2","sum":23324516},{"parent":"TRule_column_name","rule":"TRule_column_name.Rule_opt_id_prefix1","sum":23324516},{"parent":"TRule_column_order_by_specification","rule":"TRule_column_order_by_specification.Rule_an_id1","sum":107},{"parent":"TRule_column_schema","rule":"TRule_column_schema.Rule_an_id_schema1","sum":1181},{"parent":"TRule_column_schema","rule":"TRule_column_schema.Rule_opt_column_constraints4","sum":1181},{"parent":"TRule_column_schema","rule":"TRule_column_schema.Rule_type_name_or_bind2","sum":1181},{"parent":"TRule_commit_stmt","rule":"TRule_commit_stmt.Token1","sum":13017921},{"parent":"TRule_con_subexpr","rule":"TRule_con_subexpr.Alt_con_subexpr1","sum":15927923723},{"parent":"TRule_con_subexpr","rule":"TRule_con_subexpr.Alt_con_subexpr2","sum":87792338},{"parent":"TRule_con_subexpr.TAlt1","rule":"TRule_con_subexpr.TAlt1.Rule_unary_subexpr1","sum":15927923723},{"parent":"TRule_con_subexpr.TAlt2","rule":"TRule_con_subexpr.TAlt2.Rule_unary_op1","sum":87792338},{"parent":"TRule_con_subexpr.TAlt2","rule":"TRule_con_subexpr.TAlt2.Rule_unary_subexpr2","sum":87792338},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr1","sum":52200219},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr2","sum":126116119},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr3","sum":172659778},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr4","sum":24970630},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr5","sum":719590569},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Block1","sum":9282308},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Block4","sum":93089},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Rule_eq_subexpr3","sum":52200219},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Rule_match_op2","sum":52200219},{"parent":"TRule_cond_expr.TAlt1.TBlock1","rule":"TRule_cond_expr.TAlt1.TBlock1.Token1","sum":9282308},{"parent":"TRule_cond_expr.TAlt1.TBlock4","rule":"TRule_cond_expr.TAlt1.TBlock4.Rule_eq_subexpr2","sum":93089},{"parent":"TRule_cond_expr.TAlt1.TBlock4","rule":"TRule_cond_expr.TAlt1.TBlock4.Token1","sum":93089},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Block1","sum":26171687},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Block3","sum":3144732},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Rule_in_expr4","sum":126116119},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Token2","sum":126116119},{"parent":"TRule_cond_expr.TAlt2.TBlock1","rule":"TRule_cond_expr.TAlt2.TBlock1.Token1","sum":26171687},{"parent":"TRule_cond_expr.TAlt2.TBlock3","rule":"TRule_cond_expr.TAlt2.TBlock3.Token1","sum":3144732},{"parent":"TRule_cond_expr.TAlt3","rule":"TRule_cond_expr.TAlt3.Block1","sum":172659778},{"parent":"TRule_cond_expr.TAlt3.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.Alt1","sum":163},{"parent":"TRule_cond_expr.TAlt3.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.Alt2","sum":412},{"parent":"TRule_cond_expr.TAlt3.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.Alt3","sum":60677332},{"parent":"TRule_cond_expr.TAlt3.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.Alt4","sum":111981871},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt1","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt1.Token1","sum":163},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt2","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt2.Token1","sum":412},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt3","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt3.Token1","sum":60677332},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt3","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt3.Token2","sum":60677332},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.Block1","sum":111940435},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.Token2","sum":111981871},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.Token3","sum":111981871},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.TBlock1.Token1","sum":111940435},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Block1","sum":402989},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Block3","sum":25},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Rule_eq_subexpr4","sum":24970630},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Rule_eq_subexpr6","sum":24970630},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Token2","sum":24970630},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Token5","sum":24970630},{"parent":"TRule_cond_expr.TAlt4.TBlock1","rule":"TRule_cond_expr.TAlt4.TBlock1.Token1","sum":402989},{"parent":"TRule_cond_expr.TAlt4.TBlock3","rule":"TRule_cond_expr.TAlt4.TBlock3.Token1","sum":25},{"parent":"TRule_cond_expr.TAlt5","rule":"TRule_cond_expr.TAlt5.Block1","sum":719590569},{"parent":"TRule_cond_expr.TAlt5.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.Block1","sum":719592554},{"parent":"TRule_cond_expr.TAlt5.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.Rule_eq_subexpr2","sum":719592554},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt1","sum":492260107},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt2","sum":172254454},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt3","sum":49582527},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt4","sum":5097730},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt5","sum":397736},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt1.Token1","sum":492260107},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt2","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt2.Token1","sum":172254454},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt3","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt3.Token1","sum":49582527},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt4.Token1","sum":5097730},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt5","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt5.Rule_distinct_from_op1","sum":397736},{"parent":"TRule_create_table_entry","rule":"TRule_create_table_entry.Alt_create_table_entry1","sum":1181},{"parent":"TRule_create_table_entry","rule":"TRule_create_table_entry.Alt_create_table_entry2","sum":233},{"parent":"TRule_create_table_entry.TAlt1","rule":"TRule_create_table_entry.TAlt1.Rule_column_schema1","sum":1181},{"parent":"TRule_create_table_entry.TAlt2","rule":"TRule_create_table_entry.TAlt2.Rule_table_constraint1","sum":233},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Block3","sum":127},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Block8","sum":127},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Rule_create_table_entry7","sum":127},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Rule_simple_table_ref5","sum":127},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Token1","sum":127},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Token10","sum":127},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Token6","sum":127},{"parent":"TRule_create_table_stmt.TBlock3","rule":"TRule_create_table_stmt.TBlock3.Alt1","sum":127},{"parent":"TRule_create_table_stmt.TBlock3.TAlt1","rule":"TRule_create_table_stmt.TBlock3.TAlt1.Token1","sum":127},{"parent":"TRule_create_table_stmt.TBlock8","rule":"TRule_create_table_stmt.TBlock8.Rule_create_table_entry2","sum":1287},{"parent":"TRule_create_table_stmt.TBlock8","rule":"TRule_create_table_stmt.TBlock8.Token1","sum":1287},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Rule_ordinary_grouping_set_list3","sum":276671},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Token1","sum":276671},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Token2","sum":276671},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Token4","sum":276671},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Rule_bind_parameter2","sum":156358531},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Rule_type_name4","sum":156358531},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Token1","sum":156358531},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Token3","sum":156358531},{"parent":"TRule_define_action_or_subquery_body","rule":"TRule_define_action_or_subquery_body.Block1","sum":45559},{"parent":"TRule_define_action_or_subquery_body","rule":"TRule_define_action_or_subquery_body.Block2","sum":36124603},{"parent":"TRule_define_action_or_subquery_body.TBlock1","rule":"TRule_define_action_or_subquery_body.TBlock1.Token1","sum":45559},{"parent":"TRule_define_action_or_subquery_body.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.Block2","sum":16082328},{"parent":"TRule_define_action_or_subquery_body.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.Block3","sum":23526370},{"parent":"TRule_define_action_or_subquery_body.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.Rule_sql_stmt_core1","sum":36124603},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.Block1","sum":45905507},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.Rule_sql_stmt_core2","sum":45905507},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.TBlock1","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.TBlock1.Token1","sum":45918577},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock3","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock3.Token1","sum":23552077},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Block5","sum":13950455},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Rule_bind_parameter3","sum":22267674},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Rule_define_action_or_subquery_body8","sum":22267674},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token1","sum":22267674},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token10","sum":22267674},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token2","sum":22267674},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token4","sum":22267674},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token6","sum":22267674},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token7","sum":22267674},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token9","sum":22267674},{"parent":"TRule_define_action_or_subquery_stmt.TBlock5","rule":"TRule_define_action_or_subquery_stmt.TBlock5.Rule_action_or_subquery_args1","sum":13950455},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Block2","sum":8218509},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Block3","sum":2249006},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Token1","sum":8960374},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Token4","sum":8960374},{"parent":"TRule_dict_literal.TBlock2","rule":"TRule_dict_literal.TBlock2.Rule_expr_dict_list1","sum":8218509},{"parent":"TRule_dict_literal.TBlock3","rule":"TRule_dict_literal.TBlock3.Token1","sum":2249006},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Block2","sum":118890},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Token1","sum":397736},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Token3","sum":397736},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Token4","sum":397736},{"parent":"TRule_distinct_from_op.TBlock2","rule":"TRule_distinct_from_op.TBlock2.Token1","sum":118890},{"parent":"TRule_do_stmt","rule":"TRule_do_stmt.Block2","sum":23303339},{"parent":"TRule_do_stmt","rule":"TRule_do_stmt.Token1","sum":23303339},{"parent":"TRule_do_stmt.TBlock2","rule":"TRule_do_stmt.TBlock2.Alt1","sum":9439855},{"parent":"TRule_do_stmt.TBlock2","rule":"TRule_do_stmt.TBlock2.Alt2","sum":13863484},{"parent":"TRule_do_stmt.TBlock2.TAlt1","rule":"TRule_do_stmt.TBlock2.TAlt1.Rule_call_action1","sum":9439855},{"parent":"TRule_do_stmt.TBlock2.TAlt2","rule":"TRule_do_stmt.TBlock2.TAlt2.Rule_inline_action1","sum":13863484},{"parent":"TRule_double_question","rule":"TRule_double_question.Token1","sum":108321380},{"parent":"TRule_double_question","rule":"TRule_double_question.Token2","sum":108321380},{"parent":"TRule_drop_table_stmt","rule":"TRule_drop_table_stmt.Block2","sum":2566518},{"parent":"TRule_drop_table_stmt","rule":"TRule_drop_table_stmt.Block3","sum":3},{"parent":"TRule_drop_table_stmt","rule":"TRule_drop_table_stmt.Rule_simple_table_ref4","sum":2566518},{"parent":"TRule_drop_table_stmt","rule":"TRule_drop_table_stmt.Token1","sum":2566518},{"parent":"TRule_drop_table_stmt.TBlock2","rule":"TRule_drop_table_stmt.TBlock2.Alt1","sum":2566518},{"parent":"TRule_drop_table_stmt.TBlock2.TAlt1","rule":"TRule_drop_table_stmt.TBlock2.TAlt1.Token1","sum":2566518},{"parent":"TRule_drop_table_stmt.TBlock3","rule":"TRule_drop_table_stmt.TBlock3.Token1","sum":3},{"parent":"TRule_drop_table_stmt.TBlock3","rule":"TRule_drop_table_stmt.TBlock3.Token2","sum":3},{"parent":"TRule_eq_subexpr","rule":"TRule_eq_subexpr.Block2","sum":239470161},{"parent":"TRule_eq_subexpr","rule":"TRule_eq_subexpr.Rule_neq_subexpr1","sum":15103387492},{"parent":"TRule_eq_subexpr.TBlock2","rule":"TRule_eq_subexpr.TBlock2.Rule_neq_subexpr2","sum":239470216},{"parent":"TRule_eq_subexpr.TBlock2","rule":"TRule_eq_subexpr.TBlock2.Token1","sum":239470216},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Block3","sum":77082},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Token1","sum":77082},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Token2","sum":77082},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Token4","sum":77082},{"parent":"TRule_exists_expr.TBlock3","rule":"TRule_exists_expr.TBlock3.Alt1","sum":77082},{"parent":"TRule_exists_expr.TBlock3.TAlt1","rule":"TRule_exists_expr.TBlock3.TAlt1.Rule_select_stmt1","sum":77082},{"parent":"TRule_expr","rule":"TRule_expr.Alt_expr1","sum":13695230947},{"parent":"TRule_expr","rule":"TRule_expr.Alt_expr2","sum":17375948},{"parent":"TRule_expr.TAlt1","rule":"TRule_expr.TAlt1.Block2","sum":68340563},{"parent":"TRule_expr.TAlt1","rule":"TRule_expr.TAlt1.Rule_or_subexpr1","sum":13695230947},{"parent":"TRule_expr.TAlt1.TBlock2","rule":"TRule_expr.TAlt1.TBlock2.Rule_or_subexpr2","sum":115179334},{"parent":"TRule_expr.TAlt1.TBlock2","rule":"TRule_expr.TAlt1.TBlock2.Token1","sum":115179334},{"parent":"TRule_expr.TAlt2","rule":"TRule_expr.TAlt2.Rule_type_name_composite1","sum":17375948},{"parent":"TRule_expr_dict_list","rule":"TRule_expr_dict_list.Block2","sum":7021313},{"parent":"TRule_expr_dict_list","rule":"TRule_expr_dict_list.Block3","sum":6633289},{"parent":"TRule_expr_dict_list","rule":"TRule_expr_dict_list.Rule_expr1","sum":8218509},{"parent":"TRule_expr_dict_list.TBlock2","rule":"TRule_expr_dict_list.TBlock2.Rule_expr2","sum":7021313},{"parent":"TRule_expr_dict_list.TBlock2","rule":"TRule_expr_dict_list.TBlock2.Token1","sum":7021313},{"parent":"TRule_expr_dict_list.TBlock3","rule":"TRule_expr_dict_list.TBlock3.Block3","sum":35212745},{"parent":"TRule_expr_dict_list.TBlock3","rule":"TRule_expr_dict_list.TBlock3.Rule_expr2","sum":42151326},{"parent":"TRule_expr_dict_list.TBlock3","rule":"TRule_expr_dict_list.TBlock3.Token1","sum":42151326},{"parent":"TRule_expr_dict_list.TBlock3.TBlock3","rule":"TRule_expr_dict_list.TBlock3.TBlock3.Rule_expr2","sum":35212745},{"parent":"TRule_expr_dict_list.TBlock3.TBlock3","rule":"TRule_expr_dict_list.TBlock3.TBlock3.Token1","sum":35212745},{"parent":"TRule_expr_list","rule":"TRule_expr_list.Block2","sum":41893722},{"parent":"TRule_expr_list","rule":"TRule_expr_list.Rule_expr1","sum":67465016},{"parent":"TRule_expr_list.TBlock2","rule":"TRule_expr_list.TBlock2.Rule_expr2","sum":206368221},{"parent":"TRule_expr_list.TBlock2","rule":"TRule_expr_list.TBlock2.Token1","sum":206368221},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Block4","sum":12532295},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Rule_expr1","sum":14467055},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Rule_expr3","sum":14467055},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Token2","sum":14467055},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Rule_expr2","sum":31267575},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Rule_expr4","sum":31267575},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Token1","sum":31267575},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Token3","sum":31267575},{"parent":"TRule_ext_order_by_clause","rule":"TRule_ext_order_by_clause.Block1","sum":2591132},{"parent":"TRule_ext_order_by_clause","rule":"TRule_ext_order_by_clause.Rule_order_by_clause2","sum":88637099},{"parent":"TRule_ext_order_by_clause.TBlock1","rule":"TRule_ext_order_by_clause.TBlock1.Token1","sum":2591132},{"parent":"TRule_flatten_by_arg","rule":"TRule_flatten_by_arg.Alt_flatten_by_arg1","sum":21351438},{"parent":"TRule_flatten_by_arg","rule":"TRule_flatten_by_arg.Alt_flatten_by_arg2","sum":4323714},{"parent":"TRule_flatten_by_arg.TAlt1","rule":"TRule_flatten_by_arg.TAlt1.Rule_named_column1","sum":21351438},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Block3","sum":52003},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Rule_named_expr_list2","sum":4323714},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Token1","sum":4323714},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Token4","sum":4323714},{"parent":"TRule_flatten_by_arg.TAlt2.TBlock3","rule":"TRule_flatten_by_arg.TAlt2.TBlock3.Token1","sum":52003},{"parent":"TRule_flatten_source","rule":"TRule_flatten_source.Block2","sum":33608927},{"parent":"TRule_flatten_source","rule":"TRule_flatten_source.Rule_named_single_source1","sum":1052565235},{"parent":"TRule_flatten_source.TBlock2","rule":"TRule_flatten_source.TBlock2.Block2","sum":33608927},{"parent":"TRule_flatten_source.TBlock2","rule":"TRule_flatten_source.TBlock2.Token1","sum":33608927},{"parent":"TRule_flatten_source.TBlock2.TBlock2","rule":"TRule_flatten_source.TBlock2.TBlock2.Alt1","sum":25675152},{"parent":"TRule_flatten_source.TBlock2.TBlock2","rule":"TRule_flatten_source.TBlock2.TBlock2.Alt2","sum":7933775},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.Block1","sum":19618250},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.Rule_flatten_by_arg3","sum":25675152},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.Token2","sum":25675152},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.TBlock1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.TBlock1.Token1","sum":19618250},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt2","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt2.Token1","sum":7933775},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Block1","sum":7000777},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Block2","sum":8},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Block8","sum":64710},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Rule_bind_parameter4","sum":7000888},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Rule_do_stmt7","sum":7000888},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Rule_expr6","sum":7000888},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Token3","sum":7000888},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Token5","sum":7000888},{"parent":"TRule_for_stmt.TBlock1","rule":"TRule_for_stmt.TBlock1.Token1","sum":7000777},{"parent":"TRule_for_stmt.TBlock2","rule":"TRule_for_stmt.TBlock2.Token1","sum":8},{"parent":"TRule_for_stmt.TBlock8","rule":"TRule_for_stmt.TBlock8.Rule_do_stmt2","sum":64710},{"parent":"TRule_for_stmt.TBlock8","rule":"TRule_for_stmt.TBlock8.Token1","sum":64710},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Block2","sum":1604634},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Block6","sum":6},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Rule_grouping_element_list5","sum":137888913},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Rule_opt_set_quantifier4","sum":137888913},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Token1","sum":137888913},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Token3","sum":137888913},{"parent":"TRule_group_by_clause.TBlock2","rule":"TRule_group_by_clause.TBlock2.Token1","sum":1604634},{"parent":"TRule_group_by_clause.TBlock6","rule":"TRule_group_by_clause.TBlock6.Rule_an_id2","sum":6},{"parent":"TRule_group_by_clause.TBlock6","rule":"TRule_group_by_clause.TBlock6.Token1","sum":6},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element1","sum":300533615},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element2","sum":62439},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element3","sum":276671},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element4","sum":92442},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element5","sum":23},{"parent":"TRule_grouping_element.TAlt1","rule":"TRule_grouping_element.TAlt1.Rule_ordinary_grouping_set1","sum":300533615},{"parent":"TRule_grouping_element.TAlt2","rule":"TRule_grouping_element.TAlt2.Rule_rollup_list1","sum":62439},{"parent":"TRule_grouping_element.TAlt3","rule":"TRule_grouping_element.TAlt3.Rule_cube_list1","sum":276671},{"parent":"TRule_grouping_element.TAlt4","rule":"TRule_grouping_element.TAlt4.Rule_grouping_sets_specification1","sum":92442},{"parent":"TRule_grouping_element.TAlt5","rule":"TRule_grouping_element.TAlt5.Rule_hopping_window_specification1","sum":23},{"parent":"TRule_grouping_element_list","rule":"TRule_grouping_element_list.Block2","sum":62735458},{"parent":"TRule_grouping_element_list","rule":"TRule_grouping_element_list.Rule_grouping_element1","sum":137981355},{"parent":"TRule_grouping_element_list.TBlock2","rule":"TRule_grouping_element_list.TBlock2.Rule_grouping_element2","sum":162983835},{"parent":"TRule_grouping_element_list.TBlock2","rule":"TRule_grouping_element_list.TBlock2.Token1","sum":162983835},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Rule_grouping_element_list4","sum":92442},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token1","sum":92442},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token2","sum":92442},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token3","sum":92442},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token5","sum":92442},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Rule_expr3","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Rule_expr5","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Rule_expr7","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Rule_expr9","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Token1","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Token10","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Token2","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Token4","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Token6","sum":23},{"parent":"TRule_hopping_window_specification","rule":"TRule_hopping_window_specification.Token8","sum":23},{"parent":"TRule_id","rule":"TRule_id.Alt_id1","sum":12118792042},{"parent":"TRule_id","rule":"TRule_id.Alt_id2","sum":531580247},{"parent":"TRule_id.TAlt1","rule":"TRule_id.TAlt1.Rule_identifier1","sum":12118792042},{"parent":"TRule_id.TAlt2","rule":"TRule_id.TAlt2.Rule_keyword1","sum":531580247},{"parent":"TRule_id_as_compat","rule":"TRule_id_as_compat.Alt_id_as_compat1","sum":2983926},{"parent":"TRule_id_as_compat","rule":"TRule_id_as_compat.Alt_id_as_compat2","sum":2610},{"parent":"TRule_id_as_compat.TAlt1","rule":"TRule_id_as_compat.TAlt1.Rule_identifier1","sum":2983926},{"parent":"TRule_id_as_compat.TAlt2","rule":"TRule_id_as_compat.TAlt2.Rule_keyword_as_compat1","sum":2610},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr1","sum":6918553572},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr2","sum":319560587},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr3","sum":430787},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr5","sum":35187248},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr6","sum":181489},{"parent":"TRule_id_expr.TAlt1","rule":"TRule_id_expr.TAlt1.Rule_identifier1","sum":6918553572},{"parent":"TRule_id_expr.TAlt2","rule":"TRule_id_expr.TAlt2.Rule_keyword_compat1","sum":319560587},{"parent":"TRule_id_expr.TAlt3","rule":"TRule_id_expr.TAlt3.Rule_keyword_alter_uncompat1","sum":430787},{"parent":"TRule_id_expr.TAlt5","rule":"TRule_id_expr.TAlt5.Rule_keyword_window_uncompat1","sum":35187248},{"parent":"TRule_id_expr.TAlt6","rule":"TRule_id_expr.TAlt6.Rule_keyword_hint_uncompat1","sum":181489},{"parent":"TRule_id_expr_in","rule":"TRule_id_expr_in.Alt_id_expr_in1","sum":5634058},{"parent":"TRule_id_expr_in","rule":"TRule_id_expr_in.Alt_id_expr_in2","sum":74062},{"parent":"TRule_id_expr_in","rule":"TRule_id_expr_in.Alt_id_expr_in4","sum":213},{"parent":"TRule_id_expr_in","rule":"TRule_id_expr_in.Alt_id_expr_in5","sum":53},{"parent":"TRule_id_expr_in.TAlt1","rule":"TRule_id_expr_in.TAlt1.Rule_identifier1","sum":5634058},{"parent":"TRule_id_expr_in.TAlt2","rule":"TRule_id_expr_in.TAlt2.Rule_keyword_compat1","sum":74062},{"parent":"TRule_id_expr_in.TAlt4","rule":"TRule_id_expr_in.TAlt4.Rule_keyword_window_uncompat1","sum":213},{"parent":"TRule_id_expr_in.TAlt5","rule":"TRule_id_expr_in.TAlt5.Rule_keyword_hint_uncompat1","sum":53},{"parent":"TRule_id_hint","rule":"TRule_id_hint.Alt_id_hint1","sum":154289157},{"parent":"TRule_id_hint","rule":"TRule_id_hint.Alt_id_hint2","sum":22872},{"parent":"TRule_id_hint","rule":"TRule_id_hint.Alt_id_hint3","sum":22872},{"parent":"TRule_id_hint.TAlt1","rule":"TRule_id_hint.TAlt1.Rule_identifier1","sum":154289157},{"parent":"TRule_id_hint.TAlt2","rule":"TRule_id_hint.TAlt2.Rule_keyword_compat1","sum":22872},{"parent":"TRule_id_hint.TAlt3","rule":"TRule_id_hint.TAlt3.Rule_keyword_expr_uncompat1","sum":22872},{"parent":"TRule_id_or_at","rule":"TRule_id_or_at.Block1","sum":4760096},{"parent":"TRule_id_or_at","rule":"TRule_id_or_at.Rule_an_id_or_type2","sum":133734499},{"parent":"TRule_id_or_at.TBlock1","rule":"TRule_id_or_at.TBlock1.Token1","sum":4760096},{"parent":"TRule_id_or_type","rule":"TRule_id_or_type.Alt_id_or_type1","sum":10542990928},{"parent":"TRule_id_or_type","rule":"TRule_id_or_type.Alt_id_or_type2","sum":11662845},{"parent":"TRule_id_or_type.TAlt1","rule":"TRule_id_or_type.TAlt1.Rule_id1","sum":10542990928},{"parent":"TRule_id_or_type.TAlt2","rule":"TRule_id_or_type.TAlt2.Rule_type_id1","sum":11662845},{"parent":"TRule_id_schema","rule":"TRule_id_schema.Alt_id_schema1","sum":1169},{"parent":"TRule_id_schema","rule":"TRule_id_schema.Alt_id_schema2","sum":12},{"parent":"TRule_id_schema.TAlt1","rule":"TRule_id_schema.TAlt1.Rule_identifier1","sum":1169},{"parent":"TRule_id_schema.TAlt2","rule":"TRule_id_schema.TAlt2.Rule_keyword_compat1","sum":12},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table1","sum":330135915},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table2","sum":646698},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table3","sum":370},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table4","sum":12497},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table5","sum":4},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table6","sum":1829},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table7","sum":10},{"parent":"TRule_id_table.TAlt1","rule":"TRule_id_table.TAlt1.Rule_identifier1","sum":330135915},{"parent":"TRule_id_table.TAlt2","rule":"TRule_id_table.TAlt2.Rule_keyword_compat1","sum":646698},{"parent":"TRule_id_table.TAlt3","rule":"TRule_id_table.TAlt3.Rule_keyword_expr_uncompat1","sum":370},{"parent":"TRule_id_table.TAlt4","rule":"TRule_id_table.TAlt4.Rule_keyword_select_uncompat1","sum":12497},{"parent":"TRule_id_table.TAlt5","rule":"TRule_id_table.TAlt5.Rule_keyword_in_uncompat1","sum":4},{"parent":"TRule_id_table.TAlt6","rule":"TRule_id_table.TAlt6.Rule_keyword_window_uncompat1","sum":1829},{"parent":"TRule_id_table.TAlt7","rule":"TRule_id_table.TAlt7.Rule_keyword_hint_uncompat1","sum":10},{"parent":"TRule_id_table_or_type","rule":"TRule_id_table_or_type.Alt_id_table_or_type1","sum":330797324},{"parent":"TRule_id_table_or_type","rule":"TRule_id_table_or_type.Alt_id_table_or_type2","sum":4271},{"parent":"TRule_id_table_or_type.TAlt1","rule":"TRule_id_table_or_type.TAlt1.Rule_an_id_table1","sum":330797324},{"parent":"TRule_id_table_or_type.TAlt2","rule":"TRule_id_table_or_type.TAlt2.Rule_type_id1","sum":4271},{"parent":"TRule_id_window","rule":"TRule_id_window.Alt_id_window1","sum":46369040},{"parent":"TRule_id_window","rule":"TRule_id_window.Alt_id_window2","sum":15650},{"parent":"TRule_id_window","rule":"TRule_id_window.Alt_id_window3","sum":247560},{"parent":"TRule_id_window","rule":"TRule_id_window.Alt_id_window5","sum":7842},{"parent":"TRule_id_window.TAlt1","rule":"TRule_id_window.TAlt1.Rule_identifier1","sum":46369040},{"parent":"TRule_id_window.TAlt2","rule":"TRule_id_window.TAlt2.Rule_keyword_compat1","sum":15650},{"parent":"TRule_id_window.TAlt3","rule":"TRule_id_window.TAlt3.Rule_keyword_expr_uncompat1","sum":247560},{"parent":"TRule_id_window.TAlt5","rule":"TRule_id_window.TAlt5.Rule_keyword_select_uncompat1","sum":7842},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without1","sum":23000667},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without2","sum":276200},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without6","sum":1157},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without7","sum":522},{"parent":"TRule_id_without.TAlt1","rule":"TRule_id_without.TAlt1.Rule_identifier1","sum":23000667},{"parent":"TRule_id_without.TAlt2","rule":"TRule_id_without.TAlt2.Rule_keyword_compat1","sum":276200},{"parent":"TRule_id_without.TAlt6","rule":"TRule_id_without.TAlt6.Rule_keyword_window_uncompat1","sum":1157},{"parent":"TRule_id_without.TAlt7","rule":"TRule_id_without.TAlt7.Rule_keyword_hint_uncompat1","sum":522},{"parent":"TRule_identifier","rule":"TRule_identifier.Token1","sum":20277145443},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Block1","sum":8558735},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Block5","sum":2972234},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Rule_do_stmt4","sum":8558779},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Rule_expr3","sum":8558779},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Token2","sum":8558779},{"parent":"TRule_if_stmt.TBlock1","rule":"TRule_if_stmt.TBlock1.Token1","sum":8558735},{"parent":"TRule_if_stmt.TBlock5","rule":"TRule_if_stmt.TBlock5.Rule_do_stmt2","sum":2972234},{"parent":"TRule_if_stmt.TBlock5","rule":"TRule_if_stmt.TBlock5.Token1","sum":2972234},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Rule_module_path2","sum":16573208},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Rule_named_bind_parameter_list4","sum":16573208},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Token1","sum":16573208},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Token3","sum":16573208},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr1","sum":2239},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr10","sum":5114871},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr11","sum":454821},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr2","sum":36393837},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr3","sum":65693148},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr4","sum":44388},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr5","sum":4},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr6","sum":2965596},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr7","sum":9738777},{"parent":"TRule_in_atom_expr.TAlt1","rule":"TRule_in_atom_expr.TAlt1.Rule_literal_value1","sum":2239},{"parent":"TRule_in_atom_expr.TAlt10","rule":"TRule_in_atom_expr.TAlt10.Rule_list_literal1","sum":5114871},{"parent":"TRule_in_atom_expr.TAlt11","rule":"TRule_in_atom_expr.TAlt11.Rule_dict_literal1","sum":454821},{"parent":"TRule_in_atom_expr.TAlt2","rule":"TRule_in_atom_expr.TAlt2.Rule_bind_parameter1","sum":36393837},{"parent":"TRule_in_atom_expr.TAlt3","rule":"TRule_in_atom_expr.TAlt3.Rule_lambda1","sum":65693148},{"parent":"TRule_in_atom_expr.TAlt4","rule":"TRule_in_atom_expr.TAlt4.Rule_cast_expr1","sum":44388},{"parent":"TRule_in_atom_expr.TAlt5","rule":"TRule_in_atom_expr.TAlt5.Rule_case_expr1","sum":4},{"parent":"TRule_in_atom_expr.TAlt6","rule":"TRule_in_atom_expr.TAlt6.Block3","sum":2965596},{"parent":"TRule_in_atom_expr.TAlt6","rule":"TRule_in_atom_expr.TAlt6.Rule_an_id_or_type1","sum":2965596},{"parent":"TRule_in_atom_expr.TAlt6","rule":"TRule_in_atom_expr.TAlt6.Token2","sum":2965596},{"parent":"TRule_in_atom_expr.TAlt6.TBlock3","rule":"TRule_in_atom_expr.TAlt6.TBlock3.Alt1","sum":2965596},{"parent":"TRule_in_atom_expr.TAlt6.TBlock3.TAlt1","rule":"TRule_in_atom_expr.TAlt6.TBlock3.TAlt1.Rule_id_or_type1","sum":2965596},{"parent":"TRule_in_atom_expr.TAlt7","rule":"TRule_in_atom_expr.TAlt7.Rule_select_stmt2","sum":9738777},{"parent":"TRule_in_atom_expr.TAlt7","rule":"TRule_in_atom_expr.TAlt7.Token1","sum":9738777},{"parent":"TRule_in_atom_expr.TAlt7","rule":"TRule_in_atom_expr.TAlt7.Token3","sum":9738777},{"parent":"TRule_in_expr","rule":"TRule_in_expr.Rule_in_unary_subexpr1","sum":126116119},{"parent":"TRule_in_unary_casual_subexpr","rule":"TRule_in_unary_casual_subexpr.Block1","sum":126116067},{"parent":"TRule_in_unary_casual_subexpr","rule":"TRule_in_unary_casual_subexpr.Rule_unary_subexpr_suffix2","sum":126116067},{"parent":"TRule_in_unary_casual_subexpr.TBlock1","rule":"TRule_in_unary_casual_subexpr.TBlock1.Alt1","sum":5708386},{"parent":"TRule_in_unary_casual_subexpr.TBlock1","rule":"TRule_in_unary_casual_subexpr.TBlock1.Alt2","sum":120407681},{"parent":"TRule_in_unary_casual_subexpr.TBlock1.TAlt1","rule":"TRule_in_unary_casual_subexpr.TBlock1.TAlt1.Rule_id_expr_in1","sum":5708386},{"parent":"TRule_in_unary_casual_subexpr.TBlock1.TAlt2","rule":"TRule_in_unary_casual_subexpr.TBlock1.TAlt2.Rule_in_atom_expr1","sum":120407681},{"parent":"TRule_in_unary_subexpr","rule":"TRule_in_unary_subexpr.Alt_in_unary_subexpr1","sum":126116067},{"parent":"TRule_in_unary_subexpr","rule":"TRule_in_unary_subexpr.Alt_in_unary_subexpr2","sum":52},{"parent":"TRule_in_unary_subexpr.TAlt1","rule":"TRule_in_unary_subexpr.TAlt1.Rule_in_unary_casual_subexpr1","sum":126116067},{"parent":"TRule_in_unary_subexpr.TAlt2","rule":"TRule_in_unary_subexpr.TAlt2.Rule_json_api_expr1","sum":52},{"parent":"TRule_inline_action","rule":"TRule_inline_action.Rule_define_action_or_subquery_body2","sum":13863484},{"parent":"TRule_inline_action","rule":"TRule_inline_action.Token1","sum":13863484},{"parent":"TRule_inline_action","rule":"TRule_inline_action.Token3","sum":13863484},{"parent":"TRule_inline_action","rule":"TRule_inline_action.Token4","sum":13863484},{"parent":"TRule_integer","rule":"TRule_integer.Token1","sum":2807280781},{"parent":"TRule_integer_or_bind","rule":"TRule_integer_or_bind.Alt_integer_or_bind1","sum":55719701},{"parent":"TRule_integer_or_bind","rule":"TRule_integer_or_bind.Alt_integer_or_bind2","sum":48703},{"parent":"TRule_integer_or_bind.TAlt1","rule":"TRule_integer_or_bind.TAlt1.Rule_integer1","sum":55719701},{"parent":"TRule_integer_or_bind.TAlt2","rule":"TRule_integer_or_bind.TAlt2.Rule_bind_parameter1","sum":48703},{"parent":"TRule_into_simple_table_ref","rule":"TRule_into_simple_table_ref.Block2","sum":25326},{"parent":"TRule_into_simple_table_ref","rule":"TRule_into_simple_table_ref.Rule_simple_table_ref1","sum":208912996},{"parent":"TRule_into_simple_table_ref.TBlock2","rule":"TRule_into_simple_table_ref.TBlock2.Rule_pure_column_list3","sum":25326},{"parent":"TRule_into_simple_table_ref.TBlock2","rule":"TRule_into_simple_table_ref.TBlock2.Token1","sum":25326},{"parent":"TRule_into_simple_table_ref.TBlock2","rule":"TRule_into_simple_table_ref.TBlock2.Token2","sum":25326},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Block1","sum":208912996},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Rule_into_simple_table_ref3","sum":208912996},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Rule_into_values_source4","sum":208912996},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Token2","sum":208912996},{"parent":"TRule_into_table_stmt.TBlock1","rule":"TRule_into_table_stmt.TBlock1.Alt1","sum":208802107},{"parent":"TRule_into_table_stmt.TBlock1","rule":"TRule_into_table_stmt.TBlock1.Alt5","sum":110888},{"parent":"TRule_into_table_stmt.TBlock1","rule":"TRule_into_table_stmt.TBlock1.Alt6","sum":1},{"parent":"TRule_into_table_stmt.TBlock1.TAlt1","rule":"TRule_into_table_stmt.TBlock1.TAlt1.Token1","sum":208802107},{"parent":"TRule_into_table_stmt.TBlock1.TAlt5","rule":"TRule_into_table_stmt.TBlock1.TAlt5.Token1","sum":110888},{"parent":"TRule_into_table_stmt.TBlock1.TAlt6","rule":"TRule_into_table_stmt.TBlock1.TAlt6.Token1","sum":1},{"parent":"TRule_into_values_source","rule":"TRule_into_values_source.Alt_into_values_source1","sum":208912996},{"parent":"TRule_into_values_source.TAlt1","rule":"TRule_into_values_source.TAlt1.Block1","sum":4505304},{"parent":"TRule_into_values_source.TAlt1","rule":"TRule_into_values_source.TAlt1.Rule_values_source2","sum":208912996},{"parent":"TRule_into_values_source.TAlt1.TBlock1","rule":"TRule_into_values_source.TAlt1.TBlock1.Rule_pure_column_list1","sum":4505304},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Block2","sum":2763524266},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Rule_invoke_expr_tail4","sum":2877697076},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Token1","sum":2877697076},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Token3","sum":2877697076},{"parent":"TRule_invoke_expr.TBlock2","rule":"TRule_invoke_expr.TBlock2.Alt1","sum":2704512878},{"parent":"TRule_invoke_expr.TBlock2","rule":"TRule_invoke_expr.TBlock2.Alt2","sum":59011388},{"parent":"TRule_invoke_expr.TBlock2.TAlt1","rule":"TRule_invoke_expr.TBlock2.TAlt1.Block3","sum":9644223},{"parent":"TRule_invoke_expr.TBlock2.TAlt1","rule":"TRule_invoke_expr.TBlock2.TAlt1.Rule_named_expr_list2","sum":2704512878},{"parent":"TRule_invoke_expr.TBlock2.TAlt1","rule":"TRule_invoke_expr.TBlock2.TAlt1.Rule_opt_set_quantifier1","sum":2704512878},{"parent":"TRule_invoke_expr.TBlock2.TAlt1.TBlock3","rule":"TRule_invoke_expr.TBlock2.TAlt1.TBlock3.Token1","sum":9644223},{"parent":"TRule_invoke_expr.TBlock2.TAlt2","rule":"TRule_invoke_expr.TBlock2.TAlt2.Token1","sum":59011388},{"parent":"TRule_invoke_expr_tail","rule":"TRule_invoke_expr_tail.Block1","sum":7198049},{"parent":"TRule_invoke_expr_tail","rule":"TRule_invoke_expr_tail.Block2","sum":45306351},{"parent":"TRule_invoke_expr_tail.TBlock1","rule":"TRule_invoke_expr_tail.TBlock1.Alt1","sum":7198049},{"parent":"TRule_invoke_expr_tail.TBlock1.TAlt1","rule":"TRule_invoke_expr_tail.TBlock1.TAlt1.Rule_null_treatment1","sum":7198049},{"parent":"TRule_invoke_expr_tail.TBlock2","rule":"TRule_invoke_expr_tail.TBlock2.Rule_window_name_or_specification2","sum":45306351},{"parent":"TRule_invoke_expr_tail.TBlock2","rule":"TRule_invoke_expr_tail.TBlock2.Token1","sum":45306351},{"parent":"TRule_join_constraint","rule":"TRule_join_constraint.Alt_join_constraint1","sum":173071411},{"parent":"TRule_join_constraint","rule":"TRule_join_constraint.Alt_join_constraint2","sum":32459519},{"parent":"TRule_join_constraint.TAlt1","rule":"TRule_join_constraint.TAlt1.Rule_expr2","sum":173071411},{"parent":"TRule_join_constraint.TAlt1","rule":"TRule_join_constraint.TAlt1.Token1","sum":173071411},{"parent":"TRule_join_constraint.TAlt2","rule":"TRule_join_constraint.TAlt2.Rule_pure_column_or_named_list2","sum":32459519},{"parent":"TRule_join_constraint.TAlt2","rule":"TRule_join_constraint.TAlt2.Token1","sum":32459519},{"parent":"TRule_join_op","rule":"TRule_join_op.Alt_join_op1","sum":28045},{"parent":"TRule_join_op","rule":"TRule_join_op.Alt_join_op2","sum":208587089},{"parent":"TRule_join_op.TAlt1","rule":"TRule_join_op.TAlt1.Token1","sum":28045},{"parent":"TRule_join_op.TAlt2","rule":"TRule_join_op.TAlt2.Block2","sum":208587089},{"parent":"TRule_join_op.TAlt2","rule":"TRule_join_op.TAlt2.Token3","sum":208587089},{"parent":"TRule_join_op.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.Alt1","sum":174822377},{"parent":"TRule_join_op.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.Alt2","sum":30708553},{"parent":"TRule_join_op.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.Alt3","sum":3056159},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.Block1","sum":126746215},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.Block2","sum":294988},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt1","sum":118839517},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt2","sum":1698319},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt3","sum":285634},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt4","sum":5922745},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.Block2","sum":19678134},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.Token1","sum":118839517},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.TBlock2.Token1","sum":19678134},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.Block2","sum":519406},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.Token1","sum":1698319},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.TBlock2.Token1","sum":519406},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt3","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt3.Token1","sum":285634},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt4","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt4.Token1","sum":5922745},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock2.Token1","sum":294988},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt2.Token1","sum":30708553},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt3","rule":"TRule_join_op.TAlt2.TBlock2.TAlt3.Token1","sum":3056159},{"parent":"TRule_join_source","rule":"TRule_join_source.Block1","sum":614714},{"parent":"TRule_join_source","rule":"TRule_join_source.Block3","sum":145402073},{"parent":"TRule_join_source","rule":"TRule_join_source.Rule_flatten_source2","sum":843950101},{"parent":"TRule_join_source.TBlock1","rule":"TRule_join_source.TBlock1.Token1","sum":614714},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Block2","sum":14033269},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Block4","sum":205530930},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Rule_flatten_source3","sum":208615134},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Rule_join_op1","sum":208615134},{"parent":"TRule_join_source.TBlock3.TBlock2","rule":"TRule_join_source.TBlock3.TBlock2.Token1","sum":14033269},{"parent":"TRule_join_source.TBlock3.TBlock4","rule":"TRule_join_source.TBlock3.TBlock4.Rule_join_constraint1","sum":205530930},{"parent":"TRule_json_api_expr","rule":"TRule_json_api_expr.Alt_json_api_expr1","sum":5842441},{"parent":"TRule_json_api_expr","rule":"TRule_json_api_expr.Alt_json_api_expr2","sum":188220},{"parent":"TRule_json_api_expr","rule":"TRule_json_api_expr.Alt_json_api_expr3","sum":317445},{"parent":"TRule_json_api_expr.TAlt1","rule":"TRule_json_api_expr.TAlt1.Rule_json_value1","sum":5842441},{"parent":"TRule_json_api_expr.TAlt2","rule":"TRule_json_api_expr.TAlt2.Rule_json_exists1","sum":188220},{"parent":"TRule_json_api_expr.TAlt3","rule":"TRule_json_api_expr.TAlt3.Rule_json_query1","sum":317445},{"parent":"TRule_json_case_handler","rule":"TRule_json_case_handler.Alt_json_case_handler1","sum":6928},{"parent":"TRule_json_case_handler","rule":"TRule_json_case_handler.Alt_json_case_handler2","sum":14319},{"parent":"TRule_json_case_handler","rule":"TRule_json_case_handler.Alt_json_case_handler3","sum":200803},{"parent":"TRule_json_case_handler.TAlt1","rule":"TRule_json_case_handler.TAlt1.Token1","sum":6928},{"parent":"TRule_json_case_handler.TAlt2","rule":"TRule_json_case_handler.TAlt2.Token1","sum":14319},{"parent":"TRule_json_case_handler.TAlt3","rule":"TRule_json_case_handler.TAlt3.Rule_expr2","sum":200803},{"parent":"TRule_json_case_handler.TAlt3","rule":"TRule_json_case_handler.TAlt3.Token1","sum":200803},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Block4","sum":20600},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Rule_expr1","sum":6348106},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Rule_jsonpath_spec3","sum":6348106},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Token2","sum":6348106},{"parent":"TRule_json_common_args.TBlock4","rule":"TRule_json_common_args.TBlock4.Rule_json_variables2","sum":20600},{"parent":"TRule_json_common_args.TBlock4","rule":"TRule_json_common_args.TBlock4.Token1","sum":20600},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Block4","sum":90},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Rule_json_common_args3","sum":188220},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Token1","sum":188220},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Token2","sum":188220},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Token5","sum":188220},{"parent":"TRule_json_exists.TBlock4","rule":"TRule_json_exists.TBlock4.Rule_json_exists_handler1","sum":90},{"parent":"TRule_json_exists_handler","rule":"TRule_json_exists_handler.Token1","sum":90},{"parent":"TRule_json_exists_handler","rule":"TRule_json_exists_handler.Token2","sum":90},{"parent":"TRule_json_exists_handler","rule":"TRule_json_exists_handler.Token3","sum":90},{"parent":"TRule_json_query","rule":"TRule_json_query.Block4","sum":190887},{"parent":"TRule_json_query","rule":"TRule_json_query.Block5","sum":86},{"parent":"TRule_json_query","rule":"TRule_json_query.Block6","sum":4124},{"parent":"TRule_json_query","rule":"TRule_json_query.Rule_json_common_args3","sum":317445},{"parent":"TRule_json_query","rule":"TRule_json_query.Token1","sum":317445},{"parent":"TRule_json_query","rule":"TRule_json_query.Token2","sum":317445},{"parent":"TRule_json_query","rule":"TRule_json_query.Token7","sum":317445},{"parent":"TRule_json_query.TBlock4","rule":"TRule_json_query.TBlock4.Rule_json_query_wrapper1","sum":190887},{"parent":"TRule_json_query.TBlock4","rule":"TRule_json_query.TBlock4.Token2","sum":190887},{"parent":"TRule_json_query.TBlock5","rule":"TRule_json_query.TBlock5.Rule_json_query_handler1","sum":86},{"parent":"TRule_json_query.TBlock5","rule":"TRule_json_query.TBlock5.Token2","sum":86},{"parent":"TRule_json_query.TBlock5","rule":"TRule_json_query.TBlock5.Token3","sum":86},{"parent":"TRule_json_query.TBlock6","rule":"TRule_json_query.TBlock6.Rule_json_query_handler1","sum":4124},{"parent":"TRule_json_query.TBlock6","rule":"TRule_json_query.TBlock6.Token2","sum":4124},{"parent":"TRule_json_query.TBlock6","rule":"TRule_json_query.TBlock6.Token3","sum":4124},{"parent":"TRule_json_query_handler","rule":"TRule_json_query_handler.Alt_json_query_handler1","sum":1675},{"parent":"TRule_json_query_handler","rule":"TRule_json_query_handler.Alt_json_query_handler2","sum":26},{"parent":"TRule_json_query_handler","rule":"TRule_json_query_handler.Alt_json_query_handler3","sum":2290},{"parent":"TRule_json_query_handler","rule":"TRule_json_query_handler.Alt_json_query_handler4","sum":219},{"parent":"TRule_json_query_handler.TAlt1","rule":"TRule_json_query_handler.TAlt1.Token1","sum":1675},{"parent":"TRule_json_query_handler.TAlt2","rule":"TRule_json_query_handler.TAlt2.Token1","sum":26},{"parent":"TRule_json_query_handler.TAlt3","rule":"TRule_json_query_handler.TAlt3.Token1","sum":2290},{"parent":"TRule_json_query_handler.TAlt3","rule":"TRule_json_query_handler.TAlt3.Token2","sum":2290},{"parent":"TRule_json_query_handler.TAlt4","rule":"TRule_json_query_handler.TAlt4.Token1","sum":219},{"parent":"TRule_json_query_handler.TAlt4","rule":"TRule_json_query_handler.TAlt4.Token2","sum":219},{"parent":"TRule_json_query_wrapper","rule":"TRule_json_query_wrapper.Alt_json_query_wrapper1","sum":45},{"parent":"TRule_json_query_wrapper","rule":"TRule_json_query_wrapper.Alt_json_query_wrapper2","sum":190842},{"parent":"TRule_json_query_wrapper.TAlt1","rule":"TRule_json_query_wrapper.TAlt1.Block2","sum":10},{"parent":"TRule_json_query_wrapper.TAlt1","rule":"TRule_json_query_wrapper.TAlt1.Token1","sum":45},{"parent":"TRule_json_query_wrapper.TAlt1.TBlock2","rule":"TRule_json_query_wrapper.TAlt1.TBlock2.Token1","sum":10},{"parent":"TRule_json_query_wrapper.TAlt2","rule":"TRule_json_query_wrapper.TAlt2.Block2","sum":166555},{"parent":"TRule_json_query_wrapper.TAlt2","rule":"TRule_json_query_wrapper.TAlt2.Block3","sum":32119},{"parent":"TRule_json_query_wrapper.TAlt2","rule":"TRule_json_query_wrapper.TAlt2.Token1","sum":190842},{"parent":"TRule_json_query_wrapper.TAlt2.TBlock2","rule":"TRule_json_query_wrapper.TAlt2.TBlock2.Token1","sum":166555},{"parent":"TRule_json_query_wrapper.TAlt2.TBlock3","rule":"TRule_json_query_wrapper.TAlt2.TBlock3.Token1","sum":32119},{"parent":"TRule_json_value","rule":"TRule_json_value.Block4","sum":1332511},{"parent":"TRule_json_value","rule":"TRule_json_value.Block5","sum":202578},{"parent":"TRule_json_value","rule":"TRule_json_value.Rule_json_common_args3","sum":5842441},{"parent":"TRule_json_value","rule":"TRule_json_value.Token1","sum":5842441},{"parent":"TRule_json_value","rule":"TRule_json_value.Token2","sum":5842441},{"parent":"TRule_json_value","rule":"TRule_json_value.Token6","sum":5842441},{"parent":"TRule_json_value.TBlock4","rule":"TRule_json_value.TBlock4.Rule_type_name_simple2","sum":1332511},{"parent":"TRule_json_value.TBlock4","rule":"TRule_json_value.TBlock4.Token1","sum":1332511},{"parent":"TRule_json_value.TBlock5","rule":"TRule_json_value.TBlock5.Rule_json_case_handler1","sum":222050},{"parent":"TRule_json_value.TBlock5","rule":"TRule_json_value.TBlock5.Token2","sum":222050},{"parent":"TRule_json_value.TBlock5","rule":"TRule_json_value.TBlock5.Token3","sum":222050},{"parent":"TRule_json_variable","rule":"TRule_json_variable.Rule_expr1","sum":20607},{"parent":"TRule_json_variable","rule":"TRule_json_variable.Rule_json_variable_name3","sum":20607},{"parent":"TRule_json_variable","rule":"TRule_json_variable.Token2","sum":20607},{"parent":"TRule_json_variable_name","rule":"TRule_json_variable_name.Alt_json_variable_name1","sum":18347},{"parent":"TRule_json_variable_name","rule":"TRule_json_variable_name.Alt_json_variable_name2","sum":2260},{"parent":"TRule_json_variable_name.TAlt1","rule":"TRule_json_variable_name.TAlt1.Rule_id_expr1","sum":18347},{"parent":"TRule_json_variable_name.TAlt2","rule":"TRule_json_variable_name.TAlt2.Token1","sum":2260},{"parent":"TRule_json_variables","rule":"TRule_json_variables.Block2","sum":7},{"parent":"TRule_json_variables","rule":"TRule_json_variables.Rule_json_variable1","sum":20600},{"parent":"TRule_json_variables.TBlock2","rule":"TRule_json_variables.TBlock2.Rule_json_variable2","sum":7},{"parent":"TRule_json_variables.TBlock2","rule":"TRule_json_variables.TBlock2.Token1","sum":7},{"parent":"TRule_jsonpath_spec","rule":"TRule_jsonpath_spec.Token1","sum":6348106},{"parent":"TRule_key_expr","rule":"TRule_key_expr.Rule_expr2","sum":173319845},{"parent":"TRule_key_expr","rule":"TRule_key_expr.Token1","sum":173319845},{"parent":"TRule_key_expr","rule":"TRule_key_expr.Token3","sum":173319845},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword1","sum":481209679},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword2","sum":33508736},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword3","sum":505061},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword4","sum":9146576},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword5","sum":777362},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword6","sum":23580},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword7","sum":3895250},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword8","sum":2514003},{"parent":"TRule_keyword.TAlt1","rule":"TRule_keyword.TAlt1.Rule_keyword_compat1","sum":481209679},{"parent":"TRule_keyword.TAlt2","rule":"TRule_keyword.TAlt2.Rule_keyword_expr_uncompat1","sum":33508736},{"parent":"TRule_keyword.TAlt3","rule":"TRule_keyword.TAlt3.Rule_keyword_table_uncompat1","sum":505061},{"parent":"TRule_keyword.TAlt4","rule":"TRule_keyword.TAlt4.Rule_keyword_select_uncompat1","sum":9146576},{"parent":"TRule_keyword.TAlt5","rule":"TRule_keyword.TAlt5.Rule_keyword_alter_uncompat1","sum":777362},{"parent":"TRule_keyword.TAlt6","rule":"TRule_keyword.TAlt6.Rule_keyword_in_uncompat1","sum":23580},{"parent":"TRule_keyword.TAlt7","rule":"TRule_keyword.TAlt7.Rule_keyword_window_uncompat1","sum":3895250},{"parent":"TRule_keyword.TAlt8","rule":"TRule_keyword.TAlt8.Rule_keyword_hint_uncompat1","sum":2514003},{"parent":"TRule_keyword_alter_uncompat","rule":"TRule_keyword_alter_uncompat.Token1","sum":1208149},{"parent":"TRule_keyword_as_compat","rule":"TRule_keyword_as_compat.Token1","sum":2610},{"parent":"TRule_keyword_compat","rule":"TRule_keyword_compat.Token1","sum":801805760},{"parent":"TRule_keyword_expr_uncompat","rule":"TRule_keyword_expr_uncompat.Token1","sum":33779538},{"parent":"TRule_keyword_hint_uncompat","rule":"TRule_keyword_hint_uncompat.Token1","sum":2696077},{"parent":"TRule_keyword_in_uncompat","rule":"TRule_keyword_in_uncompat.Token1","sum":23584},{"parent":"TRule_keyword_select_uncompat","rule":"TRule_keyword_select_uncompat.Token1","sum":9166915},{"parent":"TRule_keyword_table_uncompat","rule":"TRule_keyword_table_uncompat.Token1","sum":505061},{"parent":"TRule_keyword_window_uncompat","rule":"TRule_keyword_window_uncompat.Token1","sum":39085697},{"parent":"TRule_lambda","rule":"TRule_lambda.Block2","sum":208848249},{"parent":"TRule_lambda","rule":"TRule_lambda.Rule_smart_parenthesis1","sum":512340006},{"parent":"TRule_lambda.TBlock2","rule":"TRule_lambda.TBlock2.Block2","sum":208848249},{"parent":"TRule_lambda.TBlock2","rule":"TRule_lambda.TBlock2.Token1","sum":208848249},{"parent":"TRule_lambda.TBlock2.TBlock2","rule":"TRule_lambda.TBlock2.TBlock2.Alt1","sum":42668471},{"parent":"TRule_lambda.TBlock2.TBlock2","rule":"TRule_lambda.TBlock2.TBlock2.Alt2","sum":166179778},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt1","rule":"TRule_lambda.TBlock2.TBlock2.TAlt1.Rule_expr2","sum":42668471},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt1","rule":"TRule_lambda.TBlock2.TBlock2.TAlt1.Token1","sum":42668471},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt1","rule":"TRule_lambda.TBlock2.TBlock2.TAlt1.Token3","sum":42668471},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt2","rule":"TRule_lambda.TBlock2.TBlock2.TAlt2.Rule_lambda_body2","sum":166179778},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt2","rule":"TRule_lambda.TBlock2.TBlock2.TAlt2.Token1","sum":166179778},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt2","rule":"TRule_lambda.TBlock2.TBlock2.TAlt2.Token3","sum":166179778},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Block1","sum":160},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Block2","sum":34755805},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Block5","sum":87613937},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Rule_expr4","sum":166179778},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Token3","sum":166179778},{"parent":"TRule_lambda_body.TBlock1","rule":"TRule_lambda_body.TBlock1.Token1","sum":160},{"parent":"TRule_lambda_body.TBlock2","rule":"TRule_lambda_body.TBlock2.Block2","sum":63704082},{"parent":"TRule_lambda_body.TBlock2","rule":"TRule_lambda_body.TBlock2.Rule_lambda_stmt1","sum":63704082},{"parent":"TRule_lambda_body.TBlock2.TBlock2","rule":"TRule_lambda_body.TBlock2.TBlock2.Token1","sum":63705246},{"parent":"TRule_lambda_body.TBlock5","rule":"TRule_lambda_body.TBlock5.Token1","sum":87622552},{"parent":"TRule_lambda_stmt","rule":"TRule_lambda_stmt.Alt_lambda_stmt1","sum":63701461},{"parent":"TRule_lambda_stmt","rule":"TRule_lambda_stmt.Alt_lambda_stmt2","sum":2621},{"parent":"TRule_lambda_stmt.TAlt1","rule":"TRule_lambda_stmt.TAlt1.Rule_named_nodes_stmt1","sum":63701461},{"parent":"TRule_lambda_stmt.TAlt2","rule":"TRule_lambda_stmt.TAlt2.Rule_import_stmt1","sum":2621},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Block2","sum":35332851},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Block3","sum":2294453},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Token1","sum":41076352},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Token4","sum":41076352},{"parent":"TRule_list_literal.TBlock2","rule":"TRule_list_literal.TBlock2.Rule_expr_list1","sum":35332851},{"parent":"TRule_list_literal.TBlock3","rule":"TRule_list_literal.TBlock3.Token1","sum":2294453},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value1","sum":2751561079},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value10","sum":2},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value2","sum":109092927},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value3","sum":2122067898},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value5","sum":79437041},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value9","sum":104231904},{"parent":"TRule_literal_value.TAlt1","rule":"TRule_literal_value.TAlt1.Rule_integer1","sum":2751561079},{"parent":"TRule_literal_value.TAlt10","rule":"TRule_literal_value.TAlt10.Token1","sum":2},{"parent":"TRule_literal_value.TAlt2","rule":"TRule_literal_value.TAlt2.Rule_real1","sum":109092927},{"parent":"TRule_literal_value.TAlt3","rule":"TRule_literal_value.TAlt3.Token1","sum":2122067898},{"parent":"TRule_literal_value.TAlt5","rule":"TRule_literal_value.TAlt5.Token1","sum":79437041},{"parent":"TRule_literal_value.TAlt9","rule":"TRule_literal_value.TAlt9.Rule_bool_value1","sum":104231904},{"parent":"TRule_match_op","rule":"TRule_match_op.Token1","sum":52200219},{"parent":"TRule_module_path","rule":"TRule_module_path.Block3","sum":361562},{"parent":"TRule_module_path","rule":"TRule_module_path.Rule_an_id2","sum":16573208},{"parent":"TRule_module_path.TBlock3","rule":"TRule_module_path.TBlock3.Rule_an_id2","sum":1077738},{"parent":"TRule_module_path.TBlock3","rule":"TRule_module_path.TBlock3.Token1","sum":1077738},{"parent":"TRule_mul_subexpr","rule":"TRule_mul_subexpr.Block2","sum":115170120},{"parent":"TRule_mul_subexpr","rule":"TRule_mul_subexpr.Rule_con_subexpr1","sum":15786370404},{"parent":"TRule_mul_subexpr.TBlock2","rule":"TRule_mul_subexpr.TBlock2.Rule_con_subexpr2","sum":229345657},{"parent":"TRule_mul_subexpr.TBlock2","rule":"TRule_mul_subexpr.TBlock2.Token1","sum":229345657},{"parent":"TRule_named_bind_parameter","rule":"TRule_named_bind_parameter.Block2","sum":135389},{"parent":"TRule_named_bind_parameter","rule":"TRule_named_bind_parameter.Rule_bind_parameter1","sum":37888685},{"parent":"TRule_named_bind_parameter.TBlock2","rule":"TRule_named_bind_parameter.TBlock2.Rule_bind_parameter2","sum":135389},{"parent":"TRule_named_bind_parameter.TBlock2","rule":"TRule_named_bind_parameter.TBlock2.Token1","sum":135389},{"parent":"TRule_named_bind_parameter_list","rule":"TRule_named_bind_parameter_list.Block2","sum":7054906},{"parent":"TRule_named_bind_parameter_list","rule":"TRule_named_bind_parameter_list.Rule_named_bind_parameter1","sum":16573208},{"parent":"TRule_named_bind_parameter_list.TBlock2","rule":"TRule_named_bind_parameter_list.TBlock2.Rule_named_bind_parameter2","sum":21315477},{"parent":"TRule_named_bind_parameter_list.TBlock2","rule":"TRule_named_bind_parameter_list.TBlock2.Token1","sum":21315477},{"parent":"TRule_named_column","rule":"TRule_named_column.Block2","sum":7171352},{"parent":"TRule_named_column","rule":"TRule_named_column.Rule_column_name1","sum":21351438},{"parent":"TRule_named_column.TBlock2","rule":"TRule_named_column.TBlock2.Rule_an_id2","sum":7171352},{"parent":"TRule_named_column.TBlock2","rule":"TRule_named_column.TBlock2.Token1","sum":7171352},{"parent":"TRule_named_expr","rule":"TRule_named_expr.Block2","sum":156218746},{"parent":"TRule_named_expr","rule":"TRule_named_expr.Rule_expr1","sum":7199395472},{"parent":"TRule_named_expr.TBlock2","rule":"TRule_named_expr.TBlock2.Rule_an_id_or_type2","sum":156218746},{"parent":"TRule_named_expr.TBlock2","rule":"TRule_named_expr.TBlock2.Token1","sum":156218746},{"parent":"TRule_named_expr_list","rule":"TRule_named_expr_list.Block2","sum":1182917674},{"parent":"TRule_named_expr_list","rule":"TRule_named_expr_list.Rule_named_expr1","sum":3239140964},{"parent":"TRule_named_expr_list.TBlock2","rule":"TRule_named_expr_list.TBlock2.Rule_named_expr2","sum":3466442386},{"parent":"TRule_named_expr_list.TBlock2","rule":"TRule_named_expr_list.TBlock2.Token1","sum":3466442386},{"parent":"TRule_named_nodes_stmt","rule":"TRule_named_nodes_stmt.Block3","sum":1007079493},{"parent":"TRule_named_nodes_stmt","rule":"TRule_named_nodes_stmt.Rule_bind_parameter_list1","sum":1007079493},{"parent":"TRule_named_nodes_stmt","rule":"TRule_named_nodes_stmt.Token2","sum":1007079493},{"parent":"TRule_named_nodes_stmt.TBlock3","rule":"TRule_named_nodes_stmt.TBlock3.Alt1","sum":677142252},{"parent":"TRule_named_nodes_stmt.TBlock3","rule":"TRule_named_nodes_stmt.TBlock3.Alt2","sum":329937241},{"parent":"TRule_named_nodes_stmt.TBlock3.TAlt1","rule":"TRule_named_nodes_stmt.TBlock3.TAlt1.Rule_expr1","sum":677142252},{"parent":"TRule_named_nodes_stmt.TBlock3.TAlt2","rule":"TRule_named_nodes_stmt.TBlock3.TAlt2.Rule_subselect_stmt1","sum":329937241},{"parent":"TRule_named_single_source","rule":"TRule_named_single_source.Block2","sum":1},{"parent":"TRule_named_single_source","rule":"TRule_named_single_source.Block3","sum":442565115},{"parent":"TRule_named_single_source","rule":"TRule_named_single_source.Block4","sum":403893},{"parent":"TRule_named_single_source","rule":"TRule_named_single_source.Rule_single_source1","sum":1058157852},{"parent":"TRule_named_single_source.TBlock2","rule":"TRule_named_single_source.TBlock2.Rule_row_pattern_recognition_clause1","sum":1},{"parent":"TRule_named_single_source.TBlock3","rule":"TRule_named_single_source.TBlock3.Block1","sum":442565115},{"parent":"TRule_named_single_source.TBlock3","rule":"TRule_named_single_source.TBlock3.Block2","sum":159781},{"parent":"TRule_named_single_source.TBlock3.TBlock1","rule":"TRule_named_single_source.TBlock3.TBlock1.Alt1","sum":440444825},{"parent":"TRule_named_single_source.TBlock3.TBlock1","rule":"TRule_named_single_source.TBlock3.TBlock1.Alt2","sum":2120290},{"parent":"TRule_named_single_source.TBlock3.TBlock1.TAlt1","rule":"TRule_named_single_source.TBlock3.TBlock1.TAlt1.Rule_an_id2","sum":440444825},{"parent":"TRule_named_single_source.TBlock3.TBlock1.TAlt1","rule":"TRule_named_single_source.TBlock3.TBlock1.TAlt1.Token1","sum":440444825},{"parent":"TRule_named_single_source.TBlock3.TBlock1.TAlt2","rule":"TRule_named_single_source.TBlock3.TBlock1.TAlt2.Rule_an_id_as_compat1","sum":2120290},{"parent":"TRule_named_single_source.TBlock3.TBlock2","rule":"TRule_named_single_source.TBlock3.TBlock2.Rule_pure_column_list1","sum":159781},{"parent":"TRule_named_single_source.TBlock4","rule":"TRule_named_single_source.TBlock4.Alt1","sum":75224},{"parent":"TRule_named_single_source.TBlock4","rule":"TRule_named_single_source.TBlock4.Alt2","sum":328669},{"parent":"TRule_named_single_source.TBlock4.TAlt1","rule":"TRule_named_single_source.TBlock4.TAlt1.Rule_sample_clause1","sum":75224},{"parent":"TRule_named_single_source.TBlock4.TAlt2","rule":"TRule_named_single_source.TBlock4.TAlt2.Rule_tablesample_clause1","sum":328669},{"parent":"TRule_neq_subexpr","rule":"TRule_neq_subexpr.Block2","sum":9143475},{"parent":"TRule_neq_subexpr","rule":"TRule_neq_subexpr.Block3","sum":112095111},{"parent":"TRule_neq_subexpr","rule":"TRule_neq_subexpr.Rule_bit_subexpr1","sum":15451179088},{"parent":"TRule_neq_subexpr.TBlock2","rule":"TRule_neq_subexpr.TBlock2.Block1","sum":9212674},{"parent":"TRule_neq_subexpr.TBlock2","rule":"TRule_neq_subexpr.TBlock2.Rule_bit_subexpr2","sum":9212674},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt1","sum":8101003},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt2","sum":53387},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt3","sum":469},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt4","sum":23},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt5","sum":757653},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt6","sum":134987},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt7","sum":165152},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt1.Token1","sum":8101003},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt2","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt2.Rule_shift_right1","sum":53387},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt3","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt3.Token1","sum":469},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt4","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt4.Rule_rot_right1","sum":23},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt5","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt5.Token1","sum":757653},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt6","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt6.Token1","sum":134987},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt7","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt7.Token1","sum":165152},{"parent":"TRule_neq_subexpr.TBlock3","rule":"TRule_neq_subexpr.TBlock3.Alt1","sum":108321380},{"parent":"TRule_neq_subexpr.TBlock3","rule":"TRule_neq_subexpr.TBlock3.Alt2","sum":3773731},{"parent":"TRule_neq_subexpr.TBlock3.TAlt1","rule":"TRule_neq_subexpr.TBlock3.TAlt1.Rule_double_question1","sum":108321380},{"parent":"TRule_neq_subexpr.TBlock3.TAlt1","rule":"TRule_neq_subexpr.TBlock3.TAlt1.Rule_neq_subexpr2","sum":108321380},{"parent":"TRule_neq_subexpr.TBlock3.TAlt2","rule":"TRule_neq_subexpr.TBlock3.TAlt2.Block1","sum":3773731},{"parent":"TRule_neq_subexpr.TBlock3.TAlt2.TBlock1","rule":"TRule_neq_subexpr.TBlock3.TAlt2.TBlock1.Token1","sum":3785579},{"parent":"TRule_new_window_name","rule":"TRule_new_window_name.Rule_window_name1","sum":14160253},{"parent":"TRule_null_treatment","rule":"TRule_null_treatment.Alt_null_treatment1","sum":45},{"parent":"TRule_null_treatment","rule":"TRule_null_treatment.Alt_null_treatment2","sum":7198004},{"parent":"TRule_null_treatment.TAlt1","rule":"TRule_null_treatment.TAlt1.Token1","sum":45},{"parent":"TRule_null_treatment.TAlt1","rule":"TRule_null_treatment.TAlt1.Token2","sum":45},{"parent":"TRule_null_treatment.TAlt2","rule":"TRule_null_treatment.TAlt2.Token1","sum":7198004},{"parent":"TRule_null_treatment.TAlt2","rule":"TRule_null_treatment.TAlt2.Token2","sum":7198004},{"parent":"TRule_object_ref","rule":"TRule_object_ref.Block1","sum":5288874},{"parent":"TRule_object_ref","rule":"TRule_object_ref.Rule_id_or_at2","sum":133734499},{"parent":"TRule_object_ref.TBlock1","rule":"TRule_object_ref.TBlock1.Rule_cluster_expr1","sum":5288874},{"parent":"TRule_object_ref.TBlock1","rule":"TRule_object_ref.TBlock1.Token2","sum":5288874},{"parent":"TRule_opt_bind_parameter","rule":"TRule_opt_bind_parameter.Block2","sum":27136},{"parent":"TRule_opt_bind_parameter","rule":"TRule_opt_bind_parameter.Rule_bind_parameter1","sum":21450156},{"parent":"TRule_opt_bind_parameter.TBlock2","rule":"TRule_opt_bind_parameter.TBlock2.Token1","sum":27136},{"parent":"TRule_opt_id_prefix","rule":"TRule_opt_id_prefix.Block1","sum":82957126},{"parent":"TRule_opt_id_prefix.TBlock1","rule":"TRule_opt_id_prefix.TBlock1.Rule_an_id1","sum":82957126},{"parent":"TRule_opt_id_prefix.TBlock1","rule":"TRule_opt_id_prefix.TBlock1.Token2","sum":82957126},{"parent":"TRule_opt_id_prefix_or_type","rule":"TRule_opt_id_prefix_or_type.Block1","sum":777053633},{"parent":"TRule_opt_id_prefix_or_type.TBlock1","rule":"TRule_opt_id_prefix_or_type.TBlock1.Rule_an_id_or_type1","sum":777053633},{"parent":"TRule_opt_id_prefix_or_type.TBlock1","rule":"TRule_opt_id_prefix_or_type.TBlock1.Token2","sum":777053633},{"parent":"TRule_opt_set_quantifier","rule":"TRule_opt_set_quantifier.Block1","sum":70348625},{"parent":"TRule_opt_set_quantifier.TBlock1","rule":"TRule_opt_set_quantifier.TBlock1.Token1","sum":70348625},{"parent":"TRule_or_subexpr","rule":"TRule_or_subexpr.Block2","sum":277164299},{"parent":"TRule_or_subexpr","rule":"TRule_or_subexpr.Rule_and_subexpr1","sum":13810410281},{"parent":"TRule_or_subexpr.TBlock2","rule":"TRule_or_subexpr.TBlock2.Rule_and_subexpr2","sum":471120559},{"parent":"TRule_or_subexpr.TBlock2","rule":"TRule_or_subexpr.TBlock2.Token1","sum":471120559},{"parent":"TRule_order_by_clause","rule":"TRule_order_by_clause.Rule_sort_specification_list3","sum":107666782},{"parent":"TRule_order_by_clause","rule":"TRule_order_by_clause.Token1","sum":107666782},{"parent":"TRule_order_by_clause","rule":"TRule_order_by_clause.Token2","sum":107666782},{"parent":"TRule_ordinary_grouping_set","rule":"TRule_ordinary_grouping_set.Rule_named_expr1","sum":301305027},{"parent":"TRule_ordinary_grouping_set_list","rule":"TRule_ordinary_grouping_set_list.Block2","sum":199418},{"parent":"TRule_ordinary_grouping_set_list","rule":"TRule_ordinary_grouping_set_list.Rule_ordinary_grouping_set1","sum":339110},{"parent":"TRule_ordinary_grouping_set_list.TBlock2","rule":"TRule_ordinary_grouping_set_list.TBlock2.Rule_ordinary_grouping_set2","sum":432302},{"parent":"TRule_ordinary_grouping_set_list.TBlock2","rule":"TRule_ordinary_grouping_set_list.TBlock2.Token1","sum":432302},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Block4","sum":791546480},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Rule_an_id3","sum":896077672},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Rule_opt_id_prefix_or_type2","sum":896077672},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Token1","sum":896077672},{"parent":"TRule_pragma_stmt.TBlock4","rule":"TRule_pragma_stmt.TBlock4.Alt1","sum":743570382},{"parent":"TRule_pragma_stmt.TBlock4","rule":"TRule_pragma_stmt.TBlock4.Alt2","sum":47976098},{"parent":"TRule_pragma_stmt.TBlock4.TAlt1","rule":"TRule_pragma_stmt.TBlock4.TAlt1.Rule_pragma_value2","sum":743570382},{"parent":"TRule_pragma_stmt.TBlock4.TAlt1","rule":"TRule_pragma_stmt.TBlock4.TAlt1.Token1","sum":743570382},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Block3","sum":17700602},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Rule_pragma_value2","sum":47976098},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Token1","sum":47976098},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Token4","sum":47976098},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3","rule":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3.Rule_pragma_value2","sum":18516762},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3","rule":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3.Token1","sum":18516762},{"parent":"TRule_pragma_value","rule":"TRule_pragma_value.Alt_pragma_value2","sum":256177},{"parent":"TRule_pragma_value","rule":"TRule_pragma_value.Alt_pragma_value3","sum":797434933},{"parent":"TRule_pragma_value","rule":"TRule_pragma_value.Alt_pragma_value5","sum":12372132},{"parent":"TRule_pragma_value.TAlt2","rule":"TRule_pragma_value.TAlt2.Rule_id1","sum":256177},{"parent":"TRule_pragma_value.TAlt3","rule":"TRule_pragma_value.TAlt3.Token1","sum":797434933},{"parent":"TRule_pragma_value.TAlt5","rule":"TRule_pragma_value.TAlt5.Rule_bind_parameter1","sum":12372132},{"parent":"TRule_process_core","rule":"TRule_process_core.Block4","sum":1132},{"parent":"TRule_process_core","rule":"TRule_process_core.Block5","sum":1918423},{"parent":"TRule_process_core","rule":"TRule_process_core.Rule_named_single_source3","sum":4536125},{"parent":"TRule_process_core","rule":"TRule_process_core.Token1","sum":4536125},{"parent":"TRule_process_core.TBlock4","rule":"TRule_process_core.TBlock4.Rule_named_single_source2","sum":1133},{"parent":"TRule_process_core.TBlock4","rule":"TRule_process_core.TBlock4.Token1","sum":1133},{"parent":"TRule_process_core.TBlock5","rule":"TRule_process_core.TBlock5.Block3","sum":46},{"parent":"TRule_process_core.TBlock5","rule":"TRule_process_core.TBlock5.Block5","sum":4663},{"parent":"TRule_process_core.TBlock5","rule":"TRule_process_core.TBlock5.Block7","sum":34},{"parent":"TRule_process_core.TBlock5","rule":"TRule_process_core.TBlock5.Rule_using_call_expr2","sum":1918423},{"parent":"TRule_process_core.TBlock5","rule":"TRule_process_core.TBlock5.Token1","sum":1918423},{"parent":"TRule_process_core.TBlock5.TBlock3","rule":"TRule_process_core.TBlock5.TBlock3.Rule_an_id2","sum":46},{"parent":"TRule_process_core.TBlock5.TBlock3","rule":"TRule_process_core.TBlock5.TBlock3.Token1","sum":46},{"parent":"TRule_process_core.TBlock5.TBlock5","rule":"TRule_process_core.TBlock5.TBlock5.Rule_expr2","sum":4663},{"parent":"TRule_process_core.TBlock5.TBlock5","rule":"TRule_process_core.TBlock5.TBlock5.Token1","sum":4663},{"parent":"TRule_process_core.TBlock5.TBlock7","rule":"TRule_process_core.TBlock5.TBlock7.Rule_order_by_clause2","sum":34},{"parent":"TRule_process_core.TBlock5.TBlock7","rule":"TRule_process_core.TBlock5.TBlock7.Token1","sum":34},{"parent":"TRule_pure_column_list","rule":"TRule_pure_column_list.Block3","sum":3950756},{"parent":"TRule_pure_column_list","rule":"TRule_pure_column_list.Rule_an_id2","sum":4690411},{"parent":"TRule_pure_column_list","rule":"TRule_pure_column_list.Token1","sum":4690411},{"parent":"TRule_pure_column_list","rule":"TRule_pure_column_list.Token4","sum":4690411},{"parent":"TRule_pure_column_list.TBlock3","rule":"TRule_pure_column_list.TBlock3.Rule_an_id2","sum":35153173},{"parent":"TRule_pure_column_list.TBlock3","rule":"TRule_pure_column_list.TBlock3.Token1","sum":35153173},{"parent":"TRule_pure_column_or_named","rule":"TRule_pure_column_or_named.Alt_pure_column_or_named1","sum":6594704},{"parent":"TRule_pure_column_or_named","rule":"TRule_pure_column_or_named.Alt_pure_column_or_named2","sum":425145265},{"parent":"TRule_pure_column_or_named.TAlt1","rule":"TRule_pure_column_or_named.TAlt1.Rule_bind_parameter1","sum":6594704},{"parent":"TRule_pure_column_or_named.TAlt2","rule":"TRule_pure_column_or_named.TAlt2.Rule_an_id1","sum":425145265},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Block3","sum":11687130},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Rule_pure_column_or_named2","sum":32459519},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Token1","sum":32459519},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Token4","sum":32459519},{"parent":"TRule_pure_column_or_named_list.TBlock3","rule":"TRule_pure_column_or_named_list.TBlock3.Rule_pure_column_or_named2","sum":21732741},{"parent":"TRule_pure_column_or_named_list.TBlock3","rule":"TRule_pure_column_or_named_list.TBlock3.Token1","sum":21732741},{"parent":"TRule_real","rule":"TRule_real.Token1","sum":109092927},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block11","sum":8912},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block13","sum":26285},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block3","sum":119295},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block4","sum":302146},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block8","sum":313583},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Rule_column_list6","sum":848767},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Rule_named_single_source2","sum":848767},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Rule_using_call_expr9","sum":848767},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Token1","sum":848767},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Token5","sum":848767},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Token7","sum":848767},{"parent":"TRule_reduce_core.TBlock11","rule":"TRule_reduce_core.TBlock11.Rule_expr2","sum":8912},{"parent":"TRule_reduce_core.TBlock11","rule":"TRule_reduce_core.TBlock11.Token1","sum":8912},{"parent":"TRule_reduce_core.TBlock13","rule":"TRule_reduce_core.TBlock13.Rule_order_by_clause2","sum":26285},{"parent":"TRule_reduce_core.TBlock13","rule":"TRule_reduce_core.TBlock13.Token1","sum":26285},{"parent":"TRule_reduce_core.TBlock3","rule":"TRule_reduce_core.TBlock3.Rule_named_single_source2","sum":206592},{"parent":"TRule_reduce_core.TBlock3","rule":"TRule_reduce_core.TBlock3.Token1","sum":206592},{"parent":"TRule_reduce_core.TBlock4","rule":"TRule_reduce_core.TBlock4.Rule_sort_specification_list2","sum":302146},{"parent":"TRule_reduce_core.TBlock4","rule":"TRule_reduce_core.TBlock4.Token1","sum":302146},{"parent":"TRule_reduce_core.TBlock8","rule":"TRule_reduce_core.TBlock8.Token1","sum":313583},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Rule_expr3","sum":9275},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Token1","sum":9275},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Token2","sum":9275},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Token4","sum":9275},{"parent":"TRule_result_column","rule":"TRule_result_column.Alt_result_column1","sum":250248825},{"parent":"TRule_result_column","rule":"TRule_result_column.Alt_result_column2","sum":3447285439},{"parent":"TRule_result_column.TAlt1","rule":"TRule_result_column.TAlt1.Rule_opt_id_prefix1","sum":250248825},{"parent":"TRule_result_column.TAlt1","rule":"TRule_result_column.TAlt1.Token2","sum":250248825},{"parent":"TRule_result_column.TAlt2","rule":"TRule_result_column.TAlt2.Block2","sum":1987445288},{"parent":"TRule_result_column.TAlt2","rule":"TRule_result_column.TAlt2.Rule_expr1","sum":3447285439},{"parent":"TRule_result_column.TAlt2.TBlock2","rule":"TRule_result_column.TAlt2.TBlock2.Alt1","sum":1986579042},{"parent":"TRule_result_column.TAlt2.TBlock2","rule":"TRule_result_column.TAlt2.TBlock2.Alt2","sum":866246},{"parent":"TRule_result_column.TAlt2.TBlock2.TAlt1","rule":"TRule_result_column.TAlt2.TBlock2.TAlt1.Rule_an_id_or_type2","sum":1986579042},{"parent":"TRule_result_column.TAlt2.TBlock2.TAlt1","rule":"TRule_result_column.TAlt2.TBlock2.TAlt1.Token1","sum":1986579042},{"parent":"TRule_result_column.TAlt2.TBlock2.TAlt2","rule":"TRule_result_column.TAlt2.TBlock2.TAlt2.Rule_an_id_as_compat1","sum":866246},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Rule_ordinary_grouping_set_list3","sum":62439},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Token1","sum":62439},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Token2","sum":62439},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Token4","sum":62439},{"parent":"TRule_rot_right","rule":"TRule_rot_right.Token1","sum":23},{"parent":"TRule_rot_right","rule":"TRule_rot_right.Token2","sum":23},{"parent":"TRule_rot_right","rule":"TRule_rot_right.Token3","sum":23},{"parent":"TRule_row_pattern","rule":"TRule_row_pattern.Rule_row_pattern_term1","sum":2},{"parent":"TRule_row_pattern_common_syntax","rule":"TRule_row_pattern_common_syntax.Rule_row_pattern5","sum":1},{"parent":"TRule_row_pattern_common_syntax","rule":"TRule_row_pattern_common_syntax.Rule_row_pattern_definition_list9","sum":1},{"parent":"TRule_row_pattern_common_syntax","rule":"TRule_row_pattern_common_syntax.Token3","sum":1},{"parent":"TRule_row_pattern_common_syntax","rule":"TRule_row_pattern_common_syntax.Token4","sum":1},{"parent":"TRule_row_pattern_common_syntax","rule":"TRule_row_pattern_common_syntax.Token6","sum":1},{"parent":"TRule_row_pattern_common_syntax","rule":"TRule_row_pattern_common_syntax.Token8","sum":1},{"parent":"TRule_row_pattern_definition","rule":"TRule_row_pattern_definition.Rule_row_pattern_definition_search_condition3","sum":1},{"parent":"TRule_row_pattern_definition","rule":"TRule_row_pattern_definition.Rule_row_pattern_definition_variable_name1","sum":1},{"parent":"TRule_row_pattern_definition","rule":"TRule_row_pattern_definition.Token2","sum":1},{"parent":"TRule_row_pattern_definition_list","rule":"TRule_row_pattern_definition_list.Rule_row_pattern_definition1","sum":1},{"parent":"TRule_row_pattern_definition_search_condition","rule":"TRule_row_pattern_definition_search_condition.Rule_search_condition1","sum":1},{"parent":"TRule_row_pattern_definition_variable_name","rule":"TRule_row_pattern_definition_variable_name.Rule_row_pattern_variable_name1","sum":1},{"parent":"TRule_row_pattern_factor","rule":"TRule_row_pattern_factor.Block2","sum":1},{"parent":"TRule_row_pattern_factor","rule":"TRule_row_pattern_factor.Rule_row_pattern_primary1","sum":2},{"parent":"TRule_row_pattern_factor.TBlock2","rule":"TRule_row_pattern_factor.TBlock2.Rule_row_pattern_quantifier1","sum":1},{"parent":"TRule_row_pattern_measure_definition","rule":"TRule_row_pattern_measure_definition.Rule_an_id3","sum":3},{"parent":"TRule_row_pattern_measure_definition","rule":"TRule_row_pattern_measure_definition.Rule_expr1","sum":3},{"parent":"TRule_row_pattern_measure_definition","rule":"TRule_row_pattern_measure_definition.Token2","sum":3},{"parent":"TRule_row_pattern_measure_list","rule":"TRule_row_pattern_measure_list.Block2","sum":1},{"parent":"TRule_row_pattern_measure_list","rule":"TRule_row_pattern_measure_list.Rule_row_pattern_measure_definition1","sum":1},{"parent":"TRule_row_pattern_measure_list.TBlock2","rule":"TRule_row_pattern_measure_list.TBlock2.Rule_row_pattern_measure_definition2","sum":2},{"parent":"TRule_row_pattern_measure_list.TBlock2","rule":"TRule_row_pattern_measure_list.TBlock2.Token1","sum":2},{"parent":"TRule_row_pattern_measures","rule":"TRule_row_pattern_measures.Rule_row_pattern_measure_list2","sum":1},{"parent":"TRule_row_pattern_measures","rule":"TRule_row_pattern_measures.Token1","sum":1},{"parent":"TRule_row_pattern_primary","rule":"TRule_row_pattern_primary.Alt_row_pattern_primary1","sum":1},{"parent":"TRule_row_pattern_primary","rule":"TRule_row_pattern_primary.Alt_row_pattern_primary4","sum":1},{"parent":"TRule_row_pattern_primary.TAlt1","rule":"TRule_row_pattern_primary.TAlt1.Rule_row_pattern_primary_variable_name1","sum":1},{"parent":"TRule_row_pattern_primary.TAlt4","rule":"TRule_row_pattern_primary.TAlt4.Block2","sum":1},{"parent":"TRule_row_pattern_primary.TAlt4","rule":"TRule_row_pattern_primary.TAlt4.Token1","sum":1},{"parent":"TRule_row_pattern_primary.TAlt4","rule":"TRule_row_pattern_primary.TAlt4.Token3","sum":1},{"parent":"TRule_row_pattern_primary.TAlt4.TBlock2","rule":"TRule_row_pattern_primary.TAlt4.TBlock2.Rule_row_pattern1","sum":1},{"parent":"TRule_row_pattern_primary_variable_name","rule":"TRule_row_pattern_primary_variable_name.Rule_row_pattern_variable_name1","sum":1},{"parent":"TRule_row_pattern_quantifier","rule":"TRule_row_pattern_quantifier.Alt_row_pattern_quantifier5","sum":1},{"parent":"TRule_row_pattern_quantifier.TAlt5","rule":"TRule_row_pattern_quantifier.TAlt5.Rule_integer2","sum":1},{"parent":"TRule_row_pattern_quantifier.TAlt5","rule":"TRule_row_pattern_quantifier.TAlt5.Token1","sum":1},{"parent":"TRule_row_pattern_quantifier.TAlt5","rule":"TRule_row_pattern_quantifier.TAlt5.Token3","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Block3","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Block4","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Block5","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Block6","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Rule_row_pattern_common_syntax7","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Token1","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Token2","sum":1},{"parent":"TRule_row_pattern_recognition_clause","rule":"TRule_row_pattern_recognition_clause.Token8","sum":1},{"parent":"TRule_row_pattern_recognition_clause.TBlock3","rule":"TRule_row_pattern_recognition_clause.TBlock3.Rule_window_partition_clause1","sum":1},{"parent":"TRule_row_pattern_recognition_clause.TBlock4","rule":"TRule_row_pattern_recognition_clause.TBlock4.Rule_order_by_clause1","sum":1},{"parent":"TRule_row_pattern_recognition_clause.TBlock5","rule":"TRule_row_pattern_recognition_clause.TBlock5.Rule_row_pattern_measures1","sum":1},{"parent":"TRule_row_pattern_recognition_clause.TBlock6","rule":"TRule_row_pattern_recognition_clause.TBlock6.Rule_row_pattern_rows_per_match1","sum":1},{"parent":"TRule_row_pattern_rows_per_match","rule":"TRule_row_pattern_rows_per_match.Alt_row_pattern_rows_per_match1","sum":1},{"parent":"TRule_row_pattern_rows_per_match.TAlt1","rule":"TRule_row_pattern_rows_per_match.TAlt1.Token1","sum":1},{"parent":"TRule_row_pattern_rows_per_match.TAlt1","rule":"TRule_row_pattern_rows_per_match.TAlt1.Token2","sum":1},{"parent":"TRule_row_pattern_rows_per_match.TAlt1","rule":"TRule_row_pattern_rows_per_match.TAlt1.Token3","sum":1},{"parent":"TRule_row_pattern_rows_per_match.TAlt1","rule":"TRule_row_pattern_rows_per_match.TAlt1.Token4","sum":1},{"parent":"TRule_row_pattern_term","rule":"TRule_row_pattern_term.Block1","sum":2},{"parent":"TRule_row_pattern_term.TBlock1","rule":"TRule_row_pattern_term.TBlock1.Rule_row_pattern_factor1","sum":2},{"parent":"TRule_row_pattern_variable_name","rule":"TRule_row_pattern_variable_name.Rule_identifier1","sum":2},{"parent":"TRule_sample_clause","rule":"TRule_sample_clause.Rule_expr2","sum":75224},{"parent":"TRule_sample_clause","rule":"TRule_sample_clause.Token1","sum":75224},{"parent":"TRule_sampling_mode","rule":"TRule_sampling_mode.Token1","sum":328669},{"parent":"TRule_search_condition","rule":"TRule_search_condition.Rule_expr1","sum":1},{"parent":"TRule_select_core","rule":"TRule_select_core.Block1","sum":10672782},{"parent":"TRule_select_core","rule":"TRule_select_core.Block10","sum":340845955},{"parent":"TRule_select_core","rule":"TRule_select_core.Block11","sum":137888913},{"parent":"TRule_select_core","rule":"TRule_select_core.Block12","sum":12107514},{"parent":"TRule_select_core","rule":"TRule_select_core.Block13","sum":13585207},{"parent":"TRule_select_core","rule":"TRule_select_core.Block14","sum":88637099},{"parent":"TRule_select_core","rule":"TRule_select_core.Block3","sum":117},{"parent":"TRule_select_core","rule":"TRule_select_core.Block6","sum":529664522},{"parent":"TRule_select_core","rule":"TRule_select_core.Block7","sum":93678926},{"parent":"TRule_select_core","rule":"TRule_select_core.Block8","sum":24883415},{"parent":"TRule_select_core","rule":"TRule_select_core.Block9","sum":833277319},{"parent":"TRule_select_core","rule":"TRule_select_core.Rule_opt_set_quantifier4","sum":904378975},{"parent":"TRule_select_core","rule":"TRule_select_core.Rule_result_column5","sum":904378975},{"parent":"TRule_select_core","rule":"TRule_select_core.Token2","sum":904378975},{"parent":"TRule_select_core.TBlock1","rule":"TRule_select_core.TBlock1.Rule_join_source2","sum":10672782},{"parent":"TRule_select_core.TBlock1","rule":"TRule_select_core.TBlock1.Token1","sum":10672782},{"parent":"TRule_select_core.TBlock10","rule":"TRule_select_core.TBlock10.Rule_expr2","sum":340845955},{"parent":"TRule_select_core.TBlock10","rule":"TRule_select_core.TBlock10.Token1","sum":340845955},{"parent":"TRule_select_core.TBlock11","rule":"TRule_select_core.TBlock11.Rule_group_by_clause1","sum":137888913},{"parent":"TRule_select_core.TBlock12","rule":"TRule_select_core.TBlock12.Rule_expr2","sum":12107514},{"parent":"TRule_select_core.TBlock12","rule":"TRule_select_core.TBlock12.Token1","sum":12107514},{"parent":"TRule_select_core.TBlock13","rule":"TRule_select_core.TBlock13.Rule_window_clause1","sum":13585207},{"parent":"TRule_select_core.TBlock14","rule":"TRule_select_core.TBlock14.Rule_ext_order_by_clause1","sum":88637099},{"parent":"TRule_select_core.TBlock3","rule":"TRule_select_core.TBlock3.Token1","sum":117},{"parent":"TRule_select_core.TBlock6","rule":"TRule_select_core.TBlock6.Rule_result_column2","sum":2793155289},{"parent":"TRule_select_core.TBlock6","rule":"TRule_select_core.TBlock6.Token1","sum":2793155289},{"parent":"TRule_select_core.TBlock7","rule":"TRule_select_core.TBlock7.Token1","sum":93678926},{"parent":"TRule_select_core.TBlock8","rule":"TRule_select_core.TBlock8.Block2","sum":14},{"parent":"TRule_select_core.TBlock8","rule":"TRule_select_core.TBlock8.Rule_without_column_list3","sum":24883415},{"parent":"TRule_select_core.TBlock8","rule":"TRule_select_core.TBlock8.Token1","sum":24883415},{"parent":"TRule_select_core.TBlock8.TBlock2","rule":"TRule_select_core.TBlock8.TBlock2.Token1","sum":14},{"parent":"TRule_select_core.TBlock8.TBlock2","rule":"TRule_select_core.TBlock8.TBlock2.Token2","sum":14},{"parent":"TRule_select_core.TBlock9","rule":"TRule_select_core.TBlock9.Rule_join_source2","sum":833277319},{"parent":"TRule_select_core.TBlock9","rule":"TRule_select_core.TBlock9.Token1","sum":833277319},{"parent":"TRule_select_kind","rule":"TRule_select_kind.Block1","sum":921844},{"parent":"TRule_select_kind","rule":"TRule_select_kind.Block2","sum":909763867},{"parent":"TRule_select_kind","rule":"TRule_select_kind.Block3","sum":2885395},{"parent":"TRule_select_kind.TBlock1","rule":"TRule_select_kind.TBlock1.Token1","sum":921844},{"parent":"TRule_select_kind.TBlock2","rule":"TRule_select_kind.TBlock2.Alt1","sum":4536125},{"parent":"TRule_select_kind.TBlock2","rule":"TRule_select_kind.TBlock2.Alt2","sum":848767},{"parent":"TRule_select_kind.TBlock2","rule":"TRule_select_kind.TBlock2.Alt3","sum":904378975},{"parent":"TRule_select_kind.TBlock2.TAlt1","rule":"TRule_select_kind.TBlock2.TAlt1.Rule_process_core1","sum":4536125},{"parent":"TRule_select_kind.TBlock2.TAlt2","rule":"TRule_select_kind.TBlock2.TAlt2.Rule_reduce_core1","sum":848767},{"parent":"TRule_select_kind.TBlock2.TAlt3","rule":"TRule_select_kind.TBlock2.TAlt3.Rule_select_core1","sum":904378975},{"parent":"TRule_select_kind.TBlock3","rule":"TRule_select_kind.TBlock3.Rule_pure_column_or_named3","sum":2885395},{"parent":"TRule_select_kind.TBlock3","rule":"TRule_select_kind.TBlock3.Token1","sum":2885395},{"parent":"TRule_select_kind.TBlock3","rule":"TRule_select_kind.TBlock3.Token2","sum":2885395},{"parent":"TRule_select_kind_parenthesis","rule":"TRule_select_kind_parenthesis.Alt_select_kind_parenthesis1","sum":779150787},{"parent":"TRule_select_kind_parenthesis","rule":"TRule_select_kind_parenthesis.Alt_select_kind_parenthesis2","sum":7976140},{"parent":"TRule_select_kind_parenthesis.TAlt1","rule":"TRule_select_kind_parenthesis.TAlt1.Rule_select_kind_partial1","sum":779150787},{"parent":"TRule_select_kind_parenthesis.TAlt2","rule":"TRule_select_kind_parenthesis.TAlt2.Rule_select_kind_partial2","sum":7976140},{"parent":"TRule_select_kind_parenthesis.TAlt2","rule":"TRule_select_kind_parenthesis.TAlt2.Token1","sum":7976140},{"parent":"TRule_select_kind_parenthesis.TAlt2","rule":"TRule_select_kind_parenthesis.TAlt2.Token3","sum":7976140},{"parent":"TRule_select_kind_partial","rule":"TRule_select_kind_partial.Block2","sum":30691478},{"parent":"TRule_select_kind_partial","rule":"TRule_select_kind_partial.Rule_select_kind1","sum":909763867},{"parent":"TRule_select_kind_partial.TBlock2","rule":"TRule_select_kind_partial.TBlock2.Block3","sum":4603257},{"parent":"TRule_select_kind_partial.TBlock2","rule":"TRule_select_kind_partial.TBlock2.Rule_expr2","sum":30691478},{"parent":"TRule_select_kind_partial.TBlock2","rule":"TRule_select_kind_partial.TBlock2.Token1","sum":30691478},{"parent":"TRule_select_kind_partial.TBlock2.TBlock3","rule":"TRule_select_kind_partial.TBlock2.TBlock3.Rule_expr2","sum":4603257},{"parent":"TRule_select_kind_partial.TBlock2.TBlock3","rule":"TRule_select_kind_partial.TBlock2.TBlock3.Token1","sum":4603257},{"parent":"TRule_select_op","rule":"TRule_select_op.Alt_select_op1","sum":63894618},{"parent":"TRule_select_op.TAlt1","rule":"TRule_select_op.TAlt1.Block2","sum":62983928},{"parent":"TRule_select_op.TAlt1","rule":"TRule_select_op.TAlt1.Token1","sum":63894618},{"parent":"TRule_select_op.TAlt1.TBlock2","rule":"TRule_select_op.TAlt1.TBlock2.Token1","sum":62983928},{"parent":"TRule_select_stmt","rule":"TRule_select_stmt.Block2","sum":33275900},{"parent":"TRule_select_stmt","rule":"TRule_select_stmt.Rule_select_kind_parenthesis1","sum":723232309},{"parent":"TRule_select_stmt.TBlock2","rule":"TRule_select_stmt.TBlock2.Rule_select_kind_parenthesis2","sum":56935244},{"parent":"TRule_select_stmt.TBlock2","rule":"TRule_select_stmt.TBlock2.Rule_select_op1","sum":56935244},{"parent":"TRule_select_unparenthesized_stmt","rule":"TRule_select_unparenthesized_stmt.Block2","sum":4296981},{"parent":"TRule_select_unparenthesized_stmt","rule":"TRule_select_unparenthesized_stmt.Rule_select_kind_partial1","sum":122636940},{"parent":"TRule_select_unparenthesized_stmt.TBlock2","rule":"TRule_select_unparenthesized_stmt.TBlock2.Rule_select_kind_parenthesis2","sum":6959374},{"parent":"TRule_select_unparenthesized_stmt.TBlock2","rule":"TRule_select_unparenthesized_stmt.TBlock2.Rule_select_op1","sum":6959374},{"parent":"TRule_shift_right","rule":"TRule_shift_right.Token1","sum":53387},{"parent":"TRule_shift_right","rule":"TRule_shift_right.Token2","sum":53387},{"parent":"TRule_simple_table_ref","rule":"TRule_simple_table_ref.Block2","sum":142994339},{"parent":"TRule_simple_table_ref","rule":"TRule_simple_table_ref.Rule_simple_table_ref_core1","sum":211479641},{"parent":"TRule_simple_table_ref.TBlock2","rule":"TRule_simple_table_ref.TBlock2.Rule_table_hints1","sum":142994339},{"parent":"TRule_simple_table_ref_core","rule":"TRule_simple_table_ref_core.Alt_simple_table_ref_core1","sum":133734499},{"parent":"TRule_simple_table_ref_core","rule":"TRule_simple_table_ref_core.Alt_simple_table_ref_core2","sum":77745142},{"parent":"TRule_simple_table_ref_core.TAlt1","rule":"TRule_simple_table_ref_core.TAlt1.Rule_object_ref1","sum":133734499},{"parent":"TRule_simple_table_ref_core.TAlt2","rule":"TRule_simple_table_ref_core.TAlt2.Block1","sum":71492},{"parent":"TRule_simple_table_ref_core.TAlt2","rule":"TRule_simple_table_ref_core.TAlt2.Rule_bind_parameter2","sum":77745142},{"parent":"TRule_simple_table_ref_core.TAlt2.TBlock1","rule":"TRule_simple_table_ref_core.TAlt2.TBlock1.Token1","sum":71492},{"parent":"TRule_single_source","rule":"TRule_single_source.Alt_single_source1","sum":953241090},{"parent":"TRule_single_source","rule":"TRule_single_source.Alt_single_source2","sum":104748390},{"parent":"TRule_single_source","rule":"TRule_single_source.Alt_single_source3","sum":168372},{"parent":"TRule_single_source.TAlt1","rule":"TRule_single_source.TAlt1.Rule_table_ref1","sum":953241090},{"parent":"TRule_single_source.TAlt2","rule":"TRule_single_source.TAlt2.Rule_select_stmt2","sum":104748390},{"parent":"TRule_single_source.TAlt2","rule":"TRule_single_source.TAlt2.Token1","sum":104748390},{"parent":"TRule_single_source.TAlt2","rule":"TRule_single_source.TAlt2.Token3","sum":104748390},{"parent":"TRule_single_source.TAlt3","rule":"TRule_single_source.TAlt3.Rule_values_stmt2","sum":168372},{"parent":"TRule_single_source.TAlt3","rule":"TRule_single_source.TAlt3.Token1","sum":168372},{"parent":"TRule_single_source.TAlt3","rule":"TRule_single_source.TAlt3.Token3","sum":168372},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Block2","sum":508513096},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Block3","sum":2640116},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Token1","sum":512340006},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Token4","sum":512340006},{"parent":"TRule_smart_parenthesis.TBlock2","rule":"TRule_smart_parenthesis.TBlock2.Rule_named_expr_list1","sum":508513096},{"parent":"TRule_smart_parenthesis.TBlock3","rule":"TRule_smart_parenthesis.TBlock3.Token1","sum":2640116},{"parent":"TRule_sort_specification","rule":"TRule_sort_specification.Block2","sum":33193476},{"parent":"TRule_sort_specification","rule":"TRule_sort_specification.Rule_expr1","sum":181604904},{"parent":"TRule_sort_specification.TBlock2","rule":"TRule_sort_specification.TBlock2.Token1","sum":33193476},{"parent":"TRule_sort_specification_list","rule":"TRule_sort_specification_list.Block2","sum":39858879},{"parent":"TRule_sort_specification_list","rule":"TRule_sort_specification_list.Rule_sort_specification1","sum":107968928},{"parent":"TRule_sort_specification_list.TBlock2","rule":"TRule_sort_specification_list.TBlock2.Rule_sort_specification2","sum":73635976},{"parent":"TRule_sort_specification_list.TBlock2","rule":"TRule_sort_specification_list.TBlock2.Token1","sum":73635976},{"parent":"TRule_sql_query","rule":"TRule_sql_query.Alt_sql_query1","sum":320130391},{"parent":"TRule_sql_query.TAlt1","rule":"TRule_sql_query.TAlt1.Rule_sql_stmt_list1","sum":320130391},{"parent":"TRule_sql_stmt","rule":"TRule_sql_stmt.Block1","sum":53},{"parent":"TRule_sql_stmt","rule":"TRule_sql_stmt.Rule_sql_stmt_core2","sum":2720354628},{"parent":"TRule_sql_stmt.TBlock1","rule":"TRule_sql_stmt.TBlock1.Token1","sum":53},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core1","sum":896077672},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core12","sum":156358531},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core13","sum":16570587},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core17","sum":4706728},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core18","sum":22267674},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core19","sum":8558779},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core2","sum":193539980},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core20","sum":7000888},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core21","sum":321},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core3","sum":943378032},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core4","sum":127},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core5","sum":2566518},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core6","sum":329427984},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core7","sum":208912996},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core8","sum":13017921},{"parent":"TRule_sql_stmt_core.TAlt1","rule":"TRule_sql_stmt_core.TAlt1.Rule_pragma_stmt1","sum":896077672},{"parent":"TRule_sql_stmt_core.TAlt12","rule":"TRule_sql_stmt_core.TAlt12.Rule_declare_stmt1","sum":156358531},{"parent":"TRule_sql_stmt_core.TAlt13","rule":"TRule_sql_stmt_core.TAlt13.Rule_import_stmt1","sum":16570587},{"parent":"TRule_sql_stmt_core.TAlt17","rule":"TRule_sql_stmt_core.TAlt17.Rule_do_stmt1","sum":4706728},{"parent":"TRule_sql_stmt_core.TAlt18","rule":"TRule_sql_stmt_core.TAlt18.Rule_define_action_or_subquery_stmt1","sum":22267674},{"parent":"TRule_sql_stmt_core.TAlt19","rule":"TRule_sql_stmt_core.TAlt19.Rule_if_stmt1","sum":8558779},{"parent":"TRule_sql_stmt_core.TAlt2","rule":"TRule_sql_stmt_core.TAlt2.Rule_select_stmt1","sum":193539980},{"parent":"TRule_sql_stmt_core.TAlt20","rule":"TRule_sql_stmt_core.TAlt20.Rule_for_stmt1","sum":7000888},{"parent":"TRule_sql_stmt_core.TAlt21","rule":"TRule_sql_stmt_core.TAlt21.Rule_values_stmt1","sum":321},{"parent":"TRule_sql_stmt_core.TAlt3","rule":"TRule_sql_stmt_core.TAlt3.Rule_named_nodes_stmt1","sum":943378032},{"parent":"TRule_sql_stmt_core.TAlt4","rule":"TRule_sql_stmt_core.TAlt4.Rule_create_table_stmt1","sum":127},{"parent":"TRule_sql_stmt_core.TAlt5","rule":"TRule_sql_stmt_core.TAlt5.Rule_drop_table_stmt1","sum":2566518},{"parent":"TRule_sql_stmt_core.TAlt6","rule":"TRule_sql_stmt_core.TAlt6.Rule_use_stmt1","sum":329427984},{"parent":"TRule_sql_stmt_core.TAlt7","rule":"TRule_sql_stmt_core.TAlt7.Rule_into_table_stmt1","sum":208912996},{"parent":"TRule_sql_stmt_core.TAlt8","rule":"TRule_sql_stmt_core.TAlt8.Rule_commit_stmt1","sum":13017921},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Block1","sum":437},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Block3","sum":314643305},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Block4","sum":195133009},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Rule_sql_stmt2","sum":320130391},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Token5","sum":320130391},{"parent":"TRule_sql_stmt_list.TBlock1","rule":"TRule_sql_stmt_list.TBlock1.Token1","sum":460},{"parent":"TRule_sql_stmt_list.TBlock3","rule":"TRule_sql_stmt_list.TBlock3.Block1","sum":2400224237},{"parent":"TRule_sql_stmt_list.TBlock3","rule":"TRule_sql_stmt_list.TBlock3.Rule_sql_stmt2","sum":2400224237},{"parent":"TRule_sql_stmt_list.TBlock3.TBlock1","rule":"TRule_sql_stmt_list.TBlock3.TBlock1.Token1","sum":2409292915},{"parent":"TRule_sql_stmt_list.TBlock4","rule":"TRule_sql_stmt_list.TBlock4.Token1","sum":197820473},{"parent":"TRule_struct_arg","rule":"TRule_struct_arg.Rule_type_name_or_bind3","sum":114016881},{"parent":"TRule_struct_arg","rule":"TRule_struct_arg.Rule_type_name_tag1","sum":114016881},{"parent":"TRule_struct_arg","rule":"TRule_struct_arg.Token2","sum":114016881},{"parent":"TRule_struct_arg_positional","rule":"TRule_struct_arg_positional.Alt_struct_arg_positional1","sum":175},{"parent":"TRule_struct_arg_positional.TAlt1","rule":"TRule_struct_arg_positional.TAlt1.Block3","sum":146},{"parent":"TRule_struct_arg_positional.TAlt1","rule":"TRule_struct_arg_positional.TAlt1.Rule_type_name_or_bind2","sum":175},{"parent":"TRule_struct_arg_positional.TAlt1","rule":"TRule_struct_arg_positional.TAlt1.Rule_type_name_tag1","sum":175},{"parent":"TRule_struct_arg_positional.TAlt1.TBlock3","rule":"TRule_struct_arg_positional.TAlt1.TBlock3.Token2","sum":146},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Block2","sum":14467055},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Block3","sum":2534097},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Token1","sum":14597994},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Token4","sum":14597994},{"parent":"TRule_struct_literal.TBlock2","rule":"TRule_struct_literal.TBlock2.Rule_expr_struct_list1","sum":14467055},{"parent":"TRule_struct_literal.TBlock3","rule":"TRule_struct_literal.TBlock3.Token1","sum":2534097},{"parent":"TRule_subselect_stmt","rule":"TRule_subselect_stmt.Block1","sum":329937241},{"parent":"TRule_subselect_stmt.TBlock1","rule":"TRule_subselect_stmt.TBlock1.Alt1","sum":207300301},{"parent":"TRule_subselect_stmt.TBlock1","rule":"TRule_subselect_stmt.TBlock1.Alt2","sum":122636940},{"parent":"TRule_subselect_stmt.TBlock1.TAlt1","rule":"TRule_subselect_stmt.TBlock1.TAlt1.Rule_select_stmt2","sum":207300301},{"parent":"TRule_subselect_stmt.TBlock1.TAlt1","rule":"TRule_subselect_stmt.TBlock1.TAlt1.Token1","sum":207300301},{"parent":"TRule_subselect_stmt.TBlock1.TAlt1","rule":"TRule_subselect_stmt.TBlock1.TAlt1.Token3","sum":207300301},{"parent":"TRule_subselect_stmt.TBlock1.TAlt2","rule":"TRule_subselect_stmt.TBlock1.TAlt2.Rule_select_unparenthesized_stmt1","sum":122636940},{"parent":"TRule_table_arg","rule":"TRule_table_arg.Block1","sum":116310},{"parent":"TRule_table_arg","rule":"TRule_table_arg.Block3","sum":264688},{"parent":"TRule_table_arg","rule":"TRule_table_arg.Rule_named_expr2","sum":192507095},{"parent":"TRule_table_arg.TBlock1","rule":"TRule_table_arg.TBlock1.Token1","sum":116310},{"parent":"TRule_table_arg.TBlock3","rule":"TRule_table_arg.TBlock3.Rule_view_name2","sum":264688},{"parent":"TRule_table_arg.TBlock3","rule":"TRule_table_arg.TBlock3.Token1","sum":264688},{"parent":"TRule_table_constraint","rule":"TRule_table_constraint.Alt_table_constraint2","sum":126},{"parent":"TRule_table_constraint","rule":"TRule_table_constraint.Alt_table_constraint3","sum":107},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Block5","sum":105},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Rule_an_id4","sum":126},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Token1","sum":126},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Token2","sum":126},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Token3","sum":126},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Token6","sum":126},{"parent":"TRule_table_constraint.TAlt2.TBlock5","rule":"TRule_table_constraint.TAlt2.TBlock5.Rule_an_id2","sum":264},{"parent":"TRule_table_constraint.TAlt2.TBlock5","rule":"TRule_table_constraint.TAlt2.TBlock5.Token1","sum":264},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Rule_column_order_by_specification4","sum":107},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Token1","sum":107},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Token2","sum":107},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Token3","sum":107},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Token6","sum":107},{"parent":"TRule_table_hint","rule":"TRule_table_hint.Alt_table_hint1","sum":154334901},{"parent":"TRule_table_hint","rule":"TRule_table_hint.Alt_table_hint2","sum":18944153},{"parent":"TRule_table_hint","rule":"TRule_table_hint.Alt_table_hint3","sum":12},{"parent":"TRule_table_hint.TAlt1","rule":"TRule_table_hint.TAlt1.Block2","sum":10710264},{"parent":"TRule_table_hint.TAlt1","rule":"TRule_table_hint.TAlt1.Rule_an_id_hint1","sum":154334901},{"parent":"TRule_table_hint.TAlt1.TBlock2","rule":"TRule_table_hint.TAlt1.TBlock2.Block2","sum":10710264},{"parent":"TRule_table_hint.TAlt1.TBlock2","rule":"TRule_table_hint.TAlt1.TBlock2.Token1","sum":10710264},{"parent":"TRule_table_hint.TAlt1.TBlock2.TBlock2","rule":"TRule_table_hint.TAlt1.TBlock2.TBlock2.Alt1","sum":10710264},{"parent":"TRule_table_hint.TAlt1.TBlock2.TBlock2.TAlt1","rule":"TRule_table_hint.TAlt1.TBlock2.TBlock2.TAlt1.Rule_type_name_tag1","sum":10710264},{"parent":"TRule_table_hint.TAlt2","rule":"TRule_table_hint.TAlt2.Block2","sum":1660},{"parent":"TRule_table_hint.TAlt2","rule":"TRule_table_hint.TAlt2.Rule_type_name_or_bind3","sum":18944153},{"parent":"TRule_table_hint.TAlt2","rule":"TRule_table_hint.TAlt2.Token1","sum":18944153},{"parent":"TRule_table_hint.TAlt2.TBlock2","rule":"TRule_table_hint.TAlt2.TBlock2.Token1","sum":1660},{"parent":"TRule_table_hint.TAlt3","rule":"TRule_table_hint.TAlt3.Block4","sum":12},{"parent":"TRule_table_hint.TAlt3","rule":"TRule_table_hint.TAlt3.Token1","sum":12},{"parent":"TRule_table_hint.TAlt3","rule":"TRule_table_hint.TAlt3.Token3","sum":12},{"parent":"TRule_table_hint.TAlt3","rule":"TRule_table_hint.TAlt3.Token6","sum":12},{"parent":"TRule_table_hint.TAlt3.TBlock4","rule":"TRule_table_hint.TAlt3.TBlock4.Block2","sum":7},{"parent":"TRule_table_hint.TAlt3.TBlock4","rule":"TRule_table_hint.TAlt3.TBlock4.Rule_struct_arg_positional1","sum":12},{"parent":"TRule_table_hint.TAlt3.TBlock4.TBlock2","rule":"TRule_table_hint.TAlt3.TBlock4.TBlock2.Rule_struct_arg_positional2","sum":163},{"parent":"TRule_table_hint.TAlt3.TBlock4.TBlock2","rule":"TRule_table_hint.TAlt3.TBlock4.TBlock2.Token1","sum":163},{"parent":"TRule_table_hints","rule":"TRule_table_hints.Block2","sum":162657466},{"parent":"TRule_table_hints","rule":"TRule_table_hints.Token1","sum":162657466},{"parent":"TRule_table_hints.TBlock2","rule":"TRule_table_hints.TBlock2.Alt1","sum":152165766},{"parent":"TRule_table_hints.TBlock2","rule":"TRule_table_hints.TBlock2.Alt2","sum":10491700},{"parent":"TRule_table_hints.TBlock2.TAlt1","rule":"TRule_table_hints.TBlock2.TAlt1.Rule_table_hint1","sum":152165766},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Block3","sum":10221799},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Rule_table_hint2","sum":10491700},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Token1","sum":10491700},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Token4","sum":10491700},{"parent":"TRule_table_hints.TBlock2.TAlt2.TBlock3","rule":"TRule_table_hints.TBlock2.TAlt2.TBlock3.Rule_table_hint2","sum":10621600},{"parent":"TRule_table_hints.TBlock2.TAlt2.TBlock3","rule":"TRule_table_hints.TBlock2.TAlt2.TBlock3.Token1","sum":10621600},{"parent":"TRule_table_key","rule":"TRule_table_key.Block2","sum":864520},{"parent":"TRule_table_key","rule":"TRule_table_key.Rule_id_table_or_type1","sum":330801595},{"parent":"TRule_table_key.TBlock2","rule":"TRule_table_key.TBlock2.Rule_view_name2","sum":864520},{"parent":"TRule_table_key.TBlock2","rule":"TRule_table_key.TBlock2.Token1","sum":864520},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block1","sum":39945456},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block2","sum":6030087},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block3","sum":953241090},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block4","sum":19663127},{"parent":"TRule_table_ref.TBlock1","rule":"TRule_table_ref.TBlock1.Rule_cluster_expr1","sum":39945456},{"parent":"TRule_table_ref.TBlock1","rule":"TRule_table_ref.TBlock1.Token2","sum":39945456},{"parent":"TRule_table_ref.TBlock2","rule":"TRule_table_ref.TBlock2.Token1","sum":6030087},{"parent":"TRule_table_ref.TBlock3","rule":"TRule_table_ref.TBlock3.Alt1","sum":330801595},{"parent":"TRule_table_ref.TBlock3","rule":"TRule_table_ref.TBlock3.Alt2","sum":96266390},{"parent":"TRule_table_ref.TBlock3","rule":"TRule_table_ref.TBlock3.Alt3","sum":526173105},{"parent":"TRule_table_ref.TBlock3.TAlt1","rule":"TRule_table_ref.TBlock3.TAlt1.Rule_table_key1","sum":330801595},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Block3","sum":96266365},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Rule_an_id_expr1","sum":96266390},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Token2","sum":96266390},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Token4","sum":96266390},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.Block2","sum":49696578},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.Block3","sum":356338},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.Rule_table_arg1","sum":96266365},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2.Rule_table_arg2","sum":96240730},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2.Token1","sum":96240730},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock3.Token1","sum":356338},{"parent":"TRule_table_ref.TBlock3.TAlt3","rule":"TRule_table_ref.TBlock3.TAlt3.Block2","sum":22272712},{"parent":"TRule_table_ref.TBlock3.TAlt3","rule":"TRule_table_ref.TBlock3.TAlt3.Block3","sum":177045},{"parent":"TRule_table_ref.TBlock3.TAlt3","rule":"TRule_table_ref.TBlock3.TAlt3.Rule_bind_parameter1","sum":526173105},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.Block2","sum":15906646},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.Token1","sum":22272712},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.Token3","sum":22272712},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.TBlock2.Rule_expr_list1","sum":15906646},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock3.Rule_view_name2","sum":177045},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock3.Token1","sum":177045},{"parent":"TRule_table_ref.TBlock4","rule":"TRule_table_ref.TBlock4.Rule_table_hints1","sum":19663127},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Block6","sum":9275},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Rule_expr4","sum":328669},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Rule_sampling_mode2","sum":328669},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Token1","sum":328669},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Token3","sum":328669},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Token5","sum":328669},{"parent":"TRule_tablesample_clause.TBlock6","rule":"TRule_tablesample_clause.TBlock6.Rule_repeatable_clause1","sum":9275},{"parent":"TRule_type_id","rule":"TRule_type_id.Token1","sum":11667116},{"parent":"TRule_type_name","rule":"TRule_type_name.Alt_type_name1","sum":89350499},{"parent":"TRule_type_name","rule":"TRule_type_name.Alt_type_name2","sum":703427460},{"parent":"TRule_type_name.TAlt1","rule":"TRule_type_name.TAlt1.Rule_type_name_composite1","sum":89350499},{"parent":"TRule_type_name.TAlt2","rule":"TRule_type_name.TAlt2.Block1","sum":703427460},{"parent":"TRule_type_name.TAlt2","rule":"TRule_type_name.TAlt2.Block2","sum":73589678},{"parent":"TRule_type_name.TAlt2.TBlock1","rule":"TRule_type_name.TAlt2.TBlock1.Alt1","sum":27884202},{"parent":"TRule_type_name.TAlt2.TBlock1","rule":"TRule_type_name.TAlt2.TBlock1.Alt2","sum":675543258},{"parent":"TRule_type_name.TAlt2.TBlock1.TAlt1","rule":"TRule_type_name.TAlt2.TBlock1.TAlt1.Rule_type_name_decimal1","sum":27884202},{"parent":"TRule_type_name.TAlt2.TBlock1.TAlt2","rule":"TRule_type_name.TAlt2.TBlock1.TAlt2.Rule_type_name_simple1","sum":675543258},{"parent":"TRule_type_name.TAlt2.TBlock2","rule":"TRule_type_name.TAlt2.TBlock2.Token1","sum":73590713},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Block4","sum":9759575},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Block5","sum":222641},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Block6","sum":10457},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Rule_type_name_or_bind9","sum":10086496},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token1","sum":10086496},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token10","sum":10086496},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token2","sum":10086496},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token3","sum":10086496},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token7","sum":10086496},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token8","sum":10086496},{"parent":"TRule_type_name_callable.TBlock4","rule":"TRule_type_name_callable.TBlock4.Rule_callable_arg_list1","sum":9759575},{"parent":"TRule_type_name_callable.TBlock5","rule":"TRule_type_name_callable.TBlock5.Token1","sum":222641},{"parent":"TRule_type_name_callable.TBlock6","rule":"TRule_type_name_callable.TBlock6.Rule_callable_arg_list2","sum":10457},{"parent":"TRule_type_name_callable.TBlock6","rule":"TRule_type_name_callable.TBlock6.Token1","sum":10457},{"parent":"TRule_type_name_callable.TBlock6","rule":"TRule_type_name_callable.TBlock6.Token3","sum":10457},{"parent":"TRule_type_name_composite","rule":"TRule_type_name_composite.Block1","sum":106726447},{"parent":"TRule_type_name_composite","rule":"TRule_type_name_composite.Block2","sum":4244791},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt1","sum":33257209},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt10","sum":20320},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt11","sum":456243},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt12","sum":7804},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt13","sum":10086496},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt2","sum":2156159},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt3","sum":26673461},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt4","sum":136152},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt5","sum":25759007},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt6","sum":1520066},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt8","sum":6640454},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt9","sum":13076},{"parent":"TRule_type_name_composite.TBlock1.TAlt1","rule":"TRule_type_name_composite.TBlock1.TAlt1.Rule_type_name_optional1","sum":33257209},{"parent":"TRule_type_name_composite.TBlock1.TAlt10","rule":"TRule_type_name_composite.TBlock1.TAlt10.Rule_type_name_enum1","sum":20320},{"parent":"TRule_type_name_composite.TBlock1.TAlt11","rule":"TRule_type_name_composite.TBlock1.TAlt11.Rule_type_name_resource1","sum":456243},{"parent":"TRule_type_name_composite.TBlock1.TAlt12","rule":"TRule_type_name_composite.TBlock1.TAlt12.Rule_type_name_tagged1","sum":7804},{"parent":"TRule_type_name_composite.TBlock1.TAlt13","rule":"TRule_type_name_composite.TBlock1.TAlt13.Rule_type_name_callable1","sum":10086496},{"parent":"TRule_type_name_composite.TBlock1.TAlt2","rule":"TRule_type_name_composite.TBlock1.TAlt2.Rule_type_name_tuple1","sum":2156159},{"parent":"TRule_type_name_composite.TBlock1.TAlt3","rule":"TRule_type_name_composite.TBlock1.TAlt3.Rule_type_name_struct1","sum":26673461},{"parent":"TRule_type_name_composite.TBlock1.TAlt4","rule":"TRule_type_name_composite.TBlock1.TAlt4.Rule_type_name_variant1","sum":136152},{"parent":"TRule_type_name_composite.TBlock1.TAlt5","rule":"TRule_type_name_composite.TBlock1.TAlt5.Rule_type_name_list1","sum":25759007},{"parent":"TRule_type_name_composite.TBlock1.TAlt6","rule":"TRule_type_name_composite.TBlock1.TAlt6.Rule_type_name_stream1","sum":1520066},{"parent":"TRule_type_name_composite.TBlock1.TAlt8","rule":"TRule_type_name_composite.TBlock1.TAlt8.Rule_type_name_dict1","sum":6640454},{"parent":"TRule_type_name_composite.TBlock1.TAlt9","rule":"TRule_type_name_composite.TBlock1.TAlt9.Rule_type_name_set1","sum":13076},{"parent":"TRule_type_name_composite.TBlock2","rule":"TRule_type_name_composite.TBlock2.Token1","sum":4244794},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Rule_integer_or_bind3","sum":27884202},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Rule_integer_or_bind5","sum":27884202},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token1","sum":27884202},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token2","sum":27884202},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token4","sum":27884202},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token6","sum":27884202},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Rule_type_name_or_bind3","sum":6640454},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Rule_type_name_or_bind5","sum":6640454},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token1","sum":6640454},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token2","sum":6640454},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token4","sum":6640454},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token6","sum":6640454},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Block4","sum":20072},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Block5","sum":378},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Rule_type_name_tag3","sum":20320},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Token1","sum":20320},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Token2","sum":20320},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Token6","sum":20320},{"parent":"TRule_type_name_enum.TBlock4","rule":"TRule_type_name_enum.TBlock4.Rule_type_name_tag2","sum":43728},{"parent":"TRule_type_name_enum.TBlock4","rule":"TRule_type_name_enum.TBlock4.Token1","sum":43728},{"parent":"TRule_type_name_enum.TBlock5","rule":"TRule_type_name_enum.TBlock5.Token1","sum":378},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Rule_type_name_or_bind3","sum":25759007},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Token1","sum":25759007},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Token2","sum":25759007},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Token4","sum":25759007},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Rule_type_name_or_bind3","sum":33257209},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Token1","sum":33257209},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Token2","sum":33257209},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Token4","sum":33257209},{"parent":"TRule_type_name_or_bind","rule":"TRule_type_name_or_bind.Alt_type_name_or_bind1","sum":636419428},{"parent":"TRule_type_name_or_bind","rule":"TRule_type_name_or_bind.Alt_type_name_or_bind2","sum":2669561},{"parent":"TRule_type_name_or_bind.TAlt1","rule":"TRule_type_name_or_bind.TAlt1.Rule_type_name1","sum":636419428},{"parent":"TRule_type_name_or_bind.TAlt2","rule":"TRule_type_name_or_bind.TAlt2.Rule_bind_parameter1","sum":2669561},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Rule_type_name_tag3","sum":456243},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Token1","sum":456243},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Token2","sum":456243},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Token4","sum":456243},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Rule_type_name_or_bind3","sum":13076},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Token1","sum":13076},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Token2","sum":13076},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Token4","sum":13076},{"parent":"TRule_type_name_simple","rule":"TRule_type_name_simple.Rule_an_id_pure1","sum":677385895},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Rule_type_name_or_bind3","sum":1520066},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Token1","sum":1520066},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Token2","sum":1520066},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Token4","sum":1520066},{"parent":"TRule_type_name_struct","rule":"TRule_type_name_struct.Block2","sum":26673461},{"parent":"TRule_type_name_struct","rule":"TRule_type_name_struct.Token1","sum":26673461},{"parent":"TRule_type_name_struct.TBlock2","rule":"TRule_type_name_struct.TBlock2.Alt1","sum":26670569},{"parent":"TRule_type_name_struct.TBlock2","rule":"TRule_type_name_struct.TBlock2.Alt2","sum":2892},{"parent":"TRule_type_name_struct.TBlock2.TAlt1","rule":"TRule_type_name_struct.TBlock2.TAlt1.Block2","sum":26670558},{"parent":"TRule_type_name_struct.TBlock2.TAlt1","rule":"TRule_type_name_struct.TBlock2.TAlt1.Token1","sum":26670569},{"parent":"TRule_type_name_struct.TBlock2.TAlt1","rule":"TRule_type_name_struct.TBlock2.TAlt1.Token3","sum":26670569},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.Block2","sum":20356595},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.Block3","sum":2053764},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.Rule_struct_arg1","sum":26670558},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2.Rule_struct_arg2","sum":87346323},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2.Token1","sum":87346323},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock3","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock3.Token1","sum":2053764},{"parent":"TRule_type_name_struct.TBlock2.TAlt2","rule":"TRule_type_name_struct.TBlock2.TAlt2.Token1","sum":2892},{"parent":"TRule_type_name_tag","rule":"TRule_type_name_tag.Alt_type_name_tag1","sum":104746815},{"parent":"TRule_type_name_tag","rule":"TRule_type_name_tag.Alt_type_name_tag2","sum":18252530},{"parent":"TRule_type_name_tag","rule":"TRule_type_name_tag.Alt_type_name_tag3","sum":2612869},{"parent":"TRule_type_name_tag.TAlt1","rule":"TRule_type_name_tag.TAlt1.Rule_id1","sum":104746815},{"parent":"TRule_type_name_tag.TAlt2","rule":"TRule_type_name_tag.TAlt2.Token1","sum":18252530},{"parent":"TRule_type_name_tag.TAlt3","rule":"TRule_type_name_tag.TAlt3.Rule_bind_parameter1","sum":2612869},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Rule_type_name_or_bind3","sum":7804},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Rule_type_name_tag5","sum":7804},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token1","sum":7804},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token2","sum":7804},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token4","sum":7804},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token6","sum":7804},{"parent":"TRule_type_name_tuple","rule":"TRule_type_name_tuple.Block2","sum":2156159},{"parent":"TRule_type_name_tuple","rule":"TRule_type_name_tuple.Token1","sum":2156159},{"parent":"TRule_type_name_tuple.TBlock2","rule":"TRule_type_name_tuple.TBlock2.Alt1","sum":2156149},{"parent":"TRule_type_name_tuple.TBlock2","rule":"TRule_type_name_tuple.TBlock2.Alt2","sum":10},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1","rule":"TRule_type_name_tuple.TBlock2.TAlt1.Block2","sum":2156149},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1","rule":"TRule_type_name_tuple.TBlock2.TAlt1.Token1","sum":2156149},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1","rule":"TRule_type_name_tuple.TBlock2.TAlt1.Token3","sum":2156149},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.Block2","sum":2154633},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.Block3","sum":63598},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.Rule_type_name_or_bind1","sum":2156149},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2.Rule_type_name_or_bind2","sum":3336978},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2.Token1","sum":3336978},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock3","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock3.Token1","sum":63598},{"parent":"TRule_type_name_tuple.TBlock2.TAlt2","rule":"TRule_type_name_tuple.TBlock2.TAlt2.Token1","sum":10},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Block4","sum":121499},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Block5","sum":99},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Rule_variant_arg3","sum":136152},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Token1","sum":136152},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Token2","sum":136152},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Token6","sum":136152},{"parent":"TRule_type_name_variant.TBlock4","rule":"TRule_type_name_variant.TBlock4.Rule_variant_arg2","sum":231876},{"parent":"TRule_type_name_variant.TBlock4","rule":"TRule_type_name_variant.TBlock4.Token1","sum":231876},{"parent":"TRule_type_name_variant.TBlock5","rule":"TRule_type_name_variant.TBlock5.Token1","sum":99},{"parent":"TRule_unary_casual_subexpr","rule":"TRule_unary_casual_subexpr.Block1","sum":16009368007},{"parent":"TRule_unary_casual_subexpr","rule":"TRule_unary_casual_subexpr.Rule_unary_subexpr_suffix2","sum":16009368007},{"parent":"TRule_unary_casual_subexpr.TBlock1","rule":"TRule_unary_casual_subexpr.TBlock1.Alt1","sum":7177628946},{"parent":"TRule_unary_casual_subexpr.TBlock1","rule":"TRule_unary_casual_subexpr.TBlock1.Alt2","sum":8831739061},{"parent":"TRule_unary_casual_subexpr.TBlock1.TAlt1","rule":"TRule_unary_casual_subexpr.TBlock1.TAlt1.Rule_id_expr1","sum":7177628946},{"parent":"TRule_unary_casual_subexpr.TBlock1.TAlt2","rule":"TRule_unary_casual_subexpr.TBlock1.TAlt2.Rule_atom_expr1","sum":8831739061},{"parent":"TRule_unary_op","rule":"TRule_unary_op.Token1","sum":87792338},{"parent":"TRule_unary_subexpr","rule":"TRule_unary_subexpr.Alt_unary_subexpr1","sum":16009368007},{"parent":"TRule_unary_subexpr","rule":"TRule_unary_subexpr.Alt_unary_subexpr2","sum":6348054},{"parent":"TRule_unary_subexpr.TAlt1","rule":"TRule_unary_subexpr.TAlt1.Rule_unary_casual_subexpr1","sum":16009368007},{"parent":"TRule_unary_subexpr.TAlt2","rule":"TRule_unary_subexpr.TAlt2.Rule_json_api_expr1","sum":6348054},{"parent":"TRule_unary_subexpr_suffix","rule":"TRule_unary_subexpr_suffix.Block1","sum":4771836263},{"parent":"TRule_unary_subexpr_suffix.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.Block1","sum":5026228634},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.Alt1","sum":173319845},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.Alt2","sum":2874929886},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.Alt3","sum":1977978903},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt1.Rule_key_expr1","sum":173319845},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt2.Rule_invoke_expr1","sum":2874929886},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.Block2","sum":1977978903},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.Token1","sum":1977978903},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.Alt1","sum":3152320},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.Alt2","sum":40423819},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.Alt3","sum":1934402764},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt1.Rule_bind_parameter1","sum":3152320},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt2.Token1","sum":40423819},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt3","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt3.Rule_an_id_or_type1","sum":1934402764},{"parent":"TRule_use_stmt","rule":"TRule_use_stmt.Rule_cluster_expr2","sum":329427984},{"parent":"TRule_use_stmt","rule":"TRule_use_stmt.Token1","sum":329427984},{"parent":"TRule_using_call_expr","rule":"TRule_using_call_expr.Block1","sum":2767190},{"parent":"TRule_using_call_expr","rule":"TRule_using_call_expr.Rule_invoke_expr2","sum":2767190},{"parent":"TRule_using_call_expr.TBlock1","rule":"TRule_using_call_expr.TBlock1.Alt1","sum":1520665},{"parent":"TRule_using_call_expr.TBlock1","rule":"TRule_using_call_expr.TBlock1.Alt3","sum":1246525},{"parent":"TRule_using_call_expr.TBlock1.TAlt1","rule":"TRule_using_call_expr.TBlock1.TAlt1.Rule_an_id_or_type1","sum":1520665},{"parent":"TRule_using_call_expr.TBlock1.TAlt1","rule":"TRule_using_call_expr.TBlock1.TAlt1.Rule_an_id_or_type3","sum":1520665},{"parent":"TRule_using_call_expr.TBlock1.TAlt1","rule":"TRule_using_call_expr.TBlock1.TAlt1.Token2","sum":1520665},{"parent":"TRule_using_call_expr.TBlock1.TAlt3","rule":"TRule_using_call_expr.TBlock1.TAlt3.Rule_bind_parameter1","sum":1246525},{"parent":"TRule_value_constructor","rule":"TRule_value_constructor.Alt_value_constructor1","sum":32135},{"parent":"TRule_value_constructor","rule":"TRule_value_constructor.Alt_value_constructor2","sum":50918},{"parent":"TRule_value_constructor","rule":"TRule_value_constructor.Alt_value_constructor3","sum":80586},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Rule_expr3","sum":32135},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Rule_expr5","sum":32135},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Rule_expr7","sum":32135},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token1","sum":32135},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token2","sum":32135},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token4","sum":32135},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token6","sum":32135},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token8","sum":32135},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Rule_expr3","sum":50918},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Rule_expr5","sum":50918},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token1","sum":50918},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token2","sum":50918},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token4","sum":50918},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token6","sum":50918},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Rule_expr3","sum":80586},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Rule_expr5","sum":80586},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token1","sum":80586},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token2","sum":80586},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token4","sum":80586},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token6","sum":80586},{"parent":"TRule_values_source","rule":"TRule_values_source.Alt_values_source1","sum":1085217},{"parent":"TRule_values_source","rule":"TRule_values_source.Alt_values_source2","sum":207827779},{"parent":"TRule_values_source.TAlt1","rule":"TRule_values_source.TAlt1.Rule_values_stmt1","sum":1085217},{"parent":"TRule_values_source.TAlt2","rule":"TRule_values_source.TAlt2.Rule_select_stmt1","sum":207827779},{"parent":"TRule_values_source_row","rule":"TRule_values_source_row.Rule_expr_list2","sum":9055982},{"parent":"TRule_values_source_row","rule":"TRule_values_source_row.Token1","sum":9055982},{"parent":"TRule_values_source_row","rule":"TRule_values_source_row.Token3","sum":9055982},{"parent":"TRule_values_source_row_list","rule":"TRule_values_source_row_list.Block2","sum":486988},{"parent":"TRule_values_source_row_list","rule":"TRule_values_source_row_list.Rule_values_source_row1","sum":1253910},{"parent":"TRule_values_source_row_list.TBlock2","rule":"TRule_values_source_row_list.TBlock2.Rule_values_source_row2","sum":7802072},{"parent":"TRule_values_source_row_list.TBlock2","rule":"TRule_values_source_row_list.TBlock2.Token1","sum":7802072},{"parent":"TRule_values_stmt","rule":"TRule_values_stmt.Rule_values_source_row_list2","sum":1253910},{"parent":"TRule_values_stmt","rule":"TRule_values_stmt.Token1","sum":1253910},{"parent":"TRule_variant_arg","rule":"TRule_variant_arg.Block1","sum":356799},{"parent":"TRule_variant_arg","rule":"TRule_variant_arg.Rule_type_name_or_bind2","sum":18347086},{"parent":"TRule_variant_arg.TBlock1","rule":"TRule_variant_arg.TBlock1.Rule_type_name_tag1","sum":356799},{"parent":"TRule_variant_arg.TBlock1","rule":"TRule_variant_arg.TBlock1.Token2","sum":356799},{"parent":"TRule_view_name","rule":"TRule_view_name.Alt_view_name1","sum":1306253},{"parent":"TRule_view_name.TAlt1","rule":"TRule_view_name.TAlt1.Rule_an_id1","sum":1306253},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Rule_expr2","sum":158241873},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Rule_expr4","sum":158241873},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Token1","sum":158241873},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Token3","sum":158241873},{"parent":"TRule_window_clause","rule":"TRule_window_clause.Rule_window_definition_list2","sum":13585207},{"parent":"TRule_window_clause","rule":"TRule_window_clause.Token1","sum":13585207},{"parent":"TRule_window_definition","rule":"TRule_window_definition.Rule_new_window_name1","sum":14160253},{"parent":"TRule_window_definition","rule":"TRule_window_definition.Rule_window_specification3","sum":14160253},{"parent":"TRule_window_definition","rule":"TRule_window_definition.Token2","sum":14160253},{"parent":"TRule_window_definition_list","rule":"TRule_window_definition_list.Block2","sum":434934},{"parent":"TRule_window_definition_list","rule":"TRule_window_definition_list.Rule_window_definition1","sum":13585207},{"parent":"TRule_window_definition_list.TBlock2","rule":"TRule_window_definition_list.TBlock2.Rule_window_definition2","sum":575046},{"parent":"TRule_window_definition_list.TBlock2","rule":"TRule_window_definition_list.TBlock2.Token1","sum":575046},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Rule_window_frame_bound2","sum":2316737},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Rule_window_frame_bound4","sum":2316737},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Token1","sum":2316737},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Token3","sum":2316737},{"parent":"TRule_window_frame_bound","rule":"TRule_window_frame_bound.Alt_window_frame_bound1","sum":1324737},{"parent":"TRule_window_frame_bound","rule":"TRule_window_frame_bound.Alt_window_frame_bound2","sum":3366628},{"parent":"TRule_window_frame_bound.TAlt1","rule":"TRule_window_frame_bound.TAlt1.Token1","sum":1324737},{"parent":"TRule_window_frame_bound.TAlt1","rule":"TRule_window_frame_bound.TAlt1.Token2","sum":1324737},{"parent":"TRule_window_frame_bound.TAlt2","rule":"TRule_window_frame_bound.TAlt2.Block1","sum":3366628},{"parent":"TRule_window_frame_bound.TAlt2","rule":"TRule_window_frame_bound.TAlt2.Token2","sum":3366628},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1","rule":"TRule_window_frame_bound.TAlt2.TBlock1.Alt1","sum":1114210},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1","rule":"TRule_window_frame_bound.TAlt2.TBlock1.Alt2","sum":2252418},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt1","rule":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt1.Rule_expr1","sum":1114210},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt2","rule":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt2.Token1","sum":2252418},{"parent":"TRule_window_frame_clause","rule":"TRule_window_frame_clause.Rule_window_frame_extent2","sum":2374628},{"parent":"TRule_window_frame_clause","rule":"TRule_window_frame_clause.Rule_window_frame_units1","sum":2374628},{"parent":"TRule_window_frame_extent","rule":"TRule_window_frame_extent.Alt_window_frame_extent1","sum":57891},{"parent":"TRule_window_frame_extent","rule":"TRule_window_frame_extent.Alt_window_frame_extent2","sum":2316737},{"parent":"TRule_window_frame_extent.TAlt1","rule":"TRule_window_frame_extent.TAlt1.Rule_window_frame_bound1","sum":57891},{"parent":"TRule_window_frame_extent.TAlt2","rule":"TRule_window_frame_extent.TAlt2.Rule_window_frame_between1","sum":2316737},{"parent":"TRule_window_frame_units","rule":"TRule_window_frame_units.Token1","sum":2374628},{"parent":"TRule_window_name","rule":"TRule_window_name.Rule_an_id_window1","sum":46640092},{"parent":"TRule_window_name_or_specification","rule":"TRule_window_name_or_specification.Alt_window_name_or_specification1","sum":32479839},{"parent":"TRule_window_name_or_specification","rule":"TRule_window_name_or_specification.Alt_window_name_or_specification2","sum":12826512},{"parent":"TRule_window_name_or_specification.TAlt1","rule":"TRule_window_name_or_specification.TAlt1.Rule_window_name1","sum":32479839},{"parent":"TRule_window_name_or_specification.TAlt2","rule":"TRule_window_name_or_specification.TAlt2.Rule_window_specification1","sum":12826512},{"parent":"TRule_window_order_clause","rule":"TRule_window_order_clause.Rule_order_by_clause1","sum":19003363},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Block2","sum":51717},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Rule_named_expr_list4","sum":21791276},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Token1","sum":21791276},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Token3","sum":21791276},{"parent":"TRule_window_partition_clause.TBlock2","rule":"TRule_window_partition_clause.TBlock2.Token1","sum":51717},{"parent":"TRule_window_specification","rule":"TRule_window_specification.Rule_window_specification_details2","sum":26986765},{"parent":"TRule_window_specification","rule":"TRule_window_specification.Token1","sum":26986765},{"parent":"TRule_window_specification","rule":"TRule_window_specification.Token3","sum":26986765},{"parent":"TRule_window_specification_details","rule":"TRule_window_specification_details.Block2","sum":21791275},{"parent":"TRule_window_specification_details","rule":"TRule_window_specification_details.Block3","sum":19003363},{"parent":"TRule_window_specification_details","rule":"TRule_window_specification_details.Block4","sum":2374628},{"parent":"TRule_window_specification_details.TBlock2","rule":"TRule_window_specification_details.TBlock2.Rule_window_partition_clause1","sum":21791275},{"parent":"TRule_window_specification_details.TBlock3","rule":"TRule_window_specification_details.TBlock3.Rule_window_order_clause1","sum":19003363},{"parent":"TRule_window_specification_details.TBlock4","rule":"TRule_window_specification_details.TBlock4.Rule_window_frame_clause1","sum":2374628},{"parent":"TRule_without_column_list","rule":"TRule_without_column_list.Block2","sum":9203014},{"parent":"TRule_without_column_list","rule":"TRule_without_column_list.Block3","sum":1311173},{"parent":"TRule_without_column_list","rule":"TRule_without_column_list.Rule_without_column_name1","sum":24883415},{"parent":"TRule_without_column_list.TBlock2","rule":"TRule_without_column_list.TBlock2.Rule_without_column_name2","sum":29234776},{"parent":"TRule_without_column_list.TBlock2","rule":"TRule_without_column_list.TBlock2.Token1","sum":29234776},{"parent":"TRule_without_column_list.TBlock3","rule":"TRule_without_column_list.TBlock3.Token1","sum":1311173},{"parent":"TRule_without_column_name","rule":"TRule_without_column_name.Alt_without_column_name1","sum":30839645},{"parent":"TRule_without_column_name","rule":"TRule_without_column_name.Alt_without_column_name2","sum":23278546},{"parent":"TRule_without_column_name.TAlt1","rule":"TRule_without_column_name.TAlt1.Rule_an_id1","sum":30839645},{"parent":"TRule_without_column_name.TAlt1","rule":"TRule_without_column_name.TAlt1.Rule_an_id3","sum":30839645},{"parent":"TRule_without_column_name.TAlt1","rule":"TRule_without_column_name.TAlt1.Token2","sum":30839645},{"parent":"TRule_without_column_name.TAlt2","rule":"TRule_without_column_name.TAlt2.Rule_an_id_without1","sum":23278546},{"parent":"TRule_xor_subexpr","rule":"TRule_xor_subexpr.Block2","sum":1095537315},{"parent":"TRule_xor_subexpr","rule":"TRule_xor_subexpr.Rule_eq_subexpr1","sum":14281560370},{"parent":"TRule_xor_subexpr.TBlock2","rule":"TRule_xor_subexpr.TBlock2.Rule_cond_expr1","sum":1095537315},{"parent":"TSQLv1ParserAST","rule":"TSQLv1ParserAST.Rule_sql_query","sum":320130391},{"parent":"TYPE","rule":"BIGINT","sum":7045},{"parent":"TYPE","rule":"BOOL","sum":109153},{"parent":"TYPE","rule":"BYTEs","sum":1},{"parent":"TYPE","rule":"BigInt","sum":210},{"parent":"TYPE","rule":"Bool","sum":9299135},{"parent":"TYPE","rule":"Bytes","sum":421334},{"parent":"TYPE","rule":"DATE","sum":1252991},{"parent":"TYPE","rule":"DATETIME","sum":66736},{"parent":"TYPE","rule":"DATETime","sum":2},{"parent":"TYPE","rule":"DATEtIME","sum":1},{"parent":"TYPE","rule":"DATEtime","sum":34},{"parent":"TYPE","rule":"DAte","sum":9272},{"parent":"TYPE","rule":"DAteTime","sum":54},{"parent":"TYPE","rule":"DAtetime","sum":665},{"parent":"TYPE","rule":"DOUBLE","sum":1351180},{"parent":"TYPE","rule":"DOUBLe","sum":1},{"parent":"TYPE","rule":"DOUBle","sum":1},{"parent":"TYPE","rule":"DOUble","sum":3},{"parent":"TYPE","rule":"DOuble","sum":2143},{"parent":"TYPE","rule":"DaTeTime","sum":1},{"parent":"TYPE","rule":"Date","sum":20625922},{"parent":"TYPE","rule":"Date32","sum":60},{"parent":"TYPE","rule":"DateTIME","sum":19},{"parent":"TYPE","rule":"DateTIme","sum":121},{"parent":"TYPE","rule":"DateTime","sum":4994749},{"parent":"TYPE","rule":"DateTime64","sum":8},{"parent":"TYPE","rule":"DatetIME","sum":35},{"parent":"TYPE","rule":"Datetime","sum":3253222},{"parent":"TYPE","rule":"Datetime64","sum":37},{"parent":"TYPE","rule":"DoubLe","sum":13},{"parent":"TYPE","rule":"Double","sum":30104093},{"parent":"TYPE","rule":"EmptyDict","sum":28},{"parent":"TYPE","rule":"EmptyList","sum":28},{"parent":"TYPE","rule":"FLOAT","sum":191924},{"parent":"TYPE","rule":"FLoat","sum":3426},{"parent":"TYPE","rule":"FlOAT","sum":15},{"parent":"TYPE","rule":"FloaT","sum":320},{"parent":"TYPE","rule":"Float","sum":7080417},{"parent":"TYPE","rule":"Generic","sum":3},{"parent":"TYPE","rule":"INT","sum":422033},{"parent":"TYPE","rule":"INT16","sum":9481},{"parent":"TYPE","rule":"INT32","sum":140114},{"parent":"TYPE","rule":"INT64","sum":4144555},{"parent":"TYPE","rule":"INT8","sum":1823},{"parent":"TYPE","rule":"INTEGER","sum":73414},{"parent":"TYPE","rule":"INTERVAL","sum":10667},{"parent":"TYPE","rule":"INt16","sum":1},{"parent":"TYPE","rule":"INt32","sum":1172},{"parent":"TYPE","rule":"INt64","sum":38323},{"parent":"TYPE","rule":"InT32","sum":1},{"parent":"TYPE","rule":"Int","sum":523129},{"parent":"TYPE","rule":"Int16","sum":906516},{"parent":"TYPE","rule":"Int32","sum":13797078},{"parent":"TYPE","rule":"Int64","sum":47392259},{"parent":"TYPE","rule":"Int8","sum":1004426},{"parent":"TYPE","rule":"Integer","sum":468078},{"parent":"TYPE","rule":"Interval","sum":204594},{"parent":"TYPE","rule":"Interval64","sum":34},{"parent":"TYPE","rule":"JSON","sum":1735332},{"parent":"TYPE","rule":"JSONDocument","sum":255},{"parent":"TYPE","rule":"JSOn","sum":1},{"parent":"TYPE","rule":"JSon","sum":2},{"parent":"TYPE","rule":"Json","sum":5481257},{"parent":"TYPE","rule":"JsonDocument","sum":17007},{"parent":"TYPE","rule":"Jsondocument","sum":25},{"parent":"TYPE","rule":"PgBool","sum":20},{"parent":"TYPE","rule":"PgBox","sum":2},{"parent":"TYPE","rule":"PgByteA","sum":16},{"parent":"TYPE","rule":"PgCString","sum":19},{"parent":"TYPE","rule":"PgDate","sum":85},{"parent":"TYPE","rule":"PgFloat4","sum":31},{"parent":"TYPE","rule":"PgFloat8","sum":31},{"parent":"TYPE","rule":"PgInt","sum":1},{"parent":"TYPE","rule":"PgInt2","sum":97},{"parent":"TYPE","rule":"PgInt4","sum":37},{"parent":"TYPE","rule":"PgInt8","sum":32},{"parent":"TYPE","rule":"PgInterval","sum":238},{"parent":"TYPE","rule":"PgMoney","sum":2},{"parent":"TYPE","rule":"PgName","sum":2},{"parent":"TYPE","rule":"PgNumeric","sum":10},{"parent":"TYPE","rule":"PgPoint","sum":1278},{"parent":"TYPE","rule":"PgPolygon","sum":638},{"parent":"TYPE","rule":"PgText","sum":419},{"parent":"TYPE","rule":"PgTimestamp","sum":1875},{"parent":"TYPE","rule":"PgVarChar","sum":1},{"parent":"TYPE","rule":"PgVarchar","sum":231},{"parent":"TYPE","rule":"STRING","sum":2678975},{"parent":"TYPE","rule":"STRINg","sum":3},{"parent":"TYPE","rule":"STRing","sum":3},{"parent":"TYPE","rule":"STring","sum":1330},{"parent":"TYPE","rule":"StrINg","sum":45},{"parent":"TYPE","rule":"StrinG","sum":27},{"parent":"TYPE","rule":"String","sum":335154604},{"parent":"TYPE","rule":"TEXT","sum":20612},{"parent":"TYPE","rule":"TIMESTAMP","sum":315869},{"parent":"TYPE","rule":"TINYINT","sum":1},{"parent":"TYPE","rule":"TZDate","sum":30},{"parent":"TYPE","rule":"TZDateTime","sum":1},{"parent":"TYPE","rule":"TZDatetime","sum":25},{"parent":"TYPE","rule":"TZtimestamp","sum":1},{"parent":"TYPE","rule":"Text","sum":195837},{"parent":"TYPE","rule":"TimeStamp","sum":295779},{"parent":"TYPE","rule":"Timestamp","sum":5985852},{"parent":"TYPE","rule":"Timestamp64","sum":486},{"parent":"TYPE","rule":"TzDATE","sum":5},{"parent":"TYPE","rule":"TzDate","sum":48165},{"parent":"TYPE","rule":"TzDateTime","sum":43754},{"parent":"TYPE","rule":"TzDatetime","sum":672850},{"parent":"TYPE","rule":"TzTimeStamp","sum":6},{"parent":"TYPE","rule":"TzTimestamp","sum":8078},{"parent":"TYPE","rule":"Tzdate","sum":5},{"parent":"TYPE","rule":"Tzdatetime","sum":4},{"parent":"TYPE","rule":"UINT16","sum":1235},{"parent":"TYPE","rule":"UINT32","sum":430136},{"parent":"TYPE","rule":"UINT64","sum":590451},{"parent":"TYPE","rule":"UINT8","sum":160},{"parent":"TYPE","rule":"UINt32","sum":44},{"parent":"TYPE","rule":"UINt64","sum":416},{"parent":"TYPE","rule":"UINt8","sum":24},{"parent":"TYPE","rule":"UInt16","sum":129858},{"parent":"TYPE","rule":"UInt32","sum":7328251},{"parent":"TYPE","rule":"UInt64","sum":9460318},{"parent":"TYPE","rule":"UInt8","sum":153012},{"parent":"TYPE","rule":"UNIT","sum":756},{"parent":"TYPE","rule":"UTF8","sum":267638},{"parent":"TYPE","rule":"UTf8","sum":143},{"parent":"TYPE","rule":"UUID","sum":1241689},{"parent":"TYPE","rule":"UiNt32","sum":4},{"parent":"TYPE","rule":"Uint16","sum":333955},{"parent":"TYPE","rule":"Uint32","sum":18506534},{"parent":"TYPE","rule":"Uint64","sum":32752609},{"parent":"TYPE","rule":"Uint8","sum":2331285},{"parent":"TYPE","rule":"Unit","sum":1150},{"parent":"TYPE","rule":"Utf8","sum":14355669},{"parent":"TYPE","rule":"Uuid","sum":43569},{"parent":"TYPE","rule":"VARCHAR","sum":517176},{"parent":"TYPE","rule":"Varchar","sum":2},{"parent":"TYPE","rule":"Void","sum":11134},{"parent":"TYPE","rule":"XML","sum":21},{"parent":"TYPE","rule":"YSON","sum":226769},{"parent":"TYPE","rule":"YSon","sum":357},{"parent":"TYPE","rule":"Yson","sum":17637234},{"parent":"TYPE","rule":"_PgMoney","sum":3},{"parent":"TYPE","rule":"bigint","sum":8796},{"parent":"TYPE","rule":"bool","sum":936903},{"parent":"TYPE","rule":"bytes","sum":35237},{"parent":"TYPE","rule":"dATE","sum":1},{"parent":"TYPE","rule":"daTE","sum":5},{"parent":"TYPE","rule":"date","sum":32392415},{"parent":"TYPE","rule":"date32","sum":41},{"parent":"TYPE","rule":"dateTIME","sum":8},{"parent":"TYPE","rule":"dateTime","sum":43345},{"parent":"TYPE","rule":"datetime","sum":7110634},{"parent":"TYPE","rule":"datetime64","sum":61},{"parent":"TYPE","rule":"double","sum":6938427},{"parent":"TYPE","rule":"emptyList","sum":1},{"parent":"TYPE","rule":"float","sum":4720867},{"parent":"TYPE","rule":"generic","sum":2},{"parent":"TYPE","rule":"iNT","sum":1},{"parent":"TYPE","rule":"iNT64","sum":27},{"parent":"TYPE","rule":"inT64","sum":260},{"parent":"TYPE","rule":"int","sum":1119552},{"parent":"TYPE","rule":"int16","sum":79269},{"parent":"TYPE","rule":"int32","sum":3208024},{"parent":"TYPE","rule":"int64","sum":8444124},{"parent":"TYPE","rule":"int8","sum":42080},{"parent":"TYPE","rule":"integer","sum":135629},{"parent":"TYPE","rule":"interval","sum":400514},{"parent":"TYPE","rule":"json","sum":1061388},{"parent":"TYPE","rule":"json_document","sum":1},{"parent":"TYPE","rule":"jsondocument","sum":1},{"parent":"TYPE","rule":"pgDate","sum":22},{"parent":"TYPE","rule":"pg_name","sum":2},{"parent":"TYPE","rule":"pgbigint","sum":1},{"parent":"TYPE","rule":"pgbool","sum":18},{"parent":"TYPE","rule":"pgdate","sum":14},{"parent":"TYPE","rule":"pgfloat8","sum":2},{"parent":"TYPE","rule":"pgint","sum":366},{"parent":"TYPE","rule":"pgint2","sum":6},{"parent":"TYPE","rule":"pgint4","sum":41},{"parent":"TYPE","rule":"pgint8","sum":1},{"parent":"TYPE","rule":"pginteger","sum":1},{"parent":"TYPE","rule":"pginterval","sum":371},{"parent":"TYPE","rule":"pgnumeric","sum":5},{"parent":"TYPE","rule":"pgoid","sum":1},{"parent":"TYPE","rule":"pgtext","sum":76},{"parent":"TYPE","rule":"pgtimestamp","sum":20},{"parent":"TYPE","rule":"sTRING","sum":16},{"parent":"TYPE","rule":"smallint","sum":1},{"parent":"TYPE","rule":"strINg","sum":14},{"parent":"TYPE","rule":"striNg","sum":1},{"parent":"TYPE","rule":"strinG","sum":73},{"parent":"TYPE","rule":"string","sum":45728030},{"parent":"TYPE","rule":"text","sum":4565258},{"parent":"TYPE","rule":"timeStamp","sum":94},{"parent":"TYPE","rule":"timestamp","sum":21894834},{"parent":"TYPE","rule":"timestamp64","sum":12},{"parent":"TYPE","rule":"tinyint","sum":3},{"parent":"TYPE","rule":"tzDate","sum":1},{"parent":"TYPE","rule":"tzDateTime","sum":3},{"parent":"TYPE","rule":"tzDatetime","sum":30},{"parent":"TYPE","rule":"tzTimestamp","sum":709},{"parent":"TYPE","rule":"tzdate","sum":19},{"parent":"TYPE","rule":"tzdatetime","sum":67},{"parent":"TYPE","rule":"tzdatetime64","sum":2},{"parent":"TYPE","rule":"tztimestamp","sum":32},{"parent":"TYPE","rule":"tztimestamp64","sum":3},{"parent":"TYPE","rule":"uINT32","sum":6},{"parent":"TYPE","rule":"uInt32","sum":12269},{"parent":"TYPE","rule":"uInt64","sum":2528},{"parent":"TYPE","rule":"uInt8","sum":52},{"parent":"TYPE","rule":"uint16","sum":27129},{"parent":"TYPE","rule":"uint32","sum":5308657},{"parent":"TYPE","rule":"uint64","sum":8644573},{"parent":"TYPE","rule":"uint8","sum":159561},{"parent":"TYPE","rule":"unit","sum":693399},{"parent":"TYPE","rule":"utf8","sum":4587294},{"parent":"TYPE","rule":"uuid","sum":2980729},{"parent":"TYPE","rule":"varchar","sum":58836},{"parent":"TYPE","rule":"void","sum":1},{"parent":"TYPE","rule":"xml","sum":32381},{"parent":"TYPE","rule":"yaml","sum":144},{"parent":"TYPE","rule":"yson","sum":1126740}]
diff --git a/yql/essentials/docs/ru/syntax/expressions.md b/yql/essentials/docs/ru/syntax/expressions.md
index e0e424a38e..76930efd31 100644
--- a/yql/essentials/docs/ru/syntax/expressions.md
+++ b/yql/essentials/docs/ru/syntax/expressions.md
@@ -168,15 +168,15 @@ WHERE value IS NOT NULL;
## IS \[NOT\] DISTINCT FROM {#is-distinct-from}
-Сравнение двух значений. В отличие от обычных [операторов сравнения](#comparison-operators), нуллы считаются равными друг другу.
+Сравнение двух значений. В отличие от обычных [операторов сравнения](#comparison-operators), `NULL`-значения считаются равными друг другу.
Сравнение осуществляется по следующим правилам:
-1. операторы `IS DISTINCT FROM`/`IS NOT DISTINCT FROM` определены для тех и только для тех аргументов, для которых определены операторы `!=` и `=`;
-2. результат `IS NOT DISTINCT FROM` равен логическому отрицанию результата `IS DISTINCT FROM` для данных аргументов;
-3. если результат оператора `==` не равен нуллу для некоторых аргументов, то он совпадает с результатом оператора `IS NOT DISTINCT FROM` для тех же аргументов;
-4. если оба аргумента являются незаполненными `Optional`ми или `NULL`ами, то значение `IS NOT DISTINCT FROM` равно `True`
-5. результат `IS NOT DISTINCT FROM` от незаполненного `Optional` или `NULL` и заполненного `Optional` или не-`Optional` значения равен `False`.
+1. Операторы `IS DISTINCT FROM`/`IS NOT DISTINCT FROM` определены для тех и только для тех аргументов, для которых определены операторы `!=` и `=`.
+2. Результат `IS NOT DISTINCT FROM` равен логическому отрицанию результата `IS DISTINCT FROM` для данных аргументов.
+3. Если результат оператора `==` не равен `NULL` для некоторых аргументов, то он совпадает с результатом оператора `IS NOT DISTINCT FROM` для тех же аргументов.
+4. Если оба аргумента являются незаполненными `Optional` или `NULL`, то значение `IS NOT DISTINCT FROM` равно `True`.
+5. Результат `IS NOT DISTINCT FROM` от незаполненного `Optional` или `NULL` и заполненного `Optional` или не-`Optional` значения равен `False`.
Для значений композитных типов эти правила применяются рекурсивно.
@@ -435,13 +435,13 @@ $x, $y = AsTuple($y, $x); -- swap значений выражений
Семантика табличного выражения зависит от контекста в котором оно используется. В YQL табличные выражения могут применяться в следующих контекстах:
-* табличный контекст - после [FROM](select/from.md).
+* табличный контекст &mdash; после [FROM](select/from.md).
Здесь табличные выражения работают как ожидается – например `$input = SELECT a, b, c FROM T; SELECT * FROM $input` вернет таблицу с тремя колонками.
Табличный контекст также возникает после [UNION ALL](select/index.md#unionall), [JOIN](join.md#join), [PROCESS](process.md#process), [REDUCE](reduce.md#reduce);
-* векторный контекст - после [IN](#in). В этом контексте табличное выражение обязано содержать ровно одну колонку (имя этой колонки никак не влияет на результат выражения).
+* векторный контекст &mdash; после [IN](#in). В этом контексте табличное выражение обязано содержать ровно одну колонку (имя этой колонки никак не влияет на результат выражения).
Табличное выражение в векторном контексте типизируется как список (тип элемента списка при этом совпадает с типом колонки). Пример: `SELECT * FROM T WHERE key IN (SELECT k FROM T1)`;
@@ -456,7 +456,7 @@ $input = SELECT 1 AS key, 2 AS value;
$process = PROCESS $input;
SELECT FormatType(TypeOf($process)); -- $process используется в скалярном контексте,
- -- но результат SELECT при этом - List<Struct<'key':Int32,'value':Int32>>
+ -- но результат SELECT при этом — List<Struct<'key':Int32,'value':Int32>>
SELECT $process[0].key; -- вернет 1
@@ -475,7 +475,7 @@ SELECT * FROM $table LEFT JOIN $dict USING(key);
END DEFINE;
SELECT * FROM $merge_dict("Input", $dict); -- $dict здесь используется в скалярном контексте.
- -- ошибка - в скалярном контексте ожидается ровно одна колонка
+ -- ошибка — в скалярном контексте ожидается ровно одна колонка
```
@@ -491,7 +491,7 @@ SELECT * FROM $table LEFT JOIN $dict() USING(key); -- использование
-- (вызов шаблона подзапроса) в табличном контексте
END DEFINE;
-SELECT * FROM $merge_dict("Input", $dict); -- $dict - шаблон позапроса (не табличное выражение)
+SELECT * FROM $merge_dict("Input", $dict); -- $dict — шаблон позапроса (не табличное выражение)
-- передаваемый в качестве аргумента табличного выражения
```
diff --git a/yql/essentials/minikql/computation/mkql_method_address_helper.h b/yql/essentials/minikql/computation/mkql_method_address_helper.h
index 8935a74d52..35b6a66a90 100644
--- a/yql/essentials/minikql/computation/mkql_method_address_helper.h
+++ b/yql/essentials/minikql/computation/mkql_method_address_helper.h
@@ -153,14 +153,23 @@ inline uintptr_t GetMethodPtr() {
}
#else // SHOULD_WRAP_ALL_UNBOXED_VALUES_FOR_CODEGEN
+namespace NInternal {
+template <typename Method>
+inline uintptr_t GetMethodPtr(Method method) {
+ uintptr_t ptr;
+ std::memcpy(&ptr, &method, sizeof(uintptr_t));
+ return ptr;
+}
+} // namespace NInternal
+
template <MethodPointer auto func>
inline uintptr_t GetMethodPtr() {
- return GetMethodPtr(func);
+ return NInternal::GetMethodPtr(func);
}
template <FunctionPointer auto func>
inline uintptr_t GetMethodPtr() {
- return GetMethodPtr(func);
+ return NInternal::GetMethodPtr(func);
}
#endif // SHOULD_WRAP_ALL_UNBOXED_VALUES_FOR_CODEGEN
diff --git a/yql/essentials/providers/common/config/yql_dispatch.cpp b/yql/essentials/providers/common/config/yql_dispatch.cpp
index 536efac6d9..5a8b2573b1 100644
--- a/yql/essentials/providers/common/config/yql_dispatch.cpp
+++ b/yql/essentials/providers/common/config/yql_dispatch.cpp
@@ -164,6 +164,12 @@ void TSettingDispatcher::Restore() {
}
}
+void TSettingDispatcher::Enumerate(std::function<void(std::string_view)> callback) {
+ for (const auto& name : Names) {
+ callback(name);
+ }
+}
+
TSettingDispatcher::TErrorCallback TSettingDispatcher::GetDefaultErrorCallback() {
return [] (const TString& msg, bool isError) -> bool {
if (isError) {
diff --git a/yql/essentials/providers/common/config/yql_dispatch.h b/yql/essentials/providers/common/config/yql_dispatch.h
index 9c068c9334..0b7a9077dd 100644
--- a/yql/essentials/providers/common/config/yql_dispatch.h
+++ b/yql/essentials/providers/common/config/yql_dispatch.h
@@ -15,6 +15,7 @@
#include <util/generic/strbuf.h>
#include <util/generic/hash.h>
#include <util/generic/hash_set.h>
+#include <util/generic/set.h>
#include <util/generic/yexception.h>
#include <util/generic/vector.h>
#include <util/generic/guid.h>
@@ -344,6 +345,11 @@ public:
if (!Handlers.insert({NormalizeName(name), handler}).second) {
ythrow yexception() << "Duplicate configuration setting name " << name.Quote();
}
+
+ if (!name.StartsWith('_')) {
+ Names.insert(name);
+ }
+
return *handler;
}
@@ -383,10 +389,12 @@ public:
void Restore();
static TErrorCallback GetDefaultErrorCallback();
static TErrorCallback GetErrorCallback(TPositionHandle pos, TExprContext& ctx);
+ void Enumerate(std::function<void(std::string_view)> callback);
protected:
THashSet<TString> ValidClusters;
THashMap<TString, TSettingHandler::TPtr> Handlers;
+ TSet<TString> Names;
};
} // namespace NCommon
diff --git a/yql/essentials/providers/common/provider/yql_provider.cpp b/yql/essentials/providers/common/provider/yql_provider.cpp
index 7f3ef39e9a..f5fdda4052 100644
--- a/yql/essentials/providers/common/provider/yql_provider.cpp
+++ b/yql/essentials/providers/common/provider/yql_provider.cpp
@@ -1084,7 +1084,7 @@ bool FillUsedFilesImpl(
return childrenOk;
}
-static void GetToken(const TString& string, TString& out, const TTypeAnnotationContext& type) {
+void GetToken(const TString& string, TString& out, const TTypeAnnotationContext& type) {
auto separator = string.find(":");
const auto p0 = string.substr(0, separator);
if (p0 == "api") {
diff --git a/yql/essentials/providers/common/provider/yql_provider.h b/yql/essentials/providers/common/provider/yql_provider.h
index efddf213ff..4410f1cbc2 100644
--- a/yql/essentials/providers/common/provider/yql_provider.h
+++ b/yql/essentials/providers/common/provider/yql_provider.h
@@ -216,6 +216,8 @@ void TransformerStatsToYson(const TString& name, const IGraphTransformer::TStati
TString TransformerStatsToYson(const IGraphTransformer::TStatistics& stats, NYson::EYsonFormat format
= NYson::EYsonFormat::Pretty);
+void GetToken(const TString& string, TString& out, const TTypeAnnotationContext& type);
+
void FillSecureParams(const TExprNode::TPtr& node, const TTypeAnnotationContext& types, THashMap<TString, TString>& secureParams);
bool FillUsedFiles(const TExprNode& node, TUserDataTable& files, const TTypeAnnotationContext& types, TExprContext& ctx, const TUserDataTable& crutches = {});
diff --git a/yql/essentials/public/fastcheck/format.cpp b/yql/essentials/public/fastcheck/format.cpp
index 26a1bce2ca..dac43f0ffa 100644
--- a/yql/essentials/public/fastcheck/format.cpp
+++ b/yql/essentials/public/fastcheck/format.cpp
@@ -4,6 +4,7 @@
#include <yql/essentials/sql/v1/lexer/antlr4_ansi/lexer.h>
#include <yql/essentials/sql/v1/proto_parser/antlr4/proto_parser.h>
#include <yql/essentials/sql/v1/proto_parser/antlr4_ansi/proto_parser.h>
+#include <yql/essentials/core/issue/yql_issue.h>
#include <util/string/builder.h>
namespace NYql {
@@ -76,7 +77,7 @@ private:
auto formatter = NSQLFormat::MakeSqlFormatter(lexers, parsers, settings);
TString formattedQuery;
res.Success = formatter->Format(request.Program, formattedQuery, res.Issues);
- if (res.Success && formattedQuery != NormalizeEOL(request.Program)) {
+ if (res.Success && NormalizeEOL(formattedQuery) != NormalizeEOL(request.Program)) {
res.Success = false;
TPosition origPos(0, 1, request.File);
TTextWalker origWalker(origPos, true);
@@ -104,8 +105,10 @@ private:
origSample.erase(origSample.size() - 1);
}
- res.Issues.AddIssue(TIssue(origPos, TStringBuilder() <<
- "Format mismatch, expected:\n" << formattedSample << "\nbut got:\n" << origSample));
+ auto issue = TIssue(origPos, TStringBuilder() <<
+ "Format mismatch, expected:\n" << formattedSample << "\nbut got:\n" << origSample);
+ issue.SetCode(EYqlIssueCode::TIssuesIds_EIssueCode_WARNING, ESeverity::TSeverityIds_ESeverityId_S_WARNING);
+ res.Issues.AddIssue(issue);
}
return res;
diff --git a/yql/essentials/public/fastcheck/linter_ut.cpp b/yql/essentials/public/fastcheck/linter_ut.cpp
index 2c5c0bbd0a..c0315d20cf 100644
--- a/yql/essentials/public/fastcheck/linter_ut.cpp
+++ b/yql/essentials/public/fastcheck/linter_ut.cpp
@@ -115,6 +115,19 @@ Y_UNIT_TEST_SUITE(TLinterTests) {
UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
}
+ Y_UNIT_TEST(GoodFormatYqlWithWinEOLInComment) {
+ TChecksRequest request;
+ request.Program = "--\r\nSELECT\n 1\n;\n\nSELECT\n 2\n;\n";
+ request.Syntax = ESyntax::YQL;
+ request.Filters.ConstructInPlace();
+ request.Filters->push_back(TCheckFilter{.CheckNameGlob = "format"});
+ auto res = RunChecks(request);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks.size(), 1);
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].CheckName, "format");
+ UNIT_ASSERT_C(res.Checks[0].Success, res.Checks[0].Issues.ToString());
+ UNIT_ASSERT_VALUES_EQUAL(res.Checks[0].Issues.Size(), 0);
+ }
+
Y_UNIT_TEST(UnparsedFormatYql) {
TChecksRequest request;
request.Program = "select1\n";
diff --git a/yql/essentials/public/fastcheck/ya.make b/yql/essentials/public/fastcheck/ya.make
index 477b0dcee3..02488500a8 100644
--- a/yql/essentials/public/fastcheck/ya.make
+++ b/yql/essentials/public/fastcheck/ya.make
@@ -13,6 +13,7 @@ PEERDIR(
yql/essentials/ast
yql/essentials/core/services/mounts
yql/essentials/core/user_data
+ yql/essentials/core/issue/protos
yql/essentials/public/udf/service/exception_policy
yql/essentials/sql
yql/essentials/sql/pg
diff --git a/yql/essentials/sql/v1/complete/antlr4/c3i.h b/yql/essentials/sql/v1/complete/antlr4/c3i.h
index ca91649a54..26c7186805 100644
--- a/yql/essentials/sql/v1/complete/antlr4/c3i.h
+++ b/yql/essentials/sql/v1/complete/antlr4/c3i.h
@@ -10,8 +10,10 @@
namespace NSQLComplete {
+ // std::vector is used to prevent copying a C3 output
struct TSuggestedToken {
TTokenId Number;
+ std::vector<TTokenId> Following;
};
struct TMatchedRule {
diff --git a/yql/essentials/sql/v1/complete/antlr4/c3t.h b/yql/essentials/sql/v1/complete/antlr4/c3t.h
index 9042937678..750da64229 100644
--- a/yql/essentials/sql/v1/complete/antlr4/c3t.h
+++ b/yql/essentials/sql/v1/complete/antlr4/c3t.h
@@ -13,8 +13,6 @@
#include <util/generic/string.h>
#include <util/generic/vector.h>
-#include <unordered_set>
-
namespace NSQLComplete {
template <class Lexer, class Parser>
@@ -67,8 +65,8 @@ namespace NSQLComplete {
static TC3Candidates Converted(c3::CandidatesCollection candidates) {
TC3Candidates converted;
- for (const auto& [token, _] : candidates.tokens) {
- converted.Tokens.emplace_back(token);
+ for (auto& [token, following] : candidates.tokens) {
+ converted.Tokens.emplace_back(token, std::move(following));
}
for (auto& [rule, data] : candidates.rules) {
converted.Rules.emplace_back(rule, std::move(data.ruleList));
diff --git a/yql/essentials/sql/v1/complete/bench/main.cpp b/yql/essentials/sql/v1/complete/bench/main.cpp
new file mode 100644
index 0000000000..ace37c43e3
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/bench/main.cpp
@@ -0,0 +1,40 @@
+#include <benchmark/benchmark.h>
+
+#include <yql/essentials/sql/v1/complete/name/static/name_service.h>
+#include <yql/essentials/sql/v1/complete/name/static/ranking.h>
+#include <yql/essentials/sql/v1/complete/sql_complete.h>
+
+#include <yql/essentials/sql/v1/lexer/antlr4_pure/lexer.h>
+#include <yql/essentials/sql/v1/lexer/antlr4_pure_ansi/lexer.h>
+
+#include <util/generic/xrange.h>
+#include <util/system/compiler.h>
+
+namespace NSQLComplete {
+
+ NSQLComplete::TLexerSupplier MakePureLexerSupplier() {
+ NSQLTranslationV1::TLexers lexers;
+ lexers.Antlr4Pure = NSQLTranslationV1::MakeAntlr4PureLexerFactory();
+ lexers.Antlr4PureAnsi = NSQLTranslationV1::MakeAntlr4PureAnsiLexerFactory();
+ return [lexers = std::move(lexers)](bool ansi) {
+ return NSQLTranslationV1::MakeLexer(
+ lexers, ansi, /* antlr4 = */ true,
+ NSQLTranslationV1::ELexerFlavor::Pure);
+ };
+ }
+
+ void BenchmarkComplete(benchmark::State& state) {
+ auto names = NSQLComplete::MakeDefaultNameSet();
+ auto ranking = NSQLComplete::MakeDefaultRanking();
+ auto service = MakeStaticNameService(std::move(names), std::move(ranking));
+ auto engine = MakeSqlCompletionEngine(MakePureLexerSupplier(), std::move(service));
+
+ for (const auto _ : state) {
+ auto completion = engine->Complete({"SELECT "});
+ benchmark::DoNotOptimize(completion);
+ }
+ }
+
+} // namespace NSQLComplete
+
+BENCHMARK(NSQLComplete::BenchmarkComplete);
diff --git a/yql/essentials/sql/v1/complete/bench/ya.make b/yql/essentials/sql/v1/complete/bench/ya.make
new file mode 100644
index 0000000000..aec2f394c8
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/bench/ya.make
@@ -0,0 +1,13 @@
+G_BENCHMARK()
+
+SRCS(
+ main.cpp
+)
+
+PEERDIR(
+ yql/essentials/sql/v1/complete
+ yql/essentials/sql/v1/complete/name/static
+ yql/essentials/sql/v1/lexer
+)
+
+END()
diff --git a/yql/essentials/sql/v1/complete/name/static/default_name_set.cpp b/yql/essentials/sql/v1/complete/name/static/default_name_set.cpp
deleted file mode 100644
index f04c9180a3..0000000000
--- a/yql/essentials/sql/v1/complete/name/static/default_name_set.cpp
+++ /dev/null
@@ -1,73 +0,0 @@
-#include "name_service.h"
-
-namespace NSQLComplete {
-
- // TODO(YQL-19747): Use some name registry
- NameSet MakeDefaultNameSet() {
- return {
- .Types = {
- "Bool",
- "Int8",
- "Uint8",
- "Int16",
- "Uint16",
- "Int32",
- "Uint32",
- "Int64",
- "Uint64",
- "Float",
- "Double",
- "String",
- "Utf8",
- "Yson",
- "Json",
- "Uuid",
- "JsonDocument",
- "Date",
- "Datetime",
- "Timestamp",
- "Interval",
- "TzDate",
- "TzDatetime",
- "TzTimestamp",
- "Date32",
- "Datetime64",
- "Timestamp64",
- "Interval64",
- "TzDate32",
- "TzDatetime64",
- "TzTimestamp64",
- "Decimal",
- "DyNumber",
- },
- .Functions = {
- "COALESCE",
- "LENGTH",
- "SUBSTRING",
- "FIND",
- "RFIND",
- "StartsWith",
- "EndsWith",
- "IF",
- "NANVL",
- "Random",
- "RandomNumber",
- "RandomUuid",
- "CurrentUtcDate",
- "CurrentUtcDatetime",
- "CurrentUtcTimestamp",
- "CurrentTzDate",
- "CurrentTzDatetime",
- "CurrentTzTimestamp",
- "AddTimezone",
- "RemoveTimezone",
- "Version",
- "MAX_OF",
- "MIN_OF",
- "GREATEST",
- "LEAST",
- },
- };
- }
-
-} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/name/static/frequency.cpp b/yql/essentials/sql/v1/complete/name/static/frequency.cpp
new file mode 100644
index 0000000000..d9c8ba9652
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/name/static/frequency.cpp
@@ -0,0 +1,87 @@
+#include "frequency.h"
+
+#include <library/cpp/json/json_reader.h>
+#include <library/cpp/resource/resource.h>
+
+#include <util/charset/utf8.h>
+
+namespace NSQLComplete {
+
+ constexpr struct {
+ struct {
+ const char* Parent = "parent";
+ const char* Rule = "rule";
+ const char* Sum = "sum";
+ } Key;
+ struct {
+ const char* Type = "TYPE";
+ const char* Func = "FUNC";
+ const char* Module = "MODULE";
+ const char* ModuleFunc = "MODULE_FUNC";
+ } Parent;
+ } Json;
+
+ struct TFrequencyItem {
+ TString Parent;
+ TString Rule;
+ size_t Sum;
+
+ static TFrequencyItem ParseJsonMap(NJson::TJsonValue::TMapType&& json) {
+ return {
+ .Parent = json.at(Json.Key.Parent).GetStringSafe(),
+ .Rule = json.at(Json.Key.Rule).GetStringSafe(),
+ .Sum = json.at(Json.Key.Sum).GetUIntegerSafe(),
+ };
+ }
+
+ static TVector<TFrequencyItem> ParseListFromJsonArray(NJson::TJsonValue::TArray& json) {
+ TVector<TFrequencyItem> items;
+ items.reserve(json.size());
+ for (auto& element : json) {
+ auto item = TFrequencyItem::ParseJsonMap(std::move(element.GetMapSafe()));
+ items.emplace_back(std::move(item));
+ }
+ return items;
+ }
+
+ static TVector<TFrequencyItem> ParseListFromJsonText(const TStringBuf text) {
+ NJson::TJsonValue json = NJson::ReadJsonFastTree(text);
+ return ParseListFromJsonArray(json.GetArraySafe());
+ }
+ };
+
+ TFrequencyData Convert(TVector<TFrequencyItem> items) {
+ TFrequencyData data;
+ for (auto& item : items) {
+ if (item.Parent == Json.Parent.Type ||
+ item.Parent == Json.Parent.Func ||
+ item.Parent == Json.Parent.ModuleFunc ||
+ item.Parent == Json.Parent.Module) {
+ item.Rule = ToLowerUTF8(item.Rule);
+ }
+
+ if (item.Parent == Json.Parent.Type) {
+ data.Types[item.Rule] += item.Sum;
+ } else if (item.Parent == Json.Parent.Func ||
+ item.Parent == Json.Parent.ModuleFunc) {
+ data.Functions[item.Rule] += item.Sum;
+ } else if (item.Parent == Json.Parent.Module) {
+ // Ignore, unsupported: Modules
+ } else {
+ // Ignore, unsupported: Parser Call Stacks
+ }
+ }
+ return data;
+ }
+
+ TFrequencyData ParseJsonFrequencyData(const TStringBuf text) {
+ return Convert(TFrequencyItem::ParseListFromJsonText(text));
+ }
+
+ TFrequencyData LoadFrequencyData() {
+ TString text;
+ Y_ENSURE(NResource::FindExact("rules_corr_basic.json", &text));
+ return ParseJsonFrequencyData(text);
+ }
+
+} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/name/static/frequency.h b/yql/essentials/sql/v1/complete/name/static/frequency.h
new file mode 100644
index 0000000000..3d128f824b
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/name/static/frequency.h
@@ -0,0 +1,17 @@
+#pragma once
+
+#include <util/generic/string.h>
+#include <util/generic/hash.h>
+
+namespace NSQLComplete {
+
+ struct TFrequencyData {
+ THashMap<TString, size_t> Types;
+ THashMap<TString, size_t> Functions;
+ };
+
+ TFrequencyData ParseJsonFrequencyData(const TStringBuf text);
+
+ TFrequencyData LoadFrequencyData();
+
+} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/name/static/frequency_ut.cpp b/yql/essentials/sql/v1/complete/name/static/frequency_ut.cpp
new file mode 100644
index 0000000000..dd6ee2cfbb
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/name/static/frequency_ut.cpp
@@ -0,0 +1,37 @@
+#include "frequency.h"
+
+#include <library/cpp/testing/unittest/registar.h>
+
+using namespace NSQLComplete;
+
+Y_UNIT_TEST_SUITE(FrequencyTests) {
+
+ Y_UNIT_TEST(FrequencyDataJson) {
+ TFrequencyData actual = ParseJsonFrequencyData(R"([
+ {"parent":"FUNC","rule":"ABC","sum":1},
+ {"parent":"TYPE","rule":"BIGINT","sum":7101},
+ {"parent":"MODULE_FUNC","rule":"Compress::BZip2","sum":2},
+ {"parent":"MODULE","rule":"re2","sum":3094},
+ {"parent":"TRule_action_or_subquery_args","rule":"TRule_action_or_subquery_args.Block2","sum":4874480}
+ ])");
+
+ TFrequencyData expected = {
+ .Types = {
+ {"bigint", 7101},
+ },
+ .Functions = {
+ {"abc", 1},
+ {"compress::bzip2", 2},
+ },
+ };
+
+ UNIT_ASSERT_VALUES_EQUAL(actual.Types, expected.Types);
+ UNIT_ASSERT_VALUES_EQUAL(actual.Functions, expected.Functions);
+ }
+
+ Y_UNIT_TEST(FrequencyDataResouce) {
+ TFrequencyData data = LoadFrequencyData();
+ Y_UNUSED(data);
+ }
+
+} // Y_UNIT_TEST_SUITE(FrequencyTests)
diff --git a/yql/essentials/sql/v1/complete/name/static/json_name_set.cpp b/yql/essentials/sql/v1/complete/name/static/json_name_set.cpp
new file mode 100644
index 0000000000..29c303b310
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/name/static/json_name_set.cpp
@@ -0,0 +1,58 @@
+#include "name_service.h"
+
+#include <library/cpp/json/json_reader.h>
+#include <library/cpp/resource/resource.h>
+
+namespace NSQLComplete {
+
+ NJson::TJsonValue LoadJsonResource(const TStringBuf filename) {
+ TString text;
+ Y_ENSURE(NResource::FindExact(filename, &text));
+ return NJson::ReadJsonFastTree(text);
+ }
+
+ template <class T, class U>
+ T Merge(T lhs, U rhs) {
+ std::copy(std::begin(rhs), std::end(rhs), std::back_inserter(lhs));
+ return lhs;
+ }
+
+ TVector<TString> ParseNames(NJson::TJsonValue::TArray& json) {
+ TVector<TString> keys;
+ keys.reserve(json.size());
+ for (auto& item : json) {
+ keys.emplace_back(item.GetMapSafe().at("name").GetStringSafe());
+ }
+ return keys;
+ }
+
+ TVector<TString> ParseTypes(NJson::TJsonValue json) {
+ return ParseNames(json.GetArraySafe());
+ }
+
+ TVector<TString> ParseFunctions(NJson::TJsonValue json) {
+ return ParseNames(json.GetArraySafe());
+ }
+
+ TVector<TString> ParseUfs(NJson::TJsonValue json) {
+ TVector<TString> names;
+ for (auto& [module, v] : json.GetMapSafe()) {
+ auto functions = ParseNames(v.GetArraySafe());
+ for (auto& function : functions) {
+ function.prepend("::").prepend(module);
+ }
+ std::copy(std::begin(functions), std::end(functions), std::back_inserter(names));
+ }
+ return names;
+ }
+
+ NameSet MakeDefaultNameSet() {
+ return {
+ .Types = ParseTypes(LoadJsonResource("types.json")),
+ .Functions = Merge(
+ ParseFunctions(LoadJsonResource("sql_functions.json")),
+ ParseUfs(LoadJsonResource("udfs_basic.json"))),
+ };
+ }
+
+} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/name/static/name_service.cpp b/yql/essentials/sql/v1/complete/name/static/name_service.cpp
index fa2bbfb360..fdb1dd4eae 100644
--- a/yql/essentials/sql/v1/complete/name/static/name_service.cpp
+++ b/yql/essentials/sql/v1/complete/name/static/name_service.cpp
@@ -1,18 +1,30 @@
#include "name_service.h"
+#include "ranking.h"
+
namespace NSQLComplete {
+ bool NoCaseCompare(const TString& lhs, const TString& rhs) {
+ return std::lexicographical_compare(
+ std::begin(lhs), std::end(lhs),
+ std::begin(rhs), std::end(rhs),
+ [](const char lhs, const char rhs) {
+ return ToLower(lhs) < ToLower(rhs);
+ });
+ }
+
+ auto NoCaseCompareLimit(size_t size) {
+ return [size](const TString& lhs, const TString& rhs) -> bool {
+ return strncasecmp(lhs.data(), rhs.data(), size) < 0;
+ };
+ }
+
const TVector<TStringBuf> FilteredByPrefix(
const TString& prefix,
const TVector<TString>& sorted Y_LIFETIME_BOUND) {
auto [first, last] = EqualRange(
- std::begin(sorted),
- std::end(sorted),
- prefix,
- [&](const TString& lhs, const TString& rhs) {
- return strncasecmp(lhs.data(), rhs.data(), prefix.size()) < 0;
- });
-
+ std::begin(sorted), std::end(sorted),
+ prefix, NoCaseCompareLimit(prefix.size()));
return TVector<TStringBuf>(first, last);
}
@@ -23,55 +35,23 @@ namespace NSQLComplete {
}
}
- size_t KindWeight(const TGenericName& name) {
- return std::visit([](const auto& name) {
- using T = std::decay_t<decltype(name)>;
- if constexpr (std::is_same_v<T, TFunctionName>) {
- return 1;
- }
- if constexpr (std::is_same_v<T, TTypeName>) {
- return 2;
- }
- }, name);
- }
-
- const TStringBuf ContentView(const TGenericName& name Y_LIFETIME_BOUND) {
- return std::visit([](const auto& name) -> TStringBuf {
- using T = std::decay_t<decltype(name)>;
- if constexpr (std::is_base_of_v<TIndentifier, T>) {
- return name.Indentifier;
- }
- }, name);
- }
-
- void Sort(TVector<TGenericName>& names) {
- Sort(names, [](const TGenericName& lhs, const TGenericName& rhs) {
- const auto lhs_weight = KindWeight(lhs);
- const auto lhs_content = ContentView(lhs);
-
- const auto rhs_weight = KindWeight(rhs);
- const auto rhs_content = ContentView(rhs);
-
- return std::tie(lhs_weight, lhs_content) <
- std::tie(rhs_weight, rhs_content);
- });
- }
-
class TStaticNameService: public INameService {
public:
- explicit TStaticNameService(NameSet names)
+ explicit TStaticNameService(NameSet names, IRanking::TPtr ranking)
: NameSet_(std::move(names))
+ , Ranking_(std::move(ranking))
{
- Sort(NameSet_.Types);
- Sort(NameSet_.Functions);
+ Sort(NameSet_.Types, NoCaseCompare);
+ Sort(NameSet_.Functions, NoCaseCompare);
}
TFuture<TNameResponse> Lookup(TNameRequest request) override {
TNameResponse response;
if (request.Constraints.TypeName) {
- AppendAs<TTypeName>(response.RankedNames,
- FilteredByPrefix(request.Prefix, NameSet_.Types));
+ AppendAs<TTypeName>(
+ response.RankedNames,
+ FilteredByPrefix(request.Prefix, NameSet_.Types));
}
if (request.Constraints.Function) {
@@ -80,18 +60,22 @@ namespace NSQLComplete {
FilteredByPrefix(request.Prefix, NameSet_.Functions));
}
- Sort(response.RankedNames);
+ Ranking_->CropToSortedPrefix(response.RankedNames, request.Limit);
- response.RankedNames.crop(request.Limit);
return NThreading::MakeFuture(std::move(response));
}
private:
NameSet NameSet_;
+ IRanking::TPtr Ranking_;
};
- INameService::TPtr MakeStaticNameService(NameSet names) {
- return INameService::TPtr(new TStaticNameService(std::move(names)));
+ INameService::TPtr MakeStaticNameService() {
+ return MakeStaticNameService(MakeDefaultNameSet(), MakeDefaultRanking());
+ }
+
+ INameService::TPtr MakeStaticNameService(NameSet names, IRanking::TPtr ranking) {
+ return INameService::TPtr(new TStaticNameService(std::move(names), std::move(ranking)));
}
} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/name/static/name_service.h b/yql/essentials/sql/v1/complete/name/static/name_service.h
index 7940559803..a5c90465c8 100644
--- a/yql/essentials/sql/v1/complete/name/static/name_service.h
+++ b/yql/essentials/sql/v1/complete/name/static/name_service.h
@@ -1,5 +1,7 @@
#pragma once
+#include "ranking.h"
+
#include <yql/essentials/sql/v1/complete/name/name_service.h>
namespace NSQLComplete {
@@ -11,6 +13,8 @@ namespace NSQLComplete {
NameSet MakeDefaultNameSet();
- INameService::TPtr MakeStaticNameService(NameSet names);
+ INameService::TPtr MakeStaticNameService();
+
+ INameService::TPtr MakeStaticNameService(NameSet names, IRanking::TPtr ranking);
} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/name/static/ranking.cpp b/yql/essentials/sql/v1/complete/name/static/ranking.cpp
new file mode 100644
index 0000000000..45e6e2b2fa
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/name/static/ranking.cpp
@@ -0,0 +1,102 @@
+#include "ranking.h"
+
+#include "frequency.h"
+
+#include <yql/essentials/sql/v1/complete/name/name_service.h>
+
+#include <util/charset/utf8.h>
+
+namespace NSQLComplete {
+
+ class TRanking: public IRanking {
+ private:
+ struct TRow {
+ TGenericName Name;
+ size_t Weight;
+ };
+
+ public:
+ TRanking(TFrequencyData frequency)
+ : Frequency_(std::move(frequency))
+ {
+ }
+
+ void CropToSortedPrefix(TVector<TGenericName>& names, size_t limit) override {
+ limit = std::min(limit, names.size());
+
+ TVector<TRow> rows;
+ rows.reserve(names.size());
+ for (TGenericName& name : names) {
+ size_t weight = Weight(name);
+ rows.emplace_back(std::move(name), weight);
+ }
+
+ ::PartialSort(
+ std::begin(rows), std::begin(rows) + limit, std::end(rows),
+ [this](const TRow& lhs, const TRow& rhs) {
+ const size_t lhs_weight = ReversedWeight(lhs.Weight);
+ const auto lhs_content = ContentView(lhs.Name);
+
+ const size_t rhs_weight = ReversedWeight(rhs.Weight);
+ const auto rhs_content = ContentView(rhs.Name);
+
+ return std::tie(lhs_weight, lhs_content) <
+ std::tie(rhs_weight, rhs_content);
+ });
+
+ names.crop(limit);
+ rows.crop(limit);
+
+ for (size_t i = 0; i < limit; ++i) {
+ names[i] = std::move(rows[i].Name);
+ }
+ }
+
+ private:
+ size_t Weight(const TGenericName& name) const {
+ return std::visit([this](const auto& name) -> size_t {
+ using T = std::decay_t<decltype(name)>;
+
+ auto identifier = ToLowerUTF8(ContentView(name));
+
+ if constexpr (std::is_same_v<T, TFunctionName>) {
+ if (auto weight = Frequency_.Functions.FindPtr(identifier)) {
+ return *weight;
+ }
+ }
+
+ if constexpr (std::is_same_v<T, TTypeName>) {
+ if (auto weight = Frequency_.Types.FindPtr(identifier)) {
+ return *weight;
+ }
+ }
+
+ return 0;
+ }, name);
+ }
+
+ static size_t ReversedWeight(size_t weight) {
+ return std::numeric_limits<size_t>::max() - weight;
+ }
+
+ const TStringBuf ContentView(const TGenericName& name Y_LIFETIME_BOUND) const {
+ return std::visit([](const auto& name) -> TStringBuf {
+ using T = std::decay_t<decltype(name)>;
+ if constexpr (std::is_base_of_v<TIndentifier, T>) {
+ return name.Indentifier;
+ }
+ }, name);
+ }
+
+ TFrequencyData Frequency_;
+ };
+
+ IRanking::TPtr MakeDefaultRanking() {
+ return IRanking::TPtr(new TRanking(LoadFrequencyData()));
+ }
+
+ IRanking::TPtr MakeDefaultRanking(TFrequencyData frequency) {
+ return IRanking::TPtr(new TRanking(frequency));
+ }
+
+} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/name/static/ranking.h b/yql/essentials/sql/v1/complete/name/static/ranking.h
new file mode 100644
index 0000000000..e24607eded
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/name/static/ranking.h
@@ -0,0 +1,23 @@
+#pragma once
+
+#include "frequency.h"
+
+#include <yql/essentials/sql/v1/complete/name/name_service.h>
+
+#include <util/generic/hash.h>
+
+namespace NSQLComplete {
+
+ class IRanking {
+ public:
+ using TPtr = THolder<IRanking>;
+
+ virtual void CropToSortedPrefix(TVector<TGenericName>& names, size_t limit) = 0;
+ virtual ~IRanking() = default;
+ };
+
+ IRanking::TPtr MakeDefaultRanking();
+
+ IRanking::TPtr MakeDefaultRanking(TFrequencyData frequency);
+
+} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/name/static/ranking_ut.cpp b/yql/essentials/sql/v1/complete/name/static/ranking_ut.cpp
new file mode 100644
index 0000000000..fdd3659336
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/name/static/ranking_ut.cpp
@@ -0,0 +1,14 @@
+#include "ranking.h"
+
+#include <library/cpp/testing/unittest/registar.h>
+
+using namespace NSQLComplete;
+
+Y_UNIT_TEST_SUITE(FrequencyTests) {
+
+ Y_UNIT_TEST(FrequencyDataIsParsable) {
+ TFrequencyData data = LoadFrequencyData();
+ Y_UNUSED(data);
+ }
+
+} // Y_UNIT_TEST_SUITE(FrequencyTests)
diff --git a/yql/essentials/sql/v1/complete/name/static/ut/ya.make b/yql/essentials/sql/v1/complete/name/static/ut/ya.make
new file mode 100644
index 0000000000..60963b761b
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/name/static/ut/ya.make
@@ -0,0 +1,7 @@
+UNITTEST_FOR(yql/essentials/sql/v1/complete/name/static)
+
+SRCS(
+ frequency_ut.cpp
+)
+
+END()
diff --git a/yql/essentials/sql/v1/complete/name/static/ya.make b/yql/essentials/sql/v1/complete/name/static/ya.make
index bdf97e2412..639371447a 100644
--- a/yql/essentials/sql/v1/complete/name/static/ya.make
+++ b/yql/essentials/sql/v1/complete/name/static/ya.make
@@ -1,12 +1,26 @@
LIBRARY()
SRCS(
- default_name_set.cpp
+ frequency.cpp
+ json_name_set.cpp
name_service.cpp
+ ranking.cpp
)
PEERDIR(
yql/essentials/sql/v1/complete/name
+ yql/essentials/sql/v1/complete/text
+)
+
+RESOURCE(
+ yql/essentials/data/language/types.json types.json
+ yql/essentials/data/language/sql_functions.json sql_functions.json
+ yql/essentials/data/language/udfs_basic.json udfs_basic.json
+ yql/essentials/data/language/rules_corr_basic.json rules_corr_basic.json
)
END()
+
+RECURSE_FOR_TESTS(
+ ut
+)
diff --git a/yql/essentials/sql/v1/complete/sql_complete.cpp b/yql/essentials/sql/v1/complete/sql_complete.cpp
index b3ddda2b23..74ddbc0415 100644
--- a/yql/essentials/sql/v1/complete/sql_complete.cpp
+++ b/yql/essentials/sql/v1/complete/sql_complete.cpp
@@ -102,6 +102,7 @@ namespace NSQLComplete {
return {ECandidateKind::TypeName, std::move(name.Indentifier)};
}
if constexpr (std::is_base_of_v<TFunctionName, T>) {
+ name.Indentifier += "(";
return {ECandidateKind::FunctionName, std::move(name.Indentifier)};
}
}, std::move(name)));
@@ -127,11 +128,11 @@ namespace NSQLComplete {
lexers.Antlr4Pure = NSQLTranslationV1::MakeAntlr4PureLexerFactory();
lexers.Antlr4PureAnsi = NSQLTranslationV1::MakeAntlr4PureAnsiLexerFactory();
- INameService::TPtr names = MakeStaticNameService(MakeDefaultNameSet());
+ INameService::TPtr names = MakeStaticNameService(MakeDefaultNameSet(), MakeDefaultRanking());
return MakeSqlCompletionEngine([lexers = std::move(lexers)](bool ansi) {
return NSQLTranslationV1::MakeLexer(
- lexers, ansi, /* antlr4 = */ true,
+ lexers, ansi, /* antlr4 = */ true,
NSQLTranslationV1::ELexerFlavor::Pure);
}, std::move(names));
}
diff --git a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
index 5f07d5c338..ade78e81a7 100644
--- a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
+++ b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
@@ -1,7 +1,9 @@
#include "sql_complete.h"
#include <yql/essentials/sql/v1/complete/name/fallback/name_service.h>
+#include <yql/essentials/sql/v1/complete/name/static/frequency.h>
#include <yql/essentials/sql/v1/complete/name/static/name_service.h>
+#include <yql/essentials/sql/v1/complete/name/static/ranking.h>
#include <yql/essentials/sql/v1/lexer/lexer.h>
#include <yql/essentials/sql/v1/lexer/antlr4_pure/lexer.h>
@@ -45,18 +47,20 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
lexers.Antlr4PureAnsi = NSQLTranslationV1::MakeAntlr4PureAnsiLexerFactory();
return [lexers = std::move(lexers)](bool ansi) {
return NSQLTranslationV1::MakeLexer(
- lexers, ansi, /* antlr4 = */ true,
+ lexers, ansi, /* antlr4 = */ true,
NSQLTranslationV1::ELexerFlavor::Pure);
};
}
ISqlCompletionEngine::TPtr MakeSqlCompletionEngineUT() {
TLexerSupplier lexer = MakePureLexerSupplier();
- INameService::TPtr names = MakeStaticNameService({
+ NameSet names = {
.Types = {"Uint64"},
.Functions = {"StartsWith"},
- });
- return MakeSqlCompletionEngine(std::move(lexer), std::move(names));
+ };
+ auto ranking = MakeDefaultRanking({});
+ INameService::TPtr service = MakeStaticNameService(std::move(names), std::move(ranking));
+ return MakeSqlCompletionEngine(std::move(lexer), std::move(service));
}
TVector<TCandidate> Complete(ISqlCompletionEngine::TPtr& engine, TStringBuf prefix) {
@@ -73,7 +77,7 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
{Keyword, "CREATE"},
{Keyword, "DECLARE"},
{Keyword, "DEFINE"},
- {Keyword, "DELETE"},
+ {Keyword, "DELETE FROM"},
{Keyword, "DISCARD"},
{Keyword, "DO"},
{Keyword, "DROP"},
@@ -95,7 +99,7 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
{Keyword, "REVOKE"},
{Keyword, "ROLLBACK"},
{Keyword, "SELECT"},
- {Keyword, "SHOW"},
+ {Keyword, "SHOW CREATE"},
{Keyword, "UPDATE"},
{Keyword, "UPSERT"},
{Keyword, "USE"},
@@ -113,13 +117,13 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
Y_UNIT_TEST(Alter) {
TVector<TCandidate> expected = {
- {Keyword, "ASYNC"},
- {Keyword, "BACKUP"},
+ {Keyword, "ASYNC REPLICATION"},
+ {Keyword, "BACKUP COLLECTION"},
{Keyword, "DATABASE"},
{Keyword, "EXTERNAL"},
{Keyword, "GROUP"},
{Keyword, "OBJECT"},
- {Keyword, "RESOURCE"},
+ {Keyword, "RESOURCE POOL"},
{Keyword, "SEQUENCE"},
{Keyword, "TABLE"},
{Keyword, "TABLESTORE"},
@@ -134,17 +138,17 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
Y_UNIT_TEST(Create) {
TVector<TCandidate> expected = {
- {Keyword, "ASYNC"},
- {Keyword, "BACKUP"},
+ {Keyword, "ASYNC REPLICATION"},
+ {Keyword, "BACKUP COLLECTION"},
{Keyword, "EXTERNAL"},
{Keyword, "GROUP"},
{Keyword, "OBJECT"},
- {Keyword, "OR"},
- {Keyword, "RESOURCE"},
+ {Keyword, "OR REPLACE"},
+ {Keyword, "RESOURCE POOL"},
{Keyword, "TABLE"},
{Keyword, "TABLESTORE"},
- {Keyword, "TEMP"},
- {Keyword, "TEMPORARY"},
+ {Keyword, "TEMP TABLE"},
+ {Keyword, "TEMPORARY TABLE"},
{Keyword, "TOPIC"},
{Keyword, "TRANSFER"},
{Keyword, "USER"},
@@ -166,12 +170,12 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
Y_UNIT_TEST(Drop) {
TVector<TCandidate> expected = {
- {Keyword, "ASYNC"},
- {Keyword, "BACKUP"},
+ {Keyword, "ASYNC REPLICATION"},
+ {Keyword, "BACKUP COLLECTION"},
{Keyword, "EXTERNAL"},
{Keyword, "GROUP"},
{Keyword, "OBJECT"},
- {Keyword, "RESOURCE"},
+ {Keyword, "RESOURCE POOL"},
{Keyword, "TABLE"},
{Keyword, "TABLESTORE"},
{Keyword, "TOPIC"},
@@ -194,7 +198,7 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
{Keyword, "CREATE"},
{Keyword, "DECLARE"},
{Keyword, "DEFINE"},
- {Keyword, "DELETE"},
+ {Keyword, "DELETE FROM"},
{Keyword, "DISCARD"},
{Keyword, "DO"},
{Keyword, "DROP"},
@@ -209,14 +213,14 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
{Keyword, "PARALLEL"},
{Keyword, "PRAGMA"},
{Keyword, "PROCESS"},
- {Keyword, "QUERY"},
+ {Keyword, "QUERY PLAN"},
{Keyword, "REDUCE"},
{Keyword, "REPLACE"},
{Keyword, "RESTORE"},
{Keyword, "REVOKE"},
{Keyword, "ROLLBACK"},
{Keyword, "SELECT"},
- {Keyword, "SHOW"},
+ {Keyword, "SHOW CREATE"},
{Keyword, "UPDATE"},
{Keyword, "UPSERT"},
{Keyword, "USE"},
@@ -230,21 +234,21 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
Y_UNIT_TEST(Grant) {
TVector<TCandidate> expected = {
{Keyword, "ALL"},
- {Keyword, "ALTER"},
+ {Keyword, "ALTER SCHEMA"},
{Keyword, "CONNECT"},
{Keyword, "CREATE"},
- {Keyword, "DESCRIBE"},
+ {Keyword, "DESCRIBE SCHEMA"},
{Keyword, "DROP"},
- {Keyword, "ERASE"},
+ {Keyword, "ERASE ROW"},
{Keyword, "FULL"},
{Keyword, "GRANT"},
{Keyword, "INSERT"},
{Keyword, "LIST"},
{Keyword, "MANAGE"},
{Keyword, "MODIFY"},
- {Keyword, "REMOVE"},
+ {Keyword, "REMOVE SCHEMA"},
{Keyword, "SELECT"},
- {Keyword, "UPDATE"},
+ {Keyword, "UPDATE ROW"},
{Keyword, "USE"},
};
@@ -274,36 +278,36 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
Y_UNIT_TEST(Select) {
TVector<TCandidate> expected = {
{Keyword, "ALL"},
- {Keyword, "BITCAST"},
+ {Keyword, "BITCAST("},
{Keyword, "CALLABLE"},
{Keyword, "CASE"},
- {Keyword, "CAST"},
+ {Keyword, "CAST("},
{Keyword, "CURRENT_DATE"},
{Keyword, "CURRENT_TIME"},
{Keyword, "CURRENT_TIMESTAMP"},
- {Keyword, "DICT"},
+ {Keyword, "DICT<"},
{Keyword, "DISTINCT"},
{Keyword, "EMPTY_ACTION"},
{Keyword, "ENUM"},
- {Keyword, "EXISTS"},
+ {Keyword, "EXISTS("},
{Keyword, "FALSE"},
- {Keyword, "FLOW"},
- {Keyword, "JSON_EXISTS"},
- {Keyword, "JSON_QUERY"},
- {Keyword, "JSON_VALUE"},
- {Keyword, "LIST"},
+ {Keyword, "FLOW<"},
+ {Keyword, "JSON_EXISTS("},
+ {Keyword, "JSON_QUERY("},
+ {Keyword, "JSON_VALUE("},
+ {Keyword, "LIST<"},
{Keyword, "NOT"},
{Keyword, "NULL"},
- {Keyword, "OPTIONAL"},
- {Keyword, "RESOURCE"},
- {Keyword, "SET"},
+ {Keyword, "OPTIONAL<"},
+ {Keyword, "RESOURCE<"},
+ {Keyword, "SET<"},
{Keyword, "STREAM"},
{Keyword, "STRUCT"},
- {Keyword, "TAGGED"},
+ {Keyword, "TAGGED<"},
{Keyword, "TRUE"},
{Keyword, "TUPLE"},
{Keyword, "VARIANT"},
- {FunctionName, "StartsWith"},
+ {FunctionName, "StartsWith("},
};
auto engine = MakeSqlCompletionEngineUT();
@@ -312,35 +316,35 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
Y_UNIT_TEST(SelectWhere) {
TVector<TCandidate> expected = {
- {Keyword, "BITCAST"},
+ {Keyword, "BITCAST("},
{Keyword, "CALLABLE"},
{Keyword, "CASE"},
- {Keyword, "CAST"},
+ {Keyword, "CAST("},
{Keyword, "CURRENT_DATE"},
{Keyword, "CURRENT_TIME"},
{Keyword, "CURRENT_TIMESTAMP"},
- {Keyword, "DICT"},
+ {Keyword, "DICT<"},
{Keyword, "EMPTY_ACTION"},
{Keyword, "ENUM"},
- {Keyword, "EXISTS"},
+ {Keyword, "EXISTS("},
{Keyword, "FALSE"},
- {Keyword, "FLOW"},
- {Keyword, "JSON_EXISTS"},
- {Keyword, "JSON_QUERY"},
- {Keyword, "JSON_VALUE"},
- {Keyword, "LIST"},
+ {Keyword, "FLOW<"},
+ {Keyword, "JSON_EXISTS("},
+ {Keyword, "JSON_QUERY("},
+ {Keyword, "JSON_VALUE("},
+ {Keyword, "LIST<"},
{Keyword, "NOT"},
{Keyword, "NULL"},
- {Keyword, "OPTIONAL"},
- {Keyword, "RESOURCE"},
- {Keyword, "SET"},
- {Keyword, "STREAM"},
+ {Keyword, "OPTIONAL<"},
+ {Keyword, "RESOURCE<"},
+ {Keyword, "SET<"},
+ {Keyword, "STREAM<"},
{Keyword, "STRUCT"},
- {Keyword, "TAGGED"},
+ {Keyword, "TAGGED<"},
{Keyword, "TRUE"},
{Keyword, "TUPLE"},
{Keyword, "VARIANT"},
- {FunctionName, "StartsWith"},
+ {FunctionName, "StartsWith("},
};
auto engine = MakeSqlCompletionEngineUT();
@@ -359,20 +363,20 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
Y_UNIT_TEST(TypeName) {
TVector<TCandidate> expected = {
- {Keyword, "CALLABLE"},
- {Keyword, "DECIMAL"},
- {Keyword, "DICT"},
- {Keyword, "ENUM"},
- {Keyword, "FLOW"},
- {Keyword, "LIST"},
- {Keyword, "OPTIONAL"},
- {Keyword, "RESOURCE"},
- {Keyword, "SET"},
- {Keyword, "STREAM"},
+ {Keyword, "CALLABLE<("},
+ {Keyword, "DECIMAL("},
+ {Keyword, "DICT<"},
+ {Keyword, "ENUM<"},
+ {Keyword, "FLOW<"},
+ {Keyword, "LIST<"},
+ {Keyword, "OPTIONAL<"},
+ {Keyword, "RESOURCE<"},
+ {Keyword, "SET<"},
+ {Keyword, "STREAM<"},
{Keyword, "STRUCT"},
- {Keyword, "TAGGED"},
+ {Keyword, "TAGGED<"},
{Keyword, "TUPLE"},
- {Keyword, "VARIANT"},
+ {Keyword, "VARIANT<"},
{TypeName, "Uint64"},
};
@@ -426,23 +430,24 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
Y_UNIT_TEST(InvalidStatementsRecovery) {
auto engine = MakeSqlCompletionEngineUT();
- UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "select select; ").size(), 35);
- UNIT_ASSERT_VALUES_EQUAL(Complete(engine, "select select;").size(), 35);
+ UNIT_ASSERT_GE(Complete(engine, "select select; ").size(), 35);
+ UNIT_ASSERT_GE(Complete(engine, "select select;").size(), 35);
UNIT_ASSERT_VALUES_EQUAL_C(Complete(engine, "!;").size(), 0, "Lexer failing");
}
- Y_UNIT_TEST(DefaultNameSet) {
+ Y_UNIT_TEST(DefaultNameService) {
auto set = MakeDefaultNameSet();
- auto service = MakeStaticNameService(std::move(set));
+ auto service = MakeStaticNameService(std::move(set), MakeDefaultRanking());
auto engine = MakeSqlCompletionEngine(MakePureLexerSupplier(), std::move(service));
{
TVector<TCandidate> expected = {
- {TypeName, "Uint16"},
- {TypeName, "Uint32"},
{TypeName, "Uint64"},
- {TypeName, "Uint8"},
+ {TypeName, "Uint32"},
{TypeName, "Utf8"},
{TypeName, "Uuid"},
+ {TypeName, "Uint8"},
+ {TypeName, "Unit"},
+ {TypeName, "Uint16"},
};
UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"SELECT OPTIONAL<U"}), expected);
}
@@ -469,14 +474,62 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
auto silent = MakeHolder<TSilentNameService>();
auto primary = MakeDeadlinedNameService(std::move(silent), TDuration::MilliSeconds(1));
- auto standby = MakeStaticNameService(MakeDefaultNameSet());
+ auto standby = MakeStaticNameService(MakeDefaultNameSet(), MakeDefaultRanking({}));
auto fallback = MakeFallbackNameService(std::move(primary), std::move(standby));
auto engine = MakeSqlCompletionEngine(MakePureLexerSupplier(), std::move(fallback));
- UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"SELECT CAST (1 AS U"}).size(), 6);
- UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"SELECT CAST (1 AS "}).size(), 47);
- UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"SELECT "}).size(), 55);
+ UNIT_ASSERT_GE(Complete(engine, {"SELECT CAST (1 AS U"}).size(), 6);
+ UNIT_ASSERT_GE(Complete(engine, {"SELECT CAST (1 AS "}).size(), 47);
+ UNIT_ASSERT_GE(Complete(engine, {"SELECT "}).size(), 55);
+ }
+
+ Y_UNIT_TEST(Ranking) {
+ TFrequencyData frequency = {
+ .Types = {
+ {"int32", 128},
+ {"int64", 64},
+ {"interval", 32},
+ {"interval64", 32},
+ },
+ .Functions = {
+ {"min", 128},
+ {"max", 64},
+ {"maxof", 64},
+ {"minby", 32},
+ {"maxby", 32},
+ },
+ };
+ auto service = MakeStaticNameService(MakeDefaultNameSet(), MakeDefaultRanking(frequency));
+ auto engine = MakeSqlCompletionEngine(MakePureLexerSupplier(), std::move(service));
+ {
+ TVector<TCandidate> expected = {
+ {TypeName, "Int32"},
+ {TypeName, "Int64"},
+ {TypeName, "Interval"},
+ {TypeName, "Interval64"},
+ {TypeName, "Int16"},
+ {TypeName, "Int8"},
+ };
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"SELECT OPTIONAL<I"}), expected);
+ }
+ {
+ TVector<TCandidate> expectedPrefix = {
+ {FunctionName, "Min("},
+ {FunctionName, "Max("},
+ {FunctionName, "MaxOf("},
+ {FunctionName, "MaxBy("},
+ {FunctionName, "MinBy("},
+ {FunctionName, "Math::Abs("},
+ {FunctionName, "Math::Acos("},
+ {FunctionName, "Math::Asin("},
+ };
+
+ auto actualPrefix = Complete(engine, {"SELECT m"});
+ actualPrefix.crop(expectedPrefix.size());
+
+ UNIT_ASSERT_VALUES_EQUAL(actualPrefix, expectedPrefix);
+ }
}
} // Y_UNIT_TEST_SUITE(SqlCompleteTests)
diff --git a/yql/essentials/sql/v1/complete/syntax/grammar.cpp b/yql/essentials/sql/v1/complete/syntax/grammar.cpp
index 4274d4bfb4..b4f64630f7 100644
--- a/yql/essentials/sql/v1/complete/syntax/grammar.cpp
+++ b/yql/essentials/sql/v1/complete/syntax/grammar.cpp
@@ -1,15 +1,16 @@
#include "grammar.h"
-#include <yql/essentials/sql/v1/format/sql_format.h>
+#include <yql/essentials/sql/v1/reflect/sql_reflect.h>
namespace NSQLComplete {
class TSqlGrammar: public ISqlGrammar {
public:
- TSqlGrammar()
+ TSqlGrammar(const NSQLReflect::TLexerGrammar& grammar)
: Vocabulary(GetVocabularyP())
, AllTokens(ComputeAllTokens())
- , KeywordTokens(ComputeKeywordTokens())
+ , KeywordTokens(ComputeKeywordTokens(grammar))
+ , PunctuationTokens(ComputePunctuationTokens(grammar))
{
}
@@ -25,6 +26,10 @@ namespace NSQLComplete {
return KeywordTokens;
}
+ const std::unordered_set<TTokenId>& GetPunctuationTokens() const override {
+ return PunctuationTokens;
+ }
+
private:
static const antlr4::dfa::Vocabulary* GetVocabularyP() {
return &NALADefaultAntlr4::SQLv1Antlr4Parser(nullptr).getVocabulary();
@@ -42,26 +47,39 @@ namespace NSQLComplete {
return allTokens;
}
- std::unordered_set<TTokenId> ComputeKeywordTokens() {
+ std::unordered_set<TTokenId> ComputeKeywordTokens(
+ const NSQLReflect::TLexerGrammar& grammar) {
const auto& vocabulary = GetVocabulary();
- const auto keywords = NSQLFormat::GetKeywords();
auto keywordTokens = GetAllTokens();
std::erase_if(keywordTokens, [&](TTokenId token) {
- return !keywords.contains(vocabulary.getSymbolicName(token));
+ return !grammar.KeywordNames.contains(vocabulary.getSymbolicName(token));
});
keywordTokens.erase(TOKEN_EOF);
return keywordTokens;
}
+ std::unordered_set<TTokenId> ComputePunctuationTokens(
+ const NSQLReflect::TLexerGrammar& grammar) {
+ const auto& vocabulary = GetVocabulary();
+
+ auto punctuationTokens = GetAllTokens();
+ std::erase_if(punctuationTokens, [&](TTokenId token) {
+ return !grammar.PunctuationNames.contains(vocabulary.getSymbolicName(token));
+ });
+
+ return punctuationTokens;
+ }
+
const antlr4::dfa::Vocabulary* Vocabulary;
const std::unordered_set<TTokenId> AllTokens;
const std::unordered_set<TTokenId> KeywordTokens;
+ const std::unordered_set<TTokenId> PunctuationTokens;
};
const ISqlGrammar& GetSqlGrammar() {
- const static TSqlGrammar DefaultSqlGrammar{};
+ const static TSqlGrammar DefaultSqlGrammar(NSQLReflect::LoadLexerGrammar());
return DefaultSqlGrammar;
}
diff --git a/yql/essentials/sql/v1/complete/syntax/grammar.h b/yql/essentials/sql/v1/complete/syntax/grammar.h
index b6449698ea..a349bd4a3d 100644
--- a/yql/essentials/sql/v1/complete/syntax/grammar.h
+++ b/yql/essentials/sql/v1/complete/syntax/grammar.h
@@ -21,6 +21,7 @@ namespace NSQLComplete {
virtual const antlr4::dfa::Vocabulary& GetVocabulary() const = 0;
virtual const std::unordered_set<TTokenId>& GetAllTokens() const = 0;
virtual const std::unordered_set<TTokenId>& GetKeywordTokens() const = 0;
+ virtual const std::unordered_set<TTokenId>& GetPunctuationTokens() const = 0;
virtual ~ISqlGrammar() = default;
};
diff --git a/yql/essentials/sql/v1/complete/syntax/local.cpp b/yql/essentials/sql/v1/complete/syntax/local.cpp
index 430718a56f..cac43e5a32 100644
--- a/yql/essentials/sql/v1/complete/syntax/local.cpp
+++ b/yql/essentials/sql/v1/complete/syntax/local.cpp
@@ -73,6 +73,9 @@ namespace NSQLComplete {
for (auto keywordToken : Grammar->GetKeywordTokens()) {
ignoredTokens.erase(keywordToken);
}
+ for (auto punctuationToken : Grammar->GetPunctuationTokens()) {
+ ignoredTokens.erase(punctuationToken);
+ }
return ignoredTokens;
}
@@ -107,12 +110,27 @@ namespace NSQLComplete {
TVector<TString> keywords;
for (const auto& token : candidates.Tokens) {
if (keywordTokens.contains(token.Number)) {
- keywords.emplace_back(vocabulary.getDisplayName(token.Number));
+ keywords.emplace_back(Display(vocabulary, token.Number));
+ for (auto following : token.Following) {
+ if (keywordTokens.contains(following)) {
+ keywords.back() += " ";
+ }
+ keywords.back() += Display(vocabulary, following);
+ }
}
}
return keywords;
}
+ std::string Display(const antlr4::dfa::Vocabulary& vocabulary, TTokenId tokenType) {
+ auto name = vocabulary.getDisplayName(tokenType);
+ if (2 <= name.length() && name.starts_with('\'') && name.ends_with('\'')) {
+ name.erase(static_cast<std::string::size_type>(0), 1);
+ name.pop_back();
+ }
+ return name;
+ }
+
bool IsTypeNameMatched(const TC3Candidates& candidates) {
return AnyOf(candidates.Rules, [&](const TMatchedRule& rule) {
return IsLikelyTypeStack(rule.ParserCallStack);
diff --git a/yql/essentials/sql/v1/complete/syntax/ya.make b/yql/essentials/sql/v1/complete/syntax/ya.make
index a3fe973e31..24fd94a952 100644
--- a/yql/essentials/sql/v1/complete/syntax/ya.make
+++ b/yql/essentials/sql/v1/complete/syntax/ya.make
@@ -16,12 +16,11 @@ PEERDIR(
yql/essentials/parser/antlr_ast/gen/v1_ansi_antlr4
yql/essentials/parser/antlr_ast/gen/v1_antlr4
+ yql/essentials/parser/lexer_common
yql/essentials/sql/settings
yql/essentials/sql/v1/lexer
-
- # TODO(YQL-19747): Replace with the sql/v1/reflect to get keywords
- yql/essentials/sql/v1/format
+ yql/essentials/sql/v1/reflect
)
END()
diff --git a/yql/essentials/sql/v1/context.cpp b/yql/essentials/sql/v1/context.cpp
index 569ae375eb..de2668608e 100644
--- a/yql/essentials/sql/v1/context.cpp
+++ b/yql/essentials/sql/v1/context.cpp
@@ -658,4 +658,16 @@ void TTranslation::AltNotImplemented(const TString& ruleName, ui32 altCase, cons
Error() << ruleName << ": alternative is not implemented yet: " << AltDescription(node, altCase, descr);
}
+void EnumerateSqlFlags(std::function<void(std::string_view)> callback) {
+ for (const auto& x : CTX_PRAGMA_FIELDS) {
+ callback(x.first);
+ callback(TString("Disable") + x.first);
+ }
+
+ for (const auto& x : CTX_PRAGMA_MAYBE_FIELDS) {
+ callback(x.first);
+ callback(TString("Disable") + x.first);
+ }
+}
+
} // namespace NSQLTranslationV1
diff --git a/yql/essentials/sql/v1/context.h b/yql/essentials/sql/v1/context.h
index b911370b3e..17e86c77c3 100644
--- a/yql/essentials/sql/v1/context.h
+++ b/yql/essentials/sql/v1/context.h
@@ -471,4 +471,6 @@ namespace NSQLTranslationV1 {
protected:
TContext& Ctx;
};
+
+ void EnumerateSqlFlags(std::function<void(std::string_view)> callback);
} // namespace NSQLTranslationV1
diff --git a/yql/essentials/sql/v1/lexer/lexer_ut.cpp b/yql/essentials/sql/v1/lexer/lexer_ut.cpp
index 1ddfd04b50..549dc9d8fa 100644
--- a/yql/essentials/sql/v1/lexer/lexer_ut.cpp
+++ b/yql/essentials/sql/v1/lexer/lexer_ut.cpp
@@ -68,7 +68,7 @@ TVector<TString> GetTokenViews(ILexer::TPtr& lexer, const TString& query) {
TString ToString(TParsedToken token) {
TString& string = token.Name;
- if (!AsciiEqualsIgnoreCase(token.Name, token.Content) && token.Name != "EOF") {
+ if (token.Name != token.Content && token.Name != "EOF") {
string += "(";
string += token.Content;
string += ")";
@@ -306,6 +306,7 @@ Y_UNIT_TEST_SUITE(SQLv1Lexer) {
UNIT_ASSERT_TOKENIZED(lexer, "SELECT", "SELECT EOF");
UNIT_ASSERT_TOKENIZED(lexer, "INSERT", "INSERT EOF");
UNIT_ASSERT_TOKENIZED(lexer, "FROM", "FROM EOF");
+ UNIT_ASSERT_TOKENIZED(lexer, "from", "FROM(from) EOF");
}
Y_UNIT_TEST_ON_EACH_LEXER(Punctuation) {
@@ -418,8 +419,8 @@ Y_UNIT_TEST_SUITE(SQLv1Lexer) {
Y_UNIT_TEST_ON_EACH_LEXER(SimpleQuery) {
auto lexer = MakeLexer(Lexers, ANSI, ANTLR4, FLAVOR);
- UNIT_ASSERT_TOKENIZED(lexer, "select 1", "SELECT WS( ) DIGITS(1) EOF");
- UNIT_ASSERT_TOKENIZED(lexer, "SELect 1", "SELECT WS( ) DIGITS(1) EOF");
+ UNIT_ASSERT_TOKENIZED(lexer, "select 1", "SELECT(select) WS( ) DIGITS(1) EOF");
+ UNIT_ASSERT_TOKENIZED(lexer, "SELect 1", "SELECT(SELect) WS( ) DIGITS(1) EOF");
}
Y_UNIT_TEST_ON_EACH_LEXER(ComplexQuery) {
diff --git a/yql/essentials/sql/v1/lexer/regex/lexer.cpp b/yql/essentials/sql/v1/lexer/regex/lexer.cpp
index b0b5c2dad4..b8ca033b0c 100644
--- a/yql/essentials/sql/v1/lexer/regex/lexer.cpp
+++ b/yql/essentials/sql/v1/lexer/regex/lexer.cpp
@@ -109,8 +109,9 @@ namespace NSQLTranslationV1 {
bool MatchKeyword(const TStringBuf prefix, TParsedTokenList& matches) {
size_t count = 0;
for (const auto& keyword : Grammar_.KeywordNames) {
- if (AsciiEqualsIgnoreCase(prefix.substr(0, keyword.length()), keyword)) {
- matches.emplace_back(keyword, keyword);
+ const TStringBuf content = prefix.substr(0, keyword.length());
+ if (AsciiEqualsIgnoreCase(content, keyword)) {
+ matches.emplace_back(keyword, TString(content));
count += 1;
}
}
diff --git a/yql/essentials/sql/v1/sql_query.cpp b/yql/essentials/sql/v1/sql_query.cpp
index 627f1e0ae3..d6b6f96bef 100644
--- a/yql/essentials/sql/v1/sql_query.cpp
+++ b/yql/essentials/sql/v1/sql_query.cpp
@@ -2585,6 +2585,7 @@ void TSqlQuery::AlterTableDropChangefeed(const TRule_alter_table_drop_changefeed
params.DropChangefeeds.emplace_back(IdEx(node.GetRule_an_id3(), *this));
}
+/// @see EnumeratePragmas too
TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success) {
success = false;
const TString& prefix = OptIdPrefixAsStr(stmt.GetRule_opt_id_prefix_or_type2(), *this);
@@ -3945,4 +3946,60 @@ bool TSqlQuery::ParseTableStoreFeatures(std::map<TString, TDeferredAtom> & resul
return true;
}
+void EnumeratePragmas(std::function<void(std::string_view)> callback) {
+ callback("ClassicDivision");
+ callback("StrictJoinKeyTypes");
+ callback("DisableStrictJoinKeyTypes");
+ callback("CheckedOps");
+ callback("UnicodeLiterals");
+ callback("DisableUnicodeLiterals");
+ callback("WarnUntypedStringLiterals");
+ callback("DisableWarnUntypedStringLiterals");
+ callback("File");
+ callback("FileOption");
+ callback("Folder");
+ callback("Udf");
+ callback("Library");
+ callback("Package");
+ callback("PackageVersion");
+ callback("RefSelect");
+ callback("SampleSelect");
+ callback("AllowDotInAlias");
+ callback("OverrideLibrary");
+ callback("DirectRead");
+ callback("AutoCommit");
+ callback("UseTablePrefixForEach");
+ callback("PathPrefix");
+ callback("GroupByLimit");
+ callback("GroupByCubeLimit");
+ callback("SimpleColumns");
+ callback("DisableSimpleColumns");
+ callback("ResultRowsLimit");
+ callback("ResultSizeLimit");
+ callback("RuntimeLogLevel");
+ callback("Warning");
+ callback("Greetings");
+ callback("WarningMsg");
+ callback("ErrorMsg");
+ callback("AllowUnnamedColumns");
+ callback("WarnUnnamedColumns");
+ callback("DiscoveryMode");
+ callback("EnableSystemColumns");
+ callback("DqEngine");
+ callback("BlockEngine");
+ callback("JsonQueryReturnsJsonDocument");
+ callback("DisableJsonQueryReturnsJsonDocument");
+ callback("PositionalUnionAll");
+ callback("PqReadBy");
+ callback("DataWatermarks");
+ callback("FeatureR010");
+ callback("CostBasedOptimizer");
+ callback("Engine");
+ callback("yson.AutoConvert");
+ callback("yson.Strict");
+ callback("yson.DisableStrict");
+ callback("yson.CastToString");
+ callback("yson.DisableCastToString");
+}
+
} // namespace NSQLTranslationV1
diff --git a/yql/essentials/sql/v1/sql_query.h b/yql/essentials/sql/v1/sql_query.h
index ea5b917f8f..52cd3c402b 100644
--- a/yql/essentials/sql/v1/sql_query.h
+++ b/yql/essentials/sql/v1/sql_query.h
@@ -84,4 +84,6 @@ private:
const bool TopLevel;
};
+void EnumeratePragmas(std::function<void(std::string_view)> callback);
+
} // namespace NSQLTranslationV1
diff --git a/yql/essentials/tests/s-expressions/minirun/part6/canondata/result.json b/yql/essentials/tests/s-expressions/minirun/part6/canondata/result.json
index 8b0a76c9b1..181e08dbb8 100644
--- a/yql/essentials/tests/s-expressions/minirun/part6/canondata/result.json
+++ b/yql/essentials/tests/s-expressions/minirun/part6/canondata/result.json
@@ -1,4 +1,18 @@
{
+ "test.test[Blocks-ListToBlocks-default.txt-Debug]": [
+ {
+ "checksum": "a75bba410aa5a961fb719529319ca282",
+ "size": 929,
+ "uri": "https://{canondata_backend}/1130705/45dbf61264fbf40322799d506e95dda3522ed97f/resource.tar.gz#test.test_Blocks-ListToBlocks-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[Blocks-ListToBlocks-default.txt-Results]": [
+ {
+ "checksum": "86b7325d54c0a9d92f4a858c1328793d",
+ "size": 1794,
+ "uri": "https://{canondata_backend}/1130705/45dbf61264fbf40322799d506e95dda3522ed97f/resource.tar.gz#test.test_Blocks-ListToBlocks-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[Builtins-AsOptionalType-default.txt-Debug]": [
{
"checksum": "147133ffe72e4619d67cefcf20918941",
diff --git a/yql/essentials/tests/s-expressions/minirun/part8/canondata/result.json b/yql/essentials/tests/s-expressions/minirun/part8/canondata/result.json
index 42fd52ccd1..2e73910948 100644
--- a/yql/essentials/tests/s-expressions/minirun/part8/canondata/result.json
+++ b/yql/essentials/tests/s-expressions/minirun/part8/canondata/result.json
@@ -41,6 +41,20 @@
"uri": "https://{canondata_backend}/1597364/1f3e7f25c6ddb50b091fa9aaedebacdf37917233/resource.tar.gz#test.test_Aggregation-InMemAggregateZero-default.txt-Results_/results.txt"
}
],
+ "test.test[Blocks-ListFromBlocks-default.txt-Debug]": [
+ {
+ "checksum": "e997dbfaff24e3885002450606790825",
+ "size": 928,
+ "uri": "https://{canondata_backend}/1937429/6dc717bd36879ce84e2fa1eb85b97eefce0733e9/resource.tar.gz#test.test_Blocks-ListFromBlocks-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[Blocks-ListFromBlocks-default.txt-Results]": [
+ {
+ "checksum": "86b7325d54c0a9d92f4a858c1328793d",
+ "size": 1794,
+ "uri": "https://{canondata_backend}/1937429/6dc717bd36879ce84e2fa1eb85b97eefce0733e9/resource.tar.gz#test.test_Blocks-ListFromBlocks-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[Builtins-ToIntegral-default.txt-Debug]": [
{
"checksum": "33f569baf5940bbd79fbf635f47cc363",
diff --git a/yql/essentials/tests/s-expressions/suites/Blocks/ListFromBlocks.yqls b/yql/essentials/tests/s-expressions/suites/Blocks/ListFromBlocks.yqls
new file mode 100644
index 0000000000..d84d220223
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Blocks/ListFromBlocks.yqls
@@ -0,0 +1,23 @@
+(
+(let config (DataSource 'config))
+(let res_sink (DataSink 'result))
+
+(let row1 (AsStruct '('"key" (Int32 '1)) '('"subkey" (Int32 '"1001")) '('"value" (String '"AAA"))))
+(let row2 (AsStruct '('"key" (Int32 '2)) '('"subkey" (Int32 '"1002")) '('"value" (String '"AAB"))))
+(let row3 (AsStruct '('"key" (Int32 '3)) '('"subkey" (Int32 '"1003")) '('"value" (String '"AAC"))))
+(let row4 (AsStruct '('"key" (Int32 '4)) '('"subkey" (Int32 '"1004")) '('"value" (String '"AAD"))))
+(let row5 (AsStruct '('"key" (Int32 '5)) '('"subkey" (Int32 '"1005")) '('"value" (String '"AAE"))))
+(let table (AsList row1 row2 row3 row4 row5))
+
+(let expandLambda (lambda '(item) (Member item '"key") (Member item '"subkey") (Member item '"value")))
+(let wideBlockStream (WideToBlocks (FromFlow (ExpandMap (ToFlow table) expandLambda))))
+
+(let narrowLambda (lambda '(key subkey value blockLength) (AsStruct '('"key" key) '('"subkey" subkey) '('"value" value) '('"_yql_block_length" blockLength))))
+(let blockList (ForwardList (NarrowMap (ToFlow wideBlockStream) narrowLambda)))
+
+(let list (ListFromBlocks blockList))
+
+(let world (Write! world res_sink (Key) list '('('type))))
+(let world (Commit! world res_sink))
+(return world)
+)
diff --git a/yql/essentials/tests/s-expressions/suites/Blocks/ListToBlocks.yqls b/yql/essentials/tests/s-expressions/suites/Blocks/ListToBlocks.yqls
new file mode 100644
index 0000000000..ad596fcc38
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Blocks/ListToBlocks.yqls
@@ -0,0 +1,23 @@
+(
+(let config (DataSource 'config))
+(let res_sink (DataSink 'result))
+
+(let row1 (AsStruct '('"key" (Int32 '1)) '('"subkey" (Int32 '"1001")) '('"value" (String '"AAA"))))
+(let row2 (AsStruct '('"key" (Int32 '2)) '('"subkey" (Int32 '"1002")) '('"value" (String '"AAB"))))
+(let row3 (AsStruct '('"key" (Int32 '3)) '('"subkey" (Int32 '"1003")) '('"value" (String '"AAC"))))
+(let row4 (AsStruct '('"key" (Int32 '4)) '('"subkey" (Int32 '"1004")) '('"value" (String '"AAD"))))
+(let row5 (AsStruct '('"key" (Int32 '5)) '('"subkey" (Int32 '"1005")) '('"value" (String '"AAE"))))
+(let table (AsList row1 row2 row3 row4 row5))
+
+(let blockList (ListToBlocks table))
+
+(let expandLambda (lambda '(item) (Member item '"key") (Member item '"subkey") (Member item '"value") (Member item '"_yql_block_length")))
+(let wideStream (WideFromBlocks (FromFlow (ExpandMap (ToFlow blockList) expandLambda))))
+
+(let narrowLambda (lambda '(key subkey value) (AsStruct '('"key" key) '('"subkey" subkey) '('"value" value))))
+(let list (ForwardList (NarrowMap (ToFlow wideStream) narrowLambda)))
+
+(let world (Write! world res_sink (Key) list '('('type))))
+(let world (Commit! world res_sink))
+(return world)
+)
diff --git a/yql/essentials/tools/yql_complete/ya.make b/yql/essentials/tools/yql_complete/ya.make
index d745f9142a..107e6ba562 100644
--- a/yql/essentials/tools/yql_complete/ya.make
+++ b/yql/essentials/tools/yql_complete/ya.make
@@ -5,6 +5,8 @@ PROGRAM()
PEERDIR(
library/cpp/getopt
yql/essentials/sql/v1/complete
+ yql/essentials/sql/v1/lexer/antlr4_pure
+ yql/essentials/sql/v1/lexer/antlr4_pure_ansi
)
SRCS(
diff --git a/yql/essentials/tools/yql_complete/yql_complete.cpp b/yql/essentials/tools/yql_complete/yql_complete.cpp
index 289573190b..320b9f1b48 100644
--- a/yql/essentials/tools/yql_complete/yql_complete.cpp
+++ b/yql/essentials/tools/yql_complete/yql_complete.cpp
@@ -1,14 +1,38 @@
#include <yql/essentials/sql/v1/complete/sql_complete.h>
+#include <yql/essentials/sql/v1/complete/name/static/frequency.h>
+#include <yql/essentials/sql/v1/complete/name/static/ranking.h>
+#include <yql/essentials/sql/v1/complete/name/static/name_service.h>
+
+#include <yql/essentials/sql/v1/lexer/antlr4_pure/lexer.h>
+#include <yql/essentials/sql/v1/lexer/antlr4_pure_ansi/lexer.h>
#include <library/cpp/getopt/last_getopt.h>
#include <util/stream/file.h>
+NSQLComplete::TFrequencyData LoadFrequencyDataFromFile(TString filepath) {
+ TString text = TUnbufferedFileInput(filepath).ReadAll();
+ return NSQLComplete::ParseJsonFrequencyData(text);
+}
+
+NSQLComplete::TLexerSupplier MakePureLexerSupplier() {
+ NSQLTranslationV1::TLexers lexers;
+ lexers.Antlr4Pure = NSQLTranslationV1::MakeAntlr4PureLexerFactory();
+ lexers.Antlr4PureAnsi = NSQLTranslationV1::MakeAntlr4PureAnsiLexerFactory();
+ return [lexers = std::move(lexers)](bool ansi) {
+ return NSQLTranslationV1::MakeLexer(
+ lexers, ansi, /* antlr4 = */ true,
+ NSQLTranslationV1::ELexerFlavor::Pure);
+ };
+}
+
int Run(int argc, char* argv[]) {
NLastGetopt::TOpts opts = NLastGetopt::TOpts::Default();
TString inFileName;
+ TString freqFileName;
TMaybe<ui64> pos;
opts.AddLongOption('i', "input", "input file").RequiredArgument("input").StoreResult(&inFileName);
+ opts.AddLongOption('f', "freq", "frequences file").StoreResult(&freqFileName);
opts.AddLongOption('p', "pos", "position").StoreResult(&pos);
opts.SetFreeArgsNum(0);
opts.AddHelpOption();
@@ -20,9 +44,21 @@ int Run(int argc, char* argv[]) {
inFile.Reset(new TUnbufferedFileInput(inFileName));
}
IInputStream& in = inFile ? *inFile.Get() : Cin;
-
auto queryString = in.ReadAll();
- auto engine = NSQLComplete::MakeSqlCompletionEngine();
+
+ NSQLComplete::IRanking::TPtr ranking;
+ if (freqFileName.empty()) {
+ ranking = NSQLComplete::MakeDefaultRanking();
+ } else {
+ auto freq = LoadFrequencyDataFromFile(freqFileName);
+ ranking = NSQLComplete::MakeDefaultRanking(std::move(freq));
+ }
+ auto engine = NSQLComplete::MakeSqlCompletionEngine(
+ MakePureLexerSupplier(),
+ NSQLComplete::MakeStaticNameService(
+ NSQLComplete::MakeDefaultNameSet(),
+ std::move(ranking)));
+
NSQLComplete::TCompletionInput input;
input.Text = queryString;
if (pos) {
diff --git a/yql/essentials/udfs/language/yql/test/canondata/result.json b/yql/essentials/udfs/language/yql/test/canondata/result.json
index 86fc5e7c75..0fb3474a34 100644
--- a/yql/essentials/udfs/language/yql/test/canondata/result.json
+++ b/yql/essentials/udfs/language/yql/test/canondata/result.json
@@ -14,6 +14,11 @@
"uri": "file://test.test_ExtractInFuncs_/results.txt"
}
],
+ "test.test[ExtractPragmas]": [
+ {
+ "uri": "file://test.test_ExtractPragmas_/results.txt"
+ }
+ ],
"test.test[ExtractTypes]": [
{
"uri": "file://test.test_ExtractTypes_/results.txt"
diff --git a/yql/essentials/udfs/language/yql/test/canondata/test.test_ExtractPragmas_/results.txt b/yql/essentials/udfs/language/yql/test/canondata/test.test_ExtractPragmas_/results.txt
new file mode 100644
index 0000000000..fe436fa6d4
--- /dev/null
+++ b/yql/essentials/udfs/language/yql/test/canondata/test.test_ExtractPragmas_/results.txt
@@ -0,0 +1,87 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "q";
+ [
+ "DataType";
+ "String"
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "ListType";
+ [
+ "TupleType";
+ [
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "DataType";
+ "Uint64"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ "pragma dq.Foo";
+ [
+ [
+ [
+ "PRAGMA";
+ "dq.Foo";
+ "1"
+ ]
+ ]
+ ]
+ ];
+ [
+ "pragma warningmsg('foo')";
+ [
+ [
+ [
+ "PRAGMA";
+ "warningmsg";
+ "1"
+ ]
+ ]
+ ]
+ ];
+ [
+ "pragma yt.Bar";
+ [
+ [
+ [
+ "PRAGMA";
+ "yt.Bar";
+ "1"
+ ]
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/language/yql/test/cases/ExtractPragmas.sql b/yql/essentials/udfs/language/yql/test/cases/ExtractPragmas.sql
new file mode 100644
index 0000000000..f6caec4d6b
--- /dev/null
+++ b/yql/essentials/udfs/language/yql/test/cases/ExtractPragmas.sql
@@ -0,0 +1,8 @@
+SELECT
+ q,ListSort(ListFilter(YqlLang::RuleFreq(q),($x)->($x.0 in ("PRAGMA"))))
+FROM (VALUES
+ ("pragma warningmsg('foo')"),
+ ("pragma dq.Foo"),
+ ("pragma yt.Bar")
+) AS a(q)
+order by q
diff --git a/yql/essentials/udfs/language/yql/yql_language_udf.cpp b/yql/essentials/udfs/language/yql/yql_language_udf.cpp
index 2bcff38b6b..f5df852d81 100644
--- a/yql/essentials/udfs/language/yql/yql_language_udf.cpp
+++ b/yql/essentials/udfs/language/yql/yql_language_udf.cpp
@@ -45,6 +45,8 @@ public:
VisitUnaryCasualSubexpr(dynamic_cast<const TRule_in_unary_casual_subexpr&>(msg));
} else if (descr == TRule_type_name_simple::GetDescriptor()) {
VisitSimpleType(dynamic_cast<const TRule_type_name_simple&>(msg));
+ } else if (descr == TRule_pragma_stmt::GetDescriptor()) {
+ VisitPragmaStmt(dynamic_cast<const TRule_pragma_stmt&>(msg));
}
TStringBuf fullName = descr->full_name();
@@ -85,6 +87,12 @@ private:
}
}
+ void VisitPragmaStmt(const TRule_pragma_stmt& msg) {
+ const TString prefix = OptIdPrefixAsStr(msg.GetRule_opt_id_prefix_or_type2(), Translation);
+ const TString pragma(Id(msg.GetRule_an_id3(), Translation));
+ Freqs[std::make_pair("PRAGMA", prefix.empty() ? pragma : (prefix + "." + pragma))] += 1;
+ }
+
template<typename TUnaryCasualExprRule>
void VisitUnaryCasualSubexpr(const TUnaryCasualExprRule& msg) {
const auto& block = msg.GetBlock1();
diff --git a/yql/essentials/utils/method_index.h b/yql/essentials/utils/method_index.h
index 4668d558f3..04944049c2 100644
--- a/yql/essentials/utils/method_index.h
+++ b/yql/essentials/utils/method_index.h
@@ -15,11 +15,4 @@ inline size_t GetMethodIndex(Method method) {
return GetMethodPtrIndex(ptr);
}
-template<typename Method>
-inline uintptr_t GetMethodPtr(Method method) {
- uintptr_t ptr;
- std::memcpy(&ptr, &method, sizeof(uintptr_t));
- return ptr;
-}
-
}
diff --git a/yt/cpp/mapreduce/client/client.cpp b/yt/cpp/mapreduce/client/client.cpp
index fccf3501a9..18c7a3ad5d 100644
--- a/yt/cpp/mapreduce/client/client.cpp
+++ b/yt/cpp/mapreduce/client/client.cpp
@@ -9,6 +9,7 @@
#include "init.h"
#include "lock.h"
#include "operation.h"
+#include "partition_reader.h"
#include "retryful_writer.h"
#include "transaction.h"
#include "transaction_pinger.h"
@@ -420,6 +421,14 @@ TRawTableReaderPtr TClientBase::CreateRawReader(
return CreateClientReader(path, format, options).Get();
}
+TRawTableReaderPtr TClientBase::CreateRawTablePartitionReader(
+ const TString& cookie,
+ const TFormat& format,
+ const TTablePartitionReaderOptions& options)
+{
+ return NDetail::CreateTablePartitionReader(RawClient_, ClientRetryPolicy_->CreatePolicyForReaderRequest(), cookie, format, options);
+}
+
TRawTableWriterPtr TClientBase::CreateRawWriter(
const TRichYPath& path,
const TFormat& format,
@@ -883,6 +892,45 @@ THolder<TClientWriter> TClientBase::CreateClientWriter(
std::move(skiffOptions));
}
+::TIntrusivePtr<INodeReaderImpl> TClientBase::CreateNodeTablePartitionReader(
+ const TString& cookie,
+ const TTablePartitionReaderOptions& options)
+{
+ auto format = TFormat::YsonBinary();
+ ApplyFormatHints<TNode>(&format, options.FormatHints_);
+
+ return MakeIntrusive<TNodeTableReader>(CreateRawTablePartitionReader(cookie, format, options));
+}
+
+::TIntrusivePtr<IProtoReaderImpl> TClientBase::CreateProtoTablePartitionReader(
+ const TString& cookie,
+ const TTablePartitionReaderOptions& options,
+ const Message* prototype)
+{
+ auto descriptors = TVector<const ::google::protobuf::Descriptor*>{
+ prototype->GetDescriptor(),
+ };
+ auto format = TFormat::Protobuf(descriptors, Context_.Config->ProtobufFormatWithDescriptors);
+ return MakeIntrusive<TLenvalProtoTableReader>(
+ CreateRawTablePartitionReader(cookie, format, options),
+ std::move(descriptors));
+}
+
+::TIntrusivePtr<ISkiffRowReaderImpl> TClientBase::CreateSkiffRowTablePartitionReader(
+ const TString& cookie,
+ const TTablePartitionReaderOptions& options,
+ const ISkiffRowSkipperPtr& skipper,
+ const NSkiff::TSkiffSchemaPtr& schema)
+{
+ auto skiffOptions = TCreateSkiffSchemaOptions().HasRangeIndex(true);
+ auto resultSchema = NYT::NDetail::CreateSkiffSchema(TVector{schema}, skiffOptions);
+ return new TSkiffRowTableReader(
+ CreateRawTablePartitionReader(cookie, NYT::NDetail::CreateSkiffFormat(resultSchema), options),
+ resultSchema,
+ {skipper},
+ std::move(skiffOptions));
+}
+
::TIntrusivePtr<INodeWriterImpl> TClientBase::CreateNodeWriter(
const TRichYPath& path, const TTableWriterOptions& options)
{
diff --git a/yt/cpp/mapreduce/client/client.h b/yt/cpp/mapreduce/client/client.h
index ef0741044c..71d62965fc 100644
--- a/yt/cpp/mapreduce/client/client.h
+++ b/yt/cpp/mapreduce/client/client.h
@@ -130,6 +130,11 @@ public:
const TFormat& format,
const TTableReaderOptions& options) override;
+ TRawTableReaderPtr CreateRawTablePartitionReader(
+ const TString& cookie,
+ const TFormat& format,
+ const TTablePartitionReaderOptions& options) override;
+
TRawTableWriterPtr CreateRawWriter(
const TRichYPath& path,
const TFormat& format,
@@ -268,6 +273,21 @@ private:
const ISkiffRowSkipperPtr& skipper,
const NSkiff::TSkiffSchemaPtr& schema) override;
+ ::TIntrusivePtr<INodeReaderImpl> CreateNodeTablePartitionReader(
+ const TString& cookie,
+ const TTablePartitionReaderOptions& options) override;
+
+ ::TIntrusivePtr<IProtoReaderImpl> CreateProtoTablePartitionReader(
+ const TString& cookie,
+ const TTablePartitionReaderOptions& options,
+ const Message* prototype) override;
+
+ ::TIntrusivePtr<ISkiffRowReaderImpl> CreateSkiffRowTablePartitionReader(
+ const TString& cookie,
+ const TTablePartitionReaderOptions& options,
+ const ISkiffRowSkipperPtr& skipper,
+ const NSkiff::TSkiffSchemaPtr& schema) override;
+
::TIntrusivePtr<INodeWriterImpl> CreateNodeWriter(
const TRichYPath& path, const TTableWriterOptions& options) override;
diff --git a/yt/cpp/mapreduce/client/operation.cpp b/yt/cpp/mapreduce/client/operation.cpp
index 9a1511025a..553b1a0777 100644
--- a/yt/cpp/mapreduce/client/operation.cpp
+++ b/yt/cpp/mapreduce/client/operation.cpp
@@ -854,6 +854,9 @@ void BuildCommonOperationPart(
MergeNodes((*specNode)["annotations"], nirvanaContext.Annotations);
}
+ if (baseSpec.Alias_) {
+ (*specNode)["alias"] = *baseSpec.Alias_;
+ }
TString pool;
if (baseSpec.Pool_) {
pool = *baseSpec.Pool_;
diff --git a/yt/cpp/mapreduce/client/partition_reader.cpp b/yt/cpp/mapreduce/client/partition_reader.cpp
new file mode 100644
index 0000000000..1610a087cc
--- /dev/null
+++ b/yt/cpp/mapreduce/client/partition_reader.cpp
@@ -0,0 +1,66 @@
+#include "partition_reader.h"
+
+#include <yt/cpp/mapreduce/common/retry_request.h>
+
+#include <yt/cpp/mapreduce/interface/raw_client.h>
+
+namespace NYT::NDetail {
+
+////////////////////////////////////////////////////////////////////////////////
+
+class TPartitionTableReader
+ : public TRawTableReader
+{
+public:
+ TPartitionTableReader(std::unique_ptr<IInputStream> input)
+ : Input_(std::move(input))
+ { }
+
+ bool Retry(
+ const TMaybe<ui32>& /*rangeIndex*/,
+ const TMaybe<ui64>& /*rowIndex*/,
+ const std::exception_ptr& /*error*/) override
+ {
+ return false;
+ }
+
+ void ResetRetries() override
+ { }
+
+ bool HasRangeIndices() const override
+ {
+ return false;
+ }
+
+protected:
+ size_t DoRead(void* buf, size_t len) override
+ {
+ return Input_->Read(buf, len);
+ }
+
+private:
+ std::unique_ptr<IInputStream> Input_;
+};
+
+////////////////////////////////////////////////////////////////////////////////
+
+TRawTableReaderPtr CreateTablePartitionReader(
+ const IRawClientPtr& rawClient,
+ const IRequestRetryPolicyPtr& retryPolicy,
+ const TString& cookie,
+ const TMaybe<TFormat>& format,
+ const TTablePartitionReaderOptions& options)
+{
+
+ auto stream = NDetail::RequestWithRetry<std::unique_ptr<IInputStream>>(
+ retryPolicy,
+ [&] (TMutationId /*mutationId*/) {
+ return rawClient->ReadTablePartition(cookie, format, options);
+ }
+ );
+ return MakeIntrusive<TPartitionTableReader>(std::move(stream));
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+} // namespace NYT::NDetail
diff --git a/yt/cpp/mapreduce/client/partition_reader.h b/yt/cpp/mapreduce/client/partition_reader.h
new file mode 100644
index 0000000000..19b7258ac8
--- /dev/null
+++ b/yt/cpp/mapreduce/client/partition_reader.h
@@ -0,0 +1,18 @@
+#include <yt/cpp/mapreduce/common/fwd.h>
+
+#include <yt/cpp/mapreduce/interface/io.h>
+
+namespace NYT::NDetail {
+
+////////////////////////////////////////////////////////////////////////////////
+
+TRawTableReaderPtr CreateTablePartitionReader(
+ const IRawClientPtr& rawClient,
+ const IRequestRetryPolicyPtr& retryPolicy,
+ const TString& cookie,
+ const TMaybe<TFormat>& format,
+ const TTablePartitionReaderOptions& options);
+
+////////////////////////////////////////////////////////////////////////////////
+
+} // namespace NYT::NDetail
diff --git a/yt/cpp/mapreduce/client/ya.make b/yt/cpp/mapreduce/client/ya.make
index 6ac61f8f7e..c3f4c1876d 100644
--- a/yt/cpp/mapreduce/client/ya.make
+++ b/yt/cpp/mapreduce/client/ya.make
@@ -17,6 +17,7 @@ SRCS(
operation_preparer.cpp
operation_tracker.cpp
operation.cpp
+ partition_reader.cpp
prepare_operation.cpp
py_helpers.cpp
retry_heavy_write_request.cpp
diff --git a/yt/cpp/mapreduce/http_client/raw_client.cpp b/yt/cpp/mapreduce/http_client/raw_client.cpp
index 734282c2cf..ab8fbf5821 100644
--- a/yt/cpp/mapreduce/http_client/raw_client.cpp
+++ b/yt/cpp/mapreduce/http_client/raw_client.cpp
@@ -755,6 +755,24 @@ std::unique_ptr<IInputStream> THttpRawClient::ReadTable(
return std::make_unique<NHttpClient::THttpResponseStream>(std::move(responseInfo));
}
+std::unique_ptr<IInputStream> THttpRawClient::ReadTablePartition(
+ const TString& cookie,
+ const TMaybe<TFormat>& format,
+ const TTablePartitionReaderOptions& options)
+{
+ TMutationId mutationId;
+ THttpHeader header("GET", "api/v4/read_table_partition", /*isApi*/ false);
+ header.SetOutputFormat(format);
+ header.SetResponseCompression(ToString(Context_.Config->AcceptEncoding));
+ auto params = NRawClient::SerializeParamsForReadTablePartition(cookie, options);
+ header.MergeParameters(params);
+
+ TRequestConfig config;
+ config.IsHeavy = true;
+ auto responseInfo = RequestWithoutRetry(Context_, mutationId, header, /*body*/ {}, config);
+ return std::make_unique<NHttpClient::THttpResponseStream>(std::move(responseInfo));
+}
+
std::unique_ptr<IInputStream> THttpRawClient::ReadBlobTable(
const TTransactionId& transactionId,
const TRichYPath& path,
diff --git a/yt/cpp/mapreduce/http_client/raw_client.h b/yt/cpp/mapreduce/http_client/raw_client.h
index d292688978..adcec39884 100644
--- a/yt/cpp/mapreduce/http_client/raw_client.h
+++ b/yt/cpp/mapreduce/http_client/raw_client.h
@@ -280,6 +280,11 @@ public:
const TMaybe<TFormat>& format,
const TTableReaderOptions& options = {}) override;
+ std::unique_ptr<IInputStream> ReadTablePartition(
+ const TString& cookie,
+ const TMaybe<TFormat>& format,
+ const TTablePartitionReaderOptions& options = {}) override;
+
std::unique_ptr<IInputStream> ReadBlobTable(
const TTransactionId& transactionId,
const TRichYPath& path,
diff --git a/yt/cpp/mapreduce/http_client/rpc_parameters_serialization.cpp b/yt/cpp/mapreduce/http_client/rpc_parameters_serialization.cpp
index 081845be5e..8487a1de8f 100644
--- a/yt/cpp/mapreduce/http_client/rpc_parameters_serialization.cpp
+++ b/yt/cpp/mapreduce/http_client/rpc_parameters_serialization.cpp
@@ -668,6 +668,13 @@ TNode SerializeParamsForReadTable(
return result;
}
+TNode SerializeParamsForReadTablePartition(const TString& cookie, const TTablePartitionReaderOptions& /*options*/)
+{
+ TNode node;
+ node["cookie"] = cookie;
+ return node;
+}
+
TNode SerializeParamsForReadBlobTable(
const TTransactionId& transactionId,
const TRichYPath& path,
@@ -815,6 +822,7 @@ TNode SerializeParamsForGetTablePartitions(
result["max_partition_count"] = *options.MaxPartitionCount_;
}
result["adjust_data_weight_per_partition"] = options.AdjustDataWeightPerPartition_;
+ result["enable_cookies"] = options.EnableCookies_;
return result;
}
diff --git a/yt/cpp/mapreduce/http_client/rpc_parameters_serialization.h b/yt/cpp/mapreduce/http_client/rpc_parameters_serialization.h
index 5dc2045bc5..90c8dd8e24 100644
--- a/yt/cpp/mapreduce/http_client/rpc_parameters_serialization.h
+++ b/yt/cpp/mapreduce/http_client/rpc_parameters_serialization.h
@@ -159,6 +159,10 @@ TNode SerializeParamsForReadTable(
const TTransactionId& transactionId,
const TTableReaderOptions& options);
+TNode SerializeParamsForReadTablePartition(
+ const TString& cookie,
+ const TTablePartitionReaderOptions& options);
+
TNode SerializeParamsForReadBlobTable(
const TTransactionId& transactionId,
const TRichYPath& path,
diff --git a/yt/cpp/mapreduce/interface/client_method_options.h b/yt/cpp/mapreduce/interface/client_method_options.h
index d8024a7e73..4bb2df112c 100644
--- a/yt/cpp/mapreduce/interface/client_method_options.h
+++ b/yt/cpp/mapreduce/interface/client_method_options.h
@@ -675,7 +675,7 @@ struct TTableReaderOptions
FLUENT_FIELD_DEFAULT(size_t, SizeLimit, 4 << 20);
///
- /// @brief Allows to fine tune format that is used for reading tables.
+ /// @brief Allows fine-tuning of the format used for reading tables.
///
/// Has no effect when used with raw-reader.
FLUENT_FIELD_OPTION(TFormatHints, FormatHints);
@@ -686,6 +686,20 @@ struct TTableReaderOptions
FLUENT_FIELD_DEFAULT(TControlAttributes, ControlAttributes, TControlAttributes());
};
+/// Options for @ref NYT::IClient::CreatePartitionTableReader
+struct TTablePartitionReaderOptions
+{
+ /// @cond Doxygen_Suppress
+ using TSelf = TTablePartitionReaderOptions;
+ /// @endcond
+
+ ///
+ /// @brief Allows fine-tuning of the format used for reading tables.
+ ///
+ /// Has no effect when used with raw-reader.
+ FLUENT_FIELD_OPTION(TFormatHints, FormatHints);
+};
+
/// Options for @ref NYT::IClient::CreateTableWriter
struct TTableWriterOptions
: public TIOOptions<TTableWriterOptions>
@@ -1471,6 +1485,12 @@ struct TGetTablePartitionsOptions
///
/// |True| by default.
FLUENT_FIELD_DEFAULT(bool, AdjustDataWeightPerPartition, true);
+
+ ///
+ /// @brief Enable partition cookies in response.
+ ///
+ /// Partition cookies allow to efficiently read partitions using @ref NYT::IClientBase::CreateTablePartitionReader method.
+ FLUENT_FIELD_DEFAULT(bool, EnableCookies, false);
};
///
diff --git a/yt/cpp/mapreduce/interface/common.h b/yt/cpp/mapreduce/interface/common.h
index 9752e15822..82556fb08a 100644
--- a/yt/cpp/mapreduce/interface/common.h
+++ b/yt/cpp/mapreduce/interface/common.h
@@ -1248,6 +1248,9 @@ struct TMultiTablePartition
/// Aggregate statistics of all the table ranges in the partition.
TStatistics AggregateStatistics;
+
+ /// Partition cookie that can be passed to @ref NYT::IClientBase::CreatePartitionReader
+ TMaybe<TString> Cookie;
};
/// Table partitions from GetTablePartitions command.
diff --git a/yt/cpp/mapreduce/interface/io-inl.h b/yt/cpp/mapreduce/interface/io-inl.h
index 056910f785..ba53b874b9 100644
--- a/yt/cpp/mapreduce/interface/io-inl.h
+++ b/yt/cpp/mapreduce/interface/io-inl.h
@@ -2,6 +2,7 @@
#ifndef IO_INL_H_
#error "Direct inclusion of this file is not allowed, use io.h"
+#include "io.h" // For the sake of sane code completion.
#endif
#undef IO_INL_H_
@@ -632,6 +633,30 @@ inline TTableReaderPtr<T> IIOClient::CreateTableReader(
}
}
+template <>
+inline TTableReaderPtr<TNode> IIOClient::CreateTablePartitionReader<TNode>(
+ const TString& cookie, const TTablePartitionReaderOptions& options)
+{
+ return new TTableReader<TNode>(CreateNodeTablePartitionReader(cookie, options));
+}
+
+template <class T>
+inline TTableReaderPtr<T> IIOClient::CreateTablePartitionReader(
+ const TString& path, const TTablePartitionReaderOptions& options)
+{
+ if constexpr (TIsBaseOf<Message, T>::Value) {
+ T prototype;
+ return new TTableReader<T>(CreateProtoReader(path, options, &prototype));
+ } else if constexpr (TIsSkiffRow<T>::value) {
+ const auto& hints = options.FormatHints_ ? options.FormatHints_->SkiffRowHints_ : Nothing();
+ auto schema = GetSkiffSchema<T>(hints);
+ auto skipper = CreateSkiffSkipper<T>(hints);
+ return new TTableReader<T>(CreateSkiffRowReader(path, options, skipper, schema), hints);
+ } else {
+ static_assert(TDependentFalse<T>, "Unsupported type for table reader");
+ }
+}
+
////////////////////////////////////////////////////////////////////////////////
template <typename T>
diff --git a/yt/cpp/mapreduce/interface/io.h b/yt/cpp/mapreduce/interface/io.h
index becde0def2..aadbca3298 100644
--- a/yt/cpp/mapreduce/interface/io.h
+++ b/yt/cpp/mapreduce/interface/io.h
@@ -331,7 +331,7 @@ private:
///
/// @see @ref NYT::TTableReaderIterator
template <class T>
-TTableReaderIterator<T> begin(TTableReader<T>& reader)
+TTableReaderIterator<T> begin(TTableReader<T>& reader) // NOLINT
{
return TTableReaderIterator<T>(&reader);
}
@@ -340,7 +340,7 @@ TTableReaderIterator<T> begin(TTableReader<T>& reader)
///
/// @see @ref NYT::TTableReaderIterator
template <class T>
-TTableReaderIterator<T> end(TTableReader<T>&)
+TTableReaderIterator<T> end(TTableReader<T>&) // NOLINT
{
return TTableReaderIterator<T>(nullptr);
}
@@ -460,6 +460,30 @@ public:
const TTableWriterOptions& options = TTableWriterOptions()) = 0;
///
+ /// @brief Create raw reader of table partition
+ ///
+ /// Reader returns unparsed data in specified format.
+ ///
+ /// @param cookie Partition cookie received from @ref NYT::IClientBase::GetTablesPartitions.
+ /// @param format Format description.
+ /// @param options Additional options.
+ virtual TRawTableReaderPtr CreateRawTablePartitionReader(
+ const TString& cookie,
+ const TFormat& format,
+ const TTablePartitionReaderOptions& options = {}) = 0;
+
+ ///
+ /// @brief Create reader of table partition
+ ///
+ /// @param cookie Partition cookie received from @ref NYT::IClientBase::GetTablesPartitions.
+ /// @param format Format description.
+ /// @param options Additional options.
+ template <class T>
+ TTableReaderPtr<T> CreateTablePartitionReader(
+ const TString& cookie,
+ const TTablePartitionReaderOptions& options = {});
+
+ ///
/// @brief Create a reader for [blob table](https://docs.yandex-team.ru/docs/yt/description/storage/blobtables) at `path`.
///
/// @param path Blob table path.
@@ -497,6 +521,20 @@ private:
const ISkiffRowSkipperPtr& skipper,
const NSkiff::TSkiffSchemaPtr& schema) = 0;
+ virtual ::TIntrusivePtr<INodeReaderImpl> CreateNodeTablePartitionReader(
+ const TString& cookie, const TTablePartitionReaderOptions& options) = 0;
+
+ virtual ::TIntrusivePtr<IProtoReaderImpl> CreateProtoTablePartitionReader(
+ const TString& cookie,
+ const TTablePartitionReaderOptions& options,
+ const ::google::protobuf::Message* prototype) = 0;
+
+ virtual ::TIntrusivePtr<ISkiffRowReaderImpl> CreateSkiffRowTablePartitionReader(
+ const TString& cookie,
+ const TTablePartitionReaderOptions& options,
+ const ISkiffRowSkipperPtr& skipper,
+ const NSkiff::TSkiffSchemaPtr& schema) = 0;
+
virtual ::TIntrusivePtr<INodeWriterImpl> CreateNodeWriter(
const TRichYPath& path, const TTableWriterOptions& options) = 0;
diff --git a/yt/cpp/mapreduce/interface/operation.h b/yt/cpp/mapreduce/interface/operation.h
index 869c8f9c0b..50c694b5b0 100644
--- a/yt/cpp/mapreduce/interface/operation.h
+++ b/yt/cpp/mapreduce/interface/operation.h
@@ -523,6 +523,9 @@ struct TOperationSpecBase
/// If operation doesn't finish in time it will be aborted.
FLUENT_FIELD_OPTION(TDuration, TimeLimit);
+ /// @brief Alias for searching for an operation in the future.
+ FLUENT_FIELD_OPTION(TString, Alias);
+
/// @brief Title to be shown in web interface.
FLUENT_FIELD_OPTION(TString, Title);
diff --git a/yt/cpp/mapreduce/interface/raw_client.h b/yt/cpp/mapreduce/interface/raw_client.h
index 24f8de61b6..23819357db 100644
--- a/yt/cpp/mapreduce/interface/raw_client.h
+++ b/yt/cpp/mapreduce/interface/raw_client.h
@@ -282,6 +282,11 @@ public:
const TMaybe<TFormat>& format,
const TTableReaderOptions& options = {}) = 0;
+ virtual std::unique_ptr<IInputStream> ReadTablePartition(
+ const TString& cookie,
+ const TMaybe<TFormat>& format,
+ const TTablePartitionReaderOptions& options = {}) = 0;
+
virtual std::unique_ptr<IInputStream> ReadBlobTable(
const TTransactionId& transactionId,
const TRichYPath& path,
diff --git a/yt/cpp/mapreduce/interface/serialize.cpp b/yt/cpp/mapreduce/interface/serialize.cpp
index 5ea65b62f1..64f38e7d0a 100644
--- a/yt/cpp/mapreduce/interface/serialize.cpp
+++ b/yt/cpp/mapreduce/interface/serialize.cpp
@@ -537,6 +537,7 @@ void Deserialize(TMultiTablePartition& partition, const TNode& node)
const auto& nodeMap = node.AsMap();
DESERIALIZE_ITEM("table_ranges", partition.TableRanges);
DESERIALIZE_ITEM("aggregate_statistics", partition.AggregateStatistics);
+ DESERIALIZE_ITEM("cookie", partition.Cookie)
}
void Deserialize(TMultiTablePartitions& partitions, const TNode& node)
diff --git a/yt/yql/providers/yt/common/yql_yt_settings.cpp b/yt/yql/providers/yt/common/yql_yt_settings.cpp
index e8f019ea16..27d6a032a1 100644
--- a/yt/yql/providers/yt/common/yql_yt_settings.cpp
+++ b/yt/yql/providers/yt/common/yql_yt_settings.cpp
@@ -366,6 +366,13 @@ TYtConfiguration::TYtConfiguration(TTypeAnnotationContext& typeCtx)
OperationSpec[cluster] = spec;
HybridDqExecution = false;
});
+ REGISTER_SETTING(*this, FmrOperationSpec)
+ .Parser([](const TString& v) { return NYT::NodeFromYsonString(v, ::NYson::EYsonType::Node); })
+ .Validator([] (const TString&, const NYT::TNode& value) {
+ if (!value.IsMap()) {
+ throw yexception() << "Expected yson map, but got " << value.GetType();
+ }
+ });
REGISTER_SETTING(*this, Annotations)
.Parser([](const TString& v) { return NYT::NodeFromYsonString(v); })
.Validator([] (const TString&, const NYT::TNode& value) {
diff --git a/yt/yql/providers/yt/common/yql_yt_settings.h b/yt/yql/providers/yt/common/yql_yt_settings.h
index e2dd916629..5a291b5dab 100644
--- a/yt/yql/providers/yt/common/yql_yt_settings.h
+++ b/yt/yql/providers/yt/common/yql_yt_settings.h
@@ -183,6 +183,7 @@ struct TYtSettings {
NCommon::TConfSetting<TString, true> DockerImage;
NCommon::TConfSetting<NYT::TNode, true> JobEnv;
NCommon::TConfSetting<NYT::TNode, true> OperationSpec;
+ NCommon::TConfSetting<NYT::TNode, true> FmrOperationSpec;
NCommon::TConfSetting<NYT::TNode, true> Annotations;
NCommon::TConfSetting<NYT::TNode, true> StartedBy;
NCommon::TConfSetting<NYT::TNode, true> Description;
diff --git a/yt/yql/providers/yt/fmr/coordinator/impl/ya.make b/yt/yql/providers/yt/fmr/coordinator/impl/ya.make
index 11d323d128..5a16fbe0ce 100644
--- a/yt/yql/providers/yt/fmr/coordinator/impl/ya.make
+++ b/yt/yql/providers/yt/fmr/coordinator/impl/ya.make
@@ -7,6 +7,7 @@ SRCS(
PEERDIR(
library/cpp/random_provider
library/cpp/threading/future
+ library/cpp/yson/node
yt/yql/providers/yt/fmr/coordinator/interface
yql/essentials/utils/log
yql/essentials/utils
diff --git a/yt/yql/providers/yt/fmr/coordinator/impl/yql_yt_coordinator_impl.cpp b/yt/yql/providers/yt/fmr/coordinator/impl/yql_yt_coordinator_impl.cpp
index 9c14f30403..1831e7f1ac 100644
--- a/yt/yql/providers/yt/fmr/coordinator/impl/yql_yt_coordinator_impl.cpp
+++ b/yt/yql/providers/yt/fmr/coordinator/impl/yql_yt_coordinator_impl.cpp
@@ -64,7 +64,12 @@ public:
TString taskId = GenerateId();
auto taskParams = MakeDefaultTaskParamsFromOperation(request.OperationParams);
- TTask::TPtr createdTask = MakeTask(request.TaskType, taskId, taskParams, request.SessionId, request.ClusterConnection);
+ TMaybe<NYT::TNode> jobSettings = Nothing();
+ auto fmrOperationSpec = request.FmrOperationSpec;
+ if (fmrOperationSpec && fmrOperationSpec->IsMap() && fmrOperationSpec->HasKey("job_settings")) {
+ jobSettings = (*fmrOperationSpec)["job_settings"];
+ }
+ TTask::TPtr createdTask = MakeTask(request.TaskType, taskId, taskParams, request.SessionId, request.ClusterConnection, jobSettings);
Tasks_[taskId] = TCoordinatorTaskInfo{.Task = createdTask, .TaskStatus = ETaskStatus::Accepted, .OperationId = operationId};
diff --git a/yt/yql/providers/yt/fmr/coordinator/impl/yql_yt_coordinator_impl.h b/yt/yql/providers/yt/fmr/coordinator/impl/yql_yt_coordinator_impl.h
index d8a526096a..b3c06dbe5c 100644
--- a/yt/yql/providers/yt/fmr/coordinator/impl/yql_yt_coordinator_impl.h
+++ b/yt/yql/providers/yt/fmr/coordinator/impl/yql_yt_coordinator_impl.h
@@ -1,6 +1,7 @@
#pragma once
#include <library/cpp/random_provider/random_provider.h>
+#include <library/cpp/yson/node/node.h>
#include <util/system/mutex.h>
#include <util/system/guard.h>
#include <util/generic/queue.h>
diff --git a/yt/yql/providers/yt/fmr/coordinator/interface/proto_helpers/ya.make b/yt/yql/providers/yt/fmr/coordinator/interface/proto_helpers/ya.make
index 62df195306..cd29edc85d 100644
--- a/yt/yql/providers/yt/fmr/coordinator/interface/proto_helpers/ya.make
+++ b/yt/yql/providers/yt/fmr/coordinator/interface/proto_helpers/ya.make
@@ -5,6 +5,7 @@ SRCS(
)
PEERDIR(
+ library/cpp/yson/node
yt/yql/providers/yt/fmr/coordinator/interface
yt/yql/providers/yt/fmr/proto
yt/yql/providers/yt/fmr/request_options/proto_helpers
diff --git a/yt/yql/providers/yt/fmr/coordinator/interface/proto_helpers/yql_yt_coordinator_proto_helpers.cpp b/yt/yql/providers/yt/fmr/coordinator/interface/proto_helpers/yql_yt_coordinator_proto_helpers.cpp
index fbb4a641a0..8c244c3f1a 100644
--- a/yt/yql/providers/yt/fmr/coordinator/interface/proto_helpers/yql_yt_coordinator_proto_helpers.cpp
+++ b/yt/yql/providers/yt/fmr/coordinator/interface/proto_helpers/yql_yt_coordinator_proto_helpers.cpp
@@ -1,4 +1,5 @@
#include "yql_yt_coordinator_proto_helpers.h"
+#include <library/cpp/yson/node/node_io.h>
namespace NYql::NFmr {
@@ -71,6 +72,9 @@ NProto::TStartOperationRequest StartOperationRequestToProto(const TStartOperatio
protoStartOperationRequest.SetNumRetries(startOperationRequest.NumRetries);
auto protoClusterConnection = ClusterConnectionToProto(startOperationRequest.ClusterConnection);
protoStartOperationRequest.MutableClusterConnection()->Swap(&protoClusterConnection);
+ if (startOperationRequest.FmrOperationSpec) {
+ protoStartOperationRequest.SetFmrOperationSpec(NYT::NodeToYsonString(*startOperationRequest.FmrOperationSpec));
+ }
return protoStartOperationRequest;
}
@@ -84,6 +88,9 @@ TStartOperationRequest StartOperationRequestFromProto(const NProto::TStartOperat
}
startOperationRequest.NumRetries = protoStartOperationRequest.GetNumRetries();
startOperationRequest.ClusterConnection = ClusterConnectionFromProto(protoStartOperationRequest.GetClusterConnection());
+ if (protoStartOperationRequest.HasFmrOperationSpec()) {
+ startOperationRequest.FmrOperationSpec = NYT::NodeFromYsonString(protoStartOperationRequest.GetFmrOperationSpec());
+ }
return startOperationRequest;
}
diff --git a/yt/yql/providers/yt/fmr/coordinator/interface/yql_yt_coordinator.h b/yt/yql/providers/yt/fmr/coordinator/interface/yql_yt_coordinator.h
index 15a06b2d59..15ecd6c97a 100644
--- a/yt/yql/providers/yt/fmr/coordinator/interface/yql_yt_coordinator.h
+++ b/yt/yql/providers/yt/fmr/coordinator/interface/yql_yt_coordinator.h
@@ -25,7 +25,8 @@ struct TStartOperationRequest {
TString SessionId;
TMaybe<TString> IdempotencyKey = Nothing();
ui32 NumRetries = 1; // Not supported yet
- TClusterConnection ClusterConnection = {};
+ TClusterConnection ClusterConnection = {}; // TODO - change to map
+ TMaybe<NYT::TNode> FmrOperationSpec = Nothing();
};
struct TStartOperationResponse {
diff --git a/yt/yql/providers/yt/fmr/job/impl/ut/yql_yt_job_ut.cpp b/yt/yql/providers/yt/fmr/job/impl/ut/yql_yt_job_ut.cpp
index ac3a9263c6..7b17dee907 100644
--- a/yt/yql/providers/yt/fmr/job/impl/ut/yql_yt_job_ut.cpp
+++ b/yt/yql/providers/yt/fmr/job/impl/ut/yql_yt_job_ut.cpp
@@ -156,7 +156,7 @@ Y_UNIT_TEST_SUITE(TaskRunTests) {
TYtTableRef output = TYtTableRef("test_cluster", "test_path");
TUploadTaskParams params = TUploadTaskParams(input, output);
- TTask::TPtr task = MakeTask(ETaskType::Upload, "test_task_id", params, "test_session_id");
+ TTask::TPtr task = MakeTask(ETaskType::Upload, "test_task_id", params, "test_session_id", TClusterConnection());
auto key = GetTableDataServiceKey(input.TableId, "test_part_id", 0);
tableDataServicePtr->Put(key, GetBinaryYson(TableContent_1));
ETaskStatus status = RunJob(task, tableDataServicePtr, ytService, cancelFlag).TaskStatus;
@@ -178,7 +178,7 @@ Y_UNIT_TEST_SUITE(TaskRunTests) {
TYtTableRef output = TYtTableRef("test_cluster", "test_path");
TUploadTaskParams params = TUploadTaskParams(input, output);
- TTask::TPtr task = MakeTask(ETaskType::Upload, "test_task_id", params, "test_session_id");
+ TTask::TPtr task = MakeTask(ETaskType::Upload, "test_task_id", params, "test_session_id", TClusterConnection());
// No tables in tableDataService
ETaskStatus status = RunJob(task, tableDataServicePtr, ytService, cancelFlag).TaskStatus;
@@ -205,7 +205,7 @@ Y_UNIT_TEST_SUITE(TaskRunTests) {
auto params = TMergeTaskParams(inputs, output);
auto tableDataServiceExpectedOutputKey = GetTableDataServiceKey(output.TableId, output.PartId, 0);
- TTask::TPtr task = MakeTask(ETaskType::Upload, "test_task_id", params, "test_session_id");
+ TTask::TPtr task = MakeTask(ETaskType::Merge, "test_task_id", params, "test_session_id", TClusterConnection());
auto key_1 = GetTableDataServiceKey(input_1.TableId, "test_part_id", 0);
auto key_3 = GetTableDataServiceKey(input_3.TableId, "test_part_id", 0);
@@ -239,7 +239,7 @@ Y_UNIT_TEST_SUITE(TaskRunTests) {
auto params = TMergeTaskParams(inputs, output);
auto tableDataServiceExpectedOutputKey = GetTableDataServiceKey(output.TableId, output.PartId, 0);
- TTask::TPtr task = MakeTask(ETaskType::Upload, "test_task_id", params, "test_session_id");
+ TTask::TPtr task = MakeTask(ETaskType::Merge, "test_task_id", params, "test_session_id", TClusterConnection());
auto key_1 = GetTableDataServiceKey(input_1.TableId, "test_part_id", 0);
auto key_3 = GetTableDataServiceKey(input_3.TableId, "test_part_id", 0);
diff --git a/yt/yql/providers/yt/fmr/job/impl/yql_yt_job_impl.cpp b/yt/yql/providers/yt/fmr/job/impl/yql_yt_job_impl.cpp
index aa3d0b5112..c8da1df480 100644
--- a/yt/yql/providers/yt/fmr/job/impl/yql_yt_job_impl.cpp
+++ b/yt/yql/providers/yt/fmr/job/impl/yql_yt_job_impl.cpp
@@ -16,15 +16,12 @@ namespace NYql::NFmr {
class TFmrJob: public IFmrJob {
public:
- TFmrJob(ITableDataService::TPtr tableDataService, IYtService::TPtr ytService, std::shared_ptr<std::atomic<bool>> cancelFlag, const TFmrJobSettings& settings)
+ TFmrJob(ITableDataService::TPtr tableDataService, IYtService::TPtr ytService, std::shared_ptr<std::atomic<bool>> cancelFlag, const TMaybe<TFmrJobSettings>& settings)
: TableDataService_(tableDataService), YtService_(ytService), CancelFlag_(cancelFlag), Settings_(settings)
{
}
- virtual std::variant<TError, TStatistics> Download(
- const TDownloadTaskParams& params,
- const TClusterConnection& clusterConnection
- ) override {
+ virtual std::variant<TError, TStatistics> Download(const TDownloadTaskParams& params, const TClusterConnection& clusterConnection) override {
try {
const auto ytTable = params.Input;
const auto cluster = params.Input.Cluster;
@@ -36,9 +33,9 @@ public:
YQL_CLOG(DEBUG, FastMapReduce) << "Downloading " << cluster << '.' << path;
auto ytTableReader = YtService_->MakeReader(ytTable, clusterConnection); // TODO - pass YtReader settings from Gateway
- auto tableDataServiceWriter = TFmrTableDataServiceWriter(tableId, partId, TableDataService_, Settings_.FmrTableDataServiceWriterSettings);
+ auto tableDataServiceWriter = TFmrTableDataServiceWriter(tableId, partId, TableDataService_, GetFmrTableDataServiceWriterSettings());
- ParseRecords(*ytTableReader, tableDataServiceWriter, Settings_.ParseRecordSettings.BlockCount, Settings_.ParseRecordSettings.BlockSize);
+ ParseRecords(*ytTableReader, tableDataServiceWriter, GetParseRecordSettings().BlockCount, GetParseRecordSettings().BlockSize);
tableDataServiceWriter.Flush();
TTableStats stats = tableDataServiceWriter.GetStats();
@@ -59,9 +56,9 @@ public:
YQL_CLOG(DEBUG, FastMapReduce) << "Uploading " << cluster << '.' << path;
- auto tableDataServiceReader = TFmrTableDataServiceReader(tableId, tableRanges, TableDataService_, Settings_.FmrTableDataServiceReaderSettings);
- auto ytTableWriter = YtService_->MakeWriter(ytTable, clusterConnection); // TODO - pass YtReader settings from Gateway
- ParseRecords(tableDataServiceReader, *ytTableWriter, Settings_.ParseRecordSettings.BlockCount, Settings_.ParseRecordSettings.BlockSize);
+ auto tableDataServiceReader = TFmrTableDataServiceReader(tableId, tableRanges, TableDataService_, GetFmrTableDataServiceReaderSettings());
+ auto ytTableWriter = YtService_->MakeWriter(ytTable, clusterConnection);
+ ParseRecords(tableDataServiceReader, *ytTableWriter, GetParseRecordSettings().BlockCount, GetParseRecordSettings().BlockSize);
ytTableWriter->Flush();
return TStatistics();
@@ -71,6 +68,7 @@ public:
}
virtual std::variant<TError, TStatistics> Merge(const TMergeTaskParams& params, const TClusterConnection& clusterConnection) override {
+ // TODO - unordered_map<ClusterConnection>
// расширить таск парамс. добавить туда мету
try {
const auto inputs = params.Input;
@@ -78,13 +76,13 @@ public:
YQL_CLOG(DEBUG, FastMapReduce) << "Merging " << inputs.size() << " inputs";
- auto tableDataServiceWriter = TFmrTableDataServiceWriter(output.TableId, output.PartId, TableDataService_, Settings_.FmrTableDataServiceWriterSettings);
+ auto tableDataServiceWriter = TFmrTableDataServiceWriter(output.TableId, output.PartId, TableDataService_, GetFmrTableDataServiceWriterSettings());
for (const auto& inputTableRef : inputs) {
if (CancelFlag_->load()) {
return TError("Canceled");
}
auto inputTableReader = GetTableInputStream(inputTableRef, clusterConnection);
- ParseRecords(*inputTableReader, tableDataServiceWriter, Settings_.ParseRecordSettings.BlockCount, Settings_.ParseRecordSettings.BlockSize);
+ ParseRecords(*inputTableReader, tableDataServiceWriter, GetParseRecordSettings().BlockCount, GetParseRecordSettings().BlockSize);
}
tableDataServiceWriter.Flush();
return TStatistics({{output, tableDataServiceWriter.GetStats()}});
@@ -101,17 +99,29 @@ private:
if (ytTable) {
return YtService_->MakeReader(*ytTable, clusterConnection); // TODO - pass YtReader settings from Gateway
} else if (fmrTable) {
- return MakeIntrusive<TFmrTableDataServiceReader>(fmrTable->TableId, fmrTable->TableRanges, TableDataService_, Settings_.FmrTableDataServiceReaderSettings);
+ return MakeIntrusive<TFmrTableDataServiceReader>(fmrTable->TableId, fmrTable->TableRanges, TableDataService_, GetFmrTableDataServiceReaderSettings());
} else {
ythrow yexception() << "Unsupported table type";
}
}
+ TParseRecordSettings GetParseRecordSettings() {
+ return Settings_ ? Settings_->ParseRecordSettings : TParseRecordSettings();
+ }
+
+ TFmrTableDataServiceReaderSettings GetFmrTableDataServiceReaderSettings() {
+ return Settings_ ? Settings_->FmrTableDataServiceReaderSettings : TFmrTableDataServiceReaderSettings();
+ }
+
+ TFmrTableDataServiceWriterSettings GetFmrTableDataServiceWriterSettings() {
+ return Settings_ ? Settings_->FmrTableDataServiceWriterSettings : TFmrTableDataServiceWriterSettings();
+ }
+
private:
ITableDataService::TPtr TableDataService_;
IYtService::TPtr YtService_;
std::shared_ptr<std::atomic<bool>> CancelFlag_;
- const TFmrJobSettings Settings_;
+ TMaybe<TFmrJobSettings> Settings_;
};
IFmrJob::TPtr MakeFmrJob(
@@ -128,9 +138,10 @@ TJobResult RunJob(
ITableDataService::TPtr tableDataService,
IYtService::TPtr ytService,
std::shared_ptr<std::atomic<bool>> cancelFlag,
- const TFmrJobSettings& settings
+ const TMaybe<TFmrJobSettings>& settings
) {
- IFmrJob::TPtr job = MakeFmrJob(tableDataService, ytService, cancelFlag, settings);
+ TFmrJobSettings jobSettings = settings ? *settings : GetJobSettingsFromTask(task);
+ IFmrJob::TPtr job = MakeFmrJob(tableDataService, ytService, cancelFlag, jobSettings);
auto processTask = [job, task] (auto&& taskParams) {
using T = std::decay_t<decltype(taskParams)>;
@@ -160,4 +171,36 @@ TJobResult RunJob(
return {ETaskStatus::Completed, *statistics};
};
+TFmrJobSettings GetJobSettingsFromTask(TTask::TPtr task) {
+ if (!task->JobSettings) {
+ return TFmrJobSettings();
+ }
+ auto jobSettings = *task->JobSettings;
+ YQL_ENSURE(jobSettings.IsMap());
+ TFmrJobSettings resultSettings{};
+ if (jobSettings.HasKey("parse_record_settings")) {
+ auto& parseRecordSettings = jobSettings["parse_record_settings"];
+ if (parseRecordSettings.HasKey("block_count")) {
+ resultSettings.ParseRecordSettings.BlockCount = parseRecordSettings["block_count"].AsInt64();
+ }
+ if (parseRecordSettings.HasKey("block_size")) {
+ resultSettings.ParseRecordSettings.BlockSize = parseRecordSettings["block_size"].AsInt64();
+ // TODO - support different formats (B, MB, ...)
+ }
+ }
+ if (jobSettings.HasKey("fmr_reader_settings")) {
+ auto& fmrReaderSettings = jobSettings["fmr_reader_settings"];
+ if (fmrReaderSettings.HasKey("read_ahead_chunks")) {
+ resultSettings.FmrTableDataServiceReaderSettings.ReadAheadChunks = fmrReaderSettings["read_ahead_chunks"].AsInt64();
+ }
+ }
+ if (jobSettings.HasKey("fmr_writer_settings")) {
+ auto& fmrWriterSettings = jobSettings["fmr_writer_settings"];
+ if (fmrWriterSettings.HasKey("chunk_size")) {
+ resultSettings.FmrTableDataServiceWriterSettings.ChunkSize = fmrWriterSettings["chunk_size"].AsInt64();
+ }
+ }
+ return resultSettings;
+}
+
} // namespace NYql
diff --git a/yt/yql/providers/yt/fmr/job/impl/yql_yt_job_impl.h b/yt/yql/providers/yt/fmr/job/impl/yql_yt_job_impl.h
index 7010a2eb96..cb21e95f9c 100644
--- a/yt/yql/providers/yt/fmr/job/impl/yql_yt_job_impl.h
+++ b/yt/yql/providers/yt/fmr/job/impl/yql_yt_job_impl.h
@@ -9,7 +9,7 @@ namespace NYql::NFmr {
struct TParseRecordSettings {
ui64 BlockCount = 1;
- ui64 BlockSize = 1024 * 1024; // 1Mb
+ ui64 BlockSize = 1024 * 1024;
};
struct TFmrJobSettings {
@@ -20,6 +20,8 @@ struct TFmrJobSettings {
IFmrJob::TPtr MakeFmrJob(ITableDataService::TPtr tableDataService, IYtService::TPtr ytService, std::shared_ptr<std::atomic<bool>> cancelFlag, const TFmrJobSettings& settings = {});
-TJobResult RunJob(TTask::TPtr task, ITableDataService::TPtr tableDataService, IYtService::TPtr ytService, std::shared_ptr<std::atomic<bool>> cancelFlag, const TFmrJobSettings& settings = {});
+TJobResult RunJob(TTask::TPtr task, ITableDataService::TPtr tableDataService, IYtService::TPtr ytService, std::shared_ptr<std::atomic<bool>> cancelFlag, const TMaybe<TFmrJobSettings>& settings = Nothing());
+
+TFmrJobSettings GetJobSettingsFromTask(TTask::TPtr task);
} // namespace NYql
diff --git a/yt/yql/providers/yt/fmr/job/impl/yql_yt_table_data_service_writer.h b/yt/yql/providers/yt/fmr/job/impl/yql_yt_table_data_service_writer.h
index a708b79543..2e27cd4f07 100644
--- a/yt/yql/providers/yt/fmr/job/impl/yql_yt_table_data_service_writer.h
+++ b/yt/yql/providers/yt/fmr/job/impl/yql_yt_table_data_service_writer.h
@@ -10,7 +10,7 @@
namespace NYql::NFmr {
struct TFmrTableDataServiceWriterSettings {
- ui64 ChunkSize = 1024 * 1024; // 1Mb
+ ui64 ChunkSize = 1024 * 1024;
};
class TFmrTableDataServiceWriter: public NYT::TRawTableWriter {
diff --git a/yt/yql/providers/yt/fmr/proto/coordinator.proto b/yt/yql/providers/yt/fmr/proto/coordinator.proto
index 99d0ca2361..a104cf26ea 100644
--- a/yt/yql/providers/yt/fmr/proto/coordinator.proto
+++ b/yt/yql/providers/yt/fmr/proto/coordinator.proto
@@ -22,6 +22,7 @@ message TStartOperationRequest {
optional string IdempotencyKey = 4;
uint32 NumRetries = 5;
TClusterConnection ClusterConnection = 6;
+ optional string FmrOperationSpec = 7;
}
message TStartOperationResponse {
diff --git a/yt/yql/providers/yt/fmr/proto/request_options.proto b/yt/yql/providers/yt/fmr/proto/request_options.proto
index a2580eb39f..4bd35eacaa 100644
--- a/yt/yql/providers/yt/fmr/proto/request_options.proto
+++ b/yt/yql/providers/yt/fmr/proto/request_options.proto
@@ -156,6 +156,7 @@ message TTask {
string SessionId = 4;
optional uint32 NumRetries = 5;
TClusterConnection ClusterConnection = 6;
+ optional string JobSettings = 7;
}
message TTaskState {
diff --git a/yt/yql/providers/yt/fmr/request_options/proto_helpers/yql_yt_request_proto_helpers.cpp b/yt/yql/providers/yt/fmr/request_options/proto_helpers/yql_yt_request_proto_helpers.cpp
index 0ce6dea92d..0860c00996 100644
--- a/yt/yql/providers/yt/fmr/request_options/proto_helpers/yql_yt_request_proto_helpers.cpp
+++ b/yt/yql/providers/yt/fmr/request_options/proto_helpers/yql_yt_request_proto_helpers.cpp
@@ -1,4 +1,5 @@
#include "yql_yt_request_proto_helpers.h"
+#include <library/cpp/yson/node/node_io.h>
namespace NYql::NFmr {
@@ -399,6 +400,9 @@ NProto::TTask TaskToProto(const TTask& task) {
protoTask.SetNumRetries(task.NumRetries);
auto clusterConnection = ClusterConnectionToProto(task.ClusterConnection);
protoTask.MutableClusterConnection()->Swap(&clusterConnection);
+ if (task.JobSettings) {
+ protoTask.SetJobSettings(NYT::NodeToYsonString(*task.JobSettings));
+ }
return protoTask;
}
@@ -410,6 +414,9 @@ TTask TaskFromProto(const NProto::TTask& protoTask) {
task.SessionId = protoTask.GetSessionId();
task.NumRetries = protoTask.GetNumRetries();
task.ClusterConnection = ClusterConnectionFromProto(protoTask.GetClusterConnection());
+ if (protoTask.HasJobSettings()) {
+ task.JobSettings = NYT::NodeFromYsonString(protoTask.GetJobSettings());
+ }
return task;
}
diff --git a/yt/yql/providers/yt/fmr/request_options/ya.make b/yt/yql/providers/yt/fmr/request_options/ya.make
index 9e330848c2..df82ec258f 100644
--- a/yt/yql/providers/yt/fmr/request_options/ya.make
+++ b/yt/yql/providers/yt/fmr/request_options/ya.make
@@ -5,6 +5,7 @@ SRCS(
)
PEERDIR(
+ library/cpp/yson/node
library/cpp/threading/future
)
diff --git a/yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.cpp b/yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.cpp
index 319cf20801..0dc3650855 100644
--- a/yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.cpp
+++ b/yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.cpp
@@ -2,8 +2,8 @@
namespace NYql::NFmr {
-TTask::TPtr MakeTask(ETaskType taskType, const TString& taskId, const TTaskParams& taskParams, const TString& sessionId, const TClusterConnection& clusterConnection) {
- return MakeIntrusive<TTask>(taskType, taskId, taskParams, sessionId, clusterConnection);
+TTask::TPtr MakeTask(ETaskType taskType, const TString& taskId, const TTaskParams& taskParams, const TString& sessionId, const TClusterConnection& clusterConnection, const TMaybe<NYT::TNode>& jobSettings) {
+ return MakeIntrusive<TTask>(taskType, taskId, taskParams, sessionId, clusterConnection, jobSettings);
}
TTaskState::TPtr MakeTaskState(ETaskStatus taskStatus, const TString& taskId, const TMaybe<TFmrError>& taskErrorMessage, const TStatistics& stats) {
diff --git a/yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.h b/yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.h
index 2c2e94a057..de18d91fa0 100644
--- a/yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.h
+++ b/yt/yql/providers/yt/fmr/request_options/yql_yt_request_options.h
@@ -1,5 +1,6 @@
#pragma once
+#include <library/cpp/yson/node/node.h>
#include <util/digest/numeric.h>
#include <util/generic/maybe.h>
#include <util/generic/string.h>
@@ -167,8 +168,8 @@ struct TClusterConnection {
struct TTask: public TThrRefBase {
TTask() = default;
- TTask(ETaskType taskType, const TString& taskId, const TTaskParams& taskParams, const TString& sessionId, const TClusterConnection& clusterConnection, ui32 numRetries = 1)
- : TaskType(taskType), TaskId(taskId), TaskParams(taskParams), SessionId(sessionId), ClusterConnection(clusterConnection), NumRetries(numRetries)
+ TTask(ETaskType taskType, const TString& taskId, const TTaskParams& taskParams, const TString& sessionId, const TClusterConnection& clusterConnection, const TMaybe<NYT::TNode> & jobSettings = Nothing(), ui32 numRetries = 1)
+ : TaskType(taskType), TaskId(taskId), TaskParams(taskParams), SessionId(sessionId), ClusterConnection(clusterConnection), JobSettings(jobSettings), NumRetries(numRetries)
{
}
@@ -177,6 +178,7 @@ struct TTask: public TThrRefBase {
TTaskParams TaskParams = {};
TString SessionId;
TClusterConnection ClusterConnection = {};
+ TMaybe<NYT::TNode> JobSettings = {};
ui32 NumRetries; // Not supported yet
using TPtr = TIntrusivePtr<TTask>;
@@ -197,7 +199,7 @@ struct TTaskState: public TThrRefBase {
using TPtr = TIntrusivePtr<TTaskState>;
};
-TTask::TPtr MakeTask(ETaskType taskType, const TString& taskId, const TTaskParams& taskParams, const TString& sessionId, const TClusterConnection& clusterConnection = TClusterConnection{});
+TTask::TPtr MakeTask(ETaskType taskType, const TString& taskId, const TTaskParams& taskParams, const TString& sessionId, const TClusterConnection& clusterConnection = TClusterConnection{}, const TMaybe<NYT::TNode>& jobSettings = Nothing());
TTaskState::TPtr MakeTaskState(ETaskStatus taskStatus, const TString& taskId, const TMaybe<TFmrError>& taskErrorMessage = Nothing(), const TStatistics& stats = TStatistics());
diff --git a/yt/yql/providers/yt/fmr/yt_service/impl/yql_yt_yt_service_impl.cpp b/yt/yql/providers/yt/fmr/yt_service/impl/yql_yt_yt_service_impl.cpp
index c6e535fb71..d618766ede 100644
--- a/yt/yql/providers/yt/fmr/yt_service/impl/yql_yt_yt_service_impl.cpp
+++ b/yt/yql/providers/yt/fmr/yt_service/impl/yql_yt_yt_service_impl.cpp
@@ -28,13 +28,13 @@ public:
NYT::TRawTableWriterPtr MakeWriter(
const TYtTableRef& ytTable,
const TClusterConnection& clusterConnection,
- const TYtWriterSettings& writerSetttings
+ const TYtWriterSettings& /*writerSetttings*/
) override {
auto client = CreateClient(clusterConnection);
auto transaction = client->AttachTransaction(GetGuid(clusterConnection.TransactionId));
- auto path = NYT::TRichYPath(NYT::AddPathPrefix(ytTable.Path, "//"));
- auto richPath = NYT::TRichYPath(path).Append(writerSetttings.AppendMode);
- return transaction->CreateRawWriter(richPath, NYT::TFormat::YsonBinary());
+ TString ytPath = NYT::AddPathPrefix(ytTable.Path, "//");
+ auto richPath = NYT::TRichYPath(ytPath).Append(true);
+ return transaction->CreateRawWriter(richPath, NYT::TFormat::YsonBinary()); // TODO - support writerOptions
}
private:
diff --git a/yt/yql/providers/yt/fmr/yt_service/interface/yql_yt_yt_service.h b/yt/yql/providers/yt/fmr/yt_service/interface/yql_yt_yt_service.h
index 1661c18895..7ed2a47fc0 100644
--- a/yt/yql/providers/yt/fmr/yt_service/interface/yql_yt_yt_service.h
+++ b/yt/yql/providers/yt/fmr/yt_service/interface/yql_yt_yt_service.h
@@ -11,7 +11,6 @@ struct TYtReaderSettings {
};
struct TYtWriterSettings {
- bool AppendMode = true;
};
class IYtService: public TThrRefBase {
diff --git a/yt/yql/providers/yt/gateway/file/yql_yt_file.cpp b/yt/yql/providers/yt/gateway/file/yql_yt_file.cpp
index 529e0806df..429880e66e 100644
--- a/yt/yql/providers/yt/gateway/file/yql_yt_file.cpp
+++ b/yt/yql/providers/yt/gateway/file/yql_yt_file.cpp
@@ -1593,7 +1593,7 @@ private:
}
TClusterConnectionResult GetClusterConnection(const TClusterConnectionOptions&& /*options*/) override {
- ythrow yexception() << "GetClusterConnection should not be called for file gateway";
+ return TClusterConnectionResult();
}
diff --git a/yt/yql/providers/yt/gateway/fmr/ya.make b/yt/yql/providers/yt/gateway/fmr/ya.make
index c424b95d0b..d00a1b6ee4 100644
--- a/yt/yql/providers/yt/gateway/fmr/ya.make
+++ b/yt/yql/providers/yt/gateway/fmr/ya.make
@@ -5,13 +5,16 @@ SRCS(
)
PEERDIR(
+ yql/essentials/providers/common/codec
yql/essentials/utils/log
- yt/cpp/mapreduce/client
+ yt/cpp/mapreduce/common
+ yt/cpp/mapreduce/interface
yt/yql/providers/yt/gateway/lib
yt/yql/providers/yt/gateway/native
yt/yql/providers/yt/expr_nodes
yt/yql/providers/yt/fmr/coordinator/interface
yt/yql/providers/yt/lib/config_clusters
+ yt/yql/providers/yt/lib/schema
yt/yql/providers/yt/provider
)
diff --git a/yt/yql/providers/yt/gateway/fmr/yql_yt_fmr.cpp b/yt/yql/providers/yt/gateway/fmr/yql_yt_fmr.cpp
index aab5bdb6dd..dd5160d07c 100644
--- a/yt/yql/providers/yt/gateway/fmr/yql_yt_fmr.cpp
+++ b/yt/yql/providers/yt/gateway/fmr/yql_yt_fmr.cpp
@@ -2,16 +2,20 @@
#include <thread>
+#include <yt/cpp/mapreduce/common/helpers.h>
#include <yt/cpp/mapreduce/interface/client.h>
#include <yt/yql/providers/yt/expr_nodes/yql_yt_expr_nodes.h>
#include <yt/yql/providers/yt/gateway/lib/yt_helpers.h>
#include <yt/yql/providers/yt/gateway/native/yql_yt_native.h>
+#include <yt/yql/providers/yt/lib/schema/schema.h>
#include <yt/yql/providers/yt/provider/yql_yt_helpers.h>
+#include <yql/essentials/providers/common/codec/yql_codec_type_flags.h>
#include <yql/essentials/utils/log/log.h>
#include <yql/essentials/utils/log/profile.h>
#include <util/generic/ptr.h>
+#include <util/string/split.h>
#include <util/thread/pool.h>
using namespace NThreading;
@@ -27,7 +31,7 @@ enum class ETablePresenceStatus {
Both
};
-struct TDownloadTableToFmrResult: public NCommon::TOperationResult {}; // Download Yt -> Fmr TableDataService
+struct TFmrOperationResult: public NCommon::TOperationResult {};
class TFmrYtGateway final: public TYtForwardingGatewayBase {
public:
@@ -41,7 +45,7 @@ public:
auto getOperationStatusesFunc = [&] {
while (!StopFmrGateway_) {
with_lock(SessionStates_->Mutex) {
- auto checkOperationStatuses = [&] <typename T> (std::unordered_map<TString, TPromise<T>>& operationStatuses, const TString& sessionId) {
+ auto checkOperationStatuses = [&] (std::unordered_map<TString, TPromise<TFmrOperationResult>>& operationStatuses, const TString& sessionId) {
for (auto& [operationId, promise]: operationStatuses) {
YQL_CLOG(TRACE, FastMapReduce) << "Sending get operation request to coordinator with operationId: " << operationId;
@@ -53,9 +57,15 @@ public:
with_lock(SessionStates_->Mutex) {
bool operationCompleted = getOperationStatus != EOperationStatus::Accepted && getOperationStatus != EOperationStatus::InProgress;
if (operationCompleted) {
- // operation finished, set value in future returned in Publish / Download
+ // operation finished, set value in future returned in DoMerge / DoUpload
bool hasCompletedSuccessfully = getOperationStatus == EOperationStatus::Completed;
- SendOperationCompletionSignal(promise, hasCompletedSuccessfully, operationErrorMessages);
+ if (hasCompletedSuccessfully) {
+ TFmrOperationResult fmrOperationResult{};
+ fmrOperationResult.SetSuccess();
+ promise.SetValue(fmrOperationResult);
+ } else {
+ promise.SetException(JoinRange(' ', operationErrorMessages.begin(), operationErrorMessages.end()));
+ }
YQL_CLOG(DEBUG, FastMapReduce) << "Sending delete operation request to coordinator with operationId: " << operationId;
auto deleteOperationFuture = Coordinator_->DeleteOperation({operationId});
deleteOperationFuture.Subscribe([&, sessionId, operationId] (const auto& deleteFuture) {
@@ -66,8 +76,7 @@ public:
YQL_ENSURE( SessionStates_->Sessions.contains(sessionId));
auto& sessionInfo = SessionStates_->Sessions[sessionId];
auto& operationStates = sessionInfo.OperationStates;
- operationStates.DownloadOperationStatuses.erase(operationId);
- operationStates.UploadOperationStatuses.erase(operationId);
+ operationStates.OperationStatuses.erase(operationId);
}
});
}
@@ -78,8 +87,7 @@ public:
for (auto [sessionId, sessionInfo]: SessionStates_->Sessions) {
auto& operationStates = sessionInfo.OperationStates;
- checkOperationStatuses(operationStates.DownloadOperationStatuses, sessionId);
- checkOperationStatuses(operationStates.UploadOperationStatuses, sessionId);
+ checkOperationStatuses(operationStates.OperationStatuses, sessionId);
}
}
Sleep(TimeToSleepBetweenGetOperationRequests_);
@@ -93,138 +101,73 @@ public:
GetOperationStatusesThread_.join();
}
- TFuture<TPublishResult> Publish(const TExprNode::TPtr& node, TExprContext& ctx, TPublishOptions&& options) final {
+ TFuture<TRunResult> Run(const TExprNode::TPtr& node, TExprContext& ctx, TRunOptions&& options) final {
YQL_LOG_CTX_SCOPE(TStringBuf("Gateway"), __FUNCTION__);
- if (!Coordinator_) {
- return Slave_->Publish(node, ctx, std::move(options));
- }
- auto publish = TYtPublish(node);
+ auto nodePos = ctx.GetPosition(node->Pos());
+ TYtOpBase opBase(node);
TString sessionId = options.SessionId();
- auto cluster = publish.DataSink().Cluster().StringValue();
- auto token = options.Config()->Auth.Get();
- TString transformedInputPath;
- TString userName = GetUsername(sessionId);
- for (auto out: publish.Input()) {
- auto outTable = GetOutTable(out).Cast<TYtOutTable>();
- TStringBuf inputPath = outTable.Name().Value();
- transformedInputPath = NYql::TransformPath(GetTablesTmpFolder(*options.Config()), inputPath, true, userName);
- break;
+ if (auto op = opBase.Maybe<TYtMerge>()) {
+ auto ytMerge = op.Cast();
+ std::vector<TYtTableRef> inputTables = GetMergeInputTables(ytMerge);
+ TYtTableRef outputTable = GetMergeOutputTable(ytMerge);
+ auto future = DoMerge(inputTables, outputTable, std::move(options));
+ return future.Apply([this, pos = nodePos, outputTable = std::move(outputTable), options = std::move(options)] (const TFuture<TFmrOperationResult>& f) {
+ try {
+ f.GetValue(); // rethrow error if any
+ TString sessionId = options.SessionId();
+ auto config = options.Config();
+ TString transformedOutputTableId = GetTransformedPath(outputTable.Path, sessionId, config);
+ TString fmrOutputTableId = outputTable.Cluster + "." + transformedOutputTableId;
+ SetTablePresenceStatus(fmrOutputTableId, sessionId, ETablePresenceStatus::OnlyInFmr);
+ TRunResult result;
+ result.OutTableStats.emplace_back(outputTable.Path, MakeIntrusive<TYtTableStatInfo>()); // TODO - add statistics?
+ result.OutTableStats.back().second->Id = "fmr_" + fmrOutputTableId;
+ result.SetSuccess();
+ return MakeFuture<TRunResult>(std::move(result));
+ } catch (...) {
+ return MakeFuture(ResultFromCurrentException<TRunResult>(pos));
+ }
+ });
+ } else {
+ return Slave_->Run(node, ctx, std::move(options));
}
+ }
- // TODO - handle several inputs in Publish, use ColumnGroups, Run Merge
-
- auto outputPath = publish.Publish().Name().StringValue();
- auto idempotencyKey = GenerateId();
+ TFuture<TPublishResult> Publish(const TExprNode::TPtr& node, TExprContext& ctx, TPublishOptions&& options) final {
+ TString sessionId = options.SessionId();
+ YQL_LOG_CTX_SCOPE(TStringBuf("Gateway"), __FUNCTION__);
+ auto nodePos = ctx.GetPosition(node->Pos());
+ auto publish = TYtPublish(node);
- auto fmrTableId = cluster + "." + outputPath;
+ auto cluster = publish.DataSink().Cluster().StringValue();
+ std::vector<TFmrTableRef> fmrTableIds;
+ auto config = options.Config();
- TFuture<TDownloadTableToFmrResult> downloadToFmrFuture;
- TFuture<void> downloadedSuccessfully;
+ std::vector<TFuture<TFmrOperationResult>> uploadFmrTablesToYtFutures;
- with_lock(SessionStates_->Mutex) {
- auto& tablePresenceStatuses = SessionStates_->Sessions[sessionId].TablePresenceStatuses;
+ for (auto out: publish.Input()) {
+ auto outTableWithCluster = GetOutTableWithCluster(out);
+ auto outTable = GetOutTable(out).Cast<TYtOutTable>();
+ TStringBuf inputPath = outTable.Name().Value();
+ TString transformedInputPath = GetTransformedPath(ToString(inputPath), sessionId, config);
+ auto outputBase = out.Operation().Cast<TYtOutputOpBase>().Ptr();
- if (!tablePresenceStatuses.contains(fmrTableId)) {
- TYtTableRef ytTable{.Path = transformedInputPath, .Cluster = cluster};
- TFmrTableRef fmrTable{.TableId = fmrTableId};
- tablePresenceStatuses[fmrTableId] = ETablePresenceStatus::Both;
- downloadToFmrFuture = DownloadToFmrTableDataSerivce(ytTable, fmrTable, sessionId, options.Config());
- downloadedSuccessfully = downloadToFmrFuture.Apply([downloadedSuccessfully] (auto& downloadFuture) {
- auto downloadResult = downloadFuture.GetValueSync();
- });
- } else {
- downloadedSuccessfully = MakeFuture();
- }
+ TFmrTableRef fmrTableRef = TFmrTableRef{outTableWithCluster.second + "." + transformedInputPath};
+ uploadFmrTablesToYtFutures.emplace_back(DoUpload(fmrTableRef, sessionId, config, outputBase, ctx));
}
- downloadedSuccessfully.Wait(); // blocking until download to fmr finishes
-
- TUploadOperationParams uploadOperationParams{
- .Input = TFmrTableRef{fmrTableId},
- .Output = TYtTableRef{outputPath, cluster}
- };
-
- auto clusterConnectionOptions = TClusterConnectionOptions(options.SessionId())
- .Cluster(cluster).Config(options.Config());
- auto clusterConnection = GetClusterConnection(std::move(clusterConnectionOptions));
- YQL_ENSURE(clusterConnection.Success());
-
- TStartOperationRequest uploadRequest{
- .TaskType = ETaskType::Upload,
- .OperationParams = uploadOperationParams,
- .SessionId = sessionId,
- .IdempotencyKey=idempotencyKey,
- .NumRetries=1,
- .ClusterConnection = TClusterConnection{
- .TransactionId = clusterConnection.TransactionId,
- .YtServerName = clusterConnection.YtServerName,
- .Token = clusterConnection.Token
- }
- };
-
- auto promise = NewPromise<TPublishResult>();
- auto future = promise.GetFuture();
- YQL_CLOG(DEBUG, FastMapReduce) << "Starting upload to yt table: " << cluster + "." + outputPath;
- auto uploadOperationResponseFuture = Coordinator_->StartOperation(uploadRequest);
- uploadOperationResponseFuture.Subscribe([this, promise = std::move(promise), sessionId] (const auto& uploadFuture) {
- TStartOperationResponse startOperationResponse = uploadFuture.GetValueSync();
- TString operationId = startOperationResponse.OperationId;
- with_lock(SessionStates_->Mutex) {
- YQL_ENSURE(SessionStates_->Sessions.contains(sessionId));
- auto& operationStates = SessionStates_->Sessions[sessionId].OperationStates;
- auto& uploadOperationStatuses = operationStates.UploadOperationStatuses;
- YQL_ENSURE(!uploadOperationStatuses.contains(operationId));
- uploadOperationStatuses[operationId] = promise;
- }
- });
- return future;
- }
-
- TFuture<TDownloadTableToFmrResult> DownloadToFmrTableDataSerivce(
- const TYtTableRef& ytTableRef, const TFmrTableRef& fmrTableRef, const TString& sessionId, TYtSettings::TConstPtr& config)
- {
- YQL_LOG_CTX_SCOPE(TStringBuf("Gateway"), __FUNCTION__);
- TString fmrTableId = fmrTableRef.TableId;
- TDownloadOperationParams downloadOperationParams{
- .Input = ytTableRef,
- .Output = {fmrTableId}
- };
+ auto outputPath = publish.Publish().Name().StringValue();
auto idempotencyKey = GenerateId();
- auto clusterConnectionOptions = TClusterConnectionOptions(sessionId)
- .Cluster(ytTableRef.Cluster).Config(config);
- auto clusterConnection = GetClusterConnection(std::move(clusterConnectionOptions));
- YQL_ENSURE(clusterConnection.Success());
- TStartOperationRequest downloadRequest{
- .TaskType = ETaskType::Download,
- .OperationParams = downloadOperationParams,
- .SessionId = sessionId,
- .IdempotencyKey = idempotencyKey,
- .NumRetries=1,
- .ClusterConnection = TClusterConnection{
- .TransactionId = clusterConnection.TransactionId,
- .YtServerName = clusterConnection.YtServerName,
- .Token = clusterConnection.Token
- }
- };
- YQL_CLOG(DEBUG, FastMapReduce) << "Starting download from yt table: " << fmrTableId;
-
- auto promise = NewPromise<TDownloadTableToFmrResult>();
- auto future = promise.GetFuture();
-
- auto downloadOperationResponseFuture = Coordinator_->StartOperation(downloadRequest);
- downloadOperationResponseFuture.Subscribe([this, promise = std::move(promise), sessionId] (const auto& downloadFuture) {
- TStartOperationResponse downloadOperationResponse = downloadFuture.GetValueSync();
- TString operationId = downloadOperationResponse.OperationId;
- with_lock(SessionStates_->Mutex) {
- auto& operationStates = SessionStates_->Sessions[sessionId].OperationStates;
- auto& downloadOperationStatuses = operationStates.DownloadOperationStatuses;
- YQL_ENSURE(!downloadOperationStatuses.contains(operationId));
- downloadOperationStatuses[operationId] = promise;
+ return WaitExceptionOrAll(uploadFmrTablesToYtFutures).Apply([&, pos = nodePos, curNode = std::move(node), options = std::move(options)] (const TFuture<void>& f) mutable {
+ try {
+ f.GetValue(); // rethrow error if any
+ return Slave_->Publish(curNode, ctx, std::move(options));
+ } catch (...) {
+ return MakeFuture(ResultFromCurrentException<TPublishResult>(pos));
}
});
- return future;
}
TClusterConnectionResult GetClusterConnection(const TClusterConnectionOptions&& options) override {
@@ -267,29 +210,233 @@ public:
YQL_ENSURE(sessions.contains(sessionId));
auto& operationStates = sessions[sessionId].OperationStates;
- auto cancelOperationsFunc = [&] <typename T> (std::unordered_map<TString, TPromise<T>>& operationStatuses) {
+ auto cancelOperationsFunc = [&] (std::unordered_map<TString, TPromise<TFmrOperationResult>>& operationStatuses) {
std::vector<TFuture<TDeleteOperationResponse>> cancelOperationsFutures;
for (auto& [operationId, promise]: operationStatuses) {
cancelOperationsFutures.emplace_back(Coordinator_->DeleteOperation({operationId}));
}
NThreading::WaitAll(cancelOperationsFutures).GetValueSync();
- for (auto& [operationId, promise]: operationStatuses) {
- SendOperationCompletionSignal(promise, false);
- }
};
- cancelOperationsFunc(operationStates.DownloadOperationStatuses);
- cancelOperationsFunc(operationStates.UploadOperationStatuses);
+ cancelOperationsFunc(operationStates.OperationStatuses);
}
Slave_->CleanupSession(std::move(options)).Wait();
return MakeFuture();
}
private:
+ TString GenerateId() {
+ return GetGuidAsString(RandomProvider_->GenGuid());
+ }
+
+ TString GetUsername(const TString& sessionId) {
+ with_lock(SessionStates_->Mutex) {
+ YQL_ENSURE(SessionStates_->Sessions.contains(sessionId));
+ auto& session = SessionStates_->Sessions[sessionId];
+ return session.UserName;
+ }
+ }
+
+ TString GetTransformedPath(const TString& path, const TString& sessionId, TYtSettings::TConstPtr& config) {
+ TString username = GetUsername(sessionId);
+ return NYql::TransformPath(GetTablesTmpFolder(*config), path, true, username);
+ }
+
+ void SetTablePresenceStatus(const TString& fmrTableId, const TString& sessionId, ETablePresenceStatus newStatus) {
+ with_lock(SessionStates_->Mutex) {
+ auto& tablePresenceStatuses = SessionStates_->Sessions[sessionId].TablePresenceStatuses;
+ tablePresenceStatuses[fmrTableId] = newStatus;
+ }
+ }
+
+ TMaybe<ETablePresenceStatus> GetTablePresenceStatus(const TString& fmrTableId, const TString& sessionId) {
+ with_lock(SessionStates_->Mutex) {
+ auto& tablePresenceStatuses = SessionStates_->Sessions[sessionId].TablePresenceStatuses;
+ if (!tablePresenceStatuses.contains(fmrTableId)) {
+ return Nothing();
+ }
+ return tablePresenceStatuses[fmrTableId];
+ }
+ }
+
+ std::vector<TYtTableRef> GetMergeInputTables(const TYtMerge& ytMerge) {
+ auto input = ytMerge.Maybe<TYtTransientOpBase>().Cast().Input();
+ std::vector<TYtTableRef> inputTables;
+ for (auto section: input.Cast<TYtSectionList>()) {
+ for (auto path: section.Paths()) {
+ TYtPathInfo pathInfo(path);
+ TYtTableRef ytTable{.Path = pathInfo.Table->Name, .Cluster = pathInfo.Table->Cluster};
+ inputTables.emplace_back(ytTable);
+ }
+ }
+ return inputTables;
+ }
+
+ TYtTableRef GetMergeOutputTable(const TYtMerge& ytMerge) {
+ auto output = ytMerge.Maybe<TYtOutputOpBase>().Cast().Output();
+ std::vector<TYtTableRef> outputTables;
+ for (auto table: output) {
+ TYtOutTableInfo tableInfo(table);
+ TString outTableName = tableInfo.Name;
+ if (outTableName.empty()) {
+ outTableName = TStringBuilder() << "tmp/" << GetGuidAsString(RandomProvider_->GenGuid());
+ }
+ outputTables.emplace_back(outTableName, tableInfo.Cluster);
+ }
+ YQL_ENSURE(outputTables.size() == 1);
+ return outputTables[0];
+ }
+
+ TString GetClusterFromMergeTables(const std::vector<TYtTableRef>& inputTables, TYtTableRef& outputTable) {
+ std::unordered_set<TString> clusters;
+ for (auto& [path, cluster]: inputTables) {
+ clusters.emplace(cluster);
+ }
+ YQL_ENSURE(clusters.size() == 1);
+ TString cluster = *clusters.begin();
+ if (outputTable.Cluster) {
+ YQL_ENSURE(outputTable.Cluster == cluster);
+ } else {
+ outputTable.Cluster = cluster;
+ }
+ return cluster;
+ }
+
+ TClusterConnection GetTablesClusterConnection(const TString& cluster, const TString& sessionId, TYtSettings::TConstPtr& config) {
+ auto clusterConnectionOptions = TClusterConnectionOptions(sessionId).Cluster(cluster).Config(config);
+ auto clusterConnection = GetClusterConnection(std::move(clusterConnectionOptions));
+ return TClusterConnection{
+ .TransactionId = clusterConnection.TransactionId,
+ .YtServerName = clusterConnection.YtServerName,
+ .Token = clusterConnection.Token
+ };
+ }
+
+ TFuture<TFmrOperationResult> GetRunningOperationFuture(const TStartOperationRequest& startOperationRequest, const TString& sessionId) {
+ auto promise = NewPromise<TFmrOperationResult>();
+ auto future = promise.GetFuture();
+ auto startOperationResponseFuture = Coordinator_->StartOperation(startOperationRequest);
+ startOperationResponseFuture.Subscribe([this, promise = std::move(promise), sessionId] (const auto& mergeFuture) {
+ TStartOperationResponse mergeOperationResponse = mergeFuture.GetValueSync();
+ TString operationId = mergeOperationResponse.OperationId;
+ with_lock(SessionStates_->Mutex) {
+ auto& operationStates = SessionStates_->Sessions[sessionId].OperationStates;
+ auto& operationStatuses = operationStates.OperationStatuses;
+ YQL_ENSURE(!operationStatuses.contains(operationId));
+ operationStatuses[operationId] = promise;
+ }
+ });
+ return future;
+ }
+
+ TFuture<TFmrOperationResult> DoUpload(const TFmrTableRef& fmrTableRef, const TString& sessionId, TYtSettings::TConstPtr& config, TExprNode::TPtr outputOpBase, TExprContext& ctx) {
+ YQL_LOG_CTX_ROOT_SESSION_SCOPE(sessionId);
+ std::vector<TString> ytTableInfo;
+ StringSplitter(fmrTableRef.TableId).SplitByString(".").AddTo(&ytTableInfo);
+ YQL_ENSURE(ytTableInfo.size() == 2);
+ TString outputCluster = ytTableInfo[0], outputPath = ytTableInfo[1];
+ auto tablePresenceStatus = GetTablePresenceStatus(fmrTableRef.TableId, sessionId);
+ if (!tablePresenceStatus || *tablePresenceStatus != ETablePresenceStatus::OnlyInFmr) {
+ YQL_CLOG(DEBUG, FastMapReduce) << " We assume table " << fmrTableRef.TableId << " should be present in yt, not uploading from fmr";
+ TFmrOperationResult fmrOperationResult = TFmrOperationResult();
+ fmrOperationResult.SetSuccess();
+ return MakeFuture(fmrOperationResult);
+ }
+
+ TUploadOperationParams uploadOperationParams{
+ .Input = fmrTableRef,
+ .Output = TYtTableRef{.Path = outputPath, .Cluster = outputCluster}
+ };
+
+ auto clusterConnection = GetTablesClusterConnection(outputCluster, sessionId, config);
+ TStartOperationRequest uploadRequest{
+ .TaskType = ETaskType::Upload,
+ .OperationParams = uploadOperationParams,
+ .SessionId = sessionId,
+ .IdempotencyKey = GenerateId(),
+ .NumRetries=1,
+ .ClusterConnection = clusterConnection,
+ .FmrOperationSpec = config->FmrOperationSpec.Get(outputCluster)
+ };
+
+ auto prepareOptions = TPrepareOptions(sessionId)
+ .Config(config);
+ auto prepareFuture = Slave_->Prepare(outputOpBase, ctx, std::move(prepareOptions));
+
+ return prepareFuture.Apply([this, uploadRequest = std::move(uploadRequest), sessionId = std::move(sessionId), fmrTableId = std::move(fmrTableRef.TableId)] (const TFuture<TRunResult>& f) {
+ try {
+ f.GetValue(); // rethrow error if any
+ YQL_LOG_CTX_ROOT_SESSION_SCOPE(sessionId);
+ YQL_CLOG(DEBUG, FastMapReduce) << "Starting upload from fmr to yt for table: " << fmrTableId;
+ return GetRunningOperationFuture(uploadRequest, sessionId).Apply([this, sessionId = std::move(sessionId), fmrTableId = std::move(fmrTableId)] (const TFuture<TFmrOperationResult>& f) {
+ try {
+ YQL_LOG_CTX_ROOT_SESSION_SCOPE(sessionId);
+ auto fmrUploadResult = f.GetValue();
+ SetTablePresenceStatus(fmrTableId, sessionId, ETablePresenceStatus::Both);
+ return f;
+ } catch (...) {
+ YQL_CLOG(ERROR, FastMapReduce) << CurrentExceptionMessage();
+ return MakeFuture(ResultFromCurrentException<TFmrOperationResult>());
+ }
+ });
+ } catch (...) {
+ YQL_CLOG(ERROR, FastMapReduce) << CurrentExceptionMessage();
+ return MakeFuture(ResultFromCurrentException<TFmrOperationResult>());
+ }
+ });
+ }
+
+ TFuture<TFmrOperationResult> DoMerge(const std::vector<TYtTableRef>& inputTables, TYtTableRef& outputTable, TRunOptions&& options) {
+ TString sessionId = options.SessionId();
+ YQL_LOG_CTX_ROOT_SESSION_SCOPE(sessionId);
+ YQL_LOG_CTX_SCOPE(TStringBuf("Gateway"), __FUNCTION__);
+ auto cluster = GetClusterFromMergeTables(inputTables, outputTable); // Can set outputTable.Cluster if empty
+
+ TString outputTableId = outputTable.Path, outputCluster = outputTable.Cluster;
+ TString transformedOutputTableId = GetTransformedPath(outputTableId, sessionId, options.Config());
+ TFmrTableRef fmrOutputTable{.TableId = outputCluster + "." + transformedOutputTableId};
+
+ std::vector<TOperationTableRef> mergeInputTables;
+ for (auto& ytTable: inputTables) {
+ TString fmrTableId = ytTable.Cluster + "." + ytTable.Path;
+ auto tablePresenceStatus = GetTablePresenceStatus(fmrTableId, sessionId);
+ if (!tablePresenceStatus) {
+ SetTablePresenceStatus(fmrTableId, sessionId, ETablePresenceStatus::OnlyInYt);
+ }
+
+ if (tablePresenceStatus && *tablePresenceStatus != ETablePresenceStatus::OnlyInYt) {
+ // table is in fmr, do not download
+ mergeInputTables.emplace_back(TFmrTableRef{.TableId = fmrTableId});
+ } else {
+ mergeInputTables.emplace_back(ytTable);
+ }
+ }
+
+ TMergeOperationParams mergeOperationParams{.Input = mergeInputTables,.Output = fmrOutputTable};
+ auto clusterConnection = GetTablesClusterConnection(cluster, sessionId, options.Config());
+ TStartOperationRequest mergeOperationRequest{
+ .TaskType = ETaskType::Merge,
+ .OperationParams = mergeOperationParams,
+ .SessionId = sessionId,
+ .IdempotencyKey = GenerateId(),
+ .NumRetries = 1,
+ .ClusterConnection = clusterConnection,
+ .FmrOperationSpec = options.Config()->FmrOperationSpec.Get(outputCluster)
+ };
+
+ std::vector<TString> inputPaths;
+ std::transform(inputTables.begin(),inputTables.end(), std::back_inserter(inputPaths), [](const TYtTableRef& ytTableRef){
+ return ytTableRef.Path;}
+ );
+
+ YQL_CLOG(DEBUG, FastMapReduce) << "Starting merge from yt tables: " << JoinRange(' ', inputPaths.begin(), inputPaths.end());
+ return GetRunningOperationFuture(mergeOperationRequest, sessionId);
+ }
+
+private:
struct TFmrGatewayOperationsState {
- std::unordered_map<TString, TPromise<TPublishResult>> UploadOperationStatuses = {}; // operationId -> promise which we set when operation completes
- std::unordered_map<TString, TPromise<TDownloadTableToFmrResult>> DownloadOperationStatuses = {};
+ std::unordered_map<TString, TPromise<TFmrOperationResult>> OperationStatuses = {}; // operationId -> promise which we set when operation completes
};
struct TSessionInfo {
@@ -309,31 +456,6 @@ private:
TDuration TimeToSleepBetweenGetOperationRequests_;
std::thread GetOperationStatusesThread_;
std::atomic<bool> StopFmrGateway_;
-
- TString GenerateId() {
- return GetGuidAsString(RandomProvider_->GenGuid());
- }
-
- template <std::derived_from<NCommon::TOperationResult> T>
- void SendOperationCompletionSignal(TPromise<T> promise, bool completedSuccessfully = false, const std::vector<TFmrError>& errorMessages = {}) {
- YQL_ENSURE(!promise.HasValue());
- T commonOperationResult{};
- if (completedSuccessfully) {
- commonOperationResult.SetSuccess();
- } else if (!errorMessages.empty()) {
- auto exception = yexception() << "Operation failed with errors: " << JoinSeq(" ", errorMessages);
- commonOperationResult.SetException(exception);
- }
- promise.SetValue(commonOperationResult);
- }
-
- TString GetUsername(const TString& sessionId) {
- with_lock(SessionStates_->Mutex) {
- YQL_ENSURE(SessionStates_->Sessions.contains(sessionId));
- auto& session = SessionStates_->Sessions[sessionId];
- return session.UserName;
- }
- }
};
} // namespace
diff --git a/yt/yql/providers/yt/gateway/native/yql_yt_native.cpp b/yt/yql/providers/yt/gateway/native/yql_yt_native.cpp
index cb0e35fb78..4f476876b2 100644
--- a/yt/yql/providers/yt/gateway/native/yql_yt_native.cpp
+++ b/yt/yql/providers/yt/gateway/native/yql_yt_native.cpp
@@ -1060,15 +1060,6 @@ public:
}
const bool initial = NYql::HasSetting(publish.Settings().Ref(), EYtSettingType::Initial);
- std::unordered_map<EYtSettingType, TString> strOpts;
- for (const auto& setting : publish.Settings().Ref().Children()) {
- if (setting->ChildrenSize() == 2) {
- strOpts.emplace(FromString<EYtSettingType>(setting->Head().Content()), setting->Tail().Content());
- } else if (setting->ChildrenSize() == 1) {
- strOpts.emplace(FromString<EYtSettingType>(setting->Head().Content()), TString());;
- }
- }
-
YQL_CLOG(INFO, ProviderYt) << "Mode: " << mode << ", IsInitial: " << initial;
TSession::TPtr session = GetSession(options.SessionId());
@@ -1079,15 +1070,35 @@ public:
TVector<TSrcTable> src;
ui64 chunksCount = 0;
ui64 dataSize = 0;
- std::unordered_set<TString> columnGroups;
+ TSet<TString> srcColumnGroupAlts;
+ bool first = true;
+ const TStructExprType* itemType = nullptr;
for (auto out: publish.Input()) {
auto outTableWithCluster = GetOutTableWithCluster(out);
auto outTable = outTableWithCluster.first.Cast<TYtOutTable>();
src.emplace_back(outTable.Name().StringValue(), outTableWithCluster.second);
- if (auto columnGroupSetting = NYql::GetSetting(outTable.Settings().Ref(), EYtSettingType::ColumnGroups)) {
- columnGroups.emplace(columnGroupSetting->Tail().Content());
- } else {
- columnGroups.emplace();
+ if (first) {
+ itemType = GetSeqItemType(*outTable.Ref().GetTypeAnn()).Cast<TStructExprType>();
+ if (auto columnGroupSetting = NYql::GetSetting(outTable.Settings().Ref(), EYtSettingType::ColumnGroups)) {
+ srcColumnGroupAlts.emplace(columnGroupSetting->Tail().Content());
+ TString expanded;
+ if (ExpandDefaultColumnGroup(columnGroupSetting->Tail().Content(), *itemType, expanded)) {
+ srcColumnGroupAlts.insert(expanded);
+ }
+ }
+ first = false;
+ } else if (!srcColumnGroupAlts.empty()) {
+ if (auto columnGroupSetting = NYql::GetSetting(outTable.Settings().Ref(), EYtSettingType::ColumnGroups)) {
+ if (!srcColumnGroupAlts.contains(columnGroupSetting->Tail().Content())) {
+ TString expanded;
+ if (!ExpandDefaultColumnGroup(columnGroupSetting->Tail().Content(), *GetSeqItemType(*outTable.Ref().GetTypeAnn()).Cast<TStructExprType>(), expanded)
+ || !srcColumnGroupAlts.contains(expanded)) {
+ srcColumnGroupAlts.clear();
+ }
+ }
+ } else {
+ srcColumnGroupAlts.clear();
+ }
}
auto stat = TYtTableStatInfo(outTable.Stat());
chunksCount += stat.ChunkCount;
@@ -1099,7 +1110,38 @@ public:
if (src.size() > 10) {
YQL_CLOG(INFO, ProviderYt) << "...total input tables=" << src.size();
}
- TString srcColumnGroups = columnGroups.size() == 1 ? *columnGroups.cbegin() : TString();
+
+ bool forceMerge = false;
+ bool forceTransform = false;
+ std::unordered_map<EYtSettingType, TString> strOpts;
+ for (const auto& setting : publish.Settings().Ref().Children()) {
+ const auto settingType = FromString<EYtSettingType>(setting->Head().Content());
+ if (setting->ChildrenSize() == 2) {
+ TString value = TString{setting->Tail().Content()};
+ if (EYtSettingType::ColumnGroups == settingType) {
+ bool groupDiff = false;
+ if (srcColumnGroupAlts.empty()) {
+ groupDiff = true;
+ } else {
+ if (!srcColumnGroupAlts.contains(value)) {
+ TString expanded;
+ YQL_ENSURE(itemType);
+ if (ExpandDefaultColumnGroup(value, *itemType, expanded)) {
+ value = std::move(expanded);
+ groupDiff = !srcColumnGroupAlts.contains(value);
+ }
+ }
+ }
+ if (groupDiff) {
+ forceMerge = forceTransform = true;
+ YQL_CLOG(INFO, ProviderYt) << "Column groups diff forces merge";
+ }
+ }
+ strOpts.emplace(settingType, value);
+ } else if (setting->ChildrenSize() == 1) {
+ strOpts.emplace(settingType, TString());
+ }
+ }
bool combineChunks = false;
if (auto minChunkSize = options.Config()->MinPublishedAvgChunkSize.Get()) {
@@ -1111,6 +1153,7 @@ public:
YQL_CLOG(INFO, ProviderYt) << "Output: " << cluster << '.' << dst;
if (combineChunks) {
YQL_CLOG(INFO, ProviderYt) << "Use chunks combining";
+ forceMerge = true;
}
if (Services_.Config->GetLocalChainTest()) {
if (!src.empty()) {
@@ -1130,9 +1173,9 @@ public:
const ui32 dstEpoch = TEpochInfo::Parse(publish.Publish().Epoch().Ref()).GetOrElse(0);
auto execCtx = MakeExecCtx(std::move(options), session, cluster, node.Get(), &ctx);
- return session->Queue_->Async([execCtx, src = std::move(src), dst, dstEpoch, isAnonymous, mode, initial, srcColumnGroups, combineChunks, strOpts = std::move(strOpts)] () mutable {
+ return session->Queue_->Async([execCtx, src = std::move(src), dst, dstEpoch, isAnonymous, mode, initial, combineChunks, forceMerge, forceTransform, strOpts = std::move(strOpts)] () mutable {
YQL_LOG_CTX_ROOT_SESSION_SCOPE(execCtx->LogCtx_);
- return ExecPublish(execCtx, std::move(src), dst, dstEpoch, isAnonymous, mode, initial, srcColumnGroups, combineChunks, strOpts);
+ return ExecPublish(execCtx, std::move(src), dst, dstEpoch, isAnonymous, mode, initial, combineChunks, forceMerge, forceTransform, strOpts);
})
.Apply([nodePos] (const TFuture<void>& f) {
try {
@@ -2414,8 +2457,9 @@ private:
const bool isAnonymous,
EYtWriteMode mode,
const bool initial,
- const TString& srcColumnGroups,
const bool combineChunks,
+ bool forceMerge,
+ bool forceTransform,
const std::unordered_map<EYtSettingType, TString>& strOpts)
{
TString tmpFolder = GetTablesTmpFolder(*execCtx->Options_.Config());
@@ -2490,8 +2534,6 @@ private:
);
}
- bool forceMerge = combineChunks;
-
NYT::MergeNodes(yqlAttrs, GetUserAttributes(execCtx->GetEntryForCluster(src.back().Cluster)->Tx, src.back().Name, true));
NYT::MergeNodes(yqlAttrs, YqlOpOptionsToAttrs(execCtx->Session_->OperationOptions_));
if (EYtWriteMode::RenewKeepMeta == mode) {
@@ -2582,8 +2624,6 @@ private:
}
}
- bool forceTransform = false;
-
#define DEFINE_OPT(name, attr, transform) \
auto dst##name = isAnonymous \
? execCtx->Options_.Config()->Temporary##name.Get(cluster) \
@@ -2612,10 +2652,6 @@ private:
NYT::TNode columnGroupsSpec;
if (const auto it = strOpts.find(EYtSettingType::ColumnGroups); it != strOpts.cend() && execCtx->Options_.Config()->OptimizeFor.Get(cluster).GetOrElse(NYT::OF_LOOKUP_ATTR) != NYT::OF_LOOKUP_ATTR) {
columnGroupsSpec = NYT::NodeFromYsonString(it->second);
- if (it->second != srcColumnGroups) {
- forceMerge = forceTransform = true;
- YQL_CLOG(INFO, ProviderYt) << "Column groups diff forces merge, src=" << srcColumnGroups << ", dst=" << it->second;
- }
}
TFuture<void> res;
@@ -2656,7 +2692,7 @@ private:
input = TRichYPath(std::get<0>(*p)).TransactionId(std::get<1>(*p)).OriginalPath(NYT::AddPathPrefix(dstPath, NYT::TConfig::Get()->Prefix)).Columns(columns);
}
} else {
- input = TRichYPath(dstPath).Columns(columns);
+ input = TRichYPath(dstPath).Columns(columns);
}
mergeSpec.AddInput(input);
}
diff --git a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_helper.cpp b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_helper.cpp
index b1836d0019..89758d7b2e 100644
--- a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_helper.cpp
+++ b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_helper.cpp
@@ -678,16 +678,6 @@ TCoLambda FallbackLambdaOutput(TCoLambda lambda, TExprContext& ctx) {
return lambda;
}
-TYtDSink GetDataSink(TExprBase input, TExprContext& ctx) {
- if (auto read = input.Maybe<TCoRight>().Input().Maybe<TYtReadTable>()) {
- return TYtDSink(ctx.RenameNode(read.Cast().DataSource().Ref(), "DataSink"));
- } else if (auto out = input.Maybe<TYtOutput>()) {
- return GetOutputOp(out.Cast()).DataSink();
- } else {
- YQL_ENSURE(false, "Unknown operation input");
- }
-}
-
TYtDSink MakeDataSink(TPositionHandle pos, TStringBuf cluster, TExprContext& ctx) {
return Build<TYtDSink>(ctx, pos)
.Category()
diff --git a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_helper.h b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_helper.h
index 7cd61ba28a..6cb1af8a2c 100644
--- a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_helper.h
+++ b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_helper.h
@@ -49,7 +49,6 @@ NNodes::TCoLambda FallbackLambdaInput(NNodes::TCoLambda lambda, TExprContext& ct
NNodes::TCoLambda FallbackLambdaOutput(NNodes::TCoLambda lambda, TExprContext& ctx);
-NNodes::TYtDSink GetDataSink(NNodes::TExprBase input, TExprContext& ctx);
NNodes::TYtDSink MakeDataSink(TPositionHandle pos, TStringBuf cluster, TExprContext& ctx);
NNodes::TYtDSource MakeDataSource(TPositionHandle pos, TStringBuf cluster, TExprContext& ctx);
diff --git a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_join.cpp b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_join.cpp
index 23dc3d2d67..a59d38fb87 100644
--- a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_join.cpp
+++ b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_join.cpp
@@ -50,7 +50,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::EquiJoin(TExprBase node
} else {
hasYtInput = true;
auto cluster = DeriveClusterFromInput(list, selectionMode);
- if (!UpdateUsedCluster(inputClusters[i], cluster, selectionMode)) {
+ if (!cluster || !UpdateUsedCluster(inputClusters[i], *cluster, selectionMode)) {
return node;
}
}
diff --git a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_map.cpp b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_map.cpp
index 373d8dbf65..efc9ce9916 100644
--- a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_map.cpp
+++ b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_map.cpp
@@ -64,7 +64,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::FlatMap(TExprBase node,
const ERuntimeClusterSelectionMode selectionMode =
State_->Configuration->RuntimeClusterSelection.Get().GetOrElse(DEFAULT_RUNTIME_CLUSTER_SELECTION);
auto cluster = DeriveClusterFromInput(input, selectionMode);
- if (!IsYtCompleteIsolatedLambda(flatMap.Lambda().Ref(), syncList, cluster, false, selectionMode)) {
+ if (!cluster || !IsYtCompleteIsolatedLambda(flatMap.Lambda().Ref(), syncList, *cluster, false, selectionMode)) {
return node;
}
@@ -120,7 +120,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::FlatMap(TExprBase node,
auto ytMap = Build<TYtMap>(ctx, node.Pos())
.World(ApplySyncListToWorld(GetWorld(input, {}, ctx).Ptr(), syncList, ctx))
- .DataSink(GetDataSink(input, ctx))
+ .DataSink(MakeDataSink(node.Pos(), *cluster, ctx))
.Input(ConvertInputTable(input, ctx))
.Output()
.Add(outTables)
@@ -160,7 +160,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::LMap(TExprBase node, TE
const ERuntimeClusterSelectionMode selectionMode =
State_->Configuration->RuntimeClusterSelection.Get().GetOrElse(DEFAULT_RUNTIME_CLUSTER_SELECTION);
auto cluster = DeriveClusterFromInput(lmap.Input(), selectionMode);
- if (!IsYtCompleteIsolatedLambda(lmap.Lambda().Ref(), syncList, cluster, false, selectionMode)) {
+ if (!cluster || !IsYtCompleteIsolatedLambda(lmap.Lambda().Ref(), syncList, *cluster, false, selectionMode)) {
return node;
}
@@ -197,7 +197,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::LMap(TExprBase node, TE
auto map = Build<TYtMap>(ctx, lmap.Pos())
.World(ApplySyncListToWorld(NPrivate::GetWorld(lmap.Input(), {}, ctx).Ptr(), syncList, ctx))
- .DataSink(NPrivate::GetDataSink(lmap.Input(), ctx))
+ .DataSink(MakeDataSink(lmap.Pos(), *cluster, ctx))
.Input(NPrivate::ConvertInputTable(lmap.Input(), ctx))
.Output()
.Add(outTables)
@@ -243,19 +243,22 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::CombineByKey(TExprBase
const ERuntimeClusterSelectionMode selectionMode =
State_->Configuration->RuntimeClusterSelection.Get().GetOrElse(DEFAULT_RUNTIME_CLUSTER_SELECTION);
auto cluster = DeriveClusterFromInput(input, selectionMode);
- if (!IsYtCompleteIsolatedLambda(combineByKey.PreMapLambda().Ref(), syncList, cluster, false, selectionMode)) {
+ if (!cluster) {
return node;
}
- if (!IsYtCompleteIsolatedLambda(combineByKey.KeySelectorLambda().Ref(), syncList, cluster, false, selectionMode)) {
+ if (!IsYtCompleteIsolatedLambda(combineByKey.PreMapLambda().Ref(), syncList, *cluster, false, selectionMode)) {
return node;
}
- if (!IsYtCompleteIsolatedLambda(combineByKey.InitHandlerLambda().Ref(), syncList, cluster, false, selectionMode)) {
+ if (!IsYtCompleteIsolatedLambda(combineByKey.KeySelectorLambda().Ref(), syncList, *cluster, false, selectionMode)) {
return node;
}
- if (!IsYtCompleteIsolatedLambda(combineByKey.UpdateHandlerLambda().Ref(), syncList, cluster, false, selectionMode)) {
+ if (!IsYtCompleteIsolatedLambda(combineByKey.InitHandlerLambda().Ref(), syncList, *cluster, false, selectionMode)) {
return node;
}
- if (!IsYtCompleteIsolatedLambda(combineByKey.FinishHandlerLambda().Ref(), syncList, cluster, false, selectionMode)) {
+ if (!IsYtCompleteIsolatedLambda(combineByKey.UpdateHandlerLambda().Ref(), syncList, *cluster, false, selectionMode)) {
+ return node;
+ }
+ if (!IsYtCompleteIsolatedLambda(combineByKey.FinishHandlerLambda().Ref(), syncList, *cluster, false, selectionMode)) {
return node;
}
@@ -394,7 +397,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::CombineByKey(TExprBase
return Build<TYtOutput>(ctx, combineByKey.Pos())
.Operation<TYtMap>()
.World(ApplySyncListToWorld(GetWorld(input, {}, ctx).Ptr(), syncList, ctx))
- .DataSink(MakeDataSink(combineByKey.Pos(), cluster, ctx))
+ .DataSink(MakeDataSink(combineByKey.Pos(), *cluster, ctx))
.Input(ConvertInputTable(input, ctx))
.Output()
.Add(combineOut.ToExprNode(ctx, combineByKey.Pos()).Cast<TYtOutTable>())
diff --git a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_misc.cpp b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_misc.cpp
index a28693fa81..3b65cedd9f 100644
--- a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_misc.cpp
+++ b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_misc.cpp
@@ -326,7 +326,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::TakeOrSkip(TExprBase no
const ERuntimeClusterSelectionMode selectionMode =
State_->Configuration->RuntimeClusterSelection.Get().GetOrElse(DEFAULT_RUNTIME_CLUSTER_SELECTION);
auto cluster = DeriveClusterFromInput(input, selectionMode);
- if (!IsYtCompleteIsolatedLambda(countBase.Count().Ref(), syncList, cluster, false, selectionMode)) {
+ if (!cluster || !IsYtCompleteIsolatedLambda(countBase.Count().Ref(), syncList, *cluster, false, selectionMode)) {
return node;
}
@@ -937,7 +937,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::UpdateDataSinkCluster(T
return node;
}
- TString cluster = DeriveClusterFromSectionList(op.Input(), selectionMode);
+ TString cluster = GetClusterFromSectionList(op.Input());
if (cluster == op.DataSink().Cluster().Value()) {
return node;
}
@@ -956,7 +956,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::UpdateDataSourceCluster
}
auto op = node.Cast<TYtReadTable>();
- TString cluster = DeriveClusterFromSectionList(op.Input(), ERuntimeClusterSelectionMode::Auto);
+ TString cluster = GetClusterFromSectionList(op.Input());
if (cluster == op.DataSource().Cluster().Value()) {
return node;
}
diff --git a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_partition.cpp b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_partition.cpp
index b2035b5749..11100b77fc 100644
--- a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_partition.cpp
+++ b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_partition.cpp
@@ -40,8 +40,9 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::PartitionByKey(TExprBas
const ERuntimeClusterSelectionMode selectionMode =
State_->Configuration->RuntimeClusterSelection.Get().GetOrElse(DEFAULT_RUNTIME_CLUSTER_SELECTION);
auto cluster = DeriveClusterFromInput(input, selectionMode);
- if (!IsYtCompleteIsolatedLambda(keySelectorLambda.Ref(), syncList, cluster, false, selectionMode)
- || !IsYtCompleteIsolatedLambda(handlerLambda.Ref(), syncList, cluster, false, selectionMode)) {
+ if (!cluster
+ || !IsYtCompleteIsolatedLambda(keySelectorLambda.Ref(), syncList, *cluster, false, selectionMode)
+ || !IsYtCompleteIsolatedLambda(handlerLambda.Ref(), syncList, *cluster, false, selectionMode)) {
return node;
}
@@ -99,7 +100,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::PartitionByKey(TExprBas
}
TCoLambda sortKeySelectorLambda = partByKey.SortKeySelectorLambda().Cast<TCoLambda>();
- if (!IsYtCompleteIsolatedLambda(sortKeySelectorLambda.Ref(), syncList, cluster, false, selectionMode)) {
+ if (!IsYtCompleteIsolatedLambda(sortKeySelectorLambda.Ref(), syncList, *cluster, false, selectionMode)) {
return node;
}
@@ -732,7 +733,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::PartitionByKey(TExprBas
if (canUseReduce) {
auto reduce = Build<TYtReduce>(ctx, node.Pos())
.World(ApplySyncListToWorld(GetWorld(input, {}, ctx).Ptr(), syncList, ctx))
- .DataSink(GetDataSink(input, ctx))
+ .DataSink(MakeDataSink(node.Pos(), *cluster, ctx))
.Input(ConvertInputTable(input, ctx))
.Output()
.Add(ConvertOutTables(node.Pos(), outItemType, ctx, State_, &partByKey.Ref().GetConstraintSet()))
@@ -783,7 +784,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::PartitionByKey(TExprBas
input = Build<TYtOutput>(ctx, node.Pos())
.Operation<TYtMap>()
.World(world)
- .DataSink(GetDataSink(input, ctx))
+ .DataSink(MakeDataSink(node.Pos(), *cluster, ctx))
.Input(ConvertInputTable(input, ctx, TConvertInputOpts().MakeUnordered(unordered)))
.Output()
.Add(ConvertOutTables(node.Pos(), mapOutputType ? mapOutputType : inputItemType, ctx, State_))
@@ -807,7 +808,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::PartitionByKey(TExprBas
input = Build<TYtOutput>(ctx, node.Pos())
.Operation<TYtMerge>()
.World(world)
- .DataSink(GetDataSink(input, ctx))
+ .DataSink(MakeDataSink(node.Pos(), *cluster, ctx))
.Input(ConvertInputTable(input, ctx, opts.MakeUnordered(unordered)))
.Output()
.Add(ConvertOutTables(node.Pos(), inputItemType, ctx, State_))
@@ -832,7 +833,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::PartitionByKey(TExprBas
input = Build<TYtOutput>(ctx, node.Pos())
.Operation<TYtMap>()
.World(world)
- .DataSink(GetDataSink(input, ctx))
+ .DataSink(MakeDataSink(node.Pos(), *cluster, ctx))
.Input(ConvertInputTable(input, ctx, TConvertInputOpts().MakeUnordered(unordered)))
.Output()
.Add(ConvertOutTables(node.Pos(), mapOutputType, ctx, State_))
@@ -861,7 +862,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::PartitionByKey(TExprBas
auto result = Build<TYtMap>(ctx, node.Pos())
.World(ApplySyncListToWorld(world.Ptr(), syncList, ctx))
- .DataSink(GetDataSink(input, ctx))
+ .DataSink(MakeDataSink(node.Pos(), *cluster, ctx))
.Input(ConvertInputTable(input, ctx, TConvertInputOpts().MakeUnordered(unordered)))
.Output()
.Add(ConvertOutTables(node.Pos(), outItemType, ctx, State_, &partByKey.Ref().GetConstraintSet()))
@@ -877,7 +878,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::PartitionByKey(TExprBas
}
auto mapReduce = Build<TYtMapReduce>(ctx, node.Pos())
.World(ApplySyncListToWorld(world.Ptr(), syncList, ctx))
- .DataSink(GetDataSink(input, ctx))
+ .DataSink(MakeDataSink(node.Pos(), *cluster, ctx))
.Input(ConvertInputTable(input, ctx, TConvertInputOpts().MakeUnordered(unordered)))
.Output()
.Add(ConvertOutTables(node.Pos(), outItemType, ctx, State_, &partByKey.Ref().GetConstraintSet()))
diff --git a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_sort.cpp b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_sort.cpp
index 3ba8f17156..51f8b826bb 100644
--- a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_sort.cpp
+++ b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_sort.cpp
@@ -76,7 +76,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::Sort(TExprBase node, TE
auto cluster = DeriveClusterFromInput(sort.Input(), selectionMode);
TSyncMap syncList;
- if (!IsYtCompleteIsolatedLambda(keySelectorLambda.Ref(), syncList, cluster, false, selectionMode)) {
+ if (!cluster || !IsYtCompleteIsolatedLambda(keySelectorLambda.Ref(), syncList, *cluster, false, selectionMode)) {
return node;
}
@@ -136,7 +136,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::Sort(TExprBase node, TE
sortInput = Build<TYtOutput>(ctx, node.Pos())
.Operation<TYtMap>()
.World(world)
- .DataSink(NPrivate::GetDataSink(sort.Input(), ctx))
+ .DataSink(MakeDataSink(node.Pos(), *cluster, ctx))
.Input(NPrivate::ConvertInputTable(sort.Input(), ctx, NPrivate::TConvertInputOpts().MakeUnordered(unordered)))
.Output()
.Add(mapOut.ToExprNode(ctx, node.Pos()).Cast<TYtOutTable>())
@@ -168,7 +168,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::Sort(TExprBase node, TE
sortInput = Build<TYtOutput>(ctx, node.Pos())
.Operation<TYtMerge>()
.World(world)
- .DataSink(NPrivate::GetDataSink(sort.Input(), ctx))
+ .DataSink(MakeDataSink(node.Pos(), *cluster, ctx))
.Input(NPrivate::ConvertInputTable(sort.Input(), ctx, opts.MakeUnordered(unordered)))
.Output()
.Add(mergeOut.ToExprNode(ctx, node.Pos()).Cast<TYtOutTable>())
@@ -219,7 +219,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::Sort(TExprBase node, TE
auto res = canUseMerge ?
TExprBase(Build<TYtMerge>(ctx, node.Pos())
.World(world)
- .DataSink(NPrivate::GetDataSink(sortInput, ctx))
+ .DataSink(MakeDataSink(node.Pos(), *cluster, ctx))
.Input(NPrivate::ConvertInputTable(sortInput, ctx, opts.ClearUnordered()))
.Output()
.Add(sortOut.ToExprNode(ctx, node.Pos()).Cast<TYtOutTable>())
@@ -234,7 +234,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::Sort(TExprBase node, TE
.Done()):
TExprBase(Build<TYtSort>(ctx, node.Pos())
.World(world)
- .DataSink(NPrivate::GetDataSink(sortInput, ctx))
+ .DataSink(MakeDataSink(node.Pos(), *cluster, ctx))
.Input(NPrivate::ConvertInputTable(sortInput, ctx, opts.MakeUnordered(unordered)))
.Output()
.Add(sortOut.ToExprNode(ctx, node.Pos()).Cast<TYtOutTable>())
@@ -475,6 +475,10 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::AssumeConstraints(TExpr
return assume;
}
+ const ERuntimeClusterSelectionMode selectionMode =
+ State_->Configuration->RuntimeClusterSelection.Get().GetOrElse(DEFAULT_RUNTIME_CLUSTER_SELECTION);
+ auto cluster = DeriveClusterFromInput(input, selectionMode);
+
auto sorted = assume.Ref().GetConstraint<TSortedConstraintNode>();
auto maybeOp = input.Maybe<TYtOutput>().Operation();
@@ -559,7 +563,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::AssumeConstraints(TExpr
return Build<TYtOutput>(ctx, assume.Pos())
.Operation<TYtMerge>()
.World(GetWorld(input, {}, ctx))
- .DataSink(GetDataSink(input, ctx))
+ .DataSink(MakeDataSink(assume.Pos(), *cluster, ctx))
.Input(ConvertInputTable(input, ctx, opts))
.Output()
.Add(outTable.ToExprNode(ctx, assume.Pos()).Cast<TYtOutTable>())
@@ -620,7 +624,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::AssumeConstraints(TExpr
return Build<TYtOutput>(ctx, assume.Pos())
.Operation<TYtMap>()
.World(GetWorld(input, {}, ctx))
- .DataSink(GetDataSink(input, ctx))
+ .DataSink(MakeDataSink(assume.Pos(), *cluster, ctx))
.Input(ConvertInputTable(input, ctx))
.Output()
.Add(outTable.ToExprNode(ctx, assume.Pos()).Cast<TYtOutTable>())
diff --git a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_write.cpp b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_write.cpp
index 0cd3a828fb..d64d795d94 100644
--- a/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_write.cpp
+++ b/yt/yql/providers/yt/provider/phy_opt/yql_yt_phy_opt_write.cpp
@@ -342,9 +342,12 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::Write(TExprBase node, T
auto cluster = TString{write.DataSink().Cluster().Value()};
const auto selectionMode = State_->Configuration->RuntimeClusterSelection.Get().GetOrElse(DEFAULT_RUNTIME_CLUSTER_SELECTION);
const auto srcCluster = DeriveClusterFromInput(write.Content(), selectionMode);
- if (selectionMode == ERuntimeClusterSelectionMode::Disable && cluster != srcCluster) {
+ if (!srcCluster) {
+ return node;
+ }
+ if (selectionMode == ERuntimeClusterSelectionMode::Disable && cluster != *srcCluster) {
ctx.AddError(TIssue(ctx.GetPosition(node.Pos()), TStringBuilder()
- << "Result from cluster " << TString{srcCluster}.Quote()
+ << "Result from cluster " << srcCluster->Quote()
<< " cannot be written to a different destination cluster " << cluster.Quote()));
return {};
}
@@ -599,12 +602,12 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::ReplaceStatWriteTable(T
const ERuntimeClusterSelectionMode selectionMode =
State_->Configuration->RuntimeClusterSelection.Get().GetOrElse(DEFAULT_RUNTIME_CLUSTER_SELECTION);
+ TString cluster;
if (!IsYtProviderInput(input, false)) {
if (!EnsurePersistable(input.Ref(), ctx)) {
return {};
}
- TString cluster;
TSyncMap syncList;
if (!IsYtCompleteIsolatedLambda(input.Ref(), syncList, cluster, false, selectionMode)) {
return node;
@@ -660,10 +663,15 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::ReplaceStatWriteTable(T
auto section = read.Input().Item(0);
auto scheme = section.Ptr()->GetTypeAnn()->Cast<TListExprType>()->GetItemType();
+ auto srcCluster = DeriveClusterFromInput(input, selectionMode);
+ if (!srcCluster) {
+ return node;
+ }
+ cluster = *srcCluster;
auto path = CopyOrTrivialMap(section.Pos(),
GetWorld(input, {}, ctx),
- GetDataSink(input, ctx),
+ MakeDataSink(section.Pos(), cluster, ctx),
*scheme,
Build<TYtSection>(ctx, section.Pos())
.InitFrom(section)
@@ -693,7 +701,7 @@ TMaybeNode<TExprBase> TYtPhysicalOptProposalTransformer::ReplaceStatWriteTable(T
return Build<TYtStatOut>(ctx, write.Pos())
.World(GetWorld(input, {}, ctx))
- .DataSink(GetDataSink(input, ctx))
+ .DataSink(MakeDataSink(write.Pos(), cluster, ctx))
.Input(newInput.Cast())
.Table(table)
.ReplaceMask(write.ReplaceMask())
diff --git a/yt/yql/providers/yt/provider/yql_yt_datasink_exec.cpp b/yt/yql/providers/yt/provider/yql_yt_datasink_exec.cpp
index 2d7e0ce5b5..05e0ca5caa 100644
--- a/yt/yql/providers/yt/provider/yql_yt_datasink_exec.cpp
+++ b/yt/yql/providers/yt/provider/yql_yt_datasink_exec.cpp
@@ -606,12 +606,16 @@ private:
);
}
- TStatusCallbackPair HandleYtDqProcessWrite(const TExprNode::TPtr& input, TExprContext& ctx) {
+ TStatusCallbackPair HandleYtDqProcessWrite(const TExprNode::TPtr& input, TExprNode::TPtr& output, TExprContext& ctx) {
const TYtDqProcessWrite op(input);
const auto section = op.Output().Cast<TYtOutSection>();
Y_ENSURE(section.Size() == 1, "TYtDqProcessWrite expects 1 output table but got " << section.Size());
const TYtOutTable tmpTable = section.Item(0);
+ if (AssignRuntimeCluster(op, output, ctx)) {
+ return SyncRepeatWithRestart();
+ }
+
if (!input->HasResult()) {
if (!tmpTable.Name().Value().empty()) {
ctx.AddError(TIssue(ctx.GetPosition(section.Pos()), TStringBuilder() << "Incomplete execution of "
diff --git a/yt/yql/providers/yt/provider/yql_yt_datasink_type_ann.cpp b/yt/yql/providers/yt/provider/yql_yt_datasink_type_ann.cpp
index 1e93f1bf93..789b821fc4 100644
--- a/yt/yql/providers/yt/provider/yql_yt_datasink_type_ann.cpp
+++ b/yt/yql/providers/yt/provider/yql_yt_datasink_type_ann.cpp
@@ -441,19 +441,6 @@ private:
}
const bool initialWrite = NYql::HasSetting(settings, EYtSettingType::Initial);
const bool monotonicKeys = NYql::HasSetting(settings, EYtSettingType::MonotonicKeys);
- TString columnGroup;
- TSet<TString> columnGroupAlts;
- if (auto setting = NYql::GetSetting(settings, EYtSettingType::ColumnGroups)) {
- if (!ValidateColumnGroups(*setting, *itemType->Cast<TStructExprType>(), ctx)) {
- return TStatus::Error;
- }
- columnGroup = setting->Tail().Content();
- columnGroupAlts.insert(columnGroup);
- TString exandedSpec;
- if (ExpandDefaultColumnGroup(setting->Tail().Content(), *itemType->Cast<TStructExprType>(), exandedSpec)) {
- columnGroupAlts.insert(std::move(exandedSpec));
- }
- }
if (!initialWrite && mode != EYtWriteMode::Append) {
ctx.AddError(TIssue(pos, TStringBuilder() <<
@@ -587,8 +574,22 @@ private:
<< GetTypeDiff(*description.RowType, *itemType)));
return TStatus::Error;
}
+ }
- if (!columnGroupAlts.empty() && !AnyOf(columnGroupAlts, [&](const auto& grp) { return description.ColumnGroupSpecAlts.contains(grp); })) {
+ TString columnGroup;
+ TSet<TString> columnGroupAlts;
+ // Check and expand column groups _after_ type alignment (TryConvertTo)
+ if (auto setting = NYql::GetSetting(settings, EYtSettingType::ColumnGroups)) {
+ if (!ValidateColumnGroups(*setting, *itemType->Cast<TStructExprType>(), ctx)) {
+ return TStatus::Error;
+ }
+ columnGroup = setting->Tail().Content();
+ columnGroupAlts.insert(columnGroup);
+ TString exandedSpec;
+ if (ExpandDefaultColumnGroup(setting->Tail().Content(), *itemType->Cast<TStructExprType>(), exandedSpec)) {
+ columnGroupAlts.insert(std::move(exandedSpec));
+ }
+ if (checkLayout && !AnyOf(columnGroupAlts, [&](const auto& grp) { return description.ColumnGroupSpecAlts.contains(grp); })) {
ctx.AddError(TIssue(pos, TStringBuilder()
<< "Insert with different "
<< ToString(EYtSettingType::ColumnGroups).Quote()
diff --git a/yt/yql/providers/yt/provider/yql_yt_helpers.cpp b/yt/yql/providers/yt/provider/yql_yt_helpers.cpp
index 60428c7f64..887b57d204 100644
--- a/yt/yql/providers/yt/provider/yql_yt_helpers.cpp
+++ b/yt/yql/providers/yt/provider/yql_yt_helpers.cpp
@@ -374,12 +374,14 @@ TExprNode::TPtr ToOutTable(TYtOutput output, TExprContext& ctx) {
.Done().Ptr();
}
-TString DeriveClusterFromSection(const NNodes::TYtSection& section, ERuntimeClusterSelectionMode mode) {
+TMaybe<TString> DeriveClusterFromSection(const NNodes::TYtSection& section, ERuntimeClusterSelectionMode mode) {
TString result;
for (const auto& path : section.Paths()) {
auto info = TYtTableBaseInfo::Parse(path.Table());
YQL_ENSURE(info->Cluster, "Unexpected TYtOutTable in input section");
- YQL_ENSURE(UpdateUsedCluster(result, info->Cluster, mode));
+ if (!UpdateUsedCluster(result, info->Cluster, mode)) {
+ return {};
+ }
}
return result;
}
@@ -387,22 +389,32 @@ TString DeriveClusterFromSection(const NNodes::TYtSection& section, ERuntimeClus
} // unnamed
TString GetClusterFromSection(const NNodes::TYtSection& section) {
- return DeriveClusterFromSection(section, ERuntimeClusterSelectionMode::Auto);
+ auto result = DeriveClusterFromSection(section, ERuntimeClusterSelectionMode::Auto);
+ YQL_ENSURE(result);
+ return *result;
}
TString GetClusterFromSectionList(const NNodes::TYtSectionList& sectionList) {
- return DeriveClusterFromSectionList(sectionList, ERuntimeClusterSelectionMode::Auto);
+ auto result = DeriveClusterFromSectionList(sectionList, ERuntimeClusterSelectionMode::Auto);
+ YQL_ENSURE(result);
+ return *result;
}
-TString DeriveClusterFromSectionList(const NNodes::TYtSectionList& sectionList, ERuntimeClusterSelectionMode mode) {
+TMaybe<TString> DeriveClusterFromSectionList(const NNodes::TYtSectionList& sectionList, ERuntimeClusterSelectionMode mode) {
TString result;
for (const auto& section : sectionList) {
- YQL_ENSURE(UpdateUsedCluster(result, DeriveClusterFromSection(section, mode), mode));
+ auto sectionCluster = DeriveClusterFromSection(section, mode);
+ if (!sectionCluster.Defined()) {
+ return {};
+ }
+ if (!UpdateUsedCluster(result, *sectionCluster, mode)) {
+ return {};
+ }
}
return result;
}
-TString DeriveClusterFromInput(const NNodes::TExprBase& input, ERuntimeClusterSelectionMode mode) {
+TMaybe<TString> DeriveClusterFromInput(const NNodes::TExprBase& input, ERuntimeClusterSelectionMode mode) {
if (auto read = input.Maybe<TCoRight>().Input().Maybe<TYtReadTable>()) {
return DeriveClusterFromSectionList(read.Cast().Input(), mode);
} else if (auto output = input.Maybe<TYtOutput>()) {
diff --git a/yt/yql/providers/yt/provider/yql_yt_helpers.h b/yt/yql/providers/yt/provider/yql_yt_helpers.h
index 218885159c..9eaa4b4aeb 100644
--- a/yt/yql/providers/yt/provider/yql_yt_helpers.h
+++ b/yt/yql/providers/yt/provider/yql_yt_helpers.h
@@ -21,10 +21,14 @@ namespace NYql {
constexpr TStringBuf YtUnspecifiedCluster = "$runtime";
+// Equivalent to Derive* with mode=Auto
TString GetClusterFromSection(const NNodes::TYtSection& section);
TString GetClusterFromSectionList(const NNodes::TYtSectionList& sectionList);
-TString DeriveClusterFromSectionList(const NNodes::TYtSectionList& sectionList, ERuntimeClusterSelectionMode mode);
-TString DeriveClusterFromInput(const NNodes::TExprBase& input, ERuntimeClusterSelectionMode mode);
+
+// Derive cluster according to mode. Will return empty optional for mode=Disable if input contains multiple clusters
+TMaybe<TString> DeriveClusterFromSectionList(const NNodes::TYtSectionList& sectionList, ERuntimeClusterSelectionMode mode);
+TMaybe<TString> DeriveClusterFromInput(const NNodes::TExprBase& input, ERuntimeClusterSelectionMode mode);
+
TString GetRuntimeCluster(const TExprNode& op, const TYtState::TPtr& state);
bool UpdateUsedCluster(TString& usedCluster, const TString& newCluster, ERuntimeClusterSelectionMode mode);
diff --git a/yt/yql/providers/yt/provider/yql_yt_logical_optimize.cpp b/yt/yql/providers/yt/provider/yql_yt_logical_optimize.cpp
index c3fb88db5a..5d78e98fae 100644
--- a/yt/yql/providers/yt/provider/yql_yt_logical_optimize.cpp
+++ b/yt/yql/providers/yt/provider/yql_yt_logical_optimize.cpp
@@ -332,6 +332,9 @@ protected:
const ERuntimeClusterSelectionMode selectionMode =
State_->Configuration->RuntimeClusterSelection.Get().GetOrElse(DEFAULT_RUNTIME_CLUSTER_SELECTION);
auto cluster = DeriveClusterFromInput(input, selectionMode);
+ if (!cluster) {
+ return node;
+ }
for (auto handler: aggregate.Handlers()) {
auto trait = handler.Trait();
@@ -346,12 +349,12 @@ protected:
t.FinishHandler(),
};
for (auto lambda : lambdas) {
- if (!IsYtCompleteIsolatedLambda(lambda.Ref(), syncList, cluster, false, selectionMode)) {
+ if (!IsYtCompleteIsolatedLambda(lambda.Ref(), syncList, *cluster, false, selectionMode)) {
return node;
}
}
} else if (trait.Ref().IsCallable("AggApply")) {
- if (!IsYtCompleteIsolatedLambda(*trait.Ref().Child(2), syncList, cluster, false, selectionMode)) {
+ if (!IsYtCompleteIsolatedLambda(*trait.Ref().Child(2), syncList, *cluster, false, selectionMode)) {
return node;
}
}
diff --git a/yt/yql/tests/sql/suites/multicluster/map_force.cfg b/yt/yql/tests/sql/suites/multicluster/map_force.cfg
new file mode 100644
index 0000000000..0d0b05747b
--- /dev/null
+++ b/yt/yql/tests/sql/suites/multicluster/map_force.cfg
@@ -0,0 +1,4 @@
+providers yt
+res result.txt
+in plato.PInput input1.txt
+in banach.Unused input2.txt
diff --git a/yt/yql/tests/sql/suites/multicluster/map_force.sql b/yt/yql/tests/sql/suites/multicluster/map_force.sql
new file mode 100644
index 0000000000..6df51bcf08
--- /dev/null
+++ b/yt/yql/tests/sql/suites/multicluster/map_force.sql
@@ -0,0 +1,6 @@
+/* postgres can not */
+/* yt can not */
+pragma yt.RuntimeCluster='banach';
+pragma yt.RuntimeClusterSelection='force';
+
+select key || "0" as key0, subkey from plato.PInput where subkey != "3";
diff --git a/yt/yql/tests/sql/suites/multicluster/partition_by_key_force.cfg b/yt/yql/tests/sql/suites/multicluster/partition_by_key_force.cfg
new file mode 100644
index 0000000000..0d0b05747b
--- /dev/null
+++ b/yt/yql/tests/sql/suites/multicluster/partition_by_key_force.cfg
@@ -0,0 +1,4 @@
+providers yt
+res result.txt
+in plato.PInput input1.txt
+in banach.Unused input2.txt
diff --git a/yt/yql/tests/sql/suites/multicluster/partition_by_key_force.sql b/yt/yql/tests/sql/suites/multicluster/partition_by_key_force.sql
new file mode 100644
index 0000000000..67239c3f27
--- /dev/null
+++ b/yt/yql/tests/sql/suites/multicluster/partition_by_key_force.sql
@@ -0,0 +1,9 @@
+/* postgres can not */
+/* yt can not */
+pragma yt.RuntimeCluster='banach';
+pragma yt.RuntimeClusterSelection='force';
+
+select key, max(subkey) as msk from plato.PInput group by key;
+
+select max(key) as mk from plato.PInput;
+
diff --git a/yt/yql/tests/sql/suites/multicluster/sort_force.cfg b/yt/yql/tests/sql/suites/multicluster/sort_force.cfg
new file mode 100644
index 0000000000..0d0b05747b
--- /dev/null
+++ b/yt/yql/tests/sql/suites/multicluster/sort_force.cfg
@@ -0,0 +1,4 @@
+providers yt
+res result.txt
+in plato.PInput input1.txt
+in banach.Unused input2.txt
diff --git a/yt/yql/tests/sql/suites/multicluster/sort_force.sql b/yt/yql/tests/sql/suites/multicluster/sort_force.sql
new file mode 100644
index 0000000000..074905f3d1
--- /dev/null
+++ b/yt/yql/tests/sql/suites/multicluster/sort_force.sql
@@ -0,0 +1,8 @@
+/* postgres can not */
+/* yt can not */
+pragma yt.RuntimeCluster='banach';
+pragma yt.RuntimeClusterSelection='force';
+
+select * from plato.PInput
+order by key, subkey;
+
diff --git a/yt/yt/client/api/client.cpp b/yt/yt/client/api/client.cpp
index 8eff6f8d3f..b7e4e876d1 100644
--- a/yt/yt/client/api/client.cpp
+++ b/yt/yt/client/api/client.cpp
@@ -12,6 +12,7 @@ namespace NYT::NApi {
using namespace NConcurrency;
using namespace NYTree;
+using namespace NYson;
////////////////////////////////////////////////////////////////////////////////
@@ -19,43 +20,49 @@ static constexpr auto& Logger = ApiLogger;
////////////////////////////////////////////////////////////////////////////////
-std::optional<std::string> TClusterAwareClientBase::GetClusterName(bool fetchIfNull)
+TFuture<std::optional<std::string>> TClusterAwareClientBase::GetClusterName(bool fetchIfNull)
{
{
auto guard = ReaderGuard(SpinLock_);
if (ClusterName_) {
- return ClusterName_;
+ return MakeFuture(ClusterName_);
}
}
auto clusterName = GetConnection()->GetClusterName();
- if (fetchIfNull && !clusterName) {
- clusterName = FetchClusterNameFromMasterCache();
- }
-
- if (!clusterName) {
- return {};
+ if (clusterName) {
+ auto guard = WriterGuard(SpinLock_);
+ ClusterName_ = clusterName;
+ return MakeFuture(ClusterName_);
}
- auto guard = WriterGuard(SpinLock_);
- if (!ClusterName_) {
- ClusterName_ = clusterName;
+ if (!fetchIfNull) {
+ return MakeFuture<std::optional<std::string>>({});
}
- return ClusterName_;
+ return FetchClusterNameFromMasterCache().Apply(
+ BIND([this, this_ = MakeStrong(this)] (const std::optional<std::string>& clusterName) -> std::optional<std::string> {
+ auto guard = WriterGuard(SpinLock_);
+ ClusterName_ = clusterName;
+ return ClusterName_;
+ }));
}
-std::optional<std::string> TClusterAwareClientBase::FetchClusterNameFromMasterCache()
+TFuture<std::optional<std::string>> TClusterAwareClientBase::FetchClusterNameFromMasterCache()
{
TGetNodeOptions options;
options.ReadFrom = EMasterChannelKind::MasterCache;
- auto clusterNameYsonOrError = WaitFor(GetNode(ClusterNamePath, options));
- if (!clusterNameYsonOrError.IsOK()) {
- YT_LOG_WARNING(clusterNameYsonOrError, "Could not fetch cluster name from from master cache (Path: %v)",
- ClusterNamePath);
- return {};
- }
- return ConvertTo<std::string>(clusterNameYsonOrError.Value());
+
+ return GetNode(ClusterNamePath, options).Apply(
+ BIND([] (const TErrorOr<TYsonString>& clusterNameYsonOrError) -> std::optional<std::string> {
+ if (!clusterNameYsonOrError.IsOK()) {
+ YT_LOG_WARNING(clusterNameYsonOrError, "Could not fetch cluster name from from master cache (Path: %v)",
+ ClusterNamePath);
+ return {};
+ }
+
+ return ConvertTo<std::string>(clusterNameYsonOrError.Value());
+ }));
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt/client/api/client.h b/yt/yt/client/api/client.h
index d0ada67e69..823e37ad39 100644
--- a/yt/yt/client/api/client.h
+++ b/yt/yt/client/api/client.h
@@ -84,7 +84,7 @@ struct IClient
virtual const NChaosClient::IReplicationCardCachePtr& GetReplicationCardCache() = 0;
virtual const NTransactionClient::ITimestampProviderPtr& GetTimestampProvider() = 0;
- virtual std::optional<std::string> GetClusterName(bool fetchIfNull = true) = 0;
+ virtual TFuture<std::optional<std::string>> GetClusterName(bool fetchIfNull = true) = 0;
};
DEFINE_REFCOUNTED_TYPE(IClient)
@@ -103,13 +103,13 @@ public:
//! NB: Descendants of this class should be able to perform GetNode calls,
//! so this cannot be used directly in tablet transactions.
//! Use the transaction's parent client instead.
- std::optional<std::string> GetClusterName(bool fetchIfNull) override;
+ TFuture<std::optional<std::string>> GetClusterName(bool fetchIfNull) override;
private:
YT_DECLARE_SPIN_LOCK(NThreading::TReaderWriterSpinLock, SpinLock_);
std::optional<std::string> ClusterName_;
- std::optional<std::string> FetchClusterNameFromMasterCache();
+ TFuture<std::optional<std::string>> FetchClusterNameFromMasterCache();
};
////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt/client/api/delegating_client.h b/yt/yt/client/api/delegating_client.h
index ca2e945220..f04c210842 100644
--- a/yt/yt/client/api/delegating_client.h
+++ b/yt/yt/client/api/delegating_client.h
@@ -23,7 +23,7 @@ public:
// IClientBase methods
DELEGATE_METHOD(IConnectionPtr, GetConnection, (), ())
- DELEGATE_METHOD(std::optional<std::string>, GetClusterName,
+ DELEGATE_METHOD(TFuture<std::optional<std::string>>, GetClusterName,
(bool fetchIfNull),
(fetchIfNull))
diff --git a/yt/yt/client/api/rpc_proxy/client_base.cpp b/yt/yt/client/api/rpc_proxy/client_base.cpp
index b6db71e2c5..359c814011 100644
--- a/yt/yt/client/api/rpc_proxy/client_base.cpp
+++ b/yt/yt/client/api/rpc_proxy/client_base.cpp
@@ -254,7 +254,7 @@ TFuture<TYsonString> TClientBase::GetNode(
// COMPAT(max42): after 22.3 is everywhere, drop legacy field.
if (options.Attributes) {
- ToProto(req->mutable_legacy_attributes()->mutable_keys(), options.Attributes.Keys);
+ ToProto(req->mutable_legacy_attributes()->mutable_keys(), options.Attributes.Keys());
ToProto(req->mutable_attributes(), options.Attributes);
} else {
req->mutable_legacy_attributes()->set_all(true);
@@ -290,7 +290,7 @@ TFuture<TYsonString> TClientBase::ListNode(
// COMPAT(max42): after 22.3 is everywhere, drop legacy field.
if (options.Attributes) {
- ToProto(req->mutable_legacy_attributes()->mutable_keys(), options.Attributes.Keys);
+ ToProto(req->mutable_legacy_attributes()->mutable_keys(), options.Attributes.Keys());
ToProto(req->mutable_attributes(), options.Attributes);
} else {
req->mutable_legacy_attributes()->set_all(true);
diff --git a/yt/yt/client/driver/distributed_table_commands.cpp b/yt/yt/client/driver/distributed_table_commands.cpp
index 4942408318..0f26f86cbf 100644
--- a/yt/yt/client/driver/distributed_table_commands.cpp
+++ b/yt/yt/client/driver/distributed_table_commands.cpp
@@ -46,9 +46,9 @@ void TStartDistributedWriteSessionCommand::DoExecute(ICommandContextPtr context)
auto sessionAndCookies = WaitFor(context->GetClient()->StartDistributedWriteSession(Path, Options))
.ValueOrThrow();
- signatureGenerator->Sign(sessionAndCookies.Session.Underlying());
+ signatureGenerator->Resign(sessionAndCookies.Session.Underlying());
for (const auto& cookie : sessionAndCookies.Cookies) {
- signatureGenerator->Sign(cookie.Underlying());
+ signatureGenerator->Resign(cookie.Underlying());
}
ProduceOutput(context, [sessionAndCookies = std::move(sessionAndCookies)] (IYsonConsumer* consumer) {
@@ -146,7 +146,7 @@ void TWriteTableFragmentCommand::DoExecute(ICommandContextPtr context)
auto writer = DynamicPointerCast<NApi::ITableFragmentWriter>(TableWriter);
auto signedWriteResult = writer->GetWriteFragmentResult();
- context->GetDriver()->GetSignatureGenerator()->Sign(signedWriteResult.Underlying());
+ context->GetDriver()->GetSignatureGenerator()->Resign(signedWriteResult.Underlying());
ProduceOutput(context, [result = std::move(signedWriteResult)] (IYsonConsumer* consumer) {
Serialize(
diff --git a/yt/yt/client/driver/driver.cpp b/yt/yt/client/driver/driver.cpp
index 11c96e1335..0fa6393238 100644
--- a/yt/yt/client/driver/driver.cpp
+++ b/yt/yt/client/driver/driver.cpp
@@ -537,8 +537,8 @@ private:
TClientCachePtr ClientCache_;
const IClientPtr RootClient_;
IProxyDiscoveryCachePtr ProxyDiscoveryCache_;
- ISignatureGeneratorPtr SignatureGenerator_;
- ISignatureValidatorPtr SignatureValidator_;
+ const ISignatureGeneratorPtr SignatureGenerator_;
+ const ISignatureValidatorPtr SignatureValidator_;
class TCommandContext;
using TCommandContextPtr = TIntrusivePtr<TCommandContext>;
diff --git a/yt/yt/client/driver/table_commands.cpp b/yt/yt/client/driver/table_commands.cpp
index 6a2d4eb19c..e31b6e43f2 100644
--- a/yt/yt/client/driver/table_commands.cpp
+++ b/yt/yt/client/driver/table_commands.cpp
@@ -528,7 +528,7 @@ void TPartitionTablesCommand::DoExecute(ICommandContextPtr context)
for (auto& partition : partitions.Partitions) {
if (partition.Cookie) {
- context->GetDriver()->GetSignatureGenerator()->Sign(partition.Cookie.Underlying());
+ context->GetDriver()->GetSignatureGenerator()->Resign(partition.Cookie.Underlying());
}
}
diff --git a/yt/yt/client/federated/client.cpp b/yt/yt/client/federated/client.cpp
index ffce8ff06c..2a07474aaa 100644
--- a/yt/yt/client/federated/client.cpp
+++ b/yt/yt/client/federated/client.cpp
@@ -342,7 +342,7 @@ public:
return client->GetConnection();
}
- std::optional<std::string> GetClusterName(bool fetchIfNull) override
+ TFuture<std::optional<std::string>> GetClusterName(bool fetchIfNull) override
{
auto [client, _] = GetActiveClient();
return client->GetClusterName(fetchIfNull);
@@ -637,7 +637,7 @@ void TClient::CheckClustersHealth()
const auto& check = checks[index];
auto error = NConcurrency::WaitFor(check);
YT_LOG_DEBUG_UNLESS(error.IsOK(), error, "Cluster %Qv is marked as unhealthy",
- UnderlyingClients_[index]->Client->GetClusterName(/*fetchIfNull*/ false));
+ UnderlyingClients_[index]->Client->GetConnection()->GetClusterName());
UnderlyingClients_[index]->HasErrors = !error.IsOK()
&& !error.FindMatching(NSecurityClient::EErrorCode::AuthorizationError); // Ignore authorization errors.
}
diff --git a/yt/yt/client/federated/unittests/client_ut.cpp b/yt/yt/client/federated/unittests/client_ut.cpp
index 5caba8db1a..baa69dc45d 100644
--- a/yt/yt/client/federated/unittests/client_ut.cpp
+++ b/yt/yt/client/federated/unittests/client_ut.cpp
@@ -21,6 +21,7 @@ using namespace NYT::NApi;
using ::testing::_;
using ::testing::AnyNumber;
using ::testing::Return;
+using ::testing::ReturnRef;
using ::testing::StrictMock;
using TStrictMockClient = StrictMock<NApi::TMockClient>;
@@ -172,9 +173,14 @@ TEST(TFederatedClientTest, CheckHealth)
auto mockClientSas = New<TStrictMockClient>();
+ auto mockConnectionVla = New<TStrictMockConnection>();
+ std::optional<std::string> clusterName("vla-cluster");
+ EXPECT_CALL(*mockConnectionVla, GetClusterName())
+ .WillRepeatedly(ReturnRef(clusterName));
+
auto mockClientVla = New<TStrictMockClient>();
- EXPECT_CALL(*mockClientVla, GetClusterName(_))
- .Times(AnyNumber());
+ EXPECT_CALL(*mockClientVla, GetConnection())
+ .WillRepeatedly(Return(mockConnectionVla));
// To identify best (closest) cluster.
NYson::TYsonString listResult1(TStringBuf(R"(["a-rpc-proxy-a.sas.yp-c.yandex.net:9013"])"));
@@ -462,17 +468,25 @@ TEST(TFederatedClientTest, AttachTransaction)
auto mockConnectionSas = New<TStrictMockConnection>();
EXPECT_CALL(*mockConnectionSas, GetClusterTag())
.WillRepeatedly(Return(NObjectClient::TCellTag(123)));
+ std::optional<std::string> clusterNameSas = "cluster-sas";
+ EXPECT_CALL(*mockConnectionSas, GetClusterName())
+ .WillRepeatedly(ReturnRef(clusterNameSas));
EXPECT_CALL(*mockClientSas, GetConnection())
- .WillOnce(Return(mockConnectionSas));
+ .WillRepeatedly(Return(mockConnectionSas));
auto mockConnectionVla = New<TStrictMockConnection>();
EXPECT_CALL(*mockConnectionVla, GetClusterTag())
.WillRepeatedly(Return(NObjectClient::TCellTag(456)));
+ std::optional<std::string> clusterNameVla = "cluster-vla";
+ EXPECT_CALL(*mockConnectionVla, GetClusterName())
+ .WillRepeatedly(ReturnRef(clusterNameVla));
+ EXPECT_CALL(*mockClientVla, GetConnection())
+ .WillRepeatedly(Return(mockConnectionVla));
// Creation of federated client.
std::vector<IClientPtr> clients{mockClientSas, mockClientVla};
auto config = New<TFederationConfig>();
- config->ClusterHealthCheckPeriod = TDuration::Seconds(5);
+ config->ClusterHealthCheckPeriod = TDuration::Seconds(1);
auto federatedClient = CreateClient(clients, config);
// Wait initialization.
diff --git a/yt/yt/client/hedging/hedging.cpp b/yt/yt/client/hedging/hedging.cpp
index b6f7e294da..5ea0675af6 100644
--- a/yt/yt/client/hedging/hedging.cpp
+++ b/yt/yt/client/hedging/hedging.cpp
@@ -66,10 +66,10 @@ public:
return Executor_->GetClient(0)->GetConnection();
}
- std::optional<std::string> GetClusterName(bool fetchIfNull = true) override
+ TFuture<std::optional<std::string>> GetClusterName(bool fetchIfNull = true) override
{
Y_UNUSED(fetchIfNull);
- return {};
+ return MakeFuture<std::optional<std::string>>({});
}
RETRYABLE_METHOD(TFuture<TUnversionedLookupRowsResult>, LookupRows, (const TYPath&, NTableClient::TNameTablePtr, const TSharedRange<NTableClient::TUnversionedRow>&, const TLookupRowsOptions&));
diff --git a/yt/yt/client/queue_client/consumer_client.cpp b/yt/yt/client/queue_client/consumer_client.cpp
index d3d8a7cb22..cccac4b318 100644
--- a/yt/yt/client/queue_client/consumer_client.cpp
+++ b/yt/yt/client/queue_client/consumer_client.cpp
@@ -672,12 +672,13 @@ ISubConsumerClientPtr CreateSubConsumerClient(
{
auto queueCluster = queuePath.GetCluster();
if (!queueCluster && queueClusterClient) {
- if (auto queueClusterFromClient = queueClusterClient->GetClusterName()) {
+ // `CreateSubConsumerClient` function calls `WaitFor` already, it will be fixed later.
+ if (auto queueClusterFromClient = WaitFor(queueClusterClient->GetClusterName()).ValueOrThrow()) {
queueCluster = *queueClusterFromClient;
}
}
if (!queueCluster) {
- if (auto clientCluster = consumerClusterClient->GetClusterName()) {
+ if (auto clientCluster = WaitFor(consumerClusterClient->GetClusterName()).ValueOrThrow()) {
queueCluster = *clientCluster;
}
}
diff --git a/yt/yt/client/scheduler/public.h b/yt/yt/client/scheduler/public.h
index 74a89e058c..4e3c22af5c 100644
--- a/yt/yt/client/scheduler/public.h
+++ b/yt/yt/client/scheduler/public.h
@@ -161,6 +161,7 @@ DEFINE_ENUM(EAbortReason,
((AddressResolveFailed) ( 57))
((UnexpectedNodeJobPhase) ( 58))
((JobCountChangedByUserRequest) ( 59))
+ ((NbdErrors) ( 60))
((SchedulingFirst) (100))
((SchedulingTimeout) (101))
((SchedulingResourceOvercommit) (102))
diff --git a/yt/yt/client/signature/generator.cpp b/yt/yt/client/signature/generator.cpp
index 33a431a5ab..799b64e620 100644
--- a/yt/yt/client/signature/generator.cpp
+++ b/yt/yt/client/signature/generator.cpp
@@ -10,25 +10,38 @@ using namespace NYson;
////////////////////////////////////////////////////////////////////////////////
-TSignaturePtr ISignatureGenerator::Sign(std::string payload)
+TSignaturePtr ISignatureGenerator::Sign(std::string payload) const
{
auto signature = New<TSignature>();
signature->Payload_ = std::move(payload);
- Sign(signature);
+ Resign(signature);
return signature;
}
////////////////////////////////////////////////////////////////////////////////
+namespace {
+
struct TDummySignatureGenerator
: public ISignatureGenerator
{
- void Sign(const TSignaturePtr& signature) override
+ void Resign(const TSignaturePtr& /*signature*/) const final
+ { }
+};
+
+struct TAlwaysThrowingSignatureGenerator
+ : public ISignatureGenerator
+{
+ void Resign(const TSignaturePtr& /*signature*/) const final
{
- signature->Header_ = NYson::TYsonString("DummySignature"_sb);
+ THROW_ERROR_EXCEPTION("Signature generation is unsupported");
}
};
+} // namespace
+
+////////////////////////////////////////////////////////////////////////////////
+
ISignatureGeneratorPtr CreateDummySignatureGenerator()
{
return New<TDummySignatureGenerator>();
@@ -40,17 +53,6 @@ const ISignatureGeneratorPtr& GetDummySignatureGenerator()
return signatureGenerator;
}
-////////////////////////////////////////////////////////////////////////////////
-
-struct TAlwaysThrowingSignatureGenerator
- : public ISignatureGenerator
-{
- void Sign(const TSignaturePtr& /*signature*/) override
- {
- THROW_ERROR_EXCEPTION("Signature generation is unsupported");
- }
-};
-
ISignatureGeneratorPtr CreateAlwaysThrowingSignatureGenerator()
{
return New<TAlwaysThrowingSignatureGenerator>();
diff --git a/yt/yt/client/signature/generator.h b/yt/yt/client/signature/generator.h
index 771288af7f..93aeb9f409 100644
--- a/yt/yt/client/signature/generator.h
+++ b/yt/yt/client/signature/generator.h
@@ -13,9 +13,9 @@ struct ISignatureGenerator
{
//! Fills out the Signature_ and Header_ fields in a given TSignature
//! based on its payload.
- virtual void Sign(const TSignaturePtr& signature) = 0;
+ virtual void Resign(const TSignaturePtr& signature) const = 0;
- [[nodiscard]] TSignaturePtr Sign(std::string payload);
+ [[nodiscard]] TSignaturePtr Sign(std::string payload) const;
};
DEFINE_REFCOUNTED_TYPE(ISignatureGenerator)
diff --git a/yt/yt/client/signature/signature.cpp b/yt/yt/client/signature/signature.cpp
index b7b26d25ec..4e59711add 100644
--- a/yt/yt/client/signature/signature.cpp
+++ b/yt/yt/client/signature/signature.cpp
@@ -25,11 +25,9 @@ void Serialize(const TSignature& signature, IYsonConsumer* consumer)
{
consumer->OnBeginMap();
BuildYsonMapFragmentFluently(consumer)
- .Item("header").Value(signature.Header_.ToString())
+ .Item("header").Value((signature.Header_ ? signature.Header_.ToString() : ""))
.Item("payload").Value(signature.Payload_)
- .Item("signature").Value(TStringBuf(
- reinterpret_cast<const char*>(signature.Signature_.data()),
- signature.Signature_.size()));
+ .Item("signature").Value(signature.Signature_);
consumer->OnEndMap();
}
@@ -40,12 +38,7 @@ void Deserialize(TSignature& signature, INodePtr node)
auto mapNode = node->AsMap();
signature.Header_ = TYsonString(mapNode->GetChildValueOrThrow<TString>("header"));
signature.Payload_ = mapNode->GetChildValueOrThrow<std::string>("payload");
-
- auto signatureString = mapNode->GetChildValueOrThrow<std::string>("signature");
- auto signatureBytes = std::as_bytes(std::span(signatureString));
- signature.Signature_.resize(signatureBytes.size());
-
- std::copy(signatureBytes.begin(), signatureBytes.end(), signature.Signature_.begin());
+ signature.Signature_ = mapNode->GetChildValueOrThrow<std::string>("signature");
}
void Deserialize(TSignature& signature, TYsonPullParserCursor* cursor)
diff --git a/yt/yt/client/signature/signature.h b/yt/yt/client/signature/signature.h
index a9bbaf8660..bab9dcab38 100644
--- a/yt/yt/client/signature/signature.h
+++ b/yt/yt/client/signature/signature.h
@@ -25,16 +25,12 @@ public:
private:
NYson::TYsonString Header_;
std::string Payload_;
- std::vector<std::byte> Signature_;
+ std::string Signature_;
friend struct ISignatureGenerator;
- friend struct TDummySignatureGenerator;
- friend struct TAlwaysThrowingSignatureGenerator;
friend class TSignatureGenerator;
friend struct ISignatureValidator;
- friend struct TDummySignatureValidator;
- friend struct TAlwaysThrowingSignatureValidator;
friend class TSignatureValidator;
friend void Serialize(const TSignature& signature, NYson::IYsonConsumer* consumer);
diff --git a/yt/yt/client/signature/unittests/dummy_ut.cpp b/yt/yt/client/signature/unittests/dummy_ut.cpp
index 364717473e..7034efd6cb 100644
--- a/yt/yt/client/signature/unittests/dummy_ut.cpp
+++ b/yt/yt/client/signature/unittests/dummy_ut.cpp
@@ -17,26 +17,16 @@ using namespace NYson;
using namespace NYTree;
const auto YsonSignature = TYsonString(
- R"({"header"="DummySignature";"payload"="payload";"signature"="";})"_sb);
+ R"({"header"="DummySignature";"payload"="payload";"signature"="abacaba";})"_sb);
////////////////////////////////////////////////////////////////////////////////
TEST(TDummySignatureGeneratorTest, Generate)
{
auto generator = CreateDummySignatureGenerator();
- auto signature = generator->Sign("payload");
- EXPECT_EQ(ConvertToYsonString(signature, EYsonFormat::Text), YsonSignature);
- generator->Sign(signature);
- EXPECT_EQ(ConvertToYsonString(signature, EYsonFormat::Text), YsonSignature);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-TEST(TDummySignatureValidatorTest, ValidateGood)
-{
auto signature = ConvertTo<TSignaturePtr>(YsonSignature);
- auto validator = CreateDummySignatureValidator();
- EXPECT_TRUE(validator->Validate(signature).Get().Value());
+ generator->Resign(signature);;
+ EXPECT_EQ(ConvertToYsonString(signature, EYsonFormat::Text).ToString(), YsonSignature.ToString());
}
////////////////////////////////////////////////////////////////////////////////
@@ -54,7 +44,7 @@ TEST(TDummySignatureValidatorTest, GenerateValidate)
TEST(TAlwaysThrowingSignatureGeneratorTest, Generate)
{
auto generator = CreateAlwaysThrowingSignatureGenerator();
- EXPECT_THROW_WITH_SUBSTRING(generator->Sign(New<TSignature>()), "unsupported");
+ EXPECT_THROW_WITH_SUBSTRING(generator->Resign(New<TSignature>()), "unsupported");
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt/client/signature/validator.cpp b/yt/yt/client/signature/validator.cpp
index aebc42d488..e4a25a3bdd 100644
--- a/yt/yt/client/signature/validator.cpp
+++ b/yt/yt/client/signature/validator.cpp
@@ -8,32 +8,35 @@ namespace NYT::NSignature {
////////////////////////////////////////////////////////////////////////////////
+namespace {
+
struct TDummySignatureValidator
: public ISignatureValidator
{
- TFuture<bool> Validate(const TSignaturePtr& signature) override
+ TFuture<bool> Validate(const TSignaturePtr& /*signature*/) const final
{
- YT_VERIFY(signature->Header_.ToString() == "DummySignature");
return TrueFuture;
}
};
-ISignatureValidatorPtr CreateDummySignatureValidator()
-{
- return New<TDummySignatureValidator>();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
struct TAlwaysThrowingSignatureValidator
: public ISignatureValidator
{
- TFuture<bool> Validate(const TSignaturePtr& /*signature*/) override
+ TFuture<bool> Validate(const TSignaturePtr& /*signature*/) const final
{
THROW_ERROR_EXCEPTION("Signature validation is unsupported");
}
};
+} // namespace
+
+////////////////////////////////////////////////////////////////////////////////
+
+ISignatureValidatorPtr CreateDummySignatureValidator()
+{
+ return New<TDummySignatureValidator>();
+}
+
ISignatureValidatorPtr CreateAlwaysThrowingSignatureValidator()
{
return New<TAlwaysThrowingSignatureValidator>();
diff --git a/yt/yt/client/signature/validator.h b/yt/yt/client/signature/validator.h
index 94425001d3..72777f9475 100644
--- a/yt/yt/client/signature/validator.h
+++ b/yt/yt/client/signature/validator.h
@@ -13,7 +13,7 @@ namespace NYT::NSignature {
struct ISignatureValidator
: public TRefCounted
{
- virtual TFuture<bool> Validate(const TSignaturePtr& signature) = 0;
+ virtual TFuture<bool> Validate(const TSignaturePtr& signature) const = 0;
};
DEFINE_REFCOUNTED_TYPE(ISignatureValidator)
diff --git a/yt/yt/client/unittests/mock/client.h b/yt/yt/client/unittests/mock/client.h
index 254f08dd90..8a5f8b7bdf 100644
--- a/yt/yt/client/unittests/mock/client.h
+++ b/yt/yt/client/unittests/mock/client.h
@@ -38,7 +38,7 @@ public:
MOCK_METHOD(IConnectionPtr, GetConnection, (), (override));
- MOCK_METHOD(std::optional<std::string>, GetClusterName, (bool fetchIfNull), (override));
+ MOCK_METHOD(TFuture<std::optional<std::string>>, GetClusterName, (bool fetchIfNull), (override));
MOCK_METHOD(TFuture<ITransactionPtr>, StartTransaction, (
NTransactionClient::ETransactionType type,
diff --git a/yt/yt/core/actions/invoker_util.h b/yt/yt/core/actions/invoker_util.h
index 0b020c3f6b..a5dd251fa7 100644
--- a/yt/yt/core/actions/invoker_util.h
+++ b/yt/yt/core/actions/invoker_util.h
@@ -1,12 +1,17 @@
#pragma once
+#include "invoker.h"
#include "public.h"
-#include <yt/yt/core/concurrency/scheduler_api.h>
+#include <yt/yt/core/actions/bind.h>
namespace NYT {
////////////////////////////////////////////////////////////////////////////////
+// Forward declaration
+IInvoker* GetCurrentInvoker();
+
+////////////////////////////////////////////////////////////////////////////////
//! Returns the synchronous-ish invoker that defers recurrent action invocation.
/*!
diff --git a/yt/yt/core/actions/unittests/future_ut.cpp b/yt/yt/core/actions/unittests/future_ut.cpp
index de1f661e1d..e27136c092 100644
--- a/yt/yt/core/actions/unittests/future_ut.cpp
+++ b/yt/yt/core/actions/unittests/future_ut.cpp
@@ -5,6 +5,7 @@
#include <yt/yt/core/actions/invoker_util.h>
#include <yt/yt/core/concurrency/action_queue.h>
+#include <yt/yt/core/concurrency/scheduler_api.h>
#include <yt/yt/core/misc/ref_counted_tracker.h>
#include <yt/yt/core/misc/mpsc_stack.h>
diff --git a/yt/yt/core/actions/unittests/invoker_ut.cpp b/yt/yt/core/actions/unittests/invoker_ut.cpp
index be43a0b3d7..8460a78471 100644
--- a/yt/yt/core/actions/unittests/invoker_ut.cpp
+++ b/yt/yt/core/actions/unittests/invoker_ut.cpp
@@ -6,6 +6,7 @@
#include <yt/yt/core/misc/finally.h>
#include <yt/yt/core/concurrency/action_queue.h>
+#include <yt/yt/core/concurrency/scheduler_api.h>
#include <yt/yt/core/concurrency/thread_pool.h>
#include <yt/yt/library/profiling/public.h>
diff --git a/yt/yt/core/concurrency/fair_share_action_queue.cpp b/yt/yt/core/concurrency/fair_share_action_queue.cpp
index ef00551028..e90347d81a 100644
--- a/yt/yt/core/concurrency/fair_share_action_queue.cpp
+++ b/yt/yt/core/concurrency/fair_share_action_queue.cpp
@@ -4,6 +4,7 @@
#include "profiling_helpers.h"
#include "system_invokers.h"
+#include <yt/yt/core/actions/bind.h>
#include <yt/yt/core/actions/invoker_util.h>
#include <yt/yt/core/actions/invoker_detail.h>
diff --git a/yt/yt/core/concurrency/fiber_scheduler_thread.cpp b/yt/yt/core/concurrency/fiber_scheduler_thread.cpp
index 228b9629d9..073e8d4007 100644
--- a/yt/yt/core/concurrency/fiber_scheduler_thread.cpp
+++ b/yt/yt/core/concurrency/fiber_scheduler_thread.cpp
@@ -8,6 +8,7 @@
#include <yt/yt/library/profiling/producer.h>
#include <yt/yt/core/actions/invoker_util.h>
+#include <yt/yt/core/concurrency/scheduler_api.h>
#include <yt/yt/core/misc/finally.h>
#include <yt/yt/core/misc/shutdown.h>
diff --git a/yt/yt/core/concurrency/thread_pool_detail.cpp b/yt/yt/core/concurrency/thread_pool_detail.cpp
index 36cd128bee..f0d9a23181 100644
--- a/yt/yt/core/concurrency/thread_pool_detail.cpp
+++ b/yt/yt/core/concurrency/thread_pool_detail.cpp
@@ -4,6 +4,7 @@
#include "private.h"
#include <yt/yt/core/actions/invoker_util.h>
+#include <yt/yt/core/concurrency/scheduler_api.h>
#include <algorithm>
diff --git a/yt/yt/core/concurrency/unittests/bounded_concurrency_invoker_ut.cpp b/yt/yt/core/concurrency/unittests/bounded_concurrency_invoker_ut.cpp
index 5a22f97430..163eee1f26 100644
--- a/yt/yt/core/concurrency/unittests/bounded_concurrency_invoker_ut.cpp
+++ b/yt/yt/core/concurrency/unittests/bounded_concurrency_invoker_ut.cpp
@@ -3,6 +3,7 @@
#include <yt/yt/core/actions/future.h>
#include <yt/yt/core/concurrency/action_queue.h>
+#include <yt/yt/core/concurrency/scheduler_api.h>
#include <yt/yt/core/logging/log.h>
diff --git a/yt/yt/core/concurrency/unittests/invoker_pool_ut.cpp b/yt/yt/core/concurrency/unittests/invoker_pool_ut.cpp
index 498f18ecc5..23fe1158ce 100644
--- a/yt/yt/core/concurrency/unittests/invoker_pool_ut.cpp
+++ b/yt/yt/core/concurrency/unittests/invoker_pool_ut.cpp
@@ -1,6 +1,7 @@
#include <yt/yt/core/test_framework/framework.h>
#include <yt/yt/core/concurrency/action_queue.h>
+#include <yt/yt/core/concurrency/scheduler_api.h>
#include <yt/yt/core/actions/invoker.h>
#include <yt/yt/core/actions/invoker_detail.h>
diff --git a/yt/yt/core/concurrency/unittests/scheduled_executor_ut.cpp b/yt/yt/core/concurrency/unittests/scheduled_executor_ut.cpp
index f0573463c6..6c52861a28 100644
--- a/yt/yt/core/concurrency/unittests/scheduled_executor_ut.cpp
+++ b/yt/yt/core/concurrency/unittests/scheduled_executor_ut.cpp
@@ -5,6 +5,7 @@
#include <yt/yt/core/concurrency/action_queue.h>
#include <yt/yt/core/concurrency/delayed_executor.h>
#include <yt/yt/core/concurrency/scheduled_executor.h>
+#include <yt/yt/core/concurrency/scheduler_api.h>
#include <atomic>
diff --git a/yt/yt/core/http/compression.cpp b/yt/yt/core/http/compression.cpp
index e719f54262..17e7a24872 100644
--- a/yt/yt/core/http/compression.cpp
+++ b/yt/yt/core/http/compression.cpp
@@ -5,6 +5,7 @@
#include <yt/yt/core/ytree/serialize.h>
#include <yt/yt/core/compression/dictionary_codec.h>
+#include <yt/yt/core/concurrency/scheduler_api.h>
#include <library/cpp/streams/brotli/brotli.h>
diff --git a/yt/yt/core/misc/error.cpp b/yt/yt/core/misc/error.cpp
index d316d8d579..6601358f75 100644
--- a/yt/yt/core/misc/error.cpp
+++ b/yt/yt/core/misc/error.cpp
@@ -2,6 +2,7 @@
#include "serialize.h"
#include <yt/yt/core/concurrency/fls.h>
+#include <yt/yt/core/concurrency/scheduler_api.h>
#include <yt/yt/core/net/local_address.h>
diff --git a/yt/yt/core/misc/fs.cpp b/yt/yt/core/misc/fs.cpp
index 17ebc4b0db..b14d33e6bd 100644
--- a/yt/yt/core/misc/fs.cpp
+++ b/yt/yt/core/misc/fs.cpp
@@ -6,6 +6,7 @@
#include <yt/yt/core/misc/proc.h>
#include <yt/yt/core/actions/invoker_util.h>
+#include <yt/yt/core/concurrency/scheduler_api.h>
#include <library/cpp/yt/system/handle_eintr.h>
#include <library/cpp/yt/system/exit.h>
diff --git a/yt/yt/core/misc/range_helpers-inl.h b/yt/yt/core/misc/range_helpers-inl.h
index 6f9e054d23..aba43b32a6 100644
--- a/yt/yt/core/misc/range_helpers-inl.h
+++ b/yt/yt/core/misc/range_helpers-inl.h
@@ -95,6 +95,20 @@ auto TransformRangeTo(TRange&& range, TTransformFunction&& function)
std::forward<TTransformFunction>(function)));
}
+template <std::ranges::range TRange, class TOperation, class TProjection>
+auto FoldRange(TRange&& range, TOperation operation, TProjection projection)
+{
+ auto iter = range.begin();
+ if (iter == range.end()) {
+ return std::remove_cvref_t<decltype(std::invoke(projection, *iter))>{};
+ }
+ auto accumulator = std::invoke(projection, *iter);
+ for (++iter; iter != range.end(); ++iter) {
+ accumulator = std::invoke(operation, accumulator, std::invoke(projection, *iter));
+ }
+ return accumulator;
+}
+
////////////////////////////////////////////////////////////////////////////////
} // namespace NYT
diff --git a/yt/yt/core/misc/range_helpers.h b/yt/yt/core/misc/range_helpers.h
index c59fc54f77..5df2f63c3c 100644
--- a/yt/yt/core/misc/range_helpers.h
+++ b/yt/yt/core/misc/range_helpers.h
@@ -18,7 +18,7 @@ template <std::ranges::range... TRanges>
auto ZipMutable(TRanges&&... ranges);
//! Converts the provided range to the specified container.
-//! This is a simplified equivalent of std::ranges::to from range-v3.
+//! This is a simplified equivalent of std::ranges::to from ranges-v3.
template <class TContainer, std::ranges::input_range TRange>
auto RangeTo(TRange&& range);
@@ -26,6 +26,10 @@ auto RangeTo(TRange&& range);
template <class TContainer, std::ranges::input_range TRange, class TTransformFunction>
auto TransformRangeTo(TRange&& range, TTransformFunction&& function);
+//! An equivalent of std::ranges::fold_left from ranges-v3.
+template <std::ranges::range TRange, class TOperation, class TProjection = std::identity>
+auto FoldRange(TRange&& range, TOperation operation, TProjection projection = {});
+
////////////////////////////////////////////////////////////////////////////////
} // namespace NYT
diff --git a/yt/yt/core/misc/unittests/range_helpers_ut.cpp b/yt/yt/core/misc/unittests/range_helpers_ut.cpp
index 19a2031034..4c38374f75 100644
--- a/yt/yt/core/misc/unittests/range_helpers_ut.cpp
+++ b/yt/yt/core/misc/unittests/range_helpers_ut.cpp
@@ -50,5 +50,17 @@ TEST(TRangeHelpersTest, RangeToString)
////////////////////////////////////////////////////////////////////////////////
+TEST(TRangeHelpersTest, Fold)
+{
+ EXPECT_EQ(0, FoldRange(std::vector<int>{}, std::plus{}));
+ EXPECT_EQ(6, FoldRange(std::vector<int>{1, 2, 3}, std::plus{}));
+ EXPECT_EQ(5, FoldRange(
+ std::vector<std::vector<int>>{{1, 2}, {3, 4, 5}},
+ std::plus{},
+ std::ranges::ssize));
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
} // namespace
} // namespace NYT
diff --git a/yt/yt/core/yson/protobuf_interop-inl.h b/yt/yt/core/yson/protobuf_interop-inl.h
index 6f7d630002..6f7d3585ad 100644
--- a/yt/yt/core/yson/protobuf_interop-inl.h
+++ b/yt/yt/core/yson/protobuf_interop-inl.h
@@ -4,6 +4,8 @@
#include "protobuf_interop.h"
#endif
+#include <library/cpp/yt/error/error.h>
+
namespace NYT::NYson {
////////////////////////////////////////////////////////////////////////////////
@@ -17,13 +19,6 @@ const TProtobufMessageType* ReflectProtobufMessageType()
////////////////////////////////////////////////////////////////////////////////
-namespace NDetail {
-
-////////////////////////////////////////////////////////////////////////////////
-
-template <CProtobufElement TElementType>
-consteval std::string_view GetProtobufElementTypeName();
-
#define MAP_PROTOBUF_ELEMENT_TYPE_NAME(elementType, name) \
template <> \
consteval std::string_view GetProtobufElementTypeName<elementType>() \
@@ -40,22 +35,26 @@ MAP_PROTOBUF_ELEMENT_TYPE_NAME(TProtobufAnyElement, "any")
#undef MAP_PROTOBUF_ELEMENT_TYPE_NAME
-std::string_view GetProtobufElementTypeName(const NYson::TProtobufElement& element);
-
////////////////////////////////////////////////////////////////////////////////
-} // namespace NDetail
-
-////////////////////////////////////////////////////////////////////////////////
+template <class... U>
+auto VisitProtobufElement(const TProtobufElement& element, U&&... visitorOverloads)
+{
+ TOverloaded visitor{std::forward<U>(visitorOverloads)...};
+ return Visit(element, [&] <CProtobufElement TElement> (const std::unique_ptr<TElement>& element) {
+ YT_VERIFY(element);
+ return visitor(*element);
+ });
+}
template <CProtobufElement TElementType>
-const TElementType& GetProtobufElementOrThrow(const NYson::TProtobufElement& element)
+const TElementType& GetProtobufElementOrThrow(const TProtobufElement& element)
{
const auto* result = std::get_if<std::unique_ptr<TElementType>>(&element);
THROW_ERROR_EXCEPTION_UNLESS(result,
"Expected protobuf element of type %Qv, but got of type %Qv",
- NDetail::GetProtobufElementTypeName<TElementType>(),
- NDetail::GetProtobufElementTypeName(element));
+ GetProtobufElementTypeName<TElementType>(),
+ GetProtobufElementTypeName(element));
return *result->get();
}
diff --git a/yt/yt/core/yson/protobuf_interop.cpp b/yt/yt/core/yson/protobuf_interop.cpp
index 0aa00e3f07..b49cae0c42 100644
--- a/yt/yt/core/yson/protobuf_interop.cpp
+++ b/yt/yt/core/yson/protobuf_interop.cpp
@@ -197,6 +197,74 @@ void WriteSchema(const TProtobufEnumType* enumType, IYsonConsumer* consumer);
////////////////////////////////////////////////////////////////////////////////
+NYson::TProtobufElementType GetProtobufElementType(const TProtobufElement& protobufElement)
+{
+ return VisitProtobufElement(protobufElement,
+ [] (const TProtobufMessageElement& /*element*/) {
+ return TProtobufElementType{FieldDescriptor::TYPE_MESSAGE};
+ },
+ [] (const TProtobufScalarElement& element) {
+ return element.Type;
+ },
+ [] (const TProtobufAttributeDictionaryElement& /*element*/) {
+ return TProtobufElementType{FieldDescriptor::TYPE_MESSAGE};
+ },
+ [] (const TProtobufRepeatedElement& element) {
+ return GetProtobufElementType(element.Element);
+ },
+ [] (const TProtobufMapElement& /*element*/) {
+ // NB! Map is interpreted directly as repeated message field.
+ return TProtobufElementType{FieldDescriptor::TYPE_MESSAGE};
+ },
+ [] (const TProtobufAnyElement& /*element*/) {
+ return TProtobufElementType{FieldDescriptor::TYPE_STRING};
+ }
+ );
+}
+
+NYTree::ENodeType GetNodeTypeByProtobufScalarElement(const TProtobufScalarElement& scalarElement)
+{
+ switch (scalarElement.Type.Underlying()) {
+ case FieldDescriptor::TYPE_INT64:
+ case FieldDescriptor::TYPE_INT32:
+ case FieldDescriptor::TYPE_SINT32:
+ case FieldDescriptor::TYPE_SINT64:
+ case FieldDescriptor::TYPE_SFIXED32:
+ case FieldDescriptor::TYPE_SFIXED64:
+ return NYTree::ENodeType::Int64;
+ case FieldDescriptor::TYPE_UINT64:
+ case FieldDescriptor::TYPE_FIXED64:
+ case FieldDescriptor::TYPE_UINT32:
+ case FieldDescriptor::TYPE_FIXED32:
+ return NYTree::ENodeType::Uint64;
+ case FieldDescriptor::TYPE_BOOL:
+ return NYTree::ENodeType::Boolean;
+ case FieldDescriptor::TYPE_STRING:
+ case FieldDescriptor::TYPE_BYTES:
+ return NYTree::ENodeType::String;
+ case FieldDescriptor::TYPE_ENUM:
+ switch (scalarElement.EnumStorageType) {
+ case EEnumYsonStorageType::String:
+ return NYTree::ENodeType::String;
+ case EEnumYsonStorageType::Int:
+ return NYTree::ENodeType::Int64;
+ }
+ YT_ABORT();
+ case FieldDescriptor::TYPE_DOUBLE:
+ case FieldDescriptor::TYPE_FLOAT:
+ return NYTree::ENodeType::Double;
+ case FieldDescriptor::TYPE_GROUP:
+ case FieldDescriptor::TYPE_MESSAGE:
+ // NB! Scalar element cannot be of type message.
+ break;
+ }
+
+ THROW_ERROR_EXCEPTION("Encountered non-scalar field type for scalar protobuf element")
+ << TErrorAttribute("fieldType", scalarElement.Type.Underlying());
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
class TProtobufTypeRegistry
{
public:
@@ -810,7 +878,8 @@ TProtobufElement TProtobufField::GetElement(bool insideRepeated) const
return std::make_unique<TProtobufScalarElement>(TProtobufScalarElement{
static_cast<TProtobufElementType>(GetType()),
GetEnumYsonStorageType(),
- EnumType_
+ GetEnumType(),
+ IsEnumValueCheckStrict(),
});
}
}
@@ -3022,10 +3091,6 @@ TProtobufElementResolveResult GetProtobufElementFromField(
////////////////////////////////////////////////////////////////////////////////
-namespace NDetail {
-
-////////////////////////////////////////////////////////////////////////////////
-
std::string_view GetProtobufElementTypeName(const NYson::TProtobufElement& element)
{
return Visit(element,
@@ -3034,10 +3099,6 @@ std::string_view GetProtobufElementTypeName(const NYson::TProtobufElement& eleme
});
}
-////////////////////////////////////////////////////////////////////////////////
-
-} // namespace NDetail
-
TProtobufElementResolveResult ResolveProtobufElementByYPath(
const TProtobufMessageType* rootType,
const NYPath::TYPathBuf path,
diff --git a/yt/yt/core/yson/protobuf_interop.h b/yt/yt/core/yson/protobuf_interop.h
index 7ad3bd9879..79b06b9ec4 100644
--- a/yt/yt/core/yson/protobuf_interop.h
+++ b/yt/yt/core/yson/protobuf_interop.h
@@ -84,6 +84,7 @@ struct TProtobufScalarElement
// Meaningful only when TYPE == TYPE_ENUM.
EEnumYsonStorageType EnumStorageType;
const TProtobufEnumType* EnumType;
+ bool StrictEnumChecks;
};
struct TProtobufAttributeDictionaryElement
@@ -126,7 +127,20 @@ TProtobufElementResolveResult ResolveProtobufElementByYPath(
////////////////////////////////////////////////////////////////////////////////
template <CProtobufElement TElementType>
-const TElementType& GetProtobufElementOrThrow(const NYson::TProtobufElement& element);
+consteval std::string_view GetProtobufElementTypeName();
+
+std::string_view GetProtobufElementTypeName(const TProtobufElement& element);
+
+// Version of `NYT::Visit` for `TProtobufElement` which skips `std::unique_ptr` wrappers.
+template <class... U>
+auto VisitProtobufElement(const TProtobufElement& element, U&&... visitorOverloads);
+
+TProtobufElementType GetProtobufElementType(const TProtobufElement& protobufElement);
+
+NYTree::ENodeType GetNodeTypeByProtobufScalarElement(const TProtobufScalarElement& scalarElement);
+
+template <CProtobufElement TElementType>
+const TElementType& GetProtobufElementOrThrow(const TProtobufElement& element);
////////////////////////////////////////////////////////////////////////////////
diff --git a/yt/yt/core/ytree/attribute_filter-inl.h b/yt/yt/core/ytree/attribute_filter-inl.h
index a319270ad1..34c1934284 100644
--- a/yt/yt/core/ytree/attribute_filter-inl.h
+++ b/yt/yt/core/ytree/attribute_filter-inl.h
@@ -10,7 +10,7 @@ namespace NYT::NYTree {
template <class T>
TAttributeFilter::TAttributeFilter(std::initializer_list<T> keys)
- : Keys({keys.begin(), keys.end()})
+ : Keys_({keys.begin(), keys.end()})
, Universal(false)
{ }
diff --git a/yt/yt/core/ytree/attribute_filter.cpp b/yt/yt/core/ytree/attribute_filter.cpp
index e6213d810e..3c5d217f37 100644
--- a/yt/yt/core/ytree/attribute_filter.cpp
+++ b/yt/yt/core/ytree/attribute_filter.cpp
@@ -197,18 +197,18 @@ std::unique_ptr<IHeterogenousFilterConsumer> CreateFilteringConsumerImpl(
////////////////////////////////////////////////////////////////////////////////
TAttributeFilter::TAttributeFilter(std::vector<IAttributeDictionary::TKey> keys, std::vector<TYPath> paths)
- : Keys(std::move(keys))
- , Paths(std::move(paths))
+ : Keys_(std::move(keys))
+ , Paths_(std::move(paths))
, Universal(false)
{ }
TAttributeFilter::TAttributeFilter(std::initializer_list<TString> keys)
- : Keys({keys.begin(), keys.end()})
+ : Keys_({keys.begin(), keys.end()})
, Universal(false)
{ }
TAttributeFilter::TAttributeFilter(const std::vector<TString>& keys)
- : Keys({keys.begin(), keys.end()})
+ : Keys_({keys.begin(), keys.end()})
, Universal(false)
{ }
@@ -219,14 +219,25 @@ TAttributeFilter::operator bool() const
void TAttributeFilter::ValidateKeysOnly(TStringBuf context) const
{
- if (!Paths.empty()) {
+ if (!Paths_.empty()) {
THROW_ERROR_EXCEPTION("Filtering attributes by path is not implemented for %v", context);
}
}
bool TAttributeFilter::IsEmpty() const
{
- return !Universal && Keys.empty() && Paths.empty();
+ return !Universal && Keys_.empty() && Paths_.empty();
+}
+
+void TAttributeFilter::AddKey(IAttributeDictionary::TKey key)
+{
+ Universal = false;
+ Keys_.emplace_back(std::move(key));
+}
+
+void TAttributeFilter::ReserveKeys(size_t capacity)
+{
+ Keys_.reserve(capacity);
}
bool TAttributeFilter::AdmitsKeySlow(TStringBuf key) const
@@ -234,18 +245,18 @@ bool TAttributeFilter::AdmitsKeySlow(TStringBuf key) const
if (!*this) {
return true;
}
- return std::find(Keys.begin(), Keys.end(), key) != Keys.end() ||
- std::find(Paths.begin(), Paths.end(), "/" + ToYPathLiteral(key)) != Paths.end();
+ return std::find(Keys_.begin(), Keys_.end(), key) != Keys_.end() ||
+ std::find(Paths_.begin(), Paths_.end(), "/" + ToYPathLiteral(key)) != Paths_.end();
}
TAttributeFilter::TKeyToFilter TAttributeFilter::Normalize() const
{
YT_VERIFY(*this);
- if (Paths.empty()) {
+ if (Paths_.empty()) {
// Fast path for key-only case.
TKeyToFilter result;
- result.reserve(Keys.size());
- for (const auto& key : Keys) {
+ result.reserve(Keys_.size());
+ for (const auto& key : Keys_) {
result[key] = std::nullopt;
}
return result;
@@ -254,12 +265,12 @@ TAttributeFilter::TKeyToFilter TAttributeFilter::Normalize() const
// As a first step, prepare a combined vector of paths: canonize all paths
// and transform all keys to paths of form /<ToYPathLiteral(key)> (which is
// already a canonical form).
- std::vector<TYPath> paths = Paths;
+ std::vector<TYPath> paths = Paths_;
for (auto& path : paths) {
NDetail::CanonizeAndValidatePath(path);
}
- paths.reserve(paths.size() + Keys.size());
- for (const auto& key : Keys) {
+ paths.reserve(paths.size() + Keys_.size());
+ for (const auto& key : Keys_) {
paths.emplace_back("/" + ToYPathLiteral(key));
}
@@ -414,15 +425,17 @@ void ToProto(NProto::TAttributeFilter* protoFilter, const TAttributeFilter& filt
{
YT_VERIFY(filter);
- ToProto(protoFilter->mutable_keys(), filter.Keys);
- ToProto(protoFilter->mutable_paths(), filter.Paths);
+ ToProto(protoFilter->mutable_keys(), filter.Keys());
+ ToProto(protoFilter->mutable_paths(), filter.Paths());
}
void FromProto(TAttributeFilter* filter, const NProto::TAttributeFilter& protoFilter)
{
- filter->Universal = false;
- FromProto(&filter->Keys, protoFilter.keys());
- FromProto(&filter->Paths, protoFilter.paths());
+ std::vector<IAttributeDictionary::TKey> keys;
+ std::vector<NYPath::TYPath> paths;
+ FromProto(&keys, protoFilter.keys());
+ FromProto(&paths, protoFilter.paths());
+ *filter = TAttributeFilter(std::move(keys), std::move(paths));
}
void Serialize(const TAttributeFilter& filter, IYsonConsumer* consumer)
@@ -430,8 +443,8 @@ void Serialize(const TAttributeFilter& filter, IYsonConsumer* consumer)
if (filter) {
BuildYsonFluently(consumer)
.BeginMap()
- .Item("keys").Value(filter.Keys)
- .Item("paths").Value(filter.Paths)
+ .Item("keys").Value(filter.Keys())
+ .Item("paths").Value(filter.Paths())
.EndMap();
} else {
BuildYsonFluently(consumer)
@@ -445,30 +458,29 @@ void Deserialize(TAttributeFilter& filter, const INodePtr& node)
case ENodeType::Map: {
auto mapNode = node->AsMap();
- filter.Universal = false;
- filter.Keys.clear();
+ std::vector<IAttributeDictionary::TKey> keys;
+ std::vector<TYPath> paths;
if (auto keysNode = mapNode->FindChild("keys")) {
- filter.Keys = ConvertTo<std::vector<IAttributeDictionary::TKey>>(keysNode);
+ keys = ConvertTo<std::vector<IAttributeDictionary::TKey>>(keysNode);
}
- filter.Paths.clear();
if (auto pathsNode = mapNode->FindChild("paths")) {
- filter.Paths = ConvertTo<std::vector<TYPath>>(pathsNode);
+ paths = ConvertTo<std::vector<TYPath>>(pathsNode);
}
+ filter = TAttributeFilter(std::move(keys), std::move(paths));
+
break;
}
case ENodeType::List: {
// Compatibility mode with HTTP clients that specify attribute keys as string lists.
- filter.Universal = false;
- filter.Keys = ConvertTo<std::vector<IAttributeDictionary::TKey>>(node);
- filter.Paths = {};
+
+ auto keys = ConvertTo<std::vector<IAttributeDictionary::TKey>>(node);
+ filter = TAttributeFilter(keys);
break;
}
case ENodeType::Entity: {
- filter.Universal = true;
- filter.Keys = {};
- filter.Paths = {};
+ filter = TAttributeFilter();
break;
}
default:
@@ -487,7 +499,7 @@ void FormatValue(
TStringBuf /*spec*/)
{
if (attributeFilter) {
- builder->AppendFormat("{Keys: %v, Paths: %v}", attributeFilter.Keys, attributeFilter.Paths);
+ builder->AppendFormat("{Keys: %v, Paths: %v}", attributeFilter.Keys(), attributeFilter.Paths());
} else {
builder->AppendString("(universal)");
}
@@ -512,8 +524,8 @@ void FormatValue(
auto limit = view.Limit;
if (attributeFilter) {
builder->AppendFormat("{Keys: %v, Paths: %v}",
- MakeShrunkFormattableView(attributeFilter.Keys, TDefaultFormatter{}, limit),
- MakeShrunkFormattableView(attributeFilter.Paths, TDefaultFormatter{}, limit));
+ MakeShrunkFormattableView(attributeFilter.Keys(), TDefaultFormatter{}, limit),
+ MakeShrunkFormattableView(attributeFilter.Paths(), TDefaultFormatter{}, limit));
} else {
builder->AppendString("(universal)");
}
diff --git a/yt/yt/core/ytree/attribute_filter.h b/yt/yt/core/ytree/attribute_filter.h
index 10b7fc6551..59ddc7a9ff 100644
--- a/yt/yt/core/ytree/attribute_filter.h
+++ b/yt/yt/core/ytree/attribute_filter.h
@@ -66,8 +66,8 @@ namespace NYT::NYTree {
struct TAttributeFilter
{
//! Whitelist of top-level keys to be returned.
- std::vector<IAttributeDictionary::TKey> Keys;
- std::vector<NYPath::TYPath> Paths;
+ DEFINE_BYREF_RO_PROPERTY(std::vector<IAttributeDictionary::TKey>, Keys);
+ DEFINE_BYREF_RO_PROPERTY(std::vector<NYPath::TYPath>, Paths);
//! If true, filter is universal, i.e. behavior depends on service's own policy;
//! in such case #Keys and #Paths are always empty.
@@ -100,6 +100,12 @@ struct TAttributeFilter
//! error message.
void ValidateKeysOnly(TStringBuf context = "this context") const;
+ //! Adds key. Makes attribute filter not universal if it was universal.
+ void AddKey(IAttributeDictionary::TKey key);
+
+ //! Reserve keys.
+ void ReserveKeys(size_t capacity);
+
//! Returns true if #key appears in Keys or "/#key" appears in Paths using linear search.
bool AdmitsKeySlow(IAttributeDictionary::TKeyView key) const;