aboutsummaryrefslogtreecommitdiffstats
path: root/yql
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2025-04-16 08:31:49 +0000
committerAlexander Smirnov <alex@ydb.tech>2025-04-16 08:31:49 +0000
commit1c2da168395dadec05d58923a79123048bf70573 (patch)
tree3fb43b6d8ce65f583de0f640c61dbdb5374429ac /yql
parente39c1fe3cca27babe95bf01b7ace8300f09f67c9 (diff)
parentf4d366e1882cfbae7ccda2e7a601b9fa5da09bdb (diff)
downloadydb-1c2da168395dadec05d58923a79123048bf70573.tar.gz
Merge branch 'rightlib' into merge-libs-250416-0829
Diffstat (limited to 'yql')
-rw-r--r--yql/essentials/ast/ya.make1
-rw-r--r--yql/essentials/ast/yql_expr.cpp54
-rw-r--r--yql/essentials/ast/yql_expr.h4
-rw-r--r--yql/essentials/cfg/tests/gateways-experimental.conf32
-rw-r--r--yql/essentials/core/facade/yql_facade.cpp8
-rw-r--r--yql/essentials/core/peephole_opt/yql_opt_peephole_physical.cpp33
-rw-r--r--yql/essentials/core/qplayer/storage/ydb/ya.make2
-rw-r--r--yql/essentials/core/qplayer/storage/ydb/yql_qstorage_ydb.cpp2
-rw-r--r--yql/essentials/core/services/mounts/yql_mounts.cpp20
-rw-r--r--yql/essentials/core/services/mounts/yql_mounts.h9
-rw-r--r--yql/essentials/core/sql_types/normalize_name.cpp63
-rw-r--r--yql/essentials/core/sql_types/normalize_name.h13
-rw-r--r--yql/essentials/core/sql_types/normalize_name_ut.cpp (renamed from yql/essentials/core/ut/yql_expr_type_annotation_ut.cpp)9
-rw-r--r--yql/essentials/core/sql_types/ut/ya.make2
-rw-r--r--yql/essentials/core/sql_types/ya.make7
-rwxr-xr-xyql/essentials/core/type_ann/type-ann-coverage.sh63
-rw-r--r--yql/essentials/core/type_ann/type_ann_join.cpp175
-rw-r--r--yql/essentials/core/type_ann/type_ann_list.cpp11
-rw-r--r--yql/essentials/core/ut/ya.make1
-rw-r--r--yql/essentials/core/ut/yql_expr_constraint_ut.cpp22
-rw-r--r--yql/essentials/core/yql_expr_constraint.cpp12
-rw-r--r--yql/essentials/core/yql_expr_type_annotation.h4
-rw-r--r--yql/essentials/core/yql_graph_transformer.h2
-rw-r--r--yql/essentials/core/yql_type_annotation.cpp10
-rw-r--r--yql/essentials/core/yql_type_annotation.h14
-rw-r--r--yql/essentials/data/language/pragmas_opensource.json2
-rw-r--r--yql/essentials/data/language/rules_corr_basic.json2
-rw-r--r--yql/essentials/data/language/statements_opensource.json2
-rw-r--r--yql/essentials/docs/en/builtins/list.md7
-rw-r--r--yql/essentials/docs/ru/builtins/list.md7
-rw-r--r--yql/essentials/docs/ru/syntax/group_by.md6
-rw-r--r--yql/essentials/docs/ru/syntax/join.md19
-rw-r--r--yql/essentials/docs/ru/syntax/pragma.md95
-rw-r--r--yql/essentials/minikql/codegen/codegen_ut.cpp38
-rw-r--r--yql/essentials/minikql/codegen/ut/ya.make.inc36
-rw-r--r--yql/essentials/minikql/comp_nodes/mkql_block_map_join.cpp191
-rw-r--r--yql/essentials/minikql/comp_nodes/mkql_grace_join.cpp57
-rw-r--r--yql/essentials/minikql/comp_nodes/mkql_grace_join_imp.cpp32
-rw-r--r--yql/essentials/minikql/comp_nodes/mkql_grace_join_imp.h17
-rw-r--r--yql/essentials/minikql/comp_nodes/mkql_iterable.cpp2
-rw-r--r--yql/essentials/minikql/comp_nodes/mkql_wide_combine.cpp69
-rw-r--r--yql/essentials/minikql/comp_nodes/mkql_wide_top_sort.cpp20
-rw-r--r--yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut.cpp96
-rw-r--r--yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut_utils.cpp17
-rw-r--r--yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut_utils.h2
-rw-r--r--yql/essentials/minikql/comp_nodes/ut/mkql_grace_join_ut.cpp30
-rw-r--r--yql/essentials/minikql/comp_nodes/ut/mkql_iterable_ut.cpp40
-rw-r--r--yql/essentials/minikql/comp_nodes/ut/ya.make.inc1
-rw-r--r--yql/essentials/minikql/mkql_program_builder.cpp34
-rw-r--r--yql/essentials/minikql/mkql_program_builder.h6
-rw-r--r--yql/essentials/minikql/mkql_runtime_version.h2
-rw-r--r--yql/essentials/minikql/protobuf_udf/type_builder.cpp158
-rw-r--r--yql/essentials/minikql/protobuf_udf/type_builder.h14
-rw-r--r--yql/essentials/minikql/protobuf_udf/ut/type_builder_ut.cpp65
-rw-r--r--yql/essentials/minikql/protobuf_udf/value_builder.cpp4
-rw-r--r--yql/essentials/minikql/protobuf_udf/ya.make1
-rw-r--r--yql/essentials/providers/common/mkql/yql_provider_mkql.cpp14
-rw-r--r--yql/essentials/public/fastcheck/format.cpp17
-rw-r--r--yql/essentials/public/fastcheck/linter_ut.cpp20
-rw-r--r--yql/essentials/public/udf/udf_log.h14
-rwxr-xr-xyql/essentials/scripts/collect-coverage.sh54
-rwxr-xr-xyql/essentials/scripts/separate-yql-proto-compile.sh8
-rw-r--r--yql/essentials/sql/v1/aggregation.cpp24
-rw-r--r--yql/essentials/sql/v1/complete/antlr4/vocabulary.cpp14
-rw-r--r--yql/essentials/sql/v1/complete/antlr4/vocabulary.h13
-rw-r--r--yql/essentials/sql/v1/complete/antlr4/ya.make4
-rw-r--r--yql/essentials/sql/v1/complete/core/statement.h10
-rw-r--r--yql/essentials/sql/v1/complete/core/ya.make3
-rw-r--r--yql/essentials/sql/v1/complete/name/name_service.h40
-rw-r--r--yql/essentials/sql/v1/complete/name/static/frequency.cpp25
-rw-r--r--yql/essentials/sql/v1/complete/name/static/frequency.h3
-rw-r--r--yql/essentials/sql/v1/complete/name/static/frequency_ut.cpp12
-rw-r--r--yql/essentials/sql/v1/complete/name/static/json_name_set.cpp38
-rw-r--r--yql/essentials/sql/v1/complete/name/static/name_service.cpp83
-rw-r--r--yql/essentials/sql/v1/complete/name/static/name_service.h2
-rw-r--r--yql/essentials/sql/v1/complete/name/static/ranking.cpp27
-rw-r--r--yql/essentials/sql/v1/complete/name/static/ya.make2
-rw-r--r--yql/essentials/sql/v1/complete/name/ya.make4
-rw-r--r--yql/essentials/sql/v1/complete/sql_complete.cpp116
-rw-r--r--yql/essentials/sql/v1/complete/sql_complete.h5
-rw-r--r--yql/essentials/sql/v1/complete/sql_complete_ut.cpp197
-rw-r--r--yql/essentials/sql/v1/complete/syntax/format.cpp38
-rw-r--r--yql/essentials/sql/v1/complete/syntax/format.h10
-rw-r--r--yql/essentials/sql/v1/complete/syntax/local.cpp111
-rw-r--r--yql/essentials/sql/v1/complete/syntax/local.h22
-rw-r--r--yql/essentials/sql/v1/complete/syntax/parser_call_stack.cpp38
-rw-r--r--yql/essentials/sql/v1/complete/syntax/parser_call_stack.h7
-rw-r--r--yql/essentials/sql/v1/complete/syntax/ya.make3
-rw-r--r--yql/essentials/sql/v1/complete/text/case.cpp11
-rw-r--r--yql/essentials/sql/v1/complete/text/case.h15
-rw-r--r--yql/essentials/sql/v1/complete/text/ya.make1
-rw-r--r--yql/essentials/sql/v1/complete/ya.make6
-rw-r--r--yql/essentials/sql/v1/context.cpp1
-rw-r--r--yql/essentials/sql/v1/context.h1
-rw-r--r--yql/essentials/sql/v1/lexer/check/check_lexers.cpp82
-rw-r--r--yql/essentials/sql/v1/lexer/check/check_lexers.h9
-rw-r--r--yql/essentials/sql/v1/lexer/check/ya.make21
-rw-r--r--yql/essentials/sql/v1/lexer/lexer_ut.cpp80
-rw-r--r--yql/essentials/sql/v1/lexer/regex/lexer.cpp28
-rw-r--r--yql/essentials/sql/v1/lexer/regex/lexer_ut.cpp2
-rw-r--r--yql/essentials/sql/v1/lexer/regex/regex.cpp2
-rw-r--r--yql/essentials/sql/v1/lexer/regex/regex_ut.cpp4
-rw-r--r--yql/essentials/sql/v1/lexer/ya.make1
-rw-r--r--yql/essentials/sql/v1/reflect/sql_reflect.cpp9
-rw-r--r--yql/essentials/sql/v1/reflect/sql_reflect.h2
-rw-r--r--yql/essentials/sql/v1/sql_query.cpp6
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part0/canondata/result.json14
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part7/canondata/result.json6
-rw-r--r--yql/essentials/tests/s-expressions/minirun/part8/canondata/result.json14
-rw-r--r--yql/essentials/tests/s-expressions/minirun/pure.make6
-rw-r--r--yql/essentials/tests/s-expressions/suites/Blocks/BlockMapJoinCore.yqls14
-rw-r--r--yql/essentials/tests/s-expressions/suites/Blocks/WideFromBlocks-WideToBlocks.yqls24
-rw-r--r--yql/essentials/tests/s-expressions/suites/Blocks/WideToBlocks-WideFromBlocks.yqls25
-rw-r--r--yql/essentials/tests/sql/minirun/part0/canondata/result.json14
-rw-r--r--yql/essentials/tests/sql/minirun/part6/canondata/result.json14
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/result.json36
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_aggregate-distinct_over_keys_/formatted.sql15
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_union-unhashed_column_/formatted.sql7
-rw-r--r--yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_window-yql-19801_/formatted.sql19
-rw-r--r--yql/essentials/tests/sql/suites/aggregate/distinct_over_keys.sql4
-rw-r--r--yql/essentials/tests/sql/suites/union/unhashed_column.cfg1
-rw-r--r--yql/essentials/tests/sql/suites/union/unhashed_column.sql5
-rw-r--r--yql/essentials/tests/sql/suites/window/yql-19801.sql18
-rw-r--r--yql/essentials/tools/sql2yql/sql2yql.cpp46
-rw-r--r--yql/essentials/tools/sql2yql/ya.make3
-rw-r--r--yql/essentials/tools/yql_complete/yql_complete.cpp21
-rw-r--r--yql/essentials/tools/yql_facade_run/ya.make1
-rw-r--r--yql/essentials/tools/yql_facade_run/yql_facade_run.cpp34
-rw-r--r--yql/essentials/tools/yql_facade_run/yql_facade_run.h1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/result.json71
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_YQL-19040_/results.txt325
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_map_bytes_v1_/results.txt136
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_map_bytes_v2_/results.txt141
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_oneof_bytes_v1_fail_/extracted8
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_oneof_bytes_v1_success_/results.txt80
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_oneof_bytes_v2_/results.txt101
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_bytes_v1_fail_empty_optional_/extracted8
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_bytes_v1_success_/results.txt346
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_bytes_v2_/results.txt405
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_ignore_/results.txt119
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_map_recursive_v1_/results.txt371
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_map_recursive_v2_/results.txt381
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_no_ser_/results.txt95
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_plain_/results.txt215
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_ser_pb_/results.txt95
-rw-r--r--yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_ser_yt_/results.txt105
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/YQL-19040.sql2
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v1.in1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v1.in.attr (renamed from yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes.in.attr)0
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v1.sql30
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v2.in1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v2.in.attr1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v2.sql30
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.cfg2
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.in1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.in.attr1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.sql32
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_success.in1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_success.in.attr1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_success.sql32
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v2.in2
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v2.in.attr1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v2.sql32
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes.in1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes.sql35
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.cfg2
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.in1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.in.attr1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.sql51
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_success.in4
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_success.in.attr1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_success.sql67
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v2.in4
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v2.in.attr1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v2.sql69
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/recursion_ignore.sql2
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v1.in3
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v1.in.attr1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v1.sql48
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v2.in3
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v2.in.attr1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v2.sql48
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/yt_mode_no_ser.sql2
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/yt_mode_plain.in1
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/yt_mode_plain.sql9
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/yt_mode_ser_pb.sql2
-rw-r--r--yql/essentials/udfs/common/protobuf/test/cases/yt_mode_ser_yt.sql2
-rw-r--r--yql/essentials/udfs/language/yql/test/canondata/result.json5
-rw-r--r--yql/essentials/udfs/language/yql/test/canondata/test.test_ExtractKeywords_/results.txt78
-rw-r--r--yql/essentials/udfs/language/yql/test/cases/ExtractKeywords.sql6
-rw-r--r--yql/essentials/udfs/language/yql/ya.make1
-rw-r--r--yql/essentials/udfs/language/yql/yql_language_udf.cpp8
-rw-r--r--yql/tools/yqlrun/lib/yqlrun_lib.cpp7
-rw-r--r--yql/tools/yqlrun/lib/yqlrun_lib.h3
194 files changed, 6024 insertions, 861 deletions
diff --git a/yql/essentials/ast/ya.make b/yql/essentials/ast/ya.make
index 58c21a1d7f1..a0a003cb2eb 100644
--- a/yql/essentials/ast/ya.make
+++ b/yql/essentials/ast/ya.make
@@ -37,6 +37,7 @@ PEERDIR(
yql/essentials/utils
yql/essentials/utils/fetch
yql/essentials/core/issue
+ yql/essentials/core/sql_types
yql/essentials/core/url_lister/interface
yql/essentials/parser/pg_catalog
)
diff --git a/yql/essentials/ast/yql_expr.cpp b/yql/essentials/ast/yql_expr.cpp
index 21d0b9a446c..fb60a08476b 100644
--- a/yql/essentials/ast/yql_expr.cpp
+++ b/yql/essentials/ast/yql_expr.cpp
@@ -3830,60 +3830,6 @@ const TTypeAnnotationNode& RemoveOptionality(const TTypeAnnotationNode& type) {
return ETypeAnnotationKind::Optional == type.GetKind() ? *type.Cast<TOptionalExprType>()->GetItemType() : type;
}
-TMaybe<TIssue> NormalizeName(TPosition position, TString& name) {
- const ui32 inputLength = name.length();
- ui32 startCharPos = 0;
- ui32 totalSkipped = 0;
- bool atStart = true;
- bool justSkippedUnderscore = false;
- for (ui32 i = 0; i < inputLength; ++i) {
- const char c = name.at(i);
- if (c == '_') {
- if (!atStart) {
- if (justSkippedUnderscore) {
- return TIssue(position, TStringBuilder() << "\"" << name << "\" looks weird, has multiple consecutive underscores");
- }
- justSkippedUnderscore = true;
- ++totalSkipped;
- continue;
- } else {
- ++startCharPos;
- }
- }
- else {
- atStart = false;
- justSkippedUnderscore = false;
- }
- }
-
- if (totalSkipped >= 5) {
- return TIssue(position, TStringBuilder() << "\"" << name << "\" looks weird, has multiple consecutive underscores");
- }
-
- ui32 outPos = startCharPos;
- for (ui32 i = startCharPos; i < inputLength; i++) {
- const char c = name.at(i);
- if (c == '_') {
- continue;
- } else {
- name[outPos] = AsciiToLower(c);
- ++outPos;
- }
- }
-
- name.resize(outPos);
- Y_ABORT_UNLESS(inputLength - outPos == totalSkipped);
-
- return Nothing();
-}
-
-TString NormalizeName(const TStringBuf& name) {
- TString result(name);
- TMaybe<TIssue> error = NormalizeName(TPosition(), result);
- YQL_ENSURE(error.Empty(), "" << error->GetMessage());
- return result;
-}
-
void TDefaultTypeAnnotationVisitor::Visit(const TUnitExprType& type) {
Y_UNUSED(type);
}
diff --git a/yql/essentials/ast/yql_expr.h b/yql/essentials/ast/yql_expr.h
index 40cd7bb2d2b..722d3f6be51 100644
--- a/yql/essentials/ast/yql_expr.h
+++ b/yql/essentials/ast/yql_expr.h
@@ -9,6 +9,7 @@
#include "yql_pos_handle.h"
#include <yql/essentials/core/url_lister/interface/url_lister_manager.h>
+#include <yql/essentials/core/sql_types/normalize_name.h>
#include <yql/essentials/utils/yql_panic.h>
#include <yql/essentials/public/issue/yql_issue_manager.h>
#include <yql/essentials/public/udf/udf_data_type.h>
@@ -2954,9 +2955,6 @@ const TTypeAnnotationNode& GetSeqItemType(const TTypeAnnotationNode& seq);
const TTypeAnnotationNode& RemoveOptionality(const TTypeAnnotationNode& type);
-TMaybe<TIssue> NormalizeName(TPosition position, TString& name);
-TString NormalizeName(const TStringBuf& name);
-
} // namespace NYql
template<>
diff --git a/yql/essentials/cfg/tests/gateways-experimental.conf b/yql/essentials/cfg/tests/gateways-experimental.conf
index a68414581b7..d1c09423481 100644
--- a/yql/essentials/cfg/tests/gateways-experimental.conf
+++ b/yql/essentials/cfg/tests/gateways-experimental.conf
@@ -40,8 +40,18 @@ Yt {
}
DefaultSettings {
+ Name: "JobBlockInput"
+ Value: "true"
+ }
+
+ DefaultSettings {
Name: "JobBlockInputSupportedTypes"
- Value: "tuple"
+ Value: "tuple,pg"
+ }
+
+ DefaultSettings {
+ Name: "BlockReaderSupportedTypes"
+ Value: "tuple,pg"
}
DefaultSettings {
@@ -50,19 +60,37 @@ Yt {
}
DefaultSettings {
+ Name: "BlockReaderSupportedDataTypes"
+ Value: "Int8,Uint8,Int16,Uint16,Int32,Uint32,Int64,Uint64,Bool,Double,String,Utf8,Yson,Float"
+ }
+
+ DefaultSettings {
Name: "ReportEquiJoinStats"
Value: "true"
}
+
+ DefaultSettings {
+ Name: "UseRPCReaderInDq"
+ Value: "true"
+ }
+
+ DefaultSettings {
+ Name: "DQRPCReaderTimeout"
+ Value: "600s"
+ }
}
Dq {
+ DefaultSettings {
+ Name: "UseBlockReader"
+ Value: "true"
+ }
}
YqlCore {
Flags {
Name: "OptimizerFlags"
Args: [
- "FieldSubsetEnableMultiusage",
"MemberNthOverFlatMap",
"ExtractMembersSplitOnOptional",
"FilterNullMembersOverJust",
diff --git a/yql/essentials/core/facade/yql_facade.cpp b/yql/essentials/core/facade/yql_facade.cpp
index 055378a3ff1..f58f7834664 100644
--- a/yql/essentials/core/facade/yql_facade.cpp
+++ b/yql/essentials/core/facade/yql_facade.cpp
@@ -389,7 +389,7 @@ TProgram::TProgram(
if (item) {
YQL_ENSURE(LoadedGatewaysConfig_.ParseFromString(item->Value));
if (GatewaysForMerge_) {
- YQL_ENSURE(LoadedGatewaysConfig_.MergeFromString(*GatewaysForMerge_));
+ YQL_ENSURE(NProtoBuf::TextFormat::MergeFromString(*GatewaysForMerge_, &LoadedGatewaysConfig_));
}
THashMap<TString, TString> clusterMapping;
GetClusterMappingFromGateways(LoadedGatewaysConfig_, clusterMapping);
@@ -1140,7 +1140,7 @@ TProgram::TFutureStatus TProgram::OptimizeAsyncWithConfig(
dataProviders = DataProviders_;
}
- for (const auto& dp : DataProviders_) {
+ for (const auto& dp : dataProviders) {
if (!dp.RemoteClusterProvider || !dp.RemoteOptimize) {
continue;
}
@@ -1276,7 +1276,7 @@ TProgram::TFutureStatus TProgram::RunAsync(
dataProviders = DataProviders_;
}
- for (const auto& dp : DataProviders_) {
+ for (const auto& dp : dataProviders) {
if (!dp.RemoteClusterProvider || !dp.RemoteRun) {
continue;
}
@@ -1355,7 +1355,7 @@ TProgram::TFutureStatus TProgram::RunAsyncWithConfig(
dataProviders = DataProviders_;
}
- for (const auto& dp : DataProviders_) {
+ for (const auto& dp : dataProviders) {
if (!dp.RemoteClusterProvider || !dp.RemoteRun) {
continue;
}
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 19c55dbfcf9..5755bf1dbf5 100644
--- a/yql/essentials/core/peephole_opt/yql_opt_peephole_physical.cpp
+++ b/yql/essentials/core/peephole_opt/yql_opt_peephole_physical.cpp
@@ -191,6 +191,25 @@ TExprNode::TPtr OptimizeWideToBlocks(const TExprNode::TPtr& node, TExprContext&
return node;
}
+TExprNode::TPtr OptimizeListToBlocks(const TExprNode::TPtr& node, TExprContext& ctx, TTypeAnnotationContext& types) {
+ Y_UNUSED(ctx);
+ Y_UNUSED(types);
+ const auto& input = node->Head();
+ if (input.IsCallable("ListFromBlocks")) {
+ // TODO: actually (ListToBlocks (ListFromBlocks a)) is (ReplicateScalars a),
+ // but there is no sources of scalars in block lists at the moment, so just ensure it
+ auto inputItemType = input.Head().GetTypeAnn()->Cast<TListExprType>()->GetItemType()->Cast<TStructExprType>();
+ for (auto item : inputItemType->GetItems()) {
+ YQL_ENSURE(item->GetItemType()->IsBlock() || (item->GetItemType()->IsScalar() && item->GetName() == BlockLengthColumnName));
+ }
+
+ YQL_CLOG(DEBUG, CorePeepHole) << "Drop " << node->Content() << " over " << input.Content();
+ return input.HeadPtr();
+ }
+
+ return node;
+}
+
TExprNode::TPtr OptimizeWideFromBlocks(const TExprNode::TPtr& node, TExprContext& ctx, TTypeAnnotationContext& types) {
Y_UNUSED(types);
const auto& input = node->Head();
@@ -207,6 +226,18 @@ TExprNode::TPtr OptimizeWideFromBlocks(const TExprNode::TPtr& node, TExprContext
return node;
}
+TExprNode::TPtr OptimizeListFromBlocks(const TExprNode::TPtr& node, TExprContext& ctx, TTypeAnnotationContext& types) {
+ Y_UNUSED(ctx);
+ Y_UNUSED(types);
+ const auto& input = node->Head();
+ if (input.IsCallable("ListToBlocks")) {
+ YQL_CLOG(DEBUG, CorePeepHole) << "Drop " << node->Content() << " over " << input.Content();
+ return input.HeadPtr();
+ }
+
+ return node;
+}
+
TExprNode::TPtr OptimizeWideTakeSkipBlocks(const TExprNode::TPtr& node, TExprContext& ctx, TTypeAnnotationContext& types) {
Y_UNUSED(types);
const auto& input = node->HeadPtr();
@@ -8995,7 +9026,9 @@ struct TPeepHoleRules {
{"NarrowMap", &OptimizeWideMapBlocks},
{"WideFilter", &OptimizeWideFilterBlocks},
{"WideToBlocks", &OptimizeWideToBlocks},
+ {"ListToBlocks", &OptimizeListToBlocks},
{"WideFromBlocks", &OptimizeWideFromBlocks},
+ {"ListFromBlocks", &OptimizeListFromBlocks},
{"WideTakeBlocks", &OptimizeWideTakeSkipBlocks},
{"WideSkipBlocks", &OptimizeWideTakeSkipBlocks},
{"BlockCompress", &OptimizeBlockCompress},
diff --git a/yql/essentials/core/qplayer/storage/ydb/ya.make b/yql/essentials/core/qplayer/storage/ydb/ya.make
index e68e67d237f..45e796bf675 100644
--- a/yql/essentials/core/qplayer/storage/ydb/ya.make
+++ b/yql/essentials/core/qplayer/storage/ydb/ya.make
@@ -9,7 +9,7 @@ SRCS(
PEERDIR(
yql/essentials/core/qplayer/storage/interface
yql/essentials/core/qplayer/storage/memory
- contrib/ydb/public/sdk/cpp/client/ydb_table
+ contrib/libs/ydb-cpp-sdk/src/client/table
library/cpp/digest/old_crc
)
diff --git a/yql/essentials/core/qplayer/storage/ydb/yql_qstorage_ydb.cpp b/yql/essentials/core/qplayer/storage/ydb/yql_qstorage_ydb.cpp
index c39d8c514a5..13fff7dda80 100644
--- a/yql/essentials/core/qplayer/storage/ydb/yql_qstorage_ydb.cpp
+++ b/yql/essentials/core/qplayer/storage/ydb/yql_qstorage_ydb.cpp
@@ -2,7 +2,7 @@
#include <yql/essentials/core/qplayer/storage/memory/yql_qstorage_memory.h>
-#include <contrib/ydb/public/sdk/cpp/client/ydb_table/table.h>
+#include <ydb-cpp-sdk/client/table/table.h>
#include <library/cpp/digest/old_crc/crc.h>
diff --git a/yql/essentials/core/services/mounts/yql_mounts.cpp b/yql/essentials/core/services/mounts/yql_mounts.cpp
index d229b6d8f01..95dfbf3672e 100644
--- a/yql/essentials/core/services/mounts/yql_mounts.cpp
+++ b/yql/essentials/core/services/mounts/yql_mounts.cpp
@@ -122,7 +122,8 @@ namespace NYql {
const THashMap<TString, TString>& clusterMapping,
const THashSet<TString>& sqlFlags,
bool optimizeLibraries,
- THolder<TExprContext> ownedCtx)
+ THolder<TExprContext> ownedCtx,
+ TModuleResolver::TModuleChecker moduleChecker)
{
YQL_PROFILE_FUNC(DEBUG);
auto ctx = rawCtx ? rawCtx : ownedCtx.Get();
@@ -152,7 +153,7 @@ namespace NYql {
}
moduleResolver = std::make_shared<TModuleResolver>(translators, std::move(modulesTable), ctx->NextUniqueId,
- clusterMapping, sqlFlags, optimizeLibraries, std::move(ownedCtx));
+ clusterMapping, sqlFlags, optimizeLibraries, std::move(ownedCtx), moduleChecker);
return mounts;
}
@@ -162,22 +163,25 @@ namespace NYql {
const TVector<NUserData::TUserData>& userData,
const THashMap<TString, TString>& clusterMapping,
const THashSet<TString>& sqlFlags,
- bool optimizeLibraries) {
- return GetYqlModuleResolverImpl(&ctx, moduleResolver, userData, clusterMapping, sqlFlags, optimizeLibraries, nullptr);
+ bool optimizeLibraries,
+ TModuleResolver::TModuleChecker moduleChecker) {
+ return GetYqlModuleResolverImpl(&ctx, moduleResolver, userData, clusterMapping, sqlFlags, optimizeLibraries, nullptr, moduleChecker);
}
bool GetYqlDefaultModuleResolver(
TExprContext& ctx,
IModuleResolver::TPtr& moduleResolver,
const THashMap<TString, TString>& clusterMapping,
- bool optimizeLibraries) {
- return !GetYqlModuleResolverImpl(&ctx, moduleResolver, {}, clusterMapping, {}, optimizeLibraries, nullptr).empty();
+ bool optimizeLibraries,
+ TModuleResolver::TModuleChecker moduleChecker) {
+ return !GetYqlModuleResolverImpl(&ctx, moduleResolver, {}, clusterMapping, {}, optimizeLibraries, nullptr, moduleChecker).empty();
}
bool GetYqlDefaultModuleResolverWithContext(
IModuleResolver::TPtr& moduleResolver,
const THashMap<TString, TString>& clusterMapping,
- bool optimizeLibraries) {
- return !GetYqlModuleResolverImpl(nullptr, moduleResolver, {}, clusterMapping, {}, optimizeLibraries, MakeHolder<TExprContext>()).empty();
+ bool optimizeLibraries,
+ TModuleResolver::TModuleChecker moduleChecker) {
+ return !GetYqlModuleResolverImpl(nullptr, moduleResolver, {}, clusterMapping, {}, optimizeLibraries, MakeHolder<TExprContext>(), moduleChecker).empty();
}
}
diff --git a/yql/essentials/core/services/mounts/yql_mounts.h b/yql/essentials/core/services/mounts/yql_mounts.h
index f289d57b998..7c0c296aa64 100644
--- a/yql/essentials/core/services/mounts/yql_mounts.h
+++ b/yql/essentials/core/services/mounts/yql_mounts.h
@@ -11,12 +11,14 @@ bool GetYqlDefaultModuleResolver(
TExprContext& ctx,
IModuleResolver::TPtr& moduleResolver,
const THashMap<TString, TString>& clusterMapping = {},
- bool optimizeLibraries = true);
+ bool optimizeLibraries = true,
+ TModuleResolver::TModuleChecker moduleChecker = {});
bool GetYqlDefaultModuleResolverWithContext(
IModuleResolver::TPtr& moduleResolver,
const THashMap<TString, TString>& clusterMapping = {},
- bool optimizeLibraries = true);
+ bool optimizeLibraries = true,
+ TModuleResolver::TModuleChecker moduleChecker = {});
TUserDataTable GetYqlModuleResolver(
TExprContext& ctx,
@@ -24,6 +26,7 @@ TUserDataTable GetYqlModuleResolver(
const TVector<NUserData::TUserData>& userData,
const THashMap<TString, TString>& clusterMapping,
const THashSet<TString>& sqlFlags,
- bool optimizeLibraries = true);
+ bool optimizeLibraries = true,
+ TModuleResolver::TModuleChecker moduleChecker = {});
} // namespace NYql
diff --git a/yql/essentials/core/sql_types/normalize_name.cpp b/yql/essentials/core/sql_types/normalize_name.cpp
new file mode 100644
index 00000000000..5b050503d36
--- /dev/null
+++ b/yql/essentials/core/sql_types/normalize_name.cpp
@@ -0,0 +1,63 @@
+#include "normalize_name.h"
+
+#include <yql/essentials/utils/yql_panic.h>
+
+#include <util/string/builder.h>
+#include <util/string/ascii.h>
+
+namespace NYql {
+
+ TMaybe<TIssue> NormalizeName(TPosition position, TString& name) {
+ const ui32 inputLength = name.length();
+ ui32 startCharPos = 0;
+ ui32 totalSkipped = 0;
+ bool atStart = true;
+ bool justSkippedUnderscore = false;
+ for (ui32 i = 0; i < inputLength; ++i) {
+ const char c = name.at(i);
+ if (c == '_') {
+ if (!atStart) {
+ if (justSkippedUnderscore) {
+ return TIssue(position, TStringBuilder() << "\"" << name << "\" looks weird, has multiple consecutive underscores");
+ }
+ justSkippedUnderscore = true;
+ ++totalSkipped;
+ continue;
+ } else {
+ ++startCharPos;
+ }
+ } else {
+ atStart = false;
+ justSkippedUnderscore = false;
+ }
+ }
+
+ if (totalSkipped >= 5) {
+ return TIssue(position, TStringBuilder() << "\"" << name << "\" looks weird, has multiple consecutive underscores");
+ }
+
+ ui32 outPos = startCharPos;
+ for (ui32 i = startCharPos; i < inputLength; i++) {
+ const char c = name.at(i);
+ if (c == '_') {
+ continue;
+ } else {
+ name[outPos] = AsciiToLower(c);
+ ++outPos;
+ }
+ }
+
+ name.resize(outPos);
+ Y_ABORT_UNLESS(inputLength - outPos == totalSkipped);
+
+ return Nothing();
+ }
+
+ TString NormalizeName(const TStringBuf& name) {
+ TString result(name);
+ TMaybe<TIssue> error = NormalizeName(TPosition(), result);
+ YQL_ENSURE(error.Empty(), "" << error->GetMessage());
+ return result;
+ }
+
+} // namespace NYql
diff --git a/yql/essentials/core/sql_types/normalize_name.h b/yql/essentials/core/sql_types/normalize_name.h
new file mode 100644
index 00000000000..94d1e337680
--- /dev/null
+++ b/yql/essentials/core/sql_types/normalize_name.h
@@ -0,0 +1,13 @@
+#pragma once
+
+#include <yql/essentials/core/issue/yql_issue.h>
+
+#include <util/generic/string.h>
+#include <util/generic/fwd.h>
+
+namespace NYql {
+
+ TMaybe<TIssue> NormalizeName(TPosition position, TString& name);
+ TString NormalizeName(const TStringBuf& name);
+
+} // namespace NYql
diff --git a/yql/essentials/core/ut/yql_expr_type_annotation_ut.cpp b/yql/essentials/core/sql_types/normalize_name_ut.cpp
index 09ce7fd838b..ddd9b24d1e5 100644
--- a/yql/essentials/core/ut/yql_expr_type_annotation_ut.cpp
+++ b/yql/essentials/core/sql_types/normalize_name_ut.cpp
@@ -1,9 +1,8 @@
-#include "yql_expr_type_annotation.h"
+#include "normalize_name.h"
#include <library/cpp/testing/unittest/registar.h>
-
-namespace NYql {
+using namespace NYql;
Y_UNIT_TEST_SUITE(Misc) {
Y_UNIT_TEST(NormalizeName) {
@@ -48,6 +47,4 @@ Y_UNIT_TEST_SUITE(Misc) {
CheckIssues("a_B_c_d_e_f", "a_B_c_d_e_f");
CheckIssues("_a_B_c_d_e_f", "_a_B_c_d_e_f");
}
-}
-
-} // namespace NYql
+} // Y_UNIT_TEST_SUITE(Misc)
diff --git a/yql/essentials/core/sql_types/ut/ya.make b/yql/essentials/core/sql_types/ut/ya.make
index 11a1b7ddfb1..363e4dc4a44 100644
--- a/yql/essentials/core/sql_types/ut/ya.make
+++ b/yql/essentials/core/sql_types/ut/ya.make
@@ -1,6 +1,8 @@
UNITTEST_FOR(yql/essentials/core/sql_types)
+
SRCS(
match_recognize_ut.cpp
+ normalize_name_ut.cpp
)
PEERDIR(
diff --git a/yql/essentials/core/sql_types/ya.make b/yql/essentials/core/sql_types/ya.make
index 88eb76fb511..fae32738bd3 100644
--- a/yql/essentials/core/sql_types/ya.make
+++ b/yql/essentials/core/sql_types/ya.make
@@ -4,13 +4,18 @@ SRCS(
block.h
match_recognize.h
match_recognize.cpp
+ normalize_name.cpp
simple_types.h
simple_types.cpp
yql_atom_enums.h
yql_callable_names.h
)
-GENERATE_ENUM_SERIALIZATION(match_recognize.h)
+PEERDIR(
+ yql/essentials/core/issue
+)
+
+GENERATE_ENUM_SERIALIZATION(match_recognize.h)
GENERATE_ENUM_SERIALIZATION(yql_atom_enums.h)
END()
diff --git a/yql/essentials/core/type_ann/type-ann-coverage.sh b/yql/essentials/core/type_ann/type-ann-coverage.sh
index 09a28963e57..e5336f6aac7 100755
--- a/yql/essentials/core/type_ann/type-ann-coverage.sh
+++ b/yql/essentials/core/type_ann/type-ann-coverage.sh
@@ -1,22 +1,38 @@
#!/bin/bash
#
# Script to collect the type annotation callbacks, being uncovered
-# by minirun test suite. Pass the filename as the first argument
+# by minirun test suite. Pass the coverage report root directory
+# as the first argument, and the filename as the second argument
# to store the collected list to the particular file.
set -eu
-ARC_ROOT=$(arc rev-parse --show-toplevel)
-REPORT_ROOT=$(mktemp --tmpdir -d yql-essentials-core-type_ann-coverage-XXXXXXX)
+REPORT_ROOT=$1
+# Check whether the desired prefix (i.e. yql/essentials/core/type_ann)
+# is collected (see collect-coverage.sh for the contract).
+COLLECTED_PREFIX=yql/essentials/core/type_ann
+COLLECTED_ANCHOR=${REPORT_ROOT}/collect-coverage.sh/${COLLECTED_PREFIX}/collected
+if [ ! -f ${COLLECTED_ANCHOR} ]; then
+ cat <<NOANCHOR
+==================================================================
+[FATAL] Anchor file is missing: ${COLLECTED_ANCHOR}
+------------------------------------------------------------------
+NB: Looks like the particular prefix (i.e. ${COLLECTED_PREFIX})
+is not set in collect-coverage.sh.
+==================================================================
+NOANCHOR
+ exit 1
+fi
+
# Save the list with uncovered callbacks into the file, that is
# given by the first parameter of this script; otherwise, save
# the list into the temporary file.
-UNCOVERED_FILE=${1:-$(mktemp --tmpdir yql-essentials-core-type_ann-uncovered-XXXXXXX.list)}
+UNCOVERED_FILE=${2:-$(mktemp --tmpdir yql-essentials-core-type_ann-uncovered-XXXXXXX.list)}
# File with the list of the callbacks to be ignored by coverage.
UNCOVERED_IGNORE=$(realpath $0 | sed -e 's/\.sh/\.ignore/')
-if [ ! -r $UNCOVERED_IGNORE ]; then
+if [ ! -r ${UNCOVERED_IGNORE} ]; then
cat <<NOIGNORE
==================================================================
-[FATAL] Ignore file is missing: $UNCOVERED_IGNORE
+[FATAL] Ignore file is missing: ${UNCOVERED_IGNORE}
------------------------------------------------------------------
NB: If no uncovered type annotation callbacks ought to be ignored,
just "touch" the empty file and do not remove it in future.
@@ -25,46 +41,25 @@ NOIGNORE
exit 1
fi
-# Run the command to collect code coverage over the sources in
-# /yql/essentials/core/type_ann by the minirun test suite.
-# XXX: Here are the rationales for the particular options:
-# * --clang-coverage -- collect the code coverage only for C++
-# sources;
-# * --coverage-prefix-filter -- collect the code coverage only
-# for the dedicated source files;
-# * --coverage-report --output $REPORT_ROOT -- build the HTML
-# report for the collected code coverage;
-# See more info here: https://docs.yandex-team.ru/devtools/test/coverage.
-ya make -tA \
- -C ${ARC_ROOT}/yql/essentials/tests/sql/minirun \
- -C ${ARC_ROOT}/yql/essentials/tests/s-expressions/minirun \
- --build profile \
- --clang-coverage \
- --coverage-prefix-filter yql/essentials/core/type_ann \
- --coverage-report \
- --output $REPORT_ROOT \
- --test-disable-timeout
-
# Find an anchor to uncovered line in HTML report, ...
UNCOVERED_ANCHOR="<td class='uncovered-line'><pre>0</pre></td>"
# ... find the return type of the type annotation callback,
# preceding the target function name ...
RETURN_TYPE="IGraphTransformer::TStatus"
# XXX: See more info re \K here: https://perldoc.perl.org/perlre#%5CK.
-CALLBACK_PREFIX="<td class='code'><pre>\s*$RETURN_TYPE\s*\K"
+CALLBACK_PREFIX="<td class='code'><pre>\s*${RETURN_TYPE}\s*\K"
# ... and find the parameters types of the type annotation
# callback, following the target function name.
INPUT_TYPE="const TExprNode::TPtr&amp; input"
OUTPUT_TYPE="TExprNode::TPtr&amp; output"
CONTEXT_TYPE="(?:TExtContext|TContext)&amp; ctx"
-CALLBACK_SUFFIX="(?=\($INPUT_TYPE,\s*$OUTPUT_TYPE,\s*$CONTEXT_TYPE\))"
-grep -oP "$UNCOVERED_ANCHOR$CALLBACK_PREFIX(\w+)$CALLBACK_SUFFIX" \
- -r $REPORT_ROOT/coverage.report/ \
- --no-filename \
- | grep -vf $UNCOVERED_IGNORE \
- | tee -a $UNCOVERED_FILE
+CALLBACK_SUFFIX="(?=\(${INPUT_TYPE},\s*${OUTPUT_TYPE},\s*${CONTEXT_TYPE}\))"
+grep -oP "${UNCOVERED_ANCHOR}${CALLBACK_PREFIX}(\w+)${CALLBACK_SUFFIX}" \
+ -r ${REPORT_ROOT}/coverage.report/ \
+ --no-filename \
+ | grep -vf ${UNCOVERED_IGNORE} \
+ | tee -a ${UNCOVERED_FILE}
-rm -rf $REPORT_ROOT
echo "The list of the uncovered functions: $UNCOVERED_FILE"
# Make script fail if uncovered list is not empty.
test ! -s $UNCOVERED_FILE
diff --git a/yql/essentials/core/type_ann/type_ann_join.cpp b/yql/essentials/core/type_ann/type_ann_join.cpp
index cecbaf336a3..66351509dc1 100644
--- a/yql/essentials/core/type_ann/type_ann_join.cpp
+++ b/yql/essentials/core/type_ann/type_ann_join.cpp
@@ -1006,18 +1006,18 @@ namespace NTypeAnnImpl {
return IGraphTransformer::TStatus::Error;
}
- TTypeAnnotationNode::TListType itemTypes;
- if (!EnsureWideStreamBlockType(input->Head(), itemTypes, ctx.Expr)) {
+ TVector<const TItemExprType*> structItems;
+ if (!EnsureBlockListType(input->Head(), structItems, ctx.Expr)) {
return IGraphTransformer::TStatus::Error;
}
- auto streamItemType = input->Head().GetTypeAnn()->Cast<TStreamExprType>()->GetItemType();
+ auto listItemType = input->Head().GetTypeAnn()->Cast<TListExprType>()->GetItemType();
input->SetTypeAnn(ctx.Expr.MakeType<TResourceExprType>(TStringBuilder() <<
- NKikimr::NMiniKQL::BlockStorageResourcePrefix << FormatType(streamItemType)));
+ NKikimr::NMiniKQL::BlockStorageResourcePrefix << FormatType(listItemType)));
return IGraphTransformer::TStatus::Ok;
}
- bool EnsureBlockStorageResource(const TExprNode* resource, const TMultiExprType*& streamItemType, TExtContext& ctx) {
+ bool EnsureBlockStorageResource(const TExprNode* resource, const TStructExprType*& listItemType, TExtContext& ctx) {
using NKikimr::NMiniKQL::BlockStorageResourcePrefix;
if (!EnsureResourceType(*resource, ctx.Expr)) {
@@ -1045,7 +1045,7 @@ namespace NTypeAnnImpl {
return false;
}
- streamItemType = typeNode->GetTypeAnn()->Cast<TTypeExprType>()->GetType()->UserCast<TMultiExprType>(ctx.Expr.GetPosition(resource->Pos()), ctx.Expr);
+ listItemType = typeNode->GetTypeAnn()->Cast<TTypeExprType>()->GetType()->UserCast<TStructExprType>(ctx.Expr.GetPosition(resource->Pos()), ctx.Expr);
return true;
}
@@ -1059,25 +1059,25 @@ namespace NTypeAnnImpl {
return IGraphTransformer::TStatus::Error;
}
- const TMultiExprType* expectedStreamItemType = nullptr;
- if (!EnsureBlockStorageResource(input->Child(0), expectedStreamItemType, ctx)) {
+ const TStructExprType* expectedListItemType = nullptr;
+ if (!EnsureBlockStorageResource(input->Child(0), expectedListItemType, ctx)) {
return IGraphTransformer::TStatus::Error;
}
- TTypeAnnotationNode::TListType itemTypes;
+ TVector<const TItemExprType*> structItems;
if (!EnsureType(*input->Child(1), ctx.Expr)) {
return IGraphTransformer::TStatus::Error;
}
auto inputType = input->Child(1)->GetTypeAnn()->Cast<TTypeExprType>()->GetType();
- if (!EnsureWideBlockType(input->Child(1)->Pos(), *inputType, itemTypes, ctx.Expr)) {
+ if (!EnsureBlockStructType(input->Child(1)->Pos(), *inputType, structItems, ctx.Expr)) {
return IGraphTransformer::TStatus::Error;
}
- auto streamItemType = inputType->Cast<TMultiExprType>();
+ auto listItemType = inputType->Cast<TStructExprType>();
- if (!IsSameAnnotation(*streamItemType, *expectedStreamItemType)) {
+ if (!IsSameAnnotation(*listItemType, *expectedListItemType)) {
ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(input->Pos()),
- TStringBuilder() << "Mismatch between provided stream item type " << static_cast<const TTypeAnnotationNode&>(*streamItemType)
- << "and block storage item type " << static_cast<const TTypeAnnotationNode&>(*expectedStreamItemType)));
+ TStringBuilder() << "Mismatch between provided list item type " << static_cast<const TTypeAnnotationNode&>(*listItemType)
+ << "and block storage item type " << static_cast<const TTypeAnnotationNode&>(*expectedListItemType)));
return IGraphTransformer::TStatus::Error;
}
@@ -1085,14 +1085,13 @@ namespace NTypeAnnImpl {
return IGraphTransformer::TStatus::Error;
}
- TVector<ui32> keyColumns;
+ TVector<TStringBuf> keyColumns;
for (const auto& keyColumnNode : input->Child(2)->Children()) {
- auto position = GetWideBlockFieldPosition(*streamItemType, keyColumnNode->Content());
- if (!position) {
+ if (!listItemType->FindItem(keyColumnNode->Content())) {
ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyColumnNode->Pos()), TStringBuilder() << "Unknown key column: " << keyColumnNode->Content()));
return IGraphTransformer::TStatus::Error;
}
- keyColumns.push_back(*position);
+ keyColumns.push_back(keyColumnNode->Content());
}
auto settingsValidator = [&](TStringBuf settingName, TExprNode& node, TExprContext& ctx) {
@@ -1108,11 +1107,11 @@ namespace NTypeAnnImpl {
}
input->SetTypeAnn(ctx.Expr.MakeType<TResourceExprType>(TStringBuilder() <<
- BlockMapJoinIndexResourcePrefix << FormatType(streamItemType) << BlockMapJoinIndexResourceSeparator << JoinSeq(",", keyColumns)));
+ BlockMapJoinIndexResourcePrefix << FormatType(listItemType) << BlockMapJoinIndexResourceSeparator << JoinSeq(",", keyColumns)));
return IGraphTransformer::TStatus::Ok;
}
- bool EnsureBlockMapJoinIndexResource(const TExprNode* resource, const TMultiExprType*& streamItemType, TVector<TStringBuf>& keyColumns, TExtContext& ctx) {
+ bool EnsureBlockMapJoinIndexResource(const TExprNode* resource, const TStructExprType*& listItemType, TVector<TStringBuf>& keyColumns, TExtContext& ctx) {
using NKikimr::NMiniKQL::BlockMapJoinIndexResourcePrefix;
using NKikimr::NMiniKQL::BlockMapJoinIndexResourceSeparator;
@@ -1145,7 +1144,7 @@ namespace NTypeAnnImpl {
return false;
}
- streamItemType = resourceTypeNode->GetTypeAnn()->Cast<TTypeExprType>()->GetType()->UserCast<TMultiExprType>(ctx.Expr.GetPosition(resource->Pos()), ctx.Expr);
+ listItemType = resourceTypeNode->GetTypeAnn()->Cast<TTypeExprType>()->GetType()->UserCast<TStructExprType>(ctx.Expr.GetPosition(resource->Pos()), ctx.Expr);
return true;
}
@@ -1160,7 +1159,7 @@ namespace NTypeAnnImpl {
return IGraphTransformer::TStatus::Error;
}
const auto joinKind = input->Child(3)->Content();
- if (joinKind != "Inner" && joinKind != "Left" && joinKind != "LeftSemi" && joinKind != "LeftOnly"&& joinKind != "Cross") {
+ if (joinKind != "Inner" && joinKind != "Left" && joinKind != "LeftSemi" && joinKind != "LeftOnly" && joinKind != "Cross") {
ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(input->Child(3)->Pos()), TStringBuilder() << "Unknown join kind: " << joinKind
<< ", supported: Inner, Left, LeftSemi, LeftOnly, Cross"));
return IGraphTransformer::TStatus::Error;
@@ -1173,33 +1172,32 @@ namespace NTypeAnnImpl {
leftItemTypes.pop_back();
auto leftStreamItemType = input->Head().GetTypeAnn()->Cast<TStreamExprType>()->GetItemType()->Cast<TMultiExprType>();
- const TMultiExprType* expectedRightStreamItemType = nullptr;
+ const TStructExprType* expectedRightListItemType = nullptr;
TVector<TStringBuf> expectedRightKeyColumns;
if (joinKind != "Cross") {
- if (!EnsureBlockMapJoinIndexResource(input->Child(1), expectedRightStreamItemType, expectedRightKeyColumns, ctx)) {
+ if (!EnsureBlockMapJoinIndexResource(input->Child(1), expectedRightListItemType, expectedRightKeyColumns, ctx)) {
return IGraphTransformer::TStatus::Error;
}
} else {
- if (!EnsureBlockStorageResource(input->Child(1), expectedRightStreamItemType, ctx)) {
+ if (!EnsureBlockStorageResource(input->Child(1), expectedRightListItemType, ctx)) {
return IGraphTransformer::TStatus::Error;
}
}
- TTypeAnnotationNode::TListType rightItemTypes;
+ TVector<const TItemExprType*> rightStructItems;
if (!EnsureType(*input->Child(2), ctx.Expr)) {
return IGraphTransformer::TStatus::Error;
}
auto rightInputType = input->Child(2)->GetTypeAnn()->Cast<TTypeExprType>()->GetType();
- if (!EnsureWideBlockType(input->Child(2)->Pos(), *rightInputType, rightItemTypes, ctx.Expr)) {
+ if (!EnsureBlockStructType(input->Child(2)->Pos(), *rightInputType, rightStructItems, ctx.Expr)) {
return IGraphTransformer::TStatus::Error;
}
- rightItemTypes.pop_back();
- auto rightStreamItemType = rightInputType->Cast<TMultiExprType>();
+ auto rightListItemType = rightInputType->Cast<TStructExprType>();
- if (!IsSameAnnotation(*rightStreamItemType, *expectedRightStreamItemType)) {
+ if (!IsSameAnnotation(*rightListItemType, *expectedRightListItemType)) {
ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(input->Pos()),
- TStringBuilder() << "Mismatch between provided right stream item type " << static_cast<const TTypeAnnotationNode&>(*rightStreamItemType)
- << "and right block storage item type " << static_cast<const TTypeAnnotationNode&>(*expectedRightStreamItemType)));
+ TStringBuilder() << "Mismatch between provided right list item type " << static_cast<const TTypeAnnotationNode&>(*rightListItemType)
+ << "and right block storage item type " << static_cast<const TTypeAnnotationNode&>(*expectedRightListItemType)));
return IGraphTransformer::TStatus::Error;
}
@@ -1208,69 +1206,78 @@ namespace NTypeAnnImpl {
return IGraphTransformer::TStatus::Error;
}
- auto checkKeyColumns = [&](std::unordered_set<ui32>& keyColumns, bool isLeft, const TExprNode& keyColumnsNode, const TMultiExprType* itemType) {
- if (joinKind == "Cross" && !keyColumnsNode.Children().empty()) {
- ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyColumnsNode.Pos()), "Specifying key columns is not allowed for cross join"));
- return false;
- }
- for (const auto& keyColumnNode : keyColumnsNode.Children()) {
- auto position = GetWideBlockFieldPosition(*itemType, keyColumnNode->Content());
- if (!position) {
- ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyColumnNode->Pos()), TStringBuilder() << "Unknown " << (isLeft ? "left" : "right") << " key column: " << keyColumnNode->Content()));
- return false;
- }
- keyColumns.insert(*position);
+ for (size_t childIdx = 4; childIdx <= 7; childIdx++) {
+ if (!EnsureTupleOfAtoms(*input->Child(childIdx), ctx.Expr)) {
+ return IGraphTransformer::TStatus::Error;
}
- return true;
- };
+ }
- auto checkKeyDrops = [&](std::unordered_set<ui32>& keyDrops, bool isLeft, const std::unordered_set<ui32>& keyColumns, const TExprNode& keyDropsNode, const TMultiExprType* itemType) {
- if (joinKind == "Cross" && !keyDropsNode.Children().empty()) {
- ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyDropsNode.Pos()), "Specifying key drops is not allowed for cross join"));
- return false;
- }
- for (const auto& keyDropNode : keyDropsNode.Children()) {
- auto position = GetWideBlockFieldPosition(*itemType, keyDropNode->Content());
- if (!position) {
- ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyDropNode->Pos()), TStringBuilder() << "Unknown " << (isLeft ? "left" : "right") << " key column: " << keyDropNode->Content()));
- return false;
- }
- if (!keyColumns.contains(*position)) {
- ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyDropNode->Pos()), TStringBuilder() << "Attempted to drop " << (isLeft ? "left" : "right") << " non-key column: " << keyDropNode->Content()));
- return false;
- }
- if (!keyDrops.insert(*position).second) {
- ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyDropNode->Pos()), TStringBuilder() << "Duplicated " << (isLeft ? "left" : "right") << " key drop: " << keyDropNode->Content()));
- return false;
- }
- }
- return true;
- };
+ const auto& leftKeyColumnsNode = *input->Child(4);
+ const auto& leftKeyDropsNode = *input->Child(5);
+ const auto& rightKeyColumnsNode = *input->Child(6);
+ const auto& rightKeyDropsNode = *input->Child(7);
- for (size_t childIdx = 4; childIdx <= 7; childIdx++) {
- if (!EnsureTupleOfAtoms(*input->Child(childIdx), ctx.Expr)) {
+ if (joinKind == "Cross") {
+ if (!leftKeyColumnsNode.Children().empty() || !rightKeyColumnsNode.Children().empty()) {
+ ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(input->Pos()), "Specifying key columns is not allowed for cross join"));
+ return IGraphTransformer::TStatus::Error;
+ }
+ if (!leftKeyDropsNode.Children().empty() || !rightKeyDropsNode.Children().empty()) {
+ ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(input->Pos()), "Specifying key drops is not allowed for cross join"));
return IGraphTransformer::TStatus::Error;
}
}
std::unordered_set<ui32> leftKeyColumns;
- if (!checkKeyColumns(leftKeyColumns, true, *input->Child(4), leftStreamItemType)) {
- return IGraphTransformer::TStatus::Error;
+ for (const auto& keyColumnNode : leftKeyColumnsNode.Children()) {
+ auto position = GetWideBlockFieldPosition(*leftStreamItemType, keyColumnNode->Content());
+ if (!position) {
+ ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyColumnNode->Pos()), TStringBuilder() << "Unknown left key column: " << keyColumnNode->Content()));
+ return IGraphTransformer::TStatus::Error;
+ }
+ leftKeyColumns.insert(*position);
}
std::unordered_set<ui32> leftKeyDrops;
- if (!checkKeyDrops(leftKeyDrops, true, leftKeyColumns, *input->Child(5), leftStreamItemType)) {
- return IGraphTransformer::TStatus::Error;
+ for (const auto& keyDropNode : leftKeyDropsNode.Children()) {
+ auto position = GetWideBlockFieldPosition(*leftStreamItemType, keyDropNode->Content());
+ if (!position) {
+ ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyDropNode->Pos()), TStringBuilder() << "Unknown left key column: " << keyDropNode->Content()));
+ return IGraphTransformer::TStatus::Error;
+ }
+ if (!leftKeyColumns.contains(*position)) {
+ ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyDropNode->Pos()), TStringBuilder() << "Attempted to drop left non-key column: " << keyDropNode->Content()));
+ return IGraphTransformer::TStatus::Error;
+ }
+ if (!leftKeyDrops.insert(*position).second) {
+ ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyDropNode->Pos()), TStringBuilder() << "Duplicated left key drop: " << keyDropNode->Content()));
+ return IGraphTransformer::TStatus::Error;
+ }
}
- std::unordered_set<ui32> rightKeyColumns;
- if (!checkKeyColumns(rightKeyColumns, true, *input->Child(6), rightStreamItemType)) {
- return IGraphTransformer::TStatus::Error;
+ THashSet<TStringBuf> rightKeyColumns;
+ for (const auto& keyColumnNode : rightKeyColumnsNode.Children()) {
+ if (!rightListItemType->FindItem(keyColumnNode->Content())) {
+ ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyColumnNode->Pos()), TStringBuilder() << "Unknown right key column: " << keyColumnNode->Content()));
+ return IGraphTransformer::TStatus::Error;
+ }
+ rightKeyColumns.insert(keyColumnNode->Content());
}
- std::unordered_set<ui32> rightKeyDrops;
- if (!checkKeyDrops(rightKeyDrops, false, rightKeyColumns, *input->Child(7), rightStreamItemType)) {
- return IGraphTransformer::TStatus::Error;
+ THashSet<TStringBuf> rightKeyDrops;
+ for (const auto& keyDropNode : rightKeyDropsNode.Children()) {
+ if (!rightListItemType->FindItem(keyDropNode->Content())) {
+ ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyDropNode->Pos()), TStringBuilder() << "Unknown right key column: " << keyDropNode->Content()));
+ return IGraphTransformer::TStatus::Error;
+ }
+ if (!rightKeyColumns.contains(keyDropNode->Content())) {
+ ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyDropNode->Pos()), TStringBuilder() << "Attempted to drop right non-key column: " << keyDropNode->Content()));
+ return IGraphTransformer::TStatus::Error;
+ }
+ if (!rightKeyDrops.insert(keyDropNode->Content()).second) {
+ ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(keyDropNode->Pos()), TStringBuilder() << "Duplicated right key drop: " << keyDropNode->Content()));
+ return IGraphTransformer::TStatus::Error;
+ }
}
if (input->Child(6)->ChildrenSize() != expectedRightKeyColumns.size()) {
@@ -1296,13 +1303,13 @@ namespace NTypeAnnImpl {
}
if (joinKind != "LeftSemi" && joinKind != "LeftOnly") {
- for (ui32 pos = 0; pos < rightItemTypes.size(); pos++) {
- if (rightKeyDrops.contains(pos)) {
+ for (auto item : rightStructItems) {
+ if (rightKeyDrops.contains(item->GetName())) {
continue;
}
- auto columnType = rightItemTypes[pos];
- if (joinKind == "Left" && !rightItemTypes[pos]->IsOptionalOrNull()) {
+ auto columnType = item->GetItemType();
+ if (joinKind == "Left" && !columnType->IsOptionalOrNull()) {
columnType = ctx.Expr.MakeType<TOptionalExprType>(columnType);
}
diff --git a/yql/essentials/core/type_ann/type_ann_list.cpp b/yql/essentials/core/type_ann/type_ann_list.cpp
index 8601c606501..e7f6c81ba6d 100644
--- a/yql/essentials/core/type_ann/type_ann_list.cpp
+++ b/yql/essentials/core/type_ann/type_ann_list.cpp
@@ -2760,6 +2760,7 @@ namespace {
}
IGraphTransformer::TStatus UnionAllWrapper(const TExprNode::TPtr& input, TExprNode::TPtr& output, TContext& ctx) {
+ const bool checkHashes = input->IsCallable("Union");
switch (input->ChildrenSize()) {
case 0U:
output = ctx.Expr.NewCallable(input->Pos(), "EmptyList", {});
@@ -2857,6 +2858,16 @@ namespace {
addResultItems(structType);
}
+ if (checkHashes) {
+ for (const auto& r : resultItems) {
+ if (!r->GetItemType()->IsHashable() || !r->GetItemType()->IsEquatable()) {
+ ctx.Expr.AddError(TIssue(ctx.Expr.GetPosition(input->Pos()), TStringBuilder() << "Expected hashable and equatable type for column: " <<
+ r->GetName() << ", but got: " << *r->GetItemType()));
+ return IGraphTransformer::TStatus::Error;
+ }
+ }
+ }
+
auto structType = ctx.Expr.MakeType<TStructExprType>(resultItems);
if (!structType->Validate(input->Pos(), ctx.Expr)) {
return IGraphTransformer::TStatus::Error;
diff --git a/yql/essentials/core/ut/ya.make b/yql/essentials/core/ut/ya.make
index e3a03ad340b..5fdab55b08e 100644
--- a/yql/essentials/core/ut/ya.make
+++ b/yql/essentials/core/ut/ya.make
@@ -4,7 +4,6 @@ SRCS(
yql_column_order_ut.cpp
yql_expr_constraint_ut.cpp
yql_expr_optimize_ut.cpp
- yql_expr_type_annotation_ut.cpp
yql_library_compiler_ut.cpp
yql_opt_utils_ut.cpp
yql_udf_index_ut.cpp
diff --git a/yql/essentials/core/ut/yql_expr_constraint_ut.cpp b/yql/essentials/core/ut/yql_expr_constraint_ut.cpp
index 45d9f6285de..a4145b9c5a8 100644
--- a/yql/essentials/core/ut/yql_expr_constraint_ut.cpp
+++ b/yql/essentials/core/ut/yql_expr_constraint_ut.cpp
@@ -1124,6 +1124,28 @@ Y_UNIT_TEST_SUITE(TYqlExprConstraints) {
CheckConstraint<TUniqueConstraintNode>(exprRoot, "LazyList", "Unique((one,{two,xxx},yyy))");
}
+ Y_UNIT_TEST(UniqueNarrowCast) {
+ const auto s = R"((
+ (let res (DataSink 'result))
+ (let list (AsList
+ (AsStruct '('key (String '4)) '('subkey (String 'c)) '('value (String 'x)))
+ (AsStruct '('key (String '1)) '('subkey (String 'b)) '('value (String 'y)))
+ (AsStruct '('key (String '4)) '('subkey (String 'b)) '('value (String 'z)))
+ ))
+ (let list (AssumeUnique list '('key 'subkey)))
+ (let list (Map list (lambda '(item)
+ (SafeCast item (StructType '('key (DataType 'String)) '('value (DataType 'String))))
+ )))
+ (let world (Write! world res (Key) list '()))
+ (let world (Commit! world res))
+ (return world)
+ ))";
+
+ TExprContext exprCtx;
+ const auto exprRoot = ParseAndAnnotate(s, exprCtx);
+ CheckConstraint<TUniqueConstraintNode>(exprRoot, "Map", "");
+ }
+
Y_UNIT_TEST(Distinct) {
const auto s = R"((
(let res (DataSink 'result))
diff --git a/yql/essentials/core/yql_expr_constraint.cpp b/yql/essentials/core/yql_expr_constraint.cpp
index fdfc21946be..e67557d9645 100644
--- a/yql/essentials/core/yql_expr_constraint.cpp
+++ b/yql/essentials/core/yql_expr_constraint.cpp
@@ -665,12 +665,18 @@ private:
};
const auto filterForUnique = [inItemType, outItemType](const TPartOfConstraintBase::TPathType& path) {
- const auto castResult = CastResult<Strict>(TPartOfConstraintBase::GetSubTypeByPath(path, *inItemType), TPartOfConstraintBase::GetSubTypeByPath(path, *outItemType));
- return NUdf::ECastOptions::Complete == castResult || NUdf::ECastOptions::MayFail == castResult;
+ if (const auto outType = TPartOfConstraintBase::GetSubTypeByPath(path, *outItemType)) {
+ const auto castResult = CastResult<Strict>(TPartOfConstraintBase::GetSubTypeByPath(path, *inItemType), outType);
+ return NUdf::ECastOptions::Complete == castResult || NUdf::ECastOptions::MayFail == castResult;
+ }
+ return false;
};
const auto filterForDistinct = [inItemType, outItemType](const TPartOfConstraintBase::TPathType& path) {
- return NUdf::ECastOptions::Complete == CastResult<Strict>(TPartOfConstraintBase::GetSubTypeByPath(path, *inItemType), TPartOfConstraintBase::GetSubTypeByPath(path, *outItemType));
+ if (const auto outType = TPartOfConstraintBase::GetSubTypeByPath(path, *outItemType)) {
+ return NUdf::ECastOptions::Complete == CastResult<Strict>(TPartOfConstraintBase::GetSubTypeByPath(path, *inItemType), outType);
+ }
+ return false;
};
FilterFromHead<TSortedConstraintNode>(input, filter, ctx);
diff --git a/yql/essentials/core/yql_expr_type_annotation.h b/yql/essentials/core/yql_expr_type_annotation.h
index d23ce163e3c..9bad092f76c 100644
--- a/yql/essentials/core/yql_expr_type_annotation.h
+++ b/yql/essentials/core/yql_expr_type_annotation.h
@@ -355,8 +355,4 @@ TStringBuf NormalizeCallableName(TStringBuf name);
void CheckExpectedTypeAndColumnOrder(const TExprNode& node, TExprContext& ctx, TTypeAnnotationContext& typesCtx);
-namespace NBlockStreamIO {
- constexpr bool ReplicateScalars = true;
-} // namespace NBlockStreamIO
-
}
diff --git a/yql/essentials/core/yql_graph_transformer.h b/yql/essentials/core/yql_graph_transformer.h
index f1f4ff2fa64..e06ab6d6468 100644
--- a/yql/essentials/core/yql_graph_transformer.h
+++ b/yql/essentials/core/yql_graph_transformer.h
@@ -360,7 +360,7 @@ public:
const auto it = Callbacks_.find(input.Get());
YQL_ENSURE(it != Callbacks_.cend());
auto& future = it->second;
- YQL_ENSURE(future.HasValue());
+ HandleFutureException(future);
const auto status = future.GetValue()(input, output, ctx);
Callbacks_.erase(it);
return status;
diff --git a/yql/essentials/core/yql_type_annotation.cpp b/yql/essentials/core/yql_type_annotation.cpp
index 6de6ecf8bdf..dbe6f27ed03 100644
--- a/yql/essentials/core/yql_type_annotation.cpp
+++ b/yql/essentials/core/yql_type_annotation.cpp
@@ -310,7 +310,7 @@ IGraphTransformer::TStatus TTypeAnnotationContext::SetColumnOrder(const TExprNod
return IGraphTransformer::TStatus::Error;
}
- YQL_CLOG(DEBUG, Core) << "Setting column order " << FormatColumnOrder(columnOrder, 10) << " for " << node.Content() << "#" << node.UniqueId();
+ YQL_CLOG(TRACE, Core) << "Setting column order " << FormatColumnOrder(columnOrder, 10) << " for " << node.Content() << "#" << node.UniqueId();
ColumnOrderStorage->Set(node.UniqueId(), columnOrder);
return IGraphTransformer::TStatus::Ok;
@@ -537,6 +537,12 @@ bool TModuleResolver::AddFromMemory(const TString& fullName, const TString& modu
ctx.IssueManager.RaiseIssue(addSubIssues(std::move(issue), astRes.Issues));
}
+ if (!sExpr && ModuleChecker) {
+ if (!ModuleChecker(query, fullName, ctx)) {
+ return false;
+ }
+ }
+
TLibraryCohesion cohesion;
if (!CompileExpr(*astRes.Root, cohesion, LibsContext)) {
ctx.AddError(addSubIssues(TIssue(pos, TStringBuilder() << "Failed to compile: " << fullName), LibsContext.IssueManager.GetIssues()));
@@ -647,7 +653,7 @@ IModuleResolver::TPtr TModuleResolver::CreateMutableChild() const {
throw yexception() << "Module resolver should not contain user data and URL loader";
}
- return std::make_shared<TModuleResolver>(Translators, &Modules, LibsContext.NextUniqueId, ClusterMapping, SqlFlags, OptimizeLibraries, KnownPackages, Libs, FileAliasPrefix);
+ return std::make_shared<TModuleResolver>(Translators, &Modules, LibsContext.NextUniqueId, ClusterMapping, SqlFlags, OptimizeLibraries, KnownPackages, Libs, FileAliasPrefix, ModuleChecker);
}
void TModuleResolver::SetFileAliasPrefix(TString&& prefix) {
diff --git a/yql/essentials/core/yql_type_annotation.h b/yql/essentials/core/yql_type_annotation.h
index 401e01454ac..ab2db6e9fbd 100644
--- a/yql/essentials/core/yql_type_annotation.h
+++ b/yql/essentials/core/yql_type_annotation.h
@@ -41,15 +41,19 @@ public:
class TModuleResolver : public IModuleResolver {
public:
+ using TModuleChecker = std::function<bool(const TString& query, const TString& fileName, TExprContext& ctx)>;
+
TModuleResolver(const NSQLTranslation::TTranslators& translators, TModulesTable&& modules,
ui64 nextUniqueId, const THashMap<TString, TString>& clusterMapping,
- const THashSet<TString>& sqlFlags, bool optimizeLibraries = true, THolder<TExprContext> ownedCtx = {})
+ const THashSet<TString>& sqlFlags, bool optimizeLibraries = true,
+ THolder<TExprContext> ownedCtx = {}, TModuleChecker moduleChecker = {})
: Translators(translators)
, OwnedCtx(std::move(ownedCtx))
, LibsContext(nextUniqueId)
, Modules(std::move(modules))
, ClusterMapping(clusterMapping)
, SqlFlags(sqlFlags)
+ , ModuleChecker(moduleChecker)
, OptimizeLibraries(optimizeLibraries)
{
if (OwnedCtx) {
@@ -60,7 +64,7 @@ public:
TModuleResolver(const NSQLTranslation::TTranslators& translators, const TModulesTable* parentModules,
ui64 nextUniqueId, const THashMap<TString, TString>& clusterMapping,
const THashSet<TString>& sqlFlags, bool optimizeLibraries, const TSet<TString>& knownPackages, const THashMap<TString,
- THashMap<int, TLibraryCohesion>>& libs, const TString& fileAliasPrefix)
+ THashMap<int, TLibraryCohesion>>& libs, const TString& fileAliasPrefix, TModuleChecker moduleChecker)
: Translators(translators)
, ParentModules(parentModules)
, LibsContext(nextUniqueId)
@@ -68,6 +72,7 @@ public:
, Libs(libs)
, ClusterMapping(clusterMapping)
, SqlFlags(sqlFlags)
+ , ModuleChecker(moduleChecker)
, OptimizeLibraries(optimizeLibraries)
, FileAliasPrefix(fileAliasPrefix)
{
@@ -102,6 +107,10 @@ public:
SqlFlags = flags;
}
+ void SetModuleChecker(TModuleChecker moduleChecker) {
+ ModuleChecker = moduleChecker;
+ }
+
void RegisterPackage(const TString& package) override;
bool SetPackageDefaultVersion(const TString& package, ui32 version) override;
const TExportTable* GetModule(const TString& module) const override;
@@ -139,6 +148,7 @@ private:
TModulesTable Modules;
THashMap<TString, TString> ClusterMapping;
THashSet<TString> SqlFlags;
+ TModuleChecker ModuleChecker;
const bool OptimizeLibraries;
THolder<TExprContext::TFreezeGuard> FreezeGuard;
TString FileAliasPrefix;
diff --git a/yql/essentials/data/language/pragmas_opensource.json b/yql/essentials/data/language/pragmas_opensource.json
index 4e24ec9b5a8..26cc1c777a0 100644
--- a/yql/essentials/data/language/pragmas_opensource.json
+++ b/yql/essentials/data/language/pragmas_opensource.json
@@ -1 +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"}]
+[{"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":"DisableDistinctOverKeys"},{"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":"DistinctOverKeys"},{"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 5f7c7b05c8a..783c4e6825d 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":3232134},{"parent":"FUNC","rule":"ADAPTIVE_WARD_HISTOGRAM","sum":1},{"parent":"FUNC","rule":"ADDTIMEZONE","sum":397},{"parent":"FUNC","rule":"AGGLIST","sum":1226},{"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":1581740},{"parent":"FUNC","rule":"AGGREGATE_LIST","sum":19716719},{"parent":"FUNC","rule":"AGGREGATE_LIST_","sum":2},{"parent":"FUNC","rule":"AGGREGATE_LIST_DISTINCT","sum":12799822},{"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":782},{"parent":"FUNC","rule":"AGGREGATE_LIST_distINCT","sum":4},{"parent":"FUNC","rule":"AGGREGATE_LIST_distinct","sum":18918},{"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":317},{"parent":"FUNC","rule":"AGGREGATE_list_distinct","sum":1},{"parent":"FUNC","rule":"AGGREGATIONFACTORY","sum":57},{"parent":"FUNC","rule":"AGGREGATION_FACTORY","sum":66704},{"parent":"FUNC","rule":"AGGREGate_List","sum":2},{"parent":"FUNC","rule":"AGGR_LIST","sum":2979},{"parent":"FUNC","rule":"AGGR_LIST_DISTINCT","sum":44423},{"parent":"FUNC","rule":"AGGReGATE_LIST","sum":3},{"parent":"FUNC","rule":"AGGReGate_list","sum":1},{"parent":"FUNC","rule":"AGG_LIST","sum":5134479},{"parent":"FUNC","rule":"AGG_LIST_","sum":5},{"parent":"FUNC","rule":"AGG_LIST_DISTINCT","sum":2873803},{"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":6695},{"parent":"FUNC","rule":"AGG_List_DISTINCT","sum":39},{"parent":"FUNC","rule":"AGG_List_Distinct","sum":917},{"parent":"FUNC","rule":"AGG_List_distinct","sum":103},{"parent":"FUNC","rule":"AGG_lIST_DISTINCT","sum":5},{"parent":"FUNC","rule":"AGG_list","sum":17486},{"parent":"FUNC","rule":"AGG_list_DISTINCT","sum":3060},{"parent":"FUNC","rule":"AGG_list_distinct","sum":787},{"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":194},{"parent":"FUNC","rule":"ASDict","sum":625},{"parent":"FUNC","rule":"ASEnum","sum":84},{"parent":"FUNC","rule":"ASIN","sum":2},{"parent":"FUNC","rule":"ASLIST","sum":27649},{"parent":"FUNC","rule":"ASLIst","sum":4},{"parent":"FUNC","rule":"ASList","sum":23452},{"parent":"FUNC","rule":"ASListStrict","sum":3},{"parent":"FUNC","rule":"ASSET","sum":17},{"parent":"FUNC","rule":"ASSTRUCT","sum":2713},{"parent":"FUNC","rule":"ASSet","sum":5},{"parent":"FUNC","rule":"ASStruct","sum":2337},{"parent":"FUNC","rule":"ASTAGGED","sum":15},{"parent":"FUNC","rule":"ASTAgged","sum":3},{"parent":"FUNC","rule":"ASTUPLE","sum":1583},{"parent":"FUNC","rule":"ASTagged","sum":63},{"parent":"FUNC","rule":"ASTuple","sum":5821},{"parent":"FUNC","rule":"AS_DICT","sum":6},{"parent":"FUNC","rule":"AS_LIST","sum":130},{"parent":"FUNC","rule":"AS_STRUCT","sum":13398},{"parent":"FUNC","rule":"AS_TABLE","sum":33},{"parent":"FUNC","rule":"AS_TUPLE","sum":850},{"parent":"FUNC","rule":"ASdict","sum":4},{"parent":"FUNC","rule":"ASlist","sum":1025},{"parent":"FUNC","rule":"ASstruct","sum":41},{"parent":"FUNC","rule":"AStagged","sum":3},{"parent":"FUNC","rule":"AStuple","sum":406},{"parent":"FUNC","rule":"AVG","sum":9095867},{"parent":"FUNC","rule":"AVGIF","sum":15},{"parent":"FUNC","rule":"AVG_IF","sum":732975},{"parent":"FUNC","rule":"AVG_If","sum":8},{"parent":"FUNC","rule":"AVG_if","sum":14339},{"parent":"FUNC","rule":"AVg","sum":4},{"parent":"FUNC","rule":"Abs","sum":323222},{"parent":"FUNC","rule":"AdaptiveDistanceHistogramCDF","sum":1},{"parent":"FUNC","rule":"AdaptiveWardHistogram","sum":1},{"parent":"FUNC","rule":"AdaptiveWardHistogramCDF","sum":3},{"parent":"FUNC","rule":"AdaptiveWeightHistogram","sum":57407},{"parent":"FUNC","rule":"AddMember","sum":881712},{"parent":"FUNC","rule":"AddTimeZone","sum":515639},{"parent":"FUNC","rule":"AddTimezone","sum":12049138},{"parent":"FUNC","rule":"Addtimezone","sum":60},{"parent":"FUNC","rule":"AggLIst","sum":1},{"parent":"FUNC","rule":"AggList","sum":20182},{"parent":"FUNC","rule":"AggListDistinct","sum":77},{"parent":"FUNC","rule":"Agg_LIST","sum":60},{"parent":"FUNC","rule":"Agg_LIST_DISTINCT","sum":22},{"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":129430},{"parent":"FUNC","rule":"Agg_List_","sum":8},{"parent":"FUNC","rule":"Agg_List_DISTINCT","sum":732},{"parent":"FUNC","rule":"Agg_List_Distinct","sum":2498},{"parent":"FUNC","rule":"Agg_List_distinct","sum":4},{"parent":"FUNC","rule":"Agg_list","sum":35635},{"parent":"FUNC","rule":"Agg_list_distinct","sum":8131},{"parent":"FUNC","rule":"Aggergate_List","sum":1},{"parent":"FUNC","rule":"Agglist","sum":93},{"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":42285},{"parent":"FUNC","rule":"AggregateFlatten","sum":52398},{"parent":"FUNC","rule":"AggregateList","sum":40590},{"parent":"FUNC","rule":"AggregateListDistinct","sum":7692},{"parent":"FUNC","rule":"AggregateTransformInput","sum":25485},{"parent":"FUNC","rule":"AggregateTransformOutput","sum":44900},{"parent":"FUNC","rule":"Aggregate_BY","sum":241},{"parent":"FUNC","rule":"Aggregate_By","sum":136915},{"parent":"FUNC","rule":"Aggregate_LIST","sum":852},{"parent":"FUNC","rule":"Aggregate_LIST_DISTINCT","sum":2},{"parent":"FUNC","rule":"Aggregate_LIst","sum":1},{"parent":"FUNC","rule":"Aggregate_List","sum":345267},{"parent":"FUNC","rule":"Aggregate_List_Distinct","sum":5221},{"parent":"FUNC","rule":"Aggregate_List_distinct","sum":1312},{"parent":"FUNC","rule":"Aggregate_by","sum":79},{"parent":"FUNC","rule":"Aggregate_list","sum":228827},{"parent":"FUNC","rule":"Aggregate_list_DISTINCT","sum":36},{"parent":"FUNC","rule":"Aggregate_list_Distinct","sum":11},{"parent":"FUNC","rule":"Aggregate_list_distinct","sum":201741},{"parent":"FUNC","rule":"AggregationFactory","sum":1511775},{"parent":"FUNC","rule":"Apply","sum":1},{"parent":"FUNC","rule":"AsAtom","sum":687771},{"parent":"FUNC","rule":"AsDict","sum":2926107},{"parent":"FUNC","rule":"AsDictStrict","sum":4464},{"parent":"FUNC","rule":"AsEnum","sum":50920},{"parent":"FUNC","rule":"AsLIST","sum":917},{"parent":"FUNC","rule":"AsLIst","sum":2758},{"parent":"FUNC","rule":"AsLisT","sum":1503},{"parent":"FUNC","rule":"AsList","sum":17319174},{"parent":"FUNC","rule":"AsListStrict","sum":86350},{"parent":"FUNC","rule":"AsListstrict","sum":1},{"parent":"FUNC","rule":"AsSTruct","sum":374},{"parent":"FUNC","rule":"AsSet","sum":1593946},{"parent":"FUNC","rule":"AsSetStrict","sum":11367},{"parent":"FUNC","rule":"AsStruct","sum":23521151},{"parent":"FUNC","rule":"AsTAgged","sum":271},{"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":183477},{"parent":"FUNC","rule":"AsTuPle","sum":1},{"parent":"FUNC","rule":"AsTuple","sum":30262710},{"parent":"FUNC","rule":"AsTupleunwrap","sum":4},{"parent":"FUNC","rule":"AsVariant","sum":357237},{"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":805},{"parent":"FUNC","rule":"Asdict","sum":182},{"parent":"FUNC","rule":"AslIst","sum":14},{"parent":"FUNC","rule":"Aslist","sum":23613},{"parent":"FUNC","rule":"Asset","sum":49},{"parent":"FUNC","rule":"Asstruct","sum":413},{"parent":"FUNC","rule":"AssumeStrict","sum":2600},{"parent":"FUNC","rule":"Astagged","sum":166},{"parent":"FUNC","rule":"Astuple","sum":748},{"parent":"FUNC","rule":"AtomCode","sum":522566},{"parent":"FUNC","rule":"Avg","sum":139250},{"parent":"FUNC","rule":"Avg_IF","sum":162},{"parent":"FUNC","rule":"Avg_If","sum":126},{"parent":"FUNC","rule":"Avg_if","sum":223},{"parent":"FUNC","rule":"BIT_AND","sum":4},{"parent":"FUNC","rule":"BIT_OR","sum":38693},{"parent":"FUNC","rule":"BIT_XOR","sum":435623},{"parent":"FUNC","rule":"BOOL_AND","sum":266061},{"parent":"FUNC","rule":"BOOL_OR","sum":878969},{"parent":"FUNC","rule":"BOOL_XOR","sum":46},{"parent":"FUNC","rule":"BOOL_and","sum":2},{"parent":"FUNC","rule":"BOOl_OR","sum":380},{"parent":"FUNC","rule":"BOTTOM","sum":11612},{"parent":"FUNC","rule":"BOTTOM_BY","sum":47377},{"parent":"FUNC","rule":"BOTTOM_by","sum":2},{"parent":"FUNC","rule":"Bool","sum":1391},{"parent":"FUNC","rule":"Bool_And","sum":118},{"parent":"FUNC","rule":"Bool_Or","sum":585},{"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":101},{"parent":"FUNC","rule":"Bottom_by","sum":1648},{"parent":"FUNC","rule":"ByteAt","sum":14153},{"parent":"FUNC","rule":"Bytes","sum":5},{"parent":"FUNC","rule":"CHAR_LENGTH","sum":373},{"parent":"FUNC","rule":"COALECSE","sum":1},{"parent":"FUNC","rule":"COALESCE","sum":51725079},{"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":2731},{"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":20939},{"parent":"FUNC","rule":"COS","sum":4},{"parent":"FUNC","rule":"COUNT","sum":52772805},{"parent":"FUNC","rule":"COUNTD","sum":4},{"parent":"FUNC","rule":"COUNTDISTINCTESTIMATE","sum":609},{"parent":"FUNC","rule":"COUNTDistinctEstimate","sum":7},{"parent":"FUNC","rule":"COUNTIF","sum":15625},{"parent":"FUNC","rule":"COUNT_","sum":1},{"parent":"FUNC","rule":"COUNT_IF","sum":24112936},{"parent":"FUNC","rule":"COUNT_IF_","sum":24},{"parent":"FUNC","rule":"COUNT_If","sum":12952},{"parent":"FUNC","rule":"COUNT_iF","sum":44},{"parent":"FUNC","rule":"COUNT_if","sum":19513},{"parent":"FUNC","rule":"COUNt","sum":1261},{"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":40},{"parent":"FUNC","rule":"COVAR","sum":2852},{"parent":"FUNC","rule":"COVARIANCE","sum":1525},{"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":187},{"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":6625},{"parent":"FUNC","rule":"CURRENTUTCDate","sum":89},{"parent":"FUNC","rule":"CURRENT_UTC_DATE","sum":8},{"parent":"FUNC","rule":"CUrrentUTCDate","sum":1},{"parent":"FUNC","rule":"CallableArgument","sum":10209},{"parent":"FUNC","rule":"CallableArgumentType","sum":19040},{"parent":"FUNC","rule":"CallableResultType","sum":117},{"parent":"FUNC","rule":"CallableType","sum":179745},{"parent":"FUNC","rule":"CallableTypeHandle","sum":5746},{"parent":"FUNC","rule":"Ceil","sum":3},{"parent":"FUNC","rule":"ChooseMembers","sum":2491929},{"parent":"FUNC","rule":"Choosemembers","sum":21065},{"parent":"FUNC","rule":"ChosenMembers","sum":8},{"parent":"FUNC","rule":"ClearBit","sum":30103},{"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":725779},{"parent":"FUNC","rule":"Collect","sum":1},{"parent":"FUNC","rule":"CollectList","sum":1},{"parent":"FUNC","rule":"CombineMembers","sum":506545},{"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":157394},{"parent":"FUNC","rule":"CountIF","sum":81},{"parent":"FUNC","rule":"CountIf","sum":511},{"parent":"FUNC","rule":"Count_IF","sum":15818},{"parent":"FUNC","rule":"Count_If","sum":42501},{"parent":"FUNC","rule":"Count_if","sum":323427},{"parent":"FUNC","rule":"Countif","sum":12},{"parent":"FUNC","rule":"CurrentAuthenticatedUser","sum":90263},{"parent":"FUNC","rule":"CurrentDatetime","sum":1},{"parent":"FUNC","rule":"CurrentOperationId","sum":89788},{"parent":"FUNC","rule":"CurrentOperationSharedId","sum":5682},{"parent":"FUNC","rule":"CurrentTZDate","sum":598},{"parent":"FUNC","rule":"CurrentTZDateTime","sum":35},{"parent":"FUNC","rule":"CurrentTZDatetime","sum":525},{"parent":"FUNC","rule":"CurrentTZTimestamp","sum":245},{"parent":"FUNC","rule":"CurrentTZdatetime","sum":68},{"parent":"FUNC","rule":"CurrentTzDate","sum":1610877},{"parent":"FUNC","rule":"CurrentTzDateTime","sum":1466274},{"parent":"FUNC","rule":"CurrentTzDatetime","sum":1992182},{"parent":"FUNC","rule":"CurrentTzTimeStamp","sum":4338},{"parent":"FUNC","rule":"CurrentTzTimestamp","sum":1901822},{"parent":"FUNC","rule":"CurrentUTCDATE","sum":19},{"parent":"FUNC","rule":"CurrentUTCDAte","sum":38},{"parent":"FUNC","rule":"CurrentUTCDate","sum":919319},{"parent":"FUNC","rule":"CurrentUTCDateTime","sum":182570},{"parent":"FUNC","rule":"CurrentUTCDatetime","sum":131224},{"parent":"FUNC","rule":"CurrentUTCTimeStamp","sum":99},{"parent":"FUNC","rule":"CurrentUTCTimestamp","sum":452539},{"parent":"FUNC","rule":"CurrentUTCdate","sum":71296},{"parent":"FUNC","rule":"CurrentUTcDate","sum":68},{"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":19616023},{"parent":"FUNC","rule":"CurrentUtcDateTIME","sum":1},{"parent":"FUNC","rule":"CurrentUtcDateTime","sum":3198884},{"parent":"FUNC","rule":"CurrentUtcDatetime","sum":13800051},{"parent":"FUNC","rule":"CurrentUtcDttm","sum":3},{"parent":"FUNC","rule":"CurrentUtcTimeStamp","sum":60207},{"parent":"FUNC","rule":"CurrentUtcTimestamp","sum":15289791},{"parent":"FUNC","rule":"CurrentUtcdate","sum":11626},{"parent":"FUNC","rule":"CurrenttzDate","sum":340},{"parent":"FUNC","rule":"CurrenttzDatetime","sum":1},{"parent":"FUNC","rule":"CurrentutcDate","sum":21001},{"parent":"FUNC","rule":"CurrentutcDateTime","sum":578},{"parent":"FUNC","rule":"CurrentutcTimestamp","sum":4},{"parent":"FUNC","rule":"Currentutcdate","sum":1508},{"parent":"FUNC","rule":"Currentutcdatetime","sum":22646},{"parent":"FUNC","rule":"D","sum":1},{"parent":"FUNC","rule":"DATE","sum":128519},{"parent":"FUNC","rule":"DATEADD","sum":3},{"parent":"FUNC","rule":"DATEDIFF","sum":9},{"parent":"FUNC","rule":"DATETIME","sum":830},{"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":175},{"parent":"FUNC","rule":"DAtetime","sum":61},{"parent":"FUNC","rule":"DENSE_RANK","sum":274243},{"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":69092},{"parent":"FUNC","rule":"DataTypeComponents","sum":37173},{"parent":"FUNC","rule":"DataTypeHandle","sum":2},{"parent":"FUNC","rule":"Datatype","sum":2},{"parent":"FUNC","rule":"Date","sum":1771862},{"parent":"FUNC","rule":"Date32","sum":74},{"parent":"FUNC","rule":"DateTime","sum":435337},{"parent":"FUNC","rule":"DateTime64","sum":45},{"parent":"FUNC","rule":"Date_Diff","sum":1},{"parent":"FUNC","rule":"DatetimE","sum":8},{"parent":"FUNC","rule":"Datetime","sum":273226},{"parent":"FUNC","rule":"Datetime64","sum":6},{"parent":"FUNC","rule":"Decimal","sum":31325},{"parent":"FUNC","rule":"DenseRank","sum":27},{"parent":"FUNC","rule":"Dense_RANK","sum":1},{"parent":"FUNC","rule":"Dense_Rank","sum":55},{"parent":"FUNC","rule":"Dense_rank","sum":6},{"parent":"FUNC","rule":"DicTKeys","sum":2},{"parent":"FUNC","rule":"DictAggregate","sum":140548},{"parent":"FUNC","rule":"DictCOntains","sum":350},{"parent":"FUNC","rule":"DictContains","sum":2022972},{"parent":"FUNC","rule":"DictCreate","sum":69385},{"parent":"FUNC","rule":"DictHasItems","sum":614255},{"parent":"FUNC","rule":"DictHasitems","sum":261},{"parent":"FUNC","rule":"DictItems","sum":2553332},{"parent":"FUNC","rule":"DictKEYS","sum":12},{"parent":"FUNC","rule":"DictKEys","sum":1},{"parent":"FUNC","rule":"DictKeYS","sum":3},{"parent":"FUNC","rule":"DictKeyType","sum":941},{"parent":"FUNC","rule":"DictKeys","sum":2716126},{"parent":"FUNC","rule":"DictLOokup","sum":7},{"parent":"FUNC","rule":"DictLength","sum":1016614},{"parent":"FUNC","rule":"DictLookUP","sum":3},{"parent":"FUNC","rule":"DictLookUp","sum":59775},{"parent":"FUNC","rule":"DictLookup","sum":5979602},{"parent":"FUNC","rule":"DictPayLoads","sum":10372},{"parent":"FUNC","rule":"DictPayloadType","sum":210},{"parent":"FUNC","rule":"DictPayloads","sum":927148},{"parent":"FUNC","rule":"DictType","sum":540},{"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":19810},{"parent":"FUNC","rule":"Dictkeys","sum":1131},{"parent":"FUNC","rule":"Dictlength","sum":6},{"parent":"FUNC","rule":"Dictlookup","sum":76091},{"parent":"FUNC","rule":"Double","sum":34054},{"parent":"FUNC","rule":"DyNumber","sum":4},{"parent":"FUNC","rule":"EACH","sum":4},{"parent":"FUNC","rule":"ENDSWITH","sum":13704},{"parent":"FUNC","rule":"ENDsWith","sum":85},{"parent":"FUNC","rule":"ENSURE","sum":832413},{"parent":"FUNC","rule":"EOMONTH","sum":1},{"parent":"FUNC","rule":"EmptyDict","sum":433},{"parent":"FUNC","rule":"EmptyDictTypeHandle","sum":3},{"parent":"FUNC","rule":"EmptyList","sum":23826},{"parent":"FUNC","rule":"Emptydict","sum":6},{"parent":"FUNC","rule":"EndsWIth","sum":870},{"parent":"FUNC","rule":"EndsWith","sum":1567383},{"parent":"FUNC","rule":"Endswith","sum":19803},{"parent":"FUNC","rule":"Ensure","sum":1435372},{"parent":"FUNC","rule":"EnsureConvertibleTo","sum":2021},{"parent":"FUNC","rule":"EnsureType","sum":229224},{"parent":"FUNC","rule":"EvaluateAtom","sum":457},{"parent":"FUNC","rule":"EvaluateCode","sum":467121},{"parent":"FUNC","rule":"EvaluateExpr","sum":899979},{"parent":"FUNC","rule":"EvaluateType","sum":122201},{"parent":"FUNC","rule":"ExpandStruct","sum":265234},{"parent":"FUNC","rule":"ExtractUkropCtx","sum":1},{"parent":"FUNC","rule":"FIND","sum":5572833},{"parent":"FUNC","rule":"FIRST","sum":3},{"parent":"FUNC","rule":"FIRST_VALUE","sum":8906702},{"parent":"FUNC","rule":"FIRST_value","sum":815},{"parent":"FUNC","rule":"FIRsT_VALUE","sum":1},{"parent":"FUNC","rule":"FIleContent","sum":1},{"parent":"FUNC","rule":"FLATTEN","sum":9},{"parent":"FUNC","rule":"FLOAT","sum":5},{"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":35},{"parent":"FUNC","rule":"FileContent","sum":2368603},{"parent":"FUNC","rule":"FilePath","sum":1452555},{"parent":"FUNC","rule":"Filecontent","sum":11773},{"parent":"FUNC","rule":"Filepath","sum":10},{"parent":"FUNC","rule":"FinD","sum":16},{"parent":"FUNC","rule":"Find","sum":321055},{"parent":"FUNC","rule":"FirsT_VALUE","sum":3},{"parent":"FUNC","rule":"FirstValue","sum":22},{"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":109273},{"parent":"FUNC","rule":"Float","sum":12377},{"parent":"FUNC","rule":"FoldMap","sum":13},{"parent":"FUNC","rule":"Folder","sum":13},{"parent":"FUNC","rule":"FolderPath","sum":9943},{"parent":"FUNC","rule":"ForceRemoveMember","sum":401887},{"parent":"FUNC","rule":"ForceRemoveMembers","sum":1082517},{"parent":"FUNC","rule":"ForceRenameMembers","sum":63996},{"parent":"FUNC","rule":"ForceSpreadMembers","sum":115431},{"parent":"FUNC","rule":"ForceSpreadmembers","sum":4},{"parent":"FUNC","rule":"Format","sum":1},{"parent":"FUNC","rule":"FormatCode","sum":675},{"parent":"FUNC","rule":"FormatType","sum":467449},{"parent":"FUNC","rule":"FormatTypeDiff","sum":813},{"parent":"FUNC","rule":"FormatTypeDiffPretty","sum":103},{"parent":"FUNC","rule":"Formattype","sum":101},{"parent":"FUNC","rule":"FromBytes","sum":99297},{"parent":"FUNC","rule":"FromPg","sum":4861},{"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":1239380},{"parent":"FUNC","rule":"GETDATE","sum":1},{"parent":"FUNC","rule":"GREATEST","sum":389805},{"parent":"FUNC","rule":"GROUPING","sum":71574},{"parent":"FUNC","rule":"GROUPINg","sum":4},{"parent":"FUNC","rule":"GROUP_CONCAT","sum":1},{"parent":"FUNC","rule":"GatherMembers","sum":1478901},{"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":6034},{"parent":"FUNC","rule":"Grouping","sum":243},{"parent":"FUNC","rule":"HISTOGRAM","sum":274200},{"parent":"FUNC","rule":"HISTOGRAMCDF","sum":421},{"parent":"FUNC","rule":"HISTOGRAMCdf","sum":47},{"parent":"FUNC","rule":"HISTOGRAM_CDF","sum":3},{"parent":"FUNC","rule":"HISTOGRAMcdf","sum":2},{"parent":"FUNC","rule":"HISTOGrAM","sum":48},{"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":12390},{"parent":"FUNC","rule":"HOP_END","sum":16},{"parent":"FUNC","rule":"HOP_START","sum":4},{"parent":"FUNC","rule":"Histogram","sum":34999},{"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":3996},{"parent":"FUNC","rule":"IF","sum":75354920},{"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":889659},{"parent":"FUNC","rule":"INterval","sum":763},{"parent":"FUNC","rule":"If","sum":1086681},{"parent":"FUNC","rule":"IfNull","sum":6},{"parent":"FUNC","rule":"InstanceOf","sum":248429},{"parent":"FUNC","rule":"Int","sum":1},{"parent":"FUNC","rule":"Int16","sum":37},{"parent":"FUNC","rule":"Int32","sum":32595},{"parent":"FUNC","rule":"Int64","sum":3638},{"parent":"FUNC","rule":"Int8","sum":302},{"parent":"FUNC","rule":"InterVal","sum":4},{"parent":"FUNC","rule":"Interva","sum":1},{"parent":"FUNC","rule":"Interval","sum":16057580},{"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":128278},{"parent":"FUNC","rule":"Join","sum":1},{"parent":"FUNC","rule":"JoinTableRow","sum":1312193},{"parent":"FUNC","rule":"JoinTablerow","sum":721},{"parent":"FUNC","rule":"JointableRow","sum":1},{"parent":"FUNC","rule":"Json","sum":53211},{"parent":"FUNC","rule":"JsonDocument","sum":9},{"parent":"FUNC","rule":"Just","sum":6562961},{"parent":"FUNC","rule":"LAG","sum":4042269},{"parent":"FUNC","rule":"LAST","sum":1},{"parent":"FUNC","rule":"LAST_VALUE","sum":1339900},{"parent":"FUNC","rule":"LAST_value","sum":2},{"parent":"FUNC","rule":"LEAD","sum":1652252},{"parent":"FUNC","rule":"LEAST","sum":427318},{"parent":"FUNC","rule":"LEFT","sum":3},{"parent":"FUNC","rule":"LEFT_SHIFT","sum":1},{"parent":"FUNC","rule":"LEN","sum":1687004},{"parent":"FUNC","rule":"LENGTH","sum":3846912},{"parent":"FUNC","rule":"LENgth","sum":23},{"parent":"FUNC","rule":"LEngth","sum":12},{"parent":"FUNC","rule":"LIKELY","sum":140878},{"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":2891},{"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":1517},{"parent":"FUNC","rule":"LISTENUMERATE","sum":3},{"parent":"FUNC","rule":"LISTEXTEND","sum":13},{"parent":"FUNC","rule":"LISTFILTER","sum":1629},{"parent":"FUNC","rule":"LISTFLATTEN","sum":4265},{"parent":"FUNC","rule":"LISTFROMRANGE","sum":1494},{"parent":"FUNC","rule":"LISTHAS","sum":30992},{"parent":"FUNC","rule":"LISTHASITEMS","sum":2099},{"parent":"FUNC","rule":"LISTHASItems","sum":1},{"parent":"FUNC","rule":"LISTHEAD","sum":18199},{"parent":"FUNC","rule":"LISTHas","sum":9},{"parent":"FUNC","rule":"LISTHead","sum":2},{"parent":"FUNC","rule":"LISTLAST","sum":1556},{"parent":"FUNC","rule":"LISTLENGTH","sum":48153},{"parent":"FUNC","rule":"LISTLENGth","sum":4},{"parent":"FUNC","rule":"LISTLenGTH","sum":7},{"parent":"FUNC","rule":"LISTLength","sum":2125},{"parent":"FUNC","rule":"LISTMAP","sum":14266},{"parent":"FUNC","rule":"LISTMAX","sum":6952},{"parent":"FUNC","rule":"LISTMIN","sum":187},{"parent":"FUNC","rule":"LISTMap","sum":365},{"parent":"FUNC","rule":"LISTNOTNULL","sum":8554},{"parent":"FUNC","rule":"LISTREVERSE","sum":2},{"parent":"FUNC","rule":"LISTSKIP","sum":15},{"parent":"FUNC","rule":"LISTSORT","sum":7614},{"parent":"FUNC","rule":"LISTSORTASC","sum":1665},{"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":352},{"parent":"FUNC","rule":"LIST_HAS","sum":2042},{"parent":"FUNC","rule":"LIST_HEAD","sum":100},{"parent":"FUNC","rule":"LIST_LAST","sum":54},{"parent":"FUNC","rule":"LIST_LENGTH","sum":2455},{"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":624},{"parent":"FUNC","rule":"LIST_SORT_DESC","sum":14},{"parent":"FUNC","rule":"LIST_SUM","sum":2},{"parent":"FUNC","rule":"LIST_TAKE","sum":2},{"parent":"FUNC","rule":"LIST_UNIQ","sum":344},{"parent":"FUNC","rule":"LIST_length","sum":1},{"parent":"FUNC","rule":"LISTfilter","sum":7},{"parent":"FUNC","rule":"LISTfromRange","sum":1420},{"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":345},{"parent":"FUNC","rule":"LIstMap","sum":1347},{"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":12300},{"parent":"FUNC","rule":"LambdaArgumentsCount","sum":32},{"parent":"FUNC","rule":"LambdaCode","sum":330699},{"parent":"FUNC","rule":"LastValue","sum":29},{"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":11188},{"parent":"FUNC","rule":"Least","sum":2236},{"parent":"FUNC","rule":"Len","sum":93143},{"parent":"FUNC","rule":"LenGTH","sum":12},{"parent":"FUNC","rule":"Length","sum":1249246},{"parent":"FUNC","rule":"LiSTMAP","sum":2},{"parent":"FUNC","rule":"Likely","sum":20818},{"parent":"FUNC","rule":"LinearHISTOGRAM","sum":86},{"parent":"FUNC","rule":"LinearHistogram","sum":46217},{"parent":"FUNC","rule":"LinearHistogramCDF","sum":465},{"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":1550},{"parent":"FUNC","rule":"ListALl","sum":8},{"parent":"FUNC","rule":"ListANY","sum":1725},{"parent":"FUNC","rule":"ListAVG","sum":253},{"parent":"FUNC","rule":"ListAgg","sum":2},{"parent":"FUNC","rule":"ListAggregate","sum":424930},{"parent":"FUNC","rule":"ListAll","sum":265360},{"parent":"FUNC","rule":"ListAny","sum":1880564},{"parent":"FUNC","rule":"ListAppend","sum":1},{"parent":"FUNC","rule":"ListAvg","sum":542938},{"parent":"FUNC","rule":"ListCOncat","sum":2},{"parent":"FUNC","rule":"ListCode","sum":209616},{"parent":"FUNC","rule":"ListCollect","sum":903945},{"parent":"FUNC","rule":"ListConCat","sum":99},{"parent":"FUNC","rule":"ListConcat","sum":5476628},{"parent":"FUNC","rule":"ListCreate","sum":1959182},{"parent":"FUNC","rule":"ListDistinct","sum":1},{"parent":"FUNC","rule":"ListEnumerate","sum":1400780},{"parent":"FUNC","rule":"ListExtEnd","sum":1},{"parent":"FUNC","rule":"ListExtend","sum":4377341},{"parent":"FUNC","rule":"ListExtendStrict","sum":91852},{"parent":"FUNC","rule":"ListExtract","sum":3347283},{"parent":"FUNC","rule":"ListFILTER","sum":552},{"parent":"FUNC","rule":"ListFIlter","sum":346},{"parent":"FUNC","rule":"ListFLatMap","sum":262},{"parent":"FUNC","rule":"ListFLatten","sum":578},{"parent":"FUNC","rule":"ListFROMRange","sum":5076},{"parent":"FUNC","rule":"ListFilteR","sum":4},{"parent":"FUNC","rule":"ListFilter","sum":17818831},{"parent":"FUNC","rule":"ListFirst","sum":3},{"parent":"FUNC","rule":"ListFlatMap","sum":908104},{"parent":"FUNC","rule":"ListFlatmap","sum":29181},{"parent":"FUNC","rule":"ListFlatten","sum":2824559},{"parent":"FUNC","rule":"ListFold","sum":233104},{"parent":"FUNC","rule":"ListFold1","sum":35644},{"parent":"FUNC","rule":"ListFold1Map","sum":3433},{"parent":"FUNC","rule":"ListFoldMap","sum":41830},{"parent":"FUNC","rule":"ListFromPython","sum":2},{"parent":"FUNC","rule":"ListFromRANGE","sum":23},{"parent":"FUNC","rule":"ListFromRAnge","sum":45},{"parent":"FUNC","rule":"ListFromRange","sum":3094429},{"parent":"FUNC","rule":"ListFromTuple","sum":59325},{"parent":"FUNC","rule":"ListFromTyple","sum":2},{"parent":"FUNC","rule":"ListFromrange","sum":12},{"parent":"FUNC","rule":"ListHAS","sum":380},{"parent":"FUNC","rule":"ListHAs","sum":557},{"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":20700011},{"parent":"FUNC","rule":"ListHasITems","sum":9},{"parent":"FUNC","rule":"ListHasItemhs","sum":1},{"parent":"FUNC","rule":"ListHasItems","sum":5130581},{"parent":"FUNC","rule":"ListHasitems","sum":344},{"parent":"FUNC","rule":"ListHeaD","sum":94},{"parent":"FUNC","rule":"ListHead","sum":10740942},{"parent":"FUNC","rule":"ListINdexOf","sum":2},{"parent":"FUNC","rule":"ListIndex","sum":1},{"parent":"FUNC","rule":"ListIndexOF","sum":10},{"parent":"FUNC","rule":"ListIndexOf","sum":1233206},{"parent":"FUNC","rule":"ListIndexof","sum":19},{"parent":"FUNC","rule":"ListItemType","sum":208912},{"parent":"FUNC","rule":"ListJoin","sum":3},{"parent":"FUNC","rule":"ListJsonDocument","sum":1},{"parent":"FUNC","rule":"ListLAst","sum":10},{"parent":"FUNC","rule":"ListLENGTH","sum":2212},{"parent":"FUNC","rule":"ListLEngth","sum":19},{"parent":"FUNC","rule":"ListLasT","sum":12},{"parent":"FUNC","rule":"ListLast","sum":5989328},{"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":18519642},{"parent":"FUNC","rule":"ListMAP","sum":227},{"parent":"FUNC","rule":"ListMAX","sum":10301},{"parent":"FUNC","rule":"ListMAp","sum":4828},{"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":35473659},{"parent":"FUNC","rule":"ListMax","sum":1415731},{"parent":"FUNC","rule":"ListMin","sum":814456},{"parent":"FUNC","rule":"ListNOTNull","sum":715},{"parent":"FUNC","rule":"ListNoTNull","sum":17},{"parent":"FUNC","rule":"ListNoTnull","sum":963},{"parent":"FUNC","rule":"ListNonNull","sum":1},{"parent":"FUNC","rule":"ListNotNULL","sum":30598},{"parent":"FUNC","rule":"ListNotNUll","sum":7741},{"parent":"FUNC","rule":"ListNotNuLL","sum":5},{"parent":"FUNC","rule":"ListNotNul","sum":1},{"parent":"FUNC","rule":"ListNotNulL","sum":3},{"parent":"FUNC","rule":"ListNotNull","sum":9277210},{"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":951876},{"parent":"FUNC","rule":"ListReverse","sum":1332692},{"parent":"FUNC","rule":"ListSORT","sum":1},{"parent":"FUNC","rule":"ListSORtAsc","sum":26},{"parent":"FUNC","rule":"ListSOrt","sum":3},{"parent":"FUNC","rule":"ListSUM","sum":782},{"parent":"FUNC","rule":"ListSUm","sum":12},{"parent":"FUNC","rule":"ListSample","sum":13},{"parent":"FUNC","rule":"ListSampleN","sum":715},{"parent":"FUNC","rule":"ListShuffle","sum":533},{"parent":"FUNC","rule":"ListShuffleN","sum":1},{"parent":"FUNC","rule":"ListSkip","sum":618121},{"parent":"FUNC","rule":"ListSkipWhile","sum":139342},{"parent":"FUNC","rule":"ListSkipWhileInclusive","sum":8763},{"parent":"FUNC","rule":"ListSort","sum":5013069},{"parent":"FUNC","rule":"ListSortASC","sum":18106},{"parent":"FUNC","rule":"ListSortAsc","sum":486196},{"parent":"FUNC","rule":"ListSortDESC","sum":56},{"parent":"FUNC","rule":"ListSortDEsc","sum":2},{"parent":"FUNC","rule":"ListSortDesc","sum":1137559},{"parent":"FUNC","rule":"ListSortasc","sum":9},{"parent":"FUNC","rule":"ListSortdesc","sum":633},{"parent":"FUNC","rule":"ListSum","sum":1751486},{"parent":"FUNC","rule":"ListTail","sum":1},{"parent":"FUNC","rule":"ListTake","sum":2155762},{"parent":"FUNC","rule":"ListTakeWhile","sum":89522},{"parent":"FUNC","rule":"ListTakeWhileInclusive","sum":2462},{"parent":"FUNC","rule":"ListToTuple","sum":6466},{"parent":"FUNC","rule":"ListTop","sum":2360},{"parent":"FUNC","rule":"ListTopAsc","sum":132},{"parent":"FUNC","rule":"ListTopDESC","sum":1},{"parent":"FUNC","rule":"ListTopDesc","sum":11009},{"parent":"FUNC","rule":"ListTopSort","sum":1056},{"parent":"FUNC","rule":"ListTopSortAsc","sum":40},{"parent":"FUNC","rule":"ListTopSortDesc","sum":60209},{"parent":"FUNC","rule":"ListTopdesc","sum":1},{"parent":"FUNC","rule":"ListType","sum":32269},{"parent":"FUNC","rule":"ListTypeHandle","sum":1},{"parent":"FUNC","rule":"ListUNiq","sum":30},{"parent":"FUNC","rule":"ListUnionALL","sum":128},{"parent":"FUNC","rule":"ListUnionAll","sum":56382},{"parent":"FUNC","rule":"ListUniq","sum":3980480},{"parent":"FUNC","rule":"ListUniqStable","sum":76021},{"parent":"FUNC","rule":"ListZIP","sum":8},{"parent":"FUNC","rule":"ListZIp","sum":1},{"parent":"FUNC","rule":"ListZip","sum":2533470},{"parent":"FUNC","rule":"ListZipALL","sum":290850},{"parent":"FUNC","rule":"ListZipAll","sum":275064},{"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":4450},{"parent":"FUNC","rule":"Listany","sum":38},{"parent":"FUNC","rule":"Listcollect","sum":5259},{"parent":"FUNC","rule":"Listconcat","sum":14851},{"parent":"FUNC","rule":"Listenumerate","sum":3},{"parent":"FUNC","rule":"Listextend","sum":5},{"parent":"FUNC","rule":"Listfilter","sum":263056},{"parent":"FUNC","rule":"Listflatmap","sum":297},{"parent":"FUNC","rule":"Listflatten","sum":33},{"parent":"FUNC","rule":"ListfromRange","sum":36},{"parent":"FUNC","rule":"Listfromrange","sum":113},{"parent":"FUNC","rule":"Listfromtuple","sum":1},{"parent":"FUNC","rule":"Listhas","sum":69729},{"parent":"FUNC","rule":"ListhasItems","sum":261},{"parent":"FUNC","rule":"Listhasitems","sum":488},{"parent":"FUNC","rule":"Listhead","sum":18575},{"parent":"FUNC","rule":"ListindexOf","sum":2172},{"parent":"FUNC","rule":"Listindexof","sum":4},{"parent":"FUNC","rule":"ListlENGTH","sum":1},{"parent":"FUNC","rule":"ListlEngth","sum":2},{"parent":"FUNC","rule":"Listlast","sum":4180},{"parent":"FUNC","rule":"Listlength","sum":10851},{"parent":"FUNC","rule":"Listmap","sum":11275},{"parent":"FUNC","rule":"Listmax","sum":498},{"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":1052},{"parent":"FUNC","rule":"Listsortasc","sum":1},{"parent":"FUNC","rule":"Listsortdesc","sum":1},{"parent":"FUNC","rule":"Listsum","sum":27},{"parent":"FUNC","rule":"Listtake","sum":20218},{"parent":"FUNC","rule":"ListtakeWhile","sum":2},{"parent":"FUNC","rule":"Listuniq","sum":327},{"parent":"FUNC","rule":"Listzip","sum":768},{"parent":"FUNC","rule":"Listzipall","sum":1},{"parent":"FUNC","rule":"LogHISTOGRAM","sum":7},{"parent":"FUNC","rule":"LogHistogram","sum":283},{"parent":"FUNC","rule":"LogHistogramCDF","sum":15},{"parent":"FUNC","rule":"LogarithmicHISTOGRAM","sum":1},{"parent":"FUNC","rule":"LogarithmicHistogram","sum":616},{"parent":"FUNC","rule":"Logarithmichistogram","sum":20},{"parent":"FUNC","rule":"Lookup","sum":1},{"parent":"FUNC","rule":"MAX","sum":34536576},{"parent":"FUNC","rule":"MAXBY","sum":123},{"parent":"FUNC","rule":"MAXOF","sum":3},{"parent":"FUNC","rule":"MAX_BY","sum":22832477},{"parent":"FUNC","rule":"MAX_By","sum":19},{"parent":"FUNC","rule":"MAX_IF","sum":2},{"parent":"FUNC","rule":"MAX_OF","sum":2198762},{"parent":"FUNC","rule":"MAX_Of","sum":2},{"parent":"FUNC","rule":"MAX_bY","sum":7},{"parent":"FUNC","rule":"MAX_by","sum":10621},{"parent":"FUNC","rule":"MAX_of","sum":589},{"parent":"FUNC","rule":"MAx","sum":285},{"parent":"FUNC","rule":"MEDIAN","sum":914242},{"parent":"FUNC","rule":"MEDiAN","sum":4},{"parent":"FUNC","rule":"MEdian","sum":14},{"parent":"FUNC","rule":"MIN","sum":14653631},{"parent":"FUNC","rule":"MINBY","sum":1907},{"parent":"FUNC","rule":"MIN_BY","sum":5293824},{"parent":"FUNC","rule":"MIN_IF","sum":8},{"parent":"FUNC","rule":"MIN_OF","sum":2265340},{"parent":"FUNC","rule":"MIN_by","sum":1293},{"parent":"FUNC","rule":"MIN_of","sum":3},{"parent":"FUNC","rule":"MIn","sum":199},{"parent":"FUNC","rule":"MIn_OF","sum":3},{"parent":"FUNC","rule":"MODE","sum":901832},{"parent":"FUNC","rule":"MODe","sum":1},{"parent":"FUNC","rule":"MONTH","sum":1},{"parent":"FUNC","rule":"MULTI_AGGREGATE_BY","sum":696416},{"parent":"FUNC","rule":"MaX","sum":7},{"parent":"FUNC","rule":"MakeDate","sum":1},{"parent":"FUNC","rule":"Map","sum":4},{"parent":"FUNC","rule":"Max","sum":380542},{"parent":"FUNC","rule":"MaxBy","sum":5394},{"parent":"FUNC","rule":"MaxOf","sum":207},{"parent":"FUNC","rule":"Max_BY","sum":3213},{"parent":"FUNC","rule":"Max_By","sum":70691},{"parent":"FUNC","rule":"Max_OF","sum":681},{"parent":"FUNC","rule":"Max_Of","sum":650},{"parent":"FUNC","rule":"Max_by","sum":141220},{"parent":"FUNC","rule":"Max_of","sum":3730},{"parent":"FUNC","rule":"Median","sum":19449},{"parent":"FUNC","rule":"MiN","sum":32},{"parent":"FUNC","rule":"Min","sum":193336},{"parent":"FUNC","rule":"MinBy","sum":1199},{"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":1307},{"parent":"FUNC","rule":"MoDE","sum":1},{"parent":"FUNC","rule":"Mode","sum":14710},{"parent":"FUNC","rule":"Mul","sum":1},{"parent":"FUNC","rule":"MultiAggregateBy","sum":645},{"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":413},{"parent":"FUNC","rule":"NANVL","sum":720089},{"parent":"FUNC","rule":"NOTHING","sum":3221},{"parent":"FUNC","rule":"NOW","sum":2},{"parent":"FUNC","rule":"NOW64","sum":2},{"parent":"FUNC","rule":"NOthing","sum":1},{"parent":"FUNC","rule":"NTH_VALUE","sum":3008},{"parent":"FUNC","rule":"NTILE","sum":1817},{"parent":"FUNC","rule":"NULLIF","sum":3},{"parent":"FUNC","rule":"NVL","sum":17680671},{"parent":"FUNC","rule":"NVl","sum":802},{"parent":"FUNC","rule":"NaNvl","sum":26},{"parent":"FUNC","rule":"NanVL","sum":1},{"parent":"FUNC","rule":"NanVl","sum":3},{"parent":"FUNC","rule":"Nanvl","sum":10769},{"parent":"FUNC","rule":"NothiNG","sum":2},{"parent":"FUNC","rule":"Nothing","sum":812266},{"parent":"FUNC","rule":"NullTypeHandle","sum":2314},{"parent":"FUNC","rule":"Nvl","sum":28483},{"parent":"FUNC","rule":"OR","sum":6},{"parent":"FUNC","rule":"OVER","sum":1},{"parent":"FUNC","rule":"OptionalItemType","sum":37180},{"parent":"FUNC","rule":"OptionalType","sum":136974},{"parent":"FUNC","rule":"OptionalTypeHandle","sum":44309},{"parent":"FUNC","rule":"PERCENTILE","sum":29934684},{"parent":"FUNC","rule":"PERCENTIlE","sum":4},{"parent":"FUNC","rule":"PERCENT_RANK","sum":6127},{"parent":"FUNC","rule":"PERCENtILE","sum":1957},{"parent":"FUNC","rule":"PERCEnTILE","sum":1},{"parent":"FUNC","rule":"PICKLE","sum":77},{"parent":"FUNC","rule":"PIckle","sum":7},{"parent":"FUNC","rule":"POPULATION_STDDEV","sum":364},{"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":952167},{"parent":"FUNC","rule":"ParseType","sum":464193},{"parent":"FUNC","rule":"ParseTypeHandle","sum":1193683},{"parent":"FUNC","rule":"Parsefile","sum":111},{"parent":"FUNC","rule":"Path","sum":4},{"parent":"FUNC","rule":"PeRCENTILE","sum":365},{"parent":"FUNC","rule":"Percentile","sum":73128},{"parent":"FUNC","rule":"PgArray","sum":17},{"parent":"FUNC","rule":"PgBool","sum":153},{"parent":"FUNC","rule":"PgCall","sum":554},{"parent":"FUNC","rule":"PgCast","sum":5593},{"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":118347},{"parent":"FUNC","rule":"QuoteCode","sum":722026},{"parent":"FUNC","rule":"RADIANS","sum":12},{"parent":"FUNC","rule":"RAND","sum":2},{"parent":"FUNC","rule":"RANDOM","sum":486698},{"parent":"FUNC","rule":"RANDOMNUMBER","sum":4009},{"parent":"FUNC","rule":"RANDOMNumber","sum":11},{"parent":"FUNC","rule":"RANDOMUUID","sum":5},{"parent":"FUNC","rule":"RANDOM_NUMBER","sum":83},{"parent":"FUNC","rule":"RANGE","sum":149},{"parent":"FUNC","rule":"RANK","sum":945395},{"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":3594199},{"parent":"FUNC","rule":"RFind","sum":251181},{"parent":"FUNC","rule":"RIGHT","sum":2},{"parent":"FUNC","rule":"ROUND","sum":10},{"parent":"FUNC","rule":"ROWNUMBER","sum":33},{"parent":"FUNC","rule":"ROW_NUMBER","sum":9408940},{"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":13473},{"parent":"FUNC","rule":"Rand","sum":1},{"parent":"FUNC","rule":"Random","sum":731618},{"parent":"FUNC","rule":"RandomNUmber","sum":172},{"parent":"FUNC","rule":"RandomNumber","sum":272780},{"parent":"FUNC","rule":"RandomUUID","sum":8049},{"parent":"FUNC","rule":"RandomUUid","sum":32889},{"parent":"FUNC","rule":"RandomUuid","sum":214210},{"parent":"FUNC","rule":"Randomnumber","sum":2},{"parent":"FUNC","rule":"Range","sum":2},{"parent":"FUNC","rule":"Rank","sum":3094},{"parent":"FUNC","rule":"RemoveMEmbers","sum":16},{"parent":"FUNC","rule":"RemoveMember","sum":431493},{"parent":"FUNC","rule":"RemoveMembers","sum":728191},{"parent":"FUNC","rule":"RemoveTimeZone","sum":13},{"parent":"FUNC","rule":"RemoveTimezone","sum":433746},{"parent":"FUNC","rule":"Removemember","sum":686},{"parent":"FUNC","rule":"Removemembers","sum":4},{"parent":"FUNC","rule":"RenameMembers","sum":506669},{"parent":"FUNC","rule":"ReplaceMember","sum":9370},{"parent":"FUNC","rule":"ReprCode","sum":195698},{"parent":"FUNC","rule":"ResourceType","sum":9},{"parent":"FUNC","rule":"Rfind","sum":871},{"parent":"FUNC","rule":"RootAttributes","sum":20},{"parent":"FUNC","rule":"RowNum","sum":1},{"parent":"FUNC","rule":"RowNumber","sum":20989},{"parent":"FUNC","rule":"Row_NUMBER","sum":33},{"parent":"FUNC","rule":"Row_NUmber","sum":16},{"parent":"FUNC","rule":"Row_Number","sum":60121},{"parent":"FUNC","rule":"Row_number","sum":4136},{"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":32975368},{"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":25418},{"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":400676},{"parent":"FUNC","rule":"STDDEVPOP","sum":2805},{"parent":"FUNC","rule":"STDDEVSAMP","sum":1098},{"parent":"FUNC","rule":"STDDEV_POP","sum":14},{"parent":"FUNC","rule":"STDDEV_POPULATION","sum":18603},{"parent":"FUNC","rule":"STDDEV_SAMP","sum":3359},{"parent":"FUNC","rule":"STDDEV_SAMPLE","sum":9936},{"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_DWithin","sum":4},{"parent":"FUNC","rule":"ST_Distance","sum":5},{"parent":"FUNC","rule":"ST_GeomFromGeoHash","sum":1},{"parent":"FUNC","rule":"ST_MakePoint","sum":4},{"parent":"FUNC","rule":"ST_Point","sum":10},{"parent":"FUNC","rule":"ST_PolygonFromText","sum":5},{"parent":"FUNC","rule":"ST_SetSRID","sum":10},{"parent":"FUNC","rule":"ST_Transform","sum":4},{"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":29536028},{"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":223},{"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":42462858},{"parent":"FUNC","rule":"SUMIF","sum":3303},{"parent":"FUNC","rule":"SUM_","sum":317},{"parent":"FUNC","rule":"SUM_IF","sum":8452328},{"parent":"FUNC","rule":"SUM_If","sum":118},{"parent":"FUNC","rule":"SUM_iF","sum":19},{"parent":"FUNC","rule":"SUM_if","sum":267431},{"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":900802},{"parent":"FUNC","rule":"SessionStart","sum":24230},{"parent":"FUNC","rule":"SessionState","sum":716},{"parent":"FUNC","rule":"SessionWindow","sum":102118},{"parent":"FUNC","rule":"SetBit","sum":44509},{"parent":"FUNC","rule":"SetContains","sum":1},{"parent":"FUNC","rule":"SetCreate","sum":45700},{"parent":"FUNC","rule":"SetDIfference","sum":11},{"parent":"FUNC","rule":"SetDifference","sum":486034},{"parent":"FUNC","rule":"SetINtersection","sum":1},{"parent":"FUNC","rule":"SetIncludes","sum":246595},{"parent":"FUNC","rule":"SetInterSection","sum":21},{"parent":"FUNC","rule":"SetIntersection","sum":1266793},{"parent":"FUNC","rule":"SetIsDisJOINt","sum":8081},{"parent":"FUNC","rule":"SetIsDisJoint","sum":1686},{"parent":"FUNC","rule":"SetIsDisjoint","sum":1241386},{"parent":"FUNC","rule":"SetSymmetricDifference","sum":8855},{"parent":"FUNC","rule":"SetUNION","sum":1},{"parent":"FUNC","rule":"SetUnion","sum":588902},{"parent":"FUNC","rule":"Setintersection","sum":4517},{"parent":"FUNC","rule":"SizeOf","sum":1},{"parent":"FUNC","rule":"Some","sum":2528977},{"parent":"FUNC","rule":"SplitToList","sum":6},{"parent":"FUNC","rule":"SpreadMembers","sum":344997},{"parent":"FUNC","rule":"StablePicke","sum":1},{"parent":"FUNC","rule":"StablePickle","sum":212966},{"parent":"FUNC","rule":"StartSwith","sum":105},{"parent":"FUNC","rule":"StartsWIth","sum":704},{"parent":"FUNC","rule":"StartsWith","sum":5765448},{"parent":"FUNC","rule":"Startswith","sum":19728},{"parent":"FUNC","rule":"StaticFold","sum":307},{"parent":"FUNC","rule":"StaticMap","sum":683032},{"parent":"FUNC","rule":"StaticZip","sum":14557},{"parent":"FUNC","rule":"Staticmap","sum":2},{"parent":"FUNC","rule":"StdDev","sum":33},{"parent":"FUNC","rule":"Stddev","sum":43},{"parent":"FUNC","rule":"StreamItemType","sum":5715},{"parent":"FUNC","rule":"StreamType","sum":78586},{"parent":"FUNC","rule":"StreamTypeHandle","sum":17},{"parent":"FUNC","rule":"String","sum":34348},{"parent":"FUNC","rule":"StringLength","sum":5},{"parent":"FUNC","rule":"StringSplitToList","sum":4},{"parent":"FUNC","rule":"StructDifference","sum":235},{"parent":"FUNC","rule":"StructIntersection","sum":816},{"parent":"FUNC","rule":"StructMemberType","sum":20166},{"parent":"FUNC","rule":"StructMembers","sum":970519},{"parent":"FUNC","rule":"StructSymmetricDifference","sum":172},{"parent":"FUNC","rule":"StructType","sum":17979},{"parent":"FUNC","rule":"StructTypeComponents","sum":99655},{"parent":"FUNC","rule":"StructTypeHandle","sum":88035},{"parent":"FUNC","rule":"StructUnion","sum":101879},{"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":27456},{"parent":"FUNC","rule":"SubqueryAssumeOrderBy","sum":818},{"parent":"FUNC","rule":"SubqueryExtend","sum":37139},{"parent":"FUNC","rule":"SubqueryExtendFor","sum":769800},{"parent":"FUNC","rule":"SubqueryMerge","sum":19},{"parent":"FUNC","rule":"SubqueryMergeFor","sum":36400},{"parent":"FUNC","rule":"SubqueryOrderBy","sum":184291},{"parent":"FUNC","rule":"SubqueryUnionALLFor","sum":9},{"parent":"FUNC","rule":"SubqueryUnionALlFor","sum":82},{"parent":"FUNC","rule":"SubqueryUnionAll","sum":26089},{"parent":"FUNC","rule":"SubqueryUnionAllFor","sum":141391},{"parent":"FUNC","rule":"SubqueryUnionAllfor","sum":381},{"parent":"FUNC","rule":"SubqueryUnionMerge","sum":30584},{"parent":"FUNC","rule":"SubqueryUnionMergeFor","sum":73744},{"parent":"FUNC","rule":"SubsTRING","sum":3},{"parent":"FUNC","rule":"Substring","sum":2920490},{"parent":"FUNC","rule":"Sum","sum":453950},{"parent":"FUNC","rule":"SumIf","sum":1597},{"parent":"FUNC","rule":"Sum_IF","sum":85},{"parent":"FUNC","rule":"Sum_If","sum":13919},{"parent":"FUNC","rule":"Sum_if","sum":52945},{"parent":"FUNC","rule":"TABLENAME","sum":12025},{"parent":"FUNC","rule":"TABLEPATH","sum":280},{"parent":"FUNC","rule":"TABLERECORDINDEX","sum":45},{"parent":"FUNC","rule":"TABLEROW","sum":1249},{"parent":"FUNC","rule":"TABLE_NAME","sum":140},{"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":69},{"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":422},{"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":501438},{"parent":"FUNC","rule":"TOPBY","sum":1},{"parent":"FUNC","rule":"TOPFREQ","sum":510613},{"parent":"FUNC","rule":"TOPFreq","sum":3},{"parent":"FUNC","rule":"TOP_BY","sum":1772438},{"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":776},{"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":136},{"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":1655},{"parent":"FUNC","rule":"TableNamE","sum":2},{"parent":"FUNC","rule":"TableName","sum":15053163},{"parent":"FUNC","rule":"TablePATH","sum":1},{"parent":"FUNC","rule":"TablePAth","sum":5},{"parent":"FUNC","rule":"TablePath","sum":1502345},{"parent":"FUNC","rule":"TableROW","sum":4},{"parent":"FUNC","rule":"TableROw","sum":19},{"parent":"FUNC","rule":"TableRecordINdex","sum":4},{"parent":"FUNC","rule":"TableRecordIndex","sum":2316443},{"parent":"FUNC","rule":"TableRedordIndex","sum":1},{"parent":"FUNC","rule":"TableRow","sum":27030786},{"parent":"FUNC","rule":"TableRowIndex","sum":1},{"parent":"FUNC","rule":"TableRows","sum":1691348},{"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":104331},{"parent":"FUNC","rule":"Tablepath","sum":204},{"parent":"FUNC","rule":"TablerRow","sum":1},{"parent":"FUNC","rule":"TablerecordIndex","sum":1},{"parent":"FUNC","rule":"Tablerecordindex","sum":3},{"parent":"FUNC","rule":"Tablerow","sum":26427},{"parent":"FUNC","rule":"TestBit","sum":253623},{"parent":"FUNC","rule":"Text","sum":20},{"parent":"FUNC","rule":"TimeStamp","sum":4383},{"parent":"FUNC","rule":"Timestamp","sum":1352583},{"parent":"FUNC","rule":"Timestamp64","sum":59},{"parent":"FUNC","rule":"ToBytes","sum":6657465},{"parent":"FUNC","rule":"ToDIct","sum":257},{"parent":"FUNC","rule":"ToDict","sum":6409425},{"parent":"FUNC","rule":"ToList","sum":3},{"parent":"FUNC","rule":"ToLower","sum":4},{"parent":"FUNC","rule":"ToMilliseconds","sum":2},{"parent":"FUNC","rule":"ToMultiDict","sum":339470},{"parent":"FUNC","rule":"ToPg","sum":3165},{"parent":"FUNC","rule":"ToSET","sum":80},{"parent":"FUNC","rule":"ToSet","sum":5476490},{"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":841},{"parent":"FUNC","rule":"TopBy","sum":77},{"parent":"FUNC","rule":"TopFreq","sum":13752},{"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":16756620},{"parent":"FUNC","rule":"Trymember","sum":36906},{"parent":"FUNC","rule":"TupleElementType","sum":7626},{"parent":"FUNC","rule":"TupleType","sum":2405},{"parent":"FUNC","rule":"TupleTypeComponents","sum":58},{"parent":"FUNC","rule":"TupleTypeHandle","sum":5579},{"parent":"FUNC","rule":"TypeHandle","sum":161538},{"parent":"FUNC","rule":"TypeKind","sum":54944},{"parent":"FUNC","rule":"TypeOF","sum":37},{"parent":"FUNC","rule":"TypeOf","sum":849905},{"parent":"FUNC","rule":"Typeof","sum":78},{"parent":"FUNC","rule":"TzDate","sum":671},{"parent":"FUNC","rule":"TzDate32","sum":7},{"parent":"FUNC","rule":"TzDateTime","sum":24905},{"parent":"FUNC","rule":"TzDateTime64","sum":7},{"parent":"FUNC","rule":"TzDatetime","sum":46356},{"parent":"FUNC","rule":"TzTimeStamp","sum":4},{"parent":"FUNC","rule":"TzTimestamp","sum":343153},{"parent":"FUNC","rule":"TzTimestamp64","sum":7},{"parent":"FUNC","rule":"UBSTRING","sum":1},{"parent":"FUNC","rule":"UDAF","sum":141596},{"parent":"FUNC","rule":"UDF","sum":1834},{"parent":"FUNC","rule":"UINT32","sum":4},{"parent":"FUNC","rule":"UINT64","sum":6},{"parent":"FUNC","rule":"UInt32","sum":110313},{"parent":"FUNC","rule":"UInt64","sum":829},{"parent":"FUNC","rule":"UInt8","sum":317},{"parent":"FUNC","rule":"UNIQ","sum":1},{"parent":"FUNC","rule":"UNPICKLE","sum":28},{"parent":"FUNC","rule":"UNTAG","sum":18},{"parent":"FUNC","rule":"UNWRAP","sum":14035490},{"parent":"FUNC","rule":"UNWRAp","sum":1},{"parent":"FUNC","rule":"UNWRaP","sum":1},{"parent":"FUNC","rule":"UNWRap","sum":10586},{"parent":"FUNC","rule":"UNWrAP","sum":18},{"parent":"FUNC","rule":"UNWraP","sum":8},{"parent":"FUNC","rule":"UNWrap","sum":4},{"parent":"FUNC","rule":"UNwRAP","sum":6},{"parent":"FUNC","rule":"UNwrap","sum":1368},{"parent":"FUNC","rule":"USING","sum":6},{"parent":"FUNC","rule":"UTF8","sum":336668},{"parent":"FUNC","rule":"UUID","sum":1},{"parent":"FUNC","rule":"Udf","sum":299948},{"parent":"FUNC","rule":"Uint16","sum":83},{"parent":"FUNC","rule":"Uint32","sum":332306},{"parent":"FUNC","rule":"Uint64","sum":11970},{"parent":"FUNC","rule":"Uint8","sum":2927},{"parent":"FUNC","rule":"UnTag","sum":55},{"parent":"FUNC","rule":"UnWRAP","sum":10},{"parent":"FUNC","rule":"UnWrAp","sum":1},{"parent":"FUNC","rule":"UnWrap","sum":1070983},{"parent":"FUNC","rule":"UnionAll","sum":3},{"parent":"FUNC","rule":"Unpickle","sum":180},{"parent":"FUNC","rule":"Untag","sum":15650},{"parent":"FUNC","rule":"Unwarp","sum":1},{"parent":"FUNC","rule":"Unwrap","sum":35784184},{"parent":"FUNC","rule":"UtcCurrentDatetime","sum":8},{"parent":"FUNC","rule":"Utf8","sum":41022},{"parent":"FUNC","rule":"Uuid","sum":451},{"parent":"FUNC","rule":"VALUES","sum":14},{"parent":"FUNC","rule":"VARIANCE","sum":31012},{"parent":"FUNC","rule":"VARIANCE_POPULATION","sum":3016},{"parent":"FUNC","rule":"VARIANCE_SAMPLE","sum":1236},{"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":1145},{"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":3161},{"parent":"FUNC","rule":"VariantTypeHandle","sum":8},{"parent":"FUNC","rule":"VariantUnderlyingType","sum":6517},{"parent":"FUNC","rule":"Version","sum":3},{"parent":"FUNC","rule":"Visit","sum":28},{"parent":"FUNC","rule":"Void","sum":92520},{"parent":"FUNC","rule":"WEAKFIELD","sum":833},{"parent":"FUNC","rule":"WEAK_FIELD","sum":372},{"parent":"FUNC","rule":"WEakField","sum":2},{"parent":"FUNC","rule":"Way","sum":9085},{"parent":"FUNC","rule":"WeakFIeld","sum":43},{"parent":"FUNC","rule":"WeakField","sum":21200118},{"parent":"FUNC","rule":"WeakFiled","sum":2},{"parent":"FUNC","rule":"Weakfield","sum":1925},{"parent":"FUNC","rule":"WorldCode","sum":378},{"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":609223},{"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":1551344},{"parent":"FUNC","rule":"addMember","sum":2594},{"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":1285275},{"parent":"FUNC","rule":"agg_list_DISTINCT","sum":2},{"parent":"FUNC","rule":"agg_list_Distinct","sum":1},{"parent":"FUNC","rule":"agg_list_distinct","sum":435217},{"parent":"FUNC","rule":"agg_set","sum":1},{"parent":"FUNC","rule":"agglist","sum":130},{"parent":"FUNC","rule":"agglistdistinct","sum":44},{"parent":"FUNC","rule":"aggr_list","sum":2662},{"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":368},{"parent":"FUNC","rule":"aggregateListDistinct","sum":38},{"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":369299},{"parent":"FUNC","rule":"aggregate_list","sum":2505875},{"parent":"FUNC","rule":"aggregate_list_","sum":2},{"parent":"FUNC","rule":"aggregate_list_DISTINCT","sum":1795},{"parent":"FUNC","rule":"aggregate_list_Distinct","sum":27},{"parent":"FUNC","rule":"aggregate_list_distinct","sum":941616},{"parent":"FUNC","rule":"aggregatelist","sum":558},{"parent":"FUNC","rule":"aggregatetransforminput","sum":1},{"parent":"FUNC","rule":"aggregationFactory","sum":138},{"parent":"FUNC","rule":"aggregation_factory","sum":8960},{"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":15},{"parent":"FUNC","rule":"argMin","sum":3},{"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":3796},{"parent":"FUNC","rule":"asLIST","sum":50},{"parent":"FUNC","rule":"asList","sum":175821},{"parent":"FUNC","rule":"asSet","sum":1970},{"parent":"FUNC","rule":"asStruct","sum":119870},{"parent":"FUNC","rule":"asTUPLE","sum":1},{"parent":"FUNC","rule":"asTagged","sum":2181},{"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":368},{"parent":"FUNC","rule":"asdict","sum":3848},{"parent":"FUNC","rule":"asenum","sum":13},{"parent":"FUNC","rule":"aslist","sum":164811},{"parent":"FUNC","rule":"assessments_integralListReverse","sum":2},{"parent":"FUNC","rule":"asset","sum":1146},{"parent":"FUNC","rule":"asstruct","sum":13007},{"parent":"FUNC","rule":"assumeNotNull","sum":3},{"parent":"FUNC","rule":"astagged","sum":1372},{"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":6012613},{"parent":"FUNC","rule":"avgIf","sum":19424},{"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":497930},{"parent":"FUNC","rule":"ax","sum":13},{"parent":"FUNC","rule":"bit_or","sum":26580},{"parent":"FUNC","rule":"bool","sum":278},{"parent":"FUNC","rule":"bool_and","sum":67277},{"parent":"FUNC","rule":"bool_or","sum":236590},{"parent":"FUNC","rule":"bool_xor","sum":2},{"parent":"FUNC","rule":"bottom","sum":10501},{"parent":"FUNC","rule":"bottom_by","sum":332629},{"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":25004966},{"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":3843},{"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":38648563},{"parent":"FUNC","rule":"countDistinct","sum":1},{"parent":"FUNC","rule":"countDistinctEstimate","sum":270896},{"parent":"FUNC","rule":"countIF","sum":8342},{"parent":"FUNC","rule":"countIf","sum":1389431},{"parent":"FUNC","rule":"count_","sum":553},{"parent":"FUNC","rule":"count_IF","sum":34210},{"parent":"FUNC","rule":"count_If","sum":26535},{"parent":"FUNC","rule":"count_distinct_estimate","sum":33},{"parent":"FUNC","rule":"count_if","sum":18935238},{"parent":"FUNC","rule":"countdistinctEstimate","sum":1777},{"parent":"FUNC","rule":"countdistinctestimate","sum":2856},{"parent":"FUNC","rule":"countif","sum":21044},{"parent":"FUNC","rule":"covar","sum":243},{"parent":"FUNC","rule":"covariance","sum":287},{"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":3981},{"parent":"FUNC","rule":"currentTzTimestamp","sum":53},{"parent":"FUNC","rule":"currentUTCDATETIME","sum":7},{"parent":"FUNC","rule":"currentUTCDate","sum":661},{"parent":"FUNC","rule":"currentUTCDateTime","sum":310},{"parent":"FUNC","rule":"currentUTCdate","sum":365},{"parent":"FUNC","rule":"currentUTCdatetime","sum":20},{"parent":"FUNC","rule":"currentUTcdate","sum":1336},{"parent":"FUNC","rule":"currentUtcDate","sum":6329},{"parent":"FUNC","rule":"currentUtcDateTime","sum":14501},{"parent":"FUNC","rule":"currentUtcDatetime","sum":2383},{"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":261},{"parent":"FUNC","rule":"currenttztimestamp","sum":47},{"parent":"FUNC","rule":"currentutcDateTime","sum":3},{"parent":"FUNC","rule":"currentutcdate","sum":118700},{"parent":"FUNC","rule":"currentutcdatetime","sum":58523},{"parent":"FUNC","rule":"currentutctimestamp","sum":48372},{"parent":"FUNC","rule":"d","sum":1},{"parent":"FUNC","rule":"dATE","sum":4},{"parent":"FUNC","rule":"date","sum":415702},{"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_sub","sum":2},{"parent":"FUNC","rule":"dateadd","sum":1},{"parent":"FUNC","rule":"datetime","sum":11759},{"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":46376},{"parent":"FUNC","rule":"dictAggregate","sum":59},{"parent":"FUNC","rule":"dictContains","sum":7},{"parent":"FUNC","rule":"dictGetString","sum":1},{"parent":"FUNC","rule":"dictItems","sum":8482},{"parent":"FUNC","rule":"dictKeys","sum":1199},{"parent":"FUNC","rule":"dictLength","sum":104},{"parent":"FUNC","rule":"dictLookUp","sum":9327},{"parent":"FUNC","rule":"dictLookup","sum":675},{"parent":"FUNC","rule":"dictPayloads","sum":90},{"parent":"FUNC","rule":"dict_keys","sum":8696},{"parent":"FUNC","rule":"dictcontains","sum":345},{"parent":"FUNC","rule":"dictcreate","sum":2},{"parent":"FUNC","rule":"dicthasitems","sum":24},{"parent":"FUNC","rule":"dictitems","sum":2512},{"parent":"FUNC","rule":"dictkeys","sum":897},{"parent":"FUNC","rule":"dictlength","sum":6530},{"parent":"FUNC","rule":"dictlookup","sum":1591},{"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":2149},{"parent":"FUNC","rule":"endswith","sum":31680},{"parent":"FUNC","rule":"ensure","sum":409136},{"parent":"FUNC","rule":"ensuretype","sum":708},{"parent":"FUNC","rule":"evaluateCode","sum":51},{"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":973},{"parent":"FUNC","rule":"filter","sum":2},{"parent":"FUNC","rule":"find","sum":4070995},{"parent":"FUNC","rule":"first_VALUE","sum":19},{"parent":"FUNC","rule":"first_route_timestamp","sum":1},{"parent":"FUNC","rule":"first_value","sum":1147237},{"parent":"FUNC","rule":"flatten","sum":1},{"parent":"FUNC","rule":"float","sum":23058},{"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":133},{"parent":"FUNC","rule":"fromUnixTimestamp64Micro","sum":1},{"parent":"FUNC","rule":"from_bytes","sum":2},{"parent":"FUNC","rule":"frombytes","sum":47},{"parent":"FUNC","rule":"frompg","sum":130},{"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":317805},{"parent":"FUNC","rule":"groupArray","sum":4},{"parent":"FUNC","rule":"groupUniqArray","sum":2},{"parent":"FUNC","rule":"grouping","sum":17631},{"parent":"FUNC","rule":"hISTOGRAM","sum":2},{"parent":"FUNC","rule":"has","sum":20},{"parent":"FUNC","rule":"histOGRAM","sum":4},{"parent":"FUNC","rule":"histograM","sum":359},{"parent":"FUNC","rule":"histogram","sum":52723},{"parent":"FUNC","rule":"histogramcdf","sum":84},{"parent":"FUNC","rule":"hll","sum":82176},{"parent":"FUNC","rule":"iF","sum":2691},{"parent":"FUNC","rule":"iNtErVaL","sum":1},{"parent":"FUNC","rule":"if","sum":43202776},{"parent":"FUNC","rule":"ifNull","sum":6},{"parent":"FUNC","rule":"in","sum":13},{"parent":"FUNC","rule":"indexOf","sum":14},{"parent":"FUNC","rule":"instanceof","sum":55},{"parent":"FUNC","rule":"instr","sum":1},{"parent":"FUNC","rule":"int","sum":32408},{"parent":"FUNC","rule":"int32","sum":2},{"parent":"FUNC","rule":"int64","sum":19},{"parent":"FUNC","rule":"int8","sum":2},{"parent":"FUNC","rule":"intervaL","sum":9421},{"parent":"FUNC","rule":"interval","sum":1800579},{"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":5627},{"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":245256},{"parent":"FUNC","rule":"lAG","sum":2244},{"parent":"FUNC","rule":"lEAD","sum":6798},{"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":1012991},{"parent":"FUNC","rule":"last_VALUE","sum":14},{"parent":"FUNC","rule":"last_value","sum":1082017},{"parent":"FUNC","rule":"lead","sum":928409},{"parent":"FUNC","rule":"least","sum":375371},{"parent":"FUNC","rule":"len","sum":712178},{"parent":"FUNC","rule":"lenGTH","sum":1},{"parent":"FUNC","rule":"lenght","sum":1},{"parent":"FUNC","rule":"lengtH","sum":2},{"parent":"FUNC","rule":"length","sum":2552436},{"parent":"FUNC","rule":"like","sum":4},{"parent":"FUNC","rule":"likely","sum":16470},{"parent":"FUNC","rule":"linearHISTOGRAM","sum":10},{"parent":"FUNC","rule":"linearHistogram","sum":14},{"parent":"FUNC","rule":"linearhistogram","sum":174},{"parent":"FUNC","rule":"linearhistogramcdf","sum":20},{"parent":"FUNC","rule":"listALL","sum":3},{"parent":"FUNC","rule":"listAVG","sum":894},{"parent":"FUNC","rule":"listAggregateUnique","sum":1},{"parent":"FUNC","rule":"listAll","sum":86},{"parent":"FUNC","rule":"listAny","sum":121},{"parent":"FUNC","rule":"listAvg","sum":105},{"parent":"FUNC","rule":"listCollect","sum":378},{"parent":"FUNC","rule":"listConcat","sum":11072},{"parent":"FUNC","rule":"listEnumerate","sum":132},{"parent":"FUNC","rule":"listExtend","sum":6711},{"parent":"FUNC","rule":"listExtract","sum":24},{"parent":"FUNC","rule":"listFilter","sum":39834},{"parent":"FUNC","rule":"listFlatten","sum":287},{"parent":"FUNC","rule":"listFold","sum":301},{"parent":"FUNC","rule":"listFromRange","sum":767},{"parent":"FUNC","rule":"listHAs","sum":52},{"parent":"FUNC","rule":"listHas","sum":41607},{"parent":"FUNC","rule":"listHasItems","sum":3253},{"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":1020},{"parent":"FUNC","rule":"listLength","sum":29895},{"parent":"FUNC","rule":"listMAX","sum":1},{"parent":"FUNC","rule":"listMIN","sum":1},{"parent":"FUNC","rule":"listMap","sum":53689},{"parent":"FUNC","rule":"listMax","sum":812},{"parent":"FUNC","rule":"listMin","sum":170},{"parent":"FUNC","rule":"listNotNull","sum":279},{"parent":"FUNC","rule":"listReverse","sum":4483},{"parent":"FUNC","rule":"listSkip","sum":18},{"parent":"FUNC","rule":"listSort","sum":23734},{"parent":"FUNC","rule":"listSortAsc","sum":2},{"parent":"FUNC","rule":"listSortDesc","sum":200},{"parent":"FUNC","rule":"listSum","sum":1473},{"parent":"FUNC","rule":"listTake","sum":728},{"parent":"FUNC","rule":"listTopSort","sum":18},{"parent":"FUNC","rule":"listUniq","sum":10546},{"parent":"FUNC","rule":"listUniqStable","sum":1},{"parent":"FUNC","rule":"listZip","sum":1346},{"parent":"FUNC","rule":"listZipAll","sum":1389},{"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":264},{"parent":"FUNC","rule":"list_filter","sum":2},{"parent":"FUNC","rule":"list_flatten","sum":15},{"parent":"FUNC","rule":"list_has","sum":6267},{"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":13316},{"parent":"FUNC","rule":"listany","sum":15235},{"parent":"FUNC","rule":"listavg","sum":11828},{"parent":"FUNC","rule":"listcollect","sum":505},{"parent":"FUNC","rule":"listconcat","sum":19350},{"parent":"FUNC","rule":"listcreate","sum":10},{"parent":"FUNC","rule":"listenumerate","sum":2077},{"parent":"FUNC","rule":"listextend","sum":3861},{"parent":"FUNC","rule":"listextendstrict","sum":61},{"parent":"FUNC","rule":"listextract","sum":1821},{"parent":"FUNC","rule":"listfilter","sum":102084},{"parent":"FUNC","rule":"listflatmap","sum":7255},{"parent":"FUNC","rule":"listflatten","sum":22749},{"parent":"FUNC","rule":"listfold","sum":16},{"parent":"FUNC","rule":"listfold1map","sum":60},{"parent":"FUNC","rule":"listfromRange","sum":16},{"parent":"FUNC","rule":"listfromrange","sum":14075},{"parent":"FUNC","rule":"listfromtuple","sum":58},{"parent":"FUNC","rule":"listhas","sum":171993},{"parent":"FUNC","rule":"listhasItems","sum":34},{"parent":"FUNC","rule":"listhasitems","sum":10552},{"parent":"FUNC","rule":"listhead","sum":18543},{"parent":"FUNC","rule":"listindexof","sum":1199},{"parent":"FUNC","rule":"listlast","sum":3102},{"parent":"FUNC","rule":"listlength","sum":343429},{"parent":"FUNC","rule":"listmap","sum":517183},{"parent":"FUNC","rule":"listmax","sum":3946},{"parent":"FUNC","rule":"listmin","sum":2671},{"parent":"FUNC","rule":"listnotNull","sum":1},{"parent":"FUNC","rule":"listnotnull","sum":12913},{"parent":"FUNC","rule":"listreplicate","sum":49},{"parent":"FUNC","rule":"listreverse","sum":2241},{"parent":"FUNC","rule":"listskip","sum":1176},{"parent":"FUNC","rule":"listsort","sum":56470},{"parent":"FUNC","rule":"listsortDesc","sum":1},{"parent":"FUNC","rule":"listsortasc","sum":383},{"parent":"FUNC","rule":"listsortdesc","sum":3964},{"parent":"FUNC","rule":"listsum","sum":3414},{"parent":"FUNC","rule":"listtake","sum":16117},{"parent":"FUNC","rule":"listtop","sum":68},{"parent":"FUNC","rule":"listunionall","sum":8},{"parent":"FUNC","rule":"listuniq","sum":25707},{"parent":"FUNC","rule":"listuniqstable","sum":94},{"parent":"FUNC","rule":"listzip","sum":16670},{"parent":"FUNC","rule":"listzipALL","sum":2},{"parent":"FUNC","rule":"listzipAll","sum":15},{"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":132},{"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":25162892},{"parent":"FUNC","rule":"maxBy","sum":1},{"parent":"FUNC","rule":"maxOf","sum":3545},{"parent":"FUNC","rule":"max_","sum":1},{"parent":"FUNC","rule":"max_BY","sum":2358},{"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":28974444},{"parent":"FUNC","rule":"max_if","sum":3},{"parent":"FUNC","rule":"max_of","sum":1281844},{"parent":"FUNC","rule":"maxby","sum":4088},{"parent":"FUNC","rule":"maxof","sum":853},{"parent":"FUNC","rule":"md5int","sum":1},{"parent":"FUNC","rule":"median","sum":382448},{"parent":"FUNC","rule":"metric_exp","sum":1},{"parent":"FUNC","rule":"min","sum":10266491},{"parent":"FUNC","rule":"minOf","sum":2},{"parent":"FUNC","rule":"min_BY","sum":8618},{"parent":"FUNC","rule":"min_By","sum":6},{"parent":"FUNC","rule":"min_OF","sum":9},{"parent":"FUNC","rule":"min_Of","sum":344},{"parent":"FUNC","rule":"min_by","sum":2330757},{"parent":"FUNC","rule":"min_if","sum":10},{"parent":"FUNC","rule":"min_of","sum":577383},{"parent":"FUNC","rule":"minby","sum":1},{"parent":"FUNC","rule":"minof","sum":98},{"parent":"FUNC","rule":"mode","sum":117625},{"parent":"FUNC","rule":"multiIf","sum":2},{"parent":"FUNC","rule":"multi_aggregate_by","sum":117848},{"parent":"FUNC","rule":"naNVL","sum":16},{"parent":"FUNC","rule":"nanvl","sum":129280},{"parent":"FUNC","rule":"notEmpty","sum":2},{"parent":"FUNC","rule":"nothing","sum":12897},{"parent":"FUNC","rule":"now","sum":16},{"parent":"FUNC","rule":"nth_value","sum":17},{"parent":"FUNC","rule":"ntile","sum":343},{"parent":"FUNC","rule":"nvL","sum":62},{"parent":"FUNC","rule":"nvl","sum":14035630},{"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":155},{"parent":"FUNC","rule":"parseForErrors","sum":32},{"parent":"FUNC","rule":"parse_dt_formatted","sum":1},{"parent":"FUNC","rule":"parsefile","sum":11186},{"parent":"FUNC","rule":"percent_rank","sum":2210},{"parent":"FUNC","rule":"percentile","sum":3351868},{"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":"print","sum":1},{"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":260560},{"parent":"FUNC","rule":"randomNumber","sum":10},{"parent":"FUNC","rule":"randomUuid","sum":153},{"parent":"FUNC","rule":"random_number","sum":11},{"parent":"FUNC","rule":"randomnumber","sum":479},{"parent":"FUNC","rule":"randomuuid","sum":36},{"parent":"FUNC","rule":"range","sum":96},{"parent":"FUNC","rule":"rank","sum":222154},{"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":127953},{"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":2182073},{"parent":"FUNC","rule":"rownumber","sum":392},{"parent":"FUNC","rule":"sUBSTRING","sum":3},{"parent":"FUNC","rule":"sUM","sum":445},{"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":172},{"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":122},{"parent":"FUNC","rule":"setisdisjoint","sum":1052},{"parent":"FUNC","rule":"setsymmetricdifference","sum":204},{"parent":"FUNC","rule":"setunion","sum":1790},{"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":20357950},{"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":200060},{"parent":"FUNC","rule":"starts_with","sum":14},{"parent":"FUNC","rule":"startswith","sum":20547},{"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":619791},{"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":887},{"parent":"FUNC","rule":"stddevpop","sum":19},{"parent":"FUNC","rule":"stddevsamp","sum":5},{"parent":"FUNC","rule":"str","sum":15},{"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":185},{"parent":"FUNC","rule":"suM_if","sum":16},{"parent":"FUNC","rule":"subDate","sum":1},{"parent":"FUNC","rule":"subSTRING","sum":1},{"parent":"FUNC","rule":"subString","sum":581},{"parent":"FUNC","rule":"subqueryMergeFor","sum":21},{"parent":"FUNC","rule":"subqueryUnionMergeFor","sum":4390},{"parent":"FUNC","rule":"subquerymergefor","sum":1944},{"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":16541675},{"parent":"FUNC","rule":"substringUTF8","sum":1},{"parent":"FUNC","rule":"substring_index","sum":1},{"parent":"FUNC","rule":"sum","sum":45408099},{"parent":"FUNC","rule":"sumIF","sum":84},{"parent":"FUNC","rule":"sumIf","sum":94459},{"parent":"FUNC","rule":"sum_","sum":356},{"parent":"FUNC","rule":"sum_IF","sum":19531},{"parent":"FUNC","rule":"sum_If","sum":13050},{"parent":"FUNC","rule":"sum_if","sum":4234406},{"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":7488},{"parent":"FUNC","rule":"summ","sum":10},{"parent":"FUNC","rule":"sunstring","sum":2},{"parent":"FUNC","rule":"susbstring","sum":1},{"parent":"FUNC","rule":"tableName","sum":43283},{"parent":"FUNC","rule":"tablePath","sum":1488},{"parent":"FUNC","rule":"tableRecordIndex","sum":19},{"parent":"FUNC","rule":"tableRow","sum":22906},{"parent":"FUNC","rule":"table_name","sum":2893},{"parent":"FUNC","rule":"table_path","sum":46},{"parent":"FUNC","rule":"table_row","sum":377},{"parent":"FUNC","rule":"tablename","sum":165832},{"parent":"FUNC","rule":"tablepath","sum":32965},{"parent":"FUNC","rule":"tablerecordindex","sum":111},{"parent":"FUNC","rule":"tablerow","sum":42768},{"parent":"FUNC","rule":"tablerows","sum":5},{"parent":"FUNC","rule":"testBit","sum":34},{"parent":"FUNC","rule":"testbit","sum":39091},{"parent":"FUNC","rule":"testid","sum":2},{"parent":"FUNC","rule":"timestamp","sum":9976},{"parent":"FUNC","rule":"timestamp64","sum":7},{"parent":"FUNC","rule":"timezone","sum":2},{"parent":"FUNC","rule":"toBytes","sum":25779},{"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":96413},{"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":437979},{"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":100936},{"parent":"FUNC","rule":"tomultidict","sum":1164},{"parent":"FUNC","rule":"top","sum":54498},{"parent":"FUNC","rule":"topFreq","sum":95},{"parent":"FUNC","rule":"top_BY","sum":1},{"parent":"FUNC","rule":"top_by","sum":115758},{"parent":"FUNC","rule":"top_freq","sum":108},{"parent":"FUNC","rule":"topfreq","sum":23295},{"parent":"FUNC","rule":"topg","sum":2},{"parent":"FUNC","rule":"toset","sum":38801},{"parent":"FUNC","rule":"trunc","sum":13},{"parent":"FUNC","rule":"truncate","sum":2},{"parent":"FUNC","rule":"tryMember","sum":527},{"parent":"FUNC","rule":"trymember","sum":10140},{"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":112},{"parent":"FUNC","rule":"udaf","sum":17583},{"parent":"FUNC","rule":"uint32","sum":13570},{"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":1327},{"parent":"FUNC","rule":"unwrap","sum":27087950},{"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":2038},{"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":66655},{"parent":"FUNC","rule":"variance_population","sum":4},{"parent":"FUNC","rule":"variance_sample","sum":524},{"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":42003},{"parent":"FUNC","rule":"weakField","sum":1077},{"parent":"FUNC","rule":"weakfield","sum":981176},{"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":"INSERT_HINT","rule":"COLUMN_GROUPS","sum":74},{"parent":"INSERT_HINT","rule":"COMPRESSION_CODEC","sum":855557},{"parent":"INSERT_HINT","rule":"ERASURE_CODEC","sum":67540},{"parent":"INSERT_HINT","rule":"EXPIRATION","sum":7127820},{"parent":"INSERT_HINT","rule":"Expiration","sum":175},{"parent":"INSERT_HINT","rule":"KEEPMETA","sum":10},{"parent":"INSERT_HINT","rule":"KEEP_META","sum":113218},{"parent":"INSERT_HINT","rule":"MODE","sum":2},{"parent":"INSERT_HINT","rule":"MONOTONIC_KEYS","sum":429636},{"parent":"INSERT_HINT","rule":"PRIMARY_MEDIUM","sum":88663},{"parent":"INSERT_HINT","rule":"REPLICATION_FACTOR","sum":7397},{"parent":"INSERT_HINT","rule":"SECURITY_TAGS","sum":4776},{"parent":"INSERT_HINT","rule":"TRUNCATE","sum":111356671},{"parent":"INSERT_HINT","rule":"TRUNCATe","sum":315},{"parent":"INSERT_HINT","rule":"TRUNCAtE","sum":3},{"parent":"INSERT_HINT","rule":"TRUNCAte","sum":11},{"parent":"INSERT_HINT","rule":"TRUNCaTE","sum":2},{"parent":"INSERT_HINT","rule":"TRUNCate","sum":10},{"parent":"INSERT_HINT","rule":"TRUNcATE","sum":6},{"parent":"INSERT_HINT","rule":"TRUnCATE","sum":1},{"parent":"INSERT_HINT","rule":"TRUncATE","sum":318},{"parent":"INSERT_HINT","rule":"TRUncate","sum":10},{"parent":"INSERT_HINT","rule":"TRuNCATE","sum":2},{"parent":"INSERT_HINT","rule":"TRuncaTE","sum":1},{"parent":"INSERT_HINT","rule":"TRuncate","sum":50},{"parent":"INSERT_HINT","rule":"TrUNCATE","sum":1},{"parent":"INSERT_HINT","rule":"Truncate","sum":4648},{"parent":"INSERT_HINT","rule":"USER_ATTRS","sum":2065234},{"parent":"INSERT_HINT","rule":"XLOCK","sum":1},{"parent":"INSERT_HINT","rule":"column_groups","sum":6440},{"parent":"INSERT_HINT","rule":"compression_codec","sum":2014},{"parent":"INSERT_HINT","rule":"erasure_codec","sum":3154},{"parent":"INSERT_HINT","rule":"expiration","sum":336077},{"parent":"INSERT_HINT","rule":"keep_meta","sum":134655},{"parent":"INSERT_HINT","rule":"monotonic_keys","sum":15},{"parent":"INSERT_HINT","rule":"primary_medium","sum":11528},{"parent":"INSERT_HINT","rule":"replication_factor","sum":1},{"parent":"INSERT_HINT","rule":"tRUNCATE","sum":1},{"parent":"INSERT_HINT","rule":"tRUNCAte","sum":1},{"parent":"INSERT_HINT","rule":"trUNCATE","sum":19},{"parent":"INSERT_HINT","rule":"truNCATE","sum":2},{"parent":"INSERT_HINT","rule":"trunCATE","sum":7},{"parent":"INSERT_HINT","rule":"truncate","sum":30986213},{"parent":"INSERT_HINT","rule":"user_attr","sum":1},{"parent":"INSERT_HINT","rule":"user_attrs","sum":66589},{"parent":"MODULE","rule":"Compress","sum":84351},{"parent":"MODULE","rule":"DATETIME","sum":1128},{"parent":"MODULE","rule":"DATEtime","sum":2},{"parent":"MODULE","rule":"DAteTime","sum":3233},{"parent":"MODULE","rule":"DAtetime","sum":7},{"parent":"MODULE","rule":"DIgest","sum":2},{"parent":"MODULE","rule":"DaTETIME","sum":334},{"parent":"MODULE","rule":"DaTeTime","sum":84},{"parent":"MODULE","rule":"DateTIME","sum":723},{"parent":"MODULE","rule":"DateTIme","sum":4369},{"parent":"MODULE","rule":"DateTime","sum":275534815},{"parent":"MODULE","rule":"DatetIme","sum":367},{"parent":"MODULE","rule":"Datetime","sum":7107067},{"parent":"MODULE","rule":"Decompress","sum":24698},{"parent":"MODULE","rule":"Digest","sum":7713118},{"parent":"MODULE","rule":"HyperScan","sum":2302},{"parent":"MODULE","rule":"Hyperscan","sum":389661},{"parent":"MODULE","rule":"Ip","sum":1348011},{"parent":"MODULE","rule":"JSON","sum":26908},{"parent":"MODULE","rule":"JSon","sum":2},{"parent":"MODULE","rule":"Json","sum":1012853},{"parent":"MODULE","rule":"MATH","sum":196},{"parent":"MODULE","rule":"Math","sum":44904674},{"parent":"MODULE","rule":"PG","sum":199},{"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":1913457},{"parent":"MODULE","rule":"Protobuf","sum":270337},{"parent":"MODULE","rule":"RE2","sum":5148},{"parent":"MODULE","rule":"Re2","sum":12193295},{"parent":"MODULE","rule":"STRING","sum":6},{"parent":"MODULE","rule":"String","sum":95484074},{"parent":"MODULE","rule":"TryDecompress","sum":4761},{"parent":"MODULE","rule":"URL","sum":7},{"parent":"MODULE","rule":"Unicode","sum":4914960},{"parent":"MODULE","rule":"Url","sum":23538071},{"parent":"MODULE","rule":"YSON","sum":205},{"parent":"MODULE","rule":"YSon","sum":23},{"parent":"MODULE","rule":"Yson","sum":395534558},{"parent":"MODULE","rule":"dateTime","sum":471},{"parent":"MODULE","rule":"datetime","sum":14194},{"parent":"MODULE","rule":"digest","sum":15},{"parent":"MODULE","rule":"json","sum":8},{"parent":"MODULE","rule":"math","sum":68},{"parent":"MODULE","rule":"pg","sum":1796},{"parent":"MODULE","rule":"pire","sum":36},{"parent":"MODULE","rule":"re2","sum":3215},{"parent":"MODULE","rule":"string","sum":85},{"parent":"MODULE","rule":"url","sum":5},{"parent":"MODULE","rule":"ySoN","sum":1},{"parent":"MODULE","rule":"yson","sum":63},{"parent":"MODULE_FUNC","rule":"Compress::BZip2","sum":2},{"parent":"MODULE_FUNC","rule":"Compress::BlockCodec","sum":6},{"parent":"MODULE_FUNC","rule":"Compress::Brotli","sum":158},{"parent":"MODULE_FUNC","rule":"Compress::Gzip","sum":83368},{"parent":"MODULE_FUNC","rule":"Compress::Lz4","sum":623},{"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":285},{"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":584},{"parent":"MODULE_FUNC","rule":"DAteTime::Parse","sum":150},{"parent":"MODULE_FUNC","rule":"DAteTime::StartOfMonth","sum":2488},{"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":334},{"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":3622},{"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":4},{"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":28},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfDay","sum":418},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfMonth","sum":39075},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfQuarter","sum":306},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfWeek","sum":615},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfYear","sum":145},{"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":39855318},{"parent":"MODULE_FUNC","rule":"DateTime::FormatTime","sum":6},{"parent":"MODULE_FUNC","rule":"DateTime::FromDays","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::FromMicroSeconds","sum":240},{"parent":"MODULE_FUNC","rule":"DateTime::FromMicroseconds","sum":4686487},{"parent":"MODULE_FUNC","rule":"DateTime::FromMicroseconds64","sum":126},{"parent":"MODULE_FUNC","rule":"DateTime::FromMilliSeconds","sum":7},{"parent":"MODULE_FUNC","rule":"DateTime::FromMilliseconds","sum":9219972},{"parent":"MODULE_FUNC","rule":"DateTime::FromMilliseconds64","sum":997},{"parent":"MODULE_FUNC","rule":"DateTime::FromSecond","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::FromSeconds","sum":15195569},{"parent":"MODULE_FUNC","rule":"DateTime::FromSeconds64","sum":985},{"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":597594},{"parent":"MODULE_FUNC","rule":"DateTime::GetDayOfWeek","sum":637048},{"parent":"MODULE_FUNC","rule":"DateTime::GetDayOfWeekName","sum":126013},{"parent":"MODULE_FUNC","rule":"DateTime::GetDayOfYear","sum":44540},{"parent":"MODULE_FUNC","rule":"DateTime::GetHour","sum":1454427},{"parent":"MODULE_FUNC","rule":"DateTime::GetIntervalLength","sum":12},{"parent":"MODULE_FUNC","rule":"DateTime::GetLastDayOfMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::GetMicrosecondOfSecond","sum":1248},{"parent":"MODULE_FUNC","rule":"DateTime::GetMillisecondOfSecond","sum":31},{"parent":"MODULE_FUNC","rule":"DateTime::GetMinute","sum":288786},{"parent":"MODULE_FUNC","rule":"DateTime::GetMonth","sum":705134},{"parent":"MODULE_FUNC","rule":"DateTime::GetMonthName","sum":38934},{"parent":"MODULE_FUNC","rule":"DateTime::GetMonthOfYear","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::GetSecond","sum":85926},{"parent":"MODULE_FUNC","rule":"DateTime::GetTimezoneId","sum":104},{"parent":"MODULE_FUNC","rule":"DateTime::GetTimezoneName","sum":520},{"parent":"MODULE_FUNC","rule":"DateTime::GetWeek","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::GetWeekOfYear","sum":504483},{"parent":"MODULE_FUNC","rule":"DateTime::GetWeekOfYearIso8601","sum":34508},{"parent":"MODULE_FUNC","rule":"DateTime::GetYEAR","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::GetYear","sum":786911},{"parent":"MODULE_FUNC","rule":"DateTime::Getmonth","sum":16},{"parent":"MODULE_FUNC","rule":"DateTime::Interval","sum":33},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromDays","sum":2220},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromHours","sum":4358},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromMicroseconds","sum":9},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromMilliseconds","sum":8},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromMinutes","sum":193},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromSeconds","sum":133},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFROMDays","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFrom","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromDays","sum":15024513},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromHDays","sum":28},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromHours","sum":8962513},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMicroseconds","sum":77727},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMilliseconds","sum":516031},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMinute","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMinutes","sum":4276219},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMonth","sum":9},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMonths","sum":7},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromSeconds","sum":934655},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromYears","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalfromDays","sum":29},{"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":23176904},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDate32","sum":73},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDateTime","sum":273},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDatetime","sum":36661736},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDatetime64","sum":114},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTimestamp","sum":7841906},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTimestamp64","sum":295},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDate","sum":262565},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDate32","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDateTime","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDatetime","sum":3126666},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDatetime64","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzTimestamp","sum":153628},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzTimestamp64","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::Makedate","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Makedatetime","sum":3},{"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":23548906},{"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":18557078},{"parent":"MODULE_FUNC","rule":"DateTime::ParseRfc822","sum":1861},{"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":191},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftMinutes","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftMonth","sum":11},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftMonths","sum":3307661},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftQuarters","sum":389086},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftWeek","sum":7},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftWeeks","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftYears","sum":673368},{"parent":"MODULE_FUNC","rule":"DateTime::Split","sum":699782},{"parent":"MODULE_FUNC","rule":"DateTime::StartOf","sum":2340429},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfDay","sum":2654510},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfHour","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfMohth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfMonth","sum":4159745},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfQuarter","sum":555462},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfWeek","sum":2076212},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfYear","sum":943983},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfmonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfweek","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::TimeOfDay","sum":66946},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromMicroSeconds","sum":364},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromMilliSeconds","sum":2503},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromMinutes","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromSeconds","sum":391},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromString","sum":423},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampStartOfMonth","sum":820},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampStartOfWeek","sum":398},{"parent":"MODULE_FUNC","rule":"DateTime::To","sum":5},{"parent":"MODULE_FUNC","rule":"DateTime::ToDate","sum":1430},{"parent":"MODULE_FUNC","rule":"DateTime::ToDateTime","sum":6},{"parent":"MODULE_FUNC","rule":"DateTime::ToDays","sum":3470339},{"parent":"MODULE_FUNC","rule":"DateTime::ToHours","sum":1320622},{"parent":"MODULE_FUNC","rule":"DateTime::ToIsoFormat","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ToMicroseconds","sum":2224035},{"parent":"MODULE_FUNC","rule":"DateTime::ToMilliseconds","sum":5310594},{"parent":"MODULE_FUNC","rule":"DateTime::ToMinutes","sum":861212},{"parent":"MODULE_FUNC","rule":"DateTime::ToMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ToMonths","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ToSeconds","sum":23418049},{"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":3591013},{"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":195},{"parent":"MODULE_FUNC","rule":"Datetime::EndOfWeek","sum":71},{"parent":"MODULE_FUNC","rule":"Datetime::Format","sum":366153},{"parent":"MODULE_FUNC","rule":"Datetime::FromMicroseconds","sum":36341},{"parent":"MODULE_FUNC","rule":"Datetime::FromMilliseconds","sum":789662},{"parent":"MODULE_FUNC","rule":"Datetime::FromSeconds","sum":567592},{"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":12423},{"parent":"MODULE_FUNC","rule":"Datetime::GetDayOfWeekName","sum":838},{"parent":"MODULE_FUNC","rule":"Datetime::GetDayOfYear","sum":59},{"parent":"MODULE_FUNC","rule":"Datetime::GetHour","sum":14707},{"parent":"MODULE_FUNC","rule":"Datetime::GetMinute","sum":13778},{"parent":"MODULE_FUNC","rule":"Datetime::GetMonth","sum":1037},{"parent":"MODULE_FUNC","rule":"Datetime::GetMonthName","sum":345},{"parent":"MODULE_FUNC","rule":"Datetime::GetWeekOfYear","sum":2705},{"parent":"MODULE_FUNC","rule":"Datetime::GetWeekOfYearIso8601","sum":3},{"parent":"MODULE_FUNC","rule":"Datetime::GetYear","sum":2735},{"parent":"MODULE_FUNC","rule":"Datetime::Interval","sum":9},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFROMDays","sum":8},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromDays","sum":372724},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromHours","sum":266318},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromMicroseconds","sum":194},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromMilliseconds","sum":91},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromMinutes","sum":50015},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromSeconds","sum":9639},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDate","sum":679780},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDate32","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDateTime","sum":2},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDatetime","sum":921448},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDatetime64","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTimestamp","sum":416088},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTzDate","sum":2312},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTzDatetime","sum":24016},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTzTimestamp","sum":33325},{"parent":"MODULE_FUNC","rule":"Datetime::Makedate","sum":37},{"parent":"MODULE_FUNC","rule":"Datetime::Parse","sum":138318},{"parent":"MODULE_FUNC","rule":"Datetime::ParseIso8601","sum":258024},{"parent":"MODULE_FUNC","rule":"Datetime::ShiftMonths","sum":25923},{"parent":"MODULE_FUNC","rule":"Datetime::ShiftQuarters","sum":554},{"parent":"MODULE_FUNC","rule":"Datetime::ShiftYears","sum":318},{"parent":"MODULE_FUNC","rule":"Datetime::Split","sum":207},{"parent":"MODULE_FUNC","rule":"Datetime::StarOfWeek","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::StartOf","sum":64225},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfDay","sum":23114},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfMonth","sum":74651},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfQuarter","sum":4402},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfWeek","sum":23006},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfYear","sum":11664},{"parent":"MODULE_FUNC","rule":"Datetime::TimeOfDay","sum":125},{"parent":"MODULE_FUNC","rule":"Datetime::ToDatetime","sum":12},{"parent":"MODULE_FUNC","rule":"Datetime::ToDays","sum":141728},{"parent":"MODULE_FUNC","rule":"Datetime::ToHours","sum":22949},{"parent":"MODULE_FUNC","rule":"Datetime::ToMicroseconds","sum":585},{"parent":"MODULE_FUNC","rule":"Datetime::ToMilliseconds","sum":121727},{"parent":"MODULE_FUNC","rule":"Datetime::ToMinutes","sum":45248},{"parent":"MODULE_FUNC","rule":"Datetime::ToSeconds","sum":1535357},{"parent":"MODULE_FUNC","rule":"Datetime::Update","sum":29536},{"parent":"MODULE_FUNC","rule":"Datetime::split","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::startOfmonth","sum":2},{"parent":"MODULE_FUNC","rule":"Decompress::BZip2","sum":525},{"parent":"MODULE_FUNC","rule":"Decompress::Brotli","sum":7863},{"parent":"MODULE_FUNC","rule":"Decompress::Gzip","sum":3914},{"parent":"MODULE_FUNC","rule":"Decompress::Lz4","sum":902},{"parent":"MODULE_FUNC","rule":"Decompress::Snappy","sum":461},{"parent":"MODULE_FUNC","rule":"Decompress::Zlib","sum":11002},{"parent":"MODULE_FUNC","rule":"Decompress::Zstd","sum":31},{"parent":"MODULE_FUNC","rule":"Digest::Argon2","sum":48524},{"parent":"MODULE_FUNC","rule":"Digest::Blake2B","sum":4530},{"parent":"MODULE_FUNC","rule":"Digest::CityHash","sum":1226103},{"parent":"MODULE_FUNC","rule":"Digest::CityHash128","sum":18003},{"parent":"MODULE_FUNC","rule":"Digest::Crc32c","sum":77270},{"parent":"MODULE_FUNC","rule":"Digest::Crc64","sum":140659},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint","sum":70089},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint128","sum":26},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint2","sum":166688},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint32","sum":208},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint64","sum":1051883},{"parent":"MODULE_FUNC","rule":"Digest::Fnv32","sum":1747},{"parent":"MODULE_FUNC","rule":"Digest::Fnv64","sum":260976},{"parent":"MODULE_FUNC","rule":"Digest::IntHash64","sum":18246},{"parent":"MODULE_FUNC","rule":"Digest::MD5Hex","sum":6},{"parent":"MODULE_FUNC","rule":"Digest::Md5","sum":2},{"parent":"MODULE_FUNC","rule":"Digest::Md5HalfMix","sum":427858},{"parent":"MODULE_FUNC","rule":"Digest::Md5Hex","sum":568663},{"parent":"MODULE_FUNC","rule":"Digest::Md5Raw","sum":15705},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash","sum":2423211},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash2A","sum":2503},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash2A32","sum":837},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash32","sum":256178},{"parent":"MODULE_FUNC","rule":"Digest::MurMurhash","sum":2},{"parent":"MODULE_FUNC","rule":"Digest::NimericHash","sum":3},{"parent":"MODULE_FUNC","rule":"Digest::NumericHash","sum":275478},{"parent":"MODULE_FUNC","rule":"Digest::Sha1","sum":42539},{"parent":"MODULE_FUNC","rule":"Digest::Sha256","sum":399849},{"parent":"MODULE_FUNC","rule":"Digest::SipHash","sum":132502},{"parent":"MODULE_FUNC","rule":"Digest::SuperFastHash","sum":34987},{"parent":"MODULE_FUNC","rule":"Digest::XXH3","sum":47821},{"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":2295},{"parent":"MODULE_FUNC","rule":"HyperScan::Match","sum":6},{"parent":"MODULE_FUNC","rule":"Hyperscan::BacktrackingGrep","sum":48625},{"parent":"MODULE_FUNC","rule":"Hyperscan::BacktrackingMatch","sum":128},{"parent":"MODULE_FUNC","rule":"Hyperscan::Capture","sum":5607},{"parent":"MODULE_FUNC","rule":"Hyperscan::Grep","sum":144904},{"parent":"MODULE_FUNC","rule":"Hyperscan::Match","sum":52758},{"parent":"MODULE_FUNC","rule":"Hyperscan::MultiGrep","sum":64},{"parent":"MODULE_FUNC","rule":"Hyperscan::MultiMatch","sum":40583},{"parent":"MODULE_FUNC","rule":"Hyperscan::Replace","sum":96992},{"parent":"MODULE_FUNC","rule":"Ip::ConvertToIPv6","sum":44980},{"parent":"MODULE_FUNC","rule":"Ip::FromString","sum":391561},{"parent":"MODULE_FUNC","rule":"Ip::GetSubnet","sum":135463},{"parent":"MODULE_FUNC","rule":"Ip::GetSubnetByMask","sum":4},{"parent":"MODULE_FUNC","rule":"Ip::IsEmbeddedIPv4","sum":6951},{"parent":"MODULE_FUNC","rule":"Ip::IsIPv4","sum":136021},{"parent":"MODULE_FUNC","rule":"Ip::IsIPv6","sum":118459},{"parent":"MODULE_FUNC","rule":"Ip::SubnetFromString","sum":549},{"parent":"MODULE_FUNC","rule":"Ip::SubnetMatch","sum":502},{"parent":"MODULE_FUNC","rule":"Ip::ToFixedIPv6String","sum":3818},{"parent":"MODULE_FUNC","rule":"Ip::ToString","sum":509703},{"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":255},{"parent":"MODULE_FUNC","rule":"JSON::PARSE","sum":2},{"parent":"MODULE_FUNC","rule":"JSON::Parse","sum":3598},{"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":161},{"parent":"MODULE_FUNC","rule":"Json::ConvertToStringDict","sum":5},{"parent":"MODULE_FUNC","rule":"Json::ConvertToStringList","sum":19},{"parent":"MODULE_FUNC","rule":"Json::From","sum":3925},{"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":821061},{"parent":"MODULE_FUNC","rule":"Json::LookupString","sum":53},{"parent":"MODULE_FUNC","rule":"Json::Options","sum":852},{"parent":"MODULE_FUNC","rule":"Json::Parse","sum":182633},{"parent":"MODULE_FUNC","rule":"Json::ParseJson","sum":213},{"parent":"MODULE_FUNC","rule":"Json::Serialize","sum":1557},{"parent":"MODULE_FUNC","rule":"Json::SerializeJson","sum":922},{"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":5},{"parent":"MODULE_FUNC","rule":"MATH::EXP","sum":1},{"parent":"MODULE_FUNC","rule":"MATH::Log","sum":5},{"parent":"MODULE_FUNC","rule":"MATH::NearbyINT","sum":1},{"parent":"MODULE_FUNC","rule":"MATH::NearbyInt","sum":1},{"parent":"MODULE_FUNC","rule":"MATH::ROUND","sum":181},{"parent":"MODULE_FUNC","rule":"MATH::Round","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Aabs","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Abs","sum":477545},{"parent":"MODULE_FUNC","rule":"Math::Acos","sum":13419},{"parent":"MODULE_FUNC","rule":"Math::Asin","sum":11346},{"parent":"MODULE_FUNC","rule":"Math::Asinh","sum":4},{"parent":"MODULE_FUNC","rule":"Math::Atan","sum":7921},{"parent":"MODULE_FUNC","rule":"Math::Atan2","sum":13117},{"parent":"MODULE_FUNC","rule":"Math::Cbrt","sum":494},{"parent":"MODULE_FUNC","rule":"Math::Ceil","sum":1246311},{"parent":"MODULE_FUNC","rule":"Math::Cos","sum":97796},{"parent":"MODULE_FUNC","rule":"Math::Cosh","sum":5},{"parent":"MODULE_FUNC","rule":"Math::Crbt","sum":1},{"parent":"MODULE_FUNC","rule":"Math::E","sum":9612},{"parent":"MODULE_FUNC","rule":"Math::EXP","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Eps","sum":179},{"parent":"MODULE_FUNC","rule":"Math::Erf","sum":2573},{"parent":"MODULE_FUNC","rule":"Math::ErfInv","sum":42},{"parent":"MODULE_FUNC","rule":"Math::ErfcInv","sum":6},{"parent":"MODULE_FUNC","rule":"Math::Exp","sum":557302},{"parent":"MODULE_FUNC","rule":"Math::Exp2","sum":1998},{"parent":"MODULE_FUNC","rule":"Math::Fabs","sum":144438},{"parent":"MODULE_FUNC","rule":"Math::Floor","sum":327974},{"parent":"MODULE_FUNC","rule":"Math::Flor","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Fmod","sum":9},{"parent":"MODULE_FUNC","rule":"Math::FuzzyEquals","sum":19564},{"parent":"MODULE_FUNC","rule":"Math::Hypot","sum":18758},{"parent":"MODULE_FUNC","rule":"Math::IsFinite","sum":186970},{"parent":"MODULE_FUNC","rule":"Math::IsInf","sum":77157},{"parent":"MODULE_FUNC","rule":"Math::IsNaN","sum":250333},{"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":822848},{"parent":"MODULE_FUNC","rule":"Math::Log10","sum":153514},{"parent":"MODULE_FUNC","rule":"Math::Log2","sum":197742},{"parent":"MODULE_FUNC","rule":"Math::Max","sum":3},{"parent":"MODULE_FUNC","rule":"Math::Min","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Mod","sum":66547},{"parent":"MODULE_FUNC","rule":"Math::NearbyInt","sum":429031},{"parent":"MODULE_FUNC","rule":"Math::Pi","sum":74683},{"parent":"MODULE_FUNC","rule":"Math::Pow","sum":1332305},{"parent":"MODULE_FUNC","rule":"Math::Power","sum":6},{"parent":"MODULE_FUNC","rule":"Math::ROUND","sum":5},{"parent":"MODULE_FUNC","rule":"Math::Rem","sum":2269},{"parent":"MODULE_FUNC","rule":"Math::Remainder","sum":163},{"parent":"MODULE_FUNC","rule":"Math::Rint","sum":20412},{"parent":"MODULE_FUNC","rule":"Math::Round","sum":36763997},{"parent":"MODULE_FUNC","rule":"Math::RoundDownward","sum":138580},{"parent":"MODULE_FUNC","rule":"Math::RoundToNearest","sum":76617},{"parent":"MODULE_FUNC","rule":"Math::RoundTowardZero","sum":894},{"parent":"MODULE_FUNC","rule":"Math::RoundUpward","sum":213012},{"parent":"MODULE_FUNC","rule":"Math::Sigmoid","sum":279208},{"parent":"MODULE_FUNC","rule":"Math::Sin","sum":82930},{"parent":"MODULE_FUNC","rule":"Math::Sinh","sum":6026},{"parent":"MODULE_FUNC","rule":"Math::Sqrt","sum":612692},{"parent":"MODULE_FUNC","rule":"Math::Tan","sum":4994},{"parent":"MODULE_FUNC","rule":"Math::Tanh","sum":4962},{"parent":"MODULE_FUNC","rule":"Math::Tgamma","sum":60},{"parent":"MODULE_FUNC","rule":"Math::Trunc","sum":156126},{"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":30},{"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":102},{"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":1514},{"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":1765},{"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":528571},{"parent":"MODULE_FUNC","rule":"Pire::Grep","sum":144310},{"parent":"MODULE_FUNC","rule":"Pire::Match","sum":234577},{"parent":"MODULE_FUNC","rule":"Pire::MultiGrep","sum":686},{"parent":"MODULE_FUNC","rule":"Pire::MultiMatch","sum":152},{"parent":"MODULE_FUNC","rule":"Pire::Replace","sum":1005161},{"parent":"MODULE_FUNC","rule":"Protobuf::Parse","sum":21066},{"parent":"MODULE_FUNC","rule":"Protobuf::Serialize","sum":103753},{"parent":"MODULE_FUNC","rule":"Protobuf::TryParse","sum":145518},{"parent":"MODULE_FUNC","rule":"RE2::Capture","sum":4031},{"parent":"MODULE_FUNC","rule":"RE2::Count","sum":353},{"parent":"MODULE_FUNC","rule":"RE2::FindAndConsume","sum":31},{"parent":"MODULE_FUNC","rule":"RE2::Grep","sum":66},{"parent":"MODULE_FUNC","rule":"RE2::Match","sum":543},{"parent":"MODULE_FUNC","rule":"RE2::Replace","sum":124},{"parent":"MODULE_FUNC","rule":"Re2::Capture","sum":4405242},{"parent":"MODULE_FUNC","rule":"Re2::Catch","sum":1},{"parent":"MODULE_FUNC","rule":"Re2::Compile","sum":4},{"parent":"MODULE_FUNC","rule":"Re2::Count","sum":172465},{"parent":"MODULE_FUNC","rule":"Re2::FindAll","sum":2},{"parent":"MODULE_FUNC","rule":"Re2::FindAllSubmatch","sum":2},{"parent":"MODULE_FUNC","rule":"Re2::FindAndConsume","sum":389745},{"parent":"MODULE_FUNC","rule":"Re2::Grep","sum":653247},{"parent":"MODULE_FUNC","rule":"Re2::Match","sum":1686112},{"parent":"MODULE_FUNC","rule":"Re2::Options","sum":247912},{"parent":"MODULE_FUNC","rule":"Re2::Replace","sum":4638548},{"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":4122676},{"parent":"MODULE_FUNC","rule":"String::AsciiToTitle","sum":95633},{"parent":"MODULE_FUNC","rule":"String::AsciiToUpper","sum":548149},{"parent":"MODULE_FUNC","rule":"String::AsciiTolower","sum":5},{"parent":"MODULE_FUNC","rule":"String::Base32Decode","sum":275},{"parent":"MODULE_FUNC","rule":"String::Base32Encode","sum":194},{"parent":"MODULE_FUNC","rule":"String::Base32StrictDecode","sum":56},{"parent":"MODULE_FUNC","rule":"String::Base64Decode","sum":395027},{"parent":"MODULE_FUNC","rule":"String::Base64Encode","sum":112504},{"parent":"MODULE_FUNC","rule":"String::Base64EncodeUrl","sum":5737},{"parent":"MODULE_FUNC","rule":"String::Base64StrictDecode","sum":96549},{"parent":"MODULE_FUNC","rule":"String::Bin","sum":497},{"parent":"MODULE_FUNC","rule":"String::BinText","sum":121},{"parent":"MODULE_FUNC","rule":"String::CgiEscape","sum":72277},{"parent":"MODULE_FUNC","rule":"String::CgiUnescape","sum":24032},{"parent":"MODULE_FUNC","rule":"String::ColapseText","sum":4},{"parent":"MODULE_FUNC","rule":"String::Collapse","sum":198521},{"parent":"MODULE_FUNC","rule":"String::CollapseText","sum":200705},{"parent":"MODULE_FUNC","rule":"String::Contains","sum":6168048},{"parent":"MODULE_FUNC","rule":"String::DecodeHtml","sum":3040},{"parent":"MODULE_FUNC","rule":"String::EncodeHtml","sum":415},{"parent":"MODULE_FUNC","rule":"String::EndsWith","sum":539162},{"parent":"MODULE_FUNC","rule":"String::EndsWithIgnoreCase","sum":36087},{"parent":"MODULE_FUNC","rule":"String::EscapeC","sum":56112},{"parent":"MODULE_FUNC","rule":"String::Find","sum":654242},{"parent":"MODULE_FUNC","rule":"String::From","sum":2},{"parent":"MODULE_FUNC","rule":"String::FromByteList","sum":1046873},{"parent":"MODULE_FUNC","rule":"String::HasPrefix","sum":21339},{"parent":"MODULE_FUNC","rule":"String::HasPrefixIgnoreCase","sum":49},{"parent":"MODULE_FUNC","rule":"String::HasSuffix","sum":4922},{"parent":"MODULE_FUNC","rule":"String::HasSuffixIgnoreCase","sum":28702},{"parent":"MODULE_FUNC","rule":"String::Hex","sum":377608},{"parent":"MODULE_FUNC","rule":"String::HexDecode","sum":165852},{"parent":"MODULE_FUNC","rule":"String::HexEncode","sum":194850},{"parent":"MODULE_FUNC","rule":"String::HexText","sum":79183},{"parent":"MODULE_FUNC","rule":"String::HumanReadableBytes","sum":259},{"parent":"MODULE_FUNC","rule":"String::HumanReadableDuration","sum":1124415},{"parent":"MODULE_FUNC","rule":"String::HumanReadableQuantity","sum":342},{"parent":"MODULE_FUNC","rule":"String::IsAscii","sum":13988},{"parent":"MODULE_FUNC","rule":"String::IsAsciiAlnum","sum":1011},{"parent":"MODULE_FUNC","rule":"String::IsAsciiAlpha","sum":392},{"parent":"MODULE_FUNC","rule":"String::IsAsciiDigit","sum":8407},{"parent":"MODULE_FUNC","rule":"String::IsAsciiHex","sum":19424},{"parent":"MODULE_FUNC","rule":"String::IsAsciiLower","sum":22},{"parent":"MODULE_FUNC","rule":"String::IsAsciiSpace","sum":13},{"parent":"MODULE_FUNC","rule":"String::IsAsciiUpper","sum":357},{"parent":"MODULE_FUNC","rule":"String::Join","sum":2},{"parent":"MODULE_FUNC","rule":"String::JoinFROMList","sum":31824},{"parent":"MODULE_FUNC","rule":"String::JoinFromList","sum":14012536},{"parent":"MODULE_FUNC","rule":"String::LeftPad","sum":66086},{"parent":"MODULE_FUNC","rule":"String::Length","sum":2},{"parent":"MODULE_FUNC","rule":"String::LevenshteinDistance","sum":4},{"parent":"MODULE_FUNC","rule":"String::LevensteinDistance","sum":11760},{"parent":"MODULE_FUNC","rule":"String::Prec","sum":1847},{"parent":"MODULE_FUNC","rule":"String::RaplaceAll","sum":3},{"parent":"MODULE_FUNC","rule":"String::RemoveAll","sum":1248612},{"parent":"MODULE_FUNC","rule":"String::RemoveFirst","sum":641513},{"parent":"MODULE_FUNC","rule":"String::RemoveLast","sum":557607},{"parent":"MODULE_FUNC","rule":"String::Replace","sum":11},{"parent":"MODULE_FUNC","rule":"String::ReplaceALL","sum":3},{"parent":"MODULE_FUNC","rule":"String::ReplaceAll","sum":15670754},{"parent":"MODULE_FUNC","rule":"String::ReplaceFirst","sum":1365972},{"parent":"MODULE_FUNC","rule":"String::ReplaceFirstStartsWith","sum":1},{"parent":"MODULE_FUNC","rule":"String::ReplaceLast","sum":174029},{"parent":"MODULE_FUNC","rule":"String::ReplaceRegex","sum":1},{"parent":"MODULE_FUNC","rule":"String::Reverse","sum":119021},{"parent":"MODULE_FUNC","rule":"String::ReverseFind","sum":38830},{"parent":"MODULE_FUNC","rule":"String::RightPad","sum":374102},{"parent":"MODULE_FUNC","rule":"String::SBin","sum":7},{"parent":"MODULE_FUNC","rule":"String::SHex","sum":6279},{"parent":"MODULE_FUNC","rule":"String::Split","sum":10},{"parent":"MODULE_FUNC","rule":"String::SplitToList","sum":31836924},{"parent":"MODULE_FUNC","rule":"String::SplitToSet","sum":12},{"parent":"MODULE_FUNC","rule":"String::StartWith","sum":1},{"parent":"MODULE_FUNC","rule":"String::StartsWith","sum":3456482},{"parent":"MODULE_FUNC","rule":"String::StartsWithIgnoreCase","sum":56217},{"parent":"MODULE_FUNC","rule":"String::Strip","sum":3179583},{"parent":"MODULE_FUNC","rule":"String::Substring","sum":302682},{"parent":"MODULE_FUNC","rule":"String::ToByteList","sum":140412},{"parent":"MODULE_FUNC","rule":"String::ToLower","sum":5268432},{"parent":"MODULE_FUNC","rule":"String::ToLowerCase","sum":1},{"parent":"MODULE_FUNC","rule":"String::ToTitle","sum":34574},{"parent":"MODULE_FUNC","rule":"String::ToUpper","sum":140660},{"parent":"MODULE_FUNC","rule":"String::Trim","sum":3},{"parent":"MODULE_FUNC","rule":"String::UnescapeC","sum":329189},{"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":1012},{"parent":"MODULE_FUNC","rule":"TryDecompress::Lz4","sum":145},{"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":153636},{"parent":"MODULE_FUNC","rule":"Unicode::Fold","sum":29200},{"parent":"MODULE_FUNC","rule":"Unicode::FromCodePointList","sum":120346},{"parent":"MODULE_FUNC","rule":"Unicode::GetLength","sum":594925},{"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":702},{"parent":"MODULE_FUNC","rule":"Unicode::IsDigit","sum":8983},{"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":441},{"parent":"MODULE_FUNC","rule":"Unicode::IsUpper","sum":1812},{"parent":"MODULE_FUNC","rule":"Unicode::IsUtf","sum":670858},{"parent":"MODULE_FUNC","rule":"Unicode::JoinFromList","sum":202977},{"parent":"MODULE_FUNC","rule":"Unicode::Length","sum":2},{"parent":"MODULE_FUNC","rule":"Unicode::LevensteinDistance","sum":39796},{"parent":"MODULE_FUNC","rule":"Unicode::Normalize","sum":110898},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFC","sum":526},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFD","sum":36},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFKC","sum":6978},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFKD","sum":1741},{"parent":"MODULE_FUNC","rule":"Unicode::RFind","sum":73307},{"parent":"MODULE_FUNC","rule":"Unicode::RemoveAll","sum":138890},{"parent":"MODULE_FUNC","rule":"Unicode::RemoveFirst","sum":7725},{"parent":"MODULE_FUNC","rule":"Unicode::RemoveLast","sum":7763},{"parent":"MODULE_FUNC","rule":"Unicode::ReplaceAll","sum":270824},{"parent":"MODULE_FUNC","rule":"Unicode::ReplaceFirst","sum":1748},{"parent":"MODULE_FUNC","rule":"Unicode::ReplaceLast","sum":318},{"parent":"MODULE_FUNC","rule":"Unicode::Reverse","sum":52754},{"parent":"MODULE_FUNC","rule":"Unicode::SUBSTRING","sum":2},{"parent":"MODULE_FUNC","rule":"Unicode::SplitToList","sum":181496},{"parent":"MODULE_FUNC","rule":"Unicode::Strip","sum":64880},{"parent":"MODULE_FUNC","rule":"Unicode::Substring","sum":602103},{"parent":"MODULE_FUNC","rule":"Unicode::ToCodePointList","sum":122836},{"parent":"MODULE_FUNC","rule":"Unicode::ToLower","sum":1191627},{"parent":"MODULE_FUNC","rule":"Unicode::ToTitle","sum":35832},{"parent":"MODULE_FUNC","rule":"Unicode::ToUint64","sum":389},{"parent":"MODULE_FUNC","rule":"Unicode::ToUpper","sum":111960},{"parent":"MODULE_FUNC","rule":"Unicode::Translit","sum":103574},{"parent":"MODULE_FUNC","rule":"Unicode::TryToUint64","sum":1941},{"parent":"MODULE_FUNC","rule":"Url::AsciiToLower","sum":1},{"parent":"MODULE_FUNC","rule":"Url::BuildQueryString","sum":25950},{"parent":"MODULE_FUNC","rule":"Url::CanBePunycodeHostName","sum":6526},{"parent":"MODULE_FUNC","rule":"Url::CutQueryStringAndFragment","sum":232682},{"parent":"MODULE_FUNC","rule":"Url::CutScheme","sum":1134149},{"parent":"MODULE_FUNC","rule":"Url::CutWWW","sum":860920},{"parent":"MODULE_FUNC","rule":"Url::CutWWW2","sum":741308},{"parent":"MODULE_FUNC","rule":"Url::Decode","sum":1693514},{"parent":"MODULE_FUNC","rule":"Url::Encode","sum":370961},{"parent":"MODULE_FUNC","rule":"Url::ForceHostNameToPunycode","sum":200975},{"parent":"MODULE_FUNC","rule":"Url::ForcePunycodeToHostName","sum":132393},{"parent":"MODULE_FUNC","rule":"Url::GEtPath","sum":5},{"parent":"MODULE_FUNC","rule":"Url::GetCGIParam","sum":1822738},{"parent":"MODULE_FUNC","rule":"Url::GetCgiParam","sum":7},{"parent":"MODULE_FUNC","rule":"Url::GetDomain","sum":1125269},{"parent":"MODULE_FUNC","rule":"Url::GetDomainLevel","sum":70746},{"parent":"MODULE_FUNC","rule":"Url::GetFragment","sum":496},{"parent":"MODULE_FUNC","rule":"Url::GetHost","sum":4053079},{"parent":"MODULE_FUNC","rule":"Url::GetHostPort","sum":196601},{"parent":"MODULE_FUNC","rule":"Url::GetOwner","sum":1403752},{"parent":"MODULE_FUNC","rule":"Url::GetPath","sum":1693317},{"parent":"MODULE_FUNC","rule":"Url::GetPort","sum":818213},{"parent":"MODULE_FUNC","rule":"Url::GetScheme","sum":2059696},{"parent":"MODULE_FUNC","rule":"Url::GetSchemeHost","sum":145904},{"parent":"MODULE_FUNC","rule":"Url::GetSchemeHostPort","sum":698264},{"parent":"MODULE_FUNC","rule":"Url::GetSignificantDomain","sum":462687},{"parent":"MODULE_FUNC","rule":"Url::GetTLD","sum":35522},{"parent":"MODULE_FUNC","rule":"Url::GetTail","sum":575463},{"parent":"MODULE_FUNC","rule":"Url::Getowner","sum":1},{"parent":"MODULE_FUNC","rule":"Url::HostNameToPunycode","sum":581089},{"parent":"MODULE_FUNC","rule":"Url::IsAllowedByRobotsTxt","sum":7},{"parent":"MODULE_FUNC","rule":"Url::IsKnownTLD","sum":20870},{"parent":"MODULE_FUNC","rule":"Url::IsWellKnownTLD","sum":4919},{"parent":"MODULE_FUNC","rule":"Url::Normalize","sum":1050668},{"parent":"MODULE_FUNC","rule":"Url::NormalizeWithDefaultHttpScheme","sum":623726},{"parent":"MODULE_FUNC","rule":"Url::Parse","sum":299304},{"parent":"MODULE_FUNC","rule":"Url::PunycodeToHostName","sum":202823},{"parent":"MODULE_FUNC","rule":"Url::QueryStringToDict","sum":154750},{"parent":"MODULE_FUNC","rule":"Url::QueryStringToList","sum":38768},{"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":6},{"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":12},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToString","sum":91},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToStringList","sum":27},{"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":6},{"parent":"MODULE_FUNC","rule":"YSON::LookupInt64","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::LookupList","sum":4},{"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":12},{"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":1878},{"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":2964953},{"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":8893449},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToAttributes","sum":16},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBool","sum":8777282},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBoolDict","sum":105242},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBoolList","sum":7419},{"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":8507382},{"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":9538271},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDoubleDict","sum":280065},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDoubleList","sum":1195596},{"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":20437163},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt64Dict","sum":186877},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt64List","sum":2402436},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToIntList","sum":5},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInteget","sum":169},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToJson","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToList","sum":18972909},{"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":96809421},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStringDict","sum":1450323},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStringInt64","sum":4},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStringList","sum":24390484},{"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":296},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUInt64List","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint32","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint64","sum":8496332},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint64Dict","sum":36424},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint64List","sum":2199229},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUnit64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToevent_value","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToint64","sum":13},{"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::ConverttoBool","sum":5},{"parent":"MODULE_FUNC","rule":"Yson::ConverttoList","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConverttoString","sum":13},{"parent":"MODULE_FUNC","rule":"Yson::Converttostring","sum":14},{"parent":"MODULE_FUNC","rule":"Yson::ConvvertToString","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Dict","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::Equals","sum":797786},{"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":25156251},{"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::FromBytes","sum":17},{"parent":"MODULE_FUNC","rule":"Yson::FromDict","sum":3070},{"parent":"MODULE_FUNC","rule":"Yson::FromDouble","sum":2798},{"parent":"MODULE_FUNC","rule":"Yson::FromDouble64Dict","sum":3671},{"parent":"MODULE_FUNC","rule":"Yson::FromDoubleDict","sum":42633},{"parent":"MODULE_FUNC","rule":"Yson::FromDoubleList","sum":993},{"parent":"MODULE_FUNC","rule":"Yson::FromInt32","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromInt64","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::FromInt64Dict","sum":2136},{"parent":"MODULE_FUNC","rule":"Yson::FromInt64List","sum":7471},{"parent":"MODULE_FUNC","rule":"Yson::FromJson","sum":2171},{"parent":"MODULE_FUNC","rule":"Yson::FromKek","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::FromList","sum":4897},{"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":56322},{"parent":"MODULE_FUNC","rule":"Yson::FromStringDict","sum":69362},{"parent":"MODULE_FUNC","rule":"Yson::FromStringList","sum":59205},{"parent":"MODULE_FUNC","rule":"Yson::FromStruct","sum":652706},{"parent":"MODULE_FUNC","rule":"Yson::FromUi64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromUin64List","sum":377},{"parent":"MODULE_FUNC","rule":"Yson::FromUint32Dict","sum":10254},{"parent":"MODULE_FUNC","rule":"Yson::FromUint64","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::FromUint64Dict","sum":16013},{"parent":"MODULE_FUNC","rule":"Yson::FromUint64List","sum":25360},{"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":864646},{"parent":"MODULE_FUNC","rule":"Yson::GetLength","sum":2813177},{"parent":"MODULE_FUNC","rule":"Yson::ISDict","sum":6},{"parent":"MODULE_FUNC","rule":"Yson::ISList","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::IsBool","sum":33403},{"parent":"MODULE_FUNC","rule":"Yson::IsDict","sum":257269},{"parent":"MODULE_FUNC","rule":"Yson::IsDouble","sum":100319},{"parent":"MODULE_FUNC","rule":"Yson::IsEntity","sum":2675378},{"parent":"MODULE_FUNC","rule":"Yson::IsInt64","sum":288637},{"parent":"MODULE_FUNC","rule":"Yson::IsList","sum":287011},{"parent":"MODULE_FUNC","rule":"Yson::IsString","sum":1026312},{"parent":"MODULE_FUNC","rule":"Yson::IsUint64","sum":154118},{"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":6572221},{"parent":"MODULE_FUNC","rule":"Yson::LookupBool","sum":2151225},{"parent":"MODULE_FUNC","rule":"Yson::LookupDict","sum":402733},{"parent":"MODULE_FUNC","rule":"Yson::LookupDouble","sum":3063595},{"parent":"MODULE_FUNC","rule":"Yson::LookupInt","sum":16},{"parent":"MODULE_FUNC","rule":"Yson::LookupInt32","sum":91},{"parent":"MODULE_FUNC","rule":"Yson::LookupInt64","sum":5506073},{"parent":"MODULE_FUNC","rule":"Yson::LookupInteger","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookupList","sum":1627012},{"parent":"MODULE_FUNC","rule":"Yson::LookupSTRING","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookupString","sum":41357204},{"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":3803411},{"parent":"MODULE_FUNC","rule":"Yson::LookupsTRING","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LoopUpString","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Options","sum":9255552},{"parent":"MODULE_FUNC","rule":"Yson::Parse","sum":8657637},{"parent":"MODULE_FUNC","rule":"Yson::ParseJSON","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::ParseJson","sum":12622715},{"parent":"MODULE_FUNC","rule":"Yson::ParseJsonDecodeUtf8","sum":133932},{"parent":"MODULE_FUNC","rule":"Yson::Parsejson","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::Path","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::Serialize","sum":3873323},{"parent":"MODULE_FUNC","rule":"Yson::SerializeJSON","sum":5},{"parent":"MODULE_FUNC","rule":"Yson::SerializeJson","sum":9860505},{"parent":"MODULE_FUNC","rule":"Yson::SerializeJsonEncodeUtf8","sum":202134},{"parent":"MODULE_FUNC","rule":"Yson::SerializePretty","sum":1187693},{"parent":"MODULE_FUNC","rule":"Yson::SerializeText","sum":612491},{"parent":"MODULE_FUNC","rule":"Yson::WithAttributes","sum":660},{"parent":"MODULE_FUNC","rule":"Yson::YPath","sum":12621396},{"parent":"MODULE_FUNC","rule":"Yson::YPathBool","sum":1178381},{"parent":"MODULE_FUNC","rule":"Yson::YPathBoolean","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::YPathDict","sum":25581},{"parent":"MODULE_FUNC","rule":"Yson::YPathDouble","sum":1365022},{"parent":"MODULE_FUNC","rule":"Yson::YPathInt16","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::YPathInt64","sum":2724117},{"parent":"MODULE_FUNC","rule":"Yson::YPathList","sum":1395373},{"parent":"MODULE_FUNC","rule":"Yson::YPathListString","sum":7},{"parent":"MODULE_FUNC","rule":"Yson::YPathString","sum":13557067},{"parent":"MODULE_FUNC","rule":"Yson::YPathUint64","sum":709161},{"parent":"MODULE_FUNC","rule":"Yson::YaPathString","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::Ypath","sum":51},{"parent":"MODULE_FUNC","rule":"Yson::YpathString","sum":10},{"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::convertToUint64List","sum":5},{"parent":"MODULE_FUNC","rule":"Yson::from","sum":48},{"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":365},{"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":30},{"parent":"MODULE_FUNC","rule":"datetime::GetYear","sum":39},{"parent":"MODULE_FUNC","rule":"datetime::IntervalFromDays","sum":1341},{"parent":"MODULE_FUNC","rule":"datetime::IntervalFromHours","sum":37},{"parent":"MODULE_FUNC","rule":"datetime::IntervalFromMinutes","sum":6},{"parent":"MODULE_FUNC","rule":"datetime::MakeDate","sum":5399},{"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":310},{"parent":"MODULE_FUNC","rule":"datetime::StartOf","sum":1},{"parent":"MODULE_FUNC","rule":"datetime::StartOfDay","sum":2},{"parent":"MODULE_FUNC","rule":"datetime::StartOfMonth","sum":550},{"parent":"MODULE_FUNC","rule":"datetime::StartOfWeek","sum":530},{"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":2},{"parent":"MODULE_FUNC","rule":"math::log","sum":2},{"parent":"MODULE_FUNC","rule":"math::pow","sum":6},{"parent":"MODULE_FUNC","rule":"math::round","sum":56},{"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":737},{"parent":"MODULE_FUNC","rule":"pg::array_agg","sum":2},{"parent":"MODULE_FUNC","rule":"pg::date_part","sum":716},{"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":2753},{"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":8},{"parent":"MODULE_FUNC","rule":"string::ReplaceFirst","sum":14},{"parent":"MODULE_FUNC","rule":"string::SplitToList","sum":6},{"parent":"MODULE_FUNC","rule":"string::StartsWith","sum":1},{"parent":"MODULE_FUNC","rule":"string::contains","sum":4},{"parent":"MODULE_FUNC","rule":"string::joinfromlist","sum":17},{"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::SerializeJson","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":5},{"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":258287},{"parent":"PRAGMA","rule":"AllowUnnamedColumns","sum":4},{"parent":"PRAGMA","rule":"AnsiCurrentRow","sum":957},{"parent":"PRAGMA","rule":"AnsiImplicitCrossJoin","sum":13070},{"parent":"PRAGMA","rule":"AnsiInFOREmptyORNullableItemsCollections","sum":52},{"parent":"PRAGMA","rule":"AnsiInForEmptyOrNULLableItemsCollectiONs","sum":169},{"parent":"PRAGMA","rule":"AnsiInForEmptyOrNULLableItemsCollections","sum":4074},{"parent":"PRAGMA","rule":"AnsiInForEmptyOrNullableItemsCollections","sum":39620670},{"parent":"PRAGMA","rule":"AnsiInForEmptyOrnullableItemsCollections","sum":263},{"parent":"PRAGMA","rule":"AnsiInForEmptyorNullableItemsCollections","sum":2141},{"parent":"PRAGMA","rule":"AnsiInForEmptyornullableItemsCollections","sum":1273},{"parent":"PRAGMA","rule":"AnsiInforEmptyOrNullableItemsCollections","sum":244},{"parent":"PRAGMA","rule":"AnsiOptionalAS","sum":4},{"parent":"PRAGMA","rule":"AnsiOptionalAs","sum":2152795},{"parent":"PRAGMA","rule":"AnsiOptionalas","sum":350},{"parent":"PRAGMA","rule":"AnsiOrderByLimitInUnionAll","sum":210333},{"parent":"PRAGMA","rule":"AnsiRankForNullableKeys","sum":223815},{"parent":"PRAGMA","rule":"AnsiinForEmptyOrNullableItemsCollections","sum":8517},{"parent":"PRAGMA","rule":"AnsiinForEmptyOrNullableitemsCollections","sum":16},{"parent":"PRAGMA","rule":"AutoCommit","sum":39168},{"parent":"PRAGMA","rule":"BlockEngine","sum":352454},{"parent":"PRAGMA","rule":"BogousStarInGroupByOverJoin","sum":2},{"parent":"PRAGMA","rule":"CLassicDivision","sum":9},{"parent":"PRAGMA","rule":"CheckedOps","sum":653},{"parent":"PRAGMA","rule":"ClASsicDivision","sum":639},{"parent":"PRAGMA","rule":"ClassicDIvision","sum":44},{"parent":"PRAGMA","rule":"ClassicDivisiON","sum":148},{"parent":"PRAGMA","rule":"ClassicDivision","sum":2557592},{"parent":"PRAGMA","rule":"Classicdivision","sum":6},{"parent":"PRAGMA","rule":"CoalesceJoinKeysOnQualifiedAll","sum":36},{"parent":"PRAGMA","rule":"CompactGroupBy","sum":26},{"parent":"PRAGMA","rule":"CompactNamedExprs","sum":2451},{"parent":"PRAGMA","rule":"CostBasedOptimizer","sum":14431},{"parent":"PRAGMA","rule":"DQ.ANALYZEQUERY","sum":1615},{"parent":"PRAGMA","rule":"DQEngine","sum":3},{"parent":"PRAGMA","rule":"DirectRead","sum":48},{"parent":"PRAGMA","rule":"DisableAnsiInForEmptyOrNullableItemsCollections","sum":233678},{"parent":"PRAGMA","rule":"DisableAnsiLike","sum":1},{"parent":"PRAGMA","rule":"DisableAnsiRankForNullableKeys","sum":38115},{"parent":"PRAGMA","rule":"DisableCoalesceJoinKeysOnQualifiedAll","sum":197713},{"parent":"PRAGMA","rule":"DisableCompactNamedExprs","sum":12},{"parent":"PRAGMA","rule":"DisableOrderedColumns","sum":536},{"parent":"PRAGMA","rule":"DisablePullUpFlatMapOverJoin","sum":2},{"parent":"PRAGMA","rule":"DisableSeqMode","sum":1},{"parent":"PRAGMA","rule":"DisableSimpleColumns","sum":398557},{"parent":"PRAGMA","rule":"DisableStrictJoinKeyTypes","sum":417},{"parent":"PRAGMA","rule":"DisableUnicodeLiterals","sum":34},{"parent":"PRAGMA","rule":"DisableUnordered","sum":867},{"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":10793713},{"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":289896},{"parent":"PRAGMA","rule":"FeatureR010","sum":224},{"parent":"PRAGMA","rule":"File","sum":7406844},{"parent":"PRAGMA","rule":"FileOption","sum":15425},{"parent":"PRAGMA","rule":"FilterPushdownOverJoinOptionalSide","sum":6},{"parent":"PRAGMA","rule":"FlexibleTypes","sum":946},{"parent":"PRAGMA","rule":"Folder","sum":3771},{"parent":"PRAGMA","rule":"Greetings","sum":1453},{"parent":"PRAGMA","rule":"GroupByCubeLimit","sum":39642},{"parent":"PRAGMA","rule":"GroupByLimit","sum":151970},{"parent":"PRAGMA","rule":"JsonQueryReturnsJsonDocument","sum":300847},{"parent":"PRAGMA","rule":"LIBRARY","sum":247548},{"parent":"PRAGMA","rule":"LIbrary","sum":52},{"parent":"PRAGMA","rule":"Library","sum":15077641},{"parent":"PRAGMA","rule":"OrderedColumns","sum":5989922},{"parent":"PRAGMA","rule":"Orderedcolumns","sum":12},{"parent":"PRAGMA","rule":"OverrideLibrary","sum":182},{"parent":"PRAGMA","rule":"Package","sum":5},{"parent":"PRAGMA","rule":"PositionalUnionAll","sum":120124},{"parent":"PRAGMA","rule":"PqReadBy","sum":42},{"parent":"PRAGMA","rule":"REGEXUSERE2","sum":13439},{"parent":"PRAGMA","rule":"RefSelect","sum":435275},{"parent":"PRAGMA","rule":"RegExUseRe2","sum":32},{"parent":"PRAGMA","rule":"RegexUseRe2","sum":312065},{"parent":"PRAGMA","rule":"ResultRowsLimit","sum":3},{"parent":"PRAGMA","rule":"SampleSelect","sum":11},{"parent":"PRAGMA","rule":"SeqMode","sum":4},{"parent":"PRAGMA","rule":"SimpleColumns","sum":6946413},{"parent":"PRAGMA","rule":"Simplecolumns","sum":3},{"parent":"PRAGMA","rule":"StrictJoinKeyTypes","sum":76669},{"parent":"PRAGMA","rule":"TablePathPrefix","sum":5602522},{"parent":"PRAGMA","rule":"UDF","sum":2173643},{"parent":"PRAGMA","rule":"Udf","sum":1939655},{"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":26243},{"parent":"PRAGMA","rule":"Warning","sum":2962238},{"parent":"PRAGMA","rule":"WarningMsg","sum":12699},{"parent":"PRAGMA","rule":"YSON.AutoConvert","sum":823},{"parent":"PRAGMA","rule":"YSON.DisableStrict","sum":44755},{"parent":"PRAGMA","rule":"YSON.Strict","sum":732},{"parent":"PRAGMA","rule":"YT.Auth","sum":68},{"parent":"PRAGMA","rule":"YT.DefaultOperationWeight","sum":252819},{"parent":"PRAGMA","rule":"YT.InferSchema","sum":17844},{"parent":"PRAGMA","rule":"YT.POOL","sum":275},{"parent":"PRAGMA","rule":"YT.Pool","sum":85880},{"parent":"PRAGMA","rule":"YT.StaticPool","sum":6},{"parent":"PRAGMA","rule":"YT.TableContentDeliveryMode","sum":1663},{"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":18812},{"parent":"PRAGMA","rule":"YsON.Disablestrict","sum":133},{"parent":"PRAGMA","rule":"Yson.AutoConvert","sum":41801},{"parent":"PRAGMA","rule":"Yson.DIsableStrict","sum":15251},{"parent":"PRAGMA","rule":"Yson.DisableStrict","sum":481261},{"parent":"PRAGMA","rule":"Yson.Strict","sum":6858},{"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":24798},{"parent":"PRAGMA","rule":"Yt.HybridDqExecution","sum":9},{"parent":"PRAGMA","rule":"Yt.InferSchema","sum":2744},{"parent":"PRAGMA","rule":"Yt.MaxRowWeight","sum":957},{"parent":"PRAGMA","rule":"Yt.ParallelOperationsLimit","sum":12},{"parent":"PRAGMA","rule":"Yt.Pool","sum":254713},{"parent":"PRAGMA","rule":"Yt.PoolTrees","sum":1},{"parent":"PRAGMA","rule":"Yt.StaticPool","sum":10080},{"parent":"PRAGMA","rule":"Yt.TmpFolder","sum":4},{"parent":"PRAGMA","rule":"Yt.UseNativeYtTypes","sum":2856},{"parent":"PRAGMA","rule":"Yt.pool","sum":82763},{"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":133779},{"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":1289150},{"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":3086654},{"parent":"PRAGMA","rule":"dq.ENABLEDQREPLICATE","sum":1},{"parent":"PRAGMA","rule":"dq.EnableComputeActor","sum":1},{"parent":"PRAGMA","rule":"dq.EnableDqReplicate","sum":921734},{"parent":"PRAGMA","rule":"dq.EnableDqreplicate","sum":3},{"parent":"PRAGMA","rule":"dq.EnableFullResultWrite","sum":28699},{"parent":"PRAGMA","rule":"dq.EnableInsert","sum":86477},{"parent":"PRAGMA","rule":"dq.FallbackPolicy","sum":3},{"parent":"PRAGMA","rule":"dq.HashJoinMode","sum":6282},{"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":23157},{"parent":"PRAGMA","rule":"dq.MaxTasksPerStage","sum":61204},{"parent":"PRAGMA","rule":"dq.MemoryLimit","sum":7977},{"parent":"PRAGMA","rule":"dq.OptLLVM","sum":11},{"parent":"PRAGMA","rule":"dq.SplitStageOnDqReplicate","sum":11034},{"parent":"PRAGMA","rule":"dq.UseBlockReader","sum":3993},{"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":104},{"parent":"PRAGMA","rule":"dq.enableDqReplicate","sum":348},{"parent":"PRAGMA","rule":"dq.enabledqreplicate","sum":24},{"parent":"PRAGMA","rule":"dqEngine","sum":91597},{"parent":"PRAGMA","rule":"dqengine","sum":21246},{"parent":"PRAGMA","rule":"equijoin","sum":4},{"parent":"PRAGMA","rule":"file","sum":1810746},{"parent":"PRAGMA","rule":"folder","sum":674},{"parent":"PRAGMA","rule":"greetings","sum":1},{"parent":"PRAGMA","rule":"library","sum":4878187},{"parent":"PRAGMA","rule":"orderedColumns","sum":7},{"parent":"PRAGMA","rule":"orderedcolumns","sum":15134},{"parent":"PRAGMA","rule":"override_library","sum":32},{"parent":"PRAGMA","rule":"package","sum":228921},{"parent":"PRAGMA","rule":"refselect","sum":32323},{"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":1446},{"parent":"PRAGMA","rule":"simplecolumns","sum":242914},{"parent":"PRAGMA","rule":"tablepathprefix","sum":2},{"parent":"PRAGMA","rule":"udf","sum":4336302},{"parent":"PRAGMA","rule":"warning","sum":66490},{"parent":"PRAGMA","rule":"yson.AutoConvert","sum":4731785},{"parent":"PRAGMA","rule":"yson.Auto_convert","sum":18},{"parent":"PRAGMA","rule":"yson.Autoconvert","sum":1158},{"parent":"PRAGMA","rule":"yson.DisableStrict","sum":20060072},{"parent":"PRAGMA","rule":"yson.Disablestrict","sum":46},{"parent":"PRAGMA","rule":"yson.Fast","sum":662},{"parent":"PRAGMA","rule":"yson.Strict","sum":3495746},{"parent":"PRAGMA","rule":"yson.autoConvert","sum":4},{"parent":"PRAGMA","rule":"yson.autoconvert","sum":3750},{"parent":"PRAGMA","rule":"yson.disableStrict","sum":2284},{"parent":"PRAGMA","rule":"yson.disable_strict","sum":3},{"parent":"PRAGMA","rule":"yson.disablestrict","sum":211473},{"parent":"PRAGMA","rule":"yson.strict","sum":709},{"parent":"PRAGMA","rule":"yt.AUth","sum":4},{"parent":"PRAGMA","rule":"yt.Annotations","sum":46551803},{"parent":"PRAGMA","rule":"yt.Auth","sum":1280645},{"parent":"PRAGMA","rule":"yt.AutoMerge","sum":4457191},{"parent":"PRAGMA","rule":"yt.Automerge","sum":2793},{"parent":"PRAGMA","rule":"yt.BatchListFolderConcurrency","sum":151},{"parent":"PRAGMA","rule":"yt.BinaryExpirationInterval","sum":6233208},{"parent":"PRAGMA","rule":"yt.BinaryTmpFolder","sum":6259531},{"parent":"PRAGMA","rule":"yt.BlockReaderSupportedDataTypes","sum":5},{"parent":"PRAGMA","rule":"yt.ColumnGroupMode","sum":445387},{"parent":"PRAGMA","rule":"yt.CombineCoreLimit","sum":76913},{"parent":"PRAGMA","rule":"yt.CommonJoinCoreLimit","sum":1854},{"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":2150},{"parent":"PRAGMA","rule":"yt.DatASizePerPartition","sum":736},{"parent":"PRAGMA","rule":"yt.DataSizePerJob","sum":5238758},{"parent":"PRAGMA","rule":"yt.DataSizePerMapJob","sum":314915},{"parent":"PRAGMA","rule":"yt.DataSizePerPartition","sum":514836},{"parent":"PRAGMA","rule":"yt.DataSizePerSortJob","sum":200126},{"parent":"PRAGMA","rule":"yt.DatasizePerJob","sum":16},{"parent":"PRAGMA","rule":"yt.DatasizePerSortJob","sum":16},{"parent":"PRAGMA","rule":"yt.DefaultCalcMemoryLimit","sum":258857},{"parent":"PRAGMA","rule":"yt.DefaultCluster","sum":71816158},{"parent":"PRAGMA","rule":"yt.DefaultLocalityTimeout","sum":4075},{"parent":"PRAGMA","rule":"yt.DefaultMapSelectivityFactor","sum":53},{"parent":"PRAGMA","rule":"yt.DefaultMaxJobFails","sum":1549993},{"parent":"PRAGMA","rule":"yt.DefaultMemORyLimit","sum":7},{"parent":"PRAGMA","rule":"yt.DefaultMemoryLimit","sum":2061228},{"parent":"PRAGMA","rule":"yt.DefaultMemoryReserveFactor","sum":25421},{"parent":"PRAGMA","rule":"yt.DefaultOperationWeight","sum":9766568},{"parent":"PRAGMA","rule":"yt.Description","sum":236754},{"parent":"PRAGMA","rule":"yt.DisableFuseOperations","sum":2},{"parent":"PRAGMA","rule":"yt.DisableJobSplitting","sum":4770},{"parent":"PRAGMA","rule":"yt.DisableOptimizers","sum":30928},{"parent":"PRAGMA","rule":"yt.EnableDynamicStoreReadInDQ","sum":1},{"parent":"PRAGMA","rule":"yt.ErasureCodecCpu","sum":148399},{"parent":"PRAGMA","rule":"yt.EvaluationTableSizeLimit","sum":815543},{"parent":"PRAGMA","rule":"yt.ExpirationDeadline","sum":3432850},{"parent":"PRAGMA","rule":"yt.ExpirationInterval","sum":8121062},{"parent":"PRAGMA","rule":"yt.ExtendedStatsMaxChunkCount","sum":4},{"parent":"PRAGMA","rule":"yt.ExternalTx","sum":80697419},{"parent":"PRAGMA","rule":"yt.ExtraTmpfsSize","sum":95},{"parent":"PRAGMA","rule":"yt.FileCacheTtl","sum":8284523},{"parent":"PRAGMA","rule":"yt.FolderInlineDataLimit","sum":40},{"parent":"PRAGMA","rule":"yt.FolderInlineItemsLimit","sum":2},{"parent":"PRAGMA","rule":"yt.ForceInferSchema","sum":799593},{"parent":"PRAGMA","rule":"yt.ForceJobSizeAdjuster","sum":10239},{"parent":"PRAGMA","rule":"yt.GeobaseDownloadUrl","sum":62930},{"parent":"PRAGMA","rule":"yt.HybridDqDataSizeLimitForOrdered","sum":313623},{"parent":"PRAGMA","rule":"yt.HybridDqDataSizeLimitForUnordered","sum":316652},{"parent":"PRAGMA","rule":"yt.HybridDqExecution","sum":3706477},{"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":4588},{"parent":"PRAGMA","rule":"yt.IgnoreWeakSchema","sum":231291},{"parent":"PRAGMA","rule":"yt.IgnoreYamrDsv","sum":22558},{"parent":"PRAGMA","rule":"yt.InferSchemA","sum":11},{"parent":"PRAGMA","rule":"yt.InferSchema","sum":32288432},{"parent":"PRAGMA","rule":"yt.InferSchemaTableCountThreshold","sum":1},{"parent":"PRAGMA","rule":"yt.Inferschema","sum":85798},{"parent":"PRAGMA","rule":"yt.IntermediateAccount","sum":133151},{"parent":"PRAGMA","rule":"yt.IntermediateDataMedium","sum":296894},{"parent":"PRAGMA","rule":"yt.IntermediateReplicationFactor","sum":2809},{"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":14095},{"parent":"PRAGMA","rule":"yt.JoinAllowColumnRenames","sum":446},{"parent":"PRAGMA","rule":"yt.JoinCollectColumnarStatistics","sum":20346},{"parent":"PRAGMA","rule":"yt.JoinColumnarStatisticsFetcherMode","sum":593},{"parent":"PRAGMA","rule":"yt.JoinEnableStarJoin","sum":41751},{"parent":"PRAGMA","rule":"yt.JoinMergeForce","sum":53467},{"parent":"PRAGMA","rule":"yt.JoinMergeReduceJobMaxSize","sum":2741},{"parent":"PRAGMA","rule":"yt.JoinMergeTablesLimit","sum":3706},{"parent":"PRAGMA","rule":"yt.JoinMergeUnsortedFactor","sum":1663},{"parent":"PRAGMA","rule":"yt.JoinMergeUseSmallAsPrimary","sum":5978},{"parent":"PRAGMA","rule":"yt.JoinUseColumnarStatistics","sum":998},{"parent":"PRAGMA","rule":"yt.JoinWaitAllInputs","sum":16},{"parent":"PRAGMA","rule":"yt.KeepTempTables","sum":969},{"parent":"PRAGMA","rule":"yt.LayerPaths","sum":159199},{"parent":"PRAGMA","rule":"yt.LookupJoinLimit","sum":230793},{"parent":"PRAGMA","rule":"yt.LookupJoinMaxRows","sum":181147},{"parent":"PRAGMA","rule":"yt.MAXRowWeight","sum":58},{"parent":"PRAGMA","rule":"yt.MAxJobCount","sum":64},{"parent":"PRAGMA","rule":"yt.MAxRowWeight","sum":1},{"parent":"PRAGMA","rule":"yt.MapJOINLimit","sum":723},{"parent":"PRAGMA","rule":"yt.MapJoinLimit","sum":692785},{"parent":"PRAGMA","rule":"yt.MapJoinShardCount","sum":321708},{"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":19950},{"parent":"PRAGMA","rule":"yt.MaxInputTables","sum":29603},{"parent":"PRAGMA","rule":"yt.MaxInputTablesForSortedMerge","sum":5914},{"parent":"PRAGMA","rule":"yt.MaxJobCount","sum":12548346},{"parent":"PRAGMA","rule":"yt.MaxJobcount","sum":1383},{"parent":"PRAGMA","rule":"yt.MaxKeyRangeCount","sum":9},{"parent":"PRAGMA","rule":"yt.MaxKeyWeight","sum":206800},{"parent":"PRAGMA","rule":"yt.MaxOutputTables","sum":54},{"parent":"PRAGMA","rule":"yt.MaxReplicationFactorToFuseOperations","sum":15},{"parent":"PRAGMA","rule":"yt.MaxRowWeight","sum":6104192},{"parent":"PRAGMA","rule":"yt.MaxSpeculativeJobCountPerTask","sum":2237},{"parent":"PRAGMA","rule":"yt.MinLocalityInputDataWeight","sum":8},{"parent":"PRAGMA","rule":"yt.MinPublishedAvgChunkSize","sum":3171409},{"parent":"PRAGMA","rule":"yt.MinTempAvgChunkSize","sum":178396},{"parent":"PRAGMA","rule":"yt.NativeYtTypeCompatibility","sum":15},{"parent":"PRAGMA","rule":"yt.NetworkProject","sum":609042},{"parent":"PRAGMA","rule":"yt.NightlyCompress","sum":146719},{"parent":"PRAGMA","rule":"yt.OWners","sum":21},{"parent":"PRAGMA","rule":"yt.OperationReaders","sum":12816428},{"parent":"PRAGMA","rule":"yt.OperationSpec","sum":8566187},{"parent":"PRAGMA","rule":"yt.OptimizeFor","sum":5784093},{"parent":"PRAGMA","rule":"yt.Owners","sum":65851849},{"parent":"PRAGMA","rule":"yt.POOL","sum":68},{"parent":"PRAGMA","rule":"yt.POol","sum":12},{"parent":"PRAGMA","rule":"yt.ParallelOperationsLimit","sum":1385400},{"parent":"PRAGMA","rule":"yt.PartitionByConstantKeysViaMap","sum":13},{"parent":"PRAGMA","rule":"yt.PooL","sum":1},{"parent":"PRAGMA","rule":"yt.Pool","sum":54672067},{"parent":"PRAGMA","rule":"yt.PoolTrees","sum":6601319},{"parent":"PRAGMA","rule":"yt.PrimaryMedium","sum":383871},{"parent":"PRAGMA","rule":"yt.PruneKeyFilterLambda","sum":562},{"parent":"PRAGMA","rule":"yt.PublishedAutoMerge","sum":3408556},{"parent":"PRAGMA","rule":"yt.PublishedCompressionCodec","sum":7408206},{"parent":"PRAGMA","rule":"yt.PublishedErasureCodec","sum":5395006},{"parent":"PRAGMA","rule":"yt.PublishedMedia","sum":4239},{"parent":"PRAGMA","rule":"yt.PublishedPrimaryMedium","sum":783428},{"parent":"PRAGMA","rule":"yt.PublishedReplicationFactor","sum":23632},{"parent":"PRAGMA","rule":"yt.PythonCpu","sum":82846},{"parent":"PRAGMA","rule":"yt.QueryCacheIgnoreTableRevision","sum":65393},{"parent":"PRAGMA","rule":"yt.QueryCacheMode","sum":24244197},{"parent":"PRAGMA","rule":"yt.QueryCacheSalt","sum":5},{"parent":"PRAGMA","rule":"yt.QueryCacheTtl","sum":8970969},{"parent":"PRAGMA","rule":"yt.QueryCacheUseForCalc","sum":8},{"parent":"PRAGMA","rule":"yt.QuerycacheMode","sum":2},{"parent":"PRAGMA","rule":"yt.ReleaseTempData","sum":2708518},{"parent":"PRAGMA","rule":"yt.STaticPool","sum":3},{"parent":"PRAGMA","rule":"yt.SamplingIoBlockSize","sum":3865},{"parent":"PRAGMA","rule":"yt.SchedulingTag","sum":39},{"parent":"PRAGMA","rule":"yt.SchedulingTagFilter","sum":2971},{"parent":"PRAGMA","rule":"yt.ScriptCpu","sum":4837},{"parent":"PRAGMA","rule":"yt.StartedBy","sum":264532},{"parent":"PRAGMA","rule":"yt.StaticPOol","sum":1},{"parent":"PRAGMA","rule":"yt.StaticPool","sum":113085962},{"parent":"PRAGMA","rule":"yt.Static_pool","sum":1},{"parent":"PRAGMA","rule":"yt.SuspendIfAccountLimitExceeded","sum":42782},{"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":6730},{"parent":"PRAGMA","rule":"yt.TableContentMinAvgChunkSize","sum":2629},{"parent":"PRAGMA","rule":"yt.TableContentTmpFolder","sum":28},{"parent":"PRAGMA","rule":"yt.TableContentUseSkiff","sum":11},{"parent":"PRAGMA","rule":"yt.TablesTmpFolder","sum":3437268},{"parent":"PRAGMA","rule":"yt.TempTablesTtl","sum":5386323},{"parent":"PRAGMA","rule":"yt.TemporaryAutoMerge","sum":8859300},{"parent":"PRAGMA","rule":"yt.TemporaryCompressionCodec","sum":5843040},{"parent":"PRAGMA","rule":"yt.TemporaryErasureCodec","sum":4764279},{"parent":"PRAGMA","rule":"yt.TemporaryPrimaryMedium","sum":496370},{"parent":"PRAGMA","rule":"yt.TemporaryReplicationFactor","sum":93},{"parent":"PRAGMA","rule":"yt.TentativePoolTrees","sum":1849032},{"parent":"PRAGMA","rule":"yt.TentativeTreeEligibilityMaxJobDurationRatio","sum":17551},{"parent":"PRAGMA","rule":"yt.TentativeTreeEligibilityMinJobDuration","sum":2179},{"parent":"PRAGMA","rule":"yt.TentativeTreeEligibilitySampleJobCount","sum":16205},{"parent":"PRAGMA","rule":"yt.TmpFolder","sum":31281903},{"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":166732},{"parent":"PRAGMA","rule":"yt.UseDefaultTentativePoolTrees","sum":252593},{"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":2032},{"parent":"PRAGMA","rule":"yt.UseNativeYtTYpes","sum":1485},{"parent":"PRAGMA","rule":"yt.UseNativeYtTypes","sum":24309630},{"parent":"PRAGMA","rule":"yt.UseNativeYttypes","sum":764},{"parent":"PRAGMA","rule":"yt.UseNativeytTypes","sum":516},{"parent":"PRAGMA","rule":"yt.UseNewPredicateExtraction","sum":182334},{"parent":"PRAGMA","rule":"yt.UseRPCReaderInDQ","sum":79},{"parent":"PRAGMA","rule":"yt.UseRPCReaderInDq","sum":12130},{"parent":"PRAGMA","rule":"yt.UseSkiff","sum":4025},{"parent":"PRAGMA","rule":"yt.UseSystemColumns","sum":2139},{"parent":"PRAGMA","rule":"yt.UseTmpfs","sum":34352},{"parent":"PRAGMA","rule":"yt.UseTypeV2","sum":4398},{"parent":"PRAGMA","rule":"yt.UseYqlRowSpecCompactForm","sum":3767},{"parent":"PRAGMA","rule":"yt.UserSlots","sum":2522195},{"parent":"PRAGMA","rule":"yt.ViewIsolation","sum":969},{"parent":"PRAGMA","rule":"yt.WideFlowLimit","sum":158125},{"parent":"PRAGMA","rule":"yt.auth","sum":47218},{"parent":"PRAGMA","rule":"yt.datasizeperjob","sum":2026},{"parent":"PRAGMA","rule":"yt.defaultoperationweight","sum":47},{"parent":"PRAGMA","rule":"yt.forceinferschema","sum":48},{"parent":"PRAGMA","rule":"yt.inferSchema","sum":54889},{"parent":"PRAGMA","rule":"yt.infer_schema","sum":10},{"parent":"PRAGMA","rule":"yt.inferschema","sum":2977},{"parent":"PRAGMA","rule":"yt.mapjoinlimit","sum":97781},{"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":41890},{"parent":"PRAGMA","rule":"yt.minPublishedAvgChunksize","sum":11},{"parent":"PRAGMA","rule":"yt.network_project","sum":14499},{"parent":"PRAGMA","rule":"yt.pool","sum":6845320},{"parent":"PRAGMA","rule":"yt.pool_trees","sum":1},{"parent":"PRAGMA","rule":"yt.pooltrees","sum":53},{"parent":"PRAGMA","rule":"yt.publishedcompressioncodec","sum":403},{"parent":"PRAGMA","rule":"yt.staticPool","sum":1265865},{"parent":"PRAGMA","rule":"yt.static_pool","sum":20},{"parent":"PRAGMA","rule":"yt.staticpool","sum":10639},{"parent":"PRAGMA","rule":"yt.tmpFolder","sum":76657},{"parent":"PRAGMA","rule":"yt.tmpfolder","sum":65},{"parent":"PRAGMA","rule":"yt.useNativeYtTYpes","sum":1},{"parent":"PRAGMA","rule":"yt.useNativeYtTypes","sum":911},{"parent":"PRAGMA","rule":"yt.usenativeyttypes","sum":168},{"parent":"READ_HINT","rule":"COLUMNS","sum":823297},{"parent":"READ_HINT","rule":"CoLUMNS","sum":2},{"parent":"READ_HINT","rule":"Columns","sum":24},{"parent":"READ_HINT","rule":"DIRECT_READ","sum":98},{"parent":"READ_HINT","rule":"FORCE_INFER_SCHEMA","sum":18211},{"parent":"READ_HINT","rule":"ForceInferSchema","sum":350},{"parent":"READ_HINT","rule":"IGNORETYPEV3","sum":2},{"parent":"READ_HINT","rule":"IGNORE_TYPE_V3","sum":4},{"parent":"READ_HINT","rule":"INFER_SCHEMA","sum":105278},{"parent":"READ_HINT","rule":"INLINE","sum":87384},{"parent":"READ_HINT","rule":"InferSchema","sum":2282},{"parent":"READ_HINT","rule":"Infer_Schema","sum":3},{"parent":"READ_HINT","rule":"SCHEMA","sum":16885246},{"parent":"READ_HINT","rule":"SChema","sum":2},{"parent":"READ_HINT","rule":"Schema","sum":39235},{"parent":"READ_HINT","rule":"TRUNCATE","sum":5},{"parent":"READ_HINT","rule":"UNORDERED","sum":6558},{"parent":"READ_HINT","rule":"USER_ATTRS","sum":1},{"parent":"READ_HINT","rule":"Unordered","sum":365},{"parent":"READ_HINT","rule":"XLOCK","sum":144066},{"parent":"READ_HINT","rule":"columns","sum":423998},{"parent":"READ_HINT","rule":"direct_read","sum":1},{"parent":"READ_HINT","rule":"downsampling.aggregation","sum":2218},{"parent":"READ_HINT","rule":"downsampling.disabled","sum":2100},{"parent":"READ_HINT","rule":"downsampling.fill","sum":1723},{"parent":"READ_HINT","rule":"downsampling.grid_interval","sum":2470},{"parent":"READ_HINT","rule":"force_infer_schema","sum":2},{"parent":"READ_HINT","rule":"from","sum":22919},{"parent":"READ_HINT","rule":"infer_schema","sum":190},{"parent":"READ_HINT","rule":"infer_scheme","sum":17},{"parent":"READ_HINT","rule":"inferschema","sum":1},{"parent":"READ_HINT","rule":"inline","sum":75007},{"parent":"READ_HINT","rule":"labels","sum":20802},{"parent":"READ_HINT","rule":"program","sum":23171},{"parent":"READ_HINT","rule":"schema","sum":773737},{"parent":"READ_HINT","rule":"to","sum":22919},{"parent":"READ_HINT","rule":"unordered","sum":13598},{"parent":"READ_HINT","rule":"xlock","sum":260971},{"parent":"TRule_action_or_subquery_args","rule":"TRule_action_or_subquery_args.Block2","sum":4946777},{"parent":"TRule_action_or_subquery_args","rule":"TRule_action_or_subquery_args.Rule_opt_bind_parameter1","sum":13965321},{"parent":"TRule_action_or_subquery_args.TBlock2","rule":"TRule_action_or_subquery_args.TBlock2.Rule_opt_bind_parameter2","sum":7512439},{"parent":"TRule_action_or_subquery_args.TBlock2","rule":"TRule_action_or_subquery_args.TBlock2.Token1","sum":7512439},{"parent":"TRule_add_subexpr","rule":"TRule_add_subexpr.Block2","sum":136340311},{"parent":"TRule_add_subexpr","rule":"TRule_add_subexpr.Rule_mul_subexpr1","sum":15625099920},{"parent":"TRule_add_subexpr.TBlock2","rule":"TRule_add_subexpr.TBlock2.Rule_mul_subexpr2","sum":167934015},{"parent":"TRule_add_subexpr.TBlock2","rule":"TRule_add_subexpr.TBlock2.Token1","sum":167934015},{"parent":"TRule_an_id","rule":"TRule_an_id.Alt_an_id1","sum":2004199787},{"parent":"TRule_an_id.TAlt1","rule":"TRule_an_id.TAlt1.Rule_id1","sum":2004199787},{"parent":"TRule_an_id_as_compat","rule":"TRule_an_id_as_compat.Alt_an_id_as_compat1","sum":2995725},{"parent":"TRule_an_id_as_compat.TAlt1","rule":"TRule_an_id_as_compat.TAlt1.Rule_id_as_compat1","sum":2995725},{"parent":"TRule_an_id_expr","rule":"TRule_an_id_expr.Alt_an_id_expr1","sum":96313621},{"parent":"TRule_an_id_expr.TAlt1","rule":"TRule_an_id_expr.TAlt1.Rule_id_expr1","sum":96313621},{"parent":"TRule_an_id_hint","rule":"TRule_an_id_hint.Alt_an_id_hint1","sum":154481585},{"parent":"TRule_an_id_hint.TAlt1","rule":"TRule_an_id_hint.TAlt1.Rule_id_hint1","sum":154481585},{"parent":"TRule_an_id_or_type","rule":"TRule_an_id_or_type.Alt_an_id_or_type1","sum":9630859718},{"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":9630859718},{"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":677783605},{"parent":"TRule_an_id_pure.TAlt1","rule":"TRule_an_id_pure.TAlt1.Rule_identifier1","sum":677783605},{"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":330889868},{"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":330889868},{"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":46670411},{"parent":"TRule_an_id_window.TAlt1","rule":"TRule_an_id_window.TAlt1.Rule_id_window1","sum":46670411},{"parent":"TRule_an_id_without","rule":"TRule_an_id_without.Alt_an_id_without1","sum":23304335},{"parent":"TRule_an_id_without.TAlt1","rule":"TRule_an_id_without.TAlt1.Rule_id_without1","sum":23304335},{"parent":"TRule_and_subexpr","rule":"TRule_and_subexpr.Block2","sum":29479},{"parent":"TRule_and_subexpr","rule":"TRule_and_subexpr.Rule_xor_subexpr1","sum":14287217648},{"parent":"TRule_and_subexpr.TBlock2","rule":"TRule_and_subexpr.TBlock2.Rule_xor_subexpr2","sum":29543},{"parent":"TRule_and_subexpr.TBlock2","rule":"TRule_and_subexpr.TBlock2.Token1","sum":29543},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr1","sum":5164970128},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr10","sum":36006226},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr11","sum":8514188},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr12","sum":14625860},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr2","sum":1772155576},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr3","sum":446923069},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr4","sum":398528656},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr5","sum":77117},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr6","sum":61757734},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr7","sum":928573299},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr8","sum":164072},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr9","sum":511417},{"parent":"TRule_atom_expr.TAlt1","rule":"TRule_atom_expr.TAlt1.Rule_literal_value1","sum":5164970128},{"parent":"TRule_atom_expr.TAlt10","rule":"TRule_atom_expr.TAlt10.Rule_list_literal1","sum":36006226},{"parent":"TRule_atom_expr.TAlt11","rule":"TRule_atom_expr.TAlt11.Rule_dict_literal1","sum":8514188},{"parent":"TRule_atom_expr.TAlt12","rule":"TRule_atom_expr.TAlt12.Rule_struct_literal1","sum":14625860},{"parent":"TRule_atom_expr.TAlt2","rule":"TRule_atom_expr.TAlt2.Rule_bind_parameter1","sum":1772155576},{"parent":"TRule_atom_expr.TAlt3","rule":"TRule_atom_expr.TAlt3.Rule_lambda1","sum":446923069},{"parent":"TRule_atom_expr.TAlt4","rule":"TRule_atom_expr.TAlt4.Rule_cast_expr1","sum":398528656},{"parent":"TRule_atom_expr.TAlt5","rule":"TRule_atom_expr.TAlt5.Rule_exists_expr1","sum":77117},{"parent":"TRule_atom_expr.TAlt6","rule":"TRule_atom_expr.TAlt6.Rule_case_expr1","sum":61757734},{"parent":"TRule_atom_expr.TAlt7","rule":"TRule_atom_expr.TAlt7.Block3","sum":928573299},{"parent":"TRule_atom_expr.TAlt7","rule":"TRule_atom_expr.TAlt7.Rule_an_id_or_type1","sum":928573299},{"parent":"TRule_atom_expr.TAlt7","rule":"TRule_atom_expr.TAlt7.Token2","sum":928573299},{"parent":"TRule_atom_expr.TAlt7.TBlock3","rule":"TRule_atom_expr.TAlt7.TBlock3.Alt1","sum":928572063},{"parent":"TRule_atom_expr.TAlt7.TBlock3","rule":"TRule_atom_expr.TAlt7.TBlock3.Alt2","sum":1236},{"parent":"TRule_atom_expr.TAlt7.TBlock3.TAlt1","rule":"TRule_atom_expr.TAlt7.TBlock3.TAlt1.Rule_id_or_type1","sum":928572063},{"parent":"TRule_atom_expr.TAlt7.TBlock3.TAlt2","rule":"TRule_atom_expr.TAlt7.TBlock3.TAlt2.Token1","sum":1236},{"parent":"TRule_atom_expr.TAlt8","rule":"TRule_atom_expr.TAlt8.Rule_value_constructor1","sum":164072},{"parent":"TRule_atom_expr.TAlt9","rule":"TRule_atom_expr.TAlt9.Rule_bitcast_expr1","sum":511417},{"parent":"TRule_bind_parameter","rule":"TRule_bind_parameter.Block2","sum":3704552329},{"parent":"TRule_bind_parameter","rule":"TRule_bind_parameter.Token1","sum":3704552329},{"parent":"TRule_bind_parameter.TBlock2","rule":"TRule_bind_parameter.TBlock2.Alt1","sum":3704540399},{"parent":"TRule_bind_parameter.TBlock2","rule":"TRule_bind_parameter.TBlock2.Alt2","sum":9450},{"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":3704540399},{"parent":"TRule_bind_parameter.TBlock2.TAlt2","rule":"TRule_bind_parameter.TBlock2.TAlt2.Token1","sum":9450},{"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":246364},{"parent":"TRule_bind_parameter_list","rule":"TRule_bind_parameter_list.Rule_bind_parameter1","sum":1007810457},{"parent":"TRule_bind_parameter_list.TBlock2","rule":"TRule_bind_parameter_list.TBlock2.Rule_bind_parameter2","sum":339375},{"parent":"TRule_bind_parameter_list.TBlock2","rule":"TRule_bind_parameter_list.TBlock2.Token1","sum":339375},{"parent":"TRule_bit_subexpr","rule":"TRule_bit_subexpr.Block2","sum":138818444},{"parent":"TRule_bit_subexpr","rule":"TRule_bit_subexpr.Rule_add_subexpr1","sum":15466701546},{"parent":"TRule_bit_subexpr.TBlock2","rule":"TRule_bit_subexpr.TBlock2.Rule_add_subexpr2","sum":158398374},{"parent":"TRule_bit_subexpr.TBlock2","rule":"TRule_bit_subexpr.TBlock2.Token1","sum":158398374},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Rule_expr3","sum":511417},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Rule_type_name_simple5","sum":511417},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token1","sum":511417},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token2","sum":511417},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token4","sum":511417},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token6","sum":511417},{"parent":"TRule_bool_value","rule":"TRule_bool_value.Token1","sum":104326396},{"parent":"TRule_call_action","rule":"TRule_call_action.Block1","sum":9449135},{"parent":"TRule_call_action","rule":"TRule_call_action.Block3","sum":7177188},{"parent":"TRule_call_action","rule":"TRule_call_action.Token2","sum":9449135},{"parent":"TRule_call_action","rule":"TRule_call_action.Token4","sum":9449135},{"parent":"TRule_call_action.TBlock1","rule":"TRule_call_action.TBlock1.Alt1","sum":9323053},{"parent":"TRule_call_action.TBlock1","rule":"TRule_call_action.TBlock1.Alt2","sum":126082},{"parent":"TRule_call_action.TBlock1.TAlt1","rule":"TRule_call_action.TBlock1.TAlt1.Rule_bind_parameter1","sum":9323053},{"parent":"TRule_call_action.TBlock1.TAlt2","rule":"TRule_call_action.TBlock1.TAlt2.Token1","sum":126082},{"parent":"TRule_call_action.TBlock3","rule":"TRule_call_action.TBlock3.Rule_expr_list1","sum":7177188},{"parent":"TRule_callable_arg","rule":"TRule_callable_arg.Block2","sum":1},{"parent":"TRule_callable_arg","rule":"TRule_callable_arg.Rule_variant_arg1","sum":17996377},{"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":4372330},{"parent":"TRule_callable_arg_list","rule":"TRule_callable_arg_list.Rule_callable_arg1","sum":9778163},{"parent":"TRule_callable_arg_list.TBlock2","rule":"TRule_callable_arg_list.TBlock2.Rule_callable_arg2","sum":8218214},{"parent":"TRule_callable_arg_list.TBlock2","rule":"TRule_callable_arg_list.TBlock2.Token1","sum":8218214},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Block2","sum":4698567},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Block3","sum":61757738},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Block4","sum":61757738},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Token1","sum":61757738},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Token5","sum":61757738},{"parent":"TRule_case_expr.TBlock2","rule":"TRule_case_expr.TBlock2.Rule_expr1","sum":4698567},{"parent":"TRule_case_expr.TBlock3","rule":"TRule_case_expr.TBlock3.Rule_when_expr1","sum":158362267},{"parent":"TRule_case_expr.TBlock4","rule":"TRule_case_expr.TBlock4.Rule_expr2","sum":61757738},{"parent":"TRule_case_expr.TBlock4","rule":"TRule_case_expr.TBlock4.Token1","sum":61757738},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Rule_expr3","sum":398573044},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Rule_type_name_or_bind5","sum":398573044},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token1","sum":398573044},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token2","sum":398573044},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token4","sum":398573044},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token6","sum":398573044},{"parent":"TRule_cluster_expr","rule":"TRule_cluster_expr.Block1","sum":6780419},{"parent":"TRule_cluster_expr","rule":"TRule_cluster_expr.Block2","sum":374925174},{"parent":"TRule_cluster_expr.TBlock1","rule":"TRule_cluster_expr.TBlock1.Rule_an_id1","sum":6780419},{"parent":"TRule_cluster_expr.TBlock1","rule":"TRule_cluster_expr.TBlock1.Token2","sum":6780419},{"parent":"TRule_cluster_expr.TBlock2","rule":"TRule_cluster_expr.TBlock2.Alt1","sum":374925174},{"parent":"TRule_cluster_expr.TBlock2.TAlt1","rule":"TRule_cluster_expr.TBlock2.TAlt1.Rule_pure_column_or_named1","sum":374925174},{"parent":"TRule_column_list","rule":"TRule_column_list.Block2","sum":283315},{"parent":"TRule_column_list","rule":"TRule_column_list.Block3","sum":812},{"parent":"TRule_column_list","rule":"TRule_column_list.Rule_column_name1","sum":850906},{"parent":"TRule_column_list.TBlock2","rule":"TRule_column_list.TBlock2.Rule_column_name2","sum":1125538},{"parent":"TRule_column_list.TBlock2","rule":"TRule_column_list.TBlock2.Token1","sum":1125538},{"parent":"TRule_column_list.TBlock3","rule":"TRule_column_list.TBlock3.Token1","sum":812},{"parent":"TRule_column_name","rule":"TRule_column_name.Rule_an_id2","sum":23349011},{"parent":"TRule_column_name","rule":"TRule_column_name.Rule_opt_id_prefix1","sum":23349011},{"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":13024992},{"parent":"TRule_con_subexpr","rule":"TRule_con_subexpr.Alt_con_subexpr1","sum":15934798710},{"parent":"TRule_con_subexpr","rule":"TRule_con_subexpr.Alt_con_subexpr2","sum":87770220},{"parent":"TRule_con_subexpr.TAlt1","rule":"TRule_con_subexpr.TAlt1.Rule_unary_subexpr1","sum":15934798710},{"parent":"TRule_con_subexpr.TAlt2","rule":"TRule_con_subexpr.TAlt2.Rule_unary_op1","sum":87770220},{"parent":"TRule_con_subexpr.TAlt2","rule":"TRule_con_subexpr.TAlt2.Rule_unary_subexpr2","sum":87770220},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr1","sum":52236530},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr2","sum":126151164},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr3","sum":172789592},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr4","sum":25002100},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr5","sum":720021837},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Block1","sum":9292433},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Block4","sum":92834},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Rule_eq_subexpr3","sum":52236530},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Rule_match_op2","sum":52236530},{"parent":"TRule_cond_expr.TAlt1.TBlock1","rule":"TRule_cond_expr.TAlt1.TBlock1.Token1","sum":9292433},{"parent":"TRule_cond_expr.TAlt1.TBlock4","rule":"TRule_cond_expr.TAlt1.TBlock4.Rule_eq_subexpr2","sum":92834},{"parent":"TRule_cond_expr.TAlt1.TBlock4","rule":"TRule_cond_expr.TAlt1.TBlock4.Token1","sum":92834},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Block1","sum":26188977},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Block3","sum":3143455},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Rule_in_expr4","sum":126151164},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Token2","sum":126151164},{"parent":"TRule_cond_expr.TAlt2.TBlock1","rule":"TRule_cond_expr.TAlt2.TBlock1.Token1","sum":26188977},{"parent":"TRule_cond_expr.TAlt2.TBlock3","rule":"TRule_cond_expr.TAlt2.TBlock3.Token1","sum":3143455},{"parent":"TRule_cond_expr.TAlt3","rule":"TRule_cond_expr.TAlt3.Block1","sum":172789592},{"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":410},{"parent":"TRule_cond_expr.TAlt3.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.Alt3","sum":60725071},{"parent":"TRule_cond_expr.TAlt3.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.Alt4","sum":112063948},{"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":410},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt3","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt3.Token1","sum":60725071},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt3","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt3.Token2","sum":60725071},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.Block1","sum":112022484},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.Token2","sum":112063948},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.Token3","sum":112063948},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.TBlock1.Token1","sum":112022484},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Block1","sum":403852},{"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":25002100},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Rule_eq_subexpr6","sum":25002100},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Token2","sum":25002100},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Token5","sum":25002100},{"parent":"TRule_cond_expr.TAlt4.TBlock1","rule":"TRule_cond_expr.TAlt4.TBlock1.Token1","sum":403852},{"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":720021837},{"parent":"TRule_cond_expr.TAlt5.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.Block1","sum":720023818},{"parent":"TRule_cond_expr.TAlt5.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.Rule_eq_subexpr2","sum":720023818},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt1","sum":492538742},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt2","sum":172429585},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt3","sum":49596380},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt4","sum":5060501},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt5","sum":398610},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt1.Token1","sum":492538742},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt2","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt2.Token1","sum":172429585},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt3","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt3.Token1","sum":49596380},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt4.Token1","sum":5060501},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt5","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt5.Rule_distinct_from_op1","sum":398610},{"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":276720},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Token1","sum":276720},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Token2","sum":276720},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Token4","sum":276720},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Rule_bind_parameter2","sum":156488693},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Rule_type_name4","sum":156488693},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Token1","sum":156488693},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Token3","sum":156488693},{"parent":"TRule_define_action_or_subquery_body","rule":"TRule_define_action_or_subquery_body.Block1","sum":45603},{"parent":"TRule_define_action_or_subquery_body","rule":"TRule_define_action_or_subquery_body.Block2","sum":36158492},{"parent":"TRule_define_action_or_subquery_body.TBlock1","rule":"TRule_define_action_or_subquery_body.TBlock1.Token1","sum":45603},{"parent":"TRule_define_action_or_subquery_body.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.Block2","sum":16097297},{"parent":"TRule_define_action_or_subquery_body.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.Block3","sum":23550413},{"parent":"TRule_define_action_or_subquery_body.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.Rule_sql_stmt_core1","sum":36158492},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.Block1","sum":45947941},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.Rule_sql_stmt_core2","sum":45947941},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.TBlock1","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.TBlock1.Token1","sum":45961035},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock3","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock3.Token1","sum":23576206},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Block5","sum":13965321},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Rule_bind_parameter3","sum":22288095},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Rule_define_action_or_subquery_body8","sum":22288095},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token1","sum":22288095},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token10","sum":22288095},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token2","sum":22288095},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token4","sum":22288095},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token6","sum":22288095},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token7","sum":22288095},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token9","sum":22288095},{"parent":"TRule_define_action_or_subquery_stmt.TBlock5","rule":"TRule_define_action_or_subquery_stmt.TBlock5.Rule_action_or_subquery_args1","sum":13965321},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Block2","sum":8224534},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Block3","sum":2250848},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Token1","sum":8968921},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Token4","sum":8968921},{"parent":"TRule_dict_literal.TBlock2","rule":"TRule_dict_literal.TBlock2.Rule_expr_dict_list1","sum":8224534},{"parent":"TRule_dict_literal.TBlock3","rule":"TRule_dict_literal.TBlock3.Token1","sum":2250848},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Block2","sum":118905},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Token1","sum":398610},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Token3","sum":398610},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Token4","sum":398610},{"parent":"TRule_distinct_from_op.TBlock2","rule":"TRule_distinct_from_op.TBlock2.Token1","sum":118905},{"parent":"TRule_do_stmt","rule":"TRule_do_stmt.Block2","sum":23326020},{"parent":"TRule_do_stmt","rule":"TRule_do_stmt.Token1","sum":23326020},{"parent":"TRule_do_stmt.TBlock2","rule":"TRule_do_stmt.TBlock2.Alt1","sum":9449135},{"parent":"TRule_do_stmt.TBlock2","rule":"TRule_do_stmt.TBlock2.Alt2","sum":13876885},{"parent":"TRule_do_stmt.TBlock2.TAlt1","rule":"TRule_do_stmt.TBlock2.TAlt1.Rule_call_action1","sum":9449135},{"parent":"TRule_do_stmt.TBlock2.TAlt2","rule":"TRule_do_stmt.TBlock2.TAlt2.Rule_inline_action1","sum":13876885},{"parent":"TRule_double_question","rule":"TRule_double_question.Token1","sum":108282209},{"parent":"TRule_double_question","rule":"TRule_double_question.Token2","sum":108282209},{"parent":"TRule_drop_table_stmt","rule":"TRule_drop_table_stmt.Block2","sum":2568070},{"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":2568070},{"parent":"TRule_drop_table_stmt","rule":"TRule_drop_table_stmt.Token1","sum":2568070},{"parent":"TRule_drop_table_stmt.TBlock2","rule":"TRule_drop_table_stmt.TBlock2.Alt1","sum":2568070},{"parent":"TRule_drop_table_stmt.TBlock2.TAlt1","rule":"TRule_drop_table_stmt.TBlock2.TAlt1.Token1","sum":2568070},{"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":239600395},{"parent":"TRule_eq_subexpr","rule":"TRule_eq_subexpr.Rule_neq_subexpr1","sum":15109604573},{"parent":"TRule_eq_subexpr.TBlock2","rule":"TRule_eq_subexpr.TBlock2.Rule_neq_subexpr2","sum":239600449},{"parent":"TRule_eq_subexpr.TBlock2","rule":"TRule_eq_subexpr.TBlock2.Token1","sum":239600449},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Block3","sum":77117},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Token1","sum":77117},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Token2","sum":77117},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Token4","sum":77117},{"parent":"TRule_exists_expr.TBlock3","rule":"TRule_exists_expr.TBlock3.Alt1","sum":77117},{"parent":"TRule_exists_expr.TBlock3.TAlt1","rule":"TRule_exists_expr.TBlock3.TAlt1.Rule_select_stmt1","sum":77117},{"parent":"TRule_expr","rule":"TRule_expr.Alt_expr1","sum":13700581585},{"parent":"TRule_expr","rule":"TRule_expr.Alt_expr2","sum":17389966},{"parent":"TRule_expr.TAlt1","rule":"TRule_expr.TAlt1.Block2","sum":68378152},{"parent":"TRule_expr.TAlt1","rule":"TRule_expr.TAlt1.Rule_or_subexpr1","sum":13700581585},{"parent":"TRule_expr.TAlt1.TBlock2","rule":"TRule_expr.TAlt1.TBlock2.Rule_or_subexpr2","sum":115236866},{"parent":"TRule_expr.TAlt1.TBlock2","rule":"TRule_expr.TAlt1.TBlock2.Token1","sum":115236866},{"parent":"TRule_expr.TAlt2","rule":"TRule_expr.TAlt2.Rule_type_name_composite1","sum":17389966},{"parent":"TRule_expr_dict_list","rule":"TRule_expr_dict_list.Block2","sum":7027260},{"parent":"TRule_expr_dict_list","rule":"TRule_expr_dict_list.Block3","sum":6637673},{"parent":"TRule_expr_dict_list","rule":"TRule_expr_dict_list.Rule_expr1","sum":8224534},{"parent":"TRule_expr_dict_list.TBlock2","rule":"TRule_expr_dict_list.TBlock2.Rule_expr2","sum":7027260},{"parent":"TRule_expr_dict_list.TBlock2","rule":"TRule_expr_dict_list.TBlock2.Token1","sum":7027260},{"parent":"TRule_expr_dict_list.TBlock3","rule":"TRule_expr_dict_list.TBlock3.Block3","sum":35232193},{"parent":"TRule_expr_dict_list.TBlock3","rule":"TRule_expr_dict_list.TBlock3.Rule_expr2","sum":42176709},{"parent":"TRule_expr_dict_list.TBlock3","rule":"TRule_expr_dict_list.TBlock3.Token1","sum":42176709},{"parent":"TRule_expr_dict_list.TBlock3.TBlock3","rule":"TRule_expr_dict_list.TBlock3.TBlock3.Rule_expr2","sum":35232193},{"parent":"TRule_expr_dict_list.TBlock3.TBlock3","rule":"TRule_expr_dict_list.TBlock3.TBlock3.Token1","sum":35232193},{"parent":"TRule_expr_list","rule":"TRule_expr_list.Block2","sum":41939238},{"parent":"TRule_expr_list","rule":"TRule_expr_list.Rule_expr1","sum":67533327},{"parent":"TRule_expr_list.TBlock2","rule":"TRule_expr_list.TBlock2.Rule_expr2","sum":206470243},{"parent":"TRule_expr_list.TBlock2","rule":"TRule_expr_list.TBlock2.Token1","sum":206470243},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Block4","sum":12555297},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Rule_expr1","sum":14494469},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Rule_expr3","sum":14494469},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Token2","sum":14494469},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Rule_expr2","sum":31326759},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Rule_expr4","sum":31326759},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Token1","sum":31326759},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Token3","sum":31326759},{"parent":"TRule_ext_order_by_clause","rule":"TRule_ext_order_by_clause.Block1","sum":2597625},{"parent":"TRule_ext_order_by_clause","rule":"TRule_ext_order_by_clause.Rule_order_by_clause2","sum":88715837},{"parent":"TRule_ext_order_by_clause.TBlock1","rule":"TRule_ext_order_by_clause.TBlock1.Token1","sum":2597625},{"parent":"TRule_flatten_by_arg","rule":"TRule_flatten_by_arg.Alt_flatten_by_arg1","sum":21372567},{"parent":"TRule_flatten_by_arg","rule":"TRule_flatten_by_arg.Alt_flatten_by_arg2","sum":4328246},{"parent":"TRule_flatten_by_arg.TAlt1","rule":"TRule_flatten_by_arg.TAlt1.Rule_named_column1","sum":21372567},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Block3","sum":52259},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Rule_named_expr_list2","sum":4328246},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Token1","sum":4328246},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Token4","sum":4328246},{"parent":"TRule_flatten_by_arg.TAlt2.TBlock3","rule":"TRule_flatten_by_arg.TAlt2.TBlock3.Token1","sum":52259},{"parent":"TRule_flatten_source","rule":"TRule_flatten_source.Block2","sum":33642409},{"parent":"TRule_flatten_source","rule":"TRule_flatten_source.Rule_named_single_source1","sum":1053231068},{"parent":"TRule_flatten_source.TBlock2","rule":"TRule_flatten_source.TBlock2.Block2","sum":33642409},{"parent":"TRule_flatten_source.TBlock2","rule":"TRule_flatten_source.TBlock2.Token1","sum":33642409},{"parent":"TRule_flatten_source.TBlock2.TBlock2","rule":"TRule_flatten_source.TBlock2.TBlock2.Alt1","sum":25700813},{"parent":"TRule_flatten_source.TBlock2.TBlock2","rule":"TRule_flatten_source.TBlock2.TBlock2.Alt2","sum":7941596},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.Block1","sum":19640624},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.Rule_flatten_by_arg3","sum":25700813},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.Token2","sum":25700813},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.TBlock1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.TBlock1.Token1","sum":19640624},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt2","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt2.Token1","sum":7941596},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Block1","sum":7010814},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Block2","sum":8},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Block8","sum":64786},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Rule_bind_parameter4","sum":7010919},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Rule_do_stmt7","sum":7010919},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Rule_expr6","sum":7010919},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Token3","sum":7010919},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Token5","sum":7010919},{"parent":"TRule_for_stmt.TBlock1","rule":"TRule_for_stmt.TBlock1.Token1","sum":7010814},{"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":64786},{"parent":"TRule_for_stmt.TBlock8","rule":"TRule_for_stmt.TBlock8.Token1","sum":64786},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Block2","sum":1605609},{"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":137899286},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Rule_opt_set_quantifier4","sum":137899286},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Token1","sum":137899286},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Token3","sum":137899286},{"parent":"TRule_group_by_clause.TBlock2","rule":"TRule_group_by_clause.TBlock2.Token1","sum":1605609},{"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":300615590},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element2","sum":62641},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element3","sum":276720},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element4","sum":92425},{"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":300615590},{"parent":"TRule_grouping_element.TAlt2","rule":"TRule_grouping_element.TAlt2.Rule_rollup_list1","sum":62641},{"parent":"TRule_grouping_element.TAlt3","rule":"TRule_grouping_element.TAlt3.Rule_cube_list1","sum":276720},{"parent":"TRule_grouping_element.TAlt4","rule":"TRule_grouping_element.TAlt4.Rule_grouping_sets_specification1","sum":92425},{"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":62764930},{"parent":"TRule_grouping_element_list","rule":"TRule_grouping_element_list.Rule_grouping_element1","sum":137991711},{"parent":"TRule_grouping_element_list.TBlock2","rule":"TRule_grouping_element_list.TBlock2.Rule_grouping_element2","sum":163055688},{"parent":"TRule_grouping_element_list.TBlock2","rule":"TRule_grouping_element_list.TBlock2.Token1","sum":163055688},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Rule_grouping_element_list4","sum":92425},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token1","sum":92425},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token2","sum":92425},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token3","sum":92425},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token5","sum":92425},{"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":12128005704},{"parent":"TRule_id","rule":"TRule_id.Alt_id2","sum":531926389},{"parent":"TRule_id.TAlt1","rule":"TRule_id.TAlt1.Rule_identifier1","sum":12128005704},{"parent":"TRule_id.TAlt2","rule":"TRule_id.TAlt2.Rule_keyword1","sum":531926389},{"parent":"TRule_id_as_compat","rule":"TRule_id_as_compat.Alt_id_as_compat1","sum":2993100},{"parent":"TRule_id_as_compat","rule":"TRule_id_as_compat.Alt_id_as_compat2","sum":2625},{"parent":"TRule_id_as_compat.TAlt1","rule":"TRule_id_as_compat.TAlt1.Rule_identifier1","sum":2993100},{"parent":"TRule_id_as_compat.TAlt2","rule":"TRule_id_as_compat.TAlt2.Rule_keyword_as_compat1","sum":2625},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr1","sum":6924072359},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr2","sum":319866905},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr3","sum":428215},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr5","sum":35200839},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr6","sum":181516},{"parent":"TRule_id_expr.TAlt1","rule":"TRule_id_expr.TAlt1.Rule_identifier1","sum":6924072359},{"parent":"TRule_id_expr.TAlt2","rule":"TRule_id_expr.TAlt2.Rule_keyword_compat1","sum":319866905},{"parent":"TRule_id_expr.TAlt3","rule":"TRule_id_expr.TAlt3.Rule_keyword_alter_uncompat1","sum":428215},{"parent":"TRule_id_expr.TAlt5","rule":"TRule_id_expr.TAlt5.Rule_keyword_window_uncompat1","sum":35200839},{"parent":"TRule_id_expr.TAlt6","rule":"TRule_id_expr.TAlt6.Rule_keyword_hint_uncompat1","sum":181516},{"parent":"TRule_id_expr_in","rule":"TRule_id_expr_in.Alt_id_expr_in1","sum":5638186},{"parent":"TRule_id_expr_in","rule":"TRule_id_expr_in.Alt_id_expr_in2","sum":74134},{"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":5638186},{"parent":"TRule_id_expr_in.TAlt2","rule":"TRule_id_expr_in.TAlt2.Rule_keyword_compat1","sum":74134},{"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":154435757},{"parent":"TRule_id_hint","rule":"TRule_id_hint.Alt_id_hint2","sum":22914},{"parent":"TRule_id_hint","rule":"TRule_id_hint.Alt_id_hint3","sum":22914},{"parent":"TRule_id_hint.TAlt1","rule":"TRule_id_hint.TAlt1.Rule_identifier1","sum":154435757},{"parent":"TRule_id_hint.TAlt2","rule":"TRule_id_hint.TAlt2.Rule_keyword_compat1","sum":22914},{"parent":"TRule_id_hint.TAlt3","rule":"TRule_id_hint.TAlt3.Rule_keyword_expr_uncompat1","sum":22914},{"parent":"TRule_id_or_at","rule":"TRule_id_or_at.Block1","sum":4766922},{"parent":"TRule_id_or_at","rule":"TRule_id_or_at.Rule_an_id_or_type2","sum":133786170},{"parent":"TRule_id_or_at.TBlock1","rule":"TRule_id_or_at.TBlock1.Token1","sum":4766922},{"parent":"TRule_id_or_type","rule":"TRule_id_or_type.Alt_id_or_type1","sum":10550728727},{"parent":"TRule_id_or_type","rule":"TRule_id_or_type.Alt_id_or_type2","sum":11671511},{"parent":"TRule_id_or_type.TAlt1","rule":"TRule_id_or_type.TAlt1.Rule_id1","sum":10550728727},{"parent":"TRule_id_or_type.TAlt2","rule":"TRule_id_or_type.TAlt2.Rule_type_id1","sum":11671511},{"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":330226976},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table2","sum":648184},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table3","sum":369},{"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":1828},{"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":330226976},{"parent":"TRule_id_table.TAlt2","rule":"TRule_id_table.TAlt2.Rule_keyword_compat1","sum":648184},{"parent":"TRule_id_table.TAlt3","rule":"TRule_id_table.TAlt3.Rule_keyword_expr_uncompat1","sum":369},{"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":1828},{"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":330889869},{"parent":"TRule_id_table_or_type","rule":"TRule_id_table_or_type.Alt_id_table_or_type2","sum":4256},{"parent":"TRule_id_table_or_type.TAlt1","rule":"TRule_id_table_or_type.TAlt1.Rule_an_id_table1","sum":330889869},{"parent":"TRule_id_table_or_type.TAlt2","rule":"TRule_id_table_or_type.TAlt2.Rule_type_id1","sum":4256},{"parent":"TRule_id_window","rule":"TRule_id_window.Alt_id_window1","sum":46399293},{"parent":"TRule_id_window","rule":"TRule_id_window.Alt_id_window2","sum":15712},{"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":7846},{"parent":"TRule_id_window.TAlt1","rule":"TRule_id_window.TAlt1.Rule_identifier1","sum":46399293},{"parent":"TRule_id_window.TAlt2","rule":"TRule_id_window.TAlt2.Rule_keyword_compat1","sum":15712},{"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":7846},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without1","sum":23026253},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without2","sum":276407},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without6","sum":1152},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without7","sum":523},{"parent":"TRule_id_without.TAlt1","rule":"TRule_id_without.TAlt1.Rule_identifier1","sum":23026253},{"parent":"TRule_id_without.TAlt2","rule":"TRule_id_without.TAlt2.Rule_keyword_compat1","sum":276407},{"parent":"TRule_id_without.TAlt6","rule":"TRule_id_without.TAlt6.Rule_keyword_window_uncompat1","sum":1152},{"parent":"TRule_id_without.TAlt7","rule":"TRule_id_without.TAlt7.Rule_keyword_hint_uncompat1","sum":523},{"parent":"TRule_identifier","rule":"TRule_identifier.Token1","sum":20292582404},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Block1","sum":8565563},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Block5","sum":2975205},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Rule_do_stmt4","sum":8565607},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Rule_expr3","sum":8565607},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Token2","sum":8565607},{"parent":"TRule_if_stmt.TBlock1","rule":"TRule_if_stmt.TBlock1.Token1","sum":8565563},{"parent":"TRule_if_stmt.TBlock5","rule":"TRule_if_stmt.TBlock5.Rule_do_stmt2","sum":2975205},{"parent":"TRule_if_stmt.TBlock5","rule":"TRule_if_stmt.TBlock5.Token1","sum":2975205},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Rule_module_path2","sum":16595494},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Rule_named_bind_parameter_list4","sum":16595494},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Token1","sum":16595494},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Token3","sum":16595494},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr1","sum":2232},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr10","sum":5119349},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr11","sum":454733},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr2","sum":36416170},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr3","sum":65683387},{"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":2968457},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr7","sum":9749806},{"parent":"TRule_in_atom_expr.TAlt1","rule":"TRule_in_atom_expr.TAlt1.Rule_literal_value1","sum":2232},{"parent":"TRule_in_atom_expr.TAlt10","rule":"TRule_in_atom_expr.TAlt10.Rule_list_literal1","sum":5119349},{"parent":"TRule_in_atom_expr.TAlt11","rule":"TRule_in_atom_expr.TAlt11.Rule_dict_literal1","sum":454733},{"parent":"TRule_in_atom_expr.TAlt2","rule":"TRule_in_atom_expr.TAlt2.Rule_bind_parameter1","sum":36416170},{"parent":"TRule_in_atom_expr.TAlt3","rule":"TRule_in_atom_expr.TAlt3.Rule_lambda1","sum":65683387},{"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":2968457},{"parent":"TRule_in_atom_expr.TAlt6","rule":"TRule_in_atom_expr.TAlt6.Rule_an_id_or_type1","sum":2968457},{"parent":"TRule_in_atom_expr.TAlt6","rule":"TRule_in_atom_expr.TAlt6.Token2","sum":2968457},{"parent":"TRule_in_atom_expr.TAlt6.TBlock3","rule":"TRule_in_atom_expr.TAlt6.TBlock3.Alt1","sum":2968457},{"parent":"TRule_in_atom_expr.TAlt6.TBlock3.TAlt1","rule":"TRule_in_atom_expr.TAlt6.TBlock3.TAlt1.Rule_id_or_type1","sum":2968457},{"parent":"TRule_in_atom_expr.TAlt7","rule":"TRule_in_atom_expr.TAlt7.Rule_select_stmt2","sum":9749806},{"parent":"TRule_in_atom_expr.TAlt7","rule":"TRule_in_atom_expr.TAlt7.Token1","sum":9749806},{"parent":"TRule_in_atom_expr.TAlt7","rule":"TRule_in_atom_expr.TAlt7.Token3","sum":9749806},{"parent":"TRule_in_expr","rule":"TRule_in_expr.Rule_in_unary_subexpr1","sum":126151164},{"parent":"TRule_in_unary_casual_subexpr","rule":"TRule_in_unary_casual_subexpr.Block1","sum":126151112},{"parent":"TRule_in_unary_casual_subexpr","rule":"TRule_in_unary_casual_subexpr.Rule_unary_subexpr_suffix2","sum":126151112},{"parent":"TRule_in_unary_casual_subexpr.TBlock1","rule":"TRule_in_unary_casual_subexpr.TBlock1.Alt1","sum":5712586},{"parent":"TRule_in_unary_casual_subexpr.TBlock1","rule":"TRule_in_unary_casual_subexpr.TBlock1.Alt2","sum":120438526},{"parent":"TRule_in_unary_casual_subexpr.TBlock1.TAlt1","rule":"TRule_in_unary_casual_subexpr.TBlock1.TAlt1.Rule_id_expr_in1","sum":5712586},{"parent":"TRule_in_unary_casual_subexpr.TBlock1.TAlt2","rule":"TRule_in_unary_casual_subexpr.TBlock1.TAlt2.Rule_in_atom_expr1","sum":120438526},{"parent":"TRule_in_unary_subexpr","rule":"TRule_in_unary_subexpr.Alt_in_unary_subexpr1","sum":126151112},{"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":126151112},{"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":13876885},{"parent":"TRule_inline_action","rule":"TRule_inline_action.Token1","sum":13876885},{"parent":"TRule_inline_action","rule":"TRule_inline_action.Token3","sum":13876885},{"parent":"TRule_inline_action","rule":"TRule_inline_action.Token4","sum":13876885},{"parent":"TRule_integer","rule":"TRule_integer.Token1","sum":2804251466},{"parent":"TRule_integer_or_bind","rule":"TRule_integer_or_bind.Alt_integer_or_bind1","sum":55657901},{"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":55657901},{"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":25371},{"parent":"TRule_into_simple_table_ref","rule":"TRule_into_simple_table_ref.Rule_simple_table_ref1","sum":209091152},{"parent":"TRule_into_simple_table_ref.TBlock2","rule":"TRule_into_simple_table_ref.TBlock2.Rule_pure_column_list3","sum":25371},{"parent":"TRule_into_simple_table_ref.TBlock2","rule":"TRule_into_simple_table_ref.TBlock2.Token1","sum":25371},{"parent":"TRule_into_simple_table_ref.TBlock2","rule":"TRule_into_simple_table_ref.TBlock2.Token2","sum":25371},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Block1","sum":209091152},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Rule_into_simple_table_ref3","sum":209091152},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Rule_into_values_source4","sum":209091152},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Token2","sum":209091152},{"parent":"TRule_into_table_stmt.TBlock1","rule":"TRule_into_table_stmt.TBlock1.Alt1","sum":208980387},{"parent":"TRule_into_table_stmt.TBlock1","rule":"TRule_into_table_stmt.TBlock1.Alt5","sum":110764},{"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":208980387},{"parent":"TRule_into_table_stmt.TBlock1.TAlt5","rule":"TRule_into_table_stmt.TBlock1.TAlt5.Token1","sum":110764},{"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":209091152},{"parent":"TRule_into_values_source.TAlt1","rule":"TRule_into_values_source.TAlt1.Block1","sum":4514874},{"parent":"TRule_into_values_source.TAlt1","rule":"TRule_into_values_source.TAlt1.Rule_values_source2","sum":209091152},{"parent":"TRule_into_values_source.TAlt1.TBlock1","rule":"TRule_into_values_source.TAlt1.TBlock1.Rule_pure_column_list1","sum":4514874},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Block2","sum":2765415575},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Rule_invoke_expr_tail4","sum":2879693756},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Token1","sum":2879693756},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Token3","sum":2879693756},{"parent":"TRule_invoke_expr.TBlock2","rule":"TRule_invoke_expr.TBlock2.Alt1","sum":2706379021},{"parent":"TRule_invoke_expr.TBlock2","rule":"TRule_invoke_expr.TBlock2.Alt2","sum":59036554},{"parent":"TRule_invoke_expr.TBlock2.TAlt1","rule":"TRule_invoke_expr.TBlock2.TAlt1.Block3","sum":9657583},{"parent":"TRule_invoke_expr.TBlock2.TAlt1","rule":"TRule_invoke_expr.TBlock2.TAlt1.Rule_named_expr_list2","sum":2706379021},{"parent":"TRule_invoke_expr.TBlock2.TAlt1","rule":"TRule_invoke_expr.TBlock2.TAlt1.Rule_opt_set_quantifier1","sum":2706379021},{"parent":"TRule_invoke_expr.TBlock2.TAlt1.TBlock3","rule":"TRule_invoke_expr.TBlock2.TAlt1.TBlock3.Token1","sum":9657583},{"parent":"TRule_invoke_expr.TBlock2.TAlt2","rule":"TRule_invoke_expr.TBlock2.TAlt2.Token1","sum":59036554},{"parent":"TRule_invoke_expr_tail","rule":"TRule_invoke_expr_tail.Block1","sum":7217779},{"parent":"TRule_invoke_expr_tail","rule":"TRule_invoke_expr_tail.Block2","sum":45342787},{"parent":"TRule_invoke_expr_tail.TBlock1","rule":"TRule_invoke_expr_tail.TBlock1.Alt1","sum":7217779},{"parent":"TRule_invoke_expr_tail.TBlock1.TAlt1","rule":"TRule_invoke_expr_tail.TBlock1.TAlt1.Rule_null_treatment1","sum":7217779},{"parent":"TRule_invoke_expr_tail.TBlock2","rule":"TRule_invoke_expr_tail.TBlock2.Rule_window_name_or_specification2","sum":45342787},{"parent":"TRule_invoke_expr_tail.TBlock2","rule":"TRule_invoke_expr_tail.TBlock2.Token1","sum":45342787},{"parent":"TRule_join_constraint","rule":"TRule_join_constraint.Alt_join_constraint1","sum":173168424},{"parent":"TRule_join_constraint","rule":"TRule_join_constraint.Alt_join_constraint2","sum":32475186},{"parent":"TRule_join_constraint.TAlt1","rule":"TRule_join_constraint.TAlt1.Rule_expr2","sum":173168424},{"parent":"TRule_join_constraint.TAlt1","rule":"TRule_join_constraint.TAlt1.Token1","sum":173168424},{"parent":"TRule_join_constraint.TAlt2","rule":"TRule_join_constraint.TAlt2.Rule_pure_column_or_named_list2","sum":32475186},{"parent":"TRule_join_constraint.TAlt2","rule":"TRule_join_constraint.TAlt2.Token1","sum":32475186},{"parent":"TRule_join_op","rule":"TRule_join_op.Alt_join_op1","sum":28099},{"parent":"TRule_join_op","rule":"TRule_join_op.Alt_join_op2","sum":208703034},{"parent":"TRule_join_op.TAlt1","rule":"TRule_join_op.TAlt1.Token1","sum":28099},{"parent":"TRule_join_op.TAlt2","rule":"TRule_join_op.TAlt2.Block2","sum":208703034},{"parent":"TRule_join_op.TAlt2","rule":"TRule_join_op.TAlt2.Token3","sum":208703034},{"parent":"TRule_join_op.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.Alt1","sum":174912521},{"parent":"TRule_join_op.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.Alt2","sum":30731089},{"parent":"TRule_join_op.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.Alt3","sum":3059424},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.Block1","sum":126817883},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.Block2","sum":295367},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt1","sum":118904169},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt2","sum":1698819},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt3","sum":285680},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt4","sum":5929215},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.Block2","sum":19688658},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.Token1","sum":118904169},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.TBlock2.Token1","sum":19688658},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.Block2","sum":519436},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.Token1","sum":1698819},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.TBlock2.Token1","sum":519436},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt3","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt3.Token1","sum":285680},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt4","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt4.Token1","sum":5929215},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock2.Token1","sum":295367},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt2.Token1","sum":30731089},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt3","rule":"TRule_join_op.TAlt2.TBlock2.TAlt3.Token1","sum":3059424},{"parent":"TRule_join_source","rule":"TRule_join_source.Block1","sum":616452},{"parent":"TRule_join_source","rule":"TRule_join_source.Block3","sum":145482737},{"parent":"TRule_join_source","rule":"TRule_join_source.Rule_flatten_source2","sum":844499935},{"parent":"TRule_join_source.TBlock1","rule":"TRule_join_source.TBlock1.Token1","sum":616452},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Block2","sum":14042710},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Block4","sum":205643610},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Rule_flatten_source3","sum":208731133},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Rule_join_op1","sum":208731133},{"parent":"TRule_join_source.TBlock3.TBlock2","rule":"TRule_join_source.TBlock3.TBlock2.Token1","sum":14042710},{"parent":"TRule_join_source.TBlock3.TBlock4","rule":"TRule_join_source.TBlock3.TBlock4.Rule_join_constraint1","sum":205643610},{"parent":"TRule_json_api_expr","rule":"TRule_json_api_expr.Alt_json_api_expr1","sum":5839155},{"parent":"TRule_json_api_expr","rule":"TRule_json_api_expr.Alt_json_api_expr2","sum":187482},{"parent":"TRule_json_api_expr","rule":"TRule_json_api_expr.Alt_json_api_expr3","sum":317059},{"parent":"TRule_json_api_expr.TAlt1","rule":"TRule_json_api_expr.TAlt1.Rule_json_value1","sum":5839155},{"parent":"TRule_json_api_expr.TAlt2","rule":"TRule_json_api_expr.TAlt2.Rule_json_exists1","sum":187482},{"parent":"TRule_json_api_expr.TAlt3","rule":"TRule_json_api_expr.TAlt3.Rule_json_query1","sum":317059},{"parent":"TRule_json_case_handler","rule":"TRule_json_case_handler.Alt_json_case_handler1","sum":6990},{"parent":"TRule_json_case_handler","rule":"TRule_json_case_handler.Alt_json_case_handler2","sum":14322},{"parent":"TRule_json_case_handler","rule":"TRule_json_case_handler.Alt_json_case_handler3","sum":200611},{"parent":"TRule_json_case_handler.TAlt1","rule":"TRule_json_case_handler.TAlt1.Token1","sum":6990},{"parent":"TRule_json_case_handler.TAlt2","rule":"TRule_json_case_handler.TAlt2.Token1","sum":14322},{"parent":"TRule_json_case_handler.TAlt3","rule":"TRule_json_case_handler.TAlt3.Rule_expr2","sum":200611},{"parent":"TRule_json_case_handler.TAlt3","rule":"TRule_json_case_handler.TAlt3.Token1","sum":200611},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Block4","sum":20534},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Rule_expr1","sum":6343696},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Rule_jsonpath_spec3","sum":6343696},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Token2","sum":6343696},{"parent":"TRule_json_common_args.TBlock4","rule":"TRule_json_common_args.TBlock4.Rule_json_variables2","sum":20534},{"parent":"TRule_json_common_args.TBlock4","rule":"TRule_json_common_args.TBlock4.Token1","sum":20534},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Block4","sum":92},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Rule_json_common_args3","sum":187482},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Token1","sum":187482},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Token2","sum":187482},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Token5","sum":187482},{"parent":"TRule_json_exists.TBlock4","rule":"TRule_json_exists.TBlock4.Rule_json_exists_handler1","sum":92},{"parent":"TRule_json_exists_handler","rule":"TRule_json_exists_handler.Token1","sum":92},{"parent":"TRule_json_exists_handler","rule":"TRule_json_exists_handler.Token2","sum":92},{"parent":"TRule_json_exists_handler","rule":"TRule_json_exists_handler.Token3","sum":92},{"parent":"TRule_json_query","rule":"TRule_json_query.Block4","sum":190823},{"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":317059},{"parent":"TRule_json_query","rule":"TRule_json_query.Token1","sum":317059},{"parent":"TRule_json_query","rule":"TRule_json_query.Token2","sum":317059},{"parent":"TRule_json_query","rule":"TRule_json_query.Token7","sum":317059},{"parent":"TRule_json_query.TBlock4","rule":"TRule_json_query.TBlock4.Rule_json_query_wrapper1","sum":190823},{"parent":"TRule_json_query.TBlock4","rule":"TRule_json_query.TBlock4.Token2","sum":190823},{"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":190778},{"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":166445},{"parent":"TRule_json_query_wrapper.TAlt2","rule":"TRule_json_query_wrapper.TAlt2.Block3","sum":32190},{"parent":"TRule_json_query_wrapper.TAlt2","rule":"TRule_json_query_wrapper.TAlt2.Token1","sum":190778},{"parent":"TRule_json_query_wrapper.TAlt2.TBlock2","rule":"TRule_json_query_wrapper.TAlt2.TBlock2.Token1","sum":166445},{"parent":"TRule_json_query_wrapper.TAlt2.TBlock3","rule":"TRule_json_query_wrapper.TAlt2.TBlock3.Token1","sum":32190},{"parent":"TRule_json_value","rule":"TRule_json_value.Block4","sum":1332342},{"parent":"TRule_json_value","rule":"TRule_json_value.Block5","sum":202460},{"parent":"TRule_json_value","rule":"TRule_json_value.Rule_json_common_args3","sum":5839155},{"parent":"TRule_json_value","rule":"TRule_json_value.Token1","sum":5839155},{"parent":"TRule_json_value","rule":"TRule_json_value.Token2","sum":5839155},{"parent":"TRule_json_value","rule":"TRule_json_value.Token6","sum":5839155},{"parent":"TRule_json_value.TBlock4","rule":"TRule_json_value.TBlock4.Rule_type_name_simple2","sum":1332342},{"parent":"TRule_json_value.TBlock4","rule":"TRule_json_value.TBlock4.Token1","sum":1332342},{"parent":"TRule_json_value.TBlock5","rule":"TRule_json_value.TBlock5.Rule_json_case_handler1","sum":221923},{"parent":"TRule_json_value.TBlock5","rule":"TRule_json_value.TBlock5.Token2","sum":221923},{"parent":"TRule_json_value.TBlock5","rule":"TRule_json_value.TBlock5.Token3","sum":221923},{"parent":"TRule_json_variable","rule":"TRule_json_variable.Rule_expr1","sum":20541},{"parent":"TRule_json_variable","rule":"TRule_json_variable.Rule_json_variable_name3","sum":20541},{"parent":"TRule_json_variable","rule":"TRule_json_variable.Token2","sum":20541},{"parent":"TRule_json_variable_name","rule":"TRule_json_variable_name.Alt_json_variable_name1","sum":18269},{"parent":"TRule_json_variable_name","rule":"TRule_json_variable_name.Alt_json_variable_name2","sum":2272},{"parent":"TRule_json_variable_name.TAlt1","rule":"TRule_json_variable_name.TAlt1.Rule_id_expr1","sum":18269},{"parent":"TRule_json_variable_name.TAlt2","rule":"TRule_json_variable_name.TAlt2.Token1","sum":2272},{"parent":"TRule_json_variables","rule":"TRule_json_variables.Block2","sum":7},{"parent":"TRule_json_variables","rule":"TRule_json_variables.Rule_json_variable1","sum":20534},{"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":6343696},{"parent":"TRule_key_expr","rule":"TRule_key_expr.Rule_expr2","sum":173531558},{"parent":"TRule_key_expr","rule":"TRule_key_expr.Token1","sum":173531558},{"parent":"TRule_key_expr","rule":"TRule_key_expr.Token3","sum":173531558},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword1","sum":481505456},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword2","sum":33556549},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword3","sum":509133},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword4","sum":9140242},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword5","sum":777905},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword6","sum":23579},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword7","sum":3897493},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword8","sum":2516032},{"parent":"TRule_keyword.TAlt1","rule":"TRule_keyword.TAlt1.Rule_keyword_compat1","sum":481505456},{"parent":"TRule_keyword.TAlt2","rule":"TRule_keyword.TAlt2.Rule_keyword_expr_uncompat1","sum":33556549},{"parent":"TRule_keyword.TAlt3","rule":"TRule_keyword.TAlt3.Rule_keyword_table_uncompat1","sum":509133},{"parent":"TRule_keyword.TAlt4","rule":"TRule_keyword.TAlt4.Rule_keyword_select_uncompat1","sum":9140242},{"parent":"TRule_keyword.TAlt5","rule":"TRule_keyword.TAlt5.Rule_keyword_alter_uncompat1","sum":777905},{"parent":"TRule_keyword.TAlt6","rule":"TRule_keyword.TAlt6.Rule_keyword_in_uncompat1","sum":23579},{"parent":"TRule_keyword.TAlt7","rule":"TRule_keyword.TAlt7.Rule_keyword_window_uncompat1","sum":3897493},{"parent":"TRule_keyword.TAlt8","rule":"TRule_keyword.TAlt8.Rule_keyword_hint_uncompat1","sum":2516032},{"parent":"TRule_keyword_alter_uncompat","rule":"TRule_keyword_alter_uncompat.Token1","sum":1206120},{"parent":"TRule_keyword_as_compat","rule":"TRule_keyword_as_compat.Token1","sum":2625},{"parent":"TRule_keyword_compat","rule":"TRule_keyword_compat.Token1","sum":802409724},{"parent":"TRule_keyword_expr_uncompat","rule":"TRule_keyword_expr_uncompat.Token1","sum":33827392},{"parent":"TRule_keyword_hint_uncompat","rule":"TRule_keyword_hint_uncompat.Token1","sum":2698134},{"parent":"TRule_keyword_in_uncompat","rule":"TRule_keyword_in_uncompat.Token1","sum":23583},{"parent":"TRule_keyword_select_uncompat","rule":"TRule_keyword_select_uncompat.Token1","sum":9160585},{"parent":"TRule_keyword_table_uncompat","rule":"TRule_keyword_table_uncompat.Token1","sum":509133},{"parent":"TRule_keyword_window_uncompat","rule":"TRule_keyword_window_uncompat.Token1","sum":39101525},{"parent":"TRule_lambda","rule":"TRule_lambda.Block2","sum":208939219},{"parent":"TRule_lambda","rule":"TRule_lambda.Rule_smart_parenthesis1","sum":512606456},{"parent":"TRule_lambda.TBlock2","rule":"TRule_lambda.TBlock2.Block2","sum":208939219},{"parent":"TRule_lambda.TBlock2","rule":"TRule_lambda.TBlock2.Token1","sum":208939219},{"parent":"TRule_lambda.TBlock2.TBlock2","rule":"TRule_lambda.TBlock2.TBlock2.Alt1","sum":42650423},{"parent":"TRule_lambda.TBlock2.TBlock2","rule":"TRule_lambda.TBlock2.TBlock2.Alt2","sum":166288796},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt1","rule":"TRule_lambda.TBlock2.TBlock2.TAlt1.Rule_expr2","sum":42650423},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt1","rule":"TRule_lambda.TBlock2.TBlock2.TAlt1.Token1","sum":42650423},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt1","rule":"TRule_lambda.TBlock2.TBlock2.TAlt1.Token3","sum":42650423},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt2","rule":"TRule_lambda.TBlock2.TBlock2.TAlt2.Rule_lambda_body2","sum":166288796},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt2","rule":"TRule_lambda.TBlock2.TBlock2.TAlt2.Token1","sum":166288796},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt2","rule":"TRule_lambda.TBlock2.TBlock2.TAlt2.Token3","sum":166288796},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Block1","sum":158},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Block2","sum":34782650},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Block5","sum":87670061},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Rule_expr4","sum":166288796},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Token3","sum":166288796},{"parent":"TRule_lambda_body.TBlock1","rule":"TRule_lambda_body.TBlock1.Token1","sum":158},{"parent":"TRule_lambda_body.TBlock2","rule":"TRule_lambda_body.TBlock2.Block2","sum":63758860},{"parent":"TRule_lambda_body.TBlock2","rule":"TRule_lambda_body.TBlock2.Rule_lambda_stmt1","sum":63758860},{"parent":"TRule_lambda_body.TBlock2.TBlock2","rule":"TRule_lambda_body.TBlock2.TBlock2.Token1","sum":63760050},{"parent":"TRule_lambda_body.TBlock5","rule":"TRule_lambda_body.TBlock5.Token1","sum":87678636},{"parent":"TRule_lambda_stmt","rule":"TRule_lambda_stmt.Alt_lambda_stmt1","sum":63756201},{"parent":"TRule_lambda_stmt","rule":"TRule_lambda_stmt.Alt_lambda_stmt2","sum":2659},{"parent":"TRule_lambda_stmt.TAlt1","rule":"TRule_lambda_stmt.TAlt1.Rule_named_nodes_stmt1","sum":63756201},{"parent":"TRule_lambda_stmt.TAlt2","rule":"TRule_lambda_stmt.TAlt2.Rule_import_stmt1","sum":2659},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Block2","sum":35369157},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Block3","sum":2299735},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Token1","sum":41125575},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Token4","sum":41125575},{"parent":"TRule_list_literal.TBlock2","rule":"TRule_list_literal.TBlock2.Rule_expr_list1","sum":35369157},{"parent":"TRule_list_literal.TBlock3","rule":"TRule_list_literal.TBlock3.Token1","sum":2299735},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value1","sum":2748593564},{"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":109140186},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value3","sum":2123403353},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value5","sum":79508859},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value9","sum":104326396},{"parent":"TRule_literal_value.TAlt1","rule":"TRule_literal_value.TAlt1.Rule_integer1","sum":2748593564},{"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":109140186},{"parent":"TRule_literal_value.TAlt3","rule":"TRule_literal_value.TAlt3.Token1","sum":2123403353},{"parent":"TRule_literal_value.TAlt5","rule":"TRule_literal_value.TAlt5.Token1","sum":79508859},{"parent":"TRule_literal_value.TAlt9","rule":"TRule_literal_value.TAlt9.Rule_bool_value1","sum":104326396},{"parent":"TRule_match_op","rule":"TRule_match_op.Token1","sum":52236530},{"parent":"TRule_module_path","rule":"TRule_module_path.Block3","sum":362424},{"parent":"TRule_module_path","rule":"TRule_module_path.Rule_an_id2","sum":16595494},{"parent":"TRule_module_path.TBlock3","rule":"TRule_module_path.TBlock3.Rule_an_id2","sum":1080322},{"parent":"TRule_module_path.TBlock3","rule":"TRule_module_path.TBlock3.Token1","sum":1080322},{"parent":"TRule_mul_subexpr","rule":"TRule_mul_subexpr.Block2","sum":115281840},{"parent":"TRule_mul_subexpr","rule":"TRule_mul_subexpr.Rule_con_subexpr1","sum":15793033935},{"parent":"TRule_mul_subexpr.TBlock2","rule":"TRule_mul_subexpr.TBlock2.Rule_con_subexpr2","sum":229534995},{"parent":"TRule_mul_subexpr.TBlock2","rule":"TRule_mul_subexpr.TBlock2.Token1","sum":229534995},{"parent":"TRule_named_bind_parameter","rule":"TRule_named_bind_parameter.Block2","sum":137094},{"parent":"TRule_named_bind_parameter","rule":"TRule_named_bind_parameter.Rule_bind_parameter1","sum":37928631},{"parent":"TRule_named_bind_parameter.TBlock2","rule":"TRule_named_bind_parameter.TBlock2.Rule_bind_parameter2","sum":137094},{"parent":"TRule_named_bind_parameter.TBlock2","rule":"TRule_named_bind_parameter.TBlock2.Token1","sum":137094},{"parent":"TRule_named_bind_parameter_list","rule":"TRule_named_bind_parameter_list.Block2","sum":7067422},{"parent":"TRule_named_bind_parameter_list","rule":"TRule_named_bind_parameter_list.Rule_named_bind_parameter1","sum":16595494},{"parent":"TRule_named_bind_parameter_list.TBlock2","rule":"TRule_named_bind_parameter_list.TBlock2.Rule_named_bind_parameter2","sum":21333137},{"parent":"TRule_named_bind_parameter_list.TBlock2","rule":"TRule_named_bind_parameter_list.TBlock2.Token1","sum":21333137},{"parent":"TRule_named_column","rule":"TRule_named_column.Block2","sum":7179412},{"parent":"TRule_named_column","rule":"TRule_named_column.Rule_column_name1","sum":21372567},{"parent":"TRule_named_column.TBlock2","rule":"TRule_named_column.TBlock2.Rule_an_id2","sum":7179412},{"parent":"TRule_named_column.TBlock2","rule":"TRule_named_column.TBlock2.Token1","sum":7179412},{"parent":"TRule_named_expr","rule":"TRule_named_expr.Block2","sum":156378154},{"parent":"TRule_named_expr","rule":"TRule_named_expr.Rule_expr1","sum":7199519757},{"parent":"TRule_named_expr.TBlock2","rule":"TRule_named_expr.TBlock2.Rule_an_id_or_type2","sum":156378154},{"parent":"TRule_named_expr.TBlock2","rule":"TRule_named_expr.TBlock2.Token1","sum":156378154},{"parent":"TRule_named_expr_list","rule":"TRule_named_expr_list.Block2","sum":1184007000},{"parent":"TRule_named_expr_list","rule":"TRule_named_expr_list.Rule_named_expr1","sum":3241310082},{"parent":"TRule_named_expr_list.TBlock2","rule":"TRule_named_expr_list.TBlock2.Rule_named_expr2","sum":3464332706},{"parent":"TRule_named_expr_list.TBlock2","rule":"TRule_named_expr_list.TBlock2.Token1","sum":3464332706},{"parent":"TRule_named_nodes_stmt","rule":"TRule_named_nodes_stmt.Block3","sum":1007810457},{"parent":"TRule_named_nodes_stmt","rule":"TRule_named_nodes_stmt.Rule_bind_parameter_list1","sum":1007810457},{"parent":"TRule_named_nodes_stmt","rule":"TRule_named_nodes_stmt.Token2","sum":1007810457},{"parent":"TRule_named_nodes_stmt.TBlock3","rule":"TRule_named_nodes_stmt.TBlock3.Alt1","sum":677636582},{"parent":"TRule_named_nodes_stmt.TBlock3","rule":"TRule_named_nodes_stmt.TBlock3.Alt2","sum":330173875},{"parent":"TRule_named_nodes_stmt.TBlock3.TAlt1","rule":"TRule_named_nodes_stmt.TBlock3.TAlt1.Rule_expr1","sum":677636582},{"parent":"TRule_named_nodes_stmt.TBlock3.TAlt2","rule":"TRule_named_nodes_stmt.TBlock3.TAlt2.Rule_subselect_stmt1","sum":330173875},{"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":442845089},{"parent":"TRule_named_single_source","rule":"TRule_named_single_source.Block4","sum":404126},{"parent":"TRule_named_single_source","rule":"TRule_named_single_source.Rule_single_source1","sum":1058832771},{"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":442845089},{"parent":"TRule_named_single_source.TBlock3","rule":"TRule_named_single_source.TBlock3.Block2","sum":159943},{"parent":"TRule_named_single_source.TBlock3.TBlock1","rule":"TRule_named_single_source.TBlock3.TBlock1.Alt1","sum":440715497},{"parent":"TRule_named_single_source.TBlock3.TBlock1","rule":"TRule_named_single_source.TBlock3.TBlock1.Alt2","sum":2129592},{"parent":"TRule_named_single_source.TBlock3.TBlock1.TAlt1","rule":"TRule_named_single_source.TBlock3.TBlock1.TAlt1.Rule_an_id2","sum":440715497},{"parent":"TRule_named_single_source.TBlock3.TBlock1.TAlt1","rule":"TRule_named_single_source.TBlock3.TBlock1.TAlt1.Token1","sum":440715497},{"parent":"TRule_named_single_source.TBlock3.TBlock1.TAlt2","rule":"TRule_named_single_source.TBlock3.TBlock1.TAlt2.Rule_an_id_as_compat1","sum":2129592},{"parent":"TRule_named_single_source.TBlock3.TBlock2","rule":"TRule_named_single_source.TBlock3.TBlock2.Rule_pure_column_list1","sum":159943},{"parent":"TRule_named_single_source.TBlock4","rule":"TRule_named_single_source.TBlock4.Alt1","sum":75292},{"parent":"TRule_named_single_source.TBlock4","rule":"TRule_named_single_source.TBlock4.Alt2","sum":328834},{"parent":"TRule_named_single_source.TBlock4.TAlt1","rule":"TRule_named_single_source.TBlock4.TAlt1.Rule_sample_clause1","sum":75292},{"parent":"TRule_named_single_source.TBlock4.TAlt2","rule":"TRule_named_single_source.TBlock4.TAlt2.Rule_tablesample_clause1","sum":328834},{"parent":"TRule_neq_subexpr","rule":"TRule_neq_subexpr.Block2","sum":9145239},{"parent":"TRule_neq_subexpr","rule":"TRule_neq_subexpr.Block3","sum":112058899},{"parent":"TRule_neq_subexpr","rule":"TRule_neq_subexpr.Rule_bit_subexpr1","sum":15457487231},{"parent":"TRule_neq_subexpr.TBlock2","rule":"TRule_neq_subexpr.TBlock2.Block1","sum":9214315},{"parent":"TRule_neq_subexpr.TBlock2","rule":"TRule_neq_subexpr.TBlock2.Rule_bit_subexpr2","sum":9214315},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt1","sum":8101859},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt2","sum":53409},{"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":758109},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt6","sum":134813},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt7","sum":165633},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt1.Token1","sum":8101859},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt2","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt2.Rule_shift_right1","sum":53409},{"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":758109},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt6","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt6.Token1","sum":134813},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt7","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt7.Token1","sum":165633},{"parent":"TRule_neq_subexpr.TBlock3","rule":"TRule_neq_subexpr.TBlock3.Alt1","sum":108282209},{"parent":"TRule_neq_subexpr.TBlock3","rule":"TRule_neq_subexpr.TBlock3.Alt2","sum":3776690},{"parent":"TRule_neq_subexpr.TBlock3.TAlt1","rule":"TRule_neq_subexpr.TBlock3.TAlt1.Rule_double_question1","sum":108282209},{"parent":"TRule_neq_subexpr.TBlock3.TAlt1","rule":"TRule_neq_subexpr.TBlock3.TAlt1.Rule_neq_subexpr2","sum":108282209},{"parent":"TRule_neq_subexpr.TBlock3.TAlt2","rule":"TRule_neq_subexpr.TBlock3.TAlt2.Block1","sum":3776690},{"parent":"TRule_neq_subexpr.TBlock3.TAlt2.TBlock1","rule":"TRule_neq_subexpr.TBlock3.TAlt2.TBlock1.Token1","sum":3788579},{"parent":"TRule_new_window_name","rule":"TRule_new_window_name.Rule_window_name1","sum":14168963},{"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":7217734},{"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":7217734},{"parent":"TRule_null_treatment.TAlt2","rule":"TRule_null_treatment.TAlt2.Token2","sum":7217734},{"parent":"TRule_object_ref","rule":"TRule_object_ref.Block1","sum":5292495},{"parent":"TRule_object_ref","rule":"TRule_object_ref.Rule_id_or_at2","sum":133786170},{"parent":"TRule_object_ref.TBlock1","rule":"TRule_object_ref.TBlock1.Rule_cluster_expr1","sum":5292495},{"parent":"TRule_object_ref.TBlock1","rule":"TRule_object_ref.TBlock1.Token2","sum":5292495},{"parent":"TRule_opt_bind_parameter","rule":"TRule_opt_bind_parameter.Block2","sum":27133},{"parent":"TRule_opt_bind_parameter","rule":"TRule_opt_bind_parameter.Rule_bind_parameter1","sum":21477760},{"parent":"TRule_opt_bind_parameter.TBlock2","rule":"TRule_opt_bind_parameter.TBlock2.Token1","sum":27133},{"parent":"TRule_opt_id_prefix","rule":"TRule_opt_id_prefix.Block1","sum":83040753},{"parent":"TRule_opt_id_prefix.TBlock1","rule":"TRule_opt_id_prefix.TBlock1.Rule_an_id1","sum":83040753},{"parent":"TRule_opt_id_prefix.TBlock1","rule":"TRule_opt_id_prefix.TBlock1.Token2","sum":83040753},{"parent":"TRule_opt_id_prefix_or_type","rule":"TRule_opt_id_prefix_or_type.Block1","sum":777899391},{"parent":"TRule_opt_id_prefix_or_type.TBlock1","rule":"TRule_opt_id_prefix_or_type.TBlock1.Rule_an_id_or_type1","sum":777899391},{"parent":"TRule_opt_id_prefix_or_type.TBlock1","rule":"TRule_opt_id_prefix_or_type.TBlock1.Token2","sum":777899391},{"parent":"TRule_opt_set_quantifier","rule":"TRule_opt_set_quantifier.Block1","sum":70393678},{"parent":"TRule_opt_set_quantifier.TBlock1","rule":"TRule_opt_set_quantifier.TBlock1.Token1","sum":70393678},{"parent":"TRule_or_subexpr","rule":"TRule_or_subexpr.Block2","sum":277309968},{"parent":"TRule_or_subexpr","rule":"TRule_or_subexpr.Rule_and_subexpr1","sum":13815818451},{"parent":"TRule_or_subexpr.TBlock2","rule":"TRule_or_subexpr.TBlock2.Rule_and_subexpr2","sum":471399197},{"parent":"TRule_or_subexpr.TBlock2","rule":"TRule_or_subexpr.TBlock2.Token1","sum":471399197},{"parent":"TRule_order_by_clause","rule":"TRule_order_by_clause.Rule_sort_specification_list3","sum":107764368},{"parent":"TRule_order_by_clause","rule":"TRule_order_by_clause.Token1","sum":107764368},{"parent":"TRule_order_by_clause","rule":"TRule_order_by_clause.Token2","sum":107764368},{"parent":"TRule_ordinary_grouping_set","rule":"TRule_ordinary_grouping_set.Rule_named_expr1","sum":301387765},{"parent":"TRule_ordinary_grouping_set_list","rule":"TRule_ordinary_grouping_set_list.Block2","sum":199610},{"parent":"TRule_ordinary_grouping_set_list","rule":"TRule_ordinary_grouping_set_list.Rule_ordinary_grouping_set1","sum":339361},{"parent":"TRule_ordinary_grouping_set_list.TBlock2","rule":"TRule_ordinary_grouping_set_list.TBlock2.Rule_ordinary_grouping_set2","sum":432814},{"parent":"TRule_ordinary_grouping_set_list.TBlock2","rule":"TRule_ordinary_grouping_set_list.TBlock2.Token1","sum":432814},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Block4","sum":792392746},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Rule_an_id3","sum":897035838},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Rule_opt_id_prefix_or_type2","sum":897035838},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Token1","sum":897035838},{"parent":"TRule_pragma_stmt.TBlock4","rule":"TRule_pragma_stmt.TBlock4.Alt1","sum":744372125},{"parent":"TRule_pragma_stmt.TBlock4","rule":"TRule_pragma_stmt.TBlock4.Alt2","sum":48020621},{"parent":"TRule_pragma_stmt.TBlock4.TAlt1","rule":"TRule_pragma_stmt.TBlock4.TAlt1.Rule_pragma_value2","sum":744372125},{"parent":"TRule_pragma_stmt.TBlock4.TAlt1","rule":"TRule_pragma_stmt.TBlock4.TAlt1.Token1","sum":744372125},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Block3","sum":17718783},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Rule_pragma_value2","sum":48020621},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Token1","sum":48020621},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Token4","sum":48020621},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3","rule":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3.Rule_pragma_value2","sum":18536615},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3","rule":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3.Token1","sum":18536615},{"parent":"TRule_pragma_value","rule":"TRule_pragma_value.Alt_pragma_value2","sum":256154},{"parent":"TRule_pragma_value","rule":"TRule_pragma_value.Alt_pragma_value3","sum":798322117},{"parent":"TRule_pragma_value","rule":"TRule_pragma_value.Alt_pragma_value5","sum":12351090},{"parent":"TRule_pragma_value.TAlt2","rule":"TRule_pragma_value.TAlt2.Rule_id1","sum":256154},{"parent":"TRule_pragma_value.TAlt3","rule":"TRule_pragma_value.TAlt3.Token1","sum":798322117},{"parent":"TRule_pragma_value.TAlt5","rule":"TRule_pragma_value.TAlt5.Rule_bind_parameter1","sum":12351090},{"parent":"TRule_process_core","rule":"TRule_process_core.Block4","sum":1132},{"parent":"TRule_process_core","rule":"TRule_process_core.Block5","sum":1921069},{"parent":"TRule_process_core","rule":"TRule_process_core.Rule_named_single_source3","sum":4540825},{"parent":"TRule_process_core","rule":"TRule_process_core.Token1","sum":4540825},{"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":4667},{"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":1921069},{"parent":"TRule_process_core.TBlock5","rule":"TRule_process_core.TBlock5.Token1","sum":1921069},{"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":4667},{"parent":"TRule_process_core.TBlock5.TBlock5","rule":"TRule_process_core.TBlock5.TBlock5.Token1","sum":4667},{"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":3960275},{"parent":"TRule_pure_column_list","rule":"TRule_pure_column_list.Rule_an_id2","sum":4700188},{"parent":"TRule_pure_column_list","rule":"TRule_pure_column_list.Token1","sum":4700188},{"parent":"TRule_pure_column_list","rule":"TRule_pure_column_list.Token4","sum":4700188},{"parent":"TRule_pure_column_list.TBlock3","rule":"TRule_pure_column_list.TBlock3.Rule_an_id2","sum":35264390},{"parent":"TRule_pure_column_list.TBlock3","rule":"TRule_pure_column_list.TBlock3.Token1","sum":35264390},{"parent":"TRule_pure_column_or_named","rule":"TRule_pure_column_or_named.Alt_pure_column_or_named1","sum":6597834},{"parent":"TRule_pure_column_or_named","rule":"TRule_pure_column_or_named.Alt_pure_column_or_named2","sum":425423322},{"parent":"TRule_pure_column_or_named.TAlt1","rule":"TRule_pure_column_or_named.TAlt1.Rule_bind_parameter1","sum":6597834},{"parent":"TRule_pure_column_or_named.TAlt2","rule":"TRule_pure_column_or_named.TAlt2.Rule_an_id1","sum":425423322},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Block3","sum":11686222},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Rule_pure_column_or_named2","sum":32475186},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Token1","sum":32475186},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Token4","sum":32475186},{"parent":"TRule_pure_column_or_named_list.TBlock3","rule":"TRule_pure_column_or_named_list.TBlock3.Rule_pure_column_or_named2","sum":21737177},{"parent":"TRule_pure_column_or_named_list.TBlock3","rule":"TRule_pure_column_or_named_list.TBlock3.Token1","sum":21737177},{"parent":"TRule_real","rule":"TRule_real.Token1","sum":109140186},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block11","sum":8903},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block13","sum":26296},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block3","sum":120701},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block4","sum":303456},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block8","sum":315166},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Rule_column_list6","sum":850906},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Rule_named_single_source2","sum":850906},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Rule_using_call_expr9","sum":850906},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Token1","sum":850906},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Token5","sum":850906},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Token7","sum":850906},{"parent":"TRule_reduce_core.TBlock11","rule":"TRule_reduce_core.TBlock11.Rule_expr2","sum":8903},{"parent":"TRule_reduce_core.TBlock11","rule":"TRule_reduce_core.TBlock11.Token1","sum":8903},{"parent":"TRule_reduce_core.TBlock13","rule":"TRule_reduce_core.TBlock13.Rule_order_by_clause2","sum":26296},{"parent":"TRule_reduce_core.TBlock13","rule":"TRule_reduce_core.TBlock13.Token1","sum":26296},{"parent":"TRule_reduce_core.TBlock3","rule":"TRule_reduce_core.TBlock3.Rule_named_single_source2","sum":208839},{"parent":"TRule_reduce_core.TBlock3","rule":"TRule_reduce_core.TBlock3.Token1","sum":208839},{"parent":"TRule_reduce_core.TBlock4","rule":"TRule_reduce_core.TBlock4.Rule_sort_specification_list2","sum":303456},{"parent":"TRule_reduce_core.TBlock4","rule":"TRule_reduce_core.TBlock4.Token1","sum":303456},{"parent":"TRule_reduce_core.TBlock8","rule":"TRule_reduce_core.TBlock8.Token1","sum":315166},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Rule_expr3","sum":9298},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Token1","sum":9298},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Token2","sum":9298},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Token4","sum":9298},{"parent":"TRule_result_column","rule":"TRule_result_column.Alt_result_column1","sum":250526986},{"parent":"TRule_result_column","rule":"TRule_result_column.Alt_result_column2","sum":3450415722},{"parent":"TRule_result_column.TAlt1","rule":"TRule_result_column.TAlt1.Rule_opt_id_prefix1","sum":250526986},{"parent":"TRule_result_column.TAlt1","rule":"TRule_result_column.TAlt1.Token2","sum":250526986},{"parent":"TRule_result_column.TAlt2","rule":"TRule_result_column.TAlt2.Block2","sum":1988884363},{"parent":"TRule_result_column.TAlt2","rule":"TRule_result_column.TAlt2.Rule_expr1","sum":3450415722},{"parent":"TRule_result_column.TAlt2.TBlock2","rule":"TRule_result_column.TAlt2.TBlock2.Alt1","sum":1988018230},{"parent":"TRule_result_column.TAlt2.TBlock2","rule":"TRule_result_column.TAlt2.TBlock2.Alt2","sum":866133},{"parent":"TRule_result_column.TAlt2.TBlock2.TAlt1","rule":"TRule_result_column.TAlt2.TBlock2.TAlt1.Rule_an_id_or_type2","sum":1988018230},{"parent":"TRule_result_column.TAlt2.TBlock2.TAlt1","rule":"TRule_result_column.TAlt2.TBlock2.TAlt1.Token1","sum":1988018230},{"parent":"TRule_result_column.TAlt2.TBlock2.TAlt2","rule":"TRule_result_column.TAlt2.TBlock2.TAlt2.Rule_an_id_as_compat1","sum":866133},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Rule_ordinary_grouping_set_list3","sum":62641},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Token1","sum":62641},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Token2","sum":62641},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Token4","sum":62641},{"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":75292},{"parent":"TRule_sample_clause","rule":"TRule_sample_clause.Token1","sum":75292},{"parent":"TRule_sampling_mode","rule":"TRule_sampling_mode.Token1","sum":328834},{"parent":"TRule_search_condition","rule":"TRule_search_condition.Rule_expr1","sum":1},{"parent":"TRule_select_core","rule":"TRule_select_core.Block1","sum":10673659},{"parent":"TRule_select_core","rule":"TRule_select_core.Block10","sum":340990952},{"parent":"TRule_select_core","rule":"TRule_select_core.Block11","sum":137899286},{"parent":"TRule_select_core","rule":"TRule_select_core.Block12","sum":12067250},{"parent":"TRule_select_core","rule":"TRule_select_core.Block13","sum":13593427},{"parent":"TRule_select_core","rule":"TRule_select_core.Block14","sum":88715837},{"parent":"TRule_select_core","rule":"TRule_select_core.Block3","sum":117},{"parent":"TRule_select_core","rule":"TRule_select_core.Block6","sum":529926726},{"parent":"TRule_select_core","rule":"TRule_select_core.Block7","sum":93760052},{"parent":"TRule_select_core","rule":"TRule_select_core.Block8","sum":24912265},{"parent":"TRule_select_core","rule":"TRule_select_core.Block9","sum":833826276},{"parent":"TRule_select_core","rule":"TRule_select_core.Rule_opt_set_quantifier4","sum":905048656},{"parent":"TRule_select_core","rule":"TRule_select_core.Rule_result_column5","sum":905048656},{"parent":"TRule_select_core","rule":"TRule_select_core.Token2","sum":905048656},{"parent":"TRule_select_core.TBlock1","rule":"TRule_select_core.TBlock1.Rule_join_source2","sum":10673659},{"parent":"TRule_select_core.TBlock1","rule":"TRule_select_core.TBlock1.Token1","sum":10673659},{"parent":"TRule_select_core.TBlock10","rule":"TRule_select_core.TBlock10.Rule_expr2","sum":340990952},{"parent":"TRule_select_core.TBlock10","rule":"TRule_select_core.TBlock10.Token1","sum":340990952},{"parent":"TRule_select_core.TBlock11","rule":"TRule_select_core.TBlock11.Rule_group_by_clause1","sum":137899286},{"parent":"TRule_select_core.TBlock12","rule":"TRule_select_core.TBlock12.Rule_expr2","sum":12067250},{"parent":"TRule_select_core.TBlock12","rule":"TRule_select_core.TBlock12.Token1","sum":12067250},{"parent":"TRule_select_core.TBlock13","rule":"TRule_select_core.TBlock13.Rule_window_clause1","sum":13593427},{"parent":"TRule_select_core.TBlock14","rule":"TRule_select_core.TBlock14.Rule_ext_order_by_clause1","sum":88715837},{"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":2795894052},{"parent":"TRule_select_core.TBlock6","rule":"TRule_select_core.TBlock6.Token1","sum":2795894052},{"parent":"TRule_select_core.TBlock7","rule":"TRule_select_core.TBlock7.Token1","sum":93760052},{"parent":"TRule_select_core.TBlock8","rule":"TRule_select_core.TBlock8.Block2","sum":50},{"parent":"TRule_select_core.TBlock8","rule":"TRule_select_core.TBlock8.Rule_without_column_list3","sum":24912265},{"parent":"TRule_select_core.TBlock8","rule":"TRule_select_core.TBlock8.Token1","sum":24912265},{"parent":"TRule_select_core.TBlock8.TBlock2","rule":"TRule_select_core.TBlock8.TBlock2.Token1","sum":50},{"parent":"TRule_select_core.TBlock8.TBlock2","rule":"TRule_select_core.TBlock8.TBlock2.Token2","sum":50},{"parent":"TRule_select_core.TBlock9","rule":"TRule_select_core.TBlock9.Rule_join_source2","sum":833826276},{"parent":"TRule_select_core.TBlock9","rule":"TRule_select_core.TBlock9.Token1","sum":833826276},{"parent":"TRule_select_kind","rule":"TRule_select_kind.Block1","sum":922928},{"parent":"TRule_select_kind","rule":"TRule_select_kind.Block2","sum":910440387},{"parent":"TRule_select_kind","rule":"TRule_select_kind.Block3","sum":2883619},{"parent":"TRule_select_kind.TBlock1","rule":"TRule_select_kind.TBlock1.Token1","sum":922928},{"parent":"TRule_select_kind.TBlock2","rule":"TRule_select_kind.TBlock2.Alt1","sum":4540825},{"parent":"TRule_select_kind.TBlock2","rule":"TRule_select_kind.TBlock2.Alt2","sum":850906},{"parent":"TRule_select_kind.TBlock2","rule":"TRule_select_kind.TBlock2.Alt3","sum":905048656},{"parent":"TRule_select_kind.TBlock2.TAlt1","rule":"TRule_select_kind.TBlock2.TAlt1.Rule_process_core1","sum":4540825},{"parent":"TRule_select_kind.TBlock2.TAlt2","rule":"TRule_select_kind.TBlock2.TAlt2.Rule_reduce_core1","sum":850906},{"parent":"TRule_select_kind.TBlock2.TAlt3","rule":"TRule_select_kind.TBlock2.TAlt3.Rule_select_core1","sum":905048656},{"parent":"TRule_select_kind.TBlock3","rule":"TRule_select_kind.TBlock3.Rule_pure_column_or_named3","sum":2883619},{"parent":"TRule_select_kind.TBlock3","rule":"TRule_select_kind.TBlock3.Token1","sum":2883619},{"parent":"TRule_select_kind.TBlock3","rule":"TRule_select_kind.TBlock3.Token2","sum":2883619},{"parent":"TRule_select_kind_parenthesis","rule":"TRule_select_kind_parenthesis.Alt_select_kind_parenthesis1","sum":779731897},{"parent":"TRule_select_kind_parenthesis","rule":"TRule_select_kind_parenthesis.Alt_select_kind_parenthesis2","sum":7982913},{"parent":"TRule_select_kind_parenthesis.TAlt1","rule":"TRule_select_kind_parenthesis.TAlt1.Rule_select_kind_partial1","sum":779731897},{"parent":"TRule_select_kind_parenthesis.TAlt2","rule":"TRule_select_kind_parenthesis.TAlt2.Rule_select_kind_partial2","sum":7982913},{"parent":"TRule_select_kind_parenthesis.TAlt2","rule":"TRule_select_kind_parenthesis.TAlt2.Token1","sum":7982913},{"parent":"TRule_select_kind_parenthesis.TAlt2","rule":"TRule_select_kind_parenthesis.TAlt2.Token3","sum":7982913},{"parent":"TRule_select_kind_partial","rule":"TRule_select_kind_partial.Block2","sum":30714415},{"parent":"TRule_select_kind_partial","rule":"TRule_select_kind_partial.Rule_select_kind1","sum":910440387},{"parent":"TRule_select_kind_partial.TBlock2","rule":"TRule_select_kind_partial.TBlock2.Block3","sum":4615623},{"parent":"TRule_select_kind_partial.TBlock2","rule":"TRule_select_kind_partial.TBlock2.Rule_expr2","sum":30714415},{"parent":"TRule_select_kind_partial.TBlock2","rule":"TRule_select_kind_partial.TBlock2.Token1","sum":30714415},{"parent":"TRule_select_kind_partial.TBlock2.TBlock3","rule":"TRule_select_kind_partial.TBlock2.TBlock3.Rule_expr2","sum":4615623},{"parent":"TRule_select_kind_partial.TBlock2.TBlock3","rule":"TRule_select_kind_partial.TBlock2.TBlock3.Token1","sum":4615623},{"parent":"TRule_select_op","rule":"TRule_select_op.Alt_select_op1","sum":63914805},{"parent":"TRule_select_op.TAlt1","rule":"TRule_select_op.TAlt1.Block2","sum":62999622},{"parent":"TRule_select_op.TAlt1","rule":"TRule_select_op.TAlt1.Token1","sum":63914805},{"parent":"TRule_select_op.TAlt1.TBlock2","rule":"TRule_select_op.TAlt1.TBlock2.Token1","sum":62999622},{"parent":"TRule_select_stmt","rule":"TRule_select_stmt.Block2","sum":33291159},{"parent":"TRule_select_stmt","rule":"TRule_select_stmt.Rule_select_kind_parenthesis1","sum":723800005},{"parent":"TRule_select_stmt.TBlock2","rule":"TRule_select_stmt.TBlock2.Rule_select_kind_parenthesis2","sum":56947670},{"parent":"TRule_select_stmt.TBlock2","rule":"TRule_select_stmt.TBlock2.Rule_select_op1","sum":56947670},{"parent":"TRule_select_unparenthesized_stmt","rule":"TRule_select_unparenthesized_stmt.Block2","sum":4301601},{"parent":"TRule_select_unparenthesized_stmt","rule":"TRule_select_unparenthesized_stmt.Rule_select_kind_partial1","sum":122725577},{"parent":"TRule_select_unparenthesized_stmt.TBlock2","rule":"TRule_select_unparenthesized_stmt.TBlock2.Rule_select_kind_parenthesis2","sum":6967135},{"parent":"TRule_select_unparenthesized_stmt.TBlock2","rule":"TRule_select_unparenthesized_stmt.TBlock2.Rule_select_op1","sum":6967135},{"parent":"TRule_shift_right","rule":"TRule_shift_right.Token1","sum":53409},{"parent":"TRule_shift_right","rule":"TRule_shift_right.Token2","sum":53409},{"parent":"TRule_simple_table_ref","rule":"TRule_simple_table_ref.Block2","sum":143100620},{"parent":"TRule_simple_table_ref","rule":"TRule_simple_table_ref.Rule_simple_table_ref_core1","sum":211659349},{"parent":"TRule_simple_table_ref.TBlock2","rule":"TRule_simple_table_ref.TBlock2.Rule_table_hints1","sum":143100620},{"parent":"TRule_simple_table_ref_core","rule":"TRule_simple_table_ref_core.Alt_simple_table_ref_core1","sum":133786170},{"parent":"TRule_simple_table_ref_core","rule":"TRule_simple_table_ref_core.Alt_simple_table_ref_core2","sum":77873179},{"parent":"TRule_simple_table_ref_core.TAlt1","rule":"TRule_simple_table_ref_core.TAlt1.Rule_object_ref1","sum":133786170},{"parent":"TRule_simple_table_ref_core.TAlt2","rule":"TRule_simple_table_ref_core.TAlt2.Block1","sum":71525},{"parent":"TRule_simple_table_ref_core.TAlt2","rule":"TRule_simple_table_ref_core.TAlt2.Rule_bind_parameter2","sum":77873179},{"parent":"TRule_simple_table_ref_core.TAlt2.TBlock1","rule":"TRule_simple_table_ref_core.TAlt2.TBlock1.Token1","sum":71525},{"parent":"TRule_single_source","rule":"TRule_single_source.Alt_single_source1","sum":953815950},{"parent":"TRule_single_source","rule":"TRule_single_source.Alt_single_source2","sum":104848265},{"parent":"TRule_single_source","rule":"TRule_single_source.Alt_single_source3","sum":168556},{"parent":"TRule_single_source.TAlt1","rule":"TRule_single_source.TAlt1.Rule_table_ref1","sum":953815950},{"parent":"TRule_single_source.TAlt2","rule":"TRule_single_source.TAlt2.Rule_select_stmt2","sum":104848265},{"parent":"TRule_single_source.TAlt2","rule":"TRule_single_source.TAlt2.Token1","sum":104848265},{"parent":"TRule_single_source.TAlt2","rule":"TRule_single_source.TAlt2.Token3","sum":104848265},{"parent":"TRule_single_source.TAlt3","rule":"TRule_single_source.TAlt3.Rule_values_stmt2","sum":168556},{"parent":"TRule_single_source.TAlt3","rule":"TRule_single_source.TAlt3.Token1","sum":168556},{"parent":"TRule_single_source.TAlt3","rule":"TRule_single_source.TAlt3.Token3","sum":168556},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Block2","sum":508791006},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Block3","sum":2645106},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Token1","sum":512606456},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Token4","sum":512606456},{"parent":"TRule_smart_parenthesis.TBlock2","rule":"TRule_smart_parenthesis.TBlock2.Rule_named_expr_list1","sum":508791006},{"parent":"TRule_smart_parenthesis.TBlock3","rule":"TRule_smart_parenthesis.TBlock3.Token1","sum":2645106},{"parent":"TRule_sort_specification","rule":"TRule_sort_specification.Block2","sum":33224244},{"parent":"TRule_sort_specification","rule":"TRule_sort_specification.Rule_expr1","sum":181756851},{"parent":"TRule_sort_specification.TBlock2","rule":"TRule_sort_specification.TBlock2.Token1","sum":33224244},{"parent":"TRule_sort_specification_list","rule":"TRule_sort_specification_list.Block2","sum":39892637},{"parent":"TRule_sort_specification_list","rule":"TRule_sort_specification_list.Rule_sort_specification1","sum":108067824},{"parent":"TRule_sort_specification_list.TBlock2","rule":"TRule_sort_specification_list.TBlock2.Rule_sort_specification2","sum":73689027},{"parent":"TRule_sort_specification_list.TBlock2","rule":"TRule_sort_specification_list.TBlock2.Token1","sum":73689027},{"parent":"TRule_sql_query","rule":"TRule_sql_query.Alt_sql_query1","sum":320376481},{"parent":"TRule_sql_query.TAlt1","rule":"TRule_sql_query.TAlt1.Rule_sql_stmt_list1","sum":320376481},{"parent":"TRule_sql_stmt","rule":"TRule_sql_stmt.Block1","sum":53},{"parent":"TRule_sql_stmt","rule":"TRule_sql_stmt.Rule_sql_stmt_core2","sum":2722668438},{"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":897035838},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core12","sum":156488693},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core13","sum":16592835},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core17","sum":4709503},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core18","sum":22288095},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core19","sum":8565607},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core2","sum":193671855},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core20","sum":7010919},{"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":944054256},{"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":2568070},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core6","sum":329672608},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core7","sum":209091152},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core8","sum":13024992},{"parent":"TRule_sql_stmt_core.TAlt1","rule":"TRule_sql_stmt_core.TAlt1.Rule_pragma_stmt1","sum":897035838},{"parent":"TRule_sql_stmt_core.TAlt12","rule":"TRule_sql_stmt_core.TAlt12.Rule_declare_stmt1","sum":156488693},{"parent":"TRule_sql_stmt_core.TAlt13","rule":"TRule_sql_stmt_core.TAlt13.Rule_import_stmt1","sum":16592835},{"parent":"TRule_sql_stmt_core.TAlt17","rule":"TRule_sql_stmt_core.TAlt17.Rule_do_stmt1","sum":4709503},{"parent":"TRule_sql_stmt_core.TAlt18","rule":"TRule_sql_stmt_core.TAlt18.Rule_define_action_or_subquery_stmt1","sum":22288095},{"parent":"TRule_sql_stmt_core.TAlt19","rule":"TRule_sql_stmt_core.TAlt19.Rule_if_stmt1","sum":8565607},{"parent":"TRule_sql_stmt_core.TAlt2","rule":"TRule_sql_stmt_core.TAlt2.Rule_select_stmt1","sum":193671855},{"parent":"TRule_sql_stmt_core.TAlt20","rule":"TRule_sql_stmt_core.TAlt20.Rule_for_stmt1","sum":7010919},{"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":944054256},{"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":2568070},{"parent":"TRule_sql_stmt_core.TAlt6","rule":"TRule_sql_stmt_core.TAlt6.Rule_use_stmt1","sum":329672608},{"parent":"TRule_sql_stmt_core.TAlt7","rule":"TRule_sql_stmt_core.TAlt7.Rule_into_table_stmt1","sum":209091152},{"parent":"TRule_sql_stmt_core.TAlt8","rule":"TRule_sql_stmt_core.TAlt8.Rule_commit_stmt1","sum":13024992},{"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":314893323},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Block4","sum":195235820},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Rule_sql_stmt2","sum":320376481},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Token5","sum":320376481},{"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":2402291957},{"parent":"TRule_sql_stmt_list.TBlock3","rule":"TRule_sql_stmt_list.TBlock3.Rule_sql_stmt2","sum":2402291957},{"parent":"TRule_sql_stmt_list.TBlock3.TBlock1","rule":"TRule_sql_stmt_list.TBlock3.TBlock1.Token1","sum":2411363014},{"parent":"TRule_sql_stmt_list.TBlock4","rule":"TRule_sql_stmt_list.TBlock4.Token1","sum":197926078},{"parent":"TRule_struct_arg","rule":"TRule_struct_arg.Rule_type_name_or_bind3","sum":114011524},{"parent":"TRule_struct_arg","rule":"TRule_struct_arg.Rule_type_name_tag1","sum":114011524},{"parent":"TRule_struct_arg","rule":"TRule_struct_arg.Token2","sum":114011524},{"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":14494469},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Block3","sum":2539851},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Token1","sum":14625860},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Token4","sum":14625860},{"parent":"TRule_struct_literal.TBlock2","rule":"TRule_struct_literal.TBlock2.Rule_expr_struct_list1","sum":14494469},{"parent":"TRule_struct_literal.TBlock3","rule":"TRule_struct_literal.TBlock3.Token1","sum":2539851},{"parent":"TRule_subselect_stmt","rule":"TRule_subselect_stmt.Block1","sum":330173875},{"parent":"TRule_subselect_stmt.TBlock1","rule":"TRule_subselect_stmt.TBlock1.Alt1","sum":207448298},{"parent":"TRule_subselect_stmt.TBlock1","rule":"TRule_subselect_stmt.TBlock1.Alt2","sum":122725577},{"parent":"TRule_subselect_stmt.TBlock1.TAlt1","rule":"TRule_subselect_stmt.TBlock1.TAlt1.Rule_select_stmt2","sum":207448298},{"parent":"TRule_subselect_stmt.TBlock1.TAlt1","rule":"TRule_subselect_stmt.TBlock1.TAlt1.Token1","sum":207448298},{"parent":"TRule_subselect_stmt.TBlock1.TAlt1","rule":"TRule_subselect_stmt.TBlock1.TAlt1.Token3","sum":207448298},{"parent":"TRule_subselect_stmt.TBlock1.TAlt2","rule":"TRule_subselect_stmt.TBlock1.TAlt2.Rule_select_unparenthesized_stmt1","sum":122725577},{"parent":"TRule_table_arg","rule":"TRule_table_arg.Block1","sum":116480},{"parent":"TRule_table_arg","rule":"TRule_table_arg.Block3","sum":265957},{"parent":"TRule_table_arg","rule":"TRule_table_arg.Rule_named_expr2","sum":192489204},{"parent":"TRule_table_arg.TBlock1","rule":"TRule_table_arg.TBlock1.Token1","sum":116480},{"parent":"TRule_table_arg.TBlock3","rule":"TRule_table_arg.TBlock3.Rule_view_name2","sum":265957},{"parent":"TRule_table_arg.TBlock3","rule":"TRule_table_arg.TBlock3.Token1","sum":265957},{"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":154481585},{"parent":"TRule_table_hint","rule":"TRule_table_hint.Alt_table_hint2","sum":18945529},{"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":10750741},{"parent":"TRule_table_hint.TAlt1","rule":"TRule_table_hint.TAlt1.Rule_an_id_hint1","sum":154481585},{"parent":"TRule_table_hint.TAlt1.TBlock2","rule":"TRule_table_hint.TAlt1.TBlock2.Block2","sum":10750741},{"parent":"TRule_table_hint.TAlt1.TBlock2","rule":"TRule_table_hint.TAlt1.TBlock2.Token1","sum":10750741},{"parent":"TRule_table_hint.TAlt1.TBlock2.TBlock2","rule":"TRule_table_hint.TAlt1.TBlock2.TBlock2.Alt1","sum":10750741},{"parent":"TRule_table_hint.TAlt1.TBlock2.TBlock2.TAlt1","rule":"TRule_table_hint.TAlt1.TBlock2.TBlock2.TAlt1.Rule_type_name_tag1","sum":10750741},{"parent":"TRule_table_hint.TAlt2","rule":"TRule_table_hint.TAlt2.Block2","sum":1683},{"parent":"TRule_table_hint.TAlt2","rule":"TRule_table_hint.TAlt2.Rule_type_name_or_bind3","sum":18945529},{"parent":"TRule_table_hint.TAlt2","rule":"TRule_table_hint.TAlt2.Token1","sum":18945529},{"parent":"TRule_table_hint.TAlt2.TBlock2","rule":"TRule_table_hint.TAlt2.TBlock2.Token1","sum":1683},{"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":162764877},{"parent":"TRule_table_hints","rule":"TRule_table_hints.Token1","sum":162764877},{"parent":"TRule_table_hints.TBlock2","rule":"TRule_table_hints.TBlock2.Alt1","sum":152231871},{"parent":"TRule_table_hints.TBlock2","rule":"TRule_table_hints.TBlock2.Alt2","sum":10533006},{"parent":"TRule_table_hints.TBlock2.TAlt1","rule":"TRule_table_hints.TBlock2.TAlt1.Rule_table_hint1","sum":152231871},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Block3","sum":10261707},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Rule_table_hint2","sum":10533006},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Token1","sum":10533006},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Token4","sum":10533006},{"parent":"TRule_table_hints.TBlock2.TAlt2.TBlock3","rule":"TRule_table_hints.TBlock2.TAlt2.TBlock3.Rule_table_hint2","sum":10662249},{"parent":"TRule_table_hints.TBlock2.TAlt2.TBlock3","rule":"TRule_table_hints.TBlock2.TAlt2.TBlock3.Token1","sum":10662249},{"parent":"TRule_table_key","rule":"TRule_table_key.Block2","sum":865837},{"parent":"TRule_table_key","rule":"TRule_table_key.Rule_id_table_or_type1","sum":330894125},{"parent":"TRule_table_key.TBlock2","rule":"TRule_table_key.TBlock2.Rule_view_name2","sum":865837},{"parent":"TRule_table_key.TBlock2","rule":"TRule_table_key.TBlock2.Token1","sum":865837},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block1","sum":39960071},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block2","sum":6035888},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block3","sum":953815950},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block4","sum":19664257},{"parent":"TRule_table_ref.TBlock1","rule":"TRule_table_ref.TBlock1.Rule_cluster_expr1","sum":39960071},{"parent":"TRule_table_ref.TBlock1","rule":"TRule_table_ref.TBlock1.Token2","sum":39960071},{"parent":"TRule_table_ref.TBlock2","rule":"TRule_table_ref.TBlock2.Token1","sum":6035888},{"parent":"TRule_table_ref.TBlock3","rule":"TRule_table_ref.TBlock3.Alt1","sum":330894125},{"parent":"TRule_table_ref.TBlock3","rule":"TRule_table_ref.TBlock3.Alt2","sum":96313621},{"parent":"TRule_table_ref.TBlock3","rule":"TRule_table_ref.TBlock3.Alt3","sum":526608204},{"parent":"TRule_table_ref.TBlock3.TAlt1","rule":"TRule_table_ref.TBlock3.TAlt1.Rule_table_key1","sum":330894125},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Block3","sum":96313596},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Rule_an_id_expr1","sum":96313621},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Token2","sum":96313621},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Token4","sum":96313621},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.Block2","sum":49697568},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.Block3","sum":356769},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.Rule_table_arg1","sum":96313596},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2.Rule_table_arg2","sum":96175608},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2.Token1","sum":96175608},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock3.Token1","sum":356769},{"parent":"TRule_table_ref.TBlock3.TAlt3","rule":"TRule_table_ref.TBlock3.TAlt3.Block2","sum":22294386},{"parent":"TRule_table_ref.TBlock3.TAlt3","rule":"TRule_table_ref.TBlock3.TAlt3.Block3","sum":177575},{"parent":"TRule_table_ref.TBlock3.TAlt3","rule":"TRule_table_ref.TBlock3.TAlt3.Rule_bind_parameter1","sum":526608204},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.Block2","sum":15925824},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.Token1","sum":22294386},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.Token3","sum":22294386},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.TBlock2.Rule_expr_list1","sum":15925824},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock3.Rule_view_name2","sum":177575},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock3.Token1","sum":177575},{"parent":"TRule_table_ref.TBlock4","rule":"TRule_table_ref.TBlock4.Rule_table_hints1","sum":19664257},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Block6","sum":9298},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Rule_expr4","sum":328834},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Rule_sampling_mode2","sum":328834},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Token1","sum":328834},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Token3","sum":328834},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Token5","sum":328834},{"parent":"TRule_tablesample_clause.TBlock6","rule":"TRule_tablesample_clause.TBlock6.Rule_repeatable_clause1","sum":9298},{"parent":"TRule_type_id","rule":"TRule_type_id.Token1","sum":11675767},{"parent":"TRule_type_name","rule":"TRule_type_name.Alt_type_name1","sum":89405041},{"parent":"TRule_type_name","rule":"TRule_type_name.Alt_type_name2","sum":703793148},{"parent":"TRule_type_name.TAlt1","rule":"TRule_type_name.TAlt1.Rule_type_name_composite1","sum":89405041},{"parent":"TRule_type_name.TAlt2","rule":"TRule_type_name.TAlt2.Block1","sum":703793148},{"parent":"TRule_type_name.TAlt2","rule":"TRule_type_name.TAlt2.Block2","sum":73563154},{"parent":"TRule_type_name.TAlt2.TBlock1","rule":"TRule_type_name.TAlt2.TBlock1.Alt1","sum":27853302},{"parent":"TRule_type_name.TAlt2.TBlock1","rule":"TRule_type_name.TAlt2.TBlock1.Alt2","sum":675939846},{"parent":"TRule_type_name.TAlt2.TBlock1.TAlt1","rule":"TRule_type_name.TAlt2.TBlock1.TAlt1.Rule_type_name_decimal1","sum":27853302},{"parent":"TRule_type_name.TAlt2.TBlock1.TAlt2","rule":"TRule_type_name.TAlt2.TBlock1.TAlt2.Rule_type_name_simple1","sum":675939846},{"parent":"TRule_type_name.TAlt2.TBlock2","rule":"TRule_type_name.TAlt2.TBlock2.Token1","sum":73564194},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Block4","sum":9767728},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Block5","sum":223950},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Block6","sum":10435},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Rule_type_name_or_bind9","sum":10094706},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token1","sum":10094706},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token10","sum":10094706},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token2","sum":10094706},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token3","sum":10094706},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token7","sum":10094706},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token8","sum":10094706},{"parent":"TRule_type_name_callable.TBlock4","rule":"TRule_type_name_callable.TBlock4.Rule_callable_arg_list1","sum":9767728},{"parent":"TRule_type_name_callable.TBlock5","rule":"TRule_type_name_callable.TBlock5.Token1","sum":223950},{"parent":"TRule_type_name_callable.TBlock6","rule":"TRule_type_name_callable.TBlock6.Rule_callable_arg_list2","sum":10435},{"parent":"TRule_type_name_callable.TBlock6","rule":"TRule_type_name_callable.TBlock6.Token1","sum":10435},{"parent":"TRule_type_name_callable.TBlock6","rule":"TRule_type_name_callable.TBlock6.Token3","sum":10435},{"parent":"TRule_type_name_composite","rule":"TRule_type_name_composite.Block1","sum":106795007},{"parent":"TRule_type_name_composite","rule":"TRule_type_name_composite.Block2","sum":4248366},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt1","sum":33266966},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt10","sum":20441},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt11","sum":456370},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt12","sum":7763},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt13","sum":10094706},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt2","sum":2160207},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt3","sum":26683306},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt4","sum":136902},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt5","sum":25785440},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt6","sum":1522146},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt8","sum":6647417},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt9","sum":13343},{"parent":"TRule_type_name_composite.TBlock1.TAlt1","rule":"TRule_type_name_composite.TBlock1.TAlt1.Rule_type_name_optional1","sum":33266966},{"parent":"TRule_type_name_composite.TBlock1.TAlt10","rule":"TRule_type_name_composite.TBlock1.TAlt10.Rule_type_name_enum1","sum":20441},{"parent":"TRule_type_name_composite.TBlock1.TAlt11","rule":"TRule_type_name_composite.TBlock1.TAlt11.Rule_type_name_resource1","sum":456370},{"parent":"TRule_type_name_composite.TBlock1.TAlt12","rule":"TRule_type_name_composite.TBlock1.TAlt12.Rule_type_name_tagged1","sum":7763},{"parent":"TRule_type_name_composite.TBlock1.TAlt13","rule":"TRule_type_name_composite.TBlock1.TAlt13.Rule_type_name_callable1","sum":10094706},{"parent":"TRule_type_name_composite.TBlock1.TAlt2","rule":"TRule_type_name_composite.TBlock1.TAlt2.Rule_type_name_tuple1","sum":2160207},{"parent":"TRule_type_name_composite.TBlock1.TAlt3","rule":"TRule_type_name_composite.TBlock1.TAlt3.Rule_type_name_struct1","sum":26683306},{"parent":"TRule_type_name_composite.TBlock1.TAlt4","rule":"TRule_type_name_composite.TBlock1.TAlt4.Rule_type_name_variant1","sum":136902},{"parent":"TRule_type_name_composite.TBlock1.TAlt5","rule":"TRule_type_name_composite.TBlock1.TAlt5.Rule_type_name_list1","sum":25785440},{"parent":"TRule_type_name_composite.TBlock1.TAlt6","rule":"TRule_type_name_composite.TBlock1.TAlt6.Rule_type_name_stream1","sum":1522146},{"parent":"TRule_type_name_composite.TBlock1.TAlt8","rule":"TRule_type_name_composite.TBlock1.TAlt8.Rule_type_name_dict1","sum":6647417},{"parent":"TRule_type_name_composite.TBlock1.TAlt9","rule":"TRule_type_name_composite.TBlock1.TAlt9.Rule_type_name_set1","sum":13343},{"parent":"TRule_type_name_composite.TBlock2","rule":"TRule_type_name_composite.TBlock2.Token1","sum":4248369},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Rule_integer_or_bind3","sum":27853302},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Rule_integer_or_bind5","sum":27853302},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token1","sum":27853302},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token2","sum":27853302},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token4","sum":27853302},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token6","sum":27853302},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Rule_type_name_or_bind3","sum":6647417},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Rule_type_name_or_bind5","sum":6647417},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token1","sum":6647417},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token2","sum":6647417},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token4","sum":6647417},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token6","sum":6647417},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Block4","sum":20193},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Block5","sum":377},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Rule_type_name_tag3","sum":20441},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Token1","sum":20441},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Token2","sum":20441},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Token6","sum":20441},{"parent":"TRule_type_name_enum.TBlock4","rule":"TRule_type_name_enum.TBlock4.Rule_type_name_tag2","sum":43975},{"parent":"TRule_type_name_enum.TBlock4","rule":"TRule_type_name_enum.TBlock4.Token1","sum":43975},{"parent":"TRule_type_name_enum.TBlock5","rule":"TRule_type_name_enum.TBlock5.Token1","sum":377},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Rule_type_name_or_bind3","sum":25785440},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Token1","sum":25785440},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Token2","sum":25785440},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Token4","sum":25785440},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Rule_type_name_or_bind3","sum":33266966},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Token1","sum":33266966},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Token2","sum":33266966},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Token4","sum":33266966},{"parent":"TRule_type_name_or_bind","rule":"TRule_type_name_or_bind.Alt_type_name_or_bind1","sum":636709496},{"parent":"TRule_type_name_or_bind","rule":"TRule_type_name_or_bind.Alt_type_name_or_bind2","sum":2676185},{"parent":"TRule_type_name_or_bind.TAlt1","rule":"TRule_type_name_or_bind.TAlt1.Rule_type_name1","sum":636709496},{"parent":"TRule_type_name_or_bind.TAlt2","rule":"TRule_type_name_or_bind.TAlt2.Rule_bind_parameter1","sum":2676185},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Rule_type_name_tag3","sum":456370},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Token1","sum":456370},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Token2","sum":456370},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Token4","sum":456370},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Rule_type_name_or_bind3","sum":13343},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Token1","sum":13343},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Token2","sum":13343},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Token4","sum":13343},{"parent":"TRule_type_name_simple","rule":"TRule_type_name_simple.Rule_an_id_pure1","sum":677783605},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Rule_type_name_or_bind3","sum":1522146},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Token1","sum":1522146},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Token2","sum":1522146},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Token4","sum":1522146},{"parent":"TRule_type_name_struct","rule":"TRule_type_name_struct.Block2","sum":26683306},{"parent":"TRule_type_name_struct","rule":"TRule_type_name_struct.Token1","sum":26683306},{"parent":"TRule_type_name_struct.TBlock2","rule":"TRule_type_name_struct.TBlock2.Alt1","sum":26680414},{"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":26680404},{"parent":"TRule_type_name_struct.TBlock2.TAlt1","rule":"TRule_type_name_struct.TBlock2.TAlt1.Token1","sum":26680414},{"parent":"TRule_type_name_struct.TBlock2.TAlt1","rule":"TRule_type_name_struct.TBlock2.TAlt1.Token3","sum":26680414},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.Block2","sum":20364033},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.Block3","sum":2056555},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.Rule_struct_arg1","sum":26680404},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2.Rule_struct_arg2","sum":87331120},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2.Token1","sum":87331120},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock3","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock3.Token1","sum":2056555},{"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":104747425},{"parent":"TRule_type_name_tag","rule":"TRule_type_name_tag.Alt_type_name_tag2","sum":18282215},{"parent":"TRule_type_name_tag","rule":"TRule_type_name_tag.Alt_type_name_tag3","sum":2617886},{"parent":"TRule_type_name_tag.TAlt1","rule":"TRule_type_name_tag.TAlt1.Rule_id1","sum":104747425},{"parent":"TRule_type_name_tag.TAlt2","rule":"TRule_type_name_tag.TAlt2.Token1","sum":18282215},{"parent":"TRule_type_name_tag.TAlt3","rule":"TRule_type_name_tag.TAlt3.Rule_bind_parameter1","sum":2617886},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Rule_type_name_or_bind3","sum":7763},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Rule_type_name_tag5","sum":7763},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token1","sum":7763},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token2","sum":7763},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token4","sum":7763},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token6","sum":7763},{"parent":"TRule_type_name_tuple","rule":"TRule_type_name_tuple.Block2","sum":2160207},{"parent":"TRule_type_name_tuple","rule":"TRule_type_name_tuple.Token1","sum":2160207},{"parent":"TRule_type_name_tuple.TBlock2","rule":"TRule_type_name_tuple.TBlock2.Alt1","sum":2160197},{"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":2160197},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1","rule":"TRule_type_name_tuple.TBlock2.TAlt1.Token1","sum":2160197},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1","rule":"TRule_type_name_tuple.TBlock2.TAlt1.Token3","sum":2160197},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.Block2","sum":2158663},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.Block3","sum":63559},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.Rule_type_name_or_bind1","sum":2160197},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2.Rule_type_name_or_bind2","sum":3341642},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2.Token1","sum":3341642},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock3","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock3.Token1","sum":63559},{"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":122313},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Block5","sum":104},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Rule_variant_arg3","sum":136902},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Token1","sum":136902},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Token2","sum":136902},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Token6","sum":136902},{"parent":"TRule_type_name_variant.TBlock4","rule":"TRule_type_name_variant.TBlock4.Rule_variant_arg2","sum":233912},{"parent":"TRule_type_name_variant.TBlock4","rule":"TRule_type_name_variant.TBlock4.Token1","sum":233912},{"parent":"TRule_type_name_variant.TBlock5","rule":"TRule_type_name_variant.TBlock5.Token1","sum":104},{"parent":"TRule_unary_casual_subexpr","rule":"TRule_unary_casual_subexpr.Block1","sum":16016225286},{"parent":"TRule_unary_casual_subexpr","rule":"TRule_unary_casual_subexpr.Rule_unary_subexpr_suffix2","sum":16016225286},{"parent":"TRule_unary_casual_subexpr.TBlock1","rule":"TRule_unary_casual_subexpr.TBlock1.Alt1","sum":7183417944},{"parent":"TRule_unary_casual_subexpr.TBlock1","rule":"TRule_unary_casual_subexpr.TBlock1.Alt2","sum":8832807342},{"parent":"TRule_unary_casual_subexpr.TBlock1.TAlt1","rule":"TRule_unary_casual_subexpr.TBlock1.TAlt1.Rule_id_expr1","sum":7183417944},{"parent":"TRule_unary_casual_subexpr.TBlock1.TAlt2","rule":"TRule_unary_casual_subexpr.TBlock1.TAlt2.Rule_atom_expr1","sum":8832807342},{"parent":"TRule_unary_op","rule":"TRule_unary_op.Token1","sum":87770220},{"parent":"TRule_unary_subexpr","rule":"TRule_unary_subexpr.Alt_unary_subexpr1","sum":16016225286},{"parent":"TRule_unary_subexpr","rule":"TRule_unary_subexpr.Alt_unary_subexpr2","sum":6343644},{"parent":"TRule_unary_subexpr.TAlt1","rule":"TRule_unary_subexpr.TAlt1.Rule_unary_casual_subexpr1","sum":16016225286},{"parent":"TRule_unary_subexpr.TAlt2","rule":"TRule_unary_subexpr.TAlt2.Rule_json_api_expr1","sum":6343644},{"parent":"TRule_unary_subexpr_suffix","rule":"TRule_unary_subexpr_suffix.Block1","sum":4775126942},{"parent":"TRule_unary_subexpr_suffix.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.Block1","sum":5029718261},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.Alt1","sum":173531558},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.Alt2","sum":2876921781},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.Alt3","sum":1979264922},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt1.Rule_key_expr1","sum":173531558},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt2.Rule_invoke_expr1","sum":2876921781},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.Block2","sum":1979264922},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.Token1","sum":1979264922},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.Alt1","sum":3153885},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.Alt2","sum":40460282},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.Alt3","sum":1935650755},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt1.Rule_bind_parameter1","sum":3153885},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt2.Token1","sum":40460282},{"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":1935650755},{"parent":"TRule_use_stmt","rule":"TRule_use_stmt.Rule_cluster_expr2","sum":329672608},{"parent":"TRule_use_stmt","rule":"TRule_use_stmt.Token1","sum":329672608},{"parent":"TRule_using_call_expr","rule":"TRule_using_call_expr.Block1","sum":2771975},{"parent":"TRule_using_call_expr","rule":"TRule_using_call_expr.Rule_invoke_expr2","sum":2771975},{"parent":"TRule_using_call_expr.TBlock1","rule":"TRule_using_call_expr.TBlock1.Alt1","sum":1522435},{"parent":"TRule_using_call_expr.TBlock1","rule":"TRule_using_call_expr.TBlock1.Alt3","sum":1249540},{"parent":"TRule_using_call_expr.TBlock1.TAlt1","rule":"TRule_using_call_expr.TBlock1.TAlt1.Rule_an_id_or_type1","sum":1522435},{"parent":"TRule_using_call_expr.TBlock1.TAlt1","rule":"TRule_using_call_expr.TBlock1.TAlt1.Rule_an_id_or_type3","sum":1522435},{"parent":"TRule_using_call_expr.TBlock1.TAlt1","rule":"TRule_using_call_expr.TBlock1.TAlt1.Token2","sum":1522435},{"parent":"TRule_using_call_expr.TBlock1.TAlt3","rule":"TRule_using_call_expr.TBlock1.TAlt3.Rule_bind_parameter1","sum":1249540},{"parent":"TRule_value_constructor","rule":"TRule_value_constructor.Alt_value_constructor1","sum":32087},{"parent":"TRule_value_constructor","rule":"TRule_value_constructor.Alt_value_constructor2","sum":51190},{"parent":"TRule_value_constructor","rule":"TRule_value_constructor.Alt_value_constructor3","sum":80795},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Rule_expr3","sum":32087},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Rule_expr5","sum":32087},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Rule_expr7","sum":32087},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token1","sum":32087},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token2","sum":32087},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token4","sum":32087},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token6","sum":32087},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token8","sum":32087},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Rule_expr3","sum":51190},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Rule_expr5","sum":51190},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token1","sum":51190},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token2","sum":51190},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token4","sum":51190},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token6","sum":51190},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Rule_expr3","sum":80795},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Rule_expr5","sum":80795},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token1","sum":80795},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token2","sum":80795},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token4","sum":80795},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token6","sum":80795},{"parent":"TRule_values_source","rule":"TRule_values_source.Alt_values_source1","sum":1086488},{"parent":"TRule_values_source","rule":"TRule_values_source.Alt_values_source2","sum":208004664},{"parent":"TRule_values_source.TAlt1","rule":"TRule_values_source.TAlt1.Rule_values_stmt1","sum":1086488},{"parent":"TRule_values_source.TAlt2","rule":"TRule_values_source.TAlt2.Rule_select_stmt1","sum":208004664},{"parent":"TRule_values_source_row","rule":"TRule_values_source_row.Rule_expr_list2","sum":9061158},{"parent":"TRule_values_source_row","rule":"TRule_values_source_row.Token1","sum":9061158},{"parent":"TRule_values_source_row","rule":"TRule_values_source_row.Token3","sum":9061158},{"parent":"TRule_values_source_row_list","rule":"TRule_values_source_row_list.Block2","sum":486892},{"parent":"TRule_values_source_row_list","rule":"TRule_values_source_row_list.Rule_values_source_row1","sum":1255365},{"parent":"TRule_values_source_row_list.TBlock2","rule":"TRule_values_source_row_list.TBlock2.Rule_values_source_row2","sum":7805793},{"parent":"TRule_values_source_row_list.TBlock2","rule":"TRule_values_source_row_list.TBlock2.Token1","sum":7805793},{"parent":"TRule_values_stmt","rule":"TRule_values_stmt.Rule_values_source_row_list2","sum":1255365},{"parent":"TRule_values_stmt","rule":"TRule_values_stmt.Token1","sum":1255365},{"parent":"TRule_variant_arg","rule":"TRule_variant_arg.Block1","sum":356537},{"parent":"TRule_variant_arg","rule":"TRule_variant_arg.Rule_type_name_or_bind2","sum":18367191},{"parent":"TRule_variant_arg.TBlock1","rule":"TRule_variant_arg.TBlock1.Rule_type_name_tag1","sum":356537},{"parent":"TRule_variant_arg.TBlock1","rule":"TRule_variant_arg.TBlock1.Token2","sum":356537},{"parent":"TRule_view_name","rule":"TRule_view_name.Alt_view_name1","sum":1309369},{"parent":"TRule_view_name.TAlt1","rule":"TRule_view_name.TAlt1.Rule_an_id1","sum":1309369},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Rule_expr2","sum":158362267},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Rule_expr4","sum":158362267},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Token1","sum":158362267},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Token3","sum":158362267},{"parent":"TRule_window_clause","rule":"TRule_window_clause.Rule_window_definition_list2","sum":13593427},{"parent":"TRule_window_clause","rule":"TRule_window_clause.Token1","sum":13593427},{"parent":"TRule_window_definition","rule":"TRule_window_definition.Rule_new_window_name1","sum":14168963},{"parent":"TRule_window_definition","rule":"TRule_window_definition.Rule_window_specification3","sum":14168963},{"parent":"TRule_window_definition","rule":"TRule_window_definition.Token2","sum":14168963},{"parent":"TRule_window_definition_list","rule":"TRule_window_definition_list.Block2","sum":435449},{"parent":"TRule_window_definition_list","rule":"TRule_window_definition_list.Rule_window_definition1","sum":13593427},{"parent":"TRule_window_definition_list.TBlock2","rule":"TRule_window_definition_list.TBlock2.Rule_window_definition2","sum":575536},{"parent":"TRule_window_definition_list.TBlock2","rule":"TRule_window_definition_list.TBlock2.Token1","sum":575536},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Rule_window_frame_bound2","sum":2317924},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Rule_window_frame_bound4","sum":2317924},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Token1","sum":2317924},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Token3","sum":2317924},{"parent":"TRule_window_frame_bound","rule":"TRule_window_frame_bound.Alt_window_frame_bound1","sum":1326003},{"parent":"TRule_window_frame_bound","rule":"TRule_window_frame_bound.Alt_window_frame_bound2","sum":3367748},{"parent":"TRule_window_frame_bound.TAlt1","rule":"TRule_window_frame_bound.TAlt1.Token1","sum":1326003},{"parent":"TRule_window_frame_bound.TAlt1","rule":"TRule_window_frame_bound.TAlt1.Token2","sum":1326003},{"parent":"TRule_window_frame_bound.TAlt2","rule":"TRule_window_frame_bound.TAlt2.Block1","sum":3367748},{"parent":"TRule_window_frame_bound.TAlt2","rule":"TRule_window_frame_bound.TAlt2.Token2","sum":3367748},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1","rule":"TRule_window_frame_bound.TAlt2.TBlock1.Alt1","sum":1114481},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1","rule":"TRule_window_frame_bound.TAlt2.TBlock1.Alt2","sum":2253267},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt1","rule":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt1.Rule_expr1","sum":1114481},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt2","rule":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt2.Token1","sum":2253267},{"parent":"TRule_window_frame_clause","rule":"TRule_window_frame_clause.Rule_window_frame_extent2","sum":2375827},{"parent":"TRule_window_frame_clause","rule":"TRule_window_frame_clause.Rule_window_frame_units1","sum":2375827},{"parent":"TRule_window_frame_extent","rule":"TRule_window_frame_extent.Alt_window_frame_extent1","sum":57903},{"parent":"TRule_window_frame_extent","rule":"TRule_window_frame_extent.Alt_window_frame_extent2","sum":2317924},{"parent":"TRule_window_frame_extent.TAlt1","rule":"TRule_window_frame_extent.TAlt1.Rule_window_frame_bound1","sum":57903},{"parent":"TRule_window_frame_extent.TAlt2","rule":"TRule_window_frame_extent.TAlt2.Rule_window_frame_between1","sum":2317924},{"parent":"TRule_window_frame_units","rule":"TRule_window_frame_units.Token1","sum":2375827},{"parent":"TRule_window_name","rule":"TRule_window_name.Rule_an_id_window1","sum":46670411},{"parent":"TRule_window_name_or_specification","rule":"TRule_window_name_or_specification.Alt_window_name_or_specification1","sum":32501448},{"parent":"TRule_window_name_or_specification","rule":"TRule_window_name_or_specification.Alt_window_name_or_specification2","sum":12841339},{"parent":"TRule_window_name_or_specification.TAlt1","rule":"TRule_window_name_or_specification.TAlt1.Rule_window_name1","sum":32501448},{"parent":"TRule_window_name_or_specification.TAlt2","rule":"TRule_window_name_or_specification.TAlt2.Rule_window_specification1","sum":12841339},{"parent":"TRule_window_order_clause","rule":"TRule_window_order_clause.Rule_order_by_clause1","sum":19022200},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Block2","sum":51775},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Rule_named_expr_list4","sum":21811809},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Token1","sum":21811809},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Token3","sum":21811809},{"parent":"TRule_window_partition_clause.TBlock2","rule":"TRule_window_partition_clause.TBlock2.Token1","sum":51775},{"parent":"TRule_window_specification","rule":"TRule_window_specification.Rule_window_specification_details2","sum":27010302},{"parent":"TRule_window_specification","rule":"TRule_window_specification.Token1","sum":27010302},{"parent":"TRule_window_specification","rule":"TRule_window_specification.Token3","sum":27010302},{"parent":"TRule_window_specification_details","rule":"TRule_window_specification_details.Block2","sum":21811808},{"parent":"TRule_window_specification_details","rule":"TRule_window_specification_details.Block3","sum":19022200},{"parent":"TRule_window_specification_details","rule":"TRule_window_specification_details.Block4","sum":2375827},{"parent":"TRule_window_specification_details.TBlock2","rule":"TRule_window_specification_details.TBlock2.Rule_window_partition_clause1","sum":21811808},{"parent":"TRule_window_specification_details.TBlock3","rule":"TRule_window_specification_details.TBlock3.Rule_window_order_clause1","sum":19022200},{"parent":"TRule_window_specification_details.TBlock4","rule":"TRule_window_specification_details.TBlock4.Rule_window_frame_clause1","sum":2375827},{"parent":"TRule_without_column_list","rule":"TRule_without_column_list.Block2","sum":9212455},{"parent":"TRule_without_column_list","rule":"TRule_without_column_list.Block3","sum":1313805},{"parent":"TRule_without_column_list","rule":"TRule_without_column_list.Rule_without_column_name1","sum":24912265},{"parent":"TRule_without_column_list.TBlock2","rule":"TRule_without_column_list.TBlock2.Rule_without_column_name2","sum":29254680},{"parent":"TRule_without_column_list.TBlock2","rule":"TRule_without_column_list.TBlock2.Token1","sum":29254680},{"parent":"TRule_without_column_list.TBlock3","rule":"TRule_without_column_list.TBlock3.Token1","sum":1313805},{"parent":"TRule_without_column_name","rule":"TRule_without_column_name.Alt_without_column_name1","sum":30862610},{"parent":"TRule_without_column_name","rule":"TRule_without_column_name.Alt_without_column_name2","sum":23304335},{"parent":"TRule_without_column_name.TAlt1","rule":"TRule_without_column_name.TAlt1.Rule_an_id1","sum":30862610},{"parent":"TRule_without_column_name.TAlt1","rule":"TRule_without_column_name.TAlt1.Rule_an_id3","sum":30862610},{"parent":"TRule_without_column_name.TAlt1","rule":"TRule_without_column_name.TAlt1.Token2","sum":30862610},{"parent":"TRule_without_column_name.TAlt2","rule":"TRule_without_column_name.TAlt2.Rule_an_id_without1","sum":23304335},{"parent":"TRule_xor_subexpr","rule":"TRule_xor_subexpr.Block2","sum":1096201223},{"parent":"TRule_xor_subexpr","rule":"TRule_xor_subexpr.Rule_eq_subexpr1","sum":14287247191},{"parent":"TRule_xor_subexpr.TBlock2","rule":"TRule_xor_subexpr.TBlock2.Rule_cond_expr1","sum":1096201223},{"parent":"TSQLv1ParserAST","rule":"TSQLv1ParserAST.Rule_sql_query","sum":320376481},{"parent":"TYPE","rule":"BIGINT","sum":6966},{"parent":"TYPE","rule":"BOOL","sum":109222},{"parent":"TYPE","rule":"BYTEs","sum":1},{"parent":"TYPE","rule":"BigInt","sum":210},{"parent":"TYPE","rule":"Bool","sum":9307137},{"parent":"TYPE","rule":"Bytes","sum":422554},{"parent":"TYPE","rule":"DATE","sum":1255109},{"parent":"TYPE","rule":"DATETIME","sum":66830},{"parent":"TYPE","rule":"DATETime","sum":2},{"parent":"TYPE","rule":"DATEtIME","sum":1},{"parent":"TYPE","rule":"DATEtime","sum":34},{"parent":"TYPE","rule":"DAte","sum":9228},{"parent":"TYPE","rule":"DAteTime","sum":54},{"parent":"TYPE","rule":"DAtetime","sum":662},{"parent":"TYPE","rule":"DOUBLE","sum":1353329},{"parent":"TYPE","rule":"DOUBLe","sum":1},{"parent":"TYPE","rule":"DOUBle","sum":1},{"parent":"TYPE","rule":"DOUble","sum":3},{"parent":"TYPE","rule":"DOuble","sum":2152},{"parent":"TYPE","rule":"DaTeTime","sum":1},{"parent":"TYPE","rule":"Date","sum":20644045},{"parent":"TYPE","rule":"Date32","sum":64},{"parent":"TYPE","rule":"DateTIME","sum":19},{"parent":"TYPE","rule":"DateTIme","sum":112},{"parent":"TYPE","rule":"DateTime","sum":5002254},{"parent":"TYPE","rule":"DateTime64","sum":8},{"parent":"TYPE","rule":"DatetIME","sum":35},{"parent":"TYPE","rule":"Datetime","sum":3255820},{"parent":"TYPE","rule":"Datetime64","sum":37},{"parent":"TYPE","rule":"DoubLe","sum":13},{"parent":"TYPE","rule":"Double","sum":30117756},{"parent":"TYPE","rule":"EmptyDict","sum":28},{"parent":"TYPE","rule":"EmptyList","sum":28},{"parent":"TYPE","rule":"FLOAT","sum":191305},{"parent":"TYPE","rule":"FLoat","sum":3421},{"parent":"TYPE","rule":"FlOAT","sum":15},{"parent":"TYPE","rule":"FloaT","sum":326},{"parent":"TYPE","rule":"Float","sum":7088128},{"parent":"TYPE","rule":"Generic","sum":3},{"parent":"TYPE","rule":"INT","sum":418522},{"parent":"TYPE","rule":"INT16","sum":9450},{"parent":"TYPE","rule":"INT32","sum":140314},{"parent":"TYPE","rule":"INT64","sum":4150130},{"parent":"TYPE","rule":"INT8","sum":1830},{"parent":"TYPE","rule":"INTEGER","sum":73403},{"parent":"TYPE","rule":"INTERVAL","sum":10615},{"parent":"TYPE","rule":"INt16","sum":1},{"parent":"TYPE","rule":"INt32","sum":1179},{"parent":"TYPE","rule":"INt64","sum":38184},{"parent":"TYPE","rule":"InT32","sum":1},{"parent":"TYPE","rule":"Int","sum":523543},{"parent":"TYPE","rule":"Int16","sum":908526},{"parent":"TYPE","rule":"Int32","sum":13813761},{"parent":"TYPE","rule":"Int64","sum":47376804},{"parent":"TYPE","rule":"Int8","sum":1010275},{"parent":"TYPE","rule":"Integer","sum":468078},{"parent":"TYPE","rule":"Interval","sum":204821},{"parent":"TYPE","rule":"Interval64","sum":34},{"parent":"TYPE","rule":"JSON","sum":1738740},{"parent":"TYPE","rule":"JSONDocument","sum":257},{"parent":"TYPE","rule":"JSOn","sum":1},{"parent":"TYPE","rule":"JSon","sum":2},{"parent":"TYPE","rule":"Json","sum":5484795},{"parent":"TYPE","rule":"JsonDocument","sum":16958},{"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":1279},{"parent":"TYPE","rule":"PgPolygon","sum":639},{"parent":"TYPE","rule":"PgText","sum":420},{"parent":"TYPE","rule":"PgTimestamp","sum":1885},{"parent":"TYPE","rule":"PgVarChar","sum":1},{"parent":"TYPE","rule":"PgVarchar","sum":231},{"parent":"TYPE","rule":"STRING","sum":2679012},{"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":335343094},{"parent":"TYPE","rule":"TEXT","sum":20804},{"parent":"TYPE","rule":"TIMESTAMP","sum":316572},{"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":196975},{"parent":"TYPE","rule":"TimeStamp","sum":295674},{"parent":"TYPE","rule":"Timestamp","sum":5991764},{"parent":"TYPE","rule":"Timestamp64","sum":488},{"parent":"TYPE","rule":"TzDATE","sum":5},{"parent":"TYPE","rule":"TzDate","sum":48317},{"parent":"TYPE","rule":"TzDateTime","sum":43762},{"parent":"TYPE","rule":"TzDatetime","sum":672593},{"parent":"TYPE","rule":"TzTimeStamp","sum":6},{"parent":"TYPE","rule":"TzTimestamp","sum":8108},{"parent":"TYPE","rule":"TzTimestamp64","sum":1},{"parent":"TYPE","rule":"Tzdate","sum":5},{"parent":"TYPE","rule":"Tzdatetime","sum":4},{"parent":"TYPE","rule":"UINT16","sum":1236},{"parent":"TYPE","rule":"UINT32","sum":423872},{"parent":"TYPE","rule":"UINT64","sum":589596},{"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":130050},{"parent":"TYPE","rule":"UInt32","sum":7336808},{"parent":"TYPE","rule":"UInt64","sum":9466348},{"parent":"TYPE","rule":"UInt8","sum":153035},{"parent":"TYPE","rule":"UNIT","sum":756},{"parent":"TYPE","rule":"UTF8","sum":268052},{"parent":"TYPE","rule":"UTf8","sum":144},{"parent":"TYPE","rule":"UUID","sum":1243345},{"parent":"TYPE","rule":"UiNt32","sum":4},{"parent":"TYPE","rule":"Uint16","sum":333960},{"parent":"TYPE","rule":"Uint32","sum":18494844},{"parent":"TYPE","rule":"Uint64","sum":32781958},{"parent":"TYPE","rule":"Uint8","sum":2330345},{"parent":"TYPE","rule":"Unit","sum":1145},{"parent":"TYPE","rule":"Utf8","sum":14377035},{"parent":"TYPE","rule":"Uuid","sum":43670},{"parent":"TYPE","rule":"VARCHAR","sum":517616},{"parent":"TYPE","rule":"Varchar","sum":2},{"parent":"TYPE","rule":"Void","sum":11091},{"parent":"TYPE","rule":"XML","sum":21},{"parent":"TYPE","rule":"YSON","sum":226731},{"parent":"TYPE","rule":"YSon","sum":341},{"parent":"TYPE","rule":"Yson","sum":17664858},{"parent":"TYPE","rule":"_PgMoney","sum":3},{"parent":"TYPE","rule":"bigint","sum":8828},{"parent":"TYPE","rule":"bool","sum":936190},{"parent":"TYPE","rule":"bytes","sum":35135},{"parent":"TYPE","rule":"dATE","sum":1},{"parent":"TYPE","rule":"daTE","sum":5},{"parent":"TYPE","rule":"date","sum":32420506},{"parent":"TYPE","rule":"date32","sum":41},{"parent":"TYPE","rule":"dateTIME","sum":8},{"parent":"TYPE","rule":"dateTime","sum":43592},{"parent":"TYPE","rule":"datetime","sum":7103828},{"parent":"TYPE","rule":"datetime64","sum":61},{"parent":"TYPE","rule":"double","sum":6941462},{"parent":"TYPE","rule":"emptyList","sum":1},{"parent":"TYPE","rule":"float","sum":4717598},{"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":1120407},{"parent":"TYPE","rule":"int16","sum":79087},{"parent":"TYPE","rule":"int32","sum":3210506},{"parent":"TYPE","rule":"int64","sum":8446097},{"parent":"TYPE","rule":"int8","sum":42063},{"parent":"TYPE","rule":"integer","sum":135781},{"parent":"TYPE","rule":"interval","sum":402198},{"parent":"TYPE","rule":"json","sum":1061189},{"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":45772323},{"parent":"TYPE","rule":"text","sum":4570081},{"parent":"TYPE","rule":"timeStamp","sum":82},{"parent":"TYPE","rule":"timestamp","sum":21902003},{"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":18},{"parent":"TYPE","rule":"uInt32","sum":12235},{"parent":"TYPE","rule":"uInt64","sum":2529},{"parent":"TYPE","rule":"uInt8","sum":52},{"parent":"TYPE","rule":"uint16","sum":27242},{"parent":"TYPE","rule":"uint32","sum":5311919},{"parent":"TYPE","rule":"uint64","sum":8655463},{"parent":"TYPE","rule":"uint8","sum":159908},{"parent":"TYPE","rule":"unit","sum":693697},{"parent":"TYPE","rule":"utf8","sum":4600990},{"parent":"TYPE","rule":"uuid","sum":2983539},{"parent":"TYPE","rule":"varchar","sum":58732},{"parent":"TYPE","rule":"void","sum":1},{"parent":"TYPE","rule":"xml","sum":32455},{"parent":"TYPE","rule":"yaml","sum":144},{"parent":"TYPE","rule":"yson","sum":1127366}]
+[{"parent":"FUNC","rule":"ABC","sum":1},{"parent":"FUNC","rule":"ABS","sum":3117622},{"parent":"FUNC","rule":"ADAPTIVE_WARD_HISTOGRAM","sum":1},{"parent":"FUNC","rule":"ADDTIMEZONE","sum":405},{"parent":"FUNC","rule":"AGGLIST","sum":1245},{"parent":"FUNC","rule":"AGGList","sum":1},{"parent":"FUNC","rule":"AGGREATE_LIST","sum":2},{"parent":"FUNC","rule":"AGGREGATELIST","sum":71},{"parent":"FUNC","rule":"AGGREGATE_BY","sum":1601982},{"parent":"FUNC","rule":"AGGREGATE_LIST","sum":19737967},{"parent":"FUNC","rule":"AGGREGATE_LIST_","sum":2},{"parent":"FUNC","rule":"AGGREGATE_LIST_DISTINCT","sum":12914484},{"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":774},{"parent":"FUNC","rule":"AGGREGATE_LIST_distINCT","sum":4},{"parent":"FUNC","rule":"AGGREGATE_LIST_distinct","sum":18948},{"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":9},{"parent":"FUNC","rule":"AGGREGATE_list","sum":321},{"parent":"FUNC","rule":"AGGREGATE_list_distinct","sum":1},{"parent":"FUNC","rule":"AGGREGATIONFACTORY","sum":57},{"parent":"FUNC","rule":"AGGREGATION_FACTORY","sum":66558},{"parent":"FUNC","rule":"AGGREGate_List","sum":2},{"parent":"FUNC","rule":"AGGR_LIST","sum":2994},{"parent":"FUNC","rule":"AGGR_LIST_DISTINCT","sum":44284},{"parent":"FUNC","rule":"AGGReGATE_LIST","sum":3},{"parent":"FUNC","rule":"AGGReGate_list","sum":1},{"parent":"FUNC","rule":"AGG_LIST","sum":5165435},{"parent":"FUNC","rule":"AGG_LIST_","sum":5},{"parent":"FUNC","rule":"AGG_LIST_DISTINCT","sum":2880462},{"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":6764},{"parent":"FUNC","rule":"AGG_List_DISTINCT","sum":39},{"parent":"FUNC","rule":"AGG_List_Distinct","sum":914},{"parent":"FUNC","rule":"AGG_List_distinct","sum":103},{"parent":"FUNC","rule":"AGG_lIST_DISTINCT","sum":5},{"parent":"FUNC","rule":"AGG_list","sum":17168},{"parent":"FUNC","rule":"AGG_list_DISTINCT","sum":3036},{"parent":"FUNC","rule":"AGG_list_distinct","sum":799},{"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","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":198},{"parent":"FUNC","rule":"ASDict","sum":618},{"parent":"FUNC","rule":"ASEnum","sum":88},{"parent":"FUNC","rule":"ASIN","sum":2},{"parent":"FUNC","rule":"ASLIST","sum":27390},{"parent":"FUNC","rule":"ASLIst","sum":4},{"parent":"FUNC","rule":"ASList","sum":23161},{"parent":"FUNC","rule":"ASListStrict","sum":3},{"parent":"FUNC","rule":"ASSET","sum":17},{"parent":"FUNC","rule":"ASSTRUCT","sum":2732},{"parent":"FUNC","rule":"ASSet","sum":5},{"parent":"FUNC","rule":"ASStruct","sum":2498},{"parent":"FUNC","rule":"ASTAGGED","sum":15},{"parent":"FUNC","rule":"ASTAgged","sum":3},{"parent":"FUNC","rule":"ASTUPLE","sum":1574},{"parent":"FUNC","rule":"ASTagged","sum":63},{"parent":"FUNC","rule":"ASTuple","sum":5936},{"parent":"FUNC","rule":"AS_DICT","sum":6},{"parent":"FUNC","rule":"AS_LIST","sum":136},{"parent":"FUNC","rule":"AS_STRUCT","sum":13468},{"parent":"FUNC","rule":"AS_TABLE","sum":33},{"parent":"FUNC","rule":"AS_TUPLE","sum":853},{"parent":"FUNC","rule":"ASdict","sum":4},{"parent":"FUNC","rule":"ASlist","sum":1037},{"parent":"FUNC","rule":"ASstruct","sum":41},{"parent":"FUNC","rule":"AStagged","sum":3},{"parent":"FUNC","rule":"AStuple","sum":398},{"parent":"FUNC","rule":"AVG","sum":9148142},{"parent":"FUNC","rule":"AVGIF","sum":19},{"parent":"FUNC","rule":"AVG_IF","sum":734942},{"parent":"FUNC","rule":"AVG_If","sum":8},{"parent":"FUNC","rule":"AVG_if","sum":14181},{"parent":"FUNC","rule":"AVg","sum":4},{"parent":"FUNC","rule":"Abs","sum":323401},{"parent":"FUNC","rule":"AdaptiveDistanceHistogramCDF","sum":1},{"parent":"FUNC","rule":"AdaptiveWardHistogram","sum":1},{"parent":"FUNC","rule":"AdaptiveWardHistogramCDF","sum":3},{"parent":"FUNC","rule":"AdaptiveWeightHistogram","sum":57359},{"parent":"FUNC","rule":"AddMember","sum":885884},{"parent":"FUNC","rule":"AddTimeZone","sum":518426},{"parent":"FUNC","rule":"AddTimezone","sum":12027545},{"parent":"FUNC","rule":"Addtimezone","sum":60},{"parent":"FUNC","rule":"AggLIst","sum":1},{"parent":"FUNC","rule":"AggList","sum":20909},{"parent":"FUNC","rule":"AggListDistinct","sum":91},{"parent":"FUNC","rule":"Agg_LIST","sum":60},{"parent":"FUNC","rule":"Agg_LIST_DISTINCT","sum":30},{"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":129856},{"parent":"FUNC","rule":"Agg_List_","sum":8},{"parent":"FUNC","rule":"Agg_List_DISTINCT","sum":732},{"parent":"FUNC","rule":"Agg_List_Distinct","sum":2466},{"parent":"FUNC","rule":"Agg_List_distinct","sum":4},{"parent":"FUNC","rule":"Agg_list","sum":35750},{"parent":"FUNC","rule":"Agg_list_distinct","sum":8138},{"parent":"FUNC","rule":"Aggergate_List","sum":1},{"parent":"FUNC","rule":"Agglist","sum":93},{"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":42482},{"parent":"FUNC","rule":"AggregateFlatten","sum":52498},{"parent":"FUNC","rule":"AggregateList","sum":40425},{"parent":"FUNC","rule":"AggregateListDistinct","sum":7681},{"parent":"FUNC","rule":"AggregateTransformInput","sum":25567},{"parent":"FUNC","rule":"AggregateTransformOutput","sum":44772},{"parent":"FUNC","rule":"Aggregate_BY","sum":237},{"parent":"FUNC","rule":"Aggregate_By","sum":136153},{"parent":"FUNC","rule":"Aggregate_LIST","sum":848},{"parent":"FUNC","rule":"Aggregate_LIST_DISTINCT","sum":2},{"parent":"FUNC","rule":"Aggregate_LIst","sum":1},{"parent":"FUNC","rule":"Aggregate_List","sum":346231},{"parent":"FUNC","rule":"Aggregate_List_Distinct","sum":5261},{"parent":"FUNC","rule":"Aggregate_List_distinct","sum":1372},{"parent":"FUNC","rule":"Aggregate_by","sum":79},{"parent":"FUNC","rule":"Aggregate_list","sum":230560},{"parent":"FUNC","rule":"Aggregate_list_DISTINCT","sum":36},{"parent":"FUNC","rule":"Aggregate_list_Distinct","sum":11},{"parent":"FUNC","rule":"Aggregate_list_distinct","sum":202995},{"parent":"FUNC","rule":"AggregationFactory","sum":1519387},{"parent":"FUNC","rule":"Apply","sum":1},{"parent":"FUNC","rule":"AsAtom","sum":688505},{"parent":"FUNC","rule":"AsDict","sum":2933238},{"parent":"FUNC","rule":"AsDictStrict","sum":4468},{"parent":"FUNC","rule":"AsEnum","sum":51781},{"parent":"FUNC","rule":"AsLIST","sum":917},{"parent":"FUNC","rule":"AsLIst","sum":2706},{"parent":"FUNC","rule":"AsLisT","sum":1511},{"parent":"FUNC","rule":"AsList","sum":17378189},{"parent":"FUNC","rule":"AsListStrict","sum":86759},{"parent":"FUNC","rule":"AsListstrict","sum":1},{"parent":"FUNC","rule":"AsSTruct","sum":374},{"parent":"FUNC","rule":"AsSet","sum":1600254},{"parent":"FUNC","rule":"AsSetStrict","sum":11394},{"parent":"FUNC","rule":"AsStruct","sum":23604103},{"parent":"FUNC","rule":"AsTAgged","sum":265},{"parent":"FUNC","rule":"AsTUPLE","sum":456},{"parent":"FUNC","rule":"AsTUple","sum":270},{"parent":"FUNC","rule":"AsTable","sum":6},{"parent":"FUNC","rule":"AsTaggeD","sum":1},{"parent":"FUNC","rule":"AsTagged","sum":183710},{"parent":"FUNC","rule":"AsTuPle","sum":1},{"parent":"FUNC","rule":"AsTuple","sum":30446583},{"parent":"FUNC","rule":"AsTupleunwrap","sum":4},{"parent":"FUNC","rule":"AsVariant","sum":357832},{"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":813},{"parent":"FUNC","rule":"Asdict","sum":186},{"parent":"FUNC","rule":"AslIst","sum":14},{"parent":"FUNC","rule":"Aslist","sum":23969},{"parent":"FUNC","rule":"Asset","sum":49},{"parent":"FUNC","rule":"Asstruct","sum":420},{"parent":"FUNC","rule":"AssumeStrict","sum":2912},{"parent":"FUNC","rule":"Astagged","sum":172},{"parent":"FUNC","rule":"Astuple","sum":783},{"parent":"FUNC","rule":"AtomCode","sum":526010},{"parent":"FUNC","rule":"Avg","sum":139829},{"parent":"FUNC","rule":"Avg_IF","sum":162},{"parent":"FUNC","rule":"Avg_If","sum":131},{"parent":"FUNC","rule":"Avg_if","sum":225},{"parent":"FUNC","rule":"BIT_AND","sum":4},{"parent":"FUNC","rule":"BIT_OR","sum":39261},{"parent":"FUNC","rule":"BIT_XOR","sum":447227},{"parent":"FUNC","rule":"BOOL_AND","sum":266337},{"parent":"FUNC","rule":"BOOL_OR","sum":880188},{"parent":"FUNC","rule":"BOOL_XOR","sum":52},{"parent":"FUNC","rule":"BOOL_and","sum":2},{"parent":"FUNC","rule":"BOOl_OR","sum":382},{"parent":"FUNC","rule":"BOTTOM","sum":11557},{"parent":"FUNC","rule":"BOTTOM_BY","sum":47958},{"parent":"FUNC","rule":"BOTTOM_by","sum":2},{"parent":"FUNC","rule":"Bool","sum":1369},{"parent":"FUNC","rule":"Bool_And","sum":118},{"parent":"FUNC","rule":"Bool_OR","sum":6},{"parent":"FUNC","rule":"Bool_Or","sum":597},{"parent":"FUNC","rule":"Bool_and","sum":85},{"parent":"FUNC","rule":"Bool_or","sum":820},{"parent":"FUNC","rule":"Bottom","sum":276},{"parent":"FUNC","rule":"Bottom_BY","sum":10},{"parent":"FUNC","rule":"Bottom_By","sum":121},{"parent":"FUNC","rule":"Bottom_by","sum":1684},{"parent":"FUNC","rule":"ByteAt","sum":17504},{"parent":"FUNC","rule":"Bytes","sum":5},{"parent":"FUNC","rule":"CHAR_LENGTH","sum":391},{"parent":"FUNC","rule":"COALECSE","sum":1},{"parent":"FUNC","rule":"COALESCE","sum":52024758},{"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":2693},{"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":21278},{"parent":"FUNC","rule":"COS","sum":4},{"parent":"FUNC","rule":"COUNT","sum":52979386},{"parent":"FUNC","rule":"COUNTD","sum":4},{"parent":"FUNC","rule":"COUNTDISTINCTESTIMATE","sum":609},{"parent":"FUNC","rule":"COUNTDistinctEstimate","sum":7},{"parent":"FUNC","rule":"COUNTIF","sum":14890},{"parent":"FUNC","rule":"COUNT_","sum":1},{"parent":"FUNC","rule":"COUNT_IF","sum":24159766},{"parent":"FUNC","rule":"COUNT_IF_","sum":24},{"parent":"FUNC","rule":"COUNT_If","sum":12957},{"parent":"FUNC","rule":"COUNT_iF","sum":44},{"parent":"FUNC","rule":"COUNT_if","sum":19390},{"parent":"FUNC","rule":"COUNt","sum":1261},{"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":40},{"parent":"FUNC","rule":"COVAR","sum":2870},{"parent":"FUNC","rule":"COVARIANCE","sum":1523},{"parent":"FUNC","rule":"COVARIANCE_POPULATION","sum":69},{"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":187},{"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":6764},{"parent":"FUNC","rule":"CURRENTUTCDate","sum":109},{"parent":"FUNC","rule":"CURRENT_UTC_DATE","sum":8},{"parent":"FUNC","rule":"CUrrentUTCDate","sum":1},{"parent":"FUNC","rule":"CallableArgument","sum":10353},{"parent":"FUNC","rule":"CallableArgumentType","sum":18965},{"parent":"FUNC","rule":"CallableResultType","sum":114},{"parent":"FUNC","rule":"CallableType","sum":182912},{"parent":"FUNC","rule":"CallableTypeHandle","sum":5879},{"parent":"FUNC","rule":"Ceil","sum":3},{"parent":"FUNC","rule":"ChooseMember","sum":2},{"parent":"FUNC","rule":"ChooseMembers","sum":2490838},{"parent":"FUNC","rule":"Choosemembers","sum":21080},{"parent":"FUNC","rule":"ChosenMembers","sum":8},{"parent":"FUNC","rule":"ClearBit","sum":29489},{"parent":"FUNC","rule":"CoALESCE","sum":1},{"parent":"FUNC","rule":"CoUNT","sum":39},{"parent":"FUNC","rule":"CoUNT_IF","sum":17},{"parent":"FUNC","rule":"CoUNt","sum":2},{"parent":"FUNC","rule":"CoUnt","sum":2},{"parent":"FUNC","rule":"Coalesce","sum":728073},{"parent":"FUNC","rule":"Collect","sum":1},{"parent":"FUNC","rule":"CollectList","sum":1},{"parent":"FUNC","rule":"CombineMembers","sum":509813},{"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":395738},{"parent":"FUNC","rule":"CountDistinctEstimate","sum":156846},{"parent":"FUNC","rule":"CountIF","sum":81},{"parent":"FUNC","rule":"CountIf","sum":505},{"parent":"FUNC","rule":"Count_IF","sum":15957},{"parent":"FUNC","rule":"Count_If","sum":42244},{"parent":"FUNC","rule":"Count_if","sum":323414},{"parent":"FUNC","rule":"Countif","sum":12},{"parent":"FUNC","rule":"CurrentAuthenticatedUser","sum":90845},{"parent":"FUNC","rule":"CurrentDatetime","sum":1},{"parent":"FUNC","rule":"CurrentOperationId","sum":89419},{"parent":"FUNC","rule":"CurrentOperationSharedId","sum":5755},{"parent":"FUNC","rule":"CurrentTZDate","sum":530},{"parent":"FUNC","rule":"CurrentTZDateTime","sum":35},{"parent":"FUNC","rule":"CurrentTZDatetime","sum":532},{"parent":"FUNC","rule":"CurrentTZTimestamp","sum":173},{"parent":"FUNC","rule":"CurrentTZdatetime","sum":68},{"parent":"FUNC","rule":"CurrentTzDate","sum":1612551},{"parent":"FUNC","rule":"CurrentTzDateTime","sum":1464812},{"parent":"FUNC","rule":"CurrentTzDatetime","sum":1999616},{"parent":"FUNC","rule":"CurrentTzTimeStamp","sum":4322},{"parent":"FUNC","rule":"CurrentTzTimestamp","sum":1908235},{"parent":"FUNC","rule":"CurrentUTCDATE","sum":20},{"parent":"FUNC","rule":"CurrentUTCDAte","sum":38},{"parent":"FUNC","rule":"CurrentUTCDate","sum":918777},{"parent":"FUNC","rule":"CurrentUTCDateTime","sum":182824},{"parent":"FUNC","rule":"CurrentUTCDatetime","sum":131694},{"parent":"FUNC","rule":"CurrentUTCTimeStamp","sum":99},{"parent":"FUNC","rule":"CurrentUTCTimestamp","sum":451698},{"parent":"FUNC","rule":"CurrentUTCdate","sum":71243},{"parent":"FUNC","rule":"CurrentUTcDate","sum":70},{"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":19669061},{"parent":"FUNC","rule":"CurrentUtcDateTIME","sum":1},{"parent":"FUNC","rule":"CurrentUtcDateTime","sum":3211891},{"parent":"FUNC","rule":"CurrentUtcDatetime","sum":13829344},{"parent":"FUNC","rule":"CurrentUtcDttm","sum":3},{"parent":"FUNC","rule":"CurrentUtcTimeStamp","sum":59822},{"parent":"FUNC","rule":"CurrentUtcTimestamp","sum":15398914},{"parent":"FUNC","rule":"CurrentUtcdate","sum":11526},{"parent":"FUNC","rule":"CurrenttzDate","sum":352},{"parent":"FUNC","rule":"CurrenttzDatetime","sum":1},{"parent":"FUNC","rule":"CurrentutcDate","sum":21239},{"parent":"FUNC","rule":"CurrentutcDateTime","sum":625},{"parent":"FUNC","rule":"CurrentutcTimestamp","sum":4},{"parent":"FUNC","rule":"Currentutcdate","sum":1528},{"parent":"FUNC","rule":"Currentutcdatetime","sum":22633},{"parent":"FUNC","rule":"D","sum":1},{"parent":"FUNC","rule":"DATE","sum":128894},{"parent":"FUNC","rule":"DATEADD","sum":3},{"parent":"FUNC","rule":"DATEDIFF","sum":9},{"parent":"FUNC","rule":"DATETIME","sum":813},{"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":179},{"parent":"FUNC","rule":"DAtetime","sum":61},{"parent":"FUNC","rule":"DENSE_RANK","sum":274578},{"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":69657},{"parent":"FUNC","rule":"DataTypeComponents","sum":37388},{"parent":"FUNC","rule":"DataTypeHandle","sum":2},{"parent":"FUNC","rule":"Datatype","sum":2},{"parent":"FUNC","rule":"Date","sum":1776018},{"parent":"FUNC","rule":"Date32","sum":74},{"parent":"FUNC","rule":"DateTime","sum":436381},{"parent":"FUNC","rule":"DateTime64","sum":45},{"parent":"FUNC","rule":"Date_Diff","sum":1},{"parent":"FUNC","rule":"DatetimE","sum":8},{"parent":"FUNC","rule":"Datetime","sum":288347},{"parent":"FUNC","rule":"Datetime64","sum":6},{"parent":"FUNC","rule":"Decimal","sum":31498},{"parent":"FUNC","rule":"DenseRank","sum":27},{"parent":"FUNC","rule":"Dense_RANK","sum":1},{"parent":"FUNC","rule":"Dense_Rank","sum":55},{"parent":"FUNC","rule":"Dense_rank","sum":6},{"parent":"FUNC","rule":"DicTKeys","sum":2},{"parent":"FUNC","rule":"DictAggregate","sum":140410},{"parent":"FUNC","rule":"DictCOntains","sum":350},{"parent":"FUNC","rule":"DictContains","sum":2023914},{"parent":"FUNC","rule":"DictCreate","sum":69740},{"parent":"FUNC","rule":"DictHasItems","sum":610877},{"parent":"FUNC","rule":"DictHasitems","sum":261},{"parent":"FUNC","rule":"DictItems","sum":2559168},{"parent":"FUNC","rule":"DictKEYS","sum":12},{"parent":"FUNC","rule":"DictKEys","sum":1},{"parent":"FUNC","rule":"DictKeYS","sum":3},{"parent":"FUNC","rule":"DictKeyType","sum":941},{"parent":"FUNC","rule":"DictKeys","sum":2717527},{"parent":"FUNC","rule":"DictLOokup","sum":7},{"parent":"FUNC","rule":"DictLength","sum":1020216},{"parent":"FUNC","rule":"DictLookUP","sum":3},{"parent":"FUNC","rule":"DictLookUp","sum":62348},{"parent":"FUNC","rule":"DictLookup","sum":5982095},{"parent":"FUNC","rule":"DictPayLoads","sum":10275},{"parent":"FUNC","rule":"DictPayloadType","sum":210},{"parent":"FUNC","rule":"DictPayloads","sum":928102},{"parent":"FUNC","rule":"DictType","sum":503},{"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":19780},{"parent":"FUNC","rule":"Dictkeys","sum":1159},{"parent":"FUNC","rule":"Dictlength","sum":6},{"parent":"FUNC","rule":"Dictlookup","sum":76634},{"parent":"FUNC","rule":"Double","sum":33704},{"parent":"FUNC","rule":"DyNumber","sum":4},{"parent":"FUNC","rule":"EACH","sum":4},{"parent":"FUNC","rule":"ENDSWITH","sum":13893},{"parent":"FUNC","rule":"ENDsWith","sum":85},{"parent":"FUNC","rule":"ENSURE","sum":833225},{"parent":"FUNC","rule":"EOMONTH","sum":1},{"parent":"FUNC","rule":"EmptyDict","sum":450},{"parent":"FUNC","rule":"EmptyDictTypeHandle","sum":3},{"parent":"FUNC","rule":"EmptyList","sum":23618},{"parent":"FUNC","rule":"Emptydict","sum":6},{"parent":"FUNC","rule":"EndsWIth","sum":870},{"parent":"FUNC","rule":"EndsWith","sum":1580550},{"parent":"FUNC","rule":"Endswith","sum":19806},{"parent":"FUNC","rule":"Ensure","sum":1438138},{"parent":"FUNC","rule":"EnsureConvertibleTo","sum":2062},{"parent":"FUNC","rule":"EnsureType","sum":229200},{"parent":"FUNC","rule":"EvaluateAtom","sum":429},{"parent":"FUNC","rule":"EvaluateCode","sum":465798},{"parent":"FUNC","rule":"EvaluateExpr","sum":902167},{"parent":"FUNC","rule":"EvaluateType","sum":122971},{"parent":"FUNC","rule":"ExpandStruct","sum":269664},{"parent":"FUNC","rule":"ExtractUkropCtx","sum":1},{"parent":"FUNC","rule":"FCatBoostUserActivityOnPage","sum":2},{"parent":"FUNC","rule":"FIND","sum":5651098},{"parent":"FUNC","rule":"FIRST","sum":3},{"parent":"FUNC","rule":"FIRST_VALUE","sum":8949141},{"parent":"FUNC","rule":"FIRST_value","sum":831},{"parent":"FUNC","rule":"FIRsT_VALUE","sum":1},{"parent":"FUNC","rule":"FIleContent","sum":1},{"parent":"FUNC","rule":"FLATTEN","sum":9},{"parent":"FUNC","rule":"FLOAT","sum":5},{"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":55},{"parent":"FUNC","rule":"FileContent","sum":2391991},{"parent":"FUNC","rule":"FilePath","sum":1452670},{"parent":"FUNC","rule":"Filecontent","sum":11712},{"parent":"FUNC","rule":"Filepath","sum":10},{"parent":"FUNC","rule":"FinD","sum":16},{"parent":"FUNC","rule":"Find","sum":322130},{"parent":"FUNC","rule":"FirsT_VALUE","sum":3},{"parent":"FUNC","rule":"First_VALUE","sum":10},{"parent":"FUNC","rule":"First_Value","sum":28},{"parent":"FUNC","rule":"First_value","sum":180},{"parent":"FUNC","rule":"FlattenMembers","sum":109646},{"parent":"FUNC","rule":"Float","sum":12519},{"parent":"FUNC","rule":"FoldMap","sum":13},{"parent":"FUNC","rule":"FolderPath","sum":9918},{"parent":"FUNC","rule":"ForceRemoveMember","sum":403616},{"parent":"FUNC","rule":"ForceRemoveMembers","sum":1087165},{"parent":"FUNC","rule":"ForceRenameMembers","sum":64404},{"parent":"FUNC","rule":"ForceSpreadMembers","sum":116529},{"parent":"FUNC","rule":"ForceSpreadmembers","sum":4},{"parent":"FUNC","rule":"Format","sum":1},{"parent":"FUNC","rule":"FormatCode","sum":682},{"parent":"FUNC","rule":"FormatType","sum":455855},{"parent":"FUNC","rule":"FormatTypeDiff","sum":821},{"parent":"FUNC","rule":"FormatTypeDiffPretty","sum":103},{"parent":"FUNC","rule":"Formattype","sum":101},{"parent":"FUNC","rule":"FromBytes","sum":99585},{"parent":"FUNC","rule":"FromPg","sum":4898},{"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":1250611},{"parent":"FUNC","rule":"GETDATE","sum":1},{"parent":"FUNC","rule":"GREATEST","sum":390343},{"parent":"FUNC","rule":"GROUPING","sum":71960},{"parent":"FUNC","rule":"GROUPINg","sum":4},{"parent":"FUNC","rule":"GROUP_CONCAT","sum":1},{"parent":"FUNC","rule":"GatherMembers","sum":1479034},{"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":6047},{"parent":"FUNC","rule":"Grouping","sum":243},{"parent":"FUNC","rule":"HISTOGRAM","sum":276451},{"parent":"FUNC","rule":"HISTOGRAMCDF","sum":422},{"parent":"FUNC","rule":"HISTOGRAMCdf","sum":47},{"parent":"FUNC","rule":"HISTOGRAM_CDF","sum":3},{"parent":"FUNC","rule":"HISTOGRAMcdf","sum":2},{"parent":"FUNC","rule":"HISTOGrAM","sum":44},{"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":12389},{"parent":"FUNC","rule":"HOP_END","sum":16},{"parent":"FUNC","rule":"HOP_START","sum":4},{"parent":"FUNC","rule":"Histogram","sum":35328},{"parent":"FUNC","rule":"HistogramCDF","sum":507},{"parent":"FUNC","rule":"HistogramCdf","sum":34},{"parent":"FUNC","rule":"Histogram_CDF","sum":57},{"parent":"FUNC","rule":"Histogramcdf","sum":1},{"parent":"FUNC","rule":"Hll","sum":1903},{"parent":"FUNC","rule":"HyperLogLog","sum":3798},{"parent":"FUNC","rule":"IF","sum":75622624},{"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":890810},{"parent":"FUNC","rule":"INterval","sum":763},{"parent":"FUNC","rule":"If","sum":1096955},{"parent":"FUNC","rule":"IfNull","sum":6},{"parent":"FUNC","rule":"InstanceOf","sum":248569},{"parent":"FUNC","rule":"Int","sum":1},{"parent":"FUNC","rule":"Int16","sum":37},{"parent":"FUNC","rule":"Int32","sum":32553},{"parent":"FUNC","rule":"Int64","sum":3648},{"parent":"FUNC","rule":"Int8","sum":302},{"parent":"FUNC","rule":"InterVal","sum":4},{"parent":"FUNC","rule":"Interva","sum":1},{"parent":"FUNC","rule":"Interval","sum":16089312},{"parent":"FUNC","rule":"Interval64","sum":2},{"parent":"FUNC","rule":"IntervalFromDays","sum":8},{"parent":"FUNC","rule":"IsInt64","sum":1},{"parent":"FUNC","rule":"JSON","sum":70},{"parent":"FUNC","rule":"JUST","sum":128739},{"parent":"FUNC","rule":"Join","sum":1},{"parent":"FUNC","rule":"JoinTableRow","sum":1323324},{"parent":"FUNC","rule":"JoinTablerow","sum":721},{"parent":"FUNC","rule":"JointableRow","sum":1},{"parent":"FUNC","rule":"Json","sum":54542},{"parent":"FUNC","rule":"JsonDocument","sum":7},{"parent":"FUNC","rule":"Just","sum":6603059},{"parent":"FUNC","rule":"LAG","sum":4063149},{"parent":"FUNC","rule":"LAST","sum":1},{"parent":"FUNC","rule":"LAST_VALUE","sum":1351241},{"parent":"FUNC","rule":"LAST_value","sum":2},{"parent":"FUNC","rule":"LEAD","sum":1661796},{"parent":"FUNC","rule":"LEAST","sum":428259},{"parent":"FUNC","rule":"LEFT","sum":3},{"parent":"FUNC","rule":"LEFT_SHIFT","sum":1},{"parent":"FUNC","rule":"LEN","sum":1687768},{"parent":"FUNC","rule":"LENGTH","sum":3859013},{"parent":"FUNC","rule":"LENgth","sum":23},{"parent":"FUNC","rule":"LEngth","sum":12},{"parent":"FUNC","rule":"LIKELY","sum":141121},{"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":3038},{"parent":"FUNC","rule":"LISTANY","sum":103},{"parent":"FUNC","rule":"LISTAVG","sum":32},{"parent":"FUNC","rule":"LISTAny","sum":10},{"parent":"FUNC","rule":"LISTCOLLECT","sum":1},{"parent":"FUNC","rule":"LISTCONCAT","sum":1512},{"parent":"FUNC","rule":"LISTENUMERATE","sum":3},{"parent":"FUNC","rule":"LISTEXTEND","sum":16},{"parent":"FUNC","rule":"LISTFILTER","sum":1632},{"parent":"FUNC","rule":"LISTFLATTEN","sum":4280},{"parent":"FUNC","rule":"LISTFROMRANGE","sum":1489},{"parent":"FUNC","rule":"LISTHAS","sum":28962},{"parent":"FUNC","rule":"LISTHASITEMS","sum":2097},{"parent":"FUNC","rule":"LISTHASItems","sum":1},{"parent":"FUNC","rule":"LISTHEAD","sum":18146},{"parent":"FUNC","rule":"LISTHas","sum":9},{"parent":"FUNC","rule":"LISTHead","sum":2},{"parent":"FUNC","rule":"LISTLAST","sum":1569},{"parent":"FUNC","rule":"LISTLENGTH","sum":48412},{"parent":"FUNC","rule":"LISTLENGth","sum":5},{"parent":"FUNC","rule":"LISTLenGTH","sum":7},{"parent":"FUNC","rule":"LISTLength","sum":2149},{"parent":"FUNC","rule":"LISTMAP","sum":14343},{"parent":"FUNC","rule":"LISTMAX","sum":7817},{"parent":"FUNC","rule":"LISTMIN","sum":188},{"parent":"FUNC","rule":"LISTMap","sum":365},{"parent":"FUNC","rule":"LISTNOTNULL","sum":8600},{"parent":"FUNC","rule":"LISTREVERSE","sum":2},{"parent":"FUNC","rule":"LISTSKIP","sum":15},{"parent":"FUNC","rule":"LISTSORT","sum":7651},{"parent":"FUNC","rule":"LISTSORTASC","sum":1657},{"parent":"FUNC","rule":"LISTSORTDESC","sum":109},{"parent":"FUNC","rule":"LISTSUM","sum":172},{"parent":"FUNC","rule":"LISTSort","sum":19},{"parent":"FUNC","rule":"LISTSum","sum":6},{"parent":"FUNC","rule":"LISTTAKE","sum":261},{"parent":"FUNC","rule":"LISTUNIQ","sum":602},{"parent":"FUNC","rule":"LISTUniq","sum":26},{"parent":"FUNC","rule":"LISTZIP","sum":261},{"parent":"FUNC","rule":"LISTZIPALL","sum":305},{"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":356},{"parent":"FUNC","rule":"LIST_HAS","sum":2084},{"parent":"FUNC","rule":"LIST_HEAD","sum":100},{"parent":"FUNC","rule":"LIST_LAST","sum":54},{"parent":"FUNC","rule":"LIST_LENGTH","sum":2453},{"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":612},{"parent":"FUNC","rule":"LIST_SORT_DESC","sum":17},{"parent":"FUNC","rule":"LIST_SUM","sum":2},{"parent":"FUNC","rule":"LIST_TAKE","sum":2},{"parent":"FUNC","rule":"LIST_UNIQ","sum":349},{"parent":"FUNC","rule":"LIST_length","sum":1},{"parent":"FUNC","rule":"LISTfilter","sum":7},{"parent":"FUNC","rule":"LISTfromRange","sum":1424},{"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":343},{"parent":"FUNC","rule":"LIstMap","sum":1363},{"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":12209},{"parent":"FUNC","rule":"LambdaArgumentsCount","sum":32},{"parent":"FUNC","rule":"LambdaCode","sum":332931},{"parent":"FUNC","rule":"LastValue","sum":5},{"parent":"FUNC","rule":"Last_VALUE","sum":14},{"parent":"FUNC","rule":"Last_Value","sum":29},{"parent":"FUNC","rule":"Last_value","sum":106},{"parent":"FUNC","rule":"Lead","sum":11214},{"parent":"FUNC","rule":"Least","sum":2256},{"parent":"FUNC","rule":"Len","sum":93638},{"parent":"FUNC","rule":"LenGTH","sum":12},{"parent":"FUNC","rule":"Length","sum":1252963},{"parent":"FUNC","rule":"LiSTMAP","sum":2},{"parent":"FUNC","rule":"Likely","sum":21239},{"parent":"FUNC","rule":"LinearHISTOGRAM","sum":86},{"parent":"FUNC","rule":"LinearHistogram","sum":46243},{"parent":"FUNC","rule":"LinearHistogramCDF","sum":347},{"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":1539},{"parent":"FUNC","rule":"ListALl","sum":8},{"parent":"FUNC","rule":"ListANY","sum":1765},{"parent":"FUNC","rule":"ListAVG","sum":267},{"parent":"FUNC","rule":"ListAgg","sum":1},{"parent":"FUNC","rule":"ListAggregate","sum":424700},{"parent":"FUNC","rule":"ListAll","sum":266378},{"parent":"FUNC","rule":"ListAny","sum":1881837},{"parent":"FUNC","rule":"ListAppend","sum":1},{"parent":"FUNC","rule":"ListAvg","sum":547883},{"parent":"FUNC","rule":"ListCOncat","sum":2},{"parent":"FUNC","rule":"ListCode","sum":211101},{"parent":"FUNC","rule":"ListCollect","sum":904831},{"parent":"FUNC","rule":"ListConCat","sum":99},{"parent":"FUNC","rule":"ListConcat","sum":5492226},{"parent":"FUNC","rule":"ListCount","sum":1},{"parent":"FUNC","rule":"ListCreate","sum":1959588},{"parent":"FUNC","rule":"ListDistinct","sum":1},{"parent":"FUNC","rule":"ListEnumerate","sum":1403741},{"parent":"FUNC","rule":"ListExtEnd","sum":1},{"parent":"FUNC","rule":"ListExtend","sum":4385295},{"parent":"FUNC","rule":"ListExtendStrict","sum":94001},{"parent":"FUNC","rule":"ListExtract","sum":3364774},{"parent":"FUNC","rule":"ListFILTER","sum":572},{"parent":"FUNC","rule":"ListFIlter","sum":350},{"parent":"FUNC","rule":"ListFLatMap","sum":258},{"parent":"FUNC","rule":"ListFLatten","sum":580},{"parent":"FUNC","rule":"ListFROMRange","sum":5100},{"parent":"FUNC","rule":"ListFilteR","sum":4},{"parent":"FUNC","rule":"ListFilter","sum":17869998},{"parent":"FUNC","rule":"ListFirst","sum":3},{"parent":"FUNC","rule":"ListFlatMap","sum":908417},{"parent":"FUNC","rule":"ListFlatmap","sum":29272},{"parent":"FUNC","rule":"ListFlatten","sum":2832777},{"parent":"FUNC","rule":"ListFold","sum":235244},{"parent":"FUNC","rule":"ListFold1","sum":35769},{"parent":"FUNC","rule":"ListFold1Map","sum":3456},{"parent":"FUNC","rule":"ListFoldMap","sum":43538},{"parent":"FUNC","rule":"ListFromPython","sum":2},{"parent":"FUNC","rule":"ListFromRANGE","sum":23},{"parent":"FUNC","rule":"ListFromRAnge","sum":45},{"parent":"FUNC","rule":"ListFromRange","sum":3104241},{"parent":"FUNC","rule":"ListFromTuple","sum":59596},{"parent":"FUNC","rule":"ListFromTyple","sum":2},{"parent":"FUNC","rule":"ListFromrange","sum":12},{"parent":"FUNC","rule":"ListHAS","sum":364},{"parent":"FUNC","rule":"ListHAs","sum":564},{"parent":"FUNC","rule":"ListHAsItems","sum":26},{"parent":"FUNC","rule":"ListHEAD","sum":2},{"parent":"FUNC","rule":"ListHEad","sum":76},{"parent":"FUNC","rule":"ListHaS","sum":1},{"parent":"FUNC","rule":"ListHas","sum":20698096},{"parent":"FUNC","rule":"ListHasITems","sum":9},{"parent":"FUNC","rule":"ListHasItemhs","sum":1},{"parent":"FUNC","rule":"ListHasItems","sum":5153780},{"parent":"FUNC","rule":"ListHasitems","sum":358},{"parent":"FUNC","rule":"ListHeaD","sum":89},{"parent":"FUNC","rule":"ListHead","sum":10851548},{"parent":"FUNC","rule":"ListINdexOf","sum":2},{"parent":"FUNC","rule":"ListIndex","sum":1},{"parent":"FUNC","rule":"ListIndexOF","sum":10},{"parent":"FUNC","rule":"ListIndexOf","sum":1237904},{"parent":"FUNC","rule":"ListIndexof","sum":19},{"parent":"FUNC","rule":"ListItemType","sum":211208},{"parent":"FUNC","rule":"ListJoin","sum":3},{"parent":"FUNC","rule":"ListJsonDocument","sum":1},{"parent":"FUNC","rule":"ListLAst","sum":10},{"parent":"FUNC","rule":"ListLENGTH","sum":2171},{"parent":"FUNC","rule":"ListLEngth","sum":19},{"parent":"FUNC","rule":"ListLasT","sum":12},{"parent":"FUNC","rule":"ListLast","sum":5994907},{"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":18603350},{"parent":"FUNC","rule":"ListMAP","sum":227},{"parent":"FUNC","rule":"ListMAX","sum":10586},{"parent":"FUNC","rule":"ListMAp","sum":4887},{"parent":"FUNC","rule":"ListMAx","sum":1},{"parent":"FUNC","rule":"ListMIN","sum":52},{"parent":"FUNC","rule":"ListMIn","sum":1},{"parent":"FUNC","rule":"ListMaP","sum":1152},{"parent":"FUNC","rule":"ListMap","sum":35552895},{"parent":"FUNC","rule":"ListMax","sum":1417613},{"parent":"FUNC","rule":"ListMin","sum":816878},{"parent":"FUNC","rule":"ListNOTNull","sum":719},{"parent":"FUNC","rule":"ListNoTNull","sum":17},{"parent":"FUNC","rule":"ListNoTnull","sum":1002},{"parent":"FUNC","rule":"ListNonNull","sum":1},{"parent":"FUNC","rule":"ListNotNULL","sum":30827},{"parent":"FUNC","rule":"ListNotNUll","sum":7688},{"parent":"FUNC","rule":"ListNotNuLL","sum":5},{"parent":"FUNC","rule":"ListNotNul","sum":1},{"parent":"FUNC","rule":"ListNotNulL","sum":3},{"parent":"FUNC","rule":"ListNotNull","sum":9371336},{"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":953844},{"parent":"FUNC","rule":"ListReverse","sum":1330778},{"parent":"FUNC","rule":"ListSORT","sum":1},{"parent":"FUNC","rule":"ListSORtAsc","sum":26},{"parent":"FUNC","rule":"ListSOrt","sum":3},{"parent":"FUNC","rule":"ListSUM","sum":782},{"parent":"FUNC","rule":"ListSUm","sum":12},{"parent":"FUNC","rule":"ListSample","sum":13},{"parent":"FUNC","rule":"ListSampleN","sum":732},{"parent":"FUNC","rule":"ListShuffle","sum":560},{"parent":"FUNC","rule":"ListShuffleN","sum":1},{"parent":"FUNC","rule":"ListSkip","sum":617922},{"parent":"FUNC","rule":"ListSkipWhile","sum":139031},{"parent":"FUNC","rule":"ListSkipWhileInclusive","sum":8836},{"parent":"FUNC","rule":"ListSort","sum":5024768},{"parent":"FUNC","rule":"ListSortASC","sum":18351},{"parent":"FUNC","rule":"ListSortAsc","sum":488484},{"parent":"FUNC","rule":"ListSortDESC","sum":56},{"parent":"FUNC","rule":"ListSortDEsc","sum":2},{"parent":"FUNC","rule":"ListSortDesc","sum":1140951},{"parent":"FUNC","rule":"ListSortasc","sum":9},{"parent":"FUNC","rule":"ListSortdesc","sum":632},{"parent":"FUNC","rule":"ListSum","sum":1754680},{"parent":"FUNC","rule":"ListTail","sum":1},{"parent":"FUNC","rule":"ListTake","sum":2160879},{"parent":"FUNC","rule":"ListTakeWhile","sum":89576},{"parent":"FUNC","rule":"ListTakeWhileInclusive","sum":2411},{"parent":"FUNC","rule":"ListToTuple","sum":6582},{"parent":"FUNC","rule":"ListTop","sum":2410},{"parent":"FUNC","rule":"ListTopAsc","sum":132},{"parent":"FUNC","rule":"ListTopDESC","sum":1},{"parent":"FUNC","rule":"ListTopDesc","sum":11705},{"parent":"FUNC","rule":"ListTopSort","sum":1088},{"parent":"FUNC","rule":"ListTopSortAsc","sum":102},{"parent":"FUNC","rule":"ListTopSortDesc","sum":60334},{"parent":"FUNC","rule":"ListTopdesc","sum":1},{"parent":"FUNC","rule":"ListType","sum":32511},{"parent":"FUNC","rule":"ListTypeHandle","sum":1},{"parent":"FUNC","rule":"ListUNiq","sum":15},{"parent":"FUNC","rule":"ListUnionALL","sum":128},{"parent":"FUNC","rule":"ListUnionAll","sum":56616},{"parent":"FUNC","rule":"ListUniq","sum":3987721},{"parent":"FUNC","rule":"ListUniqStable","sum":76574},{"parent":"FUNC","rule":"ListZIP","sum":8},{"parent":"FUNC","rule":"ListZIp","sum":1},{"parent":"FUNC","rule":"ListZip","sum":2533519},{"parent":"FUNC","rule":"ListZipALL","sum":291501},{"parent":"FUNC","rule":"ListZipAll","sum":274990},{"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":4458},{"parent":"FUNC","rule":"Listany","sum":38},{"parent":"FUNC","rule":"Listcollect","sum":5312},{"parent":"FUNC","rule":"Listconcat","sum":14827},{"parent":"FUNC","rule":"Listenumerate","sum":3},{"parent":"FUNC","rule":"Listextend","sum":5},{"parent":"FUNC","rule":"Listfilter","sum":259840},{"parent":"FUNC","rule":"Listflatmap","sum":297},{"parent":"FUNC","rule":"Listflatten","sum":33},{"parent":"FUNC","rule":"ListfromRange","sum":31},{"parent":"FUNC","rule":"Listfromrange","sum":125},{"parent":"FUNC","rule":"Listfromtuple","sum":1},{"parent":"FUNC","rule":"Listhas","sum":69101},{"parent":"FUNC","rule":"ListhasItems","sum":259},{"parent":"FUNC","rule":"Listhasitems","sum":525},{"parent":"FUNC","rule":"Listhead","sum":18563},{"parent":"FUNC","rule":"ListindexOf","sum":2326},{"parent":"FUNC","rule":"Listindexof","sum":4},{"parent":"FUNC","rule":"ListlENGTH","sum":1},{"parent":"FUNC","rule":"ListlEngth","sum":2},{"parent":"FUNC","rule":"Listlast","sum":4458},{"parent":"FUNC","rule":"Listlength","sum":10842},{"parent":"FUNC","rule":"Listmap","sum":11243},{"parent":"FUNC","rule":"Listmax","sum":506},{"parent":"FUNC","rule":"Listmin","sum":1623},{"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":1096},{"parent":"FUNC","rule":"Listsortasc","sum":1},{"parent":"FUNC","rule":"Listsortdesc","sum":1},{"parent":"FUNC","rule":"Listsum","sum":27},{"parent":"FUNC","rule":"Listtake","sum":20214},{"parent":"FUNC","rule":"ListtakeWhile","sum":2},{"parent":"FUNC","rule":"Listuniq","sum":331},{"parent":"FUNC","rule":"Listzip","sum":789},{"parent":"FUNC","rule":"Listzipall","sum":1},{"parent":"FUNC","rule":"LogHISTOGRAM","sum":7},{"parent":"FUNC","rule":"LogHistogram","sum":284},{"parent":"FUNC","rule":"LogHistogramCDF","sum":6},{"parent":"FUNC","rule":"LogarithmicHISTOGRAM","sum":1},{"parent":"FUNC","rule":"LogarithmicHistogram","sum":614},{"parent":"FUNC","rule":"Logarithmichistogram","sum":20},{"parent":"FUNC","rule":"Lookup","sum":1},{"parent":"FUNC","rule":"MAX","sum":34609087},{"parent":"FUNC","rule":"MAXBY","sum":123},{"parent":"FUNC","rule":"MAXOF","sum":3},{"parent":"FUNC","rule":"MAX_BY","sum":22854976},{"parent":"FUNC","rule":"MAX_By","sum":19},{"parent":"FUNC","rule":"MAX_IF","sum":2},{"parent":"FUNC","rule":"MAX_OF","sum":2199737},{"parent":"FUNC","rule":"MAX_Of","sum":2},{"parent":"FUNC","rule":"MAX_bY","sum":7},{"parent":"FUNC","rule":"MAX_by","sum":10716},{"parent":"FUNC","rule":"MAX_of","sum":554},{"parent":"FUNC","rule":"MAx","sum":283},{"parent":"FUNC","rule":"MEDIAN","sum":920595},{"parent":"FUNC","rule":"MEDiAN","sum":4},{"parent":"FUNC","rule":"MEdian","sum":14},{"parent":"FUNC","rule":"MIN","sum":14670365},{"parent":"FUNC","rule":"MINBY","sum":1908},{"parent":"FUNC","rule":"MIN_BY","sum":5312374},{"parent":"FUNC","rule":"MIN_IF","sum":8},{"parent":"FUNC","rule":"MIN_OF","sum":2272013},{"parent":"FUNC","rule":"MIN_by","sum":1325},{"parent":"FUNC","rule":"MIN_of","sum":5},{"parent":"FUNC","rule":"MIn","sum":194},{"parent":"FUNC","rule":"MIn_OF","sum":3},{"parent":"FUNC","rule":"MODE","sum":901163},{"parent":"FUNC","rule":"MODe","sum":1},{"parent":"FUNC","rule":"MONTH","sum":1},{"parent":"FUNC","rule":"MULTI_AGGREGATE_BY","sum":702789},{"parent":"FUNC","rule":"MaX","sum":7},{"parent":"FUNC","rule":"MakeDate","sum":1},{"parent":"FUNC","rule":"Map","sum":4},{"parent":"FUNC","rule":"Max","sum":382457},{"parent":"FUNC","rule":"MaxBy","sum":5370},{"parent":"FUNC","rule":"MaxOf","sum":204},{"parent":"FUNC","rule":"Max_BY","sum":3200},{"parent":"FUNC","rule":"Max_By","sum":71883},{"parent":"FUNC","rule":"Max_OF","sum":689},{"parent":"FUNC","rule":"Max_Of","sum":657},{"parent":"FUNC","rule":"Max_by","sum":141471},{"parent":"FUNC","rule":"Max_of","sum":3901},{"parent":"FUNC","rule":"Median","sum":19475},{"parent":"FUNC","rule":"MiN","sum":32},{"parent":"FUNC","rule":"Min","sum":193742},{"parent":"FUNC","rule":"MinBy","sum":1221},{"parent":"FUNC","rule":"MinOf","sum":892},{"parent":"FUNC","rule":"Min_BY","sum":451},{"parent":"FUNC","rule":"Min_By","sum":10706},{"parent":"FUNC","rule":"Min_OF","sum":1095},{"parent":"FUNC","rule":"Min_Of","sum":855},{"parent":"FUNC","rule":"Min_by","sum":9075},{"parent":"FUNC","rule":"Min_of","sum":1293},{"parent":"FUNC","rule":"MoDE","sum":1},{"parent":"FUNC","rule":"Mode","sum":14889},{"parent":"FUNC","rule":"Mul","sum":1},{"parent":"FUNC","rule":"MultiAggregateBy","sum":653},{"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":407},{"parent":"FUNC","rule":"NANVL","sum":720232},{"parent":"FUNC","rule":"NOTHING","sum":3334},{"parent":"FUNC","rule":"NOW","sum":2},{"parent":"FUNC","rule":"NOW64","sum":2},{"parent":"FUNC","rule":"NOthing","sum":1},{"parent":"FUNC","rule":"NTH_VALUE","sum":3048},{"parent":"FUNC","rule":"NTILE","sum":1844},{"parent":"FUNC","rule":"NULLIF","sum":3},{"parent":"FUNC","rule":"NVL","sum":17734420},{"parent":"FUNC","rule":"NVl","sum":756},{"parent":"FUNC","rule":"NaNvl","sum":26},{"parent":"FUNC","rule":"NanVL","sum":1},{"parent":"FUNC","rule":"NanVl","sum":3},{"parent":"FUNC","rule":"Nanvl","sum":10867},{"parent":"FUNC","rule":"NothiNG","sum":2},{"parent":"FUNC","rule":"Nothing","sum":814707},{"parent":"FUNC","rule":"NullTypeHandle","sum":2230},{"parent":"FUNC","rule":"Nvl","sum":28806},{"parent":"FUNC","rule":"ON","sum":1},{"parent":"FUNC","rule":"OR","sum":6},{"parent":"FUNC","rule":"OVER","sum":1},{"parent":"FUNC","rule":"OptionalItemType","sum":37237},{"parent":"FUNC","rule":"OptionalType","sum":135500},{"parent":"FUNC","rule":"OptionalTypeHandle","sum":44441},{"parent":"FUNC","rule":"PERCENTILE","sum":30169690},{"parent":"FUNC","rule":"PERCENTIlE","sum":4},{"parent":"FUNC","rule":"PERCENT_RANK","sum":6243},{"parent":"FUNC","rule":"PERCENtILE","sum":1994},{"parent":"FUNC","rule":"PERCEnTILE","sum":1},{"parent":"FUNC","rule":"PICKLE","sum":77},{"parent":"FUNC","rule":"PIckle","sum":7},{"parent":"FUNC","rule":"POPULATION_STDDEV","sum":360},{"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":950353},{"parent":"FUNC","rule":"ParseType","sum":467635},{"parent":"FUNC","rule":"ParseTypeHandle","sum":1210152},{"parent":"FUNC","rule":"Parsefile","sum":111},{"parent":"FUNC","rule":"Path","sum":4},{"parent":"FUNC","rule":"PeRCENTILE","sum":365},{"parent":"FUNC","rule":"Percentile","sum":72492},{"parent":"FUNC","rule":"PgArray","sum":17},{"parent":"FUNC","rule":"PgBool","sum":158},{"parent":"FUNC","rule":"PgCall","sum":562},{"parent":"FUNC","rule":"PgCast","sum":5679},{"parent":"FUNC","rule":"PgCircle","sum":5},{"parent":"FUNC","rule":"PgConst","sum":93},{"parent":"FUNC","rule":"PgDate","sum":104},{"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":1375},{"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":118773},{"parent":"FUNC","rule":"QuoteCode","sum":715110},{"parent":"FUNC","rule":"RADIANS","sum":12},{"parent":"FUNC","rule":"RAND","sum":2},{"parent":"FUNC","rule":"RANDOM","sum":488032},{"parent":"FUNC","rule":"RANDOMNUMBER","sum":4004},{"parent":"FUNC","rule":"RANDOMNumber","sum":11},{"parent":"FUNC","rule":"RANDOMUUID","sum":5},{"parent":"FUNC","rule":"RANDOM_NUMBER","sum":83},{"parent":"FUNC","rule":"RANGE","sum":149},{"parent":"FUNC","rule":"RANK","sum":952478},{"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":3641157},{"parent":"FUNC","rule":"RFind","sum":247072},{"parent":"FUNC","rule":"RIGHT","sum":2},{"parent":"FUNC","rule":"ROUND","sum":10},{"parent":"FUNC","rule":"ROWNUMBER","sum":33},{"parent":"FUNC","rule":"ROW_NUMBER","sum":9443039},{"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":13426},{"parent":"FUNC","rule":"Rand","sum":1},{"parent":"FUNC","rule":"Random","sum":733297},{"parent":"FUNC","rule":"RandomNUmber","sum":167},{"parent":"FUNC","rule":"RandomNumber","sum":274828},{"parent":"FUNC","rule":"RandomUUID","sum":7899},{"parent":"FUNC","rule":"RandomUUid","sum":32479},{"parent":"FUNC","rule":"RandomUuid","sum":214069},{"parent":"FUNC","rule":"Randomnumber","sum":2},{"parent":"FUNC","rule":"Range","sum":2},{"parent":"FUNC","rule":"Rank","sum":3113},{"parent":"FUNC","rule":"RemoveMEmbers","sum":16},{"parent":"FUNC","rule":"RemoveMember","sum":432646},{"parent":"FUNC","rule":"RemoveMembers","sum":732652},{"parent":"FUNC","rule":"RemoveTimeZone","sum":13},{"parent":"FUNC","rule":"RemoveTimezone","sum":433750},{"parent":"FUNC","rule":"Removemember","sum":686},{"parent":"FUNC","rule":"Removemembers","sum":4},{"parent":"FUNC","rule":"RenameMembers","sum":519393},{"parent":"FUNC","rule":"ReplaceMember","sum":9364},{"parent":"FUNC","rule":"ReprCode","sum":196073},{"parent":"FUNC","rule":"ResourceType","sum":9},{"parent":"FUNC","rule":"Rfind","sum":869},{"parent":"FUNC","rule":"RootAttributes","sum":20},{"parent":"FUNC","rule":"RowNum","sum":1},{"parent":"FUNC","rule":"RowNumber","sum":20754},{"parent":"FUNC","rule":"Row_NUMBER","sum":33},{"parent":"FUNC","rule":"Row_NUmber","sum":16},{"parent":"FUNC","rule":"Row_Number","sum":59846},{"parent":"FUNC","rule":"Row_number","sum":4210},{"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":33042966},{"parent":"FUNC","rule":"SOMe","sum":17},{"parent":"FUNC","rule":"SON_VALUE","sum":1},{"parent":"FUNC","rule":"SOmE","sum":3},{"parent":"FUNC","rule":"SOme","sum":13},{"parent":"FUNC","rule":"SPLIT","sum":3},{"parent":"FUNC","rule":"SQL","sum":6},{"parent":"FUNC","rule":"SQRT","sum":2},{"parent":"FUNC","rule":"STARTSWITH","sum":25270},{"parent":"FUNC","rule":"STARTS_WITH","sum":54},{"parent":"FUNC","rule":"STARTsWITH","sum":17},{"parent":"FUNC","rule":"STATICMAP","sum":46},{"parent":"FUNC","rule":"STD","sum":6},{"parent":"FUNC","rule":"STDDEV","sum":400497},{"parent":"FUNC","rule":"STDDEVPOP","sum":2741},{"parent":"FUNC","rule":"STDDEVSAMP","sum":1106},{"parent":"FUNC","rule":"STDDEV_POP","sum":14},{"parent":"FUNC","rule":"STDDEV_POPULATION","sum":18667},{"parent":"FUNC","rule":"STDDEV_SAMP","sum":3263},{"parent":"FUNC","rule":"STDDEV_SAMPLE","sum":9958},{"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_DWithin","sum":4},{"parent":"FUNC","rule":"ST_Distance","sum":5},{"parent":"FUNC","rule":"ST_GeomFromGeoHash","sum":1},{"parent":"FUNC","rule":"ST_MakePoint","sum":4},{"parent":"FUNC","rule":"ST_Point","sum":10},{"parent":"FUNC","rule":"ST_PolygonFromText","sum":5},{"parent":"FUNC","rule":"ST_SetSRID","sum":10},{"parent":"FUNC","rule":"ST_Transform","sum":4},{"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":29484013},{"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":227},{"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":42240466},{"parent":"FUNC","rule":"SUMIF","sum":3293},{"parent":"FUNC","rule":"SUM_","sum":318},{"parent":"FUNC","rule":"SUM_IF","sum":8459280},{"parent":"FUNC","rule":"SUM_If","sum":122},{"parent":"FUNC","rule":"SUM_iF","sum":19},{"parent":"FUNC","rule":"SUM_if","sum":269198},{"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":907220},{"parent":"FUNC","rule":"SessionStart","sum":24180},{"parent":"FUNC","rule":"SessionState","sum":720},{"parent":"FUNC","rule":"SessionWindow","sum":102319},{"parent":"FUNC","rule":"SetBit","sum":43806},{"parent":"FUNC","rule":"SetContains","sum":1},{"parent":"FUNC","rule":"SetCreate","sum":45757},{"parent":"FUNC","rule":"SetDIfference","sum":11},{"parent":"FUNC","rule":"SetDifference","sum":487197},{"parent":"FUNC","rule":"SetINtersection","sum":1},{"parent":"FUNC","rule":"SetIncludes","sum":245705},{"parent":"FUNC","rule":"SetInterSection","sum":21},{"parent":"FUNC","rule":"SetIntersection","sum":1268919},{"parent":"FUNC","rule":"SetIsDisJOINt","sum":7985},{"parent":"FUNC","rule":"SetIsDisJoint","sum":1697},{"parent":"FUNC","rule":"SetIsDisjoint","sum":1251028},{"parent":"FUNC","rule":"SetSymmetricDifference","sum":8897},{"parent":"FUNC","rule":"SetUNION","sum":1},{"parent":"FUNC","rule":"SetUnion","sum":592702},{"parent":"FUNC","rule":"Setintersection","sum":4613},{"parent":"FUNC","rule":"SizeOf","sum":1},{"parent":"FUNC","rule":"Some","sum":2534820},{"parent":"FUNC","rule":"SplitToList","sum":6},{"parent":"FUNC","rule":"SpreadMembers","sum":345800},{"parent":"FUNC","rule":"StablePicke","sum":1},{"parent":"FUNC","rule":"StablePickle","sum":213884},{"parent":"FUNC","rule":"StartSwith","sum":105},{"parent":"FUNC","rule":"StartsWIth","sum":708},{"parent":"FUNC","rule":"StartsWith","sum":5782787},{"parent":"FUNC","rule":"Startswith","sum":20204},{"parent":"FUNC","rule":"StaticFold","sum":311},{"parent":"FUNC","rule":"StaticMap","sum":679859},{"parent":"FUNC","rule":"StaticZip","sum":15268},{"parent":"FUNC","rule":"Staticmap","sum":2},{"parent":"FUNC","rule":"StdDev","sum":33},{"parent":"FUNC","rule":"Stddev","sum":43},{"parent":"FUNC","rule":"StreamItemType","sum":5680},{"parent":"FUNC","rule":"StreamType","sum":79441},{"parent":"FUNC","rule":"StreamTypeHandle","sum":17},{"parent":"FUNC","rule":"String","sum":34247},{"parent":"FUNC","rule":"StringLength","sum":5},{"parent":"FUNC","rule":"StringSplitToList","sum":4},{"parent":"FUNC","rule":"StructDifference","sum":241},{"parent":"FUNC","rule":"StructIntersection","sum":859},{"parent":"FUNC","rule":"StructMemberType","sum":20787},{"parent":"FUNC","rule":"StructMembers","sum":974117},{"parent":"FUNC","rule":"StructSymmetricDifference","sum":172},{"parent":"FUNC","rule":"StructType","sum":17912},{"parent":"FUNC","rule":"StructTypeComponents","sum":100573},{"parent":"FUNC","rule":"StructTypeHandle","sum":88467},{"parent":"FUNC","rule":"StructUnion","sum":106490},{"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":27710},{"parent":"FUNC","rule":"SubqueryAssumeOrderBy","sum":821},{"parent":"FUNC","rule":"SubqueryExtend","sum":37579},{"parent":"FUNC","rule":"SubqueryExtendFor","sum":769342},{"parent":"FUNC","rule":"SubqueryMerge","sum":19},{"parent":"FUNC","rule":"SubqueryMergeFor","sum":36687},{"parent":"FUNC","rule":"SubqueryOrderBy","sum":186437},{"parent":"FUNC","rule":"SubqueryUnionALLFor","sum":9},{"parent":"FUNC","rule":"SubqueryUnionALlFor","sum":82},{"parent":"FUNC","rule":"SubqueryUnionAll","sum":26085},{"parent":"FUNC","rule":"SubqueryUnionAllFor","sum":143430},{"parent":"FUNC","rule":"SubqueryUnionAllfor","sum":385},{"parent":"FUNC","rule":"SubqueryUnionMerge","sum":30557},{"parent":"FUNC","rule":"SubqueryUnionMergeFor","sum":73804},{"parent":"FUNC","rule":"SubsTRING","sum":3},{"parent":"FUNC","rule":"Substring","sum":2911730},{"parent":"FUNC","rule":"Sum","sum":454844},{"parent":"FUNC","rule":"SumIf","sum":1597},{"parent":"FUNC","rule":"Sum_IF","sum":85},{"parent":"FUNC","rule":"Sum_If","sum":13381},{"parent":"FUNC","rule":"Sum_if","sum":53747},{"parent":"FUNC","rule":"TABLENAME","sum":12256},{"parent":"FUNC","rule":"TABLEPATH","sum":264},{"parent":"FUNC","rule":"TABLERECORDINDEX","sum":45},{"parent":"FUNC","rule":"TABLEROW","sum":1251},{"parent":"FUNC","rule":"TABLE_NAME","sum":147},{"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":71},{"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":422},{"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":502571},{"parent":"FUNC","rule":"TOPBY","sum":1},{"parent":"FUNC","rule":"TOPFREQ","sum":509195},{"parent":"FUNC","rule":"TOPFreq","sum":3},{"parent":"FUNC","rule":"TOP_BY","sum":1779613},{"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":787},{"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":139},{"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":1751},{"parent":"FUNC","rule":"TableNamE","sum":2},{"parent":"FUNC","rule":"TableName","sum":15099355},{"parent":"FUNC","rule":"TablePATH","sum":1},{"parent":"FUNC","rule":"TablePAth","sum":5},{"parent":"FUNC","rule":"TablePath","sum":1504606},{"parent":"FUNC","rule":"TableROW","sum":4},{"parent":"FUNC","rule":"TableROw","sum":19},{"parent":"FUNC","rule":"TableRecordINdex","sum":4},{"parent":"FUNC","rule":"TableRecordIndex","sum":2312988},{"parent":"FUNC","rule":"TableRedordIndex","sum":1},{"parent":"FUNC","rule":"TableRow","sum":27122572},{"parent":"FUNC","rule":"TableRowIndex","sum":1},{"parent":"FUNC","rule":"TableRows","sum":1703144},{"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":104553},{"parent":"FUNC","rule":"Tablepath","sum":193},{"parent":"FUNC","rule":"TablerRow","sum":1},{"parent":"FUNC","rule":"TablerecordIndex","sum":1},{"parent":"FUNC","rule":"Tablerecordindex","sum":3},{"parent":"FUNC","rule":"Tablerow","sum":26494},{"parent":"FUNC","rule":"TestBit","sum":255149},{"parent":"FUNC","rule":"Text","sum":20},{"parent":"FUNC","rule":"TimeStamp","sum":4378},{"parent":"FUNC","rule":"Timestamp","sum":1351497},{"parent":"FUNC","rule":"Timestamp64","sum":59},{"parent":"FUNC","rule":"ToBytes","sum":6690210},{"parent":"FUNC","rule":"ToDIct","sum":253},{"parent":"FUNC","rule":"ToDict","sum":6425145},{"parent":"FUNC","rule":"ToList","sum":3},{"parent":"FUNC","rule":"ToLower","sum":4},{"parent":"FUNC","rule":"ToMilliseconds","sum":2},{"parent":"FUNC","rule":"ToMultiDict","sum":338874},{"parent":"FUNC","rule":"ToPg","sum":3225},{"parent":"FUNC","rule":"ToSET","sum":80},{"parent":"FUNC","rule":"ToSet","sum":5487098},{"parent":"FUNC","rule":"ToSortedDict","sum":1116},{"parent":"FUNC","rule":"ToStartOfMonth","sum":4},{"parent":"FUNC","rule":"To_bytes","sum":3},{"parent":"FUNC","rule":"Todict","sum":250},{"parent":"FUNC","rule":"Top","sum":849},{"parent":"FUNC","rule":"TopBy","sum":77},{"parent":"FUNC","rule":"TopFreq","sum":13934},{"parent":"FUNC","rule":"Top_BY","sum":22},{"parent":"FUNC","rule":"Top_By","sum":114},{"parent":"FUNC","rule":"Top_by","sum":122},{"parent":"FUNC","rule":"Topfreq","sum":28},{"parent":"FUNC","rule":"Toset","sum":2324},{"parent":"FUNC","rule":"TryMember","sum":16823743},{"parent":"FUNC","rule":"Trymember","sum":36926},{"parent":"FUNC","rule":"TupleElementType","sum":7608},{"parent":"FUNC","rule":"TupleType","sum":2404},{"parent":"FUNC","rule":"TupleTypeComponents","sum":58},{"parent":"FUNC","rule":"TupleTypeHandle","sum":5566},{"parent":"FUNC","rule":"TypeHandle","sum":161528},{"parent":"FUNC","rule":"TypeKind","sum":55189},{"parent":"FUNC","rule":"TypeOF","sum":37},{"parent":"FUNC","rule":"TypeOf","sum":854631},{"parent":"FUNC","rule":"Typeof","sum":78},{"parent":"FUNC","rule":"TzDate","sum":670},{"parent":"FUNC","rule":"TzDate32","sum":7},{"parent":"FUNC","rule":"TzDateTime","sum":24903},{"parent":"FUNC","rule":"TzDateTime64","sum":7},{"parent":"FUNC","rule":"TzDatetime","sum":46413},{"parent":"FUNC","rule":"TzTimeStamp","sum":4},{"parent":"FUNC","rule":"TzTimestamp","sum":343344},{"parent":"FUNC","rule":"TzTimestamp64","sum":7},{"parent":"FUNC","rule":"UBSTRING","sum":1},{"parent":"FUNC","rule":"UDAF","sum":141570},{"parent":"FUNC","rule":"UDF","sum":1919},{"parent":"FUNC","rule":"UINT32","sum":4},{"parent":"FUNC","rule":"UINT64","sum":6},{"parent":"FUNC","rule":"UInt32","sum":111517},{"parent":"FUNC","rule":"UInt64","sum":829},{"parent":"FUNC","rule":"UInt8","sum":231},{"parent":"FUNC","rule":"UNIQ","sum":1},{"parent":"FUNC","rule":"UNPICKLE","sum":28},{"parent":"FUNC","rule":"UNTAG","sum":18},{"parent":"FUNC","rule":"UNWRAP","sum":14135041},{"parent":"FUNC","rule":"UNWRAp","sum":1},{"parent":"FUNC","rule":"UNWRaP","sum":2},{"parent":"FUNC","rule":"UNWRap","sum":10968},{"parent":"FUNC","rule":"UNWrAP","sum":18},{"parent":"FUNC","rule":"UNWraP","sum":8},{"parent":"FUNC","rule":"UNWrap","sum":4},{"parent":"FUNC","rule":"UNwRAP","sum":6},{"parent":"FUNC","rule":"UNwrap","sum":1417},{"parent":"FUNC","rule":"USING","sum":8},{"parent":"FUNC","rule":"UTF8","sum":333224},{"parent":"FUNC","rule":"UUID","sum":1},{"parent":"FUNC","rule":"Udf","sum":301959},{"parent":"FUNC","rule":"Uint16","sum":83},{"parent":"FUNC","rule":"Uint32","sum":333513},{"parent":"FUNC","rule":"Uint64","sum":11950},{"parent":"FUNC","rule":"Uint8","sum":2951},{"parent":"FUNC","rule":"UnTag","sum":55},{"parent":"FUNC","rule":"UnWRAP","sum":10},{"parent":"FUNC","rule":"UnWrAp","sum":1},{"parent":"FUNC","rule":"UnWrap","sum":1069425},{"parent":"FUNC","rule":"UnionAll","sum":3},{"parent":"FUNC","rule":"Unpickle","sum":178},{"parent":"FUNC","rule":"Untag","sum":16286},{"parent":"FUNC","rule":"Unwarp","sum":1},{"parent":"FUNC","rule":"Unwrap","sum":35848836},{"parent":"FUNC","rule":"UtcCurrentDatetime","sum":8},{"parent":"FUNC","rule":"Utf8","sum":40749},{"parent":"FUNC","rule":"Uuid","sum":450},{"parent":"FUNC","rule":"VALUES","sum":14},{"parent":"FUNC","rule":"VARIANCE","sum":31007},{"parent":"FUNC","rule":"VARIANCE_POPULATION","sum":3039},{"parent":"FUNC","rule":"VARIANCE_SAMPLE","sum":1223},{"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":1145},{"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":3129},{"parent":"FUNC","rule":"VariantTypeHandle","sum":8},{"parent":"FUNC","rule":"VariantUnderlyingType","sum":6499},{"parent":"FUNC","rule":"Version","sum":3},{"parent":"FUNC","rule":"Visit","sum":28},{"parent":"FUNC","rule":"Void","sum":91746},{"parent":"FUNC","rule":"WEAKFIELD","sum":837},{"parent":"FUNC","rule":"WEAK_FIELD","sum":364},{"parent":"FUNC","rule":"WEakField","sum":2},{"parent":"FUNC","rule":"Way","sum":9492},{"parent":"FUNC","rule":"WeakFIeld","sum":43},{"parent":"FUNC","rule":"WeakField","sum":21250353},{"parent":"FUNC","rule":"WeakFiled","sum":2},{"parent":"FUNC","rule":"Weakfield","sum":1953},{"parent":"FUNC","rule":"WorldCode","sum":396},{"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":752},{"parent":"FUNC","rule":"YSONExtractString","sum":6},{"parent":"FUNC","rule":"Yson","sum":613122},{"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":1555178},{"parent":"FUNC","rule":"addMember","sum":2634},{"parent":"FUNC","rule":"addTimezone","sum":780},{"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":1279120},{"parent":"FUNC","rule":"agg_list_DISTINCT","sum":2},{"parent":"FUNC","rule":"agg_list_Distinct","sum":1},{"parent":"FUNC","rule":"agg_list_distinct","sum":435905},{"parent":"FUNC","rule":"agg_set","sum":1},{"parent":"FUNC","rule":"agglist","sum":130},{"parent":"FUNC","rule":"agglistdistinct","sum":51},{"parent":"FUNC","rule":"aggr_list","sum":2599},{"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":392},{"parent":"FUNC","rule":"aggregateListDistinct","sum":38},{"parent":"FUNC","rule":"aggregate_List","sum":1000},{"parent":"FUNC","rule":"aggregate_List_Distinct","sum":8},{"parent":"FUNC","rule":"aggregate_List_distinct","sum":10},{"parent":"FUNC","rule":"aggregate_by","sum":369405},{"parent":"FUNC","rule":"aggregate_list","sum":2505307},{"parent":"FUNC","rule":"aggregate_list_","sum":2},{"parent":"FUNC","rule":"aggregate_list_DISTINCT","sum":1815},{"parent":"FUNC","rule":"aggregate_list_Distinct","sum":27},{"parent":"FUNC","rule":"aggregate_list_distinct","sum":947138},{"parent":"FUNC","rule":"aggregatelist","sum":569},{"parent":"FUNC","rule":"aggregatetransforminput","sum":1},{"parent":"FUNC","rule":"aggregationFactory","sum":154},{"parent":"FUNC","rule":"aggregation_factory","sum":8723},{"parent":"FUNC","rule":"aggregationfactory","sum":83},{"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":15},{"parent":"FUNC","rule":"argMin","sum":3},{"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":3798},{"parent":"FUNC","rule":"asLIST","sum":50},{"parent":"FUNC","rule":"asList","sum":177274},{"parent":"FUNC","rule":"asSet","sum":1986},{"parent":"FUNC","rule":"asStruct","sum":125755},{"parent":"FUNC","rule":"asTUPLE","sum":1},{"parent":"FUNC","rule":"asTagged","sum":2255},{"parent":"FUNC","rule":"asTuple","sum":83172},{"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":372},{"parent":"FUNC","rule":"asdict","sum":3802},{"parent":"FUNC","rule":"asenum","sum":13},{"parent":"FUNC","rule":"aslist","sum":164809},{"parent":"FUNC","rule":"assessments_integralListReverse","sum":2},{"parent":"FUNC","rule":"asset","sum":1126},{"parent":"FUNC","rule":"asstruct","sum":13075},{"parent":"FUNC","rule":"assumeNotNull","sum":3},{"parent":"FUNC","rule":"astagged","sum":1352},{"parent":"FUNC","rule":"astuple","sum":30810},{"parent":"FUNC","rule":"asvariant","sum":3},{"parent":"FUNC","rule":"atan2","sum":4},{"parent":"FUNC","rule":"avG","sum":52},{"parent":"FUNC","rule":"avg","sum":6034082},{"parent":"FUNC","rule":"avgIf","sum":19746},{"parent":"FUNC","rule":"avg_","sum":1},{"parent":"FUNC","rule":"avg_IF","sum":155},{"parent":"FUNC","rule":"avg_If","sum":153},{"parent":"FUNC","rule":"avg_if","sum":499296},{"parent":"FUNC","rule":"ax","sum":13},{"parent":"FUNC","rule":"bit_or","sum":26643},{"parent":"FUNC","rule":"bool","sum":274},{"parent":"FUNC","rule":"bool_and","sum":67987},{"parent":"FUNC","rule":"bool_or","sum":234728},{"parent":"FUNC","rule":"bool_xor","sum":2},{"parent":"FUNC","rule":"bottom","sum":10181},{"parent":"FUNC","rule":"bottom_by","sum":334498},{"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":25106027},{"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":716},{"parent":"FUNC","rule":"correlation","sum":3826},{"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":38679935},{"parent":"FUNC","rule":"countDistinct","sum":1},{"parent":"FUNC","rule":"countDistinctEstimate","sum":263774},{"parent":"FUNC","rule":"countIF","sum":8273},{"parent":"FUNC","rule":"countIf","sum":1386283},{"parent":"FUNC","rule":"count_","sum":541},{"parent":"FUNC","rule":"count_IF","sum":34538},{"parent":"FUNC","rule":"count_If","sum":26678},{"parent":"FUNC","rule":"count_distinct_estimate","sum":33},{"parent":"FUNC","rule":"count_if","sum":18959232},{"parent":"FUNC","rule":"countdistinctEstimate","sum":1713},{"parent":"FUNC","rule":"countdistinctestimate","sum":2851},{"parent":"FUNC","rule":"countif","sum":20338},{"parent":"FUNC","rule":"covar","sum":247},{"parent":"FUNC","rule":"covariance","sum":292},{"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":3922},{"parent":"FUNC","rule":"currentTzTimestamp","sum":53},{"parent":"FUNC","rule":"currentUTCDATETIME","sum":7},{"parent":"FUNC","rule":"currentUTCDate","sum":663},{"parent":"FUNC","rule":"currentUTCDateTime","sum":318},{"parent":"FUNC","rule":"currentUTCDatetime","sum":3},{"parent":"FUNC","rule":"currentUTCdate","sum":370},{"parent":"FUNC","rule":"currentUTCdatetime","sum":20},{"parent":"FUNC","rule":"currentUTcdate","sum":1343},{"parent":"FUNC","rule":"currentUtcDate","sum":6457},{"parent":"FUNC","rule":"currentUtcDateTime","sum":14876},{"parent":"FUNC","rule":"currentUtcDatetime","sum":2420},{"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":257},{"parent":"FUNC","rule":"currenttztimestamp","sum":47},{"parent":"FUNC","rule":"currentutcDateTime","sum":3},{"parent":"FUNC","rule":"currentutcdate","sum":119245},{"parent":"FUNC","rule":"currentutcdatetime","sum":58922},{"parent":"FUNC","rule":"currentutctimestamp","sum":48538},{"parent":"FUNC","rule":"d","sum":1},{"parent":"FUNC","rule":"dATE","sum":4},{"parent":"FUNC","rule":"date","sum":416640},{"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_sub","sum":2},{"parent":"FUNC","rule":"dateadd","sum":1},{"parent":"FUNC","rule":"datediff","sum":4},{"parent":"FUNC","rule":"datetime","sum":11489},{"parent":"FUNC","rule":"datetime64","sum":19},{"parent":"FUNC","rule":"decimal","sum":342},{"parent":"FUNC","rule":"dense_RANK","sum":42},{"parent":"FUNC","rule":"dense_rank","sum":46459},{"parent":"FUNC","rule":"dictAggregate","sum":71},{"parent":"FUNC","rule":"dictContains","sum":7},{"parent":"FUNC","rule":"dictGetString","sum":1},{"parent":"FUNC","rule":"dictItems","sum":8586},{"parent":"FUNC","rule":"dictKeys","sum":1199},{"parent":"FUNC","rule":"dictLength","sum":104},{"parent":"FUNC","rule":"dictLookUp","sum":9267},{"parent":"FUNC","rule":"dictLookup","sum":678},{"parent":"FUNC","rule":"dictPayloads","sum":90},{"parent":"FUNC","rule":"dict_keys","sum":8695},{"parent":"FUNC","rule":"dictcontains","sum":346},{"parent":"FUNC","rule":"dictcreate","sum":2},{"parent":"FUNC","rule":"dicthasitems","sum":24},{"parent":"FUNC","rule":"dictitems","sum":2584},{"parent":"FUNC","rule":"dictkeys","sum":900},{"parent":"FUNC","rule":"dictlength","sum":6528},{"parent":"FUNC","rule":"dictlookup","sum":1613},{"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":2138},{"parent":"FUNC","rule":"endswith","sum":32167},{"parent":"FUNC","rule":"ensure","sum":411863},{"parent":"FUNC","rule":"ensuretype","sum":706},{"parent":"FUNC","rule":"evaluateCode","sum":47},{"parent":"FUNC","rule":"evaluateExpr","sum":304},{"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":934},{"parent":"FUNC","rule":"filter","sum":2},{"parent":"FUNC","rule":"find","sum":4100173},{"parent":"FUNC","rule":"first_VALUE","sum":19},{"parent":"FUNC","rule":"first_route_timestamp","sum":1},{"parent":"FUNC","rule":"first_value","sum":1145796},{"parent":"FUNC","rule":"flatten","sum":1},{"parent":"FUNC","rule":"float","sum":23124},{"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":141},{"parent":"FUNC","rule":"fromUnixTimestamp64Micro","sum":1},{"parent":"FUNC","rule":"from_bytes","sum":2},{"parent":"FUNC","rule":"frombytes","sum":47},{"parent":"FUNC","rule":"frompg","sum":134},{"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":317200},{"parent":"FUNC","rule":"groupArray","sum":4},{"parent":"FUNC","rule":"groupUniqArray","sum":2},{"parent":"FUNC","rule":"grouping","sum":17651},{"parent":"FUNC","rule":"hISTOGRAM","sum":2},{"parent":"FUNC","rule":"has","sum":20},{"parent":"FUNC","rule":"histOGRAM","sum":4},{"parent":"FUNC","rule":"histograM","sum":359},{"parent":"FUNC","rule":"histogram","sum":52870},{"parent":"FUNC","rule":"histogramcdf","sum":84},{"parent":"FUNC","rule":"hll","sum":82099},{"parent":"FUNC","rule":"iF","sum":2697},{"parent":"FUNC","rule":"iNtErVaL","sum":1},{"parent":"FUNC","rule":"if","sum":43313494},{"parent":"FUNC","rule":"ifNull","sum":6},{"parent":"FUNC","rule":"in","sum":10},{"parent":"FUNC","rule":"indexOf","sum":14},{"parent":"FUNC","rule":"instanceof","sum":55},{"parent":"FUNC","rule":"instr","sum":1},{"parent":"FUNC","rule":"int","sum":32691},{"parent":"FUNC","rule":"int32","sum":2},{"parent":"FUNC","rule":"int64","sum":19},{"parent":"FUNC","rule":"int8","sum":2},{"parent":"FUNC","rule":"intervaL","sum":9673},{"parent":"FUNC","rule":"interval","sum":1809588},{"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":216},{"parent":"FUNC","rule":"json","sum":5659},{"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":248704},{"parent":"FUNC","rule":"lAG","sum":2220},{"parent":"FUNC","rule":"lEAD","sum":6802},{"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":1013952},{"parent":"FUNC","rule":"last_VALUE","sum":14},{"parent":"FUNC","rule":"last_value","sum":1055540},{"parent":"FUNC","rule":"lead","sum":932701},{"parent":"FUNC","rule":"least","sum":378147},{"parent":"FUNC","rule":"len","sum":713279},{"parent":"FUNC","rule":"lenGTH","sum":1},{"parent":"FUNC","rule":"lenght","sum":1},{"parent":"FUNC","rule":"lengtH","sum":2},{"parent":"FUNC","rule":"length","sum":2575504},{"parent":"FUNC","rule":"like","sum":4},{"parent":"FUNC","rule":"likely","sum":16515},{"parent":"FUNC","rule":"linearHISTOGRAM","sum":10},{"parent":"FUNC","rule":"linearHistogram","sum":16},{"parent":"FUNC","rule":"linearhistogram","sum":174},{"parent":"FUNC","rule":"linearhistogramcdf","sum":20},{"parent":"FUNC","rule":"listALL","sum":3},{"parent":"FUNC","rule":"listAVG","sum":922},{"parent":"FUNC","rule":"listAggregateUnique","sum":1},{"parent":"FUNC","rule":"listAll","sum":86},{"parent":"FUNC","rule":"listAny","sum":128},{"parent":"FUNC","rule":"listAvg","sum":106},{"parent":"FUNC","rule":"listCollect","sum":378},{"parent":"FUNC","rule":"listConcat","sum":10966},{"parent":"FUNC","rule":"listEnumerate","sum":124},{"parent":"FUNC","rule":"listExtend","sum":6795},{"parent":"FUNC","rule":"listExtract","sum":24},{"parent":"FUNC","rule":"listFilter","sum":40338},{"parent":"FUNC","rule":"listFlatten","sum":292},{"parent":"FUNC","rule":"listFold","sum":305},{"parent":"FUNC","rule":"listFromRange","sum":752},{"parent":"FUNC","rule":"listHAs","sum":52},{"parent":"FUNC","rule":"listHas","sum":42008},{"parent":"FUNC","rule":"listHasItems","sum":3274},{"parent":"FUNC","rule":"listHead","sum":2187},{"parent":"FUNC","rule":"listIndexOf","sum":39},{"parent":"FUNC","rule":"listLENGTH","sum":223},{"parent":"FUNC","rule":"listLENgth","sum":2},{"parent":"FUNC","rule":"listLast","sum":1025},{"parent":"FUNC","rule":"listLength","sum":30279},{"parent":"FUNC","rule":"listMAX","sum":1},{"parent":"FUNC","rule":"listMIN","sum":1},{"parent":"FUNC","rule":"listMap","sum":54237},{"parent":"FUNC","rule":"listMax","sum":810},{"parent":"FUNC","rule":"listMin","sum":172},{"parent":"FUNC","rule":"listNotNull","sum":265},{"parent":"FUNC","rule":"listReverse","sum":4780},{"parent":"FUNC","rule":"listSkip","sum":18},{"parent":"FUNC","rule":"listSort","sum":24533},{"parent":"FUNC","rule":"listSortAsc","sum":2},{"parent":"FUNC","rule":"listSortDesc","sum":204},{"parent":"FUNC","rule":"listSum","sum":1460},{"parent":"FUNC","rule":"listTake","sum":720},{"parent":"FUNC","rule":"listTopSort","sum":18},{"parent":"FUNC","rule":"listUniq","sum":10594},{"parent":"FUNC","rule":"listUniqStable","sum":1},{"parent":"FUNC","rule":"listZip","sum":1365},{"parent":"FUNC","rule":"listZipAll","sum":1336},{"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":264},{"parent":"FUNC","rule":"list_filter","sum":2},{"parent":"FUNC","rule":"list_flatten","sum":15},{"parent":"FUNC","rule":"list_has","sum":6369},{"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_min","sum":3},{"parent":"FUNC","rule":"list_not_null","sum":1},{"parent":"FUNC","rule":"list_sort","sum":102},{"parent":"FUNC","rule":"list_uniq","sum":1},{"parent":"FUNC","rule":"list_zip","sum":30},{"parent":"FUNC","rule":"listaggregate","sum":105},{"parent":"FUNC","rule":"listall","sum":13408},{"parent":"FUNC","rule":"listany","sum":15325},{"parent":"FUNC","rule":"listavg","sum":12124},{"parent":"FUNC","rule":"listcollect","sum":509},{"parent":"FUNC","rule":"listconcat","sum":19213},{"parent":"FUNC","rule":"listcreate","sum":10},{"parent":"FUNC","rule":"listenumerate","sum":2048},{"parent":"FUNC","rule":"listextend","sum":3932},{"parent":"FUNC","rule":"listextendstrict","sum":61},{"parent":"FUNC","rule":"listextract","sum":1813},{"parent":"FUNC","rule":"listfilter","sum":101149},{"parent":"FUNC","rule":"listflatmap","sum":7370},{"parent":"FUNC","rule":"listflatten","sum":23406},{"parent":"FUNC","rule":"listfold","sum":16},{"parent":"FUNC","rule":"listfold1map","sum":60},{"parent":"FUNC","rule":"listfromRange","sum":16},{"parent":"FUNC","rule":"listfromrange","sum":14106},{"parent":"FUNC","rule":"listfromtuple","sum":58},{"parent":"FUNC","rule":"listhas","sum":172035},{"parent":"FUNC","rule":"listhasItems","sum":34},{"parent":"FUNC","rule":"listhasitems","sum":10527},{"parent":"FUNC","rule":"listhead","sum":18583},{"parent":"FUNC","rule":"listindexof","sum":1201},{"parent":"FUNC","rule":"listlast","sum":3076},{"parent":"FUNC","rule":"listlength","sum":344746},{"parent":"FUNC","rule":"listmap","sum":513663},{"parent":"FUNC","rule":"listmax","sum":3930},{"parent":"FUNC","rule":"listmin","sum":2665},{"parent":"FUNC","rule":"listnotNull","sum":1},{"parent":"FUNC","rule":"listnotnull","sum":12967},{"parent":"FUNC","rule":"listreplicate","sum":49},{"parent":"FUNC","rule":"listreverse","sum":2249},{"parent":"FUNC","rule":"listskip","sum":1194},{"parent":"FUNC","rule":"listsort","sum":56744},{"parent":"FUNC","rule":"listsortDesc","sum":1},{"parent":"FUNC","rule":"listsortasc","sum":377},{"parent":"FUNC","rule":"listsortdesc","sum":3986},{"parent":"FUNC","rule":"listsum","sum":3392},{"parent":"FUNC","rule":"listtake","sum":16232},{"parent":"FUNC","rule":"listtop","sum":68},{"parent":"FUNC","rule":"listunionall","sum":8},{"parent":"FUNC","rule":"listuniq","sum":26219},{"parent":"FUNC","rule":"listuniqstable","sum":94},{"parent":"FUNC","rule":"listzip","sum":16893},{"parent":"FUNC","rule":"listzipALL","sum":2},{"parent":"FUNC","rule":"listzipAll","sum":15},{"parent":"FUNC","rule":"listzipall","sum":98},{"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":132},{"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":25228353},{"parent":"FUNC","rule":"maxBy","sum":1},{"parent":"FUNC","rule":"maxOf","sum":3595},{"parent":"FUNC","rule":"max_","sum":1},{"parent":"FUNC","rule":"max_BY","sum":2362},{"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":29000324},{"parent":"FUNC","rule":"max_if","sum":3},{"parent":"FUNC","rule":"max_of","sum":1278387},{"parent":"FUNC","rule":"maxby","sum":3553},{"parent":"FUNC","rule":"maxof","sum":852},{"parent":"FUNC","rule":"md5int","sum":1},{"parent":"FUNC","rule":"median","sum":384656},{"parent":"FUNC","rule":"metric_exp","sum":1},{"parent":"FUNC","rule":"min","sum":10296946},{"parent":"FUNC","rule":"minOf","sum":2},{"parent":"FUNC","rule":"min_BY","sum":8619},{"parent":"FUNC","rule":"min_By","sum":6},{"parent":"FUNC","rule":"min_OF","sum":9},{"parent":"FUNC","rule":"min_Of","sum":348},{"parent":"FUNC","rule":"min_by","sum":2332840},{"parent":"FUNC","rule":"min_if","sum":1},{"parent":"FUNC","rule":"min_of","sum":577710},{"parent":"FUNC","rule":"minby","sum":1},{"parent":"FUNC","rule":"minof","sum":98},{"parent":"FUNC","rule":"mode","sum":117882},{"parent":"FUNC","rule":"multiIf","sum":2},{"parent":"FUNC","rule":"multi_aggregate_by","sum":118866},{"parent":"FUNC","rule":"naNVL","sum":16},{"parent":"FUNC","rule":"nanvl","sum":129219},{"parent":"FUNC","rule":"notEmpty","sum":2},{"parent":"FUNC","rule":"nothing","sum":13084},{"parent":"FUNC","rule":"now","sum":16},{"parent":"FUNC","rule":"nth_value","sum":17},{"parent":"FUNC","rule":"ntile","sum":343},{"parent":"FUNC","rule":"nvL","sum":63},{"parent":"FUNC","rule":"nvl","sum":14055156},{"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":155},{"parent":"FUNC","rule":"parseForErrors","sum":32},{"parent":"FUNC","rule":"parse_dt_formatted","sum":1},{"parent":"FUNC","rule":"parsefile","sum":10971},{"parent":"FUNC","rule":"percent_rank","sum":2230},{"parent":"FUNC","rule":"percentile","sum":3359965},{"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":925},{"parent":"FUNC","rule":"pow","sum":8},{"parent":"FUNC","rule":"power","sum":3},{"parent":"FUNC","rule":"print","sum":1},{"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":261110},{"parent":"FUNC","rule":"randomNumber","sum":10},{"parent":"FUNC","rule":"randomUuid","sum":157},{"parent":"FUNC","rule":"random_number","sum":11},{"parent":"FUNC","rule":"randomnumber","sum":478},{"parent":"FUNC","rule":"randomuuid","sum":34},{"parent":"FUNC","rule":"range","sum":96},{"parent":"FUNC","rule":"rank","sum":221725},{"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":162},{"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":127572},{"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":2193124},{"parent":"FUNC","rule":"rownumber","sum":399},{"parent":"FUNC","rule":"sUBSTRING","sum":3},{"parent":"FUNC","rule":"sUM","sum":449},{"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":179},{"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":172},{"parent":"FUNC","rule":"setincludes","sum":20},{"parent":"FUNC","rule":"setintersection","sum":123},{"parent":"FUNC","rule":"setisdisjoint","sum":1032},{"parent":"FUNC","rule":"setsymmetricdifference","sum":204},{"parent":"FUNC","rule":"setunion","sum":1795},{"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":20426723},{"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":199037},{"parent":"FUNC","rule":"starts_with","sum":14},{"parent":"FUNC","rule":"startswith","sum":19928},{"parent":"FUNC","rule":"staticmap","sum":21},{"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":624851},{"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":884},{"parent":"FUNC","rule":"stddevpop","sum":19},{"parent":"FUNC","rule":"stddevsamp","sum":5},{"parent":"FUNC","rule":"str","sum":3},{"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":188},{"parent":"FUNC","rule":"suM_if","sum":16},{"parent":"FUNC","rule":"subDate","sum":1},{"parent":"FUNC","rule":"subSTRING","sum":1},{"parent":"FUNC","rule":"subString","sum":585},{"parent":"FUNC","rule":"subqueryMergeFor","sum":21},{"parent":"FUNC","rule":"subqueryUnionMergeFor","sum":4378},{"parent":"FUNC","rule":"subquerymergefor","sum":1984},{"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":16592865},{"parent":"FUNC","rule":"substringUTF8","sum":1},{"parent":"FUNC","rule":"substring_index","sum":1},{"parent":"FUNC","rule":"sum","sum":45292139},{"parent":"FUNC","rule":"sumIF","sum":84},{"parent":"FUNC","rule":"sumIf","sum":92909},{"parent":"FUNC","rule":"sum_","sum":356},{"parent":"FUNC","rule":"sum_IF","sum":19678},{"parent":"FUNC","rule":"sum_If","sum":13182},{"parent":"FUNC","rule":"sum_if","sum":4230704},{"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":7489},{"parent":"FUNC","rule":"summ","sum":10},{"parent":"FUNC","rule":"sunstring","sum":2},{"parent":"FUNC","rule":"susbstring","sum":1},{"parent":"FUNC","rule":"tableName","sum":43523},{"parent":"FUNC","rule":"tablePath","sum":1519},{"parent":"FUNC","rule":"tableRecordIndex","sum":19},{"parent":"FUNC","rule":"tableRow","sum":23218},{"parent":"FUNC","rule":"table_name","sum":2883},{"parent":"FUNC","rule":"table_path","sum":45},{"parent":"FUNC","rule":"table_row","sum":377},{"parent":"FUNC","rule":"tablename","sum":166587},{"parent":"FUNC","rule":"tablepath","sum":32910},{"parent":"FUNC","rule":"tablerecordindex","sum":111},{"parent":"FUNC","rule":"tablerow","sum":42998},{"parent":"FUNC","rule":"tablerows","sum":5},{"parent":"FUNC","rule":"testBit","sum":34},{"parent":"FUNC","rule":"testbit","sum":39563},{"parent":"FUNC","rule":"testid","sum":2},{"parent":"FUNC","rule":"timestamp","sum":10135},{"parent":"FUNC","rule":"timestamp64","sum":7},{"parent":"FUNC","rule":"timezone","sum":2},{"parent":"FUNC","rule":"toBytes","sum":26371},{"parent":"FUNC","rule":"toDate","sum":59},{"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":"toDays","sum":1},{"parent":"FUNC","rule":"toDict","sum":97042},{"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":448252},{"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":155},{"parent":"FUNC","rule":"today","sum":1},{"parent":"FUNC","rule":"todict","sum":102846},{"parent":"FUNC","rule":"tomultidict","sum":1198},{"parent":"FUNC","rule":"top","sum":55371},{"parent":"FUNC","rule":"topFreq","sum":99},{"parent":"FUNC","rule":"top_BY","sum":1},{"parent":"FUNC","rule":"top_by","sum":115321},{"parent":"FUNC","rule":"top_freq","sum":107},{"parent":"FUNC","rule":"topfreq","sum":23300},{"parent":"FUNC","rule":"topg","sum":2},{"parent":"FUNC","rule":"toset","sum":39199},{"parent":"FUNC","rule":"trunc","sum":13},{"parent":"FUNC","rule":"truncate","sum":2},{"parent":"FUNC","rule":"tryMember","sum":527},{"parent":"FUNC","rule":"trymember","sum":10273},{"parent":"FUNC","rule":"tupleElement","sum":2},{"parent":"FUNC","rule":"typeOf","sum":38},{"parent":"FUNC","rule":"typeof","sum":397},{"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":118},{"parent":"FUNC","rule":"udaf","sum":17276},{"parent":"FUNC","rule":"uint32","sum":13705},{"parent":"FUNC","rule":"uint64","sum":35},{"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":1180},{"parent":"FUNC","rule":"unwrap","sum":27136138},{"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":2035},{"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":66147},{"parent":"FUNC","rule":"variance_population","sum":4},{"parent":"FUNC","rule":"variance_sample","sum":524},{"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":43731},{"parent":"FUNC","rule":"weakField","sum":1077},{"parent":"FUNC","rule":"weakfield","sum":988043},{"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":"INSERT_HINT","rule":"COLUMN_GROUPS","sum":225},{"parent":"INSERT_HINT","rule":"COMPRESSION_CODEC","sum":864489},{"parent":"INSERT_HINT","rule":"ERASURE_CODEC","sum":67995},{"parent":"INSERT_HINT","rule":"EXPIRATION","sum":7242661},{"parent":"INSERT_HINT","rule":"Expiration","sum":175},{"parent":"INSERT_HINT","rule":"KEEPMETA","sum":10},{"parent":"INSERT_HINT","rule":"KEEP_META","sum":115191},{"parent":"INSERT_HINT","rule":"MODE","sum":2},{"parent":"INSERT_HINT","rule":"MONOTONIC_KEYS","sum":429074},{"parent":"INSERT_HINT","rule":"PRIMARY_MEDIUM","sum":89502},{"parent":"INSERT_HINT","rule":"REPLICATION_FACTOR","sum":7389},{"parent":"INSERT_HINT","rule":"SECURITY_TAGS","sum":4831},{"parent":"INSERT_HINT","rule":"TRUNCATE","sum":111671227},{"parent":"INSERT_HINT","rule":"TRUNCATe","sum":321},{"parent":"INSERT_HINT","rule":"TRUNCAtE","sum":3},{"parent":"INSERT_HINT","rule":"TRUNCAte","sum":11},{"parent":"INSERT_HINT","rule":"TRUNCate","sum":10},{"parent":"INSERT_HINT","rule":"TRUNcATE","sum":6},{"parent":"INSERT_HINT","rule":"TRUnCATE","sum":1},{"parent":"INSERT_HINT","rule":"TRUncATE","sum":322},{"parent":"INSERT_HINT","rule":"TRUncate","sum":10},{"parent":"INSERT_HINT","rule":"TRuNCATE","sum":2},{"parent":"INSERT_HINT","rule":"TRuncaTE","sum":1},{"parent":"INSERT_HINT","rule":"TRuncate","sum":50},{"parent":"INSERT_HINT","rule":"TrUNCATE","sum":1},{"parent":"INSERT_HINT","rule":"Truncate","sum":4643},{"parent":"INSERT_HINT","rule":"USER_ATTRS","sum":2084355},{"parent":"INSERT_HINT","rule":"XLOCK","sum":1},{"parent":"INSERT_HINT","rule":"column_groups","sum":6541},{"parent":"INSERT_HINT","rule":"compression_codec","sum":2023},{"parent":"INSERT_HINT","rule":"erasure_codec","sum":3163},{"parent":"INSERT_HINT","rule":"expiration","sum":338636},{"parent":"INSERT_HINT","rule":"initial","sum":1},{"parent":"INSERT_HINT","rule":"keep_meta","sum":134738},{"parent":"INSERT_HINT","rule":"monotonic_keys","sum":15},{"parent":"INSERT_HINT","rule":"mutation_id","sum":3},{"parent":"INSERT_HINT","rule":"primary_medium","sum":11466},{"parent":"INSERT_HINT","rule":"replication_factor","sum":1},{"parent":"INSERT_HINT","rule":"tRUNCATE","sum":1},{"parent":"INSERT_HINT","rule":"tRUNCAte","sum":1},{"parent":"INSERT_HINT","rule":"trUNCATE","sum":19},{"parent":"INSERT_HINT","rule":"truNCATE","sum":2},{"parent":"INSERT_HINT","rule":"trunCATE","sum":7},{"parent":"INSERT_HINT","rule":"truncate","sum":31067516},{"parent":"INSERT_HINT","rule":"user_attr","sum":1},{"parent":"INSERT_HINT","rule":"user_attrs","sum":67268},{"parent":"KEYWORD","rule":"ABORT","sum":20},{"parent":"KEYWORD","rule":"ACTION","sum":15140547},{"parent":"KEYWORD","rule":"ADD","sum":1097680},{"parent":"KEYWORD","rule":"AFTER","sum":170643},{"parent":"KEYWORD","rule":"ALL","sum":68407457},{"parent":"KEYWORD","rule":"ALTER","sum":72},{"parent":"KEYWORD","rule":"ANALYZE","sum":5861},{"parent":"KEYWORD","rule":"AND","sum":499617854},{"parent":"KEYWORD","rule":"ANY","sum":14739224},{"parent":"KEYWORD","rule":"ARRAY","sum":47490},{"parent":"KEYWORD","rule":"AS","sum":3191320969},{"parent":"KEYWORD","rule":"ASC","sum":11404139},{"parent":"KEYWORD","rule":"ASSUME","sum":2653585},{"parent":"KEYWORD","rule":"ASYNC","sum":32420},{"parent":"KEYWORD","rule":"AT","sum":570055},{"parent":"KEYWORD","rule":"ATTACH","sum":30213},{"parent":"KEYWORD","rule":"ATTRIBUTES","sum":19192984},{"parent":"KEYWORD","rule":"AUTOMAP","sum":1},{"parent":"KEYWORD","rule":"BACKUP","sum":480150},{"parent":"KEYWORD","rule":"BATCH","sum":777254},{"parent":"KEYWORD","rule":"BEFORE","sum":115648},{"parent":"KEYWORD","rule":"BEGIN","sum":14996587},{"parent":"KEYWORD","rule":"BERNOULLI","sum":125782},{"parent":"KEYWORD","rule":"BETWEEN","sum":27434655},{"parent":"KEYWORD","rule":"BITCAST","sum":516962},{"parent":"KEYWORD","rule":"BY","sum":293888555},{"parent":"KEYWORD","rule":"CALLABLE","sum":11017342},{"parent":"KEYWORD","rule":"CASCADE","sum":6},{"parent":"KEYWORD","rule":"CASE","sum":62013190},{"parent":"KEYWORD","rule":"CAST","sum":399425614},{"parent":"KEYWORD","rule":"CHECK","sum":1306921},{"parent":"KEYWORD","rule":"CLASSIFIER","sum":32389},{"parent":"KEYWORD","rule":"COLLECTION","sum":233346},{"parent":"KEYWORD","rule":"COLUMN","sum":1199069},{"parent":"KEYWORD","rule":"COLUMNS","sum":9586995},{"parent":"KEYWORD","rule":"COMMIT","sum":13068360},{"parent":"KEYWORD","rule":"COMPACT","sum":4826758},{"parent":"KEYWORD","rule":"CONDITIONAL","sum":40362},{"parent":"KEYWORD","rule":"CONFLICT","sum":493},{"parent":"KEYWORD","rule":"CONNECT","sum":41497},{"parent":"KEYWORD","rule":"CONSTRAINT","sum":1235},{"parent":"KEYWORD","rule":"CONSUMER","sum":673115},{"parent":"KEYWORD","rule":"COVER","sum":42405},{"parent":"KEYWORD","rule":"CREATE","sum":449774},{"parent":"KEYWORD","rule":"CROSS","sum":3108046},{"parent":"KEYWORD","rule":"CUBE","sum":371916},{"parent":"KEYWORD","rule":"CURRENT","sum":3606127},{"parent":"KEYWORD","rule":"CURRENT_DATE","sum":2894412},{"parent":"KEYWORD","rule":"CURRENT_TIME","sum":583690},{"parent":"KEYWORD","rule":"CURRENT_TIMESTAMP","sum":589598},{"parent":"KEYWORD","rule":"DATA","sum":65702878},{"parent":"KEYWORD","rule":"DATABASE","sum":21193},{"parent":"KEYWORD","rule":"DECIMAL","sum":28187759},{"parent":"KEYWORD","rule":"DECLARE","sum":156792290},{"parent":"KEYWORD","rule":"DEFAULT","sum":1604032},{"parent":"KEYWORD","rule":"DEFERRED","sum":902},{"parent":"KEYWORD","rule":"DEFINE","sum":44751639},{"parent":"KEYWORD","rule":"DELETE","sum":19493},{"parent":"KEYWORD","rule":"DESC","sum":22095112},{"parent":"KEYWORD","rule":"DESCRIBE","sum":40},{"parent":"KEYWORD","rule":"DICT","sum":9923692},{"parent":"KEYWORD","rule":"DIRECTORY","sum":201912},{"parent":"KEYWORD","rule":"DISABLE","sum":313158},{"parent":"KEYWORD","rule":"DISCARD","sum":931019},{"parent":"KEYWORD","rule":"DISTINCT","sum":71048223},{"parent":"KEYWORD","rule":"DO","sum":37700462},{"parent":"KEYWORD","rule":"DROP","sum":2676674},{"parent":"KEYWORD","rule":"EACH","sum":18045183},{"parent":"KEYWORD","rule":"ELSE","sum":65051198},{"parent":"KEYWORD","rule":"EMPTY","sum":477937},{"parent":"KEYWORD","rule":"EMPTY_ACTION","sum":126380},{"parent":"KEYWORD","rule":"ENCRYPTED","sum":8973},{"parent":"KEYWORD","rule":"END","sum":108172892},{"parent":"KEYWORD","rule":"ENUM","sum":79387},{"parent":"KEYWORD","rule":"ERASE","sum":25532},{"parent":"KEYWORD","rule":"ERROR","sum":3492039},{"parent":"KEYWORD","rule":"ESCAPE","sum":1176049},{"parent":"KEYWORD","rule":"EVALUATE","sum":15637931},{"parent":"KEYWORD","rule":"EXCEPT","sum":562},{"parent":"KEYWORD","rule":"EXCLUDE","sum":240053},{"parent":"KEYWORD","rule":"EXCLUSION","sum":434271},{"parent":"KEYWORD","rule":"EXCLUSIVE","sum":2103},{"parent":"KEYWORD","rule":"EXISTS","sum":679423},{"parent":"KEYWORD","rule":"EXPLAIN","sum":77},{"parent":"KEYWORD","rule":"EXPORT","sum":505667},{"parent":"KEYWORD","rule":"EXTERNAL","sum":43331},{"parent":"KEYWORD","rule":"FAIL","sum":50133},{"parent":"KEYWORD","rule":"FALSE","sum":57888821},{"parent":"KEYWORD","rule":"FAMILY","sum":164621},{"parent":"KEYWORD","rule":"FILTER","sum":3873974},{"parent":"KEYWORD","rule":"FIRST","sum":784473},{"parent":"KEYWORD","rule":"FLATTEN","sum":34215436},{"parent":"KEYWORD","rule":"FLOW","sum":144090},{"parent":"KEYWORD","rule":"FOLLOWING","sum":979399},{"parent":"KEYWORD","rule":"FOR","sum":7050918},{"parent":"KEYWORD","rule":"FOREIGN","sum":21688},{"parent":"KEYWORD","rule":"FROM","sum":874058868},{"parent":"KEYWORD","rule":"FULL","sum":6177643},{"parent":"KEYWORD","rule":"FUNCTION","sum":81034},{"parent":"KEYWORD","rule":"GLOB","sum":5073},{"parent":"KEYWORD","rule":"GLOBAL","sum":293},{"parent":"KEYWORD","rule":"GRANT","sum":42987},{"parent":"KEYWORD","rule":"GROUP","sum":139923226},{"parent":"KEYWORD","rule":"GROUPING","sum":190047},{"parent":"KEYWORD","rule":"GROUPS","sum":1785345},{"parent":"KEYWORD","rule":"HASH","sum":6389784},{"parent":"KEYWORD","rule":"HAVING","sum":12007005},{"parent":"KEYWORD","rule":"HOP","sum":23},{"parent":"KEYWORD","rule":"IF","sum":128627611},{"parent":"KEYWORD","rule":"IGNORE","sum":8308713},{"parent":"KEYWORD","rule":"ILIKE","sum":10613820},{"parent":"KEYWORD","rule":"IMPORT","sum":16686234},{"parent":"KEYWORD","rule":"IN","sum":133742190},{"parent":"KEYWORD","rule":"INCREMENT","sum":558054},{"parent":"KEYWORD","rule":"INDEX","sum":2383417},{"parent":"KEYWORD","rule":"INDEXED","sum":184557},{"parent":"KEYWORD","rule":"INITIAL","sum":147066},{"parent":"KEYWORD","rule":"INNER","sum":30890968},{"parent":"KEYWORD","rule":"INSERT","sum":209792885},{"parent":"KEYWORD","rule":"INTERSECT","sum":49949},{"parent":"KEYWORD","rule":"INTO","sum":212610245},{"parent":"KEYWORD","rule":"IS","sum":173663787},{"parent":"KEYWORD","rule":"ISNULL","sum":5476},{"parent":"KEYWORD","rule":"JOIN","sum":210067566},{"parent":"KEYWORD","rule":"JSON_EXISTS","sum":184354},{"parent":"KEYWORD","rule":"JSON_QUERY","sum":316589},{"parent":"KEYWORD","rule":"JSON_VALUE","sum":6154167},{"parent":"KEYWORD","rule":"KEY","sum":39514934},{"parent":"KEYWORD","rule":"LAST","sum":976740},{"parent":"KEYWORD","rule":"LEFT","sum":120149213},{"parent":"KEYWORD","rule":"LEGACY","sum":18374},{"parent":"KEYWORD","rule":"LIKE","sum":41030922},{"parent":"KEYWORD","rule":"LIMIT","sum":33412717},{"parent":"KEYWORD","rule":"LIST","sum":50632334},{"parent":"KEYWORD","rule":"LOCAL","sum":4569},{"parent":"KEYWORD","rule":"LOGIN","sum":39271221},{"parent":"KEYWORD","rule":"MANAGE","sum":320160},{"parent":"KEYWORD","rule":"MATCH","sum":2546299},{"parent":"KEYWORD","rule":"MATCHES","sum":236320},{"parent":"KEYWORD","rule":"MATCH_RECOGNIZE","sum":1},{"parent":"KEYWORD","rule":"MEASURES","sum":35552},{"parent":"KEYWORD","rule":"MICROSECONDS","sum":6884},{"parent":"KEYWORD","rule":"MILLISECONDS","sum":4426235},{"parent":"KEYWORD","rule":"MODIFY","sum":4434},{"parent":"KEYWORD","rule":"NANOSECONDS","sum":488},{"parent":"KEYWORD","rule":"NEXT","sum":278533},{"parent":"KEYWORD","rule":"NO","sum":91482},{"parent":"KEYWORD","rule":"NOT","sum":186046250},{"parent":"KEYWORD","rule":"NOTNULL","sum":2174},{"parent":"KEYWORD","rule":"NULL","sum":253066440},{"parent":"KEYWORD","rule":"NULLS","sum":7298561},{"parent":"KEYWORD","rule":"OBJECT","sum":2234714},{"parent":"KEYWORD","rule":"OF","sum":1747513},{"parent":"KEYWORD","rule":"OFFSET","sum":6124731},{"parent":"KEYWORD","rule":"ON","sum":174603959},{"parent":"KEYWORD","rule":"ONE","sum":179399},{"parent":"KEYWORD","rule":"ONLY","sum":17310526},{"parent":"KEYWORD","rule":"OPTION","sum":365128},{"parent":"KEYWORD","rule":"OPTIONAL","sum":33347970},{"parent":"KEYWORD","rule":"OR","sum":115474847},{"parent":"KEYWORD","rule":"ORDER","sum":121503528},{"parent":"KEYWORD","rule":"OTHERS","sum":57263},{"parent":"KEYWORD","rule":"OUTER","sum":297175},{"parent":"KEYWORD","rule":"OVER","sum":45477559},{"parent":"KEYWORD","rule":"OWNER","sum":7128894},{"parent":"KEYWORD","rule":"PARALLEL","sum":1677},{"parent":"KEYWORD","rule":"PARTITION","sum":22815081},{"parent":"KEYWORD","rule":"PASSING","sum":20022},{"parent":"KEYWORD","rule":"PASSWORD","sum":35045},{"parent":"KEYWORD","rule":"PAST","sum":448562},{"parent":"KEYWORD","rule":"PATTERN","sum":471538},{"parent":"KEYWORD","rule":"PER","sum":51541},{"parent":"KEYWORD","rule":"PERMUTE","sum":60},{"parent":"KEYWORD","rule":"PLAN","sum":1507049},{"parent":"KEYWORD","rule":"POOL","sum":84747916},{"parent":"KEYWORD","rule":"PRAGMA","sum":900857162},{"parent":"KEYWORD","rule":"PRECEDING","sum":2395479},{"parent":"KEYWORD","rule":"PRESORT","sum":309613},{"parent":"KEYWORD","rule":"PRIMARY","sum":77532},{"parent":"KEYWORD","rule":"PROCESS","sum":5035742},{"parent":"KEYWORD","rule":"QUERY","sum":16700391},{"parent":"KEYWORD","rule":"QUEUE","sum":5028110},{"parent":"KEYWORD","rule":"RAISE","sum":80},{"parent":"KEYWORD","rule":"RANGE","sum":34178688},{"parent":"KEYWORD","rule":"REDUCE","sum":930444},{"parent":"KEYWORD","rule":"REFERENCES","sum":117434},{"parent":"KEYWORD","rule":"REGEXP","sum":4545892},{"parent":"KEYWORD","rule":"REINDEX","sum":16},{"parent":"KEYWORD","rule":"RELEASE","sum":31801},{"parent":"KEYWORD","rule":"REMOVE","sum":324614},{"parent":"KEYWORD","rule":"RENAME","sum":18041},{"parent":"KEYWORD","rule":"REPEATABLE","sum":9382},{"parent":"KEYWORD","rule":"REPLACE","sum":9224091},{"parent":"KEYWORD","rule":"REPLICATION","sum":80},{"parent":"KEYWORD","rule":"RESET","sum":66966},{"parent":"KEYWORD","rule":"RESOURCE","sum":692688},{"parent":"KEYWORD","rule":"RESPECT","sum":45},{"parent":"KEYWORD","rule":"RESTART","sum":89},{"parent":"KEYWORD","rule":"RESTORE","sum":150},{"parent":"KEYWORD","rule":"RESTRICT","sum":693},{"parent":"KEYWORD","rule":"RESULT","sum":35050793},{"parent":"KEYWORD","rule":"RETURN","sum":166802548},{"parent":"KEYWORD","rule":"RETURNING","sum":1331865},{"parent":"KEYWORD","rule":"REVERT","sum":45},{"parent":"KEYWORD","rule":"REVOKE","sum":10},{"parent":"KEYWORD","rule":"RIGHT","sum":2551125},{"parent":"KEYWORD","rule":"RLIKE","sum":545045},{"parent":"KEYWORD","rule":"ROLLBACK","sum":5476},{"parent":"KEYWORD","rule":"ROLLUP","sum":167291},{"parent":"KEYWORD","rule":"ROW","sum":17361901},{"parent":"KEYWORD","rule":"ROWS","sum":5567923},{"parent":"KEYWORD","rule":"SAMPLE","sum":1175534},{"parent":"KEYWORD","rule":"SCHEMA","sum":20038913},{"parent":"KEYWORD","rule":"SECONDS","sum":1124664},{"parent":"KEYWORD","rule":"SEEK","sum":31},{"parent":"KEYWORD","rule":"SELECT","sum":907217677},{"parent":"KEYWORD","rule":"SEMI","sum":2942603},{"parent":"KEYWORD","rule":"SEQUENCE","sum":124757},{"parent":"KEYWORD","rule":"SET","sum":63617},{"parent":"KEYWORD","rule":"SETS","sum":164950},{"parent":"KEYWORD","rule":"SHOW","sum":359109},{"parent":"KEYWORD","rule":"SOURCE","sum":25946400},{"parent":"KEYWORD","rule":"START","sum":14010422},{"parent":"KEYWORD","rule":"STREAM","sum":2017171},{"parent":"KEYWORD","rule":"STRUCT","sum":27615632},{"parent":"KEYWORD","rule":"SUBQUERY","sum":16023107},{"parent":"KEYWORD","rule":"SUBSET","sum":38704},{"parent":"KEYWORD","rule":"SYMBOLS","sum":16686411},{"parent":"KEYWORD","rule":"SYMMETRIC","sum":26},{"parent":"KEYWORD","rule":"SYNC","sum":61036},{"parent":"KEYWORD","rule":"SYSTEM","sum":556679},{"parent":"KEYWORD","rule":"TABLE","sum":44310526},{"parent":"KEYWORD","rule":"TABLES","sum":5309885},{"parent":"KEYWORD","rule":"TABLESAMPLE","sum":329247},{"parent":"KEYWORD","rule":"TAGGED","sum":82548},{"parent":"KEYWORD","rule":"TEMP","sum":6279100},{"parent":"KEYWORD","rule":"TEMPORARY","sum":15221},{"parent":"KEYWORD","rule":"THEN","sum":158730928},{"parent":"KEYWORD","rule":"TIES","sum":89},{"parent":"KEYWORD","rule":"TO","sum":1801515},{"parent":"KEYWORD","rule":"TOPIC","sum":12388311},{"parent":"KEYWORD","rule":"TRANSACTION","sum":515613},{"parent":"KEYWORD","rule":"TRANSFER","sum":160114},{"parent":"KEYWORD","rule":"TRIGGER","sum":233646},{"parent":"KEYWORD","rule":"TRUE","sum":46741617},{"parent":"KEYWORD","rule":"TUPLE","sum":3020519},{"parent":"KEYWORD","rule":"TYPE","sum":105264622},{"parent":"KEYWORD","rule":"UNBOUNDED","sum":2506338},{"parent":"KEYWORD","rule":"UNCONDITIONAL","sum":126246},{"parent":"KEYWORD","rule":"UNION","sum":65064443},{"parent":"KEYWORD","rule":"UNIQUE","sum":2276422},{"parent":"KEYWORD","rule":"UNKNOWN","sum":696408},{"parent":"KEYWORD","rule":"UNMATCHED","sum":21458},{"parent":"KEYWORD","rule":"UPDATE","sum":4900616},{"parent":"KEYWORD","rule":"UPSERT","sum":121636},{"parent":"KEYWORD","rule":"USE","sum":330556967},{"parent":"KEYWORD","rule":"USER","sum":7320829},{"parent":"KEYWORD","rule":"USING","sum":35330151},{"parent":"KEYWORD","rule":"VACUUM","sum":116},{"parent":"KEYWORD","rule":"VALUES","sum":3662842},{"parent":"KEYWORD","rule":"VARIANT","sum":461574},{"parent":"KEYWORD","rule":"VIEW","sum":2335873},{"parent":"KEYWORD","rule":"VIRTUAL","sum":49406},{"parent":"KEYWORD","rule":"WHEN","sum":158747397},{"parent":"KEYWORD","rule":"WHERE","sum":341529965},{"parent":"KEYWORD","rule":"WINDOW","sum":14012916},{"parent":"KEYWORD","rule":"WITH","sum":163350148},{"parent":"KEYWORD","rule":"WITHOUT","sum":25028587},{"parent":"KEYWORD","rule":"WRAPPER","sum":192773},{"parent":"KEYWORD","rule":"XOR","sum":29511},{"parent":"MODULE","rule":"Compress","sum":84557},{"parent":"MODULE","rule":"DATETIME","sum":1116},{"parent":"MODULE","rule":"DATEtime","sum":2},{"parent":"MODULE","rule":"DAteTime","sum":3197},{"parent":"MODULE","rule":"DAtetime","sum":7},{"parent":"MODULE","rule":"DIgest","sum":2},{"parent":"MODULE","rule":"DaTETIME","sum":330},{"parent":"MODULE","rule":"DaTeTime","sum":84},{"parent":"MODULE","rule":"DateTIME","sum":723},{"parent":"MODULE","rule":"DateTIme","sum":4377},{"parent":"MODULE","rule":"DateTime","sum":275922461},{"parent":"MODULE","rule":"DatetIme","sum":366},{"parent":"MODULE","rule":"Datetime","sum":7139738},{"parent":"MODULE","rule":"Decompress","sum":24958},{"parent":"MODULE","rule":"Digest","sum":7752078},{"parent":"MODULE","rule":"HyperScan","sum":2270},{"parent":"MODULE","rule":"Hyperscan","sum":391141},{"parent":"MODULE","rule":"Ip","sum":1332384},{"parent":"MODULE","rule":"JSON","sum":26868},{"parent":"MODULE","rule":"JSon","sum":2},{"parent":"MODULE","rule":"Json","sum":1000957},{"parent":"MODULE","rule":"MATH","sum":216},{"parent":"MODULE","rule":"MAth","sum":1},{"parent":"MODULE","rule":"Math","sum":45129415},{"parent":"MODULE","rule":"PG","sum":201},{"parent":"MODULE","rule":"PIRE","sum":29},{"parent":"MODULE","rule":"Pg","sum":4910},{"parent":"MODULE","rule":"PgAgg","sum":2},{"parent":"MODULE","rule":"PgProc","sum":2},{"parent":"MODULE","rule":"Pire","sum":1913717},{"parent":"MODULE","rule":"Protobuf","sum":272315},{"parent":"MODULE","rule":"RE2","sum":5210},{"parent":"MODULE","rule":"Re2","sum":12256127},{"parent":"MODULE","rule":"STRING","sum":31},{"parent":"MODULE","rule":"String","sum":95856698},{"parent":"MODULE","rule":"TryDecompress","sum":4825},{"parent":"MODULE","rule":"URL","sum":53},{"parent":"MODULE","rule":"Unicode","sum":4931335},{"parent":"MODULE","rule":"Url","sum":23599129},{"parent":"MODULE","rule":"YSON","sum":483},{"parent":"MODULE","rule":"YSon","sum":26},{"parent":"MODULE","rule":"Yson","sum":396694825},{"parent":"MODULE","rule":"dateTime","sum":483},{"parent":"MODULE","rule":"datetime","sum":14258},{"parent":"MODULE","rule":"digest","sum":15},{"parent":"MODULE","rule":"json","sum":8},{"parent":"MODULE","rule":"math","sum":178},{"parent":"MODULE","rule":"pg","sum":1844},{"parent":"MODULE","rule":"pire","sum":36},{"parent":"MODULE","rule":"re2","sum":3252},{"parent":"MODULE","rule":"string","sum":103},{"parent":"MODULE","rule":"url","sum":6},{"parent":"MODULE","rule":"ySoN","sum":1},{"parent":"MODULE","rule":"yson","sum":73},{"parent":"MODULE_FUNC","rule":"Compress::BZip2","sum":2},{"parent":"MODULE_FUNC","rule":"Compress::BlockCodec","sum":6},{"parent":"MODULE_FUNC","rule":"Compress::Brotli","sum":158},{"parent":"MODULE_FUNC","rule":"Compress::Gzip","sum":83567},{"parent":"MODULE_FUNC","rule":"Compress::Lz4","sum":630},{"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":734},{"parent":"MODULE_FUNC","rule":"DATETIME::MakeDatetime","sum":281},{"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":596},{"parent":"MODULE_FUNC","rule":"DAteTime::Parse","sum":150},{"parent":"MODULE_FUNC","rule":"DAteTime::StartOfMonth","sum":2440},{"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":330},{"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":75},{"parent":"MODULE_FUNC","rule":"DateTIme::IntervalFromDays","sum":46},{"parent":"MODULE_FUNC","rule":"DateTIme::MakeDate","sum":3624},{"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":15},{"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":4},{"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":31},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfDay","sum":457},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfMonth","sum":39967},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfQuarter","sum":434},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfWeek","sum":700},{"parent":"MODULE_FUNC","rule":"DateTime::EndOfYear","sum":159},{"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":39883228},{"parent":"MODULE_FUNC","rule":"DateTime::FormatTime","sum":6},{"parent":"MODULE_FUNC","rule":"DateTime::FromDays","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::FromMicroSeconds","sum":347},{"parent":"MODULE_FUNC","rule":"DateTime::FromMicroseconds","sum":4727932},{"parent":"MODULE_FUNC","rule":"DateTime::FromMicroseconds64","sum":175},{"parent":"MODULE_FUNC","rule":"DateTime::FromMilliSeconds","sum":48},{"parent":"MODULE_FUNC","rule":"DateTime::FromMilliSeconds64","sum":13},{"parent":"MODULE_FUNC","rule":"DateTime::FromMilliseconds","sum":9251322},{"parent":"MODULE_FUNC","rule":"DateTime::FromMilliseconds64","sum":1137},{"parent":"MODULE_FUNC","rule":"DateTime::FromSecond","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::FromSeconds","sum":15178873},{"parent":"MODULE_FUNC","rule":"DateTime::FromSeconds64","sum":1201},{"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":604386},{"parent":"MODULE_FUNC","rule":"DateTime::GetDayOfWeek","sum":639764},{"parent":"MODULE_FUNC","rule":"DateTime::GetDayOfWeekName","sum":126690},{"parent":"MODULE_FUNC","rule":"DateTime::GetDayOfYear","sum":44849},{"parent":"MODULE_FUNC","rule":"DateTime::GetHour","sum":1456870},{"parent":"MODULE_FUNC","rule":"DateTime::GetIntervalLength","sum":12},{"parent":"MODULE_FUNC","rule":"DateTime::GetLastDayOfMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::GetMicrosecondOfSecond","sum":1228},{"parent":"MODULE_FUNC","rule":"DateTime::GetMillisecondOfSecond","sum":31},{"parent":"MODULE_FUNC","rule":"DateTime::GetMinute","sum":287562},{"parent":"MODULE_FUNC","rule":"DateTime::GetMonth","sum":707908},{"parent":"MODULE_FUNC","rule":"DateTime::GetMonthName","sum":39490},{"parent":"MODULE_FUNC","rule":"DateTime::GetMonthOfYear","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::GetSecond","sum":84581},{"parent":"MODULE_FUNC","rule":"DateTime::GetTimezoneId","sum":105},{"parent":"MODULE_FUNC","rule":"DateTime::GetTimezoneName","sum":512},{"parent":"MODULE_FUNC","rule":"DateTime::GetWeek","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::GetWeekOfYear","sum":507533},{"parent":"MODULE_FUNC","rule":"DateTime::GetWeekOfYearIso8601","sum":34952},{"parent":"MODULE_FUNC","rule":"DateTime::GetYEAR","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::GetYear","sum":795744},{"parent":"MODULE_FUNC","rule":"DateTime::Getmonth","sum":24},{"parent":"MODULE_FUNC","rule":"DateTime::Interval","sum":33},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromDays","sum":2374},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromHours","sum":4731},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromMicroseconds","sum":10},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromMilliseconds","sum":40},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromMinutes","sum":226},{"parent":"MODULE_FUNC","rule":"DateTime::Interval64FromSeconds","sum":200},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFROMDays","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFrom","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromDays","sum":15040135},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromHDays","sum":28},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromHours","sum":8990692},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMicroseconds","sum":78478},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMilliseconds","sum":518252},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMinute","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMinutes","sum":4299944},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMonth","sum":9},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromMonths","sum":7},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromSeconds","sum":930326},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalFromYears","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::IntervalfromDays","sum":32},{"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":23268806},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDate32","sum":73},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDateTime","sum":401},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDatetime","sum":36578590},{"parent":"MODULE_FUNC","rule":"DateTime::MakeDatetime64","sum":131},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTimestamp","sum":7846791},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTimestamp64","sum":295},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDate","sum":263241},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDate32","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDateTime","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDatetime","sum":3125311},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzDatetime64","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzTimestamp","sum":154779},{"parent":"MODULE_FUNC","rule":"DateTime::MakeTzTimestamp64","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::Makedate","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::Makedatetime","sum":8},{"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":23497626},{"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":27026},{"parent":"MODULE_FUNC","rule":"DateTime::ParseIso","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ParseIso8601","sum":18634887},{"parent":"MODULE_FUNC","rule":"DateTime::ParseRfc822","sum":1864},{"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":187},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftMinutes","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftMonth","sum":11},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftMonths","sum":3325455},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftQuarters","sum":392141},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftWeek","sum":7},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftWeeks","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ShiftYears","sum":676181},{"parent":"MODULE_FUNC","rule":"DateTime::Split","sum":697412},{"parent":"MODULE_FUNC","rule":"DateTime::StartOf","sum":2349112},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfDay","sum":2667465},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfHour","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfMohth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfMonth","sum":4176127},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfQuarter","sum":559698},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfWeek","sum":2078604},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfYear","sum":948432},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfmonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::StartOfweek","sum":3},{"parent":"MODULE_FUNC","rule":"DateTime::StartofMonth","sum":6},{"parent":"MODULE_FUNC","rule":"DateTime::TimeOfDay","sum":66823},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromMicroSeconds","sum":364},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromMilliSeconds","sum":2455},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromMinutes","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromSeconds","sum":391},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampFromString","sum":422},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampStartOfMonth","sum":819},{"parent":"MODULE_FUNC","rule":"DateTime::TimestampStartOfWeek","sum":398},{"parent":"MODULE_FUNC","rule":"DateTime::To","sum":5},{"parent":"MODULE_FUNC","rule":"DateTime::ToDate","sum":1413},{"parent":"MODULE_FUNC","rule":"DateTime::ToDateTime","sum":6},{"parent":"MODULE_FUNC","rule":"DateTime::ToDays","sum":3480539},{"parent":"MODULE_FUNC","rule":"DateTime::ToHours","sum":1322837},{"parent":"MODULE_FUNC","rule":"DateTime::ToIsoFormat","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ToMicroseconds","sum":2238948},{"parent":"MODULE_FUNC","rule":"DateTime::ToMilliseconds","sum":5351906},{"parent":"MODULE_FUNC","rule":"DateTime::ToMinutes","sum":868711},{"parent":"MODULE_FUNC","rule":"DateTime::ToMonth","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::ToMonths","sum":2},{"parent":"MODULE_FUNC","rule":"DateTime::ToSeconds","sum":23463369},{"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":3567595},{"parent":"MODULE_FUNC","rule":"DateTime::format","sum":1},{"parent":"MODULE_FUNC","rule":"DateTime::fromSeconds","sum":15},{"parent":"MODULE_FUNC","rule":"DateTime::makeDate","sum":1},{"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":366},{"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":215},{"parent":"MODULE_FUNC","rule":"Datetime::EndOfWeek","sum":104},{"parent":"MODULE_FUNC","rule":"Datetime::Format","sum":366401},{"parent":"MODULE_FUNC","rule":"Datetime::FromMicroseconds","sum":36237},{"parent":"MODULE_FUNC","rule":"Datetime::FromMicroseconds64","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::FromMilliseconds","sum":802725},{"parent":"MODULE_FUNC","rule":"Datetime::FromSeconds","sum":568395},{"parent":"MODULE_FUNC","rule":"Datetime::FromSeconds64","sum":29},{"parent":"MODULE_FUNC","rule":"Datetime::GetDay","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::GetDayOfMonth","sum":701},{"parent":"MODULE_FUNC","rule":"Datetime::GetDayOfWeek","sum":12377},{"parent":"MODULE_FUNC","rule":"Datetime::GetDayOfWeekName","sum":838},{"parent":"MODULE_FUNC","rule":"Datetime::GetDayOfYear","sum":59},{"parent":"MODULE_FUNC","rule":"Datetime::GetHour","sum":14926},{"parent":"MODULE_FUNC","rule":"Datetime::GetMinute","sum":13952},{"parent":"MODULE_FUNC","rule":"Datetime::GetMonth","sum":1041},{"parent":"MODULE_FUNC","rule":"Datetime::GetMonthName","sum":349},{"parent":"MODULE_FUNC","rule":"Datetime::GetWeekOfYear","sum":2697},{"parent":"MODULE_FUNC","rule":"Datetime::GetWeekOfYearIso8601","sum":3},{"parent":"MODULE_FUNC","rule":"Datetime::GetYear","sum":2764},{"parent":"MODULE_FUNC","rule":"Datetime::Interval","sum":9},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFROMDays","sum":10},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromDays","sum":375392},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromHours","sum":268217},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromMicroseconds","sum":194},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromMilliseconds","sum":91},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromMinutes","sum":50476},{"parent":"MODULE_FUNC","rule":"Datetime::IntervalFromSeconds","sum":9682},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDate","sum":682816},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDate32","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDateTime","sum":2},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDatetime","sum":923606},{"parent":"MODULE_FUNC","rule":"Datetime::MakeDatetime64","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTimestamp","sum":412332},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTzDate","sum":2339},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTzDatetime","sum":24493},{"parent":"MODULE_FUNC","rule":"Datetime::MakeTzTimestamp","sum":33462},{"parent":"MODULE_FUNC","rule":"Datetime::Makedate","sum":37},{"parent":"MODULE_FUNC","rule":"Datetime::Parse","sum":138374},{"parent":"MODULE_FUNC","rule":"Datetime::ParseIso8601","sum":259540},{"parent":"MODULE_FUNC","rule":"Datetime::ShiftMonths","sum":25893},{"parent":"MODULE_FUNC","rule":"Datetime::ShiftQuarters","sum":561},{"parent":"MODULE_FUNC","rule":"Datetime::ShiftYears","sum":333},{"parent":"MODULE_FUNC","rule":"Datetime::Split","sum":207},{"parent":"MODULE_FUNC","rule":"Datetime::StarOfWeek","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::StartOf","sum":64208},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfDay","sum":24485},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfMonth","sum":74980},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfQuarter","sum":4440},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfWeek","sum":23101},{"parent":"MODULE_FUNC","rule":"Datetime::StartOfYear","sum":11700},{"parent":"MODULE_FUNC","rule":"Datetime::TimeOfDay","sum":121},{"parent":"MODULE_FUNC","rule":"Datetime::ToDatetime","sum":12},{"parent":"MODULE_FUNC","rule":"Datetime::ToDays","sum":142671},{"parent":"MODULE_FUNC","rule":"Datetime::ToHours","sum":22974},{"parent":"MODULE_FUNC","rule":"Datetime::ToMicroseconds","sum":594},{"parent":"MODULE_FUNC","rule":"Datetime::ToMilliseconds","sum":121225},{"parent":"MODULE_FUNC","rule":"Datetime::ToMinutes","sum":45638},{"parent":"MODULE_FUNC","rule":"Datetime::ToSeconds","sum":1542105},{"parent":"MODULE_FUNC","rule":"Datetime::Update","sum":29592},{"parent":"MODULE_FUNC","rule":"Datetime::split","sum":1},{"parent":"MODULE_FUNC","rule":"Datetime::startOfmonth","sum":3},{"parent":"MODULE_FUNC","rule":"Decompress::BZip2","sum":525},{"parent":"MODULE_FUNC","rule":"Decompress::Brotli","sum":7877},{"parent":"MODULE_FUNC","rule":"Decompress::Gzip","sum":3875},{"parent":"MODULE_FUNC","rule":"Decompress::Lz4","sum":903},{"parent":"MODULE_FUNC","rule":"Decompress::Snappy","sum":458},{"parent":"MODULE_FUNC","rule":"Decompress::Zlib","sum":11289},{"parent":"MODULE_FUNC","rule":"Decompress::Zstd","sum":31},{"parent":"MODULE_FUNC","rule":"Digest::Argon2","sum":48395},{"parent":"MODULE_FUNC","rule":"Digest::Blake2B","sum":4505},{"parent":"MODULE_FUNC","rule":"Digest::CityHash","sum":1233478},{"parent":"MODULE_FUNC","rule":"Digest::CityHash128","sum":18331},{"parent":"MODULE_FUNC","rule":"Digest::Crc32c","sum":76791},{"parent":"MODULE_FUNC","rule":"Digest::Crc64","sum":141102},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint","sum":70611},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint128","sum":21},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint2","sum":168021},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint32","sum":196},{"parent":"MODULE_FUNC","rule":"Digest::FarmHashFingerprint64","sum":1054756},{"parent":"MODULE_FUNC","rule":"Digest::Fnv32","sum":1746},{"parent":"MODULE_FUNC","rule":"Digest::Fnv64","sum":261115},{"parent":"MODULE_FUNC","rule":"Digest::IntHash64","sum":18036},{"parent":"MODULE_FUNC","rule":"Digest::MD5Hex","sum":7},{"parent":"MODULE_FUNC","rule":"Digest::Md5","sum":2},{"parent":"MODULE_FUNC","rule":"Digest::Md5HalfMix","sum":429950},{"parent":"MODULE_FUNC","rule":"Digest::Md5Hex","sum":570452},{"parent":"MODULE_FUNC","rule":"Digest::Md5Raw","sum":15682},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash","sum":2438433},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash2A","sum":2526},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash2A32","sum":825},{"parent":"MODULE_FUNC","rule":"Digest::MurMurHash32","sum":255241},{"parent":"MODULE_FUNC","rule":"Digest::MurMurhash","sum":2},{"parent":"MODULE_FUNC","rule":"Digest::NimericHash","sum":3},{"parent":"MODULE_FUNC","rule":"Digest::NumericHash","sum":281580},{"parent":"MODULE_FUNC","rule":"Digest::Sha1","sum":42729},{"parent":"MODULE_FUNC","rule":"Digest::Sha256","sum":401820},{"parent":"MODULE_FUNC","rule":"Digest::SipHash","sum":133034},{"parent":"MODULE_FUNC","rule":"Digest::SuperFastHash","sum":35357},{"parent":"MODULE_FUNC","rule":"Digest::XXH3","sum":47306},{"parent":"MODULE_FUNC","rule":"Digest::XXH3_128","sum":22},{"parent":"MODULE_FUNC","rule":"Digest::murmurhash","sum":3},{"parent":"MODULE_FUNC","rule":"HyperScan::BacktrackingGrep","sum":1},{"parent":"MODULE_FUNC","rule":"HyperScan::Grep","sum":2263},{"parent":"MODULE_FUNC","rule":"HyperScan::Match","sum":6},{"parent":"MODULE_FUNC","rule":"Hyperscan::BacktrackingGrep","sum":50608},{"parent":"MODULE_FUNC","rule":"Hyperscan::BacktrackingMatch","sum":129},{"parent":"MODULE_FUNC","rule":"Hyperscan::Capture","sum":5532},{"parent":"MODULE_FUNC","rule":"Hyperscan::Grep","sum":144521},{"parent":"MODULE_FUNC","rule":"Hyperscan::Match","sum":52414},{"parent":"MODULE_FUNC","rule":"Hyperscan::MultiGrep","sum":64},{"parent":"MODULE_FUNC","rule":"Hyperscan::MultiMatch","sum":40524},{"parent":"MODULE_FUNC","rule":"Hyperscan::Replace","sum":97349},{"parent":"MODULE_FUNC","rule":"Ip::ConvertToIPv6","sum":45141},{"parent":"MODULE_FUNC","rule":"Ip::FromString","sum":392805},{"parent":"MODULE_FUNC","rule":"Ip::GetSubnet","sum":135330},{"parent":"MODULE_FUNC","rule":"Ip::GetSubnetByMask","sum":4},{"parent":"MODULE_FUNC","rule":"Ip::IsEmbeddedIPv4","sum":6947},{"parent":"MODULE_FUNC","rule":"Ip::IsIPv4","sum":135888},{"parent":"MODULE_FUNC","rule":"Ip::IsIPv6","sum":118294},{"parent":"MODULE_FUNC","rule":"Ip::SubnetFromString","sum":569},{"parent":"MODULE_FUNC","rule":"Ip::SubnetMatch","sum":516},{"parent":"MODULE_FUNC","rule":"Ip::ToFixedIPv6String","sum":3812},{"parent":"MODULE_FUNC","rule":"Ip::ToString","sum":493078},{"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":259},{"parent":"MODULE_FUNC","rule":"JSON::PARSE","sum":2},{"parent":"MODULE_FUNC","rule":"JSON::Parse","sum":3554},{"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":117},{"parent":"MODULE_FUNC","rule":"Json::ConvertToString","sum":169},{"parent":"MODULE_FUNC","rule":"Json::ConvertToStringDict","sum":5},{"parent":"MODULE_FUNC","rule":"Json::ConvertToStringList","sum":19},{"parent":"MODULE_FUNC","rule":"Json::From","sum":4018},{"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":808376},{"parent":"MODULE_FUNC","rule":"Json::LookupString","sum":53},{"parent":"MODULE_FUNC","rule":"Json::Options","sum":852},{"parent":"MODULE_FUNC","rule":"Json::Parse","sum":183283},{"parent":"MODULE_FUNC","rule":"Json::ParseJson","sum":217},{"parent":"MODULE_FUNC","rule":"Json::Serialize","sum":1558},{"parent":"MODULE_FUNC","rule":"Json::SerializeJson","sum":934},{"parent":"MODULE_FUNC","rule":"Json::SerializePretty","sum":1136},{"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":7},{"parent":"MODULE_FUNC","rule":"MATH::Cos","sum":5},{"parent":"MODULE_FUNC","rule":"MATH::EXP","sum":1},{"parent":"MODULE_FUNC","rule":"MATH::Log","sum":5},{"parent":"MODULE_FUNC","rule":"MATH::NearbyINT","sum":1},{"parent":"MODULE_FUNC","rule":"MATH::NearbyInt","sum":1},{"parent":"MODULE_FUNC","rule":"MATH::ROUND","sum":194},{"parent":"MODULE_FUNC","rule":"MATH::Round","sum":1},{"parent":"MODULE_FUNC","rule":"MATH::Sigmoid","sum":1},{"parent":"MODULE_FUNC","rule":"MAth::Round","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Abs","sum":477751},{"parent":"MODULE_FUNC","rule":"Math::Acos","sum":13940},{"parent":"MODULE_FUNC","rule":"Math::Asin","sum":11850},{"parent":"MODULE_FUNC","rule":"Math::Asinh","sum":4},{"parent":"MODULE_FUNC","rule":"Math::Atan","sum":8001},{"parent":"MODULE_FUNC","rule":"Math::Atan2","sum":13656},{"parent":"MODULE_FUNC","rule":"Math::Cbrt","sum":499},{"parent":"MODULE_FUNC","rule":"Math::Ceil","sum":1243601},{"parent":"MODULE_FUNC","rule":"Math::Cos","sum":102867},{"parent":"MODULE_FUNC","rule":"Math::Cosh","sum":5},{"parent":"MODULE_FUNC","rule":"Math::Crbt","sum":1},{"parent":"MODULE_FUNC","rule":"Math::E","sum":9592},{"parent":"MODULE_FUNC","rule":"Math::EXP","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Eps","sum":179},{"parent":"MODULE_FUNC","rule":"Math::Erf","sum":2571},{"parent":"MODULE_FUNC","rule":"Math::ErfInv","sum":42},{"parent":"MODULE_FUNC","rule":"Math::ErfcInv","sum":6},{"parent":"MODULE_FUNC","rule":"Math::Exp","sum":557432},{"parent":"MODULE_FUNC","rule":"Math::Exp2","sum":1896},{"parent":"MODULE_FUNC","rule":"Math::Fabs","sum":144275},{"parent":"MODULE_FUNC","rule":"Math::Floor","sum":328631},{"parent":"MODULE_FUNC","rule":"Math::Flor","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Fmod","sum":9},{"parent":"MODULE_FUNC","rule":"Math::FuzzyEquals","sum":20073},{"parent":"MODULE_FUNC","rule":"Math::Hypot","sum":18932},{"parent":"MODULE_FUNC","rule":"Math::IsFinite","sum":187126},{"parent":"MODULE_FUNC","rule":"Math::IsInf","sum":77827},{"parent":"MODULE_FUNC","rule":"Math::IsNaN","sum":250614},{"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":822425},{"parent":"MODULE_FUNC","rule":"Math::Log10","sum":155984},{"parent":"MODULE_FUNC","rule":"Math::Log2","sum":197686},{"parent":"MODULE_FUNC","rule":"Math::Max","sum":3},{"parent":"MODULE_FUNC","rule":"Math::Min","sum":1},{"parent":"MODULE_FUNC","rule":"Math::Mod","sum":66821},{"parent":"MODULE_FUNC","rule":"Math::NearbyInt","sum":437889},{"parent":"MODULE_FUNC","rule":"Math::Pi","sum":76334},{"parent":"MODULE_FUNC","rule":"Math::Pow","sum":1337716},{"parent":"MODULE_FUNC","rule":"Math::Power","sum":6},{"parent":"MODULE_FUNC","rule":"Math::ROUND","sum":7},{"parent":"MODULE_FUNC","rule":"Math::Rem","sum":2241},{"parent":"MODULE_FUNC","rule":"Math::Remainder","sum":163},{"parent":"MODULE_FUNC","rule":"Math::Rint","sum":20317},{"parent":"MODULE_FUNC","rule":"Math::Round","sum":36951846},{"parent":"MODULE_FUNC","rule":"Math::RoundDownward","sum":140193},{"parent":"MODULE_FUNC","rule":"Math::RoundToNearest","sum":77617},{"parent":"MODULE_FUNC","rule":"Math::RoundTowardZero","sum":887},{"parent":"MODULE_FUNC","rule":"Math::RoundUpward","sum":219263},{"parent":"MODULE_FUNC","rule":"Math::SQRT","sum":8},{"parent":"MODULE_FUNC","rule":"Math::Sigmoid","sum":278316},{"parent":"MODULE_FUNC","rule":"Math::Sin","sum":87071},{"parent":"MODULE_FUNC","rule":"Math::Sinh","sum":6023},{"parent":"MODULE_FUNC","rule":"Math::Sqrt","sum":612516},{"parent":"MODULE_FUNC","rule":"Math::Tan","sum":5112},{"parent":"MODULE_FUNC","rule":"Math::Tanh","sum":5032},{"parent":"MODULE_FUNC","rule":"Math::Tgamma","sum":60},{"parent":"MODULE_FUNC","rule":"Math::Trunc","sum":156248},{"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":18},{"parent":"MODULE_FUNC","rule":"Math::floor","sum":55},{"parent":"MODULE_FUNC","rule":"Math::isnan","sum":1},{"parent":"MODULE_FUNC","rule":"Math::pow","sum":1},{"parent":"MODULE_FUNC","rule":"Math::round","sum":99},{"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":104},{"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":52},{"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":9},{"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":1523},{"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":1771},{"parent":"MODULE_FUNC","rule":"Pg::to_char","sum":18},{"parent":"MODULE_FUNC","rule":"Pg::to_timestamp","sum":79},{"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":525813},{"parent":"MODULE_FUNC","rule":"Pire::Grep","sum":144439},{"parent":"MODULE_FUNC","rule":"Pire::Match","sum":235092},{"parent":"MODULE_FUNC","rule":"Pire::MultiGrep","sum":684},{"parent":"MODULE_FUNC","rule":"Pire::MultiMatch","sum":152},{"parent":"MODULE_FUNC","rule":"Pire::Replace","sum":1007537},{"parent":"MODULE_FUNC","rule":"Protobuf::Parse","sum":21267},{"parent":"MODULE_FUNC","rule":"Protobuf::Serialize","sum":104073},{"parent":"MODULE_FUNC","rule":"Protobuf::TryParse","sum":146975},{"parent":"MODULE_FUNC","rule":"RE2::Capture","sum":4074},{"parent":"MODULE_FUNC","rule":"RE2::Count","sum":370},{"parent":"MODULE_FUNC","rule":"RE2::FindAndConsume","sum":31},{"parent":"MODULE_FUNC","rule":"RE2::Grep","sum":68},{"parent":"MODULE_FUNC","rule":"RE2::Match","sum":543},{"parent":"MODULE_FUNC","rule":"RE2::Replace","sum":124},{"parent":"MODULE_FUNC","rule":"Re2::Capture","sum":4426150},{"parent":"MODULE_FUNC","rule":"Re2::Catch","sum":1},{"parent":"MODULE_FUNC","rule":"Re2::Compile","sum":4},{"parent":"MODULE_FUNC","rule":"Re2::Count","sum":172459},{"parent":"MODULE_FUNC","rule":"Re2::FindAll","sum":2},{"parent":"MODULE_FUNC","rule":"Re2::FindAllSubmatch","sum":2},{"parent":"MODULE_FUNC","rule":"Re2::FindAndConsume","sum":389398},{"parent":"MODULE_FUNC","rule":"Re2::Grep","sum":657664},{"parent":"MODULE_FUNC","rule":"Re2::Match","sum":1681940},{"parent":"MODULE_FUNC","rule":"Re2::Options","sum":246586},{"parent":"MODULE_FUNC","rule":"Re2::Replace","sum":4681906},{"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::Contains","sum":2},{"parent":"MODULE_FUNC","rule":"STRING::RemoveAll","sum":1},{"parent":"MODULE_FUNC","rule":"STRING::ReplaceFirst","sum":20},{"parent":"MODULE_FUNC","rule":"STRING::SplitToList","sum":5},{"parent":"MODULE_FUNC","rule":"String::ASciiToLower","sum":2},{"parent":"MODULE_FUNC","rule":"String::AsciiToLower","sum":4129718},{"parent":"MODULE_FUNC","rule":"String::AsciiToTitle","sum":98428},{"parent":"MODULE_FUNC","rule":"String::AsciiToUpper","sum":546689},{"parent":"MODULE_FUNC","rule":"String::AsciiTolower","sum":5},{"parent":"MODULE_FUNC","rule":"String::Base32Decode","sum":276},{"parent":"MODULE_FUNC","rule":"String::Base32Encode","sum":196},{"parent":"MODULE_FUNC","rule":"String::Base32StrictDecode","sum":56},{"parent":"MODULE_FUNC","rule":"String::Base64Decode","sum":396077},{"parent":"MODULE_FUNC","rule":"String::Base64Encode","sum":112569},{"parent":"MODULE_FUNC","rule":"String::Base64EncodeUrl","sum":5853},{"parent":"MODULE_FUNC","rule":"String::Base64StrictDecode","sum":96311},{"parent":"MODULE_FUNC","rule":"String::Bin","sum":496},{"parent":"MODULE_FUNC","rule":"String::BinText","sum":121},{"parent":"MODULE_FUNC","rule":"String::CgiEscape","sum":74375},{"parent":"MODULE_FUNC","rule":"String::CgiUnescape","sum":24260},{"parent":"MODULE_FUNC","rule":"String::ColapseText","sum":4},{"parent":"MODULE_FUNC","rule":"String::Collapse","sum":201577},{"parent":"MODULE_FUNC","rule":"String::CollapseText","sum":202243},{"parent":"MODULE_FUNC","rule":"String::Contains","sum":6171324},{"parent":"MODULE_FUNC","rule":"String::DecodeHtml","sum":3052},{"parent":"MODULE_FUNC","rule":"String::EncodeHtml","sum":415},{"parent":"MODULE_FUNC","rule":"String::EndsWith","sum":538944},{"parent":"MODULE_FUNC","rule":"String::EndsWithIgnoreCase","sum":36066},{"parent":"MODULE_FUNC","rule":"String::EscapeC","sum":55954},{"parent":"MODULE_FUNC","rule":"String::Find","sum":653752},{"parent":"MODULE_FUNC","rule":"String::From","sum":2},{"parent":"MODULE_FUNC","rule":"String::FromByteList","sum":1039651},{"parent":"MODULE_FUNC","rule":"String::HasPrefix","sum":21399},{"parent":"MODULE_FUNC","rule":"String::HasPrefixIgnoreCase","sum":49},{"parent":"MODULE_FUNC","rule":"String::HasSuffix","sum":4898},{"parent":"MODULE_FUNC","rule":"String::HasSuffixIgnoreCase","sum":28654},{"parent":"MODULE_FUNC","rule":"String::Hex","sum":381613},{"parent":"MODULE_FUNC","rule":"String::HexDecode","sum":166472},{"parent":"MODULE_FUNC","rule":"String::HexEncode","sum":196478},{"parent":"MODULE_FUNC","rule":"String::HexText","sum":78340},{"parent":"MODULE_FUNC","rule":"String::HumanReadableBytes","sum":260},{"parent":"MODULE_FUNC","rule":"String::HumanReadableDuration","sum":1132817},{"parent":"MODULE_FUNC","rule":"String::HumanReadableQuantity","sum":344},{"parent":"MODULE_FUNC","rule":"String::IsAscii","sum":14113},{"parent":"MODULE_FUNC","rule":"String::IsAsciiAlnum","sum":1024},{"parent":"MODULE_FUNC","rule":"String::IsAsciiAlpha","sum":383},{"parent":"MODULE_FUNC","rule":"String::IsAsciiDigit","sum":8385},{"parent":"MODULE_FUNC","rule":"String::IsAsciiHex","sum":19397},{"parent":"MODULE_FUNC","rule":"String::IsAsciiLower","sum":22},{"parent":"MODULE_FUNC","rule":"String::IsAsciiSpace","sum":13},{"parent":"MODULE_FUNC","rule":"String::IsAsciiUpper","sum":361},{"parent":"MODULE_FUNC","rule":"String::Join","sum":2},{"parent":"MODULE_FUNC","rule":"String::JoinFROMList","sum":31064},{"parent":"MODULE_FUNC","rule":"String::JoinFromList","sum":14043281},{"parent":"MODULE_FUNC","rule":"String::LeftPad","sum":66755},{"parent":"MODULE_FUNC","rule":"String::Length","sum":2},{"parent":"MODULE_FUNC","rule":"String::LevenshteinDistance","sum":4},{"parent":"MODULE_FUNC","rule":"String::LevensteinDistance","sum":11867},{"parent":"MODULE_FUNC","rule":"String::Prec","sum":1845},{"parent":"MODULE_FUNC","rule":"String::RaplaceAll","sum":3},{"parent":"MODULE_FUNC","rule":"String::RemoveAll","sum":1249625},{"parent":"MODULE_FUNC","rule":"String::RemoveFirst","sum":643653},{"parent":"MODULE_FUNC","rule":"String::RemoveLast","sum":560035},{"parent":"MODULE_FUNC","rule":"String::Replace","sum":15},{"parent":"MODULE_FUNC","rule":"String::ReplaceALL","sum":3},{"parent":"MODULE_FUNC","rule":"String::ReplaceAll","sum":15745280},{"parent":"MODULE_FUNC","rule":"String::ReplaceFirst","sum":1371180},{"parent":"MODULE_FUNC","rule":"String::ReplaceFirstStartsWith","sum":1},{"parent":"MODULE_FUNC","rule":"String::ReplaceLast","sum":175893},{"parent":"MODULE_FUNC","rule":"String::ReplaceRegex","sum":1},{"parent":"MODULE_FUNC","rule":"String::Reverse","sum":119905},{"parent":"MODULE_FUNC","rule":"String::ReverseFind","sum":38777},{"parent":"MODULE_FUNC","rule":"String::RightPad","sum":378937},{"parent":"MODULE_FUNC","rule":"String::SBin","sum":7},{"parent":"MODULE_FUNC","rule":"String::SHex","sum":6272},{"parent":"MODULE_FUNC","rule":"String::Split","sum":10},{"parent":"MODULE_FUNC","rule":"String::SplitToList","sum":31992556},{"parent":"MODULE_FUNC","rule":"String::SplitToSet","sum":12},{"parent":"MODULE_FUNC","rule":"String::SplitTolist","sum":13},{"parent":"MODULE_FUNC","rule":"String::Splittolist","sum":2},{"parent":"MODULE_FUNC","rule":"String::StartWith","sum":1},{"parent":"MODULE_FUNC","rule":"String::StartsWith","sum":3453365},{"parent":"MODULE_FUNC","rule":"String::StartsWithIgnoreCase","sum":55738},{"parent":"MODULE_FUNC","rule":"String::Strip","sum":3186400},{"parent":"MODULE_FUNC","rule":"String::Substring","sum":304256},{"parent":"MODULE_FUNC","rule":"String::ToByteList","sum":140742},{"parent":"MODULE_FUNC","rule":"String::ToLower","sum":5306981},{"parent":"MODULE_FUNC","rule":"String::ToLowerCase","sum":1},{"parent":"MODULE_FUNC","rule":"String::ToTitle","sum":34745},{"parent":"MODULE_FUNC","rule":"String::ToUpper","sum":141158},{"parent":"MODULE_FUNC","rule":"String::Trim","sum":3},{"parent":"MODULE_FUNC","rule":"String::UnescapeC","sum":352860},{"parent":"MODULE_FUNC","rule":"String::contains","sum":3},{"parent":"MODULE_FUNC","rule":"String::splittolist","sum":1},{"parent":"MODULE_FUNC","rule":"String::strip","sum":4},{"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":1012},{"parent":"MODULE_FUNC","rule":"TryDecompress::Lz4","sum":171},{"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":3590},{"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":"URL::GetOwner","sum":40},{"parent":"MODULE_FUNC","rule":"URL::Normalize","sum":6},{"parent":"MODULE_FUNC","rule":"Unicode::FInd","sum":4},{"parent":"MODULE_FUNC","rule":"Unicode::Find","sum":154963},{"parent":"MODULE_FUNC","rule":"Unicode::Fold","sum":29226},{"parent":"MODULE_FUNC","rule":"Unicode::FromCodePointList","sum":120339},{"parent":"MODULE_FUNC","rule":"Unicode::GetLength","sum":595220},{"parent":"MODULE_FUNC","rule":"Unicode::GetLengthn","sum":1},{"parent":"MODULE_FUNC","rule":"Unicode::IsAlnum","sum":545},{"parent":"MODULE_FUNC","rule":"Unicode::IsAlpha","sum":460},{"parent":"MODULE_FUNC","rule":"Unicode::IsAscii","sum":719},{"parent":"MODULE_FUNC","rule":"Unicode::IsDigit","sum":8978},{"parent":"MODULE_FUNC","rule":"Unicode::IsHex","sum":5},{"parent":"MODULE_FUNC","rule":"Unicode::IsLower","sum":96},{"parent":"MODULE_FUNC","rule":"Unicode::IsSpace","sum":18},{"parent":"MODULE_FUNC","rule":"Unicode::IsUnicodeSet","sum":448},{"parent":"MODULE_FUNC","rule":"Unicode::IsUpper","sum":1803},{"parent":"MODULE_FUNC","rule":"Unicode::IsUtf","sum":671535},{"parent":"MODULE_FUNC","rule":"Unicode::JoinFromList","sum":204153},{"parent":"MODULE_FUNC","rule":"Unicode::Length","sum":2},{"parent":"MODULE_FUNC","rule":"Unicode::LevensteinDistance","sum":40464},{"parent":"MODULE_FUNC","rule":"Unicode::Normalize","sum":111830},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFC","sum":517},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFD","sum":36},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFKC","sum":6970},{"parent":"MODULE_FUNC","rule":"Unicode::NormalizeNFKD","sum":1785},{"parent":"MODULE_FUNC","rule":"Unicode::RFind","sum":73416},{"parent":"MODULE_FUNC","rule":"Unicode::RemoveAll","sum":138640},{"parent":"MODULE_FUNC","rule":"Unicode::RemoveFirst","sum":7632},{"parent":"MODULE_FUNC","rule":"Unicode::RemoveLast","sum":7675},{"parent":"MODULE_FUNC","rule":"Unicode::ReplaceAll","sum":275447},{"parent":"MODULE_FUNC","rule":"Unicode::ReplaceFirst","sum":1715},{"parent":"MODULE_FUNC","rule":"Unicode::ReplaceLast","sum":318},{"parent":"MODULE_FUNC","rule":"Unicode::Reverse","sum":53941},{"parent":"MODULE_FUNC","rule":"Unicode::SUBSTRING","sum":2},{"parent":"MODULE_FUNC","rule":"Unicode::SplitToList","sum":183435},{"parent":"MODULE_FUNC","rule":"Unicode::Strip","sum":65408},{"parent":"MODULE_FUNC","rule":"Unicode::Substring","sum":604211},{"parent":"MODULE_FUNC","rule":"Unicode::ToCodePointList","sum":122752},{"parent":"MODULE_FUNC","rule":"Unicode::ToLower","sum":1193919},{"parent":"MODULE_FUNC","rule":"Unicode::ToTitle","sum":35194},{"parent":"MODULE_FUNC","rule":"Unicode::ToUint64","sum":447},{"parent":"MODULE_FUNC","rule":"Unicode::ToUpper","sum":111889},{"parent":"MODULE_FUNC","rule":"Unicode::Translit","sum":103239},{"parent":"MODULE_FUNC","rule":"Unicode::TryToUint64","sum":1938},{"parent":"MODULE_FUNC","rule":"Url::AsciiToLower","sum":1},{"parent":"MODULE_FUNC","rule":"Url::BuildQueryString","sum":26041},{"parent":"MODULE_FUNC","rule":"Url::CanBePunycodeHostName","sum":6519},{"parent":"MODULE_FUNC","rule":"Url::CutQueryStringAndFragment","sum":232483},{"parent":"MODULE_FUNC","rule":"Url::CutScheme","sum":1143458},{"parent":"MODULE_FUNC","rule":"Url::CutWWW","sum":867649},{"parent":"MODULE_FUNC","rule":"Url::CutWWW2","sum":740870},{"parent":"MODULE_FUNC","rule":"Url::Decode","sum":1694148},{"parent":"MODULE_FUNC","rule":"Url::Encode","sum":372537},{"parent":"MODULE_FUNC","rule":"Url::ForceHostNameToPunycode","sum":201392},{"parent":"MODULE_FUNC","rule":"Url::ForcePunycodeToHostName","sum":132566},{"parent":"MODULE_FUNC","rule":"Url::GEtPath","sum":5},{"parent":"MODULE_FUNC","rule":"Url::GetCGIParam","sum":1816638},{"parent":"MODULE_FUNC","rule":"Url::GetCgiParam","sum":7},{"parent":"MODULE_FUNC","rule":"Url::GetDomain","sum":1128500},{"parent":"MODULE_FUNC","rule":"Url::GetDomainLevel","sum":70869},{"parent":"MODULE_FUNC","rule":"Url::GetFragment","sum":491},{"parent":"MODULE_FUNC","rule":"Url::GetHost","sum":4064328},{"parent":"MODULE_FUNC","rule":"Url::GetHostPort","sum":197440},{"parent":"MODULE_FUNC","rule":"Url::GetOwner","sum":1402345},{"parent":"MODULE_FUNC","rule":"Url::GetPath","sum":1696043},{"parent":"MODULE_FUNC","rule":"Url::GetPort","sum":822090},{"parent":"MODULE_FUNC","rule":"Url::GetScheme","sum":2069232},{"parent":"MODULE_FUNC","rule":"Url::GetSchemeHost","sum":146095},{"parent":"MODULE_FUNC","rule":"Url::GetSchemeHostPort","sum":701539},{"parent":"MODULE_FUNC","rule":"Url::GetSignificantDomain","sum":459812},{"parent":"MODULE_FUNC","rule":"Url::GetTLD","sum":35530},{"parent":"MODULE_FUNC","rule":"Url::GetTail","sum":579230},{"parent":"MODULE_FUNC","rule":"Url::Getowner","sum":1},{"parent":"MODULE_FUNC","rule":"Url::HostNameToPunycode","sum":581560},{"parent":"MODULE_FUNC","rule":"Url::IsAllowedByRobotsTxt","sum":7},{"parent":"MODULE_FUNC","rule":"Url::IsKnownTLD","sum":21025},{"parent":"MODULE_FUNC","rule":"Url::IsWellKnownTLD","sum":4891},{"parent":"MODULE_FUNC","rule":"Url::Normalize","sum":1058335},{"parent":"MODULE_FUNC","rule":"Url::NormalizeWithDefaultHttpScheme","sum":627031},{"parent":"MODULE_FUNC","rule":"Url::Parse","sum":300344},{"parent":"MODULE_FUNC","rule":"Url::PunycodeToHostName","sum":203755},{"parent":"MODULE_FUNC","rule":"Url::QueryStringToDict","sum":155530},{"parent":"MODULE_FUNC","rule":"Url::QueryStringToList","sum":38784},{"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":13},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToDouble","sum":4},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToDoubleList","sum":10},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToInt64","sum":5},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToList","sum":37},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToString","sum":177},{"parent":"MODULE_FUNC","rule":"YSON::ConvertToStringList","sum":174},{"parent":"MODULE_FUNC","rule":"YSON::From","sum":13},{"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":6},{"parent":"MODULE_FUNC","rule":"YSON::LookupInt64","sum":1},{"parent":"MODULE_FUNC","rule":"YSON::LookupList","sum":4},{"parent":"MODULE_FUNC","rule":"YSON::LookupString","sum":7},{"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":12},{"parent":"MODULE_FUNC","rule":"YSon::ConvertToList","sum":3},{"parent":"MODULE_FUNC","rule":"YSon::ConvertToString","sum":2},{"parent":"MODULE_FUNC","rule":"YSon::LookupString","sum":4},{"parent":"MODULE_FUNC","rule":"YSon::Parse","sum":5},{"parent":"MODULE_FUNC","rule":"Yson::AsList","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Attributes","sum":1871},{"parent":"MODULE_FUNC","rule":"Yson::COntains","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::COnvertToDouble","sum":7},{"parent":"MODULE_FUNC","rule":"Yson::COnvertToString","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::CastToStringList","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Contains","sum":2963512},{"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::ConvertTOInt64","sum":10},{"parent":"MODULE_FUNC","rule":"Yson::ConvertTOList","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertTo","sum":8915300},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToAttributes","sum":16},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBool","sum":8770158},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBoolDict","sum":105066},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToBoolList","sum":7459},{"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":8518949},{"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":9561196},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDoubleDict","sum":281239},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToDoubleList","sum":1207062},{"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":3},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt32List","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt64","sum":20470188},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt64Dict","sum":186638},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInt64List","sum":2409532},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToIntList","sum":5},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToInteget","sum":180},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToJson","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToList","sum":19055025},{"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":97084981},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStringDict","sum":1453032},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStringInt64","sum":4},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToStringList","sum":24420655},{"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":1066},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUInt64List","sum":4},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint32","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint64","sum":8522752},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint64Dict","sum":36344},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUint64List","sum":2194314},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToUnit64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToevent_value","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::ConvertToint64","sum":13},{"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::ConverttoBool","sum":6},{"parent":"MODULE_FUNC","rule":"Yson::ConverttoInt64","sum":4},{"parent":"MODULE_FUNC","rule":"Yson::ConverttoList","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::ConverttoString","sum":13},{"parent":"MODULE_FUNC","rule":"Yson::Converttostring","sum":28},{"parent":"MODULE_FUNC","rule":"Yson::ConvvertToString","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Dict","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::Equals","sum":799601},{"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":25307118},{"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::FromBytes","sum":17},{"parent":"MODULE_FUNC","rule":"Yson::FromDict","sum":3075},{"parent":"MODULE_FUNC","rule":"Yson::FromDouble","sum":2768},{"parent":"MODULE_FUNC","rule":"Yson::FromDouble64Dict","sum":3663},{"parent":"MODULE_FUNC","rule":"Yson::FromDoubleDict","sum":42557},{"parent":"MODULE_FUNC","rule":"Yson::FromDoubleList","sum":981},{"parent":"MODULE_FUNC","rule":"Yson::FromInt32","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromInt64","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::FromInt64Dict","sum":2134},{"parent":"MODULE_FUNC","rule":"Yson::FromInt64List","sum":7437},{"parent":"MODULE_FUNC","rule":"Yson::FromJson","sum":2196},{"parent":"MODULE_FUNC","rule":"Yson::FromKek","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::FromList","sum":4896},{"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":56310},{"parent":"MODULE_FUNC","rule":"Yson::FromStringDict","sum":69847},{"parent":"MODULE_FUNC","rule":"Yson::FromStringList","sum":58827},{"parent":"MODULE_FUNC","rule":"Yson::FromStruct","sum":658126},{"parent":"MODULE_FUNC","rule":"Yson::FromUi64List","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::FromUin64List","sum":378},{"parent":"MODULE_FUNC","rule":"Yson::FromUint32Dict","sum":10236},{"parent":"MODULE_FUNC","rule":"Yson::FromUint64","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::FromUint64Dict","sum":15964},{"parent":"MODULE_FUNC","rule":"Yson::FromUint64List","sum":25824},{"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::GetBool","sum":43},{"parent":"MODULE_FUNC","rule":"Yson::GetHash","sum":867376},{"parent":"MODULE_FUNC","rule":"Yson::GetLength","sum":2821320},{"parent":"MODULE_FUNC","rule":"Yson::ISDict","sum":6},{"parent":"MODULE_FUNC","rule":"Yson::ISList","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::IsBool","sum":33609},{"parent":"MODULE_FUNC","rule":"Yson::IsDict","sum":254643},{"parent":"MODULE_FUNC","rule":"Yson::IsDouble","sum":101289},{"parent":"MODULE_FUNC","rule":"Yson::IsEntity","sum":2672410},{"parent":"MODULE_FUNC","rule":"Yson::IsInt64","sum":288474},{"parent":"MODULE_FUNC","rule":"Yson::IsList","sum":287576},{"parent":"MODULE_FUNC","rule":"Yson::IsString","sum":1032724},{"parent":"MODULE_FUNC","rule":"Yson::IsUint64","sum":153100},{"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":16},{"parent":"MODULE_FUNC","rule":"Yson::LookUpDict","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookUpInt64","sum":11},{"parent":"MODULE_FUNC","rule":"Yson::LookUpString","sum":8},{"parent":"MODULE_FUNC","rule":"Yson::Lookup","sum":6599827},{"parent":"MODULE_FUNC","rule":"Yson::LookupBool","sum":2154016},{"parent":"MODULE_FUNC","rule":"Yson::LookupDict","sum":403310},{"parent":"MODULE_FUNC","rule":"Yson::LookupDouble","sum":3064290},{"parent":"MODULE_FUNC","rule":"Yson::LookupInt","sum":16},{"parent":"MODULE_FUNC","rule":"Yson::LookupInt32","sum":91},{"parent":"MODULE_FUNC","rule":"Yson::LookupInt64","sum":5509623},{"parent":"MODULE_FUNC","rule":"Yson::LookupInteger","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookupList","sum":1625649},{"parent":"MODULE_FUNC","rule":"Yson::LookupSTRING","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LookupString","sum":41534098},{"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":7},{"parent":"MODULE_FUNC","rule":"Yson::LookupUint64","sum":3806322},{"parent":"MODULE_FUNC","rule":"Yson::LookupsTRING","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::LoopUpString","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::Options","sum":9261343},{"parent":"MODULE_FUNC","rule":"Yson::Parse","sum":8676471},{"parent":"MODULE_FUNC","rule":"Yson::ParseJSON","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::ParseJson","sum":12624816},{"parent":"MODULE_FUNC","rule":"Yson::ParseJsonDecodeUtf8","sum":133168},{"parent":"MODULE_FUNC","rule":"Yson::Parsejson","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::Path","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::Serialize","sum":3883724},{"parent":"MODULE_FUNC","rule":"Yson::SerializeJSON","sum":5},{"parent":"MODULE_FUNC","rule":"Yson::SerializeJson","sum":9897316},{"parent":"MODULE_FUNC","rule":"Yson::SerializeJsonEncodeUtf8","sum":202661},{"parent":"MODULE_FUNC","rule":"Yson::SerializePretty","sum":1189975},{"parent":"MODULE_FUNC","rule":"Yson::SerializeText","sum":615049},{"parent":"MODULE_FUNC","rule":"Yson::TryGet","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::WithAttributes","sum":660},{"parent":"MODULE_FUNC","rule":"Yson::YPath","sum":12652442},{"parent":"MODULE_FUNC","rule":"Yson::YPathBool","sum":1182739},{"parent":"MODULE_FUNC","rule":"Yson::YPathBoolean","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::YPathDict","sum":25919},{"parent":"MODULE_FUNC","rule":"Yson::YPathDouble","sum":1360827},{"parent":"MODULE_FUNC","rule":"Yson::YPathInt16","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::YPathInt64","sum":2746595},{"parent":"MODULE_FUNC","rule":"Yson::YPathList","sum":1429308},{"parent":"MODULE_FUNC","rule":"Yson::YPathListString","sum":7},{"parent":"MODULE_FUNC","rule":"Yson::YPathString","sum":13653535},{"parent":"MODULE_FUNC","rule":"Yson::YPathUInt64","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::YPathUint64","sum":709028},{"parent":"MODULE_FUNC","rule":"Yson::YaPathString","sum":2},{"parent":"MODULE_FUNC","rule":"Yson::Ypath","sum":53},{"parent":"MODULE_FUNC","rule":"Yson::YpathString","sum":15},{"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::convertToUint64List","sum":9},{"parent":"MODULE_FUNC","rule":"Yson::converttostring","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::from","sum":52},{"parent":"MODULE_FUNC","rule":"Yson::fromJson","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::lookupString","sum":1},{"parent":"MODULE_FUNC","rule":"Yson::parseJson","sum":3},{"parent":"MODULE_FUNC","rule":"Yson::ypathstring","sum":11},{"parent":"MODULE_FUNC","rule":"dateTime::Format","sum":3},{"parent":"MODULE_FUNC","rule":"dateTime::GetMonth","sum":6},{"parent":"MODULE_FUNC","rule":"dateTime::IntervalFromDays","sum":375},{"parent":"MODULE_FUNC","rule":"dateTime::IntervalFromSeconds","sum":1},{"parent":"MODULE_FUNC","rule":"dateTime::MakeDate","sum":89},{"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":3696},{"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":106},{"parent":"MODULE_FUNC","rule":"datetime::GetYear","sum":115},{"parent":"MODULE_FUNC","rule":"datetime::IntervalFromDays","sum":1335},{"parent":"MODULE_FUNC","rule":"datetime::IntervalFromHours","sum":37},{"parent":"MODULE_FUNC","rule":"datetime::IntervalFromMinutes","sum":6},{"parent":"MODULE_FUNC","rule":"datetime::MakeDate","sum":5364},{"parent":"MODULE_FUNC","rule":"datetime::MakeDatetime","sum":664},{"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":314},{"parent":"MODULE_FUNC","rule":"datetime::StartOf","sum":1},{"parent":"MODULE_FUNC","rule":"datetime::StartOfDay","sum":2},{"parent":"MODULE_FUNC","rule":"datetime::StartOfMonth","sum":529},{"parent":"MODULE_FUNC","rule":"datetime::StartOfWeek","sum":533},{"parent":"MODULE_FUNC","rule":"datetime::ToDays","sum":374},{"parent":"MODULE_FUNC","rule":"datetime::ToSeconds","sum":740},{"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::Floor","sum":1},{"parent":"MODULE_FUNC","rule":"math::Round","sum":4},{"parent":"MODULE_FUNC","rule":"math::floor","sum":2},{"parent":"MODULE_FUNC","rule":"math::log","sum":2},{"parent":"MODULE_FUNC","rule":"math::pow","sum":6},{"parent":"MODULE_FUNC","rule":"math::round","sum":163},{"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":761},{"parent":"MODULE_FUNC","rule":"pg::array_agg","sum":2},{"parent":"MODULE_FUNC","rule":"pg::date_part","sum":740},{"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":2789},{"parent":"MODULE_FUNC","rule":"re2::Grep","sum":1},{"parent":"MODULE_FUNC","rule":"re2::Match","sum":24},{"parent":"MODULE_FUNC","rule":"re2::Replace","sum":430},{"parent":"MODULE_FUNC","rule":"re2::capture","sum":8},{"parent":"MODULE_FUNC","rule":"string::AsciiToLower","sum":6},{"parent":"MODULE_FUNC","rule":"string::HexDecode","sum":2},{"parent":"MODULE_FUNC","rule":"string::HexEncode","sum":2},{"parent":"MODULE_FUNC","rule":"string::HexText","sum":1},{"parent":"MODULE_FUNC","rule":"string::JoinFromList","sum":8},{"parent":"MODULE_FUNC","rule":"string::ReplaceFirst","sum":14},{"parent":"MODULE_FUNC","rule":"string::Reverse","sum":4},{"parent":"MODULE_FUNC","rule":"string::SplitToList","sum":14},{"parent":"MODULE_FUNC","rule":"string::StartsWith","sum":1},{"parent":"MODULE_FUNC","rule":"string::contains","sum":4},{"parent":"MODULE_FUNC","rule":"string::joinfromlist","sum":17},{"parent":"MODULE_FUNC","rule":"string::removeall","sum":4},{"parent":"MODULE_FUNC","rule":"string::replaceall","sum":11},{"parent":"MODULE_FUNC","rule":"string::splittolist","sum":13},{"parent":"MODULE_FUNC","rule":"string::strip","sum":2},{"parent":"MODULE_FUNC","rule":"url::Decode","sum":1},{"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":7},{"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::SerializeJson","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":7},{"parent":"MODULE_FUNC","rule":"yson::converttostringdict","sum":8},{"parent":"MODULE_FUNC","rule":"yson::from","sum":6},{"parent":"MODULE_FUNC","rule":"yson::options","sum":8},{"parent":"MODULE_FUNC","rule":"yson::parsejson","sum":16},{"parent":"PRAGMA","rule":"AllowDotInAlias","sum":259035},{"parent":"PRAGMA","rule":"AllowUnnamedColumns","sum":4},{"parent":"PRAGMA","rule":"AnsiCurrentRow","sum":985},{"parent":"PRAGMA","rule":"AnsiImplicitCrossJoin","sum":13350},{"parent":"PRAGMA","rule":"AnsiInFOREmptyORNullableItemsCollections","sum":53},{"parent":"PRAGMA","rule":"AnsiInForEmptyOrNULLableItemsCollectiONs","sum":176},{"parent":"PRAGMA","rule":"AnsiInForEmptyOrNULLableItemsCollections","sum":4097},{"parent":"PRAGMA","rule":"AnsiInForEmptyOrNullableItemsCollections","sum":39739891},{"parent":"PRAGMA","rule":"AnsiInForEmptyOrnullableItemsCollections","sum":248},{"parent":"PRAGMA","rule":"AnsiInForEmptyorNullableItemsCollections","sum":2125},{"parent":"PRAGMA","rule":"AnsiInForEmptyornullableItemsCollections","sum":1277},{"parent":"PRAGMA","rule":"AnsiInforEmptyOrNullableItemsCollections","sum":248},{"parent":"PRAGMA","rule":"AnsiOptionalAS","sum":4},{"parent":"PRAGMA","rule":"AnsiOptionalAs","sum":2180509},{"parent":"PRAGMA","rule":"AnsiOptionalas","sum":342},{"parent":"PRAGMA","rule":"AnsiOrderByLimitInUnionAll","sum":210567},{"parent":"PRAGMA","rule":"AnsiRankForNullableKeys","sum":224226},{"parent":"PRAGMA","rule":"AnsiinForEmptyOrNullableItemsCollections","sum":8649},{"parent":"PRAGMA","rule":"AnsiinForEmptyOrNullableitemsCollections","sum":16},{"parent":"PRAGMA","rule":"AutoCommit","sum":39271},{"parent":"PRAGMA","rule":"BlockEngine","sum":358233},{"parent":"PRAGMA","rule":"BogousStarInGroupByOverJoin","sum":2},{"parent":"PRAGMA","rule":"CLassicDivision","sum":9},{"parent":"PRAGMA","rule":"CheckedOps","sum":665},{"parent":"PRAGMA","rule":"ClASsicDivision","sum":670},{"parent":"PRAGMA","rule":"ClassicDIvision","sum":44},{"parent":"PRAGMA","rule":"ClassicDivisiON","sum":149},{"parent":"PRAGMA","rule":"ClassicDivision","sum":2573720},{"parent":"PRAGMA","rule":"Classicdivision","sum":6},{"parent":"PRAGMA","rule":"CoalesceJoinKeysOnQualifiedAll","sum":36},{"parent":"PRAGMA","rule":"CompactGroupBy","sum":19},{"parent":"PRAGMA","rule":"CompactNamedExprs","sum":2499},{"parent":"PRAGMA","rule":"CostBasedOptimizer","sum":14619},{"parent":"PRAGMA","rule":"DQ.ANALYZEQUERY","sum":1634},{"parent":"PRAGMA","rule":"DQEngine","sum":3},{"parent":"PRAGMA","rule":"DirectRead","sum":48},{"parent":"PRAGMA","rule":"DisableAnsiInForEmptyOrNullableItemsCollections","sum":234070},{"parent":"PRAGMA","rule":"DisableAnsiLike","sum":1},{"parent":"PRAGMA","rule":"DisableAnsiRankForNullableKeys","sum":38042},{"parent":"PRAGMA","rule":"DisableCoalesceJoinKeysOnQualifiedAll","sum":197985},{"parent":"PRAGMA","rule":"DisableCompactNamedExprs","sum":12},{"parent":"PRAGMA","rule":"DisableOrderedColumns","sum":540},{"parent":"PRAGMA","rule":"DisablePullUpFlatMapOverJoin","sum":2},{"parent":"PRAGMA","rule":"DisableSeqMode","sum":1},{"parent":"PRAGMA","rule":"DisableSimpleColumns","sum":401855},{"parent":"PRAGMA","rule":"DisableStrictJoinKeyTypes","sum":421},{"parent":"PRAGMA","rule":"DisableUnicodeLiterals","sum":34},{"parent":"PRAGMA","rule":"DisableUnordered","sum":856},{"parent":"PRAGMA","rule":"DistinctOverWindow","sum":10},{"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":10773711},{"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":291436},{"parent":"PRAGMA","rule":"FeatureR010","sum":224},{"parent":"PRAGMA","rule":"File","sum":7432399},{"parent":"PRAGMA","rule":"FileOption","sum":15918},{"parent":"PRAGMA","rule":"FilterPushdownOverJoinOptionalSide","sum":6},{"parent":"PRAGMA","rule":"FlexibleTypes","sum":957},{"parent":"PRAGMA","rule":"Folder","sum":3764},{"parent":"PRAGMA","rule":"Greetings","sum":1497},{"parent":"PRAGMA","rule":"GroupByCubeLimit","sum":39630},{"parent":"PRAGMA","rule":"GroupByLimit","sum":151774},{"parent":"PRAGMA","rule":"JsonQueryReturnsJsonDocument","sum":301455},{"parent":"PRAGMA","rule":"LIBRARY","sum":252338},{"parent":"PRAGMA","rule":"LIbrary","sum":52},{"parent":"PRAGMA","rule":"Library","sum":15124200},{"parent":"PRAGMA","rule":"OrderedColumns","sum":6024265},{"parent":"PRAGMA","rule":"Orderedcolumns","sum":12},{"parent":"PRAGMA","rule":"OverrideLibrary","sum":182},{"parent":"PRAGMA","rule":"Package","sum":5},{"parent":"PRAGMA","rule":"PositionalUnionAll","sum":120676},{"parent":"PRAGMA","rule":"PqReadBy","sum":42},{"parent":"PRAGMA","rule":"REGEXUSERE2","sum":13432},{"parent":"PRAGMA","rule":"RefSelect","sum":441721},{"parent":"PRAGMA","rule":"RegExUseRe2","sum":26},{"parent":"PRAGMA","rule":"RegexUseRe2","sum":312053},{"parent":"PRAGMA","rule":"ResultRowsLimit","sum":3},{"parent":"PRAGMA","rule":"SampleSelect","sum":11},{"parent":"PRAGMA","rule":"SeqMode","sum":4},{"parent":"PRAGMA","rule":"SimpleColumns","sum":6957960},{"parent":"PRAGMA","rule":"Simplecolumns","sum":3},{"parent":"PRAGMA","rule":"StrictJoinKeyTypes","sum":77615},{"parent":"PRAGMA","rule":"TablePathPrefix","sum":5615617},{"parent":"PRAGMA","rule":"UDF","sum":2180491},{"parent":"PRAGMA","rule":"Udf","sum":1948075},{"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":35},{"parent":"PRAGMA","rule":"WarnUnnamedColumns","sum":26263},{"parent":"PRAGMA","rule":"Warning","sum":2957753},{"parent":"PRAGMA","rule":"WarningMsg","sum":12965},{"parent":"PRAGMA","rule":"YSON.AutoConvert","sum":828},{"parent":"PRAGMA","rule":"YSON.DisableStrict","sum":44960},{"parent":"PRAGMA","rule":"YSON.Strict","sum":732},{"parent":"PRAGMA","rule":"YT.Auth","sum":68},{"parent":"PRAGMA","rule":"YT.DefaultOperationWeight","sum":248353},{"parent":"PRAGMA","rule":"YT.InferSchema","sum":17747},{"parent":"PRAGMA","rule":"YT.POOL","sum":275},{"parent":"PRAGMA","rule":"YT.Pool","sum":85113},{"parent":"PRAGMA","rule":"YT.StaticPool","sum":6},{"parent":"PRAGMA","rule":"YT.TableContentDeliveryMode","sum":1653},{"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":18756},{"parent":"PRAGMA","rule":"YsON.Disablestrict","sum":141},{"parent":"PRAGMA","rule":"Yson.AutoConvert","sum":41963},{"parent":"PRAGMA","rule":"Yson.DIsableStrict","sum":15459},{"parent":"PRAGMA","rule":"Yson.DisableStrict","sum":481506},{"parent":"PRAGMA","rule":"Yson.Strict","sum":6808},{"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":24791},{"parent":"PRAGMA","rule":"Yt.HybridDqExecution","sum":9},{"parent":"PRAGMA","rule":"Yt.InferSchema","sum":2770},{"parent":"PRAGMA","rule":"Yt.MaxRowWeight","sum":980},{"parent":"PRAGMA","rule":"Yt.ParallelOperationsLimit","sum":12},{"parent":"PRAGMA","rule":"Yt.Pool","sum":253071},{"parent":"PRAGMA","rule":"Yt.PoolTrees","sum":1},{"parent":"PRAGMA","rule":"Yt.StaticPool","sum":10319},{"parent":"PRAGMA","rule":"Yt.TmpFolder","sum":4},{"parent":"PRAGMA","rule":"Yt.UseNativeYtTypes","sum":2870},{"parent":"PRAGMA","rule":"Yt.pool","sum":83523},{"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":134527},{"parent":"PRAGMA","rule":"classicDivision","sum":18},{"parent":"PRAGMA","rule":"classic_division","sum":11},{"parent":"PRAGMA","rule":"classicdivision","sum":82},{"parent":"PRAGMA","rule":"config.flags","sum":1294895},{"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":3055509},{"parent":"PRAGMA","rule":"dq.ENABLEDQREPLICATE","sum":1},{"parent":"PRAGMA","rule":"dq.EnableComputeActor","sum":1},{"parent":"PRAGMA","rule":"dq.EnableDqReplicate","sum":925662},{"parent":"PRAGMA","rule":"dq.EnableDqreplicate","sum":3},{"parent":"PRAGMA","rule":"dq.EnableFullResultWrite","sum":28633},{"parent":"PRAGMA","rule":"dq.EnableInsert","sum":88265},{"parent":"PRAGMA","rule":"dq.FallbackPolicy","sum":3},{"parent":"PRAGMA","rule":"dq.HashJoinMode","sum":6356},{"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":1132},{"parent":"PRAGMA","rule":"dq.MaxTasksPerOperation","sum":22497},{"parent":"PRAGMA","rule":"dq.MaxTasksPerStage","sum":60716},{"parent":"PRAGMA","rule":"dq.MemoryLimit","sum":8204},{"parent":"PRAGMA","rule":"dq.OptLLVM","sum":11},{"parent":"PRAGMA","rule":"dq.SplitStageOnDqReplicate","sum":11038},{"parent":"PRAGMA","rule":"dq.UseBlockReader","sum":4185},{"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":107},{"parent":"PRAGMA","rule":"dq.enableDqReplicate","sum":348},{"parent":"PRAGMA","rule":"dq.enabledqreplicate","sum":40},{"parent":"PRAGMA","rule":"dqEngine","sum":91502},{"parent":"PRAGMA","rule":"dqengine","sum":21283},{"parent":"PRAGMA","rule":"file","sum":1817381},{"parent":"PRAGMA","rule":"folder","sum":674},{"parent":"PRAGMA","rule":"greetings","sum":1},{"parent":"PRAGMA","rule":"library","sum":4875262},{"parent":"PRAGMA","rule":"orderedColumns","sum":7},{"parent":"PRAGMA","rule":"orderedcolumns","sum":15135},{"parent":"PRAGMA","rule":"override_library","sum":32},{"parent":"PRAGMA","rule":"package","sum":231528},{"parent":"PRAGMA","rule":"refselect","sum":31760},{"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":1454},{"parent":"PRAGMA","rule":"simplecolumns","sum":241976},{"parent":"PRAGMA","rule":"tablepathprefix","sum":2},{"parent":"PRAGMA","rule":"udf","sum":4351587},{"parent":"PRAGMA","rule":"warning","sum":66266},{"parent":"PRAGMA","rule":"yson.AutoConvert","sum":4745561},{"parent":"PRAGMA","rule":"yson.Auto_convert","sum":18},{"parent":"PRAGMA","rule":"yson.Autoconvert","sum":1152},{"parent":"PRAGMA","rule":"yson.DisableStrict","sum":20131677},{"parent":"PRAGMA","rule":"yson.Disablestrict","sum":46},{"parent":"PRAGMA","rule":"yson.Fast","sum":654},{"parent":"PRAGMA","rule":"yson.Strict","sum":3508636},{"parent":"PRAGMA","rule":"yson.autoConvert","sum":4},{"parent":"PRAGMA","rule":"yson.autoconvert","sum":3813},{"parent":"PRAGMA","rule":"yson.disableStrict","sum":2237},{"parent":"PRAGMA","rule":"yson.disable_strict","sum":3},{"parent":"PRAGMA","rule":"yson.disablestrict","sum":210592},{"parent":"PRAGMA","rule":"yson.strict","sum":710},{"parent":"PRAGMA","rule":"yt.AUth","sum":4},{"parent":"PRAGMA","rule":"yt.Annotations","sum":47106441},{"parent":"PRAGMA","rule":"yt.Auth","sum":1292526},{"parent":"PRAGMA","rule":"yt.AutoMerge","sum":4457647},{"parent":"PRAGMA","rule":"yt.Automerge","sum":2765},{"parent":"PRAGMA","rule":"yt.BatchListFolderConcurrency","sum":147},{"parent":"PRAGMA","rule":"yt.BinaryExpirationInterval","sum":6313281},{"parent":"PRAGMA","rule":"yt.BinaryTmpFolder","sum":6340972},{"parent":"PRAGMA","rule":"yt.BlockMapJoin","sum":1},{"parent":"PRAGMA","rule":"yt.BlockReaderSupportedDataTypes","sum":6},{"parent":"PRAGMA","rule":"yt.BlockReaderSupportedTypes","sum":1},{"parent":"PRAGMA","rule":"yt.ColumnGroupMode","sum":452760},{"parent":"PRAGMA","rule":"yt.CombineCoreLimit","sum":77254},{"parent":"PRAGMA","rule":"yt.CommonJoinCoreLimit","sum":1892},{"parent":"PRAGMA","rule":"yt.CoreDumpPath","sum":2},{"parent":"PRAGMA","rule":"yt.DQRPCReaderInflight","sum":140},{"parent":"PRAGMA","rule":"yt.DQRPCReaderTimeout","sum":7},{"parent":"PRAGMA","rule":"yt.DatASizePerJob","sum":2166},{"parent":"PRAGMA","rule":"yt.DatASizePerPartition","sum":744},{"parent":"PRAGMA","rule":"yt.DataSizePerJob","sum":5235784},{"parent":"PRAGMA","rule":"yt.DataSizePerMapJob","sum":317581},{"parent":"PRAGMA","rule":"yt.DataSizePerPartition","sum":520584},{"parent":"PRAGMA","rule":"yt.DataSizePerSortJob","sum":201823},{"parent":"PRAGMA","rule":"yt.DatasizePerJob","sum":16},{"parent":"PRAGMA","rule":"yt.DatasizePerSortJob","sum":16},{"parent":"PRAGMA","rule":"yt.DefaultCalcMemoryLimit","sum":258964},{"parent":"PRAGMA","rule":"yt.DefaultCluster","sum":71882463},{"parent":"PRAGMA","rule":"yt.DefaultLocalityTimeout","sum":4123},{"parent":"PRAGMA","rule":"yt.DefaultMapSelectivityFactor","sum":3},{"parent":"PRAGMA","rule":"yt.DefaultMaxJobFails","sum":1544458},{"parent":"PRAGMA","rule":"yt.DefaultMemORyLimit","sum":7},{"parent":"PRAGMA","rule":"yt.DefaultMemoryLimit","sum":2068340},{"parent":"PRAGMA","rule":"yt.DefaultMemoryReserveFactor","sum":25257},{"parent":"PRAGMA","rule":"yt.DefaultOperationWeight","sum":9832401},{"parent":"PRAGMA","rule":"yt.Description","sum":238813},{"parent":"PRAGMA","rule":"yt.DisableFuseOperations","sum":2},{"parent":"PRAGMA","rule":"yt.DisableJobSplitting","sum":4886},{"parent":"PRAGMA","rule":"yt.DisableOptimizers","sum":30964},{"parent":"PRAGMA","rule":"yt.EnableDynamicStoreReadInDQ","sum":1},{"parent":"PRAGMA","rule":"yt.ErasureCodecCpu","sum":149921},{"parent":"PRAGMA","rule":"yt.EvaluationTableSizeLimit","sum":817366},{"parent":"PRAGMA","rule":"yt.ExpirationDeadline","sum":3467779},{"parent":"PRAGMA","rule":"yt.ExpirationInterval","sum":8245641},{"parent":"PRAGMA","rule":"yt.ExtendedStatsMaxChunkCount","sum":4},{"parent":"PRAGMA","rule":"yt.ExternalTx","sum":80798903},{"parent":"PRAGMA","rule":"yt.ExtraTmpfsSize","sum":95},{"parent":"PRAGMA","rule":"yt.FileCacheTtl","sum":8505324},{"parent":"PRAGMA","rule":"yt.FolderInlineDataLimit","sum":40},{"parent":"PRAGMA","rule":"yt.FolderInlineItemsLimit","sum":2},{"parent":"PRAGMA","rule":"yt.ForceInferSchema","sum":794278},{"parent":"PRAGMA","rule":"yt.ForceJobSizeAdjuster","sum":10247},{"parent":"PRAGMA","rule":"yt.GeobaseDownloadUrl","sum":62837},{"parent":"PRAGMA","rule":"yt.HybridDqDataSizeLimitForOrdered","sum":318548},{"parent":"PRAGMA","rule":"yt.HybridDqDataSizeLimitForUnordered","sum":321622},{"parent":"PRAGMA","rule":"yt.HybridDqExecution","sum":3739576},{"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":4579},{"parent":"PRAGMA","rule":"yt.IgnoreWeakSchema","sum":230394},{"parent":"PRAGMA","rule":"yt.IgnoreYamrDsv","sum":22561},{"parent":"PRAGMA","rule":"yt.InferSchemA","sum":11},{"parent":"PRAGMA","rule":"yt.InferSchema","sum":32267438},{"parent":"PRAGMA","rule":"yt.InferSchemaTableCountThreshold","sum":1},{"parent":"PRAGMA","rule":"yt.Inferschema","sum":86524},{"parent":"PRAGMA","rule":"yt.IntermediateAccount","sum":133764},{"parent":"PRAGMA","rule":"yt.IntermediateDataMedium","sum":305807},{"parent":"PRAGMA","rule":"yt.IntermediateReplicationFactor","sum":2986},{"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":13907},{"parent":"PRAGMA","rule":"yt.JoinAllowColumnRenames","sum":452},{"parent":"PRAGMA","rule":"yt.JoinCollectColumnarStatistics","sum":20280},{"parent":"PRAGMA","rule":"yt.JoinColumnarStatisticsFetcherMode","sum":594},{"parent":"PRAGMA","rule":"yt.JoinEnableStarJoin","sum":42050},{"parent":"PRAGMA","rule":"yt.JoinMergeForce","sum":52982},{"parent":"PRAGMA","rule":"yt.JoinMergeReduceJobMaxSize","sum":2703},{"parent":"PRAGMA","rule":"yt.JoinMergeTablesLimit","sum":3945},{"parent":"PRAGMA","rule":"yt.JoinMergeUnsortedFactor","sum":1625},{"parent":"PRAGMA","rule":"yt.JoinMergeUseSmallAsPrimary","sum":6020},{"parent":"PRAGMA","rule":"yt.JoinUseColumnarStatistics","sum":958},{"parent":"PRAGMA","rule":"yt.JoinWaitAllInputs","sum":16},{"parent":"PRAGMA","rule":"yt.KeepTempTables","sum":944},{"parent":"PRAGMA","rule":"yt.LayerPaths","sum":159569},{"parent":"PRAGMA","rule":"yt.LookupJoinLimit","sum":230902},{"parent":"PRAGMA","rule":"yt.LookupJoinMaxRows","sum":179815},{"parent":"PRAGMA","rule":"yt.MAXRowWeight","sum":66},{"parent":"PRAGMA","rule":"yt.MAxJobCount","sum":64},{"parent":"PRAGMA","rule":"yt.MAxRowWeight","sum":1},{"parent":"PRAGMA","rule":"yt.MapJOINLimit","sum":733},{"parent":"PRAGMA","rule":"yt.MapJoinLimit","sum":700922},{"parent":"PRAGMA","rule":"yt.MapJoinShardCount","sum":325591},{"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":19625},{"parent":"PRAGMA","rule":"yt.MaxInputTables","sum":29548},{"parent":"PRAGMA","rule":"yt.MaxInputTablesForSortedMerge","sum":5885},{"parent":"PRAGMA","rule":"yt.MaxJobCount","sum":12604723},{"parent":"PRAGMA","rule":"yt.MaxJobcount","sum":1379},{"parent":"PRAGMA","rule":"yt.MaxKeyRangeCount","sum":9},{"parent":"PRAGMA","rule":"yt.MaxKeyWeight","sum":210503},{"parent":"PRAGMA","rule":"yt.MaxOutputTables","sum":53},{"parent":"PRAGMA","rule":"yt.MaxReplicationFactorToFuseOperations","sum":15},{"parent":"PRAGMA","rule":"yt.MaxRowWeight","sum":6129619},{"parent":"PRAGMA","rule":"yt.MaxSpeculativeJobCountPerTask","sum":2223},{"parent":"PRAGMA","rule":"yt.MinLocalityInputDataWeight","sum":8},{"parent":"PRAGMA","rule":"yt.MinPublishedAvgChunkSize","sum":3203547},{"parent":"PRAGMA","rule":"yt.MinTempAvgChunkSize","sum":179189},{"parent":"PRAGMA","rule":"yt.NativeYtTypeCompatibility","sum":15},{"parent":"PRAGMA","rule":"yt.NetworkProject","sum":609959},{"parent":"PRAGMA","rule":"yt.NightlyCompress","sum":146059},{"parent":"PRAGMA","rule":"yt.OWners","sum":21},{"parent":"PRAGMA","rule":"yt.OperationReaders","sum":12929391},{"parent":"PRAGMA","rule":"yt.OperationSpec","sum":8595182},{"parent":"PRAGMA","rule":"yt.OptimizeFor","sum":5854994},{"parent":"PRAGMA","rule":"yt.Owners","sum":65834227},{"parent":"PRAGMA","rule":"yt.POOL","sum":68},{"parent":"PRAGMA","rule":"yt.POol","sum":12},{"parent":"PRAGMA","rule":"yt.ParallelOperationsLimit","sum":1389738},{"parent":"PRAGMA","rule":"yt.PartitionByConstantKeysViaMap","sum":13},{"parent":"PRAGMA","rule":"yt.PooL","sum":1},{"parent":"PRAGMA","rule":"yt.Pool","sum":54578353},{"parent":"PRAGMA","rule":"yt.PoolTrees","sum":6604811},{"parent":"PRAGMA","rule":"yt.PrimaryMedium","sum":391200},{"parent":"PRAGMA","rule":"yt.PruneKeyFilterLambda","sum":570},{"parent":"PRAGMA","rule":"yt.PublishedAutoMerge","sum":3424208},{"parent":"PRAGMA","rule":"yt.PublishedCompressionCodec","sum":7477762},{"parent":"PRAGMA","rule":"yt.PublishedErasureCodec","sum":5461359},{"parent":"PRAGMA","rule":"yt.PublishedMedia","sum":4323},{"parent":"PRAGMA","rule":"yt.PublishedPrimaryMedium","sum":787756},{"parent":"PRAGMA","rule":"yt.PublishedReplicationFactor","sum":24049},{"parent":"PRAGMA","rule":"yt.PythonCpu","sum":87204},{"parent":"PRAGMA","rule":"yt.QueryCacheIgnoreTableRevision","sum":64613},{"parent":"PRAGMA","rule":"yt.QueryCacheMode","sum":24322168},{"parent":"PRAGMA","rule":"yt.QueryCacheSalt","sum":5},{"parent":"PRAGMA","rule":"yt.QueryCacheTtl","sum":9068170},{"parent":"PRAGMA","rule":"yt.QueryCacheUseForCalc","sum":8},{"parent":"PRAGMA","rule":"yt.QuerycacheMode","sum":2},{"parent":"PRAGMA","rule":"yt.ReleaseTempData","sum":2733894},{"parent":"PRAGMA","rule":"yt.STaticPool","sum":3},{"parent":"PRAGMA","rule":"yt.SamplingIoBlockSize","sum":3846},{"parent":"PRAGMA","rule":"yt.SchedulingTag","sum":61},{"parent":"PRAGMA","rule":"yt.SchedulingTagFilter","sum":2941},{"parent":"PRAGMA","rule":"yt.ScriptCpu","sum":4980},{"parent":"PRAGMA","rule":"yt.StartedBy","sum":266284},{"parent":"PRAGMA","rule":"yt.StaticPOol","sum":1},{"parent":"PRAGMA","rule":"yt.StaticPool","sum":113682792},{"parent":"PRAGMA","rule":"yt.Static_pool","sum":1},{"parent":"PRAGMA","rule":"yt.SuspendIfAccountLimitExceeded","sum":42957},{"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":6690},{"parent":"PRAGMA","rule":"yt.TableContentMinAvgChunkSize","sum":2589},{"parent":"PRAGMA","rule":"yt.TableContentTmpFolder","sum":28},{"parent":"PRAGMA","rule":"yt.TableContentUseSkiff","sum":11},{"parent":"PRAGMA","rule":"yt.TablesTmpFolder","sum":3476119},{"parent":"PRAGMA","rule":"yt.TempTablesTtl","sum":5550556},{"parent":"PRAGMA","rule":"yt.TemporaryAutoMerge","sum":8920140},{"parent":"PRAGMA","rule":"yt.TemporaryCompressionCodec","sum":5905781},{"parent":"PRAGMA","rule":"yt.TemporaryErasureCodec","sum":4825183},{"parent":"PRAGMA","rule":"yt.TemporaryPrimaryMedium","sum":505233},{"parent":"PRAGMA","rule":"yt.TemporaryReplicationFactor","sum":84},{"parent":"PRAGMA","rule":"yt.TentativePoolTrees","sum":1843714},{"parent":"PRAGMA","rule":"yt.TentativeTreeEligibilityMaxJobDurationRatio","sum":17598},{"parent":"PRAGMA","rule":"yt.TentativeTreeEligibilityMinJobDuration","sum":2168},{"parent":"PRAGMA","rule":"yt.TentativeTreeEligibilitySampleJobCount","sum":16259},{"parent":"PRAGMA","rule":"yt.TmpFolder","sum":31478968},{"parent":"PRAGMA","rule":"yt.TopSortMaxLimit","sum":59},{"parent":"PRAGMA","rule":"yt.TopSortSizePerJob","sum":1},{"parent":"PRAGMA","rule":"yt.USENATIVEYTTYPES","sum":29},{"parent":"PRAGMA","rule":"yt.USeNativeYtTypes","sum":12},{"parent":"PRAGMA","rule":"yt.UseColumnarStatistics","sum":168549},{"parent":"PRAGMA","rule":"yt.UseDefaultTentativePoolTrees","sum":253045},{"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":2102},{"parent":"PRAGMA","rule":"yt.UseNativeYtTYpes","sum":1485},{"parent":"PRAGMA","rule":"yt.UseNativeYtTypes","sum":24543429},{"parent":"PRAGMA","rule":"yt.UseNativeYttypes","sum":780},{"parent":"PRAGMA","rule":"yt.UseNativeytTypes","sum":524},{"parent":"PRAGMA","rule":"yt.UseNewPredicateExtraction","sum":182732},{"parent":"PRAGMA","rule":"yt.UseRPCReaderInDQ","sum":79},{"parent":"PRAGMA","rule":"yt.UseRPCReaderInDq","sum":12120},{"parent":"PRAGMA","rule":"yt.UseSkiff","sum":3926},{"parent":"PRAGMA","rule":"yt.UseSystemColumns","sum":2131},{"parent":"PRAGMA","rule":"yt.UseTmpfs","sum":34355},{"parent":"PRAGMA","rule":"yt.UseTypeV2","sum":4302},{"parent":"PRAGMA","rule":"yt.UseYqlRowSpecCompactForm","sum":3798},{"parent":"PRAGMA","rule":"yt.UserSlots","sum":2526588},{"parent":"PRAGMA","rule":"yt.ViewIsolation","sum":983},{"parent":"PRAGMA","rule":"yt.WideFlowLimit","sum":158676},{"parent":"PRAGMA","rule":"yt.auth","sum":46536},{"parent":"PRAGMA","rule":"yt.datasizeperjob","sum":2022},{"parent":"PRAGMA","rule":"yt.defaultoperationweight","sum":47},{"parent":"PRAGMA","rule":"yt.forceinferschema","sum":48},{"parent":"PRAGMA","rule":"yt.inferSchema","sum":56183},{"parent":"PRAGMA","rule":"yt.infer_schema","sum":10},{"parent":"PRAGMA","rule":"yt.inferschema","sum":2911},{"parent":"PRAGMA","rule":"yt.mapjoinlimit","sum":98499},{"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":41949},{"parent":"PRAGMA","rule":"yt.minPublishedAvgChunksize","sum":11},{"parent":"PRAGMA","rule":"yt.network_project","sum":14594},{"parent":"PRAGMA","rule":"yt.pool","sum":6824278},{"parent":"PRAGMA","rule":"yt.pool_trees","sum":1},{"parent":"PRAGMA","rule":"yt.pooltrees","sum":53},{"parent":"PRAGMA","rule":"yt.publishedcompressioncodec","sum":403},{"parent":"PRAGMA","rule":"yt.staticPool","sum":1276802},{"parent":"PRAGMA","rule":"yt.static_pool","sum":20},{"parent":"PRAGMA","rule":"yt.staticpool","sum":10554},{"parent":"PRAGMA","rule":"yt.tmpFolder","sum":76757},{"parent":"PRAGMA","rule":"yt.tmpfolder","sum":65},{"parent":"PRAGMA","rule":"yt.useNativeYtTYpes","sum":1},{"parent":"PRAGMA","rule":"yt.useNativeYtTypes","sum":919},{"parent":"PRAGMA","rule":"yt.usenativeyttypes","sum":172},{"parent":"READ_HINT","rule":"COLUMNS","sum":826110},{"parent":"READ_HINT","rule":"CoLUMNS","sum":2},{"parent":"READ_HINT","rule":"Columns","sum":24},{"parent":"READ_HINT","rule":"DIRECT_READ","sum":98},{"parent":"READ_HINT","rule":"FORCE_INFER_SCHEMA","sum":18276},{"parent":"READ_HINT","rule":"ForceInferSchema","sum":364},{"parent":"READ_HINT","rule":"IGNORETYPEV3","sum":2},{"parent":"READ_HINT","rule":"IGNORE_TYPE_V3","sum":4},{"parent":"READ_HINT","rule":"INFER_SCHEMA","sum":105090},{"parent":"READ_HINT","rule":"INLINE","sum":88183},{"parent":"READ_HINT","rule":"InferSchema","sum":2275},{"parent":"READ_HINT","rule":"Infer_Schema","sum":3},{"parent":"READ_HINT","rule":"SCHEMA","sum":16862952},{"parent":"READ_HINT","rule":"SChema","sum":2},{"parent":"READ_HINT","rule":"Schema","sum":38545},{"parent":"READ_HINT","rule":"TRUNCATE","sum":5},{"parent":"READ_HINT","rule":"UNORDERED","sum":6456},{"parent":"READ_HINT","rule":"USER_ATTRS","sum":1},{"parent":"READ_HINT","rule":"Unordered","sum":365},{"parent":"READ_HINT","rule":"XLOCK","sum":140088},{"parent":"READ_HINT","rule":"columns","sum":428022},{"parent":"READ_HINT","rule":"direct_read","sum":1},{"parent":"READ_HINT","rule":"downsampling.aggregation","sum":2273},{"parent":"READ_HINT","rule":"downsampling.disabled","sum":2198},{"parent":"READ_HINT","rule":"downsampling.fill","sum":1773},{"parent":"READ_HINT","rule":"downsampling.grid_interval","sum":2574},{"parent":"READ_HINT","rule":"force_infer_schema","sum":2},{"parent":"READ_HINT","rule":"from","sum":24174},{"parent":"READ_HINT","rule":"infer_schema","sum":198},{"parent":"READ_HINT","rule":"infer_scheme","sum":17},{"parent":"READ_HINT","rule":"inferschema","sum":1},{"parent":"READ_HINT","rule":"inline","sum":75427},{"parent":"READ_HINT","rule":"labels","sum":22025},{"parent":"READ_HINT","rule":"program","sum":24426},{"parent":"READ_HINT","rule":"schema","sum":786926},{"parent":"READ_HINT","rule":"to","sum":24174},{"parent":"READ_HINT","rule":"unordered","sum":14252},{"parent":"READ_HINT","rule":"xlock","sum":261771},{"parent":"TRule_action_or_subquery_args","rule":"TRule_action_or_subquery_args.Block2","sum":4986143},{"parent":"TRule_action_or_subquery_args","rule":"TRule_action_or_subquery_args.Rule_opt_bind_parameter1","sum":14027239},{"parent":"TRule_action_or_subquery_args.TBlock2","rule":"TRule_action_or_subquery_args.TBlock2.Rule_opt_bind_parameter2","sum":7565014},{"parent":"TRule_action_or_subquery_args.TBlock2","rule":"TRule_action_or_subquery_args.TBlock2.Token1","sum":7565014},{"parent":"TRule_add_subexpr","rule":"TRule_add_subexpr.Block2","sum":136327164},{"parent":"TRule_add_subexpr","rule":"TRule_add_subexpr.Rule_mul_subexpr1","sum":15639753502},{"parent":"TRule_add_subexpr.TBlock2","rule":"TRule_add_subexpr.TBlock2.Rule_mul_subexpr2","sum":168035288},{"parent":"TRule_add_subexpr.TBlock2","rule":"TRule_add_subexpr.TBlock2.Token1","sum":168035288},{"parent":"TRule_an_id","rule":"TRule_an_id.Alt_an_id1","sum":2011167410},{"parent":"TRule_an_id.TAlt1","rule":"TRule_an_id.TAlt1.Rule_id1","sum":2011167410},{"parent":"TRule_an_id_as_compat","rule":"TRule_an_id_as_compat.Alt_an_id_as_compat1","sum":3037134},{"parent":"TRule_an_id_as_compat.TAlt1","rule":"TRule_an_id_as_compat.TAlt1.Rule_id_as_compat1","sum":3037134},{"parent":"TRule_an_id_expr","rule":"TRule_an_id_expr.Alt_an_id_expr1","sum":96457781},{"parent":"TRule_an_id_expr.TAlt1","rule":"TRule_an_id_expr.TAlt1.Rule_id_expr1","sum":96457781},{"parent":"TRule_an_id_hint","rule":"TRule_an_id_hint.Alt_an_id_hint1","sum":155030406},{"parent":"TRule_an_id_hint.TAlt1","rule":"TRule_an_id_hint.TAlt1.Rule_id_hint1","sum":155030406},{"parent":"TRule_an_id_or_type","rule":"TRule_an_id_or_type.Alt_an_id_or_type1","sum":9657689504},{"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":9657689504},{"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":678937497},{"parent":"TRule_an_id_pure.TAlt1","rule":"TRule_an_id_pure.TAlt1.Rule_identifier1","sum":678937497},{"parent":"TRule_an_id_schema","rule":"TRule_an_id_schema.Alt_an_id_schema1","sum":1160},{"parent":"TRule_an_id_schema.TAlt1","rule":"TRule_an_id_schema.TAlt1.Rule_id_schema1","sum":1160},{"parent":"TRule_an_id_table","rule":"TRule_an_id_table.Alt_an_id_table1","sum":331261943},{"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":331261943},{"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":46794903},{"parent":"TRule_an_id_window.TAlt1","rule":"TRule_an_id_window.TAlt1.Rule_id_window1","sum":46794903},{"parent":"TRule_an_id_without","rule":"TRule_an_id_without.Alt_an_id_without1","sum":23422764},{"parent":"TRule_an_id_without.TAlt1","rule":"TRule_an_id_without.TAlt1.Rule_id_without1","sum":23422764},{"parent":"TRule_and_subexpr","rule":"TRule_and_subexpr.Block2","sum":29447},{"parent":"TRule_and_subexpr","rule":"TRule_and_subexpr.Rule_xor_subexpr1","sum":14301292117},{"parent":"TRule_and_subexpr.TBlock2","rule":"TRule_and_subexpr.TBlock2.Rule_xor_subexpr2","sum":29511},{"parent":"TRule_and_subexpr.TBlock2","rule":"TRule_and_subexpr.TBlock2.Token1","sum":29511},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr1","sum":5157361938},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr10","sum":36160238},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr11","sum":8542848},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr12","sum":14736673},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr2","sum":1777610750},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr3","sum":448136730},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr4","sum":399237067},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr5","sum":77242},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr6","sum":62000126},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr7","sum":931114620},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr8","sum":165732},{"parent":"TRule_atom_expr","rule":"TRule_atom_expr.Alt_atom_expr9","sum":516962},{"parent":"TRule_atom_expr.TAlt1","rule":"TRule_atom_expr.TAlt1.Rule_literal_value1","sum":5157361938},{"parent":"TRule_atom_expr.TAlt10","rule":"TRule_atom_expr.TAlt10.Rule_list_literal1","sum":36160238},{"parent":"TRule_atom_expr.TAlt11","rule":"TRule_atom_expr.TAlt11.Rule_dict_literal1","sum":8542848},{"parent":"TRule_atom_expr.TAlt12","rule":"TRule_atom_expr.TAlt12.Rule_struct_literal1","sum":14736673},{"parent":"TRule_atom_expr.TAlt2","rule":"TRule_atom_expr.TAlt2.Rule_bind_parameter1","sum":1777610750},{"parent":"TRule_atom_expr.TAlt3","rule":"TRule_atom_expr.TAlt3.Rule_lambda1","sum":448136730},{"parent":"TRule_atom_expr.TAlt4","rule":"TRule_atom_expr.TAlt4.Rule_cast_expr1","sum":399237067},{"parent":"TRule_atom_expr.TAlt5","rule":"TRule_atom_expr.TAlt5.Rule_exists_expr1","sum":77242},{"parent":"TRule_atom_expr.TAlt6","rule":"TRule_atom_expr.TAlt6.Rule_case_expr1","sum":62000126},{"parent":"TRule_atom_expr.TAlt7","rule":"TRule_atom_expr.TAlt7.Block3","sum":931114620},{"parent":"TRule_atom_expr.TAlt7","rule":"TRule_atom_expr.TAlt7.Rule_an_id_or_type1","sum":931114620},{"parent":"TRule_atom_expr.TAlt7","rule":"TRule_atom_expr.TAlt7.Token2","sum":931114620},{"parent":"TRule_atom_expr.TAlt7.TBlock3","rule":"TRule_atom_expr.TAlt7.TBlock3.Alt1","sum":931113385},{"parent":"TRule_atom_expr.TAlt7.TBlock3","rule":"TRule_atom_expr.TAlt7.TBlock3.Alt2","sum":1235},{"parent":"TRule_atom_expr.TAlt7.TBlock3.TAlt1","rule":"TRule_atom_expr.TAlt7.TBlock3.TAlt1.Rule_id_or_type1","sum":931113385},{"parent":"TRule_atom_expr.TAlt7.TBlock3.TAlt2","rule":"TRule_atom_expr.TAlt7.TBlock3.TAlt2.Token1","sum":1235},{"parent":"TRule_atom_expr.TAlt8","rule":"TRule_atom_expr.TAlt8.Rule_value_constructor1","sum":165732},{"parent":"TRule_atom_expr.TAlt9","rule":"TRule_atom_expr.TAlt9.Rule_bitcast_expr1","sum":516962},{"parent":"TRule_bind_parameter","rule":"TRule_bind_parameter.Block2","sum":3715856694},{"parent":"TRule_bind_parameter","rule":"TRule_bind_parameter.Token1","sum":3715856694},{"parent":"TRule_bind_parameter.TBlock2","rule":"TRule_bind_parameter.TBlock2.Alt1","sum":3715844742},{"parent":"TRule_bind_parameter.TBlock2","rule":"TRule_bind_parameter.TBlock2.Alt2","sum":9462},{"parent":"TRule_bind_parameter.TBlock2","rule":"TRule_bind_parameter.TBlock2.Alt3","sum":2490},{"parent":"TRule_bind_parameter.TBlock2.TAlt1","rule":"TRule_bind_parameter.TBlock2.TAlt1.Rule_an_id_or_type1","sum":3715844742},{"parent":"TRule_bind_parameter.TBlock2.TAlt2","rule":"TRule_bind_parameter.TBlock2.TAlt2.Token1","sum":9462},{"parent":"TRule_bind_parameter.TBlock2.TAlt3","rule":"TRule_bind_parameter.TBlock2.TAlt3.Token1","sum":2490},{"parent":"TRule_bind_parameter_list","rule":"TRule_bind_parameter_list.Block2","sum":251552},{"parent":"TRule_bind_parameter_list","rule":"TRule_bind_parameter_list.Rule_bind_parameter1","sum":1010795718},{"parent":"TRule_bind_parameter_list.TBlock2","rule":"TRule_bind_parameter_list.TBlock2.Rule_bind_parameter2","sum":348012},{"parent":"TRule_bind_parameter_list.TBlock2","rule":"TRule_bind_parameter_list.TBlock2.Token1","sum":348012},{"parent":"TRule_bit_subexpr","rule":"TRule_bit_subexpr.Block2","sum":138589425},{"parent":"TRule_bit_subexpr","rule":"TRule_bit_subexpr.Rule_add_subexpr1","sum":15482613119},{"parent":"TRule_bit_subexpr.TBlock2","rule":"TRule_bit_subexpr.TBlock2.Rule_add_subexpr2","sum":157140383},{"parent":"TRule_bit_subexpr.TBlock2","rule":"TRule_bit_subexpr.TBlock2.Token1","sum":157140383},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Rule_expr3","sum":516962},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Rule_type_name_simple5","sum":516962},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token1","sum":516962},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token2","sum":516962},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token4","sum":516962},{"parent":"TRule_bitcast_expr","rule":"TRule_bitcast_expr.Token6","sum":516962},{"parent":"TRule_bool_value","rule":"TRule_bool_value.Token1","sum":104618486},{"parent":"TRule_call_action","rule":"TRule_call_action.Block1","sum":9487200},{"parent":"TRule_call_action","rule":"TRule_call_action.Block3","sum":7206525},{"parent":"TRule_call_action","rule":"TRule_call_action.Token2","sum":9487200},{"parent":"TRule_call_action","rule":"TRule_call_action.Token4","sum":9487200},{"parent":"TRule_call_action.TBlock1","rule":"TRule_call_action.TBlock1.Alt1","sum":9360822},{"parent":"TRule_call_action.TBlock1","rule":"TRule_call_action.TBlock1.Alt2","sum":126378},{"parent":"TRule_call_action.TBlock1.TAlt1","rule":"TRule_call_action.TBlock1.TAlt1.Rule_bind_parameter1","sum":9360822},{"parent":"TRule_call_action.TBlock1.TAlt2","rule":"TRule_call_action.TBlock1.TAlt2.Token1","sum":126378},{"parent":"TRule_call_action.TBlock3","rule":"TRule_call_action.TBlock3.Rule_expr_list1","sum":7206525},{"parent":"TRule_callable_arg","rule":"TRule_callable_arg.Block2","sum":1},{"parent":"TRule_callable_arg","rule":"TRule_callable_arg.Rule_variant_arg1","sum":18037904},{"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":4390160},{"parent":"TRule_callable_arg_list","rule":"TRule_callable_arg_list.Rule_callable_arg1","sum":9799746},{"parent":"TRule_callable_arg_list.TBlock2","rule":"TRule_callable_arg_list.TBlock2.Rule_callable_arg2","sum":8238158},{"parent":"TRule_callable_arg_list.TBlock2","rule":"TRule_callable_arg_list.TBlock2.Token1","sum":8238158},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Block2","sum":4677251},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Block3","sum":62000130},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Block4","sum":62000130},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Token1","sum":62000130},{"parent":"TRule_case_expr","rule":"TRule_case_expr.Token5","sum":62000130},{"parent":"TRule_case_expr.TBlock2","rule":"TRule_case_expr.TBlock2.Rule_expr1","sum":4677251},{"parent":"TRule_case_expr.TBlock3","rule":"TRule_case_expr.TBlock3.Rule_when_expr1","sum":158729543},{"parent":"TRule_case_expr.TBlock4","rule":"TRule_case_expr.TBlock4.Rule_expr2","sum":62000130},{"parent":"TRule_case_expr.TBlock4","rule":"TRule_case_expr.TBlock4.Token1","sum":62000130},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Rule_expr3","sum":399281360},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Rule_type_name_or_bind5","sum":399281360},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token1","sum":399281360},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token2","sum":399281360},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token4","sum":399281360},{"parent":"TRule_cast_expr","rule":"TRule_cast_expr.Token6","sum":399281360},{"parent":"TRule_cluster_expr","rule":"TRule_cluster_expr.Block1","sum":6795363},{"parent":"TRule_cluster_expr","rule":"TRule_cluster_expr.Block2","sum":375904721},{"parent":"TRule_cluster_expr.TBlock1","rule":"TRule_cluster_expr.TBlock1.Rule_an_id1","sum":6795363},{"parent":"TRule_cluster_expr.TBlock1","rule":"TRule_cluster_expr.TBlock1.Token2","sum":6795363},{"parent":"TRule_cluster_expr.TBlock2","rule":"TRule_cluster_expr.TBlock2.Alt1","sum":375904721},{"parent":"TRule_cluster_expr.TBlock2.TAlt1","rule":"TRule_cluster_expr.TBlock2.TAlt1.Rule_pure_column_or_named1","sum":375904721},{"parent":"TRule_column_list","rule":"TRule_column_list.Block2","sum":286232},{"parent":"TRule_column_list","rule":"TRule_column_list.Block3","sum":890},{"parent":"TRule_column_list","rule":"TRule_column_list.Rule_column_name1","sum":858313},{"parent":"TRule_column_list.TBlock2","rule":"TRule_column_list.TBlock2.Rule_column_name2","sum":1129270},{"parent":"TRule_column_list.TBlock2","rule":"TRule_column_list.TBlock2.Token1","sum":1129270},{"parent":"TRule_column_list.TBlock3","rule":"TRule_column_list.TBlock3.Token1","sum":890},{"parent":"TRule_column_name","rule":"TRule_column_name.Rule_an_id2","sum":23439287},{"parent":"TRule_column_name","rule":"TRule_column_name.Rule_opt_id_prefix1","sum":23439287},{"parent":"TRule_column_order_by_specification","rule":"TRule_column_order_by_specification.Rule_an_id1","sum":105},{"parent":"TRule_column_schema","rule":"TRule_column_schema.Rule_an_id_schema1","sum":1160},{"parent":"TRule_column_schema","rule":"TRule_column_schema.Rule_opt_column_constraints4","sum":1160},{"parent":"TRule_column_schema","rule":"TRule_column_schema.Rule_type_name_or_bind2","sum":1160},{"parent":"TRule_commit_stmt","rule":"TRule_commit_stmt.Token1","sum":13057020},{"parent":"TRule_con_subexpr","rule":"TRule_con_subexpr.Alt_con_subexpr1","sum":15949808357},{"parent":"TRule_con_subexpr","rule":"TRule_con_subexpr.Alt_con_subexpr2","sum":87839446},{"parent":"TRule_con_subexpr.TAlt1","rule":"TRule_con_subexpr.TAlt1.Rule_unary_subexpr1","sum":15949808357},{"parent":"TRule_con_subexpr.TAlt2","rule":"TRule_con_subexpr.TAlt2.Rule_unary_op1","sum":87839446},{"parent":"TRule_con_subexpr.TAlt2","rule":"TRule_con_subexpr.TAlt2.Rule_unary_subexpr2","sum":87839446},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr1","sum":52393370},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr2","sum":126255554},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr3","sum":173278806},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr4","sum":25108695},{"parent":"TRule_cond_expr","rule":"TRule_cond_expr.Alt_cond_expr5","sum":721369232},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Block1","sum":9336525},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Block4","sum":92172},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Rule_eq_subexpr3","sum":52393370},{"parent":"TRule_cond_expr.TAlt1","rule":"TRule_cond_expr.TAlt1.Rule_match_op2","sum":52393370},{"parent":"TRule_cond_expr.TAlt1.TBlock1","rule":"TRule_cond_expr.TAlt1.TBlock1.Token1","sum":9336525},{"parent":"TRule_cond_expr.TAlt1.TBlock4","rule":"TRule_cond_expr.TAlt1.TBlock4.Rule_eq_subexpr2","sum":92172},{"parent":"TRule_cond_expr.TAlt1.TBlock4","rule":"TRule_cond_expr.TAlt1.TBlock4.Token1","sum":92172},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Block1","sum":26271760},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Block3","sum":3141787},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Rule_in_expr4","sum":126255554},{"parent":"TRule_cond_expr.TAlt2","rule":"TRule_cond_expr.TAlt2.Token2","sum":126255554},{"parent":"TRule_cond_expr.TAlt2.TBlock1","rule":"TRule_cond_expr.TAlt2.TBlock1.Token1","sum":26271760},{"parent":"TRule_cond_expr.TAlt2.TBlock3","rule":"TRule_cond_expr.TAlt2.TBlock3.Token1","sum":3141787},{"parent":"TRule_cond_expr.TAlt3","rule":"TRule_cond_expr.TAlt3.Block1","sum":173278806},{"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":390},{"parent":"TRule_cond_expr.TAlt3.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.Alt3","sum":60881961},{"parent":"TRule_cond_expr.TAlt3.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.Alt4","sum":112396293},{"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":390},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt3","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt3.Token1","sum":60881961},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt3","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt3.Token2","sum":60881961},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.Block1","sum":112354867},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.Token2","sum":112396293},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.Token3","sum":112396293},{"parent":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.TBlock1","rule":"TRule_cond_expr.TAlt3.TBlock1.TAlt4.TBlock1.Token1","sum":112354867},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Block1","sum":406296},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Block3","sum":26},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Rule_eq_subexpr4","sum":25108695},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Rule_eq_subexpr6","sum":25108695},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Token2","sum":25108695},{"parent":"TRule_cond_expr.TAlt4","rule":"TRule_cond_expr.TAlt4.Token5","sum":25108695},{"parent":"TRule_cond_expr.TAlt4.TBlock1","rule":"TRule_cond_expr.TAlt4.TBlock1.Token1","sum":406296},{"parent":"TRule_cond_expr.TAlt4.TBlock3","rule":"TRule_cond_expr.TAlt4.TBlock3.Token1","sum":26},{"parent":"TRule_cond_expr.TAlt5","rule":"TRule_cond_expr.TAlt5.Block1","sum":721369232},{"parent":"TRule_cond_expr.TAlt5.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.Block1","sum":721371197},{"parent":"TRule_cond_expr.TAlt5.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.Rule_eq_subexpr2","sum":721371197},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt1","sum":493355233},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt2","sum":172963026},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt3","sum":49642288},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt4","sum":5008709},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.Alt5","sum":401941},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt1","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt1.Token1","sum":493355233},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt2","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt2.Token1","sum":172963026},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt3","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt3.Token1","sum":49642288},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt4","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt4.Token1","sum":5008709},{"parent":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt5","rule":"TRule_cond_expr.TAlt5.TBlock1.TBlock1.TAlt5.Rule_distinct_from_op1","sum":401941},{"parent":"TRule_create_table_entry","rule":"TRule_create_table_entry.Alt_create_table_entry1","sum":1160},{"parent":"TRule_create_table_entry","rule":"TRule_create_table_entry.Alt_create_table_entry2","sum":229},{"parent":"TRule_create_table_entry.TAlt1","rule":"TRule_create_table_entry.TAlt1.Rule_column_schema1","sum":1160},{"parent":"TRule_create_table_entry.TAlt2","rule":"TRule_create_table_entry.TAlt2.Rule_table_constraint1","sum":229},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Block3","sum":125},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Block8","sum":125},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Rule_create_table_entry7","sum":125},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Rule_simple_table_ref5","sum":125},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Token1","sum":125},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Token10","sum":125},{"parent":"TRule_create_table_stmt","rule":"TRule_create_table_stmt.Token6","sum":125},{"parent":"TRule_create_table_stmt.TBlock3","rule":"TRule_create_table_stmt.TBlock3.Alt1","sum":125},{"parent":"TRule_create_table_stmt.TBlock3.TAlt1","rule":"TRule_create_table_stmt.TBlock3.TAlt1.Token1","sum":125},{"parent":"TRule_create_table_stmt.TBlock8","rule":"TRule_create_table_stmt.TBlock8.Rule_create_table_entry2","sum":1264},{"parent":"TRule_create_table_stmt.TBlock8","rule":"TRule_create_table_stmt.TBlock8.Token1","sum":1264},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Rule_ordinary_grouping_set_list3","sum":276361},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Token1","sum":276361},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Token2","sum":276361},{"parent":"TRule_cube_list","rule":"TRule_cube_list.Token4","sum":276361},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Rule_bind_parameter2","sum":156792290},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Rule_type_name4","sum":156792290},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Token1","sum":156792290},{"parent":"TRule_declare_stmt","rule":"TRule_declare_stmt.Token3","sum":156792290},{"parent":"TRule_define_action_or_subquery_body","rule":"TRule_define_action_or_subquery_body.Block1","sum":45718},{"parent":"TRule_define_action_or_subquery_body","rule":"TRule_define_action_or_subquery_body.Block2","sum":36285457},{"parent":"TRule_define_action_or_subquery_body.TBlock1","rule":"TRule_define_action_or_subquery_body.TBlock1.Token1","sum":45718},{"parent":"TRule_define_action_or_subquery_body.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.Block2","sum":16156594},{"parent":"TRule_define_action_or_subquery_body.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.Block3","sum":23643182},{"parent":"TRule_define_action_or_subquery_body.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.Rule_sql_stmt_core1","sum":36285457},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.Block1","sum":46112405},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock2","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.Rule_sql_stmt_core2","sum":46112405},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.TBlock1","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock2.TBlock1.Token1","sum":46125679},{"parent":"TRule_define_action_or_subquery_body.TBlock2.TBlock3","rule":"TRule_define_action_or_subquery_body.TBlock2.TBlock3.Token1","sum":23669314},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Block5","sum":14027239},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Rule_bind_parameter3","sum":22375819},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Rule_define_action_or_subquery_body8","sum":22375819},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token1","sum":22375819},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token10","sum":22375819},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token2","sum":22375819},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token4","sum":22375819},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token6","sum":22375819},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token7","sum":22375819},{"parent":"TRule_define_action_or_subquery_stmt","rule":"TRule_define_action_or_subquery_stmt.Token9","sum":22375819},{"parent":"TRule_define_action_or_subquery_stmt.TBlock5","rule":"TRule_define_action_or_subquery_stmt.TBlock5.Rule_action_or_subquery_args1","sum":14027239},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Block2","sum":8248170},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Block3","sum":2256610},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Token1","sum":8997473},{"parent":"TRule_dict_literal","rule":"TRule_dict_literal.Token4","sum":8997473},{"parent":"TRule_dict_literal.TBlock2","rule":"TRule_dict_literal.TBlock2.Rule_expr_dict_list1","sum":8248170},{"parent":"TRule_dict_literal.TBlock3","rule":"TRule_dict_literal.TBlock3.Token1","sum":2256610},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Block2","sum":118884},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Token1","sum":401941},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Token3","sum":401941},{"parent":"TRule_distinct_from_op","rule":"TRule_distinct_from_op.Token4","sum":401941},{"parent":"TRule_distinct_from_op.TBlock2","rule":"TRule_distinct_from_op.TBlock2.Token1","sum":118884},{"parent":"TRule_do_stmt","rule":"TRule_do_stmt.Block2","sum":23403292},{"parent":"TRule_do_stmt","rule":"TRule_do_stmt.Token1","sum":23403292},{"parent":"TRule_do_stmt.TBlock2","rule":"TRule_do_stmt.TBlock2.Alt1","sum":9487200},{"parent":"TRule_do_stmt.TBlock2","rule":"TRule_do_stmt.TBlock2.Alt2","sum":13916092},{"parent":"TRule_do_stmt.TBlock2.TAlt1","rule":"TRule_do_stmt.TBlock2.TAlt1.Rule_call_action1","sum":9487200},{"parent":"TRule_do_stmt.TBlock2.TAlt2","rule":"TRule_do_stmt.TBlock2.TAlt2.Rule_inline_action1","sum":13916092},{"parent":"TRule_double_question","rule":"TRule_double_question.Token1","sum":108073061},{"parent":"TRule_double_question","rule":"TRule_double_question.Token2","sum":108073061},{"parent":"TRule_drop_table_stmt","rule":"TRule_drop_table_stmt.Block2","sum":2572734},{"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":2572734},{"parent":"TRule_drop_table_stmt","rule":"TRule_drop_table_stmt.Token1","sum":2572734},{"parent":"TRule_drop_table_stmt.TBlock2","rule":"TRule_drop_table_stmt.TBlock2.Alt1","sum":2572734},{"parent":"TRule_drop_table_stmt.TBlock2.TAlt1","rule":"TRule_drop_table_stmt.TBlock2.TAlt1.Token1","sum":2572734},{"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":239920260},{"parent":"TRule_eq_subexpr","rule":"TRule_eq_subexpr.Rule_neq_subexpr1","sum":15125395757},{"parent":"TRule_eq_subexpr.TBlock2","rule":"TRule_eq_subexpr.TBlock2.Rule_neq_subexpr2","sum":239920314},{"parent":"TRule_eq_subexpr.TBlock2","rule":"TRule_eq_subexpr.TBlock2.Token1","sum":239920314},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Block3","sum":77242},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Token1","sum":77242},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Token2","sum":77242},{"parent":"TRule_exists_expr","rule":"TRule_exists_expr.Token4","sum":77242},{"parent":"TRule_exists_expr.TBlock3","rule":"TRule_exists_expr.TBlock3.Alt1","sum":77242},{"parent":"TRule_exists_expr.TBlock3.TAlt1","rule":"TRule_exists_expr.TBlock3.TAlt1.Rule_select_stmt1","sum":77242},{"parent":"TRule_expr","rule":"TRule_expr.Alt_expr1","sum":13713697233},{"parent":"TRule_expr","rule":"TRule_expr.Alt_expr2","sum":17425556},{"parent":"TRule_expr.TAlt1","rule":"TRule_expr.TAlt1.Block2","sum":68508745},{"parent":"TRule_expr.TAlt1","rule":"TRule_expr.TAlt1.Rule_or_subexpr1","sum":13713697233},{"parent":"TRule_expr.TAlt1.TBlock2","rule":"TRule_expr.TAlt1.TBlock2.Rule_or_subexpr2","sum":115429705},{"parent":"TRule_expr.TAlt1.TBlock2","rule":"TRule_expr.TAlt1.TBlock2.Token1","sum":115429705},{"parent":"TRule_expr.TAlt2","rule":"TRule_expr.TAlt2.Rule_type_name_composite1","sum":17425556},{"parent":"TRule_expr_dict_list","rule":"TRule_expr_dict_list.Block2","sum":7050783},{"parent":"TRule_expr_dict_list","rule":"TRule_expr_dict_list.Block3","sum":6655688},{"parent":"TRule_expr_dict_list","rule":"TRule_expr_dict_list.Rule_expr1","sum":8248170},{"parent":"TRule_expr_dict_list.TBlock2","rule":"TRule_expr_dict_list.TBlock2.Rule_expr2","sum":7050783},{"parent":"TRule_expr_dict_list.TBlock2","rule":"TRule_expr_dict_list.TBlock2.Token1","sum":7050783},{"parent":"TRule_expr_dict_list.TBlock3","rule":"TRule_expr_dict_list.TBlock3.Block3","sum":35369774},{"parent":"TRule_expr_dict_list.TBlock3","rule":"TRule_expr_dict_list.TBlock3.Rule_expr2","sum":42335591},{"parent":"TRule_expr_dict_list.TBlock3","rule":"TRule_expr_dict_list.TBlock3.Token1","sum":42335591},{"parent":"TRule_expr_dict_list.TBlock3.TBlock3","rule":"TRule_expr_dict_list.TBlock3.TBlock3.Rule_expr2","sum":35369774},{"parent":"TRule_expr_dict_list.TBlock3.TBlock3","rule":"TRule_expr_dict_list.TBlock3.TBlock3.Token1","sum":35369774},{"parent":"TRule_expr_list","rule":"TRule_expr_list.Block2","sum":42099297},{"parent":"TRule_expr_list","rule":"TRule_expr_list.Rule_expr1","sum":67782951},{"parent":"TRule_expr_list.TBlock2","rule":"TRule_expr_list.TBlock2.Rule_expr2","sum":206854597},{"parent":"TRule_expr_list.TBlock2","rule":"TRule_expr_list.TBlock2.Token1","sum":206854597},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Block4","sum":12650040},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Rule_expr1","sum":14603829},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Rule_expr3","sum":14603829},{"parent":"TRule_expr_struct_list","rule":"TRule_expr_struct_list.Token2","sum":14603829},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Rule_expr2","sum":31557138},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Rule_expr4","sum":31557138},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Token1","sum":31557138},{"parent":"TRule_expr_struct_list.TBlock4","rule":"TRule_expr_struct_list.TBlock4.Token3","sum":31557138},{"parent":"TRule_ext_order_by_clause","rule":"TRule_ext_order_by_clause.Block1","sum":2627040},{"parent":"TRule_ext_order_by_clause","rule":"TRule_ext_order_by_clause.Rule_order_by_clause2","sum":89004653},{"parent":"TRule_ext_order_by_clause.TBlock1","rule":"TRule_ext_order_by_clause.TBlock1.Token1","sum":2627040},{"parent":"TRule_flatten_by_arg","rule":"TRule_flatten_by_arg.Alt_flatten_by_arg1","sum":21451704},{"parent":"TRule_flatten_by_arg","rule":"TRule_flatten_by_arg.Alt_flatten_by_arg2","sum":4343368},{"parent":"TRule_flatten_by_arg.TAlt1","rule":"TRule_flatten_by_arg.TAlt1.Rule_named_column1","sum":21451704},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Block3","sum":53158},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Rule_named_expr_list2","sum":4343368},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Token1","sum":4343368},{"parent":"TRule_flatten_by_arg.TAlt2","rule":"TRule_flatten_by_arg.TAlt2.Token4","sum":4343368},{"parent":"TRule_flatten_by_arg.TAlt2.TBlock3","rule":"TRule_flatten_by_arg.TAlt2.TBlock3.Token1","sum":53158},{"parent":"TRule_flatten_source","rule":"TRule_flatten_source.Block2","sum":33768374},{"parent":"TRule_flatten_source","rule":"TRule_flatten_source.Rule_named_single_source1","sum":1055367403},{"parent":"TRule_flatten_source.TBlock2","rule":"TRule_flatten_source.TBlock2.Block2","sum":33768374},{"parent":"TRule_flatten_source.TBlock2","rule":"TRule_flatten_source.TBlock2.Token1","sum":33768374},{"parent":"TRule_flatten_source.TBlock2.TBlock2","rule":"TRule_flatten_source.TBlock2.TBlock2.Alt1","sum":25795072},{"parent":"TRule_flatten_source.TBlock2.TBlock2","rule":"TRule_flatten_source.TBlock2.TBlock2.Alt2","sum":7973302},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.Block1","sum":19723502},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.Rule_flatten_by_arg3","sum":25795072},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.Token2","sum":25795072},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.TBlock1","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt1.TBlock1.Token1","sum":19723502},{"parent":"TRule_flatten_source.TBlock2.TBlock2.TAlt2","rule":"TRule_flatten_source.TBlock2.TBlock2.TAlt2.Token1","sum":7973302},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Block1","sum":7048099},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Block2","sum":8},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Block8","sum":64969},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Rule_bind_parameter4","sum":7048194},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Rule_do_stmt7","sum":7048194},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Rule_expr6","sum":7048194},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Token3","sum":7048194},{"parent":"TRule_for_stmt","rule":"TRule_for_stmt.Token5","sum":7048194},{"parent":"TRule_for_stmt.TBlock1","rule":"TRule_for_stmt.TBlock1.Token1","sum":7048099},{"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":64969},{"parent":"TRule_for_stmt.TBlock8","rule":"TRule_for_stmt.TBlock8.Token1","sum":64969},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Block2","sum":1609399},{"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":138061902},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Rule_opt_set_quantifier4","sum":138061902},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Token1","sum":138061902},{"parent":"TRule_group_by_clause","rule":"TRule_group_by_clause.Token3","sum":138061902},{"parent":"TRule_group_by_clause.TBlock2","rule":"TRule_group_by_clause.TBlock2.Token1","sum":1609399},{"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":301105925},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element2","sum":63017},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element3","sum":276361},{"parent":"TRule_grouping_element","rule":"TRule_grouping_element.Alt_grouping_element4","sum":92394},{"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":301105925},{"parent":"TRule_grouping_element.TAlt2","rule":"TRule_grouping_element.TAlt2.Rule_rollup_list1","sum":63017},{"parent":"TRule_grouping_element.TAlt3","rule":"TRule_grouping_element.TAlt3.Rule_cube_list1","sum":276361},{"parent":"TRule_grouping_element.TAlt4","rule":"TRule_grouping_element.TAlt4.Rule_grouping_sets_specification1","sum":92394},{"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":62884956},{"parent":"TRule_grouping_element_list","rule":"TRule_grouping_element_list.Rule_grouping_element1","sum":138154296},{"parent":"TRule_grouping_element_list.TBlock2","rule":"TRule_grouping_element_list.TBlock2.Rule_grouping_element2","sum":163383424},{"parent":"TRule_grouping_element_list.TBlock2","rule":"TRule_grouping_element_list.TBlock2.Token1","sum":163383424},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Rule_grouping_element_list4","sum":92394},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token1","sum":92394},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token2","sum":92394},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token3","sum":92394},{"parent":"TRule_grouping_sets_specification","rule":"TRule_grouping_sets_specification.Token5","sum":92394},{"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":12163133686},{"parent":"TRule_id","rule":"TRule_id.Alt_id2","sum":533050547},{"parent":"TRule_id.TAlt1","rule":"TRule_id.TAlt1.Rule_identifier1","sum":12163133686},{"parent":"TRule_id.TAlt2","rule":"TRule_id.TAlt2.Rule_keyword1","sum":533050547},{"parent":"TRule_id_as_compat","rule":"TRule_id_as_compat.Alt_id_as_compat1","sum":3034444},{"parent":"TRule_id_as_compat","rule":"TRule_id_as_compat.Alt_id_as_compat2","sum":2690},{"parent":"TRule_id_as_compat.TAlt1","rule":"TRule_id_as_compat.TAlt1.Rule_identifier1","sum":3034444},{"parent":"TRule_id_as_compat.TAlt2","rule":"TRule_id_as_compat.TAlt2.Rule_keyword_as_compat1","sum":2690},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr1","sum":6935456183},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr2","sum":320834100},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr3","sum":417538},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr5","sum":35238238},{"parent":"TRule_id_expr","rule":"TRule_id_expr.Alt_id_expr6","sum":181460},{"parent":"TRule_id_expr.TAlt1","rule":"TRule_id_expr.TAlt1.Rule_identifier1","sum":6935456183},{"parent":"TRule_id_expr.TAlt2","rule":"TRule_id_expr.TAlt2.Rule_keyword_compat1","sum":320834100},{"parent":"TRule_id_expr.TAlt3","rule":"TRule_id_expr.TAlt3.Rule_keyword_alter_uncompat1","sum":417538},{"parent":"TRule_id_expr.TAlt5","rule":"TRule_id_expr.TAlt5.Rule_keyword_window_uncompat1","sum":35238238},{"parent":"TRule_id_expr.TAlt6","rule":"TRule_id_expr.TAlt6.Rule_keyword_hint_uncompat1","sum":181460},{"parent":"TRule_id_expr_in","rule":"TRule_id_expr_in.Alt_id_expr_in1","sum":5652110},{"parent":"TRule_id_expr_in","rule":"TRule_id_expr_in.Alt_id_expr_in2","sum":75406},{"parent":"TRule_id_expr_in","rule":"TRule_id_expr_in.Alt_id_expr_in4","sum":217},{"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":5652110},{"parent":"TRule_id_expr_in.TAlt2","rule":"TRule_id_expr_in.TAlt2.Rule_keyword_compat1","sum":75406},{"parent":"TRule_id_expr_in.TAlt4","rule":"TRule_id_expr_in.TAlt4.Rule_keyword_window_uncompat1","sum":217},{"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":154982067},{"parent":"TRule_id_hint","rule":"TRule_id_hint.Alt_id_hint2","sum":24170},{"parent":"TRule_id_hint","rule":"TRule_id_hint.Alt_id_hint3","sum":24169},{"parent":"TRule_id_hint.TAlt1","rule":"TRule_id_hint.TAlt1.Rule_identifier1","sum":154982067},{"parent":"TRule_id_hint.TAlt2","rule":"TRule_id_hint.TAlt2.Rule_keyword_compat1","sum":24170},{"parent":"TRule_id_hint.TAlt3","rule":"TRule_id_hint.TAlt3.Rule_keyword_expr_uncompat1","sum":24169},{"parent":"TRule_id_or_at","rule":"TRule_id_or_at.Block1","sum":4799824},{"parent":"TRule_id_or_at","rule":"TRule_id_or_at.Rule_an_id_or_type2","sum":133959216},{"parent":"TRule_id_or_at.TBlock1","rule":"TRule_id_or_at.TBlock1.Token1","sum":4799824},{"parent":"TRule_id_or_type","rule":"TRule_id_or_type.Alt_id_or_type1","sum":10580056071},{"parent":"TRule_id_or_type","rule":"TRule_id_or_type.Alt_id_or_type2","sum":11723733},{"parent":"TRule_id_or_type.TAlt1","rule":"TRule_id_or_type.TAlt1.Rule_id1","sum":10580056071},{"parent":"TRule_id_or_type.TAlt2","rule":"TRule_id_or_type.TAlt2.Rule_type_id1","sum":11723733},{"parent":"TRule_id_schema","rule":"TRule_id_schema.Alt_id_schema1","sum":1148},{"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":1148},{"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":330592812},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table2","sum":654441},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table3","sum":365},{"parent":"TRule_id_table","rule":"TRule_id_table.Alt_id_table4","sum":12473},{"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":1838},{"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":330592812},{"parent":"TRule_id_table.TAlt2","rule":"TRule_id_table.TAlt2.Rule_keyword_compat1","sum":654441},{"parent":"TRule_id_table.TAlt3","rule":"TRule_id_table.TAlt3.Rule_keyword_expr_uncompat1","sum":365},{"parent":"TRule_id_table.TAlt4","rule":"TRule_id_table.TAlt4.Rule_keyword_select_uncompat1","sum":12473},{"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":1838},{"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":331261944},{"parent":"TRule_id_table_or_type","rule":"TRule_id_table_or_type.Alt_id_table_or_type2","sum":4190},{"parent":"TRule_id_table_or_type.TAlt1","rule":"TRule_id_table_or_type.TAlt1.Rule_an_id_table1","sum":331261944},{"parent":"TRule_id_table_or_type.TAlt2","rule":"TRule_id_table_or_type.TAlt2.Rule_type_id1","sum":4190},{"parent":"TRule_id_window","rule":"TRule_id_window.Alt_id_window1","sum":46523701},{"parent":"TRule_id_window","rule":"TRule_id_window.Alt_id_window2","sum":15783},{"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":7859},{"parent":"TRule_id_window.TAlt1","rule":"TRule_id_window.TAlt1.Rule_identifier1","sum":46523701},{"parent":"TRule_id_window.TAlt2","rule":"TRule_id_window.TAlt2.Rule_keyword_compat1","sum":15783},{"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":7859},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without1","sum":23143060},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without2","sum":278042},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without6","sum":1135},{"parent":"TRule_id_without","rule":"TRule_id_without.Alt_id_without7","sum":527},{"parent":"TRule_id_without.TAlt1","rule":"TRule_id_without.TAlt1.Rule_identifier1","sum":23143060},{"parent":"TRule_id_without.TAlt2","rule":"TRule_id_without.TAlt2.Rule_keyword_compat1","sum":278042},{"parent":"TRule_id_without.TAlt6","rule":"TRule_id_without.TAlt6.Rule_keyword_window_uncompat1","sum":1135},{"parent":"TRule_id_without.TAlt7","rule":"TRule_id_without.TAlt7.Rule_keyword_hint_uncompat1","sum":527},{"parent":"TRule_identifier","rule":"TRule_identifier.Token1","sum":20341456710},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Block1","sum":8585409},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Block5","sum":2984759},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Rule_do_stmt4","sum":8585453},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Rule_expr3","sum":8585453},{"parent":"TRule_if_stmt","rule":"TRule_if_stmt.Token2","sum":8585453},{"parent":"TRule_if_stmt.TBlock1","rule":"TRule_if_stmt.TBlock1.Token1","sum":8585409},{"parent":"TRule_if_stmt.TBlock5","rule":"TRule_if_stmt.TBlock5.Rule_do_stmt2","sum":2984759},{"parent":"TRule_if_stmt.TBlock5","rule":"TRule_if_stmt.TBlock5.Token1","sum":2984759},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Rule_module_path2","sum":16683079},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Rule_named_bind_parameter_list4","sum":16683079},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Token1","sum":16683079},{"parent":"TRule_import_stmt","rule":"TRule_import_stmt.Token3","sum":16683079},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr1","sum":2234},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr10","sum":5136597},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr11","sum":454625},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr2","sum":36512023},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr3","sum":65607797},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr4","sum":44293},{"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":2976915},{"parent":"TRule_in_atom_expr","rule":"TRule_in_atom_expr.Alt_in_atom_expr7","sum":9793228},{"parent":"TRule_in_atom_expr.TAlt1","rule":"TRule_in_atom_expr.TAlt1.Rule_literal_value1","sum":2234},{"parent":"TRule_in_atom_expr.TAlt10","rule":"TRule_in_atom_expr.TAlt10.Rule_list_literal1","sum":5136597},{"parent":"TRule_in_atom_expr.TAlt11","rule":"TRule_in_atom_expr.TAlt11.Rule_dict_literal1","sum":454625},{"parent":"TRule_in_atom_expr.TAlt2","rule":"TRule_in_atom_expr.TAlt2.Rule_bind_parameter1","sum":36512023},{"parent":"TRule_in_atom_expr.TAlt3","rule":"TRule_in_atom_expr.TAlt3.Rule_lambda1","sum":65607797},{"parent":"TRule_in_atom_expr.TAlt4","rule":"TRule_in_atom_expr.TAlt4.Rule_cast_expr1","sum":44293},{"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":2976915},{"parent":"TRule_in_atom_expr.TAlt6","rule":"TRule_in_atom_expr.TAlt6.Rule_an_id_or_type1","sum":2976915},{"parent":"TRule_in_atom_expr.TAlt6","rule":"TRule_in_atom_expr.TAlt6.Token2","sum":2976915},{"parent":"TRule_in_atom_expr.TAlt6.TBlock3","rule":"TRule_in_atom_expr.TAlt6.TBlock3.Alt1","sum":2976915},{"parent":"TRule_in_atom_expr.TAlt6.TBlock3.TAlt1","rule":"TRule_in_atom_expr.TAlt6.TBlock3.TAlt1.Rule_id_or_type1","sum":2976915},{"parent":"TRule_in_atom_expr.TAlt7","rule":"TRule_in_atom_expr.TAlt7.Rule_select_stmt2","sum":9793228},{"parent":"TRule_in_atom_expr.TAlt7","rule":"TRule_in_atom_expr.TAlt7.Token1","sum":9793228},{"parent":"TRule_in_atom_expr.TAlt7","rule":"TRule_in_atom_expr.TAlt7.Token3","sum":9793228},{"parent":"TRule_in_expr","rule":"TRule_in_expr.Rule_in_unary_subexpr1","sum":126255554},{"parent":"TRule_in_unary_casual_subexpr","rule":"TRule_in_unary_casual_subexpr.Block1","sum":126255502},{"parent":"TRule_in_unary_casual_subexpr","rule":"TRule_in_unary_casual_subexpr.Rule_unary_subexpr_suffix2","sum":126255502},{"parent":"TRule_in_unary_casual_subexpr.TBlock1","rule":"TRule_in_unary_casual_subexpr.TBlock1.Alt1","sum":5727786},{"parent":"TRule_in_unary_casual_subexpr.TBlock1","rule":"TRule_in_unary_casual_subexpr.TBlock1.Alt2","sum":120527716},{"parent":"TRule_in_unary_casual_subexpr.TBlock1.TAlt1","rule":"TRule_in_unary_casual_subexpr.TBlock1.TAlt1.Rule_id_expr_in1","sum":5727786},{"parent":"TRule_in_unary_casual_subexpr.TBlock1.TAlt2","rule":"TRule_in_unary_casual_subexpr.TBlock1.TAlt2.Rule_in_atom_expr1","sum":120527716},{"parent":"TRule_in_unary_subexpr","rule":"TRule_in_unary_subexpr.Alt_in_unary_subexpr1","sum":126255502},{"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":126255502},{"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":13916092},{"parent":"TRule_inline_action","rule":"TRule_inline_action.Token1","sum":13916092},{"parent":"TRule_inline_action","rule":"TRule_inline_action.Token3","sum":13916092},{"parent":"TRule_inline_action","rule":"TRule_inline_action.Token4","sum":13916092},{"parent":"TRule_integer","rule":"TRule_integer.Token1","sum":2790874162},{"parent":"TRule_integer_or_bind","rule":"TRule_integer_or_bind.Alt_integer_or_bind1","sum":55447575},{"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":55447575},{"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":25526},{"parent":"TRule_into_simple_table_ref","rule":"TRule_into_simple_table_ref.Rule_simple_table_ref1","sum":209729253},{"parent":"TRule_into_simple_table_ref.TBlock2","rule":"TRule_into_simple_table_ref.TBlock2.Rule_pure_column_list3","sum":25526},{"parent":"TRule_into_simple_table_ref.TBlock2","rule":"TRule_into_simple_table_ref.TBlock2.Token1","sum":25526},{"parent":"TRule_into_simple_table_ref.TBlock2","rule":"TRule_into_simple_table_ref.TBlock2.Token2","sum":25526},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Block1","sum":209729253},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Rule_into_simple_table_ref3","sum":209729253},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Rule_into_values_source4","sum":209729253},{"parent":"TRule_into_table_stmt","rule":"TRule_into_table_stmt.Token2","sum":209729253},{"parent":"TRule_into_table_stmt.TBlock1","rule":"TRule_into_table_stmt.TBlock1.Alt1","sum":209619187},{"parent":"TRule_into_table_stmt.TBlock1","rule":"TRule_into_table_stmt.TBlock1.Alt5","sum":110065},{"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":209619187},{"parent":"TRule_into_table_stmt.TBlock1.TAlt5","rule":"TRule_into_table_stmt.TBlock1.TAlt5.Token1","sum":110065},{"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":209729253},{"parent":"TRule_into_values_source.TAlt1","rule":"TRule_into_values_source.TAlt1.Block1","sum":4547156},{"parent":"TRule_into_values_source.TAlt1","rule":"TRule_into_values_source.TAlt1.Rule_values_source2","sum":209729253},{"parent":"TRule_into_values_source.TAlt1.TBlock1","rule":"TRule_into_values_source.TAlt1.TBlock1.Rule_pure_column_list1","sum":4547156},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Block2","sum":2772691048},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Rule_invoke_expr_tail4","sum":2887374802},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Token1","sum":2887374802},{"parent":"TRule_invoke_expr","rule":"TRule_invoke_expr.Token3","sum":2887374802},{"parent":"TRule_invoke_expr.TBlock2","rule":"TRule_invoke_expr.TBlock2.Alt1","sum":2713595432},{"parent":"TRule_invoke_expr.TBlock2","rule":"TRule_invoke_expr.TBlock2.Alt2","sum":59095616},{"parent":"TRule_invoke_expr.TBlock2.TAlt1","rule":"TRule_invoke_expr.TBlock2.TAlt1.Block3","sum":9708052},{"parent":"TRule_invoke_expr.TBlock2.TAlt1","rule":"TRule_invoke_expr.TBlock2.TAlt1.Rule_named_expr_list2","sum":2713595432},{"parent":"TRule_invoke_expr.TBlock2.TAlt1","rule":"TRule_invoke_expr.TBlock2.TAlt1.Rule_opt_set_quantifier1","sum":2713595432},{"parent":"TRule_invoke_expr.TBlock2.TAlt1.TBlock3","rule":"TRule_invoke_expr.TBlock2.TAlt1.TBlock3.Token1","sum":9708052},{"parent":"TRule_invoke_expr.TBlock2.TAlt2","rule":"TRule_invoke_expr.TBlock2.TAlt2.Token1","sum":59095616},{"parent":"TRule_invoke_expr_tail","rule":"TRule_invoke_expr_tail.Block1","sum":7293225},{"parent":"TRule_invoke_expr_tail","rule":"TRule_invoke_expr_tail.Block2","sum":45477385},{"parent":"TRule_invoke_expr_tail.TBlock1","rule":"TRule_invoke_expr_tail.TBlock1.Alt1","sum":7293225},{"parent":"TRule_invoke_expr_tail.TBlock1.TAlt1","rule":"TRule_invoke_expr_tail.TBlock1.TAlt1.Rule_null_treatment1","sum":7293225},{"parent":"TRule_invoke_expr_tail.TBlock2","rule":"TRule_invoke_expr_tail.TBlock2.Rule_window_name_or_specification2","sum":45477385},{"parent":"TRule_invoke_expr_tail.TBlock2","rule":"TRule_invoke_expr_tail.TBlock2.Token1","sum":45477385},{"parent":"TRule_join_constraint","rule":"TRule_join_constraint.Alt_join_constraint1","sum":173497169},{"parent":"TRule_join_constraint","rule":"TRule_join_constraint.Alt_join_constraint2","sum":32540623},{"parent":"TRule_join_constraint.TAlt1","rule":"TRule_join_constraint.TAlt1.Rule_expr2","sum":173497169},{"parent":"TRule_join_constraint.TAlt1","rule":"TRule_join_constraint.TAlt1.Token1","sum":173497169},{"parent":"TRule_join_constraint.TAlt2","rule":"TRule_join_constraint.TAlt2.Rule_pure_column_or_named_list2","sum":32540623},{"parent":"TRule_join_constraint.TAlt2","rule":"TRule_join_constraint.TAlt2.Token1","sum":32540623},{"parent":"TRule_join_op","rule":"TRule_join_op.Alt_join_op1","sum":28765},{"parent":"TRule_join_op","rule":"TRule_join_op.Alt_join_op2","sum":209109240},{"parent":"TRule_join_op.TAlt1","rule":"TRule_join_op.TAlt1.Token1","sum":28765},{"parent":"TRule_join_op.TAlt2","rule":"TRule_join_op.TAlt2.Block2","sum":209109240},{"parent":"TRule_join_op.TAlt2","rule":"TRule_join_op.TAlt2.Token3","sum":209109240},{"parent":"TRule_join_op.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.Alt1","sum":175229648},{"parent":"TRule_join_op.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.Alt2","sum":30808144},{"parent":"TRule_join_op.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.Alt3","sum":3071448},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.Block1","sum":127077276},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.Block2","sum":295958},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt1","sum":119139880},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt2","sum":1700064},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt3","sum":285919},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.Alt4","sum":5951413},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.Block2","sum":19730652},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.Token1","sum":119139880},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt1.TBlock2.Token1","sum":19730652},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.Block2","sum":519930},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.Token1","sum":1700064},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt2.TBlock2.Token1","sum":519930},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt3","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt3.Token1","sum":285919},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt4","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock1.TAlt4.Token1","sum":5951413},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt1.TBlock2.Token1","sum":295958},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt2","rule":"TRule_join_op.TAlt2.TBlock2.TAlt2.Token1","sum":30808144},{"parent":"TRule_join_op.TAlt2.TBlock2.TAlt3","rule":"TRule_join_op.TAlt2.TBlock2.TAlt3.Token1","sum":3071448},{"parent":"TRule_join_source","rule":"TRule_join_source.Block1","sum":625518},{"parent":"TRule_join_source","rule":"TRule_join_source.Block3","sum":145768895},{"parent":"TRule_join_source","rule":"TRule_join_source.Rule_flatten_source2","sum":846229398},{"parent":"TRule_join_source.TBlock1","rule":"TRule_join_source.TBlock1.Token1","sum":625518},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Block2","sum":14080518},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Block4","sum":206037792},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Rule_flatten_source3","sum":209138005},{"parent":"TRule_join_source.TBlock3","rule":"TRule_join_source.TBlock3.Rule_join_op1","sum":209138005},{"parent":"TRule_join_source.TBlock3.TBlock2","rule":"TRule_join_source.TBlock3.TBlock2.Token1","sum":14080518},{"parent":"TRule_join_source.TBlock3.TBlock4","rule":"TRule_join_source.TBlock3.TBlock4.Rule_join_constraint1","sum":206037792},{"parent":"TRule_json_api_expr","rule":"TRule_json_api_expr.Alt_json_api_expr1","sum":5833983},{"parent":"TRule_json_api_expr","rule":"TRule_json_api_expr.Alt_json_api_expr2","sum":184354},{"parent":"TRule_json_api_expr","rule":"TRule_json_api_expr.Alt_json_api_expr3","sum":316587},{"parent":"TRule_json_api_expr.TAlt1","rule":"TRule_json_api_expr.TAlt1.Rule_json_value1","sum":5833983},{"parent":"TRule_json_api_expr.TAlt2","rule":"TRule_json_api_expr.TAlt2.Rule_json_exists1","sum":184354},{"parent":"TRule_json_api_expr.TAlt3","rule":"TRule_json_api_expr.TAlt3.Rule_json_query1","sum":316587},{"parent":"TRule_json_case_handler","rule":"TRule_json_case_handler.Alt_json_case_handler1","sum":7134},{"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":200472},{"parent":"TRule_json_case_handler.TAlt1","rule":"TRule_json_case_handler.TAlt1.Token1","sum":7134},{"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":200472},{"parent":"TRule_json_case_handler.TAlt3","rule":"TRule_json_case_handler.TAlt3.Token1","sum":200472},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Block4","sum":20022},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Rule_expr1","sum":6334924},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Rule_jsonpath_spec3","sum":6334924},{"parent":"TRule_json_common_args","rule":"TRule_json_common_args.Token2","sum":6334924},{"parent":"TRule_json_common_args.TBlock4","rule":"TRule_json_common_args.TBlock4.Rule_json_variables2","sum":20022},{"parent":"TRule_json_common_args.TBlock4","rule":"TRule_json_common_args.TBlock4.Token1","sum":20022},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Block4","sum":116},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Rule_json_common_args3","sum":184354},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Token1","sum":184354},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Token2","sum":184354},{"parent":"TRule_json_exists","rule":"TRule_json_exists.Token5","sum":184354},{"parent":"TRule_json_exists.TBlock4","rule":"TRule_json_exists.TBlock4.Rule_json_exists_handler1","sum":116},{"parent":"TRule_json_exists_handler","rule":"TRule_json_exists_handler.Token1","sum":116},{"parent":"TRule_json_exists_handler","rule":"TRule_json_exists_handler.Token2","sum":116},{"parent":"TRule_json_exists_handler","rule":"TRule_json_exists_handler.Token3","sum":116},{"parent":"TRule_json_query","rule":"TRule_json_query.Block4","sum":191123},{"parent":"TRule_json_query","rule":"TRule_json_query.Block5","sum":86},{"parent":"TRule_json_query","rule":"TRule_json_query.Block6","sum":4123},{"parent":"TRule_json_query","rule":"TRule_json_query.Rule_json_common_args3","sum":316587},{"parent":"TRule_json_query","rule":"TRule_json_query.Token1","sum":316587},{"parent":"TRule_json_query","rule":"TRule_json_query.Token2","sum":316587},{"parent":"TRule_json_query","rule":"TRule_json_query.Token7","sum":316587},{"parent":"TRule_json_query.TBlock4","rule":"TRule_json_query.TBlock4.Rule_json_query_wrapper1","sum":191123},{"parent":"TRule_json_query.TBlock4","rule":"TRule_json_query.TBlock4.Token2","sum":191123},{"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":4123},{"parent":"TRule_json_query.TBlock6","rule":"TRule_json_query.TBlock6.Token2","sum":4123},{"parent":"TRule_json_query.TBlock6","rule":"TRule_json_query.TBlock6.Token3","sum":4123},{"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":2289},{"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":2289},{"parent":"TRule_json_query_handler.TAlt3","rule":"TRule_json_query_handler.TAlt3.Token2","sum":2289},{"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":191078},{"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":166591},{"parent":"TRule_json_query_wrapper.TAlt2","rule":"TRule_json_query_wrapper.TAlt2.Block3","sum":32430},{"parent":"TRule_json_query_wrapper.TAlt2","rule":"TRule_json_query_wrapper.TAlt2.Token1","sum":191078},{"parent":"TRule_json_query_wrapper.TAlt2.TBlock2","rule":"TRule_json_query_wrapper.TAlt2.TBlock2.Token1","sum":166591},{"parent":"TRule_json_query_wrapper.TAlt2.TBlock3","rule":"TRule_json_query_wrapper.TAlt2.TBlock3.Token1","sum":32430},{"parent":"TRule_json_value","rule":"TRule_json_value.Block4","sum":1331547},{"parent":"TRule_json_value","rule":"TRule_json_value.Block5","sum":202436},{"parent":"TRule_json_value","rule":"TRule_json_value.Rule_json_common_args3","sum":5833983},{"parent":"TRule_json_value","rule":"TRule_json_value.Token1","sum":5833983},{"parent":"TRule_json_value","rule":"TRule_json_value.Token2","sum":5833983},{"parent":"TRule_json_value","rule":"TRule_json_value.Token6","sum":5833983},{"parent":"TRule_json_value.TBlock4","rule":"TRule_json_value.TBlock4.Rule_type_name_simple2","sum":1331547},{"parent":"TRule_json_value.TBlock4","rule":"TRule_json_value.TBlock4.Token1","sum":1331547},{"parent":"TRule_json_value.TBlock5","rule":"TRule_json_value.TBlock5.Rule_json_case_handler1","sum":221925},{"parent":"TRule_json_value.TBlock5","rule":"TRule_json_value.TBlock5.Token2","sum":221925},{"parent":"TRule_json_value.TBlock5","rule":"TRule_json_value.TBlock5.Token3","sum":221925},{"parent":"TRule_json_variable","rule":"TRule_json_variable.Rule_expr1","sum":20029},{"parent":"TRule_json_variable","rule":"TRule_json_variable.Rule_json_variable_name3","sum":20029},{"parent":"TRule_json_variable","rule":"TRule_json_variable.Token2","sum":20029},{"parent":"TRule_json_variable_name","rule":"TRule_json_variable_name.Alt_json_variable_name1","sum":17733},{"parent":"TRule_json_variable_name","rule":"TRule_json_variable_name.Alt_json_variable_name2","sum":2296},{"parent":"TRule_json_variable_name.TAlt1","rule":"TRule_json_variable_name.TAlt1.Rule_id_expr1","sum":17733},{"parent":"TRule_json_variable_name.TAlt2","rule":"TRule_json_variable_name.TAlt2.Token1","sum":2296},{"parent":"TRule_json_variables","rule":"TRule_json_variables.Block2","sum":7},{"parent":"TRule_json_variables","rule":"TRule_json_variables.Rule_json_variable1","sum":20022},{"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":6334924},{"parent":"TRule_key_expr","rule":"TRule_key_expr.Rule_expr2","sum":174308643},{"parent":"TRule_key_expr","rule":"TRule_key_expr.Token1","sum":174308643},{"parent":"TRule_key_expr","rule":"TRule_key_expr.Token3","sum":174308643},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword1","sum":482428535},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword2","sum":33736185},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword3","sum":520570},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword4","sum":9123289},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword5","sum":781531},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword6","sum":23587},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword7","sum":3908877},{"parent":"TRule_keyword","rule":"TRule_keyword.Alt_keyword8","sum":2527973},{"parent":"TRule_keyword.TAlt1","rule":"TRule_keyword.TAlt1.Rule_keyword_compat1","sum":482428535},{"parent":"TRule_keyword.TAlt2","rule":"TRule_keyword.TAlt2.Rule_keyword_expr_uncompat1","sum":33736185},{"parent":"TRule_keyword.TAlt3","rule":"TRule_keyword.TAlt3.Rule_keyword_table_uncompat1","sum":520570},{"parent":"TRule_keyword.TAlt4","rule":"TRule_keyword.TAlt4.Rule_keyword_select_uncompat1","sum":9123289},{"parent":"TRule_keyword.TAlt5","rule":"TRule_keyword.TAlt5.Rule_keyword_alter_uncompat1","sum":781531},{"parent":"TRule_keyword.TAlt6","rule":"TRule_keyword.TAlt6.Rule_keyword_in_uncompat1","sum":23587},{"parent":"TRule_keyword.TAlt7","rule":"TRule_keyword.TAlt7.Rule_keyword_window_uncompat1","sum":3908877},{"parent":"TRule_keyword.TAlt8","rule":"TRule_keyword.TAlt8.Rule_keyword_hint_uncompat1","sum":2527973},{"parent":"TRule_keyword_alter_uncompat","rule":"TRule_keyword_alter_uncompat.Token1","sum":1199069},{"parent":"TRule_keyword_as_compat","rule":"TRule_keyword_as_compat.Token1","sum":2690},{"parent":"TRule_keyword_compat","rule":"TRule_keyword_compat.Token1","sum":804310489},{"parent":"TRule_keyword_expr_uncompat","rule":"TRule_keyword_expr_uncompat.Token1","sum":34008279},{"parent":"TRule_keyword_hint_uncompat","rule":"TRule_keyword_hint_uncompat.Token1","sum":2710023},{"parent":"TRule_keyword_in_uncompat","rule":"TRule_keyword_in_uncompat.Token1","sum":23591},{"parent":"TRule_keyword_select_uncompat","rule":"TRule_keyword_select_uncompat.Token1","sum":9143621},{"parent":"TRule_keyword_table_uncompat","rule":"TRule_keyword_table_uncompat.Token1","sum":520570},{"parent":"TRule_keyword_window_uncompat","rule":"TRule_keyword_window_uncompat.Token1","sum":39150305},{"parent":"TRule_lambda","rule":"TRule_lambda.Block2","sum":209437719},{"parent":"TRule_lambda","rule":"TRule_lambda.Rule_smart_parenthesis1","sum":513744527},{"parent":"TRule_lambda.TBlock2","rule":"TRule_lambda.TBlock2.Block2","sum":209437719},{"parent":"TRule_lambda.TBlock2","rule":"TRule_lambda.TBlock2.Token1","sum":209437719},{"parent":"TRule_lambda.TBlock2.TBlock2","rule":"TRule_lambda.TBlock2.TBlock2.Alt1","sum":42716613},{"parent":"TRule_lambda.TBlock2.TBlock2","rule":"TRule_lambda.TBlock2.TBlock2.Alt2","sum":166721106},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt1","rule":"TRule_lambda.TBlock2.TBlock2.TAlt1.Rule_expr2","sum":42716613},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt1","rule":"TRule_lambda.TBlock2.TBlock2.TAlt1.Token1","sum":42716613},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt1","rule":"TRule_lambda.TBlock2.TBlock2.TAlt1.Token3","sum":42716613},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt2","rule":"TRule_lambda.TBlock2.TBlock2.TAlt2.Rule_lambda_body2","sum":166721106},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt2","rule":"TRule_lambda.TBlock2.TBlock2.TAlt2.Token1","sum":166721106},{"parent":"TRule_lambda.TBlock2.TBlock2.TAlt2","rule":"TRule_lambda.TBlock2.TBlock2.TAlt2.Token3","sum":166721106},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Block1","sum":158},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Block2","sum":34886821},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Block5","sum":87884482},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Rule_expr4","sum":166721106},{"parent":"TRule_lambda_body","rule":"TRule_lambda_body.Token3","sum":166721106},{"parent":"TRule_lambda_body.TBlock1","rule":"TRule_lambda_body.TBlock1.Token1","sum":158},{"parent":"TRule_lambda_body.TBlock2","rule":"TRule_lambda_body.TBlock2.Block2","sum":63980565},{"parent":"TRule_lambda_body.TBlock2","rule":"TRule_lambda_body.TBlock2.Rule_lambda_stmt1","sum":63980565},{"parent":"TRule_lambda_body.TBlock2.TBlock2","rule":"TRule_lambda_body.TBlock2.TBlock2.Token1","sum":63981788},{"parent":"TRule_lambda_body.TBlock5","rule":"TRule_lambda_body.TBlock5.Token1","sum":87892837},{"parent":"TRule_lambda_stmt","rule":"TRule_lambda_stmt.Alt_lambda_stmt1","sum":63977894},{"parent":"TRule_lambda_stmt","rule":"TRule_lambda_stmt.Alt_lambda_stmt2","sum":2671},{"parent":"TRule_lambda_stmt.TAlt1","rule":"TRule_lambda_stmt.TAlt1.Rule_named_nodes_stmt1","sum":63977894},{"parent":"TRule_lambda_stmt.TAlt2","rule":"TRule_lambda_stmt.TAlt2.Rule_import_stmt1","sum":2671},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Block2","sum":35495407},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Block3","sum":2318102},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Token1","sum":41296835},{"parent":"TRule_list_literal","rule":"TRule_list_literal.Token4","sum":41296835},{"parent":"TRule_list_literal.TBlock2","rule":"TRule_list_literal.TBlock2.Rule_expr_list1","sum":35495407},{"parent":"TRule_list_literal.TBlock3","rule":"TRule_list_literal.TBlock3.Token1","sum":2318102},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value1","sum":2735426586},{"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":109366652},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value3","sum":2128186998},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value5","sum":79765448},{"parent":"TRule_literal_value","rule":"TRule_literal_value.Alt_literal_value9","sum":104618486},{"parent":"TRule_literal_value.TAlt1","rule":"TRule_literal_value.TAlt1.Rule_integer1","sum":2735426586},{"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":109366652},{"parent":"TRule_literal_value.TAlt3","rule":"TRule_literal_value.TAlt3.Token1","sum":2128186998},{"parent":"TRule_literal_value.TAlt5","rule":"TRule_literal_value.TAlt5.Token1","sum":79765448},{"parent":"TRule_literal_value.TAlt9","rule":"TRule_literal_value.TAlt9.Rule_bool_value1","sum":104618486},{"parent":"TRule_match_op","rule":"TRule_match_op.Token1","sum":52393370},{"parent":"TRule_module_path","rule":"TRule_module_path.Block3","sum":366179},{"parent":"TRule_module_path","rule":"TRule_module_path.Rule_an_id2","sum":16683079},{"parent":"TRule_module_path.TBlock3","rule":"TRule_module_path.TBlock3.Rule_an_id2","sum":1091501},{"parent":"TRule_module_path.TBlock3","rule":"TRule_module_path.TBlock3.Token1","sum":1091501},{"parent":"TRule_mul_subexpr","rule":"TRule_mul_subexpr.Block2","sum":115511745},{"parent":"TRule_mul_subexpr","rule":"TRule_mul_subexpr.Rule_con_subexpr1","sum":15807788790},{"parent":"TRule_mul_subexpr.TBlock2","rule":"TRule_mul_subexpr.TBlock2.Rule_con_subexpr2","sum":229859013},{"parent":"TRule_mul_subexpr.TBlock2","rule":"TRule_mul_subexpr.TBlock2.Token1","sum":229859013},{"parent":"TRule_named_bind_parameter","rule":"TRule_named_bind_parameter.Block2","sum":146935},{"parent":"TRule_named_bind_parameter","rule":"TRule_named_bind_parameter.Rule_bind_parameter1","sum":38101725},{"parent":"TRule_named_bind_parameter.TBlock2","rule":"TRule_named_bind_parameter.TBlock2.Rule_bind_parameter2","sum":146935},{"parent":"TRule_named_bind_parameter.TBlock2","rule":"TRule_named_bind_parameter.TBlock2.Token1","sum":146935},{"parent":"TRule_named_bind_parameter_list","rule":"TRule_named_bind_parameter_list.Block2","sum":7116652},{"parent":"TRule_named_bind_parameter_list","rule":"TRule_named_bind_parameter_list.Rule_named_bind_parameter1","sum":16683079},{"parent":"TRule_named_bind_parameter_list.TBlock2","rule":"TRule_named_bind_parameter_list.TBlock2.Rule_named_bind_parameter2","sum":21418646},{"parent":"TRule_named_bind_parameter_list.TBlock2","rule":"TRule_named_bind_parameter_list.TBlock2.Token1","sum":21418646},{"parent":"TRule_named_column","rule":"TRule_named_column.Block2","sum":7211613},{"parent":"TRule_named_column","rule":"TRule_named_column.Rule_column_name1","sum":21451704},{"parent":"TRule_named_column.TBlock2","rule":"TRule_named_column.TBlock2.Rule_an_id2","sum":7211613},{"parent":"TRule_named_column.TBlock2","rule":"TRule_named_column.TBlock2.Token1","sum":7211613},{"parent":"TRule_named_expr","rule":"TRule_named_expr.Block2","sum":156898577},{"parent":"TRule_named_expr","rule":"TRule_named_expr.Rule_expr1","sum":7198460211},{"parent":"TRule_named_expr.TBlock2","rule":"TRule_named_expr.TBlock2.Rule_an_id_or_type2","sum":156898577},{"parent":"TRule_named_expr.TBlock2","rule":"TRule_named_expr.TBlock2.Token1","sum":156898577},{"parent":"TRule_named_expr_list","rule":"TRule_named_expr_list.Block2","sum":1187842181},{"parent":"TRule_named_expr_list","rule":"TRule_named_expr_list.Rule_named_expr1","sum":3249792168},{"parent":"TRule_named_expr_list.TBlock2","rule":"TRule_named_expr_list.TBlock2.Rule_named_expr2","sum":3454448866},{"parent":"TRule_named_expr_list.TBlock2","rule":"TRule_named_expr_list.TBlock2.Token1","sum":3454448866},{"parent":"TRule_named_nodes_stmt","rule":"TRule_named_nodes_stmt.Block3","sum":1010795718},{"parent":"TRule_named_nodes_stmt","rule":"TRule_named_nodes_stmt.Rule_bind_parameter_list1","sum":1010795718},{"parent":"TRule_named_nodes_stmt","rule":"TRule_named_nodes_stmt.Token2","sum":1010795718},{"parent":"TRule_named_nodes_stmt.TBlock3","rule":"TRule_named_nodes_stmt.TBlock3.Alt1","sum":679747353},{"parent":"TRule_named_nodes_stmt.TBlock3","rule":"TRule_named_nodes_stmt.TBlock3.Alt2","sum":331048365},{"parent":"TRule_named_nodes_stmt.TBlock3.TAlt1","rule":"TRule_named_nodes_stmt.TBlock3.TAlt1.Rule_expr1","sum":679747353},{"parent":"TRule_named_nodes_stmt.TBlock3.TAlt2","rule":"TRule_named_nodes_stmt.TBlock3.TAlt2.Rule_subselect_stmt1","sum":331048365},{"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":443834067},{"parent":"TRule_named_single_source","rule":"TRule_named_single_source.Block4","sum":404619},{"parent":"TRule_named_single_source","rule":"TRule_named_single_source.Rule_single_source1","sum":1061003000},{"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":443834067},{"parent":"TRule_named_single_source.TBlock3","rule":"TRule_named_single_source.TBlock3.Block2","sum":160877},{"parent":"TRule_named_single_source.TBlock3.TBlock1","rule":"TRule_named_single_source.TBlock3.TBlock1.Alt1","sum":441664725},{"parent":"TRule_named_single_source.TBlock3.TBlock1","rule":"TRule_named_single_source.TBlock3.TBlock1.Alt2","sum":2169342},{"parent":"TRule_named_single_source.TBlock3.TBlock1.TAlt1","rule":"TRule_named_single_source.TBlock3.TBlock1.TAlt1.Rule_an_id2","sum":441664725},{"parent":"TRule_named_single_source.TBlock3.TBlock1.TAlt1","rule":"TRule_named_single_source.TBlock3.TBlock1.TAlt1.Token1","sum":441664725},{"parent":"TRule_named_single_source.TBlock3.TBlock1.TAlt2","rule":"TRule_named_single_source.TBlock3.TBlock1.TAlt2.Rule_an_id_as_compat1","sum":2169342},{"parent":"TRule_named_single_source.TBlock3.TBlock2","rule":"TRule_named_single_source.TBlock3.TBlock2.Rule_pure_column_list1","sum":160877},{"parent":"TRule_named_single_source.TBlock4","rule":"TRule_named_single_source.TBlock4.Alt1","sum":75458},{"parent":"TRule_named_single_source.TBlock4","rule":"TRule_named_single_source.TBlock4.Alt2","sum":329161},{"parent":"TRule_named_single_source.TBlock4.TAlt1","rule":"TRule_named_single_source.TBlock4.TAlt1.Rule_sample_clause1","sum":75458},{"parent":"TRule_named_single_source.TBlock4.TAlt2","rule":"TRule_named_single_source.TBlock4.TAlt2.Rule_tablesample_clause1","sum":329161},{"parent":"TRule_neq_subexpr","rule":"TRule_neq_subexpr.Block2","sum":9155251},{"parent":"TRule_neq_subexpr","rule":"TRule_neq_subexpr.Block3","sum":111857165},{"parent":"TRule_neq_subexpr","rule":"TRule_neq_subexpr.Rule_bit_subexpr1","sum":15473389132},{"parent":"TRule_neq_subexpr.TBlock2","rule":"TRule_neq_subexpr.TBlock2.Block1","sum":9223987},{"parent":"TRule_neq_subexpr.TBlock2","rule":"TRule_neq_subexpr.TBlock2.Rule_bit_subexpr2","sum":9223987},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt1","sum":8107015},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt2","sum":53924},{"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":761022},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt6","sum":134512},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.Alt7","sum":167022},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt1","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt1.Token1","sum":8107015},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt2","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt2.Rule_shift_right1","sum":53924},{"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":761022},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt6","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt6.Token1","sum":134512},{"parent":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt7","rule":"TRule_neq_subexpr.TBlock2.TBlock1.TAlt7.Token1","sum":167022},{"parent":"TRule_neq_subexpr.TBlock3","rule":"TRule_neq_subexpr.TBlock3.Alt1","sum":108073061},{"parent":"TRule_neq_subexpr.TBlock3","rule":"TRule_neq_subexpr.TBlock3.Alt2","sum":3784104},{"parent":"TRule_neq_subexpr.TBlock3.TAlt1","rule":"TRule_neq_subexpr.TBlock3.TAlt1.Rule_double_question1","sum":108073061},{"parent":"TRule_neq_subexpr.TBlock3.TAlt1","rule":"TRule_neq_subexpr.TBlock3.TAlt1.Rule_neq_subexpr2","sum":108073061},{"parent":"TRule_neq_subexpr.TBlock3.TAlt2","rule":"TRule_neq_subexpr.TBlock3.TAlt2.Block1","sum":3784104},{"parent":"TRule_neq_subexpr.TBlock3.TAlt2.TBlock1","rule":"TRule_neq_subexpr.TBlock3.TAlt2.TBlock1.Token1","sum":3796088},{"parent":"TRule_new_window_name","rule":"TRule_new_window_name.Rule_window_name1","sum":14203555},{"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":7293180},{"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":7293180},{"parent":"TRule_null_treatment.TAlt2","rule":"TRule_null_treatment.TAlt2.Token2","sum":7293180},{"parent":"TRule_object_ref","rule":"TRule_object_ref.Block1","sum":5299636},{"parent":"TRule_object_ref","rule":"TRule_object_ref.Rule_id_or_at2","sum":133959216},{"parent":"TRule_object_ref.TBlock1","rule":"TRule_object_ref.TBlock1.Rule_cluster_expr1","sum":5299636},{"parent":"TRule_object_ref.TBlock1","rule":"TRule_object_ref.TBlock1.Token2","sum":5299636},{"parent":"TRule_opt_bind_parameter","rule":"TRule_opt_bind_parameter.Block2","sum":27110},{"parent":"TRule_opt_bind_parameter","rule":"TRule_opt_bind_parameter.Rule_bind_parameter1","sum":21592253},{"parent":"TRule_opt_bind_parameter.TBlock2","rule":"TRule_opt_bind_parameter.TBlock2.Token1","sum":27110},{"parent":"TRule_opt_id_prefix","rule":"TRule_opt_id_prefix.Block1","sum":83358715},{"parent":"TRule_opt_id_prefix.TBlock1","rule":"TRule_opt_id_prefix.TBlock1.Rule_an_id1","sum":83358715},{"parent":"TRule_opt_id_prefix.TBlock1","rule":"TRule_opt_id_prefix.TBlock1.Token2","sum":83358715},{"parent":"TRule_opt_id_prefix_or_type","rule":"TRule_opt_id_prefix_or_type.Block1","sum":781387829},{"parent":"TRule_opt_id_prefix_or_type.TBlock1","rule":"TRule_opt_id_prefix_or_type.TBlock1.Rule_an_id_or_type1","sum":781387829},{"parent":"TRule_opt_id_prefix_or_type.TBlock1","rule":"TRule_opt_id_prefix_or_type.TBlock1.Token2","sum":781387829},{"parent":"TRule_opt_set_quantifier","rule":"TRule_opt_set_quantifier.Block1","sum":70623450},{"parent":"TRule_opt_set_quantifier.TBlock1","rule":"TRule_opt_set_quantifier.TBlock1.Token1","sum":70623450},{"parent":"TRule_or_subexpr","rule":"TRule_or_subexpr.Block2","sum":277843391},{"parent":"TRule_or_subexpr","rule":"TRule_or_subexpr.Rule_and_subexpr1","sum":13829126938},{"parent":"TRule_or_subexpr.TBlock2","rule":"TRule_or_subexpr.TBlock2.Rule_and_subexpr2","sum":472165179},{"parent":"TRule_or_subexpr.TBlock2","rule":"TRule_or_subexpr.TBlock2.Token1","sum":472165179},{"parent":"TRule_order_by_clause","rule":"TRule_order_by_clause.Rule_sort_specification_list3","sum":108121721},{"parent":"TRule_order_by_clause","rule":"TRule_order_by_clause.Token1","sum":108121721},{"parent":"TRule_order_by_clause","rule":"TRule_order_by_clause.Token2","sum":108121721},{"parent":"TRule_ordinary_grouping_set","rule":"TRule_ordinary_grouping_set.Rule_named_expr1","sum":301878091},{"parent":"TRule_ordinary_grouping_set_list","rule":"TRule_ordinary_grouping_set_list.Block2","sum":199601},{"parent":"TRule_ordinary_grouping_set_list","rule":"TRule_ordinary_grouping_set_list.Rule_ordinary_grouping_set1","sum":339378},{"parent":"TRule_ordinary_grouping_set_list.TBlock2","rule":"TRule_ordinary_grouping_set_list.TBlock2.Rule_ordinary_grouping_set2","sum":432788},{"parent":"TRule_ordinary_grouping_set_list.TBlock2","rule":"TRule_ordinary_grouping_set_list.TBlock2.Token1","sum":432788},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Block4","sum":795793494},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Rule_an_id3","sum":900857158},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Rule_opt_id_prefix_or_type2","sum":900857158},{"parent":"TRule_pragma_stmt","rule":"TRule_pragma_stmt.Token1","sum":900857158},{"parent":"TRule_pragma_stmt.TBlock4","rule":"TRule_pragma_stmt.TBlock4.Alt1","sum":747636788},{"parent":"TRule_pragma_stmt.TBlock4","rule":"TRule_pragma_stmt.TBlock4.Alt2","sum":48156706},{"parent":"TRule_pragma_stmt.TBlock4.TAlt1","rule":"TRule_pragma_stmt.TBlock4.TAlt1.Rule_pragma_value2","sum":747636788},{"parent":"TRule_pragma_stmt.TBlock4.TAlt1","rule":"TRule_pragma_stmt.TBlock4.TAlt1.Token1","sum":747636788},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Block3","sum":17774430},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Rule_pragma_value2","sum":48156706},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Token1","sum":48156706},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2","rule":"TRule_pragma_stmt.TBlock4.TAlt2.Token4","sum":48156706},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3","rule":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3.Rule_pragma_value2","sum":18600130},{"parent":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3","rule":"TRule_pragma_stmt.TBlock4.TAlt2.TBlock3.Token1","sum":18600130},{"parent":"TRule_pragma_value","rule":"TRule_pragma_value.Alt_pragma_value2","sum":256129},{"parent":"TRule_pragma_value","rule":"TRule_pragma_value.Alt_pragma_value3","sum":801902681},{"parent":"TRule_pragma_value","rule":"TRule_pragma_value.Alt_pragma_value5","sum":12234814},{"parent":"TRule_pragma_value.TAlt2","rule":"TRule_pragma_value.TAlt2.Rule_id1","sum":256129},{"parent":"TRule_pragma_value.TAlt3","rule":"TRule_pragma_value.TAlt3.Token1","sum":801902681},{"parent":"TRule_pragma_value.TAlt5","rule":"TRule_pragma_value.TAlt5.Rule_bind_parameter1","sum":12234814},{"parent":"TRule_process_core","rule":"TRule_process_core.Block4","sum":1132},{"parent":"TRule_process_core","rule":"TRule_process_core.Block5","sum":1930068},{"parent":"TRule_process_core","rule":"TRule_process_core.Rule_named_single_source3","sum":4560899},{"parent":"TRule_process_core","rule":"TRule_process_core.Token1","sum":4560899},{"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":4746},{"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":1930068},{"parent":"TRule_process_core.TBlock5","rule":"TRule_process_core.TBlock5.Token1","sum":1930068},{"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":4746},{"parent":"TRule_process_core.TBlock5.TBlock5","rule":"TRule_process_core.TBlock5.TBlock5.Token1","sum":4746},{"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":3992593},{"parent":"TRule_pure_column_list","rule":"TRule_pure_column_list.Rule_an_id2","sum":4733559},{"parent":"TRule_pure_column_list","rule":"TRule_pure_column_list.Token1","sum":4733559},{"parent":"TRule_pure_column_list","rule":"TRule_pure_column_list.Token4","sum":4733559},{"parent":"TRule_pure_column_list.TBlock3","rule":"TRule_pure_column_list.TBlock3.Rule_an_id2","sum":35642659},{"parent":"TRule_pure_column_list.TBlock3","rule":"TRule_pure_column_list.TBlock3.Token1","sum":35642659},{"parent":"TRule_pure_column_or_named","rule":"TRule_pure_column_or_named.Alt_pure_column_or_named1","sum":6613454},{"parent":"TRule_pure_column_or_named","rule":"TRule_pure_column_or_named.Alt_pure_column_or_named2","sum":426458416},{"parent":"TRule_pure_column_or_named.TAlt1","rule":"TRule_pure_column_or_named.TAlt1.Rule_bind_parameter1","sum":6613454},{"parent":"TRule_pure_column_or_named.TAlt2","rule":"TRule_pure_column_or_named.TAlt2.Rule_an_id1","sum":426458416},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Block3","sum":11681930},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Rule_pure_column_or_named2","sum":32540623},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Token1","sum":32540623},{"parent":"TRule_pure_column_or_named_list","rule":"TRule_pure_column_or_named_list.Token4","sum":32540623},{"parent":"TRule_pure_column_or_named_list.TBlock3","rule":"TRule_pure_column_or_named_list.TBlock3.Rule_pure_column_or_named2","sum":21745838},{"parent":"TRule_pure_column_or_named_list.TBlock3","rule":"TRule_pure_column_or_named_list.TBlock3.Token1","sum":21745838},{"parent":"TRule_real","rule":"TRule_real.Token1","sum":109366652},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block11","sum":8856},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block13","sum":26511},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block3","sum":124903},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block4","sum":307402},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Block8","sum":320487},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Rule_column_list6","sum":858313},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Rule_named_single_source2","sum":858313},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Rule_using_call_expr9","sum":858313},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Token1","sum":858313},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Token5","sum":858313},{"parent":"TRule_reduce_core","rule":"TRule_reduce_core.Token7","sum":858313},{"parent":"TRule_reduce_core.TBlock11","rule":"TRule_reduce_core.TBlock11.Rule_expr2","sum":8856},{"parent":"TRule_reduce_core.TBlock11","rule":"TRule_reduce_core.TBlock11.Token1","sum":8856},{"parent":"TRule_reduce_core.TBlock13","rule":"TRule_reduce_core.TBlock13.Rule_order_by_clause2","sum":26511},{"parent":"TRule_reduce_core.TBlock13","rule":"TRule_reduce_core.TBlock13.Token1","sum":26511},{"parent":"TRule_reduce_core.TBlock3","rule":"TRule_reduce_core.TBlock3.Rule_named_single_source2","sum":215252},{"parent":"TRule_reduce_core.TBlock3","rule":"TRule_reduce_core.TBlock3.Token1","sum":215252},{"parent":"TRule_reduce_core.TBlock4","rule":"TRule_reduce_core.TBlock4.Rule_sort_specification_list2","sum":307402},{"parent":"TRule_reduce_core.TBlock4","rule":"TRule_reduce_core.TBlock4.Token1","sum":307402},{"parent":"TRule_reduce_core.TBlock8","rule":"TRule_reduce_core.TBlock8.Token1","sum":320487},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Rule_expr3","sum":9382},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Token1","sum":9382},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Token2","sum":9382},{"parent":"TRule_repeatable_clause","rule":"TRule_repeatable_clause.Token4","sum":9382},{"parent":"TRule_result_column","rule":"TRule_result_column.Alt_result_column1","sum":251358239},{"parent":"TRule_result_column","rule":"TRule_result_column.Alt_result_column2","sum":3456316763},{"parent":"TRule_result_column.TAlt1","rule":"TRule_result_column.TAlt1.Rule_opt_id_prefix1","sum":251358239},{"parent":"TRule_result_column.TAlt1","rule":"TRule_result_column.TAlt1.Token2","sum":251358239},{"parent":"TRule_result_column.TAlt2","rule":"TRule_result_column.TAlt2.Block2","sum":1993067250},{"parent":"TRule_result_column.TAlt2","rule":"TRule_result_column.TAlt2.Rule_expr1","sum":3456316763},{"parent":"TRule_result_column.TAlt2.TBlock2","rule":"TRule_result_column.TAlt2.TBlock2.Alt1","sum":1992199458},{"parent":"TRule_result_column.TAlt2.TBlock2","rule":"TRule_result_column.TAlt2.TBlock2.Alt2","sum":867792},{"parent":"TRule_result_column.TAlt2.TBlock2.TAlt1","rule":"TRule_result_column.TAlt2.TBlock2.TAlt1.Rule_an_id_or_type2","sum":1992199458},{"parent":"TRule_result_column.TAlt2.TBlock2.TAlt1","rule":"TRule_result_column.TAlt2.TBlock2.TAlt1.Token1","sum":1992199458},{"parent":"TRule_result_column.TAlt2.TBlock2.TAlt2","rule":"TRule_result_column.TAlt2.TBlock2.TAlt2.Rule_an_id_as_compat1","sum":867792},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Rule_ordinary_grouping_set_list3","sum":63017},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Token1","sum":63017},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Token2","sum":63017},{"parent":"TRule_rollup_list","rule":"TRule_rollup_list.Token4","sum":63017},{"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":75458},{"parent":"TRule_sample_clause","rule":"TRule_sample_clause.Token1","sum":75458},{"parent":"TRule_sampling_mode","rule":"TRule_sampling_mode.Token1","sum":329161},{"parent":"TRule_search_condition","rule":"TRule_search_condition.Rule_expr1","sum":1},{"parent":"TRule_select_core","rule":"TRule_select_core.Block1","sum":10677032},{"parent":"TRule_select_core","rule":"TRule_select_core.Block10","sum":341490928},{"parent":"TRule_select_core","rule":"TRule_select_core.Block11","sum":138061902},{"parent":"TRule_select_core","rule":"TRule_select_core.Block12","sum":12007001},{"parent":"TRule_select_core","rule":"TRule_select_core.Block13","sum":13625726},{"parent":"TRule_select_core","rule":"TRule_select_core.Block14","sum":89004653},{"parent":"TRule_select_core","rule":"TRule_select_core.Block3","sum":117},{"parent":"TRule_select_core","rule":"TRule_select_core.Block6","sum":530771003},{"parent":"TRule_select_core","rule":"TRule_select_core.Block7","sum":94096389},{"parent":"TRule_select_core","rule":"TRule_select_core.Block8","sum":25026920},{"parent":"TRule_select_core","rule":"TRule_select_core.Block9","sum":835552366},{"parent":"TRule_select_core","rule":"TRule_select_core.Rule_opt_set_quantifier4","sum":907141337},{"parent":"TRule_select_core","rule":"TRule_select_core.Rule_result_column5","sum":907141337},{"parent":"TRule_select_core","rule":"TRule_select_core.Token2","sum":907141337},{"parent":"TRule_select_core.TBlock1","rule":"TRule_select_core.TBlock1.Rule_join_source2","sum":10677032},{"parent":"TRule_select_core.TBlock1","rule":"TRule_select_core.TBlock1.Token1","sum":10677032},{"parent":"TRule_select_core.TBlock10","rule":"TRule_select_core.TBlock10.Rule_expr2","sum":341490928},{"parent":"TRule_select_core.TBlock10","rule":"TRule_select_core.TBlock10.Token1","sum":341490928},{"parent":"TRule_select_core.TBlock11","rule":"TRule_select_core.TBlock11.Rule_group_by_clause1","sum":138061902},{"parent":"TRule_select_core.TBlock12","rule":"TRule_select_core.TBlock12.Rule_expr2","sum":12007001},{"parent":"TRule_select_core.TBlock12","rule":"TRule_select_core.TBlock12.Token1","sum":12007001},{"parent":"TRule_select_core.TBlock13","rule":"TRule_select_core.TBlock13.Rule_window_clause1","sum":13625726},{"parent":"TRule_select_core.TBlock14","rule":"TRule_select_core.TBlock14.Rule_ext_order_by_clause1","sum":89004653},{"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":2800533665},{"parent":"TRule_select_core.TBlock6","rule":"TRule_select_core.TBlock6.Token1","sum":2800533665},{"parent":"TRule_select_core.TBlock7","rule":"TRule_select_core.TBlock7.Token1","sum":94096389},{"parent":"TRule_select_core.TBlock8","rule":"TRule_select_core.TBlock8.Block2","sum":63},{"parent":"TRule_select_core.TBlock8","rule":"TRule_select_core.TBlock8.Rule_without_column_list3","sum":25026920},{"parent":"TRule_select_core.TBlock8","rule":"TRule_select_core.TBlock8.Token1","sum":25026920},{"parent":"TRule_select_core.TBlock8.TBlock2","rule":"TRule_select_core.TBlock8.TBlock2.Token1","sum":63},{"parent":"TRule_select_core.TBlock8.TBlock2","rule":"TRule_select_core.TBlock8.TBlock2.Token2","sum":63},{"parent":"TRule_select_core.TBlock9","rule":"TRule_select_core.TBlock9.Rule_join_source2","sum":835552366},{"parent":"TRule_select_core.TBlock9","rule":"TRule_select_core.TBlock9.Token1","sum":835552366},{"parent":"TRule_select_kind","rule":"TRule_select_kind.Block1","sum":927614},{"parent":"TRule_select_kind","rule":"TRule_select_kind.Block2","sum":912560549},{"parent":"TRule_select_kind","rule":"TRule_select_kind.Block3","sum":2880688},{"parent":"TRule_select_kind.TBlock1","rule":"TRule_select_kind.TBlock1.Token1","sum":927614},{"parent":"TRule_select_kind.TBlock2","rule":"TRule_select_kind.TBlock2.Alt1","sum":4560899},{"parent":"TRule_select_kind.TBlock2","rule":"TRule_select_kind.TBlock2.Alt2","sum":858313},{"parent":"TRule_select_kind.TBlock2","rule":"TRule_select_kind.TBlock2.Alt3","sum":907141337},{"parent":"TRule_select_kind.TBlock2.TAlt1","rule":"TRule_select_kind.TBlock2.TAlt1.Rule_process_core1","sum":4560899},{"parent":"TRule_select_kind.TBlock2.TAlt2","rule":"TRule_select_kind.TBlock2.TAlt2.Rule_reduce_core1","sum":858313},{"parent":"TRule_select_kind.TBlock2.TAlt3","rule":"TRule_select_kind.TBlock2.TAlt3.Rule_select_core1","sum":907141337},{"parent":"TRule_select_kind.TBlock3","rule":"TRule_select_kind.TBlock3.Rule_pure_column_or_named3","sum":2880688},{"parent":"TRule_select_kind.TBlock3","rule":"TRule_select_kind.TBlock3.Token1","sum":2880688},{"parent":"TRule_select_kind.TBlock3","rule":"TRule_select_kind.TBlock3.Token2","sum":2880688},{"parent":"TRule_select_kind_parenthesis","rule":"TRule_select_kind_parenthesis.Alt_select_kind_parenthesis1","sum":781508132},{"parent":"TRule_select_kind_parenthesis","rule":"TRule_select_kind_parenthesis.Alt_select_kind_parenthesis2","sum":8012379},{"parent":"TRule_select_kind_parenthesis.TAlt1","rule":"TRule_select_kind_parenthesis.TAlt1.Rule_select_kind_partial1","sum":781508132},{"parent":"TRule_select_kind_parenthesis.TAlt2","rule":"TRule_select_kind_parenthesis.TAlt2.Rule_select_kind_partial2","sum":8012379},{"parent":"TRule_select_kind_parenthesis.TAlt2","rule":"TRule_select_kind_parenthesis.TAlt2.Token1","sum":8012379},{"parent":"TRule_select_kind_parenthesis.TAlt2","rule":"TRule_select_kind_parenthesis.TAlt2.Token3","sum":8012379},{"parent":"TRule_select_kind_partial","rule":"TRule_select_kind_partial.Block2","sum":30835525},{"parent":"TRule_select_kind_partial","rule":"TRule_select_kind_partial.Rule_select_kind1","sum":912560549},{"parent":"TRule_select_kind_partial.TBlock2","rule":"TRule_select_kind_partial.TBlock2.Block3","sum":4694367},{"parent":"TRule_select_kind_partial.TBlock2","rule":"TRule_select_kind_partial.TBlock2.Rule_expr2","sum":30835525},{"parent":"TRule_select_kind_partial.TBlock2","rule":"TRule_select_kind_partial.TBlock2.Token1","sum":30835525},{"parent":"TRule_select_kind_partial.TBlock2.TBlock3","rule":"TRule_select_kind_partial.TBlock2.TBlock3.Rule_expr2","sum":4694367},{"parent":"TRule_select_kind_partial.TBlock2.TBlock3","rule":"TRule_select_kind_partial.TBlock2.TBlock3.Token1","sum":4694367},{"parent":"TRule_select_op","rule":"TRule_select_op.Alt_select_op1","sum":63995060},{"parent":"TRule_select_op.TAlt1","rule":"TRule_select_op.TAlt1.Block2","sum":63061679},{"parent":"TRule_select_op.TAlt1","rule":"TRule_select_op.TAlt1.Token1","sum":63995060},{"parent":"TRule_select_op.TAlt1.TBlock2","rule":"TRule_select_op.TAlt1.TBlock2.Token1","sum":63061679},{"parent":"TRule_select_stmt","rule":"TRule_select_stmt.Block2","sum":33347504},{"parent":"TRule_select_stmt","rule":"TRule_select_stmt.Rule_select_kind_parenthesis1","sum":725525451},{"parent":"TRule_select_stmt.TBlock2","rule":"TRule_select_stmt.TBlock2.Rule_select_kind_parenthesis2","sum":56999230},{"parent":"TRule_select_stmt.TBlock2","rule":"TRule_select_stmt.TBlock2.Rule_select_op1","sum":56999230},{"parent":"TRule_select_unparenthesized_stmt","rule":"TRule_select_unparenthesized_stmt.Block2","sum":4320245},{"parent":"TRule_select_unparenthesized_stmt","rule":"TRule_select_unparenthesized_stmt.Rule_select_kind_partial1","sum":123040038},{"parent":"TRule_select_unparenthesized_stmt.TBlock2","rule":"TRule_select_unparenthesized_stmt.TBlock2.Rule_select_kind_parenthesis2","sum":6995830},{"parent":"TRule_select_unparenthesized_stmt.TBlock2","rule":"TRule_select_unparenthesized_stmt.TBlock2.Rule_select_op1","sum":6995830},{"parent":"TRule_shift_right","rule":"TRule_shift_right.Token1","sum":53924},{"parent":"TRule_shift_right","rule":"TRule_shift_right.Token2","sum":53924},{"parent":"TRule_simple_table_ref","rule":"TRule_simple_table_ref.Block2","sum":143496843},{"parent":"TRule_simple_table_ref","rule":"TRule_simple_table_ref.Rule_simple_table_ref_core1","sum":212302112},{"parent":"TRule_simple_table_ref.TBlock2","rule":"TRule_simple_table_ref.TBlock2.Rule_table_hints1","sum":143496843},{"parent":"TRule_simple_table_ref_core","rule":"TRule_simple_table_ref_core.Alt_simple_table_ref_core1","sum":133959216},{"parent":"TRule_simple_table_ref_core","rule":"TRule_simple_table_ref_core.Alt_simple_table_ref_core2","sum":78342896},{"parent":"TRule_simple_table_ref_core.TAlt1","rule":"TRule_simple_table_ref_core.TAlt1.Rule_object_ref1","sum":133959216},{"parent":"TRule_simple_table_ref_core.TAlt2","rule":"TRule_simple_table_ref_core.TAlt2.Block1","sum":71527},{"parent":"TRule_simple_table_ref_core.TAlt2","rule":"TRule_simple_table_ref_core.TAlt2.Rule_bind_parameter2","sum":78342896},{"parent":"TRule_simple_table_ref_core.TAlt2.TBlock1","rule":"TRule_simple_table_ref_core.TAlt2.TBlock1.Token1","sum":71527},{"parent":"TRule_single_source","rule":"TRule_single_source.Alt_single_source1","sum":955906317},{"parent":"TRule_single_source","rule":"TRule_single_source.Alt_single_source2","sum":104927242},{"parent":"TRule_single_source","rule":"TRule_single_source.Alt_single_source3","sum":169441},{"parent":"TRule_single_source.TAlt1","rule":"TRule_single_source.TAlt1.Rule_table_ref1","sum":955906317},{"parent":"TRule_single_source.TAlt2","rule":"TRule_single_source.TAlt2.Rule_select_stmt2","sum":104927242},{"parent":"TRule_single_source.TAlt2","rule":"TRule_single_source.TAlt2.Token1","sum":104927242},{"parent":"TRule_single_source.TAlt2","rule":"TRule_single_source.TAlt2.Token3","sum":104927242},{"parent":"TRule_single_source.TAlt3","rule":"TRule_single_source.TAlt3.Rule_values_stmt2","sum":169441},{"parent":"TRule_single_source.TAlt3","rule":"TRule_single_source.TAlt3.Token1","sum":169441},{"parent":"TRule_single_source.TAlt3","rule":"TRule_single_source.TAlt3.Token3","sum":169441},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Block2","sum":509972815},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Block3","sum":2668059},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Token1","sum":513744527},{"parent":"TRule_smart_parenthesis","rule":"TRule_smart_parenthesis.Token4","sum":513744527},{"parent":"TRule_smart_parenthesis.TBlock2","rule":"TRule_smart_parenthesis.TBlock2.Rule_named_expr_list1","sum":509972815},{"parent":"TRule_smart_parenthesis.TBlock3","rule":"TRule_smart_parenthesis.TBlock3.Token1","sum":2668059},{"parent":"TRule_sort_specification","rule":"TRule_sort_specification.Block2","sum":33272816},{"parent":"TRule_sort_specification","rule":"TRule_sort_specification.Rule_expr1","sum":182332141},{"parent":"TRule_sort_specification.TBlock2","rule":"TRule_sort_specification.TBlock2.Token1","sum":33272816},{"parent":"TRule_sort_specification_list","rule":"TRule_sort_specification_list.Block2","sum":40028678},{"parent":"TRule_sort_specification_list","rule":"TRule_sort_specification_list.Rule_sort_specification1","sum":108429123},{"parent":"TRule_sort_specification_list.TBlock2","rule":"TRule_sort_specification_list.TBlock2.Rule_sort_specification2","sum":73903018},{"parent":"TRule_sort_specification_list.TBlock2","rule":"TRule_sort_specification_list.TBlock2.Token1","sum":73903018},{"parent":"TRule_sql_query","rule":"TRule_sql_query.Alt_sql_query1","sum":321178940},{"parent":"TRule_sql_query.TAlt1","rule":"TRule_sql_query.TAlt1.Rule_sql_stmt_list1","sum":321178940},{"parent":"TRule_sql_stmt","rule":"TRule_sql_stmt.Block1","sum":53},{"parent":"TRule_sql_stmt","rule":"TRule_sql_stmt.Rule_sql_stmt_core2","sum":2731471309},{"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":900857158},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core12","sum":156792290},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core13","sum":16680408},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core17","sum":4719917},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core18","sum":22375819},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core19","sum":8585453},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core2","sum":194079479},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core20","sum":7048194},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core21","sum":322},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core3","sum":946817824},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core4","sum":125},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core5","sum":2572734},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core6","sum":330553175},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core7","sum":209729253},{"parent":"TRule_sql_stmt_core","rule":"TRule_sql_stmt_core.Alt_sql_stmt_core8","sum":13057020},{"parent":"TRule_sql_stmt_core.TAlt1","rule":"TRule_sql_stmt_core.TAlt1.Rule_pragma_stmt1","sum":900857158},{"parent":"TRule_sql_stmt_core.TAlt12","rule":"TRule_sql_stmt_core.TAlt12.Rule_declare_stmt1","sum":156792290},{"parent":"TRule_sql_stmt_core.TAlt13","rule":"TRule_sql_stmt_core.TAlt13.Rule_import_stmt1","sum":16680408},{"parent":"TRule_sql_stmt_core.TAlt17","rule":"TRule_sql_stmt_core.TAlt17.Rule_do_stmt1","sum":4719917},{"parent":"TRule_sql_stmt_core.TAlt18","rule":"TRule_sql_stmt_core.TAlt18.Rule_define_action_or_subquery_stmt1","sum":22375819},{"parent":"TRule_sql_stmt_core.TAlt19","rule":"TRule_sql_stmt_core.TAlt19.Rule_if_stmt1","sum":8585453},{"parent":"TRule_sql_stmt_core.TAlt2","rule":"TRule_sql_stmt_core.TAlt2.Rule_select_stmt1","sum":194079479},{"parent":"TRule_sql_stmt_core.TAlt20","rule":"TRule_sql_stmt_core.TAlt20.Rule_for_stmt1","sum":7048194},{"parent":"TRule_sql_stmt_core.TAlt21","rule":"TRule_sql_stmt_core.TAlt21.Rule_values_stmt1","sum":322},{"parent":"TRule_sql_stmt_core.TAlt3","rule":"TRule_sql_stmt_core.TAlt3.Rule_named_nodes_stmt1","sum":946817824},{"parent":"TRule_sql_stmt_core.TAlt4","rule":"TRule_sql_stmt_core.TAlt4.Rule_create_table_stmt1","sum":125},{"parent":"TRule_sql_stmt_core.TAlt5","rule":"TRule_sql_stmt_core.TAlt5.Rule_drop_table_stmt1","sum":2572734},{"parent":"TRule_sql_stmt_core.TAlt6","rule":"TRule_sql_stmt_core.TAlt6.Rule_use_stmt1","sum":330553175},{"parent":"TRule_sql_stmt_core.TAlt7","rule":"TRule_sql_stmt_core.TAlt7.Rule_into_table_stmt1","sum":209729253},{"parent":"TRule_sql_stmt_core.TAlt8","rule":"TRule_sql_stmt_core.TAlt8.Rule_commit_stmt1","sum":13057020},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Block1","sum":435},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Block3","sum":315770059},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Block4","sum":195437753},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Rule_sql_stmt2","sum":321178940},{"parent":"TRule_sql_stmt_list","rule":"TRule_sql_stmt_list.Token5","sum":321178940},{"parent":"TRule_sql_stmt_list.TBlock1","rule":"TRule_sql_stmt_list.TBlock1.Token1","sum":458},{"parent":"TRule_sql_stmt_list.TBlock3","rule":"TRule_sql_stmt_list.TBlock3.Block1","sum":2410292369},{"parent":"TRule_sql_stmt_list.TBlock3","rule":"TRule_sql_stmt_list.TBlock3.Rule_sql_stmt2","sum":2410292369},{"parent":"TRule_sql_stmt_list.TBlock3.TBlock1","rule":"TRule_sql_stmt_list.TBlock3.TBlock1.Token1","sum":2419377654},{"parent":"TRule_sql_stmt_list.TBlock4","rule":"TRule_sql_stmt_list.TBlock4.Token1","sum":198139030},{"parent":"TRule_struct_arg","rule":"TRule_struct_arg.Rule_type_name_or_bind3","sum":113973263},{"parent":"TRule_struct_arg","rule":"TRule_struct_arg.Rule_type_name_tag1","sum":113973263},{"parent":"TRule_struct_arg","rule":"TRule_struct_arg.Token2","sum":113973263},{"parent":"TRule_struct_arg_positional","rule":"TRule_struct_arg_positional.Alt_struct_arg_positional1","sum":195},{"parent":"TRule_struct_arg_positional.TAlt1","rule":"TRule_struct_arg_positional.TAlt1.Block3","sum":166},{"parent":"TRule_struct_arg_positional.TAlt1","rule":"TRule_struct_arg_positional.TAlt1.Rule_type_name_or_bind2","sum":195},{"parent":"TRule_struct_arg_positional.TAlt1","rule":"TRule_struct_arg_positional.TAlt1.Rule_type_name_tag1","sum":195},{"parent":"TRule_struct_arg_positional.TAlt1.TBlock3","rule":"TRule_struct_arg_positional.TAlt1.TBlock3.Token2","sum":166},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Block2","sum":14603829},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Block3","sum":2563557},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Token1","sum":14736673},{"parent":"TRule_struct_literal","rule":"TRule_struct_literal.Token4","sum":14736673},{"parent":"TRule_struct_literal.TBlock2","rule":"TRule_struct_literal.TBlock2.Rule_expr_struct_list1","sum":14603829},{"parent":"TRule_struct_literal.TBlock3","rule":"TRule_struct_literal.TBlock3.Token1","sum":2563557},{"parent":"TRule_subselect_stmt","rule":"TRule_subselect_stmt.Block1","sum":331048365},{"parent":"TRule_subselect_stmt.TBlock1","rule":"TRule_subselect_stmt.TBlock1.Alt1","sum":208008327},{"parent":"TRule_subselect_stmt.TBlock1","rule":"TRule_subselect_stmt.TBlock1.Alt2","sum":123040038},{"parent":"TRule_subselect_stmt.TBlock1.TAlt1","rule":"TRule_subselect_stmt.TBlock1.TAlt1.Rule_select_stmt2","sum":208008327},{"parent":"TRule_subselect_stmt.TBlock1.TAlt1","rule":"TRule_subselect_stmt.TBlock1.TAlt1.Token1","sum":208008327},{"parent":"TRule_subselect_stmt.TBlock1.TAlt1","rule":"TRule_subselect_stmt.TBlock1.TAlt1.Token3","sum":208008327},{"parent":"TRule_subselect_stmt.TBlock1.TAlt2","rule":"TRule_subselect_stmt.TBlock1.TAlt2.Rule_select_unparenthesized_stmt1","sum":123040038},{"parent":"TRule_table_arg","rule":"TRule_table_arg.Block1","sum":117005},{"parent":"TRule_table_arg","rule":"TRule_table_arg.Block3","sum":271664},{"parent":"TRule_table_arg","rule":"TRule_table_arg.Rule_named_expr2","sum":192341086},{"parent":"TRule_table_arg.TBlock1","rule":"TRule_table_arg.TBlock1.Token1","sum":117005},{"parent":"TRule_table_arg.TBlock3","rule":"TRule_table_arg.TBlock3.Rule_view_name2","sum":271664},{"parent":"TRule_table_arg.TBlock3","rule":"TRule_table_arg.TBlock3.Token1","sum":271664},{"parent":"TRule_table_constraint","rule":"TRule_table_constraint.Alt_table_constraint2","sum":124},{"parent":"TRule_table_constraint","rule":"TRule_table_constraint.Alt_table_constraint3","sum":105},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Block5","sum":103},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Rule_an_id4","sum":124},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Token1","sum":124},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Token2","sum":124},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Token3","sum":124},{"parent":"TRule_table_constraint.TAlt2","rule":"TRule_table_constraint.TAlt2.Token6","sum":124},{"parent":"TRule_table_constraint.TAlt2.TBlock5","rule":"TRule_table_constraint.TAlt2.TBlock5.Rule_an_id2","sum":259},{"parent":"TRule_table_constraint.TAlt2.TBlock5","rule":"TRule_table_constraint.TAlt2.TBlock5.Token1","sum":259},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Rule_column_order_by_specification4","sum":105},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Token1","sum":105},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Token2","sum":105},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Token3","sum":105},{"parent":"TRule_table_constraint.TAlt3","rule":"TRule_table_constraint.TAlt3.Token6","sum":105},{"parent":"TRule_table_hint","rule":"TRule_table_hint.Alt_table_hint1","sum":155030406},{"parent":"TRule_table_hint","rule":"TRule_table_hint.Alt_table_hint2","sum":18942561},{"parent":"TRule_table_hint","rule":"TRule_table_hint.Alt_table_hint3","sum":22},{"parent":"TRule_table_hint.TAlt1","rule":"TRule_table_hint.TAlt1.Block2","sum":10903829},{"parent":"TRule_table_hint.TAlt1","rule":"TRule_table_hint.TAlt1.Rule_an_id_hint1","sum":155030406},{"parent":"TRule_table_hint.TAlt1.TBlock2","rule":"TRule_table_hint.TAlt1.TBlock2.Block2","sum":10903829},{"parent":"TRule_table_hint.TAlt1.TBlock2","rule":"TRule_table_hint.TAlt1.TBlock2.Token1","sum":10903829},{"parent":"TRule_table_hint.TAlt1.TBlock2.TBlock2","rule":"TRule_table_hint.TAlt1.TBlock2.TBlock2.Alt1","sum":10903829},{"parent":"TRule_table_hint.TAlt1.TBlock2.TBlock2.TAlt1","rule":"TRule_table_hint.TAlt1.TBlock2.TBlock2.TAlt1.Rule_type_name_tag1","sum":10903829},{"parent":"TRule_table_hint.TAlt2","rule":"TRule_table_hint.TAlt2.Block2","sum":1745},{"parent":"TRule_table_hint.TAlt2","rule":"TRule_table_hint.TAlt2.Rule_type_name_or_bind3","sum":18942561},{"parent":"TRule_table_hint.TAlt2","rule":"TRule_table_hint.TAlt2.Token1","sum":18942561},{"parent":"TRule_table_hint.TAlt2.TBlock2","rule":"TRule_table_hint.TAlt2.TBlock2.Token1","sum":1745},{"parent":"TRule_table_hint.TAlt3","rule":"TRule_table_hint.TAlt3.Block4","sum":22},{"parent":"TRule_table_hint.TAlt3","rule":"TRule_table_hint.TAlt3.Block5","sum":10},{"parent":"TRule_table_hint.TAlt3","rule":"TRule_table_hint.TAlt3.Token1","sum":22},{"parent":"TRule_table_hint.TAlt3","rule":"TRule_table_hint.TAlt3.Token3","sum":22},{"parent":"TRule_table_hint.TAlt3","rule":"TRule_table_hint.TAlt3.Token6","sum":22},{"parent":"TRule_table_hint.TAlt3.TBlock4","rule":"TRule_table_hint.TAlt3.TBlock4.Block2","sum":17},{"parent":"TRule_table_hint.TAlt3.TBlock4","rule":"TRule_table_hint.TAlt3.TBlock4.Rule_struct_arg_positional1","sum":22},{"parent":"TRule_table_hint.TAlt3.TBlock4.TBlock2","rule":"TRule_table_hint.TAlt3.TBlock4.TBlock2.Rule_struct_arg_positional2","sum":173},{"parent":"TRule_table_hint.TAlt3.TBlock4.TBlock2","rule":"TRule_table_hint.TAlt3.TBlock4.TBlock2.Token1","sum":173},{"parent":"TRule_table_hint.TAlt3.TBlock5","rule":"TRule_table_hint.TAlt3.TBlock5.Token1","sum":10},{"parent":"TRule_table_hints","rule":"TRule_table_hints.Block2","sum":163157673},{"parent":"TRule_table_hints","rule":"TRule_table_hints.Token1","sum":163157673},{"parent":"TRule_table_hints.TBlock2","rule":"TRule_table_hints.TBlock2.Alt1","sum":152472662},{"parent":"TRule_table_hints.TBlock2","rule":"TRule_table_hints.TBlock2.Alt2","sum":10685011},{"parent":"TRule_table_hints.TBlock2.TAlt1","rule":"TRule_table_hints.TBlock2.TAlt1.Rule_table_hint1","sum":152472662},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Block3","sum":10409927},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Rule_table_hint2","sum":10685011},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Token1","sum":10685011},{"parent":"TRule_table_hints.TBlock2.TAlt2","rule":"TRule_table_hints.TBlock2.TAlt2.Token4","sum":10685011},{"parent":"TRule_table_hints.TBlock2.TAlt2.TBlock3","rule":"TRule_table_hints.TBlock2.TAlt2.TBlock3.Rule_table_hint2","sum":10815316},{"parent":"TRule_table_hints.TBlock2.TAlt2.TBlock3","rule":"TRule_table_hints.TBlock2.TAlt2.TBlock3.Token1","sum":10815316},{"parent":"TRule_table_key","rule":"TRule_table_key.Block2","sum":869375},{"parent":"TRule_table_key","rule":"TRule_table_key.Rule_id_table_or_type1","sum":331266134},{"parent":"TRule_table_key.TBlock2","rule":"TRule_table_key.TBlock2.Rule_view_name2","sum":869375},{"parent":"TRule_table_key.TBlock2","rule":"TRule_table_key.TBlock2.Token1","sum":869375},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block1","sum":40051910},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block2","sum":6068166},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block3","sum":955906317},{"parent":"TRule_table_ref","rule":"TRule_table_ref.Block4","sum":19660830},{"parent":"TRule_table_ref.TBlock1","rule":"TRule_table_ref.TBlock1.Rule_cluster_expr1","sum":40051910},{"parent":"TRule_table_ref.TBlock1","rule":"TRule_table_ref.TBlock1.Token2","sum":40051910},{"parent":"TRule_table_ref.TBlock2","rule":"TRule_table_ref.TBlock2.Token1","sum":6068166},{"parent":"TRule_table_ref.TBlock3","rule":"TRule_table_ref.TBlock3.Alt1","sum":331266134},{"parent":"TRule_table_ref.TBlock3","rule":"TRule_table_ref.TBlock3.Alt2","sum":96457781},{"parent":"TRule_table_ref.TBlock3","rule":"TRule_table_ref.TBlock3.Alt3","sum":528182402},{"parent":"TRule_table_ref.TBlock3.TAlt1","rule":"TRule_table_ref.TBlock3.TAlt1.Rule_table_key1","sum":331266134},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Block3","sum":96457757},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Rule_an_id_expr1","sum":96457781},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Token2","sum":96457781},{"parent":"TRule_table_ref.TBlock3.TAlt2","rule":"TRule_table_ref.TBlock3.TAlt2.Token4","sum":96457781},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.Block2","sum":49681294},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.Block3","sum":358512},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.Rule_table_arg1","sum":96457757},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2.Rule_table_arg2","sum":95883329},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock2.Token1","sum":95883329},{"parent":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt2.TBlock3.TBlock3.Token1","sum":358512},{"parent":"TRule_table_ref.TBlock3.TAlt3","rule":"TRule_table_ref.TBlock3.TAlt3.Block2","sum":22391157},{"parent":"TRule_table_ref.TBlock3.TAlt3","rule":"TRule_table_ref.TBlock3.TAlt3.Block3","sum":179571},{"parent":"TRule_table_ref.TBlock3.TAlt3","rule":"TRule_table_ref.TBlock3.TAlt3.Rule_bind_parameter1","sum":528182402},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.Block2","sum":16009153},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.Token1","sum":22391157},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.Token3","sum":22391157},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock2.TBlock2","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock2.TBlock2.Rule_expr_list1","sum":16009153},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock3.Rule_view_name2","sum":179571},{"parent":"TRule_table_ref.TBlock3.TAlt3.TBlock3","rule":"TRule_table_ref.TBlock3.TAlt3.TBlock3.Token1","sum":179571},{"parent":"TRule_table_ref.TBlock4","rule":"TRule_table_ref.TBlock4.Rule_table_hints1","sum":19660830},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Block6","sum":9382},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Rule_expr4","sum":329161},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Rule_sampling_mode2","sum":329161},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Token1","sum":329161},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Token3","sum":329161},{"parent":"TRule_tablesample_clause","rule":"TRule_tablesample_clause.Token5","sum":329161},{"parent":"TRule_tablesample_clause.TBlock6","rule":"TRule_tablesample_clause.TBlock6.Rule_repeatable_clause1","sum":9382},{"parent":"TRule_type_id","rule":"TRule_type_id.Token1","sum":11727923},{"parent":"TRule_type_name","rule":"TRule_type_name.Alt_type_name1","sum":89568358},{"parent":"TRule_type_name","rule":"TRule_type_name.Alt_type_name2","sum":704837127},{"parent":"TRule_type_name.TAlt1","rule":"TRule_type_name.TAlt1.Rule_type_name_composite1","sum":89568358},{"parent":"TRule_type_name.TAlt2","rule":"TRule_type_name.TAlt2.Block1","sum":704837127},{"parent":"TRule_type_name.TAlt2","rule":"TRule_type_name.TAlt2.Block2","sum":73447647},{"parent":"TRule_type_name.TAlt2.TBlock1","rule":"TRule_type_name.TAlt2.TBlock1.Alt1","sum":27748139},{"parent":"TRule_type_name.TAlt2.TBlock1","rule":"TRule_type_name.TAlt2.TBlock1.Alt2","sum":677088988},{"parent":"TRule_type_name.TAlt2.TBlock1.TAlt1","rule":"TRule_type_name.TAlt2.TBlock1.TAlt1.Rule_type_name_decimal1","sum":27748139},{"parent":"TRule_type_name.TAlt2.TBlock1.TAlt2","rule":"TRule_type_name.TAlt2.TBlock1.TAlt2.Rule_type_name_simple1","sum":677088988},{"parent":"TRule_type_name.TAlt2.TBlock2","rule":"TRule_type_name.TAlt2.TBlock2.Token1","sum":73448705},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Block4","sum":9789399},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Block5","sum":227874},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Block6","sum":10347},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Rule_type_name_or_bind9","sum":10116228},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token1","sum":10116228},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token10","sum":10116228},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token2","sum":10116228},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token3","sum":10116228},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token7","sum":10116228},{"parent":"TRule_type_name_callable","rule":"TRule_type_name_callable.Token8","sum":10116228},{"parent":"TRule_type_name_callable.TBlock4","rule":"TRule_type_name_callable.TBlock4.Rule_callable_arg_list1","sum":9789399},{"parent":"TRule_type_name_callable.TBlock5","rule":"TRule_type_name_callable.TBlock5.Token1","sum":227874},{"parent":"TRule_type_name_callable.TBlock6","rule":"TRule_type_name_callable.TBlock6.Rule_callable_arg_list2","sum":10347},{"parent":"TRule_type_name_callable.TBlock6","rule":"TRule_type_name_callable.TBlock6.Token1","sum":10347},{"parent":"TRule_type_name_callable.TBlock6","rule":"TRule_type_name_callable.TBlock6.Token3","sum":10347},{"parent":"TRule_type_name_composite","rule":"TRule_type_name_composite.Block1","sum":106993914},{"parent":"TRule_type_name_composite","rule":"TRule_type_name_composite.Block2","sum":4261399},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt1","sum":33300382},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt10","sum":20856},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt11","sum":451633},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt12","sum":7569},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt13","sum":10116228},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt2","sum":2167125},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt3","sum":26707667},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt4","sum":138745},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt5","sum":25872035},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt6","sum":1529678},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt8","sum":6668423},{"parent":"TRule_type_name_composite.TBlock1","rule":"TRule_type_name_composite.TBlock1.Alt9","sum":13573},{"parent":"TRule_type_name_composite.TBlock1.TAlt1","rule":"TRule_type_name_composite.TBlock1.TAlt1.Rule_type_name_optional1","sum":33300382},{"parent":"TRule_type_name_composite.TBlock1.TAlt10","rule":"TRule_type_name_composite.TBlock1.TAlt10.Rule_type_name_enum1","sum":20856},{"parent":"TRule_type_name_composite.TBlock1.TAlt11","rule":"TRule_type_name_composite.TBlock1.TAlt11.Rule_type_name_resource1","sum":451633},{"parent":"TRule_type_name_composite.TBlock1.TAlt12","rule":"TRule_type_name_composite.TBlock1.TAlt12.Rule_type_name_tagged1","sum":7569},{"parent":"TRule_type_name_composite.TBlock1.TAlt13","rule":"TRule_type_name_composite.TBlock1.TAlt13.Rule_type_name_callable1","sum":10116228},{"parent":"TRule_type_name_composite.TBlock1.TAlt2","rule":"TRule_type_name_composite.TBlock1.TAlt2.Rule_type_name_tuple1","sum":2167125},{"parent":"TRule_type_name_composite.TBlock1.TAlt3","rule":"TRule_type_name_composite.TBlock1.TAlt3.Rule_type_name_struct1","sum":26707667},{"parent":"TRule_type_name_composite.TBlock1.TAlt4","rule":"TRule_type_name_composite.TBlock1.TAlt4.Rule_type_name_variant1","sum":138745},{"parent":"TRule_type_name_composite.TBlock1.TAlt5","rule":"TRule_type_name_composite.TBlock1.TAlt5.Rule_type_name_list1","sum":25872035},{"parent":"TRule_type_name_composite.TBlock1.TAlt6","rule":"TRule_type_name_composite.TBlock1.TAlt6.Rule_type_name_stream1","sum":1529678},{"parent":"TRule_type_name_composite.TBlock1.TAlt8","rule":"TRule_type_name_composite.TBlock1.TAlt8.Rule_type_name_dict1","sum":6668423},{"parent":"TRule_type_name_composite.TBlock1.TAlt9","rule":"TRule_type_name_composite.TBlock1.TAlt9.Rule_type_name_set1","sum":13573},{"parent":"TRule_type_name_composite.TBlock2","rule":"TRule_type_name_composite.TBlock2.Token1","sum":4261402},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Rule_integer_or_bind3","sum":27748139},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Rule_integer_or_bind5","sum":27748139},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token1","sum":27748139},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token2","sum":27748139},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token4","sum":27748139},{"parent":"TRule_type_name_decimal","rule":"TRule_type_name_decimal.Token6","sum":27748139},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Rule_type_name_or_bind3","sum":6668423},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Rule_type_name_or_bind5","sum":6668423},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token1","sum":6668423},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token2","sum":6668423},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token4","sum":6668423},{"parent":"TRule_type_name_dict","rule":"TRule_type_name_dict.Token6","sum":6668423},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Block4","sum":20608},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Block5","sum":352},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Rule_type_name_tag3","sum":20856},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Token1","sum":20856},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Token2","sum":20856},{"parent":"TRule_type_name_enum","rule":"TRule_type_name_enum.Token6","sum":20856},{"parent":"TRule_type_name_enum.TBlock4","rule":"TRule_type_name_enum.TBlock4.Rule_type_name_tag2","sum":44864},{"parent":"TRule_type_name_enum.TBlock4","rule":"TRule_type_name_enum.TBlock4.Token1","sum":44864},{"parent":"TRule_type_name_enum.TBlock5","rule":"TRule_type_name_enum.TBlock5.Token1","sum":352},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Rule_type_name_or_bind3","sum":25872035},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Token1","sum":25872035},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Token2","sum":25872035},{"parent":"TRule_type_name_list","rule":"TRule_type_name_list.Token4","sum":25872035},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Rule_type_name_or_bind3","sum":33300382},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Token1","sum":33300382},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Token2","sum":33300382},{"parent":"TRule_type_name_optional","rule":"TRule_type_name_optional.Token4","sum":33300382},{"parent":"TRule_type_name_or_bind","rule":"TRule_type_name_or_bind.Alt_type_name_or_bind1","sum":637613195},{"parent":"TRule_type_name_or_bind","rule":"TRule_type_name_or_bind.Alt_type_name_or_bind2","sum":2692737},{"parent":"TRule_type_name_or_bind.TAlt1","rule":"TRule_type_name_or_bind.TAlt1.Rule_type_name1","sum":637613195},{"parent":"TRule_type_name_or_bind.TAlt2","rule":"TRule_type_name_or_bind.TAlt2.Rule_bind_parameter1","sum":2692737},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Rule_type_name_tag3","sum":451633},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Token1","sum":451633},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Token2","sum":451633},{"parent":"TRule_type_name_resource","rule":"TRule_type_name_resource.Token4","sum":451633},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Rule_type_name_or_bind3","sum":13573},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Token1","sum":13573},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Token2","sum":13573},{"parent":"TRule_type_name_set","rule":"TRule_type_name_set.Token4","sum":13573},{"parent":"TRule_type_name_simple","rule":"TRule_type_name_simple.Rule_an_id_pure1","sum":678937497},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Rule_type_name_or_bind3","sum":1529678},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Token1","sum":1529678},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Token2","sum":1529678},{"parent":"TRule_type_name_stream","rule":"TRule_type_name_stream.Token4","sum":1529678},{"parent":"TRule_type_name_struct","rule":"TRule_type_name_struct.Block2","sum":26707667},{"parent":"TRule_type_name_struct","rule":"TRule_type_name_struct.Token1","sum":26707667},{"parent":"TRule_type_name_struct.TBlock2","rule":"TRule_type_name_struct.TBlock2.Alt1","sum":26704759},{"parent":"TRule_type_name_struct.TBlock2","rule":"TRule_type_name_struct.TBlock2.Alt2","sum":2908},{"parent":"TRule_type_name_struct.TBlock2.TAlt1","rule":"TRule_type_name_struct.TBlock2.TAlt1.Block2","sum":26704749},{"parent":"TRule_type_name_struct.TBlock2.TAlt1","rule":"TRule_type_name_struct.TBlock2.TAlt1.Token1","sum":26704759},{"parent":"TRule_type_name_struct.TBlock2.TAlt1","rule":"TRule_type_name_struct.TBlock2.TAlt1.Token3","sum":26704759},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.Block2","sum":20382974},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.Block3","sum":2062225},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.Rule_struct_arg1","sum":26704749},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2.Rule_struct_arg2","sum":87268514},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock2.Token1","sum":87268514},{"parent":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock3","rule":"TRule_type_name_struct.TBlock2.TAlt1.TBlock2.TBlock3.Token1","sum":2062225},{"parent":"TRule_type_name_struct.TBlock2.TAlt2","rule":"TRule_type_name_struct.TBlock2.TAlt2.Token1","sum":2908},{"parent":"TRule_type_name_tag","rule":"TRule_type_name_tag.Alt_type_name_tag1","sum":104704623},{"parent":"TRule_type_name_tag","rule":"TRule_type_name_tag.Alt_type_name_tag2","sum":18411822},{"parent":"TRule_type_name_tag","rule":"TRule_type_name_tag.Alt_type_name_tag3","sum":2640961},{"parent":"TRule_type_name_tag.TAlt1","rule":"TRule_type_name_tag.TAlt1.Rule_id1","sum":104704623},{"parent":"TRule_type_name_tag.TAlt2","rule":"TRule_type_name_tag.TAlt2.Token1","sum":18411822},{"parent":"TRule_type_name_tag.TAlt3","rule":"TRule_type_name_tag.TAlt3.Rule_bind_parameter1","sum":2640961},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Rule_type_name_or_bind3","sum":7569},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Rule_type_name_tag5","sum":7569},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token1","sum":7569},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token2","sum":7569},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token4","sum":7569},{"parent":"TRule_type_name_tagged","rule":"TRule_type_name_tagged.Token6","sum":7569},{"parent":"TRule_type_name_tuple","rule":"TRule_type_name_tuple.Block2","sum":2167125},{"parent":"TRule_type_name_tuple","rule":"TRule_type_name_tuple.Token1","sum":2167125},{"parent":"TRule_type_name_tuple.TBlock2","rule":"TRule_type_name_tuple.TBlock2.Alt1","sum":2167115},{"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":2167115},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1","rule":"TRule_type_name_tuple.TBlock2.TAlt1.Token1","sum":2167115},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1","rule":"TRule_type_name_tuple.TBlock2.TAlt1.Token3","sum":2167115},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.Block2","sum":2165561},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.Block3","sum":63364},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.Rule_type_name_or_bind1","sum":2167115},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2.Rule_type_name_or_bind2","sum":3348110},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock2.Token1","sum":3348110},{"parent":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock3","rule":"TRule_type_name_tuple.TBlock2.TAlt1.TBlock2.TBlock3.Token1","sum":63364},{"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":124427},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Block5","sum":106},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Rule_variant_arg3","sum":138745},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Token1","sum":138745},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Token2","sum":138745},{"parent":"TRule_type_name_variant","rule":"TRule_type_name_variant.Token6","sum":138745},{"parent":"TRule_type_name_variant.TBlock4","rule":"TRule_type_name_variant.TBlock4.Rule_variant_arg2","sum":239208},{"parent":"TRule_type_name_variant.TBlock4","rule":"TRule_type_name_variant.TBlock4.Token1","sum":239208},{"parent":"TRule_type_name_variant.TBlock5","rule":"TRule_type_name_variant.TBlock5.Token1","sum":106},{"parent":"TRule_unary_casual_subexpr","rule":"TRule_unary_casual_subexpr.Block1","sum":16031312931},{"parent":"TRule_unary_casual_subexpr","rule":"TRule_unary_casual_subexpr.Rule_unary_subexpr_suffix2","sum":16031312931},{"parent":"TRule_unary_casual_subexpr.TBlock1","rule":"TRule_unary_casual_subexpr.TBlock1.Alt1","sum":7195652005},{"parent":"TRule_unary_casual_subexpr.TBlock1","rule":"TRule_unary_casual_subexpr.TBlock1.Alt2","sum":8835660926},{"parent":"TRule_unary_casual_subexpr.TBlock1.TAlt1","rule":"TRule_unary_casual_subexpr.TBlock1.TAlt1.Rule_id_expr1","sum":7195652005},{"parent":"TRule_unary_casual_subexpr.TBlock1.TAlt2","rule":"TRule_unary_casual_subexpr.TBlock1.TAlt2.Rule_atom_expr1","sum":8835660926},{"parent":"TRule_unary_op","rule":"TRule_unary_op.Token1","sum":87839446},{"parent":"TRule_unary_subexpr","rule":"TRule_unary_subexpr.Alt_unary_subexpr1","sum":16031312931},{"parent":"TRule_unary_subexpr","rule":"TRule_unary_subexpr.Alt_unary_subexpr2","sum":6334872},{"parent":"TRule_unary_subexpr.TAlt1","rule":"TRule_unary_subexpr.TAlt1.Rule_unary_casual_subexpr1","sum":16031312931},{"parent":"TRule_unary_subexpr.TAlt2","rule":"TRule_unary_subexpr.TAlt2.Rule_json_api_expr1","sum":6334872},{"parent":"TRule_unary_subexpr_suffix","rule":"TRule_unary_subexpr_suffix.Block1","sum":4787377355},{"parent":"TRule_unary_subexpr_suffix.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.Block1","sum":5042894322},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.Alt1","sum":174308643},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.Alt2","sum":2884586421},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.Alt3","sum":1983999258},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt1.Rule_key_expr1","sum":174308643},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt2.Rule_invoke_expr1","sum":2884586421},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.Block2","sum":1983999258},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.Token1","sum":1983999258},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.Alt1","sum":3156035},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.Alt2","sum":40591529},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.Alt3","sum":1940251694},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt1","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt1.Rule_bind_parameter1","sum":3156035},{"parent":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt2","rule":"TRule_unary_subexpr_suffix.TBlock1.TBlock1.TAlt3.TBlock2.TAlt2.Token1","sum":40591529},{"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":1940251694},{"parent":"TRule_use_stmt","rule":"TRule_use_stmt.Rule_cluster_expr2","sum":330553175},{"parent":"TRule_use_stmt","rule":"TRule_use_stmt.Token1","sum":330553175},{"parent":"TRule_using_call_expr","rule":"TRule_using_call_expr.Block1","sum":2788381},{"parent":"TRule_using_call_expr","rule":"TRule_using_call_expr.Rule_invoke_expr2","sum":2788381},{"parent":"TRule_using_call_expr.TBlock1","rule":"TRule_using_call_expr.TBlock1.Alt1","sum":1528230},{"parent":"TRule_using_call_expr.TBlock1","rule":"TRule_using_call_expr.TBlock1.Alt3","sum":1260151},{"parent":"TRule_using_call_expr.TBlock1.TAlt1","rule":"TRule_using_call_expr.TBlock1.TAlt1.Rule_an_id_or_type1","sum":1528230},{"parent":"TRule_using_call_expr.TBlock1.TAlt1","rule":"TRule_using_call_expr.TBlock1.TAlt1.Rule_an_id_or_type3","sum":1528230},{"parent":"TRule_using_call_expr.TBlock1.TAlt1","rule":"TRule_using_call_expr.TBlock1.TAlt1.Token2","sum":1528230},{"parent":"TRule_using_call_expr.TBlock1.TAlt3","rule":"TRule_using_call_expr.TBlock1.TAlt3.Rule_bind_parameter1","sum":1260151},{"parent":"TRule_value_constructor","rule":"TRule_value_constructor.Alt_value_constructor1","sum":32197},{"parent":"TRule_value_constructor","rule":"TRule_value_constructor.Alt_value_constructor2","sum":52564},{"parent":"TRule_value_constructor","rule":"TRule_value_constructor.Alt_value_constructor3","sum":80971},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Rule_expr3","sum":32197},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Rule_expr5","sum":32197},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Rule_expr7","sum":32197},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token1","sum":32197},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token2","sum":32197},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token4","sum":32197},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token6","sum":32197},{"parent":"TRule_value_constructor.TAlt1","rule":"TRule_value_constructor.TAlt1.Token8","sum":32197},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Rule_expr3","sum":52564},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Rule_expr5","sum":52564},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token1","sum":52564},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token2","sum":52564},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token4","sum":52564},{"parent":"TRule_value_constructor.TAlt2","rule":"TRule_value_constructor.TAlt2.Token6","sum":52564},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Rule_expr3","sum":80971},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Rule_expr5","sum":80971},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token1","sum":80971},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token2","sum":80971},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token4","sum":80971},{"parent":"TRule_value_constructor.TAlt3","rule":"TRule_value_constructor.TAlt3.Token6","sum":80971},{"parent":"TRule_values_source","rule":"TRule_values_source.Alt_values_source1","sum":1089320},{"parent":"TRule_values_source","rule":"TRule_values_source.Alt_values_source2","sum":208639933},{"parent":"TRule_values_source.TAlt1","rule":"TRule_values_source.TAlt1.Rule_values_stmt1","sum":1089320},{"parent":"TRule_values_source.TAlt2","rule":"TRule_values_source.TAlt2.Rule_select_stmt1","sum":208639933},{"parent":"TRule_values_source_row","rule":"TRule_values_source_row.Rule_expr_list2","sum":9071866},{"parent":"TRule_values_source_row","rule":"TRule_values_source_row.Token1","sum":9071866},{"parent":"TRule_values_source_row","rule":"TRule_values_source_row.Token3","sum":9071866},{"parent":"TRule_values_source_row_list","rule":"TRule_values_source_row_list.Block2","sum":486688},{"parent":"TRule_values_source_row_list","rule":"TRule_values_source_row_list.Rule_values_source_row1","sum":1259083},{"parent":"TRule_values_source_row_list.TBlock2","rule":"TRule_values_source_row_list.TBlock2.Rule_values_source_row2","sum":7812783},{"parent":"TRule_values_source_row_list.TBlock2","rule":"TRule_values_source_row_list.TBlock2.Token1","sum":7812783},{"parent":"TRule_values_stmt","rule":"TRule_values_stmt.Rule_values_source_row_list2","sum":1259083},{"parent":"TRule_values_stmt","rule":"TRule_values_stmt.Token1","sum":1259083},{"parent":"TRule_variant_arg","rule":"TRule_variant_arg.Block1","sum":355197},{"parent":"TRule_variant_arg","rule":"TRule_variant_arg.Rule_type_name_or_bind2","sum":18415857},{"parent":"TRule_variant_arg.TBlock1","rule":"TRule_variant_arg.TBlock1.Rule_type_name_tag1","sum":355197},{"parent":"TRule_variant_arg.TBlock1","rule":"TRule_variant_arg.TBlock1.Token2","sum":355197},{"parent":"TRule_view_name","rule":"TRule_view_name.Alt_view_name1","sum":1320610},{"parent":"TRule_view_name.TAlt1","rule":"TRule_view_name.TAlt1.Rule_an_id1","sum":1320610},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Rule_expr2","sum":158729543},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Rule_expr4","sum":158729543},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Token1","sum":158729543},{"parent":"TRule_when_expr","rule":"TRule_when_expr.Token3","sum":158729543},{"parent":"TRule_window_clause","rule":"TRule_window_clause.Rule_window_definition_list2","sum":13625726},{"parent":"TRule_window_clause","rule":"TRule_window_clause.Token1","sum":13625726},{"parent":"TRule_window_definition","rule":"TRule_window_definition.Rule_new_window_name1","sum":14203555},{"parent":"TRule_window_definition","rule":"TRule_window_definition.Rule_window_specification3","sum":14203555},{"parent":"TRule_window_definition","rule":"TRule_window_definition.Token2","sum":14203555},{"parent":"TRule_window_definition_list","rule":"TRule_window_definition_list.Block2","sum":437513},{"parent":"TRule_window_definition_list","rule":"TRule_window_definition_list.Rule_window_definition1","sum":13625726},{"parent":"TRule_window_definition_list.TBlock2","rule":"TRule_window_definition_list.TBlock2.Rule_window_definition2","sum":577829},{"parent":"TRule_window_definition_list.TBlock2","rule":"TRule_window_definition_list.TBlock2.Token1","sum":577829},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Rule_window_frame_bound2","sum":2323616},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Rule_window_frame_bound4","sum":2323616},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Token1","sum":2323616},{"parent":"TRule_window_frame_between","rule":"TRule_window_frame_between.Token3","sum":2323616},{"parent":"TRule_window_frame_bound","rule":"TRule_window_frame_bound.Alt_window_frame_bound1","sum":1330552},{"parent":"TRule_window_frame_bound","rule":"TRule_window_frame_bound.Alt_window_frame_bound2","sum":3374715},{"parent":"TRule_window_frame_bound.TAlt1","rule":"TRule_window_frame_bound.TAlt1.Token1","sum":1330552},{"parent":"TRule_window_frame_bound.TAlt1","rule":"TRule_window_frame_bound.TAlt1.Token2","sum":1330552},{"parent":"TRule_window_frame_bound.TAlt2","rule":"TRule_window_frame_bound.TAlt2.Block1","sum":3374715},{"parent":"TRule_window_frame_bound.TAlt2","rule":"TRule_window_frame_bound.TAlt2.Token2","sum":3374715},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1","rule":"TRule_window_frame_bound.TAlt2.TBlock1.Alt1","sum":1115948},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1","rule":"TRule_window_frame_bound.TAlt2.TBlock1.Alt2","sum":2258767},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt1","rule":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt1.Rule_expr1","sum":1115948},{"parent":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt2","rule":"TRule_window_frame_bound.TAlt2.TBlock1.TAlt2.Token1","sum":2258767},{"parent":"TRule_window_frame_clause","rule":"TRule_window_frame_clause.Rule_window_frame_extent2","sum":2381651},{"parent":"TRule_window_frame_clause","rule":"TRule_window_frame_clause.Rule_window_frame_units1","sum":2381651},{"parent":"TRule_window_frame_extent","rule":"TRule_window_frame_extent.Alt_window_frame_extent1","sum":58035},{"parent":"TRule_window_frame_extent","rule":"TRule_window_frame_extent.Alt_window_frame_extent2","sum":2323616},{"parent":"TRule_window_frame_extent.TAlt1","rule":"TRule_window_frame_extent.TAlt1.Rule_window_frame_bound1","sum":58035},{"parent":"TRule_window_frame_extent.TAlt2","rule":"TRule_window_frame_extent.TAlt2.Rule_window_frame_between1","sum":2323616},{"parent":"TRule_window_frame_units","rule":"TRule_window_frame_units.Token1","sum":2381651},{"parent":"TRule_window_name","rule":"TRule_window_name.Rule_an_id_window1","sum":46794903},{"parent":"TRule_window_name_or_specification","rule":"TRule_window_name_or_specification.Alt_window_name_or_specification1","sum":32591348},{"parent":"TRule_window_name_or_specification","rule":"TRule_window_name_or_specification.Alt_window_name_or_specification2","sum":12886037},{"parent":"TRule_window_name_or_specification.TAlt1","rule":"TRule_window_name_or_specification.TAlt1.Rule_window_name1","sum":32591348},{"parent":"TRule_window_name_or_specification.TAlt2","rule":"TRule_window_name_or_specification.TAlt2.Rule_window_specification1","sum":12886037},{"parent":"TRule_window_order_clause","rule":"TRule_window_order_clause.Rule_order_by_clause1","sum":19090522},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Block2","sum":51981},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Rule_named_expr_list4","sum":21880553},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Token1","sum":21880553},{"parent":"TRule_window_partition_clause","rule":"TRule_window_partition_clause.Token3","sum":21880553},{"parent":"TRule_window_partition_clause.TBlock2","rule":"TRule_window_partition_clause.TBlock2.Token1","sum":51981},{"parent":"TRule_window_specification","rule":"TRule_window_specification.Rule_window_specification_details2","sum":27089592},{"parent":"TRule_window_specification","rule":"TRule_window_specification.Token1","sum":27089592},{"parent":"TRule_window_specification","rule":"TRule_window_specification.Token3","sum":27089592},{"parent":"TRule_window_specification_details","rule":"TRule_window_specification_details.Block2","sum":21880552},{"parent":"TRule_window_specification_details","rule":"TRule_window_specification_details.Block3","sum":19090522},{"parent":"TRule_window_specification_details","rule":"TRule_window_specification_details.Block4","sum":2381651},{"parent":"TRule_window_specification_details.TBlock2","rule":"TRule_window_specification_details.TBlock2.Rule_window_partition_clause1","sum":21880552},{"parent":"TRule_window_specification_details.TBlock3","rule":"TRule_window_specification_details.TBlock3.Rule_window_order_clause1","sum":19090522},{"parent":"TRule_window_specification_details.TBlock4","rule":"TRule_window_specification_details.TBlock4.Rule_window_frame_clause1","sum":2381651},{"parent":"TRule_without_column_list","rule":"TRule_without_column_list.Block2","sum":9254793},{"parent":"TRule_without_column_list","rule":"TRule_without_column_list.Block3","sum":1324200},{"parent":"TRule_without_column_list","rule":"TRule_without_column_list.Rule_without_column_name1","sum":25026920},{"parent":"TRule_without_column_list.TBlock2","rule":"TRule_without_column_list.TBlock2.Rule_without_column_name2","sum":29350935},{"parent":"TRule_without_column_list.TBlock2","rule":"TRule_without_column_list.TBlock2.Token1","sum":29350935},{"parent":"TRule_without_column_list.TBlock3","rule":"TRule_without_column_list.TBlock3.Token1","sum":1324200},{"parent":"TRule_without_column_name","rule":"TRule_without_column_name.Alt_without_column_name1","sum":30955091},{"parent":"TRule_without_column_name","rule":"TRule_without_column_name.Alt_without_column_name2","sum":23422764},{"parent":"TRule_without_column_name.TAlt1","rule":"TRule_without_column_name.TAlt1.Rule_an_id1","sum":30955091},{"parent":"TRule_without_column_name.TAlt1","rule":"TRule_without_column_name.TAlt1.Rule_an_id3","sum":30955091},{"parent":"TRule_without_column_name.TAlt1","rule":"TRule_without_column_name.TAlt1.Token2","sum":30955091},{"parent":"TRule_without_column_name.TAlt2","rule":"TRule_without_column_name.TAlt2.Rule_an_id_without1","sum":23422764},{"parent":"TRule_xor_subexpr","rule":"TRule_xor_subexpr.Block2","sum":1098405657},{"parent":"TRule_xor_subexpr","rule":"TRule_xor_subexpr.Rule_eq_subexpr1","sum":14301321628},{"parent":"TRule_xor_subexpr.TBlock2","rule":"TRule_xor_subexpr.TBlock2.Rule_cond_expr1","sum":1098405657},{"parent":"TSQLv1ParserAST","rule":"TSQLv1ParserAST.Rule_sql_query","sum":321178940},{"parent":"TYPE","rule":"BIGINT","sum":6932},{"parent":"TYPE","rule":"BOOL","sum":109593},{"parent":"TYPE","rule":"BYTEs","sum":1},{"parent":"TYPE","rule":"BigInt","sum":210},{"parent":"TYPE","rule":"Bool","sum":9328918},{"parent":"TYPE","rule":"Bytes","sum":428005},{"parent":"TYPE","rule":"DATE","sum":1262181},{"parent":"TYPE","rule":"DATETIME","sum":66984},{"parent":"TYPE","rule":"DATETime","sum":2},{"parent":"TYPE","rule":"DATEtIME","sum":1},{"parent":"TYPE","rule":"DATEtime","sum":34},{"parent":"TYPE","rule":"DAte","sum":9072},{"parent":"TYPE","rule":"DAteTime","sum":54},{"parent":"TYPE","rule":"DAtetime","sum":650},{"parent":"TYPE","rule":"DOUBLE","sum":1363060},{"parent":"TYPE","rule":"DOUBLe","sum":1},{"parent":"TYPE","rule":"DOUBle","sum":1},{"parent":"TYPE","rule":"DOUble","sum":3},{"parent":"TYPE","rule":"DOuble","sum":2183},{"parent":"TYPE","rule":"DaTeTime","sum":1},{"parent":"TYPE","rule":"Date","sum":20697406},{"parent":"TYPE","rule":"Date32","sum":65},{"parent":"TYPE","rule":"DateTIME","sum":21},{"parent":"TYPE","rule":"DateTIme","sum":112},{"parent":"TYPE","rule":"DateTime","sum":5026810},{"parent":"TYPE","rule":"DateTime64","sum":8},{"parent":"TYPE","rule":"DatetIME","sum":35},{"parent":"TYPE","rule":"Datetime","sum":3265600},{"parent":"TYPE","rule":"Datetime64","sum":38},{"parent":"TYPE","rule":"DoubLe","sum":13},{"parent":"TYPE","rule":"Double","sum":30150647},{"parent":"TYPE","rule":"EmptyDict","sum":28},{"parent":"TYPE","rule":"EmptyList","sum":28},{"parent":"TYPE","rule":"FLOAT","sum":188567},{"parent":"TYPE","rule":"FLoat","sum":3386},{"parent":"TYPE","rule":"FlOAT","sum":15},{"parent":"TYPE","rule":"FloaT","sum":338},{"parent":"TYPE","rule":"Float","sum":7111544},{"parent":"TYPE","rule":"Generic","sum":3},{"parent":"TYPE","rule":"INT","sum":410042},{"parent":"TYPE","rule":"INT16","sum":9417},{"parent":"TYPE","rule":"INT32","sum":140859},{"parent":"TYPE","rule":"INT64","sum":4166541},{"parent":"TYPE","rule":"INT8","sum":1862},{"parent":"TYPE","rule":"INTEGER","sum":73375},{"parent":"TYPE","rule":"INTERVAL","sum":10426},{"parent":"TYPE","rule":"INt16","sum":1},{"parent":"TYPE","rule":"INt32","sum":1191},{"parent":"TYPE","rule":"INt64","sum":37874},{"parent":"TYPE","rule":"InT32","sum":1},{"parent":"TYPE","rule":"Int","sum":524499},{"parent":"TYPE","rule":"Int16","sum":914040},{"parent":"TYPE","rule":"Int32","sum":13884136},{"parent":"TYPE","rule":"Int64","sum":47272161},{"parent":"TYPE","rule":"Int8","sum":1029823},{"parent":"TYPE","rule":"Integer","sum":467686},{"parent":"TYPE","rule":"Interval","sum":205400},{"parent":"TYPE","rule":"Interval64","sum":34},{"parent":"TYPE","rule":"JSON","sum":1757583},{"parent":"TYPE","rule":"JSONDocument","sum":265},{"parent":"TYPE","rule":"JSOn","sum":1},{"parent":"TYPE","rule":"JSon","sum":2},{"parent":"TYPE","rule":"Json","sum":5507192},{"parent":"TYPE","rule":"JsonDocument","sum":16890},{"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":1296},{"parent":"TYPE","rule":"PgPolygon","sum":651},{"parent":"TYPE","rule":"PgText","sum":429},{"parent":"TYPE","rule":"PgTimestamp","sum":1933},{"parent":"TYPE","rule":"PgVarChar","sum":1},{"parent":"TYPE","rule":"PgVarchar","sum":231},{"parent":"TYPE","rule":"STRING","sum":2680222},{"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":335692096},{"parent":"TYPE","rule":"TEXT","sum":21570},{"parent":"TYPE","rule":"TIMESTAMP","sum":319390},{"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":204450},{"parent":"TYPE","rule":"TimeStamp","sum":294978},{"parent":"TYPE","rule":"Timestamp","sum":6007260},{"parent":"TYPE","rule":"Timestamp64","sum":488},{"parent":"TYPE","rule":"TzDATE","sum":5},{"parent":"TYPE","rule":"TzDate","sum":48936},{"parent":"TYPE","rule":"TzDateTime","sum":43711},{"parent":"TYPE","rule":"TzDatetime","sum":670798},{"parent":"TYPE","rule":"TzTimeStamp","sum":6},{"parent":"TYPE","rule":"TzTimestamp","sum":8231},{"parent":"TYPE","rule":"TzTimestamp64","sum":1},{"parent":"TYPE","rule":"Tzdate","sum":5},{"parent":"TYPE","rule":"Tzdatetime","sum":4},{"parent":"TYPE","rule":"UINT16","sum":1256},{"parent":"TYPE","rule":"UINT32","sum":423512},{"parent":"TYPE","rule":"UINT64","sum":586047},{"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":130653},{"parent":"TYPE","rule":"UInt32","sum":7368130},{"parent":"TYPE","rule":"UInt64","sum":9491372},{"parent":"TYPE","rule":"UInt8","sum":153048},{"parent":"TYPE","rule":"UNIT","sum":756},{"parent":"TYPE","rule":"UTF8","sum":269828},{"parent":"TYPE","rule":"UTf8","sum":142},{"parent":"TYPE","rule":"UUID","sum":1247896},{"parent":"TYPE","rule":"UiNt32","sum":4},{"parent":"TYPE","rule":"Uint16","sum":332190},{"parent":"TYPE","rule":"Uint32","sum":18462946},{"parent":"TYPE","rule":"Uint64","sum":32896918},{"parent":"TYPE","rule":"Uint8","sum":2325435},{"parent":"TYPE","rule":"Unit","sum":1123},{"parent":"TYPE","rule":"Utf8","sum":14459445},{"parent":"TYPE","rule":"Uuid","sum":44029},{"parent":"TYPE","rule":"VARCHAR","sum":518834},{"parent":"TYPE","rule":"Varchar","sum":2},{"parent":"TYPE","rule":"Void","sum":10821},{"parent":"TYPE","rule":"XML","sum":21},{"parent":"TYPE","rule":"YSON","sum":226297},{"parent":"TYPE","rule":"YSon","sum":277},{"parent":"TYPE","rule":"Yson","sum":17709535},{"parent":"TYPE","rule":"_PgMoney","sum":3},{"parent":"TYPE","rule":"bigint","sum":8977},{"parent":"TYPE","rule":"bool","sum":933913},{"parent":"TYPE","rule":"bytes","sum":34732},{"parent":"TYPE","rule":"dATE","sum":1},{"parent":"TYPE","rule":"daTE","sum":5},{"parent":"TYPE","rule":"date","sum":32529879},{"parent":"TYPE","rule":"date32","sum":41},{"parent":"TYPE","rule":"dateTIME","sum":8},{"parent":"TYPE","rule":"dateTime","sum":44165},{"parent":"TYPE","rule":"datetime","sum":7090167},{"parent":"TYPE","rule":"datetime64","sum":61},{"parent":"TYPE","rule":"double","sum":6955432},{"parent":"TYPE","rule":"emptyList","sum":1},{"parent":"TYPE","rule":"float","sum":4706820},{"parent":"TYPE","rule":"generic","sum":2},{"parent":"TYPE","rule":"iNT","sum":1},{"parent":"TYPE","rule":"iNT64","sum":25},{"parent":"TYPE","rule":"inT64","sum":260},{"parent":"TYPE","rule":"int","sum":1125005},{"parent":"TYPE","rule":"int16","sum":78359},{"parent":"TYPE","rule":"int32","sum":3222384},{"parent":"TYPE","rule":"int64","sum":8453909},{"parent":"TYPE","rule":"int8","sum":41932},{"parent":"TYPE","rule":"integer","sum":136328},{"parent":"TYPE","rule":"interval","sum":408838},{"parent":"TYPE","rule":"json","sum":1060285},{"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":368},{"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":45963463},{"parent":"TYPE","rule":"text","sum":4589439},{"parent":"TYPE","rule":"timeStamp","sum":80},{"parent":"TYPE","rule":"timestamp","sum":21925377},{"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":21},{"parent":"TYPE","rule":"uInt32","sum":12046},{"parent":"TYPE","rule":"uInt64","sum":2534},{"parent":"TYPE","rule":"uInt8","sum":52},{"parent":"TYPE","rule":"uint16","sum":27461},{"parent":"TYPE","rule":"uint32","sum":5327264},{"parent":"TYPE","rule":"uint64","sum":8708288},{"parent":"TYPE","rule":"uint8","sum":160798},{"parent":"TYPE","rule":"unit","sum":694461},{"parent":"TYPE","rule":"utf8","sum":4655490},{"parent":"TYPE","rule":"uuid","sum":2992838},{"parent":"TYPE","rule":"varchar","sum":58394},{"parent":"TYPE","rule":"void","sum":1},{"parent":"TYPE","rule":"xml","sum":32763},{"parent":"TYPE","rule":"yaml","sum":145},{"parent":"TYPE","rule":"yson","sum":1126517}]
diff --git a/yql/essentials/data/language/statements_opensource.json b/yql/essentials/data/language/statements_opensource.json
index a3bd452b180..d26308b6a3d 100644
--- a/yql/essentials/data/language/statements_opensource.json
+++ b/yql/essentials/data/language/statements_opensource.json
@@ -1 +1 @@
-{"read":{"yt":{"hints":[{"name":"infer_scheme"},{"name":"force_infer_schema"},{"name":"inline"},{"name":"xlock"},{"name":"unordered"},{"name":"non_unique"},{"name":"ignore_type_v3"}]}},"insert":{"yt":{"hints":[{"name":"truncate"},{"name":"compression_codec"},{"name":"erasure_codec"},{"name":"expiration"},{"name":"replication_factor"},{"name":"user_attrs"},{"name":"media"},{"name":"primary_medium"},{"name":"keep_meta"},{"name":"monotonic_keys"},{"name":"column_groups"},{"name":"security_tags"}]}},"replace":{},"upsert":{},"update":{},"delete":{},"create_table":{},"create_view":{}}
+{"read":{"yt":{"hints":[{"name":"infer_scheme"},{"name":"inferscheme"},{"name":"infer_schema"},{"name":"inferschema"},{"name":"force_infer_schema"},{"name":"forceinferschema"},{"name":"inline"},{"name":"xlock"},{"name":"unordered"},{"name":"non_unique"},{"name":"nonUnique"},{"name":"ignore_type_v3"},{"name":"ignoretypev3"}]}},"insert":{"yt":{"hints":[{"name":"truncate"},{"name":"compression_codec"},{"name":"compressioncodec"},{"name":"erasure_codec"},{"name":"erasurecodec"},{"name":"expiration"},{"name":"replication_factor"},{"name":"replicationfactor"},{"name":"user_attrs"},{"name":"userattrs"},{"name":"media"},{"name":"primary_medium"},{"name":"primarymedium"},{"name":"keep_meta"},{"name":"keepmeta"},{"name":"monotonic_keys"},{"name":"monotonickeys"},{"name":"column_groups"},{"name":"columngroups"},{"name":"security_tags"},{"name":"securitytags"}]}},"replace":{},"upsert":{},"update":{},"delete":{},"create_table":{},"create_view":{}}
diff --git a/yql/essentials/docs/en/builtins/list.md b/yql/essentials/docs/en/builtins/list.md
index 50b8182ee7a..fffa60aaf9c 100644
--- a/yql/essentials/docs/en/builtins/list.md
+++ b/yql/essentials/docs/en/builtins/list.md
@@ -322,7 +322,12 @@ Returns `true` for a list of Boolean values, if:
* `ListAny`: At least one element is `true`.
* `ListAll`: All elements are `true`.
-Otherwise, it returns false.
+Otherwise, it returns `false`.
+
+Results on an empty list:
+
+* `ListAny` returns `false`;
+* `ListAll` returns `true`.
#### Examples
diff --git a/yql/essentials/docs/ru/builtins/list.md b/yql/essentials/docs/ru/builtins/list.md
index 4e153ef7bf8..aad2f4e3a32 100644
--- a/yql/essentials/docs/ru/builtins/list.md
+++ b/yql/essentials/docs/ru/builtins/list.md
@@ -528,7 +528,12 @@ ListUniqStable(List<T>?)->List<T>?
* `ListAny` — хотя бы один элемент равен `true`;
* `ListAll` — все элементы равны `true`.
-В противном случае возвращает false.
+В противном случае возвращает `false`.
+
+Поведение на пустом списке:
+
+* `ListAny` возвращает `false`;
+* `ListAll` возвращает `true`.
#### Примеры
diff --git a/yql/essentials/docs/ru/syntax/group_by.md b/yql/essentials/docs/ru/syntax/group_by.md
index 4e1acc58968..2d5d3422356 100644
--- a/yql/essentials/docs/ru/syntax/group_by.md
+++ b/yql/essentials/docs/ru/syntax/group_by.md
@@ -19,7 +19,7 @@ GROUP BY
-- которое может быть использовано в SELECT
```
-Запрос вида `SELECT * FROM table GROUP BY k1, k2, ...` вернет все колонки, перечисленные в GROUP BY, то есть экивалентент запросу `SELECT DISTINCT k1, k2, ... FROM table`.
+Запрос вида `SELECT * FROM table GROUP BY k1, k2, ...` вернет все колонки, перечисленные в GROUP BY, то есть эквивалентен запросу `SELECT DISTINCT k1, k2, ... FROM table`.
Звездочка может также применяться в качестве аргумента агрегатной функции `COUNT`. `COUNT(*)` означает "число строк в группе".
@@ -101,8 +101,8 @@ GROUP BY user, SessionWindow(<time_expr>, <timeout_expr>) AS session_start
* `<order_expr>` – выражение по которому сортируется исходная партиция
* `<init_lambda>` – лямбда-функция для инициализации состояния расчета сессий. Имеет сигнатуру `(TableRow())->State`. Вызывается один раз на первом (по порядку сортировки) элементе исходной партиции
-* `<update_lambda>` – лямбда-функция для обновления состояния расчета сессий и определения границ сессий. Имеет сигнатуру `(TableRow(), State)->Tuple<Bool, State>`. Вызывается на каждом элементе исходной партиции, кроме первого. Новое значения состояния вычисляется на основе текущей строки таблицы и предыдущего состояния. Если первый элемент возвращенного кортежа имеет значение `True`, то с _текущей_ строки начнется новая сессия. Ключ новой сессии получается путем применения `<calculate_lambda>` ко второму элементу кортежа.
-* `<calculate_lambda>` – лямбда-функция для вычисления ключа сессии ("значения" SessionWindow(), которое также доступно через SessionStart()). Функция имеет сигнатуру `(TableRow(), State)->SessionKey`. Вызывается на первом элемента партиции (после `<init_lambda>`) и на тех элементах, для которых `<update_lambda>` вернула `True` в качестве первого элемента кортежа. Стоит отметить, что для начала новой сессии необходимо, чтобы `<calculate_lambda>` вернула значение, которое отличается от предыдущего ключа сессии. При этом сессии с одинаковыми ключами не объединяются. Например, если `<calculate_lambda>` последовательно возвращает `0, 1, 0, 1`, то это будут четыре различные сессии.
+* `<update_lambda>` – лямбда-функция для обновления состояния расчета сессий и определения границ сессий. Имеет сигнатуру `(TableRow(), State)->Tuple<Bool, State>`. Вызывается на каждом элементе исходной партиции, кроме первого. Новое значение состояния вычисляется на основе текущей строки таблицы и предыдущего состояния. Если первый элемент возвращенного кортежа имеет значение `True`, то с _текущей_ строки начнется новая сессия. Ключ новой сессии получается путем применения `<calculate_lambda>` ко второму элементу кортежа.
+* `<calculate_lambda>` – лямбда-функция для вычисления ключа сессии ("значения" SessionWindow(), которое также доступно через SessionStart()). Функция имеет сигнатуру `(TableRow(), State)->SessionKey`. Вызывается на первом элементе партиции (после `<init_lambda>`) и на тех элементах, для которых `<update_lambda>` вернула `True` в качестве первого элемента кортежа. Стоит отметить, что для начала новой сессии необходимо, чтобы `<calculate_lambda>` вернула значение, которое отличается от предыдущего ключа сессии. При этом сессии с одинаковыми ключами не объединяются. Например, если `<calculate_lambda>` последовательно возвращает `0, 1, 0, 1`, то это будут четыре различные сессии.
С помощью расширенного варианта SessionWindow можно решить, например, такую задачу: разделить партицию на сессии как в варианте SessionWindow с двумя аргументами, но с ограничением максимальной длины сессии некоторой константой:
diff --git a/yql/essentials/docs/ru/syntax/join.md b/yql/essentials/docs/ru/syntax/join.md
index bcbdd9a4652..84c7cffadcc 100644
--- a/yql/essentials/docs/ru/syntax/join.md
+++ b/yql/essentials/docs/ru/syntax/join.md
@@ -24,26 +24,26 @@ WHERE ...
{% note warning "Внимание" %}
-Так как колонки в YQL идентифицируются по именам, и в выборке не может быть двух колонок с одинаковыми именами, `SELECT * FROM ... JOIN ...` не может быть исполнен при наличии колонок с одинаковыми именами в объединяемых таблицах.
+Так как колонки в YQL идентифицируются по именам и в выборке не может быть двух колонок с одинаковыми именами, `SELECT * FROM ... JOIN ...` не может быть исполнен при наличии колонок с одинаковыми именами в объединяемых таблицах.
{% endnote %}
## Типы объединения (Join_Type)
-* `INNER` <span style="color: gray;">(по умолчанию)</span> — Строки объединяемых выборок, для которых не найдено соответствие ни с одной строкой с другой стороны, не попадут в результат.
-* `LEFT` - При отсутствии значения в присоединяемой выборке включает строку в результат со значениям колонок из исходной выборки, оставляя пустыми (`NULL`) колонки присоединяемой выборки
-* `RIGHT` - При отсутствии значения в исходной выборке включает строку в результат со значениям колонок из присоединяемой выборки, оставляя пустыми (`NULL`) колонки исходной выборки
+* `INNER` <span style="color: gray;">(по умолчанию)</span> &mdash; строки объединяемых выборок, для которых не найдено соответствие ни с одной строкой с другой стороны, не попадут в результат.
+* `LEFT` &mdash; при отсутствии значения в присоединяемой выборке включает строку в результат со значениями колонок из исходной выборки, оставляя пустыми (`NULL`) колонки присоединяемой выборки.
+* `RIGHT` &mdash; при отсутствии значения в исходной выборке включает строку в результат со значениям колонок из присоединяемой выборки, оставляя пустыми (`NULL`) колонки исходной выборки.
* `FULL` = `LEFT` + `RIGHT`
-* `LEFT/RIGHT SEMI` — одна сторона выступает как белый список (whitelist) ключей, её значения недоступны. В результат включаются столбцы только из одной таблицы, декартового произведения не возникает;
-* `LEFT/RIGHT ONLY` — вычитание множеств по ключам (blacklist). Практически эквивалентно добавлению условия `IS NULL` на ключ противоположной стороны в обычном `LEFT/RIGHT`, но, как и в `SEMI`, нет доступа к значениям;
-* `CROSS` — декартово произведение двух таблиц целиком без указания ключевых колонок, секция с `ON/USING` явно не пишется;
-* `EXCLUSION` — обе стороны минус пересечение.
+* `LEFT/RIGHT SEMI` &mdash; одна сторона выступает как белый список (whitelist) ключей, её значения недоступны. В результат включаются столбцы только из одной таблицы, декартового произведения не возникает.
+* `LEFT/RIGHT ONLY` &mdash; вычитание множеств по ключам (blacklist). Практически эквивалентно добавлению условия `IS NULL` на ключ противоположной стороны в обычном `LEFT/RIGHT`, но, как и в `SEMI`, нет доступа к значениям.
+* `CROSS` &mdash; декартово произведение двух таблиц целиком без указания ключевых колонок, секция с `ON/USING` явно не пишется.
+* `EXCLUSION` &mdash; обе стороны минус пересечение.
![JOIN](_assets/join-YQL-06.png)
{% note info %}
-`NULL` является особым значением, которое ничему не равно. Таким образом, `NULL` с двух сторон не считаются равными друг другу. Это избавляет от неоднозначности в некоторых типах `JOIN`, а также от гигантского декартового произведения, которое часто возникает в противном случае.
+`NULL` является особым значением, которое ничему не равно. Таким образом, значения `NULL` с двух сторон не считаются равными друг другу. Это избавляет от неоднозначности в некоторых типах `JOIN`, а также от гигантского декартового произведения, которое часто возникает в противном случае.
{% endnote %}
@@ -96,6 +96,7 @@ INNER JOIN b_table VIEW b_index_ref AS b ON a.ref = b.ref;
Если в выражении помимо `JOIN` выполняется фильтрация данных, то рекомендуется обернуть те условия, про которые известно, что они вернут `true` для большинства строк, в вызов функции `LIKELY(...)`. Если предположение о преобладании положительных значений в условии окажется верно, такая подсказка может положительно сказаться на времени выполнения запроса. Также `LIKELY` может быть полезен в том случае, когда вычисление предиката ресурсоёмко и при этом сам JOIN значительно сокращает число строк.
Перед любым источником данных для `JOIN` можно указать ключевое слово `ANY`, которое служит для подавления дубликатов по ключам `JOIN` с соответствующей стороны. В этом случае из множества строк с одинаковым значением ключей `JOIN` остается только одна (не уточняется какая именно – отсюда и название `ANY`).
+
Данный синтаксис отличается от принятого в [ClickHouse](https://clickhouse.tech/docs/ru/sql-reference/statements/select/join/), где `ANY` пишется перед типом `JOIN` и работает только для правой стороны.
Запрос
diff --git a/yql/essentials/docs/ru/syntax/pragma.md b/yql/essentials/docs/ru/syntax/pragma.md
index 6c9584fc58b..4b380de4a1a 100644
--- a/yql/essentials/docs/ru/syntax/pragma.md
+++ b/yql/essentials/docs/ru/syntax/pragma.md
@@ -15,6 +15,8 @@
* `Kb`, `Mb`, `Gb` — для объема информации.
* `sec`, `min`, `h`, `d` — для временных значений.
+За некоторым исключением, значение настроек можно вернуть в состояние по умолчанию с помощью `PRAGMA my_pragma = default;`.
+
### Примеры
```yql
@@ -29,16 +31,15 @@ PRAGMA TablePathPrefix = "home/yql";
PRAGMA Warning("disable", "1101");
```
-За некоторым исключением, значение настроек можно вернуть в состояние по умолчанию с помощью `PRAGMA my_pragma = default;`.
-
Полный список доступных настроек [см. в таблице ниже](#pragmas).
### Область действия {#pragmascope}
-Если не указано иное, прагма влияет на все идущие следом выражения вплоть до конца модуля, в котором она встречается.
-При необходимости и логической возможности допустимо менять значение настройки несколько раз в одном запросе, чтобы оно было разным на разных этапах выполнения.
+Если не указано иное, прагма влияет на все идущие следом выражения вплоть до конца модуля, в котором она встречается. При необходимости и логической возможности можно менять значение настройки несколько раз в одном запросе, чтобы оно было разным на разных этапах выполнения.
+
Существуют также специальные scoped прагмы, область действия которых определяется по тем же правилам, что и область видимости [именованных выражений](expressions.md#named-nodes).
-В отличие от scoped прагм, обычные прагмы могут использоваться только в глобальной области видимости (не внутри лямбда-функций, ACTION, SUBQUERY и т.п.).
+
+В отличие от scoped прагм, обычные прагмы могут использоваться только в глобальной области видимости (не внутри [DEFINE ACTION](action.md#define-action) и [DEFINE SUBQUERY](subquery.md#define-subquery)).
## Глобальные {#pragmas}
@@ -70,11 +71,11 @@ SELECT * FROM test;
| Тип значения | По умолчанию | Статическая /<br/>динамическая |
| --- | --- | --- |
| Строка | — | Статическая |
-| Строка - имя префикса, добавляемого ко всем модулям | "" | Статическая |
+| Строка &mdash; имя префикса, добавляемого ко всем модулям | "" | Статическая |
+
+Импорт всех UDF из указанной библиотеки. Чтобы прагма сработала, библиотеку необходимо приложить к запросу. Обратите внимание: библиотека должна быть разделяемой (.so) и она должна быть скомпилирована под Linux x64.
-Импорт всех UDF из указанной приложенной к запросу скомпилированной под Linux x64 разделяемой библиотеки (.so).
-При указании префикса, он добавляется перед названием всех загруженных модулей, например, CustomPrefixIp::IsIPv4 вместо Ip::IsIPv4.
-Указание префикса позволяет подгрузить одну и ту же UDF разных версий.
+При указании префикса, он добавляется перед названием всех загруженных модулей, например, CustomPrefixIp::IsIPv4 вместо Ip::IsIPv4. Указание префикса позволяет подгрузить одну и ту же UDF разных версий.
### RuntimeLogLevel {#runtime-log-level}
@@ -112,9 +113,7 @@ SELECT * FROM test;
`PRAGMA Warning("disable", "1101");`
`PRAGMA Warning("default", "4503");`
-В данном случае все предупреждения будут считаться ошибками, за исключением предупреждение с кодом `1101`, которое будет отключено, и `4503`, которое будет обрабатываться по умолчанию (то есть останется предупреждением). Поскольку предупреждения могут добавляться в новых релизах YQL, следует с осторожностью пользоваться конструкцией `PRAGMA Warning("error", "*");` (как минимум покрывать такие запросы автотестами).
-
-
+В данном случае все предупреждения будут считаться ошибками, за исключением предупреждения с кодом `1101`, которое будет отключено, и `4503`, которое будет обрабатываться по умолчанию (то есть останется предупреждением). Поскольку предупреждения могут добавляться в новых релизах YQL, следует с осторожностью пользоваться конструкцией `PRAGMA Warning("error", "*");` (как минимум покрывать такие запросы автотестами).
### Greetings {#greetings}
@@ -124,8 +123,7 @@ SELECT * FROM test;
Выдать указанный текст в качестве Info сообщения запроса.
-Пример:
-`PRAGMA Greetings("It's a good day!");`
+Пример: `PRAGMA Greetings("It's a good day!");`
### WarningMsg {#warningmsg}
@@ -158,7 +156,7 @@ SELECT * FROM test;
| --- | --- |
| Флаг | true |
-Управляет неявным Coalesce для ключевых колонок `JOIN` в режиме SimpleColumns. Если флаг установлен, то Coalesce ключевых колонок происходит при наличии хотя бы одного выражения вида `foo.*` или `*` в SELECT - например `SELECT a.* FROM T1 AS a JOIN T2 AS b USING(key)`. Если флаг сброшен, то Coalesce ключей JOIN происходит только при наличии '*' после `SELECT`
+Управляет неявным Coalesce для ключевых колонок `JOIN` в режиме SimpleColumns. Если флаг установлен, то Coalesce ключевых колонок происходит при наличии хотя бы одного выражения вида `foo.*` или `*` в SELECT &mdash; например `SELECT a.* FROM T1 AS a JOIN T2 AS b USING(key)`. Если флаг сброшен, то Coalesce ключей JOIN происходит только при наличии '*' после `SELECT`.
### StrictJoinKeyTypes
@@ -170,8 +168,10 @@ SELECT * FROM test;
Если флаг установлен, то [JOIN](join.md) будет требовать строгого совпадения типов ключей.
По умолчанию JOIN предварительно конвертирует ключи к общему типу, что может быть нежелательно с точки зрения производительности.
+
StrictJoinKeyTypes является [scoped](#pragmascope) настройкой.
+
### AnsiInForEmptyOrNullableItemsCollections
| Тип значения | По умолчанию |
@@ -184,7 +184,7 @@ StrictJoinKeyTypes является [scoped](#pragmascope) настройкой.
`NULL IN () = Just(False) (было NULL)`
`(1, null) IN ((2, 2), (3, 3)) = Just(False) (было NULL)`
-Подробнее про поведение `IN` при наличии `NULL`ов в операндах можно почитать [здесь](expressions.md#in). Явным образом выбрать старое поведение можно указав прагму `DisableAnsiInForEmptyOrNullableItemsCollections`. Если никакой прагмы не задано, то выдается предупреждение и работает старый вариант.
+Подробнее про поведение `IN` при наличии NULL-ов в операндах можно почитать [здесь](expressions.md#in). Явным образом выбрать старое поведение можно, указав прагму `DisableAnsiInForEmptyOrNullableItemsCollections`. Если никакой прагмы не задано, то выдается предупреждение и работает старый вариант.
### AnsiRankForNullableKeys
@@ -197,7 +197,7 @@ StrictJoinKeyTypes является [scoped](#pragmascope) настройкой.
* типом результата всегда является Uint64, а не Uint64?;
* null-ы в ключах считаются равными друг другу (текущая реализация возвращает NULL).
-Явным образом выбрать старое поведению можно указав прагму `DisableAnsiRankForNullableKeys`. Если никакой прагмы не задано, то выдается предупреждение и работает старый вариант.
+Явным образом выбрать старое поведение можно, указав прагму `DisableAnsiRankForNullableKeys`. Если никакой прагмы не задано, то выдается предупреждение и работает старый вариант.
### AnsiCurrentRow
@@ -205,9 +205,10 @@ StrictJoinKeyTypes является [scoped](#pragmascope) настройкой.
| --- | --- |
| Флаг | false |
-Приводит неявное задание рамки окна при наличии ORDER BY в соответствие со стандартом.
-Если AnsiCurrentRow не установлен, то окно `(ORDER BY key)` эквивалентно `(ORDER BY key ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)`.
-Стандарт же требует, чтобы такое окно вело себя как `(ORDER BY key RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)`.
+Приводит неявное задание рамки окна при наличии [ORDER BY](select/order_by.md) в соответствие со стандартом.
+
+Если AnsiCurrentRow не установлен, то окно `(ORDER BY key)` эквивалентно `(ORDER BY key ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)`. Стандарт же требует, чтобы такое окно вело себя как `(ORDER BY key RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)`.
+
Разница состоит в трактовке `CURRENT ROW`. В режиме `ROWS` `CURRENT ROW` трактуется буквально – текущая строка в партиции.
А в режиме `RANGE` конец рамки `CURRENT ROW` означает "последняя строка в партиции с ключом сортировки, равным текущей строке".
@@ -219,8 +220,7 @@ StrictJoinKeyTypes является [scoped](#pragmascope) настройкой.
### PositionalUnionAll {#positionalunionall}
-Включить соответствующий стандарту поколоночный режим выполнения [UNION ALL](select/index.md#unionall). При этом автоматически включается
-[упорядоченность колонок](#orderedcolumns).
+Включить соответствующий стандарту поколоночный режим выполнения [UNION ALL](select/index.md#unionall). При этом автоматически включается [упорядоченность колонок](#orderedcolumns).
### RegexUseRe2
@@ -236,9 +236,9 @@ StrictJoinKeyTypes является [scoped](#pragmascope) настройкой.
| --- | --- |
| Флаг | true |
-В классическом варианте результат целочисленного деления остаётся целочисленным (по умолчанию).
-Если отключить — результат всегда становится Double.
-ClassicDivision является [scoped](#pragmascope) настройкой.
+В классическом варианте результат целочисленного деления остается целочисленным (по умолчанию). Если отключить &mdash; результат всегда становится Double.
+
+`ClassicDivision` является [scoped](#pragmascope) настройкой.
### CheckedOps
@@ -246,10 +246,11 @@ ClassicDivision является [scoped](#pragmascope) настройкой.
| --- | --- |
| Флаг | false |
-При включенном режиме если в результате выполнения агрегационных функций SUM/SUM_IF, бинарных операций `+`,`-`,`*`,`/`,`%` или унарной операции `-` над целыми числами происходит выход за границы целевого типа аргументов или результата, то возвращается `NULL`.
-Если отключить - переполнение не проверяется.
+При включенном режиме: если в результате выполнения агрегационных функций SUM/SUM_IF, бинарных операций `+`,`-`,`*`,`/`,`%` или унарной операции `-` над целыми числами происходит выход за границы целевого типа аргументов или результата, то возвращается `NULL`. Если отключить &mdash; переполнение не проверяется.
+
Не влияет на операции с числами с плавающей точкой или `Decimal`.
-CheckedOps является [scoped](#pragmascope) настройкой.
+
+`CheckedOps` является [scoped](#pragmascope) настройкой.
### UnicodeLiterals
@@ -259,8 +260,9 @@ CheckedOps является [scoped](#pragmascope) настройкой.
| --- | --- |
| Флаг | false |
-При включенном режиме строковые литералы без суффиксов вида "foo"/'bar'/@@multiline@@ будут иметь тип `Utf8`, при выключенном - `String`.
-UnicodeLiterals является [scoped](#pragmascope) настройкой.
+При включенном режиме строковые литералы без суффиксов вида "foo"/'bar'/@@multiline@@ будут иметь тип `Utf8`, при выключенном &mdash; `String`.
+
+`UnicodeLiterals` является [scoped](#pragmascope) настройкой.
### WarnUntypedStringLiterals
@@ -271,7 +273,8 @@ UnicodeLiterals является [scoped](#pragmascope) настройкой.
| Флаг | false |
При включенном режиме для строковых литералов без суффиксов вида "foo"/'bar'/@@multiline@@ будет генерироваться предупреждение. Его можно подавить, если явно выбрать суффикс `s` для типа `String`, либо `u` для типа `Utf8`.
-WarnUntypedStringLiterals является [scoped](#pragmascope) настройкой.
+
+`WarnUntypedStringLiterals` является [scoped](#pragmascope) настройкой.
### AllowDotInAlias
@@ -279,7 +282,7 @@ WarnUntypedStringLiterals является [scoped](#pragmascope) настрой
| --- | --- |
| Флаг | false |
-Разрешить использовать точку в именах результирующих колонок. По умолчанию отключено, т.к. дальнейшее использование таких колонок в JOIN полностью не реализовано.
+Разрешить использовать точку в именах результирующих колонок. По умолчанию отключено, т. к. дальнейшее использование таких колонок в JOIN полностью не реализовано.
### WarnUnnamedColumns
@@ -287,7 +290,7 @@ WarnUntypedStringLiterals является [scoped](#pragmascope) настрой
| --- | --- |
| Флаг | false |
-Генерировать предупреждение если для безымянного выражения в `SELECT` было автоматически сгенерировано имя колонки (вида `column[0-9]+`).
+Генерировать предупреждение, если для безымянного выражения в `SELECT` было автоматически сгенерировано имя колонки (вида `column[0-9]+`).
### GroupByLimit
@@ -295,7 +298,7 @@ WarnUntypedStringLiterals является [scoped](#pragmascope) настрой
| --- | --- |
| Положительное число | 32 |
-Увеличение лимита на число группировок в [GROUP BY](group_by.md).
+Увеличение лимита на число группировок в [GROUP BY](group_by.md).
### GroupByCubeLimit
@@ -310,7 +313,7 @@ WarnUntypedStringLiterals является [scoped](#pragmascope) настрой
## Yson
-Управление поведением Yson UDF по умолчанию, подробнее см. в [документации по ней](../udf/list/yson.md) и в частности [Yson::Options](../udf/list/yson.md#ysonoptions).
+Управление поведением Yson UDF по умолчанию, подробнее см. в [документации](../udf/list/yson.md) и в частности [Yson::Options](../udf/list/yson.md#ysonoptions).
### `yson.AutoConvert`
@@ -318,7 +321,7 @@ WarnUntypedStringLiterals является [scoped](#pragmascope) настрой
| --- | --- |
| Флаг | false |
-Автоматическое конвертация значений в требуемый тип данных во всех вызовах Yson UDF, в том числе и неявных.
+Автоматическая конвертация значений в требуемый тип данных во всех вызовах Yson UDF, в том числе и неявных.
### `yson.Strict`
@@ -326,7 +329,7 @@ WarnUntypedStringLiterals является [scoped](#pragmascope) настрой
| --- | --- |
| Флаг | true |
-Управление строгим режимом во всех вызовах Yson UDF, в том числе и неявных. Без значения или при значении `"true"` - включает строгий режим. Со значением `"false"` - отключает.
+Управление строгим режимом во всех вызовах Yson UDF, в том числе и неявных. Без значения или при значении `"true"` &mdash; включает строгий режим. Со значением `"false"` &mdash; отключает.
### `yson.DisableStrict`
@@ -334,7 +337,8 @@ WarnUntypedStringLiterals является [scoped](#pragmascope) настрой
| --- | --- |
| Флаг | false |
-Инвертированная версия `yson.Strict`. Без значения или при значении `"true"` - отключает строгий режим. Со значением `"false"` - включает.
+Инвертированная версия `yson.Strict`. Без значения или при значении `"true"` &mdash; отключает строгий режим. Со значением `"false"` &mdash; включает.
+
## Работа с файлами
@@ -354,8 +358,7 @@ WarnUntypedStringLiterals является [scoped](#pragmascope) настрой
|-------------------------------------------------|--------------|--------------------------------|
| Три строковых аргумента — алиас, ключ, значение | — | Статическая |
-Установить у указанного файла опцию по заданному ключу в заданное значение. Файл с этим алиасом уже должен быть объявлен
-через [PRAGMA File](#file) или приложен к запросу.
+Установить для указанного файла опцию по заданному ключу в заданное значение. Файл с этим алиасом уже должен быть объявлен через [PRAGMA File](#file) или приложен к запросу.
@@ -373,7 +376,7 @@ WarnUntypedStringLiterals является [scoped](#pragmascope) настрой
| Тип значения | По умолчанию | Статическая /<br/>динамическая |
| --- | --- | --- |
-| Один или два аргумента - имя файла и опциональный URL | — | Статическая |
+| Один или два аргумента &mdash; имя файла и опциональный URL | — | Статическая |
Интерпретировать указанный приложенный файл как библиотеку, из которой можно делать [IMPORT](export_import.md). Тип синтаксиса библиотеки определяется по расширению файла:
* `.sql` для YQL диалекта SQL <span style="color: green;">(рекомендуется)</span>;
@@ -408,13 +411,13 @@ SELECT $x;
| Тип значения | По умолчанию | Статическая /<br/>динамическая |
| --- | --- | --- |
-| Два или три аргумента - имя пакета, URL и опциональный токен | — | Статическая |
+| Два или три аргумента &mdash; имя пакета, URL и опциональный токен | — | Статическая |
-Приложить иерархический набор файлов к запросу по URL, интерпретируя их в качестве пакета с указанным именем - взаимосвязанного набора библиотек.
+Приложить иерархический набор файлов к запросу по URL, интерпретируя их в качестве пакета с указанным именем &mdash; взаимосвязанного набора библиотек.
-Имя пакета ожидается в формате ``project_name.package_name``; из библиотек пакета в дальнейшнем можно делать [IMPORT](export_import.md) с именем модуля вида ``pkg.project_name.package_name.maybe.nested.module.name``.
+Имя пакета ожидается в формате ``project_name.package_name``; из библиотек пакета в дальнейшем можно делать [IMPORT](export_import.md) с именем модуля вида ``pkg.project_name.package_name.maybe.nested.module.name``.
-Пример для пакета с плоской иерархией, состоящего из двух библиотек - foo.sql и bar.sql:
+Пример для пакета с плоской иерархией, состоящего из двух библиотек &mdash; foo.sql и bar.sql:
```yql
PRAGMA package("project.package", "http://intranet.site/path/to/package");
@@ -437,7 +440,7 @@ SELECT $foo, $bar;
| Тип значения | По умолчанию | Статическая /<br/>динамическая |
| --- | --- | --- |
-| Один аргумент - имя файла | — | Статическая |
+| Один аргумент &mdash; имя файла | — | Статическая |
Интерпретировать указанный приложенный файл как библиотеку и перекрыть ей одну из библиотек пакета.
diff --git a/yql/essentials/minikql/codegen/codegen_ut.cpp b/yql/essentials/minikql/codegen/codegen_ut.cpp
index 9ac6030358d..5d96b342017 100644
--- a/yql/essentials/minikql/codegen/codegen_ut.cpp
+++ b/yql/essentials/minikql/codegen/codegen_ut.cpp
@@ -8,6 +8,12 @@
using namespace NYql::NCodegen;
using namespace llvm;
+#ifdef _win_
+constexpr bool SupportsBitCode = false;
+#else
+constexpr bool SupportsBitCode = true;
+#endif
+
extern "C" int mul(int x, int y) {
return x * y;
}
@@ -268,6 +274,10 @@ Y_UNIT_TEST_SUITE(TCodegenTests) {
}
Y_UNIT_TEST(FibFromBitCode) {
+ if (!SupportsBitCode) {
+ return;
+ }
+
auto codegen = ICodegen::Make(ETarget::Native);
auto bitcode = NResource::Find("/llvm_bc/Funcs");
codegen->LoadBitCode(bitcode, "Funcs");
@@ -281,6 +291,10 @@ Y_UNIT_TEST_SUITE(TCodegenTests) {
}
Y_UNIT_TEST(LinkWithNativeFunction) {
+ if (!SupportsBitCode) {
+ return;
+ }
+
auto codegen = ICodegen::Make(ETarget::Native);
auto bitcode = NResource::Find("/llvm_bc/Funcs");
codegen->LoadBitCode(bitcode, "Funcs");
@@ -295,6 +309,10 @@ Y_UNIT_TEST_SUITE(TCodegenTests) {
}
Y_UNIT_TEST(LinkWithGeneratedFunction) {
+ if (!SupportsBitCode) {
+ return;
+ }
+
auto codegen = ICodegen::Make(ETarget::Native);
auto mulFunc = CreateMulFunction(codegen->GetModule(), codegen->GetContext());
Y_UNUSED(mulFunc);
@@ -310,6 +328,10 @@ Y_UNIT_TEST_SUITE(TCodegenTests) {
}
Y_UNIT_TEST(ReuseExternalCode) {
+ if (!SupportsBitCode) {
+ return;
+ }
+
auto codegen = ICodegen::Make(ETarget::Native);
auto bitcode = NResource::Find("/llvm_bc/Funcs");
codegen->LoadBitCode(bitcode, "Funcs");
@@ -323,6 +345,10 @@ Y_UNIT_TEST_SUITE(TCodegenTests) {
}
Y_UNIT_TEST(UseObjectReference) {
+ if (!SupportsBitCode) {
+ return;
+ }
+
auto codegen = ICodegen::Make(ETarget::Native);
auto bitcode = NResource::Find("/llvm_bc/Funcs");
codegen->LoadBitCode(bitcode, "Funcs");
@@ -349,6 +375,10 @@ Y_UNIT_TEST_SUITE(TCodegenTests) {
}
Y_UNIT_TEST(UseExternalFromGeneratedFunction) {
+ if (!SupportsBitCode) {
+ return;
+ }
+
auto codegen = ICodegen::Make(ETarget::Native);
auto bitcode = NResource::Find("/llvm_bc/Funcs");
codegen->LoadBitCode(bitcode, "Funcs");
@@ -363,6 +393,10 @@ Y_UNIT_TEST_SUITE(TCodegenTests) {
}
Y_UNIT_TEST(UseExternalFromGeneratedFunction_128bit_Compiled) {
+ if (!SupportsBitCode) {
+ return;
+ }
+
auto codegen = ICodegen::Make(ETarget::Native);
auto bitcode = NResource::Find("/llvm_bc/Funcs");
codegen->LoadBitCode(bitcode, "Funcs");
@@ -389,6 +423,10 @@ Y_UNIT_TEST_SUITE(TCodegenTests) {
}
Y_UNIT_TEST(UseExternalFromGeneratedFunction_128bit_Bitcode) {
+ if (!SupportsBitCode) {
+ return;
+ }
+
auto codegen = ICodegen::Make(ETarget::Native);
auto bitcode = NResource::Find("/llvm_bc/Funcs");
codegen->LoadBitCode(bitcode, "Funcs");
diff --git a/yql/essentials/minikql/codegen/ut/ya.make.inc b/yql/essentials/minikql/codegen/ut/ya.make.inc
index 0d658075fe6..c1eacbb2b6e 100644
--- a/yql/essentials/minikql/codegen/ut/ya.make.inc
+++ b/yql/essentials/minikql/codegen/ut/ya.make.inc
@@ -24,23 +24,25 @@ COPY_FILE(
SRCDIR(yql/essentials/minikql/codegen/ut)
IF (OS_WINDOWS)
- LLVM_BC(
- fib.cpp
- sum_sqr.cpp
- sum_sqr2.cpp
- str.cpp
- 128_bit.cpp
- 128_bit_win.ll
- NAME Funcs
- SUFFIX .${LLVM_VER}
- SYMBOLS
- fib
- sum_sqr
- sum_sqr2
- sum_sqr_128
- sum_sqr_128_ir
- str_size
- )
+ PEERDIR(library/cpp/resource)
+ # FIXME: llvm18
+ #LLVM_BC(
+ # fib.cpp
+ # sum_sqr.cpp
+ # sum_sqr2.cpp
+ # str.cpp
+ # 128_bit.cpp
+ # 128_bit_win.ll
+ # NAME Funcs
+ # SUFFIX .${LLVM_VER}
+ # SYMBOLS
+ # fib
+ # sum_sqr
+ # sum_sqr2
+ # sum_sqr_128
+ # sum_sqr_128_ir
+ # str_size
+ #)
ELSE()
LLVM_BC(
fib.cpp
diff --git a/yql/essentials/minikql/comp_nodes/mkql_block_map_join.cpp b/yql/essentials/minikql/comp_nodes/mkql_block_map_join.cpp
index 17c549202ce..e37a1874f2c 100644
--- a/yql/essentials/minikql/comp_nodes/mkql_block_map_join.cpp
+++ b/yql/essentials/minikql/comp_nodes/mkql_block_map_join.cpp
@@ -26,11 +26,11 @@ size_t CalcMaxBlockLength(const TVector<TType*>& items) {
}));
}
-ui64 CalculateTupleHash(const std::vector<ui64>& hashes) {
+TMaybe<ui64> CalculateTupleHash(const std::vector<NYql::NUdf::TBlockItem>& items, const std::vector<ui64>& hashes) {
ui64 hash = 0;
for (size_t i = 0; i < hashes.size(); i++) {
- if (!hashes[i]) {
- return 0;
+ if (!items[i]) {
+ return {};
}
hash = CombineHashes(hash, hashes[i]);
@@ -315,57 +315,66 @@ public:
TBlockStorage(
TMemoryUsageInfo* memInfo,
- const TVector<TType*>& itemTypes,
- NUdf::TUnboxedValue stream,
+ const TVector<TType*>& types,
+ size_t blockLengthIndex,
+ NUdf::TUnboxedValue listIter,
TStringBuf resourceTag,
arrow::MemoryPool* pool
)
: TBase(memInfo)
- , InputsDescr_(ToValueDescr(itemTypes))
- , Stream_(std::move(stream))
- , Inputs_(itemTypes.size())
+ , InputsDescr_(ToValueDescr(types))
+ , Readers_(types.size())
+ , Hashers_(types.size())
+ , Comparators_(types.size())
+ , Trimmers_(types.size())
+ , ListIter_(std::move(listIter))
+ , BlockLengthIndex_(blockLengthIndex)
, ResourceTag_(std::move(resourceTag))
{
TBlockTypeHelper helper;
- for (size_t i = 0; i < itemTypes.size(); i++) {
- TType* blockItemType = AS_TYPE(TBlockType, itemTypes[i])->GetItemType();
- Readers_.push_back(MakeBlockReader(TTypeInfoHelper(), blockItemType));
- Hashers_.push_back(helper.MakeHasher(blockItemType));
- Comparators_.push_back(helper.MakeComparator(blockItemType));
- Trimmers_.push_back(MakeBlockTrimmer(TTypeInfoHelper(), blockItemType, pool));
+ for (size_t i = 0; i < types.size(); i++) {
+ if (i == BlockLengthIndex_) {
+ continue;
+ }
+
+ TType* blockItemType = AS_TYPE(TBlockType, types[i])->GetItemType();
+ Readers_[i] = MakeBlockReader(TTypeInfoHelper(), blockItemType);
+ Hashers_[i] = helper.MakeHasher(blockItemType);
+ Comparators_[i] = helper.MakeComparator(blockItemType);
+ Trimmers_[i] = MakeBlockTrimmer(TTypeInfoHelper(), blockItemType, pool);
}
}
- NUdf::EFetchStatus FetchStream() {
- switch (Stream_.WideFetch(Inputs_.data(), Inputs_.size())) {
- case NUdf::EFetchStatus::Yield:
- return NUdf::EFetchStatus::Yield;
- case NUdf::EFetchStatus::Finish:
+ bool FetchNextBlock() {
+ if (!ListIter_.Next(Block_)) {
IsFinished_ = true;
- return NUdf::EFetchStatus::Finish;
- case NUdf::EFetchStatus::Ok:
- break;
+ return false;
}
+ BlockItems_ = Block_.GetElements();
Y_ENSURE(!IsFinished_, "Got data on finished stream");
- std::vector<arrow::Datum> blockColumns;
- for (size_t i = 0; i < Inputs_.size() - 1; i++) {
- auto& datum = TArrowBlock::From(Inputs_[i]).GetDatum();
+ std::vector<arrow::Datum> blockColumns(Readers_.size());
+ for (size_t i = 0; i < Readers_.size(); i++) {
+ if (i == BlockLengthIndex_) {
+ continue;
+ }
+
+ auto& datum = TArrowBlock::From(BlockItems_[i]).GetDatum();
ARROW_DEBUG_CHECK_DATUM_TYPES(InputsDescr_[i], datum.descr());
if (datum.is_scalar()) {
- blockColumns.push_back(datum);
+ blockColumns[i] = datum;
} else {
MKQL_ENSURE(datum.is_array(), "Expecting array");
- blockColumns.push_back(Trimmers_[i]->Trim(datum.array()));
+ blockColumns[i] = Trimmers_[i]->Trim(datum.array());
}
}
- auto blockSize = ::GetBlockCount(Inputs_[Inputs_.size() - 1]);
+ auto blockSize = ::GetBlockCount(BlockItems_[BlockLengthIndex_]);
Data_.emplace_back(blockSize, std::move(blockColumns));
RowCount_ += blockSize;
- return NUdf::EFetchStatus::Ok;
+ return true;
}
const TBlock& GetBlock(size_t blockOffset) const {
@@ -392,11 +401,11 @@ public:
}
TBlockItem GetItem(TRowEntry entry, ui32 columnIdx) const {
- Y_ENSURE(columnIdx < Inputs_.size() - 1);
return GetItemFromBlock(GetBlock(entry.BlockOffset), columnIdx, entry.ItemOffset);
}
TBlockItem GetItemFromBlock(const TBlock& block, ui32 columnIdx, size_t offset) const {
+ Y_ENSURE(columnIdx < Readers_.size() && columnIdx != BlockLengthIndex_);
Y_ENSURE(offset < block.Size);
const auto& datum = block.Columns[columnIdx];
if (datum.is_scalar()) {
@@ -447,8 +456,11 @@ protected:
size_t RowCount_ = 0;
bool IsFinished_ = false;
- NUdf::TUnboxedValue Stream_;
- TUnboxedValueVector Inputs_;
+ NUdf::TUnboxedValue ListIter_;
+ NUdf::TUnboxedValue Block_;
+ const NUdf::TUnboxedValue* BlockItems_ = nullptr;
+
+ size_t BlockLengthIndex_ = 0;
const TStringBuf ResourceTag_;
};
@@ -459,20 +471,29 @@ class TBlockStorageWrapper : public TMutableComputationNode<TBlockStorageWrapper
public:
TBlockStorageWrapper(
TComputationMutables& mutables,
- TVector<TType*>&& itemTypes,
- IComputationNode* stream,
+ TStructType* structType,
+ IComputationNode* list,
const TStringBuf& resourceTag
)
: TBaseComputation(mutables, EValueRepresentation::Boxed)
- , ItemTypes_(std::move(itemTypes))
- , Stream_(stream)
+ , List_(list)
, ResourceTag_(resourceTag)
- {}
+ {
+ for (size_t i = 0; i < structType->GetMembersCount(); i++) {
+ if (structType->GetMemberName(i) == NYql::BlockLengthColumnName) {
+ BlockLengthIndex_ = i;
+ Types_.push_back(nullptr);
+ continue;
+ }
+ Types_.push_back(structType->GetMemberType(i));
+ }
+ }
NUdf::TUnboxedValuePod DoCalculate(TComputationContext& ctx) const {
return ctx.HolderFactory.Create<TBlockStorage>(
- ItemTypes_,
- std::move(Stream_->GetValue(ctx)),
+ Types_,
+ BlockLengthIndex_,
+ List_->GetValue(ctx).GetListIterator(),
ResourceTag_,
&ctx.ArrowMemoryPool
);
@@ -480,12 +501,14 @@ public:
private:
void RegisterDependencies() const final {
- DependsOn(Stream_);
+ DependsOn(List_);
}
private:
- const TVector<TType*> ItemTypes_;
- IComputationNode* const Stream_;
+ TVector<TType*> Types_;
+ size_t BlockLengthIndex_ = 0;
+
+ IComputationNode* const List_;
const TString ResourceTag_;
};
@@ -750,13 +773,13 @@ public:
Y_ENSURE(blockOffset <= std::numeric_limits<ui32>::max());
Y_ENSURE(blockSize <= std::numeric_limits<ui32>::max());
for (size_t itemOffset = 0; itemOffset < blockSize; itemOffset++) {
- ui64 keyHash = GetKey(block, itemOffset, insertBatchKeys[insertBatchLen]);
+ auto keyHash = GetKey(block, itemOffset, insertBatchKeys[insertBatchLen]);
if (!keyHash) {
continue;
}
insertBatchEntries[insertBatchLen] = TBlockStorage::TRowEntry(blockOffset, itemOffset);
- insertBatch[insertBatchLen].ConstructKey(keyHash);
+ insertBatch[insertBatchLen].ConstructKey(*keyHash);
insertBatchLen++;
if (insertBatchLen == PrefetchBatchSize) {
@@ -777,15 +800,22 @@ public:
std::array<TRobinHoodBatchRequestItem<ui64>, PrefetchBatchSize> lookupBatch;
std::array<std::vector<NYql::NUdf::TBlockItem>, PrefetchBatchSize> itemsBatch;
+ std::array<bool, PrefetchBatchSize> notNullBatch = {};
for (size_t i = 0; i < batchSize; i++) {
const auto& [items, keyHash] = getKey(i);
- lookupBatch[i].ConstructKey(keyHash);
+ if (!keyHash) {
+ lookupBatch[i].ConstructKey(0);
+ continue;
+ }
+
+ notNullBatch[i] = true;
+ lookupBatch[i].ConstructKey(*keyHash);
itemsBatch[i] = items;
}
Index_->BatchLookup({lookupBatch.data(), batchSize}, [&](size_t i, TIndexMap::iterator iter) {
- if (!iter) {
+ if (!notNullBatch[i] || !iter) {
// Empty iterator
iterators[i] = TIterator(this);
return;
@@ -819,7 +849,7 @@ public:
}
private:
- ui64 GetKey(const TBlockStorage::TBlock& block, size_t offset, std::vector<NYql::NUdf::TBlockItem>& keyItems) const {
+ TMaybe<ui64> GetKey(const TBlockStorage::TBlock& block, size_t offset, std::vector<NYql::NUdf::TBlockItem>& keyItems) const {
auto& blockStorage = *static_cast<TBlockStorage*>(BlockStorage_.GetResource());
ui64 keyHash = 0;
@@ -828,7 +858,7 @@ private:
auto item = blockStorage.GetItemFromBlock(block, keyColumn, offset);
if (!item) {
keyItems.clear();
- return 0;
+ return {};
}
keyHash = CombineHashes(keyHash, blockStorage.GetItemHashers()[keyColumn]->Hash(item));
@@ -992,17 +1022,13 @@ private:
auto& indexState = *static_cast<TIndexState*>(RightBlockIndex_.GetResource());
auto& storageState = *static_cast<TStorageState*>(indexState.GetBlockStorage().GetResource());
- if (!RightStreamConsumed_) {
- auto fetchStatus = NUdf::EFetchStatus::Ok;
- while (fetchStatus != NUdf::EFetchStatus::Finish) {
- fetchStatus = storageState.FetchStream();
- if (fetchStatus == NUdf::EFetchStatus::Yield) {
- return NUdf::EFetchStatus::Yield;
- }
+ if (!RightInputConsumed_) {
+ while (storageState.FetchNextBlock()) {
+ // Fetch entire data from the right input
}
indexState.BuildIndex();
- RightStreamConsumed_ = true;
+ RightInputConsumed_ = true;
}
auto* inputFields = joinState.GetRawInputFields();
@@ -1052,7 +1078,7 @@ private:
LookupBatchSize_ = std::min(PrefetchBatchSize, static_cast<ui32>(joinState.RemainingRowsCount()));
indexState.BatchLookup(LookupBatchSize_, LookupBatchIterators_, [&](size_t i) {
MakeLeftKeys(leftKeyColumns, leftKeyColumnHashes, i);
- ui64 keyHash = CalculateTupleHash(leftKeyColumnHashes);
+ auto keyHash = CalculateTupleHash(leftKeyColumns, leftKeyColumnHashes);
return std::make_pair(std::ref(leftKeyColumns), keyHash);
});
@@ -1104,7 +1130,7 @@ private:
const TVector<ui32>& LeftKeyColumns_;
const TVector<ui32>& RightIOMap_;
- bool RightStreamConsumed_ = false;
+ bool RightInputConsumed_ = false;
std::array<typename TIndexState::TIterator, PrefetchBatchSize> LookupBatchIterators_;
ui32 LookupBatchCurrent_ = 0;
@@ -1204,16 +1230,12 @@ private:
auto& joinState = *static_cast<TJoinState*>(JoinState_.AsBoxed().Get());
auto& storageState = *static_cast<TStorageState*>(RightBlockStorage_.GetResource());
- if (!RightStreamConsumed_) {
- auto fetchStatus = NUdf::EFetchStatus::Ok;
- while (fetchStatus != NUdf::EFetchStatus::Finish) {
- fetchStatus = storageState.FetchStream();
- if (fetchStatus == NUdf::EFetchStatus::Yield) {
- return NUdf::EFetchStatus::Yield;
- }
+ if (!RightInputConsumed_) {
+ while (storageState.FetchNextBlock()) {
+ // Fetch entire data from the right input
}
- RightStreamConsumed_ = true;
+ RightInputConsumed_ = true;
RightRowIterator_ = storageState.GetRowIterator();
}
@@ -1270,7 +1292,7 @@ private:
NUdf::TUnboxedValue JoinState_;
const TVector<ui32>& RightIOMap_;
- bool RightStreamConsumed_ = false;
+ bool RightInputConsumed_ = false;
TStorageState::TRowIterator RightRowIterator_;
@@ -1310,19 +1332,15 @@ IComputationNode* WrapBlockStorage(TCallable& callable, const TComputationNodeFa
MKQL_ENSURE(resultResourceType->GetTag().StartsWith(BlockStorageResourcePrefix), "Expected block storage resource");
const auto inputType = callable.GetInput(0).GetStaticType();
- MKQL_ENSURE(inputType->IsStream(), "Expected WideStream as an input stream");
- const auto inputStreamType = AS_TYPE(TStreamType, inputType);
- MKQL_ENSURE(inputStreamType->GetItemType()->IsMulti(),
- "Expected Multi as a left stream item type");
- const auto inputStreamComponents = GetWideComponents(inputStreamType);
- MKQL_ENSURE(inputStreamComponents.size() > 0, "Expected at least one column");
- TVector<TType*> inputStreamItems(inputStreamComponents.cbegin(), inputStreamComponents.cend());
+ MKQL_ENSURE(inputType->IsList(), "Expected List as an input stream");
+ const auto inputItemType = AS_TYPE(TListType, inputType)->GetItemType();;
+ MKQL_ENSURE(inputItemType->IsStruct(), "Expected Struct as a list item type");
- const auto inputStream = LocateNode(ctx.NodeLocator, callable, 0);
+ const auto list = LocateNode(ctx.NodeLocator, callable, 0);
return new TBlockStorageWrapper(
ctx.Mutables,
- std::move(inputStreamItems),
- inputStream,
+ AS_TYPE(TStructType, inputItemType),
+ list,
resultResourceType->GetTag()
);
}
@@ -1341,9 +1359,9 @@ IComputationNode* WrapBlockMapJoinIndex(TCallable& callable, const TComputationN
MKQL_ENSURE(inputResourceType->GetTag().StartsWith(BlockStorageResourcePrefix), "Expected block storage resource");
auto origInputItemType = AS_VALUE(TTypeType, callable.GetInput(1));
- MKQL_ENSURE(origInputItemType->IsMulti(), "Expected Multi as an input item type");
- const auto streamComponents = AS_TYPE(TMultiType, origInputItemType)->GetElements();
- MKQL_ENSURE(streamComponents.size() > 0, "Expected at least one column");
+ MKQL_ENSURE(origInputItemType->IsStruct(), "Expected Struct as an input item type");
+ const auto origInputItemStructType = AS_TYPE(TStructType, origInputItemType);
+ MKQL_ENSURE(origInputItemStructType->GetMembersCount() > 0, "Expected at least one column");
const auto keyColumnsLiteral = callable.GetInput(2);
const auto keyColumnsTuple = AS_VALUE(TTupleLiteral, keyColumnsLiteral);
@@ -1355,7 +1373,7 @@ IComputationNode* WrapBlockMapJoinIndex(TCallable& callable, const TComputationN
}
for (ui32 keyColumn : keyColumns) {
- MKQL_ENSURE(keyColumn < streamComponents.size() - 1, "Key column out of range");
+ MKQL_ENSURE(keyColumn < origInputItemStructType->GetMembersCount(), "Key column out of range");
}
const auto anyNode = callable.GetInput(3);
@@ -1408,10 +1426,9 @@ IComputationNode* WrapBlockMapJoinCore(TCallable& callable, const TComputationNo
}
auto origRightItemType = AS_VALUE(TTypeType, callable.GetInput(2));
- MKQL_ENSURE(origRightItemType->IsMulti(), "Expected Multi as a right stream item type");
- const auto rightStreamComponents = AS_TYPE(TMultiType, origRightItemType)->GetElements();
- MKQL_ENSURE(rightStreamComponents.size() > 0, "Expected at least one column");
- const TVector<TType*> rightStreamItems(rightStreamComponents.cbegin(), rightStreamComponents.cend());
+ MKQL_ENSURE(origRightItemType->IsStruct(), "Expected Struct as a right stream item type");
+ const auto origRightItemStructType = AS_TYPE(TStructType, origRightItemType);
+ MKQL_ENSURE(origRightItemStructType->GetMembersCount() > 0, "Expected at least one column");
const auto leftKeyColumnsLiteral = callable.GetInput(4);
const auto leftKeyColumnsTuple = AS_VALUE(TTupleLiteral, leftKeyColumnsLiteral);
@@ -1479,8 +1496,8 @@ IComputationNode* WrapBlockMapJoinCore(TCallable& callable, const TComputationNo
// XXX: Mind the last wide item, containing block length.
TVector<ui32> rightIOMap;
if (joinKind == EJoinKind::Inner || joinKind == EJoinKind::Left || joinKind == EJoinKind::Cross) {
- for (size_t i = 0; i < rightStreamItems.size() - 1; i++) {
- if (rightKeyDrops.contains(i)) {
+ for (size_t i = 0; i < origRightItemStructType->GetMembersCount(); i++) {
+ if (rightKeyDrops.contains(i) || origRightItemStructType->GetMemberName(i) == NYql::BlockLengthColumnName) {
continue;
}
rightIOMap.push_back(i);
diff --git a/yql/essentials/minikql/comp_nodes/mkql_grace_join.cpp b/yql/essentials/minikql/comp_nodes/mkql_grace_join.cpp
index ac5e5108e3c..bb319984526 100644
--- a/yql/essentials/minikql/comp_nodes/mkql_grace_join.cpp
+++ b/yql/essentials/minikql/comp_nodes/mkql_grace_join.cpp
@@ -80,9 +80,12 @@ struct TGraceJoinPacker {
ui64 DataIColumnsNum = TotalIColumnsNum - KeyIColumnsNum;
std::vector<GraceJoin::TColTypeInterface> ColumnInterfaces;
bool IsAny; // Flag to support any join attribute
+ const NUdf::TLoggerPtr Logger; // Logger instance
+ const NUdf::TLogComponentId LogComponent; // Id of current component for logging. GracejJoin here
inline void Pack() ; // Packs new tuple from TupleHolder and TuplePtrs to TupleIntVals, TupleStrSizes, TupleStrings
inline void UnPack(); // Unpacks packed values from TupleIntVals, TupleStrSizes, TupleStrings into TupleHolder and TuplePtrs
- TGraceJoinPacker(const std::vector<TType*>& columnTypes, const std::vector<ui32>& keyColumns, const THolderFactory& holderFactory, bool isAny);
+ TGraceJoinPacker(const std::vector<TType*>& columnTypes, const std::vector<ui32>& keyColumns,
+ const THolderFactory& holderFactory, bool isAny, NUdf::TLoggerPtr logger, NUdf::TLogComponentId logComponent);
};
@@ -430,10 +433,13 @@ void TGraceJoinPacker::UnPack() {
}
-TGraceJoinPacker::TGraceJoinPacker(const std::vector<TType *> & columnTypes, const std::vector<ui32>& keyColumns, const THolderFactory& holderFactory, bool isAny) :
+TGraceJoinPacker::TGraceJoinPacker(const std::vector<TType *> & columnTypes, const std::vector<ui32>& keyColumns,
+ const THolderFactory& holderFactory, bool isAny, NUdf::TLoggerPtr logger = nullptr, NUdf::TLogComponentId logComponent = 0) :
ColumnTypes(columnTypes)
, HolderFactory(holderFactory)
- , IsAny(isAny) {
+ , IsAny(isAny)
+ , Logger(logger)
+ , LogComponent(logComponent) {
ui64 nColumns = ColumnTypes.size();
ui64 nKeyColumns = keyColumns.size();
@@ -550,8 +556,9 @@ TGraceJoinPacker::TGraceJoinPacker(const std::vector<TType *> & columnTypes, con
}
TablePtr = std::make_unique<GraceJoin::TTable>(
+ Logger, LogComponent,
PackedKeyIntColumnsNum, KeyStrColumnsNum, PackedDataIntColumnsNum,
- DataStrColumnsNum, KeyIColumnsNum, DataIColumnsNum, NullsBitmapSize, cti_p, IsAny );
+ DataStrColumnsNum, KeyIColumnsNum, DataIColumnsNum, NullsBitmapSize, cti_p, IsAny);
}
@@ -569,7 +576,7 @@ public:
EJoinKind joinKind, EAnyJoinSettings anyJoinSettings, const std::vector<ui32>& leftKeyColumns, const std::vector<ui32>& rightKeyColumns,
const std::vector<ui32>& leftRenames, const std::vector<ui32>& rightRenames,
const std::vector<TType*>& leftColumnsTypes, const std::vector<TType*>& rightColumnsTypes, TComputationContext& ctx,
- const bool isSelfJoin, bool isSpillingAllowed)
+ const bool isSelfJoin, bool isSpillingAllowed, NUdf::TLoggerPtr logger, NUdf::TLogComponentId logComponent)
: TBase(memInfo)
, FlowLeft(flowLeft)
, FlowRight(flowRight)
@@ -578,9 +585,9 @@ public:
, RightKeyColumns(rightKeyColumns)
, LeftRenames(leftRenames)
, RightRenames(rightRenames)
- , LeftPacker(std::make_unique<TGraceJoinPacker>(leftColumnsTypes, leftKeyColumns, ctx.HolderFactory, (anyJoinSettings == EAnyJoinSettings::Left || anyJoinSettings == EAnyJoinSettings::Both || joinKind == EJoinKind::RightSemi || joinKind == EJoinKind::RightOnly)))
- , RightPacker(std::make_unique<TGraceJoinPacker>(rightColumnsTypes, rightKeyColumns, ctx.HolderFactory, (anyJoinSettings == EAnyJoinSettings::Right || anyJoinSettings == EAnyJoinSettings::Both || joinKind == EJoinKind::LeftSemi || joinKind == EJoinKind::LeftOnly)))
- , JoinedTablePtr(std::make_unique<GraceJoin::TTable>())
+ , LeftPacker(std::make_unique<TGraceJoinPacker>(leftColumnsTypes, leftKeyColumns, ctx.HolderFactory, (anyJoinSettings == EAnyJoinSettings::Left || anyJoinSettings == EAnyJoinSettings::Both || joinKind == EJoinKind::RightSemi || joinKind == EJoinKind::RightOnly), logger, logComponent))
+ , RightPacker(std::make_unique<TGraceJoinPacker>(rightColumnsTypes, rightKeyColumns, ctx.HolderFactory, (anyJoinSettings == EAnyJoinSettings::Right || anyJoinSettings == EAnyJoinSettings::Both || joinKind == EJoinKind::LeftSemi || joinKind == EJoinKind::LeftOnly), logger, logComponent))
+ , JoinedTablePtr(std::make_unique<GraceJoin::TTable>(logger, logComponent))
, JoinCompleted(std::make_unique<bool>(false))
, PartialJoinCompleted(std::make_unique<bool>(false))
, HaveMoreLeftRows(std::make_unique<bool>(true))
@@ -588,8 +595,10 @@ public:
, IsSelfJoin_(isSelfJoin)
, SelfJoinSameKeys_(isSelfJoin && (leftKeyColumns == rightKeyColumns))
, IsSpillingAllowed(isSpillingAllowed)
+ , Logger(logger)
+ , LogComponent(logComponent)
{
- YQL_LOG(GRACEJOIN_DEBUG) << (const void *)&*JoinedTablePtr << "# AnyJoinSettings=" << (int)anyJoinSettings << " JoinKind=" << (int)joinKind;
+ UDF_LOG(Logger, LogComponent, GRACEJOIN_DEBUG, TStringBuilder() << (const void *)&*JoinedTablePtr << "# AnyJoinSettings=" << (int)anyJoinSettings << " JoinKind=" << (int)joinKind);
if (IsSelfJoin_) {
LeftPacker->BatchSize = std::numeric_limits<ui64>::max();
RightPacker->BatchSize = std::numeric_limits<ui64>::max();
@@ -646,12 +655,14 @@ private:
LogMemoryUsage();
switch(mode) {
case EOperatingMode::InMemory: {
- YQL_LOG(INFO) << (const void *)&*JoinedTablePtr << "# switching Memory mode to InMemory";
+ UDF_LOG(Logger, LogComponent, NUdf::ELogLevel::Info, TStringBuilder()
+ << (const void *)&*JoinedTablePtr << "# switching Memory mode to InMemory");
MKQL_ENSURE(false, "Internal logic error");
break;
}
case EOperatingMode::Spilling: {
- YQL_LOG(INFO) << (const void *)&*JoinedTablePtr << "# switching Memory mode to Spilling";
+ UDF_LOG(Logger, LogComponent, NUdf::ELogLevel::Info, TStringBuilder()
+ << (const void *)&*JoinedTablePtr << "# switching Memory mode to Spilling");
MKQL_ENSURE(EOperatingMode::InMemory == Mode, "Internal logic error");
auto spiller = ctx.SpillerFactory->CreateSpiller();
RightPacker->TablePtr->InitializeBucketSpillers(spiller);
@@ -659,7 +670,8 @@ private:
break;
}
case EOperatingMode::ProcessSpilled: {
- YQL_LOG(INFO) << (const void *)&*JoinedTablePtr << "# switching Memory mode to ProcessSpilled";
+ UDF_LOG(Logger, LogComponent, NUdf::ELogLevel::Info, TStringBuilder()
+ << (const void *)&*JoinedTablePtr << "# switching Memory mode to ProcessSpilled");
SpilledBucketsJoinOrder.reserve(GraceJoin::NumberOfBuckets);
for (ui32 i = 0; i < GraceJoin::NumberOfBuckets; ++i) SpilledBucketsJoinOrder.push_back(i);
@@ -796,6 +808,11 @@ private:
}
void LogMemoryUsage() const {
+ const auto memoryUsageLogLevel = NUdf::ELogLevel::Info;
+ if (!Logger->IsActive(LogComponent, memoryUsageLogLevel)) {
+ return;
+ }
+
const auto used = TlsAllocState->GetUsed();
const auto limit = TlsAllocState->GetLimit();
TStringBuilder logmsg;
@@ -805,7 +822,7 @@ private:
}
logmsg << (used/1_MB) << "MB/" << (limit/1_MB) << "MB";
- YQL_LOG(INFO) << logmsg;
+ UDF_LOG(Logger, LogComponent, memoryUsageLogLevel, logmsg);
}
EFetchResult DoCalculateInMemory(TComputationContext& ctx, NUdf::TUnboxedValue*const* output) {
@@ -857,11 +874,10 @@ private:
(!*HaveMoreRightRows && (!*HaveMoreLeftRows || LeftPacker->TuplesBatchPacked >= LeftPacker->BatchSize )) ||
(!*HaveMoreLeftRows && RightPacker->TuplesBatchPacked >= RightPacker->BatchSize))) {
- YQL_LOG(GRACEJOIN_TRACE)
+ UDF_LOG(Logger, LogComponent, GRACEJOIN_TRACE, TStringBuilder()
<< (const void *)&*JoinedTablePtr << '#'
<< " HaveLeft " << *HaveMoreLeftRows << " LeftPacked " << LeftPacker->TuplesBatchPacked << " LeftBatch " << LeftPacker->BatchSize
- << " HaveRight " << *HaveMoreRightRows << " RightPacked " << RightPacker->TuplesBatchPacked << " RightBatch " << RightPacker->BatchSize
- ;
+ << " HaveRight " << *HaveMoreRightRows << " RightPacked " << RightPacker->TuplesBatchPacked << " RightBatch " << RightPacker->BatchSize);
auto& leftTable = *LeftPacker->TablePtr;
auto& rightTable = SelfJoinSameKeys_ ? *LeftPacker->TablePtr : *RightPacker->TablePtr;
@@ -1048,6 +1064,9 @@ private:
NYql::NUdf::TCounter CounterOutputRows_;
ui32 SpilledBucketsJoinOrderCurrentIndex = 0;
std::vector<ui32> SpilledBucketsJoinOrder;
+
+ const NUdf::TLoggerPtr Logger;
+ const NUdf::TLogComponentId LogComponent;
};
class TGraceJoinWrapper : public TStatefulWideFlowCodegeneratorNode<TGraceJoinWrapper> {
@@ -1167,10 +1186,14 @@ class TGraceJoinWrapper : public TStatefulWideFlowCodegeneratorNode<TGraceJoinWr
}
void MakeSpillingSupportState(TComputationContext& ctx, NUdf::TUnboxedValue& state) const {
+ NYql::NUdf::TLoggerPtr logger = ctx.MakeLogger();
+ NYql::NUdf::TLogComponentId logComponent = logger->RegisterComponent("GraceJoin");
+ UDF_LOG(logger, logComponent, NUdf::ELogLevel::Debug, TStringBuilder() << "State initialized");
+
state = ctx.HolderFactory.Create<TGraceJoinSpillingSupportState>(
FlowLeft, FlowRight, JoinKind, AnyJoinSettings_, LeftKeyColumns, RightKeyColumns,
LeftRenames, RightRenames, LeftColumnsTypes, RightColumnsTypes,
- ctx, IsSelfJoin_, IsSpillingAllowed);
+ ctx, IsSelfJoin_, IsSpillingAllowed, logger, logComponent);
}
IComputationWideFlowNode *const FlowLeft;
diff --git a/yql/essentials/minikql/comp_nodes/mkql_grace_join_imp.cpp b/yql/essentials/minikql/comp_nodes/mkql_grace_join_imp.cpp
index 5163d779423..5ea63283143 100644
--- a/yql/essentials/minikql/comp_nodes/mkql_grace_join_imp.cpp
+++ b/yql/essentials/minikql/comp_nodes/mkql_grace_join_imp.cpp
@@ -368,6 +368,7 @@ bool TTable::TryToPreallocateMemoryForJoin(TTable & t1, TTable & t2, EJoinKind /
}
if (wasException || TlsAllocState->IsMemoryYellowZoneEnabled()) {
+ UDF_LOG(Logger_, LogComponent_, NUdf::ELogLevel::Debug, TStringBuilder() << "Preallocation failed. WasException: " << wasException);
for (ui64 i = 0; i < bucket; ++i) {
auto& b1 = t1.TableBuckets[i];
b1.JoinSlots.resize(0);
@@ -673,7 +674,7 @@ void TTable::Join( TTable & t1, TTable & t2, EJoinKind joinKind, bool hasMoreLef
BloomHits_ += bloomHits;
BloomLookups_ += bloomLookups;
- YQL_LOG(GRACEJOIN_TRACE)
+ UDF_LOG(Logger_, LogComponent_, GRACEJOIN_TRACE, TStringBuilder()
<< (const void *)this << '#'
<< bucket
<< " Table1 " << JoinTable1->TableBucketsStats[bucket].TuplesNum
@@ -685,7 +686,7 @@ void TTable::Join( TTable & t1, TTable & t2, EJoinKind joinKind, bool hasMoreLef
<< " joinKind " << (int)JoinKind
<< " swapTables " << swapTables
<< " initHashTable " << initHashTable
- ;
+ );
}
HasMoreLeftTuples_ = hasMoreLeftTuples;
@@ -1062,10 +1063,12 @@ void TTable::PrepareBucket(ui64 bucket) {
}
// Creates new table with key columns and data columns
-TTable::TTable( ui64 numberOfKeyIntColumns, ui64 numberOfKeyStringColumns,
+TTable::TTable( NUdf::TLoggerPtr logger, NUdf::TLogComponentId logComponent,
+ ui64 numberOfKeyIntColumns, ui64 numberOfKeyStringColumns,
ui64 numberOfDataIntColumns, ui64 numberOfDataStringColumns,
ui64 numberOfKeyIColumns, ui64 numberOfDataIColumns,
- ui64 nullsBitmapSize, TColTypeInterface * colInterfaces, bool isAny ) :
+ ui64 nullsBitmapSize, TColTypeInterface * colInterfaces,
+ bool isAny) :
NumberOfKeyIntColumns(numberOfKeyIntColumns),
NumberOfKeyStringColumns(numberOfKeyStringColumns),
@@ -1075,7 +1078,9 @@ TTable::TTable( ui64 numberOfKeyIntColumns, ui64 numberOfKeyStringColumns,
NumberOfDataIColumns(numberOfDataIColumns),
ColInterfaces(colInterfaces),
NullsBitmapSize_(nullsBitmapSize),
- IsAny_(isAny) {
+ IsAny_(isAny),
+ Logger_(logger),
+ LogComponent_(logComponent) {
NumberOfKeyColumns = NumberOfKeyIntColumns + NumberOfKeyStringColumns + NumberOfKeyIColumns;
NumberOfDataColumns = NumberOfDataIntColumns + NumberOfDataStringColumns + NumberOfDataIColumns;
@@ -1114,16 +1119,21 @@ TTable::TTable( ui64 numberOfKeyIntColumns, ui64 numberOfKeyStringColumns,
}
TTable::~TTable() {
- YQL_LOG_IF(GRACEJOIN_DEBUG, InitHashTableCount_)
+ UDF_LOG_IF(InitHashTableCount_, Logger_, LogComponent_, GRACEJOIN_DEBUG, TStringBuilder()
<< (const void *)this << '#' << "InitHashTableCount " << InitHashTableCount_
<< " BloomLookups " << BloomLookups_ << " BloomHits " << BloomHits_ << " BloomFalsePositives " << BloomFalsePositives_
<< " HashLookups " << HashLookups_ << " HashChainTraversal " << HashO1Iterations_/(double)HashLookups_ << " HashSlotOperations " << HashSlotIterations_/(double)HashLookups_
<< " Table1 " << JoinTable1Total_ << " Table2 " << JoinTable2Total_ << " TuplesFound " << TuplesFound_
- ;
- YQL_LOG_IF(GRACEJOIN_DEBUG, JoinTable1 && JoinTable1->AnyFiltered_) << (const void *)this << '#' << "L AnyFiltered " << JoinTable1->AnyFiltered_;
- YQL_LOG_IF(GRACEJOIN_DEBUG, JoinTable1 && JoinTable1->BloomLookups_) << (const void *)this << '#' << "L BloomLookups " << JoinTable1->BloomLookups_ << " BloomHits " << JoinTable1->BloomHits_;
- YQL_LOG_IF(GRACEJOIN_DEBUG, JoinTable2 && JoinTable2->AnyFiltered_) << (const void *)this << '#' << "R AnyFiltered " << JoinTable2->AnyFiltered_;
- YQL_LOG_IF(GRACEJOIN_DEBUG, JoinTable2 && JoinTable2->BloomLookups_) << (const void *)this << '#' << "R BloomLookups " << JoinTable2->BloomLookups_ << " BloomHits " << JoinTable2->BloomHits_;
+ );
+
+ UDF_LOG_IF(JoinTable1 && JoinTable1->AnyFiltered_, Logger_, LogComponent_, GRACEJOIN_DEBUG, TStringBuilder()
+ << (const void *)this << '#' << "L AnyFiltered " << JoinTable1->AnyFiltered_);
+ UDF_LOG_IF(JoinTable1 && JoinTable1->BloomLookups_, Logger_, LogComponent_, GRACEJOIN_DEBUG, TStringBuilder()
+ << (const void *)this << '#' << "L BloomLookups " << JoinTable1->BloomLookups_ << " BloomHits " << JoinTable1->BloomHits_);
+ UDF_LOG_IF(JoinTable2 && JoinTable2->AnyFiltered_, Logger_, LogComponent_, GRACEJOIN_DEBUG, TStringBuilder()
+ << (const void *)this << '#' << "R AnyFiltered " << JoinTable2->AnyFiltered_);
+ UDF_LOG_IF(JoinTable2 && JoinTable2->BloomLookups_, Logger_, LogComponent_, GRACEJOIN_DEBUG, TStringBuilder()
+ << (const void *)this << '#' << "R BloomLookups " << JoinTable2->BloomLookups_ << " BloomHits " << JoinTable2->BloomHits_);
};
TTableBucketSpiller::TTableBucketSpiller(ISpiller::TPtr spiller, size_t sizeLimit)
diff --git a/yql/essentials/minikql/comp_nodes/mkql_grace_join_imp.h b/yql/essentials/minikql/comp_nodes/mkql_grace_join_imp.h
index b918ce9b909..6c9256bc036 100644
--- a/yql/essentials/minikql/comp_nodes/mkql_grace_join_imp.h
+++ b/yql/essentials/minikql/comp_nodes/mkql_grace_join_imp.h
@@ -11,8 +11,8 @@ namespace NMiniKQL {
namespace GraceJoin {
class TTableBucketSpiller;
-#define GRACEJOIN_DEBUG DEBUG
-#define GRACEJOIN_TRACE TRACE
+#define GRACEJOIN_DEBUG NUdf::ELogLevel::Debug
+#define GRACEJOIN_TRACE NUdf::ELogLevel::Trace
const ui64 BitsForNumberOfBuckets = 6; // 2^6 = 64
const ui64 BucketsMask = (0x00000001 << BitsForNumberOfBuckets) - 1;
@@ -348,6 +348,9 @@ class TTable {
ui64 TuplesFound_ = 0; // Total number of matching keys found during join
+ const NUdf::TLoggerPtr Logger_ = nullptr; // Logger instance
+ const NUdf::TLogComponentId LogComponent_ = 0; // Unique component id. GraceJoin here.
+
public:
@@ -417,10 +420,12 @@ public:
void Clear();
// Creates new table with key columns and data columns
- TTable(ui64 numberOfKeyIntColumns = 0, ui64 numberOfKeyStringColumns = 0,
- ui64 numberOfDataIntColumns = 0, ui64 numberOfDataStringColumns = 0,
- ui64 numberOfKeyIColumns = 0, ui64 numberOfDataIColumns = 0,
- ui64 nullsBitmapSize = 1, TColTypeInterface * colInterfaces = nullptr, bool isAny = false);
+ TTable(NUdf::TLoggerPtr logger = nullptr, NUdf::TLogComponentId logComponent = 0,
+ ui64 numberOfKeyIntColumns = 0, ui64 numberOfKeyStringColumns = 0,
+ ui64 numberOfDataIntColumns = 0, ui64 numberOfDataStringColumns = 0,
+ ui64 numberOfKeyIColumns = 0, ui64 numberOfDataIColumns = 0,
+ ui64 nullsBitmapSize = 1, TColTypeInterface * colInterfaces = nullptr,
+ bool isAny = false);
enum class EAddTupleResult { Added, Unmatched, AnyMatch };
// Adds new tuple to the table. intColumns, stringColumns - data of columns,
diff --git a/yql/essentials/minikql/comp_nodes/mkql_iterable.cpp b/yql/essentials/minikql/comp_nodes/mkql_iterable.cpp
index f5602fb8e85..4036b225dc5 100644
--- a/yql/essentials/minikql/comp_nodes/mkql_iterable.cpp
+++ b/yql/essentials/minikql/comp_nodes/mkql_iterable.cpp
@@ -123,7 +123,7 @@ public:
private:
void RegisterDependencies() const final {
DependsOn(Stream);
- Arg->AddDependence(Stream);
+ Own(Arg);
}
IComputationNode* const Stream;
diff --git a/yql/essentials/minikql/comp_nodes/mkql_wide_combine.cpp b/yql/essentials/minikql/comp_nodes/mkql_wide_combine.cpp
index 8a3052faa1a..68b22cd7364 100644
--- a/yql/essentials/minikql/comp_nodes/mkql_wide_combine.cpp
+++ b/yql/essentials/minikql/comp_nodes/mkql_wide_combine.cpp
@@ -248,8 +248,19 @@ private:
return KeyWidth + StateWidth;
}
public:
- TState(TMemoryUsageInfo* memInfo, ui32 keyWidth, ui32 stateWidth, const THashFunc& hash, const TEqualsFunc& equal, bool allowOutOfMemory = true)
- : TBase(memInfo), KeyWidth(keyWidth), StateWidth(stateWidth), AllowOutOfMemory(allowOutOfMemory), Hash(hash), Equal(equal) {
+ TState(
+ TMemoryUsageInfo* memInfo, ui32 keyWidth, ui32 stateWidth, const THashFunc& hash, const TEqualsFunc& equal,
+ NUdf::TLoggerPtr logger, NUdf::TLogComponentId logComponent, bool allowOutOfMemory = true
+ )
+ : TBase(memInfo)
+ , KeyWidth(keyWidth)
+ , StateWidth(stateWidth)
+ , AllowOutOfMemory(allowOutOfMemory)
+ , Hash(hash)
+ , Equal(equal)
+ , Logger(logger)
+ , LogComponent(logComponent)
+ {
CurrentPage = &Storage.emplace_back(RowSize() * CountRowsOnPage, NUdf::TUnboxedValuePod());
CurrentPosition = 0;
Tongue = CurrentPage->data();
@@ -295,7 +306,7 @@ public:
try {
States->CheckGrow();
} catch (TMemoryLimitExceededException) {
- YQL_LOG(INFO) << "State failed to grow";
+ UDF_LOG(Logger, LogComponent, NUdf::ELogLevel::Info, TStringBuilder() << "State failed to grow");
if (IsOutOfMemory || !AllowOutOfMemory) {
throw;
} else {
@@ -373,6 +384,8 @@ private:
std::unique_ptr<TStates> States;
const THashFunc Hash;
const TEqualsFunc Equal;
+ const NUdf::TLoggerPtr Logger;
+ const NUdf::TLogComponentId LogComponent;
};
class TSpillingSupportState : public TComputationValue<TSpillingSupportState> {
@@ -421,10 +434,11 @@ public:
TSpillingSupportState(
TMemoryUsageInfo* memInfo,
const TMultiType* usedInputItemType, const TMultiType* keyAndStateType, ui32 keyWidth, size_t itemNodesSize,
- const THashFunc& hash, const TEqualsFunc& equal, bool allowSpilling, TComputationContext& ctx
+ const THashFunc& hash, const TEqualsFunc& equal, bool allowSpilling, TComputationContext& ctx,
+ NUdf::TLoggerPtr logger, NUdf::TLogComponentId logComponent
)
: TBase(memInfo)
- , InMemoryProcessingState(memInfo, keyWidth, keyAndStateType->GetElementsCount() - keyWidth, hash, equal, allowSpilling && ctx.SpillerFactory)
+ , InMemoryProcessingState(memInfo, keyWidth, keyAndStateType->GetElementsCount() - keyWidth, hash, equal, logger, logComponent, allowSpilling && ctx.SpillerFactory)
, UsedInputItemType(usedInputItemType)
, KeyAndStateType(keyAndStateType)
, KeyWidth(keyWidth)
@@ -436,6 +450,8 @@ public:
, Equal(equal)
, AllowSpilling(allowSpilling)
, Ctx(ctx)
+ , Logger(logger)
+ , LogComponent(logComponent)
{
BufferForUsedInputItems.reserve(usedInputItemType->GetElementsCount());
Tongue = InMemoryProcessingState.Tongue;
@@ -726,6 +742,10 @@ private:
}
void LogMemoryUsage() const {
+ const auto memoryUsageLogLevel = NUdf::ELogLevel::Info;
+ if (!Logger->IsActive(LogComponent, memoryUsageLogLevel)) {
+ return;
+ }
const auto used = TlsAllocState->GetUsed();
const auto limit = TlsAllocState->GetLimit();
TStringBuilder logmsg;
@@ -735,7 +755,7 @@ private:
}
logmsg << (used/1_MB) << "MB/" << (limit/1_MB) << "MB";
- YQL_LOG(INFO) << logmsg;
+ UDF_LOG(Logger, LogComponent, memoryUsageLogLevel, logmsg);
}
void SpillMoreStateFromBucket(TSpilledBucket& bucket) {
@@ -858,31 +878,32 @@ private:
void SwitchMode(EOperatingMode mode) {
switch(mode) {
case EOperatingMode::InMemory: {
- YQL_LOG(INFO) << "switching Memory mode to InMemory";
+ UDF_LOG(Logger, LogComponent, NUdf::ELogLevel::Info, "switching Memory mode to InMemory");
MKQL_ENSURE(false, "Internal logic error");
break;
}
case EOperatingMode::SplittingState: {
- YQL_LOG(INFO) << "switching Memory mode to SplittingState";
+ UDF_LOG(Logger, LogComponent, NUdf::ELogLevel::Info, "switching Memory mode to SplittingState");
MKQL_ENSURE(EOperatingMode::InMemory == Mode, "Internal logic error");
SpilledBuckets.resize(SpilledBucketCount);
auto spiller = Ctx.SpillerFactory->CreateSpiller();
for (auto &b: SpilledBuckets) {
b.SpilledState = std::make_unique<TWideUnboxedValuesSpillerAdapter>(spiller, KeyAndStateType, 5_MB);
b.SpilledData = std::make_unique<TWideUnboxedValuesSpillerAdapter>(spiller, UsedInputItemType, 5_MB);
- b.InMemoryProcessingState = std::make_unique<TState>(MemInfo, KeyWidth, KeyAndStateType->GetElementsCount() - KeyWidth, Hasher, Equal, false);
+ b.InMemoryProcessingState = std::make_unique<TState>(MemInfo, KeyWidth,
+ KeyAndStateType->GetElementsCount() - KeyWidth, Hasher, Equal, Logger, LogComponent, false);
}
break;
}
case EOperatingMode::Spilling: {
- YQL_LOG(INFO) << "switching Memory mode to Spilling";
+ UDF_LOG(Logger, LogComponent, NUdf::ELogLevel::Info, "switching Memory mode to Spilling");
MKQL_ENSURE(EOperatingMode::SplittingState == Mode || EOperatingMode::InMemory == Mode, "Internal logic error");
Tongue = ViewForKeyAndState.data();
break;
}
case EOperatingMode::ProcessSpilled: {
- YQL_LOG(INFO) << "switching Memory mode to ProcessSpilled";
+ UDF_LOG(Logger, LogComponent, NUdf::ELogLevel::Info, "switching Memory mode to ProcessSpilled");
MKQL_ENSURE(EOperatingMode::Spilling == Mode, "Internal logic error");
MKQL_ENSURE(SpilledBuckets.size() == SpilledBucketCount, "Internal logic error");
MKQL_ENSURE(BufferForUsedInputItems.empty(), "Internal logic error");
@@ -940,6 +961,9 @@ private:
TComputationContext& Ctx;
NYql::NUdf::TCounter CounterOutputRows_;
+
+ const NUdf::TLoggerPtr Logger;
+ const NUdf::TLogComponentId LogComponent;
};
#ifndef MKQL_DISABLE_CODEGEN
@@ -1402,12 +1426,18 @@ public:
#endif
private:
void MakeState(TComputationContext& ctx, NUdf::TUnboxedValue& state) const {
+ NYql::NUdf::TLoggerPtr logger = ctx.MakeLogger();
+ NYql::NUdf::TLogComponentId logComponent = logger->RegisterComponent("WideCombine");
+ UDF_LOG(logger, logComponent, NUdf::ELogLevel::Debug, TStringBuilder() << "State initialized");
+
#ifdef MKQL_DISABLE_CODEGEN
- state = ctx.HolderFactory.Create<TState>(Nodes.KeyNodes.size(), Nodes.StateNodes.size(), TMyValueHasher(KeyTypes), TMyValueEqual(KeyTypes));
+ state = ctx.HolderFactory.Create<TState>(Nodes.KeyNodes.size(), Nodes.StateNodes.size(),
+ TMyValueHasher(KeyTypes), TMyValueEqual(KeyTypes), logger, logComponent);
#else
state = ctx.HolderFactory.Create<TState>(Nodes.KeyNodes.size(), Nodes.StateNodes.size(),
ctx.ExecuteLLVM && Hash ? THashFunc(std::ptr_fun(Hash)) : THashFunc(TMyValueHasher(KeyTypes)),
- ctx.ExecuteLLVM && Equals ? TEqualsFunc(std::ptr_fun(Equals)) : TEqualsFunc(TMyValueEqual(KeyTypes))
+ ctx.ExecuteLLVM && Equals ? TEqualsFunc(std::ptr_fun(Equals)) : TEqualsFunc(TMyValueEqual(KeyTypes)),
+ logger, logComponent
);
#endif
if (ctx.CountersProvider) {
@@ -1832,6 +1862,10 @@ public:
#endif
private:
void MakeState(TComputationContext& ctx, NUdf::TUnboxedValue& state) const {
+ NYql::NUdf::TLoggerPtr logger = ctx.MakeLogger();
+ NYql::NUdf::TLogComponentId logComponent = logger->RegisterComponent("WideLastCombine");
+ UDF_LOG(logger, logComponent, NUdf::ELogLevel::Debug, TStringBuilder() << "State initialized");
+
state = ctx.HolderFactory.Create<TSpillingSupportState>(UsedInputItemType, KeyAndStateType,
Nodes.KeyNodes.size(),
Nodes.ItemNodes.size(),
@@ -1839,11 +1873,13 @@ private:
TMyValueHasher(KeyTypes),
TMyValueEqual(KeyTypes),
#else
- ctx.ExecuteLLVM && Hash ? THashFunc(std::ptr_fun(Hash)) : THashFunc(TMyValueHasher(KeyTypes)),
- ctx.ExecuteLLVM && Equals ? TEqualsFunc(std::ptr_fun(Equals)) : TEqualsFunc(TMyValueEqual(KeyTypes)),
+ ctx.ExecuteLLVM && Hash ? THashFunc(std::ptr_fun(Hash)) : THashFunc(TMyValueHasher(KeyTypes)),
+ ctx.ExecuteLLVM && Equals ? TEqualsFunc(std::ptr_fun(Equals)) : TEqualsFunc(TMyValueEqual(KeyTypes)),
#endif
AllowSpilling,
- ctx
+ ctx,
+ logger,
+ logComponent
);
}
@@ -1996,7 +2032,6 @@ IComputationNode* WrapWideCombiner(TCallable& callable, const TComputationNodeFa
}
IComputationNode* WrapWideLastCombiner(TCallable& callable, const TComputationNodeFactoryContext& ctx) {
- YQL_LOG(INFO) << "Found non-serializable type, spilling is disabled";
return WrapWideCombinerT<true>(callable, ctx, false);
}
diff --git a/yql/essentials/minikql/comp_nodes/mkql_wide_top_sort.cpp b/yql/essentials/minikql/comp_nodes/mkql_wide_top_sort.cpp
index def9de2b960..c814cf09a0d 100644
--- a/yql/essentials/minikql/comp_nodes/mkql_wide_top_sort.cpp
+++ b/yql/essentials/minikql/comp_nodes/mkql_wide_top_sort.cpp
@@ -651,7 +651,7 @@ private:
public:
TSpillingSupportState(TMemoryUsageInfo* memInfo, const bool* directons, size_t keyWidth, const TCompareFunc& compare,
- const std::vector<ui32>& indexes, TMultiType* tupleMultiType, const TComputationContext& ctx)
+ const std::vector<ui32>& indexes, TMultiType* tupleMultiType, const TComputationContext& ctx, NUdf::TLoggerPtr logger, NUdf::TLogComponentId logComponent)
: TBase(memInfo)
, Indexes(indexes)
, Directions(directons, directons + keyWidth)
@@ -659,6 +659,8 @@ public:
, Fields(Indexes.size(), nullptr)
, TupleMultiType(tupleMultiType)
, Ctx(ctx)
+ , Logger(logger)
+ , LogComponent(logComponent)
{
if (Ctx.SpillerFactory) {
Spiller = Ctx.SpillerFactory->CreateSpiller();
@@ -678,7 +680,8 @@ public:
ResetFields();
auto nextMode = (IsReadFromChannelFinished() ? EOperatingMode::ProcessSpilled : EOperatingMode::InMemory);
- YQL_LOG(INFO) << (nextMode == EOperatingMode::ProcessSpilled ? "Switching to ProcessSpilled" : "Switching to Memory mode");
+ UDF_LOG(Logger, LogComponent, NUdf::ELogLevel::Info, TStringBuilder() <<
+ (nextMode == EOperatingMode::ProcessSpilled ? "Switching to ProcessSpilled" : "Switching to Memory mode"));
SwitchMode(nextMode);
return IsReadyToContinue();
@@ -712,8 +715,8 @@ public:
const auto used = TlsAllocState->GetUsed();
const auto limit = TlsAllocState->GetLimit();
- YQL_LOG(INFO) << "Yellow zone reached " << (used*100/limit) << "%=" << used << "/" << limit;
- YQL_LOG(INFO) << "Switching Memory mode to Spilling";
+ UDF_LOG(Logger, LogComponent, NUdf::ELogLevel::Info, TStringBuilder() << "Yellow zone reached " << (used*100/limit) << "%=" << used << "/" << limit);
+ UDF_LOG(Logger, LogComponent, NUdf::ELogLevel::Info, "Switching Memory mode to Spilling");
SwitchMode(EOperatingMode::Spilling);
}
@@ -860,6 +863,8 @@ private:
std::vector<TSpilledUnboxedValuesIterator> SpilledUnboxedValuesIterators;
ISpiller::TPtr Spiller = nullptr;
bool IsHeapBuilt = false;
+ const NYql::NUdf::TLoggerPtr Logger;
+ const NYql::NUdf::TLogComponentId LogComponent;
};
class TWideSortWrapper: public TStatefulWideFlowCodegeneratorNode<TWideSortWrapper>
@@ -1101,10 +1106,13 @@ public:
#endif
private:
void MakeState(TComputationContext& ctx, NUdf::TUnboxedValue& state, const bool* directions) const {
+ NYql::NUdf::TLoggerPtr logger = ctx.MakeLogger();
+ NYql::NUdf::TLogComponentId logComponent = logger->RegisterComponent("WideSort");
+ UDF_LOG(logger, logComponent, NUdf::ELogLevel::Debug, TStringBuilder() << "State initialized");
#ifdef MKQL_DISABLE_CODEGEN
- state = ctx.HolderFactory.Create<TSpillingSupportState>(directions, Directions.size(), TMyValueCompare(Keys), Indexes, TupleMultiType, ctx);
+ state = ctx.HolderFactory.Create<TSpillingSupportState>(directions, Directions.size(), TMyValueCompare(Keys), Indexes, TupleMultiType, ctx, logger, logComponent);
#else
- state = ctx.HolderFactory.Create<TSpillingSupportState>(directions, Directions.size(), ctx.ExecuteLLVM && Compare ? TCompareFunc(Compare) : TCompareFunc(TMyValueCompare(Keys)), Indexes, TupleMultiType, ctx);
+ state = ctx.HolderFactory.Create<TSpillingSupportState>(directions, Directions.size(), ctx.ExecuteLLVM && Compare ? TCompareFunc(Compare) : TCompareFunc(TMyValueCompare(Keys)), Indexes, TupleMultiType, ctx, logger, logComponent);
#endif
}
diff --git a/yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut.cpp b/yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut.cpp
index add6f4731a0..27ca8502a85 100644
--- a/yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut.cpp
+++ b/yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut.cpp
@@ -25,6 +25,22 @@ TRuntimeNode ToWideStream(TProgramBuilder& pgmBuilder, TRuntimeNode list) {
return pgmBuilder.FromFlow(wideFlow);
}
+// List<Tuple<T1, ..., Tn, Tlast>> -> List<Struct<"0": Block<T1>, ..., "n": Block<Tn>, "_yql_block_length": Scalar<Tlast>>>
+TRuntimeNode ToBlockList(TProgramBuilder& pgmBuilder, TRuntimeNode list) {
+ return pgmBuilder.Map(list,
+ [&](TRuntimeNode tupleNode) -> TRuntimeNode {
+ TTupleType* tupleType = AS_TYPE(TTupleType, tupleNode.GetStaticType());
+ std::vector<const std::pair<std::string_view, TRuntimeNode>> items;
+ items.emplace_back(NYql::BlockLengthColumnName, pgmBuilder.Nth(tupleNode, tupleType->GetElementsCount() - 1));
+ for (size_t i = 0; i < tupleType->GetElementsCount() - 1; i++) {
+ const auto& memberName = pgmBuilder.GetTypeEnvironment().InternName(ToString(i));
+ items.emplace_back(memberName.Str(), pgmBuilder.Nth(tupleNode, i));
+ }
+ return pgmBuilder.NewStruct(items);
+ }
+ );
+}
+
// Stream<Multi<...>> -> List<Tuple<...>>
TRuntimeNode FromWideStream(TProgramBuilder& pgmBuilder, TRuntimeNode stream) {
return pgmBuilder.Collect(pgmBuilder.NarrowMap(pgmBuilder.ToFlow(stream),
@@ -44,21 +60,21 @@ TRuntimeNode BuildBlockJoin(TProgramBuilder& pgmBuilder, EJoinKind joinKind,
TRuntimeNode rightList, const TVector<ui32>& rightKeyColumns, const TVector<ui32>& rightKeyDrops, bool rightAny
) {
const auto leftStream = ThrottleStream(pgmBuilder, ToWideStream(pgmBuilder, leftList));
- const auto rightStream = ThrottleStream(pgmBuilder, ToWideStream(pgmBuilder, rightList));
+ const auto rightBlockList = ToBlockList(pgmBuilder, rightList);
const auto joinReturnType = MakeJoinType(pgmBuilder,
joinKind,
leftStream.GetStaticType(),
leftKeyDrops,
- rightStream.GetStaticType(),
+ rightBlockList.GetStaticType(),
rightKeyDrops
);
- auto rightBlockStorageNode = pgmBuilder.BlockStorage(rightStream, pgmBuilder.NewResourceType(BlockStorageResourcePrefix));
+ auto rightBlockStorageNode = pgmBuilder.BlockStorage(rightBlockList, pgmBuilder.NewResourceType(BlockStorageResourcePrefix));
if (joinKind != EJoinKind::Cross) {
rightBlockStorageNode = pgmBuilder.BlockMapJoinIndex(
rightBlockStorageNode,
- AS_TYPE(TStreamType, rightStream.GetStaticType())->GetItemType(),
+ AS_TYPE(TListType, rightBlockList.GetStaticType())->GetItemType(),
rightKeyColumns,
rightAny,
pgmBuilder.NewResourceType(BlockMapJoinIndexResourcePrefix)
@@ -68,7 +84,7 @@ TRuntimeNode BuildBlockJoin(TProgramBuilder& pgmBuilder, EJoinKind joinKind,
auto joinNode = pgmBuilder.BlockMapJoinCore(
leftStream,
rightBlockStorageNode,
- AS_TYPE(TStreamType, rightStream.GetStaticType())->GetItemType(),
+ AS_TYPE(TListType, rightBlockList.GetStaticType())->GetItemType(),
joinKind,
leftKeyColumns,
leftKeyDrops,
@@ -92,20 +108,20 @@ TRuntimeNode BuildBlockJoinsWithNodeMultipleUsage(TProgramBuilder& pgmBuilder, E
const auto leftStream2 = ThrottleStream(pgmBuilder, ToWideStream(pgmBuilder, leftList));
const auto leftStream3 = ThrottleStream(pgmBuilder, ToWideStream(pgmBuilder, leftList));
- const auto rightStream = ThrottleStream(pgmBuilder, ToWideStream(pgmBuilder, rightList));
+ const auto rightBlockList = ToBlockList(pgmBuilder, rightList);
const auto joinReturnType = MakeJoinType(pgmBuilder,
joinKind,
leftStream.GetStaticType(),
leftKeyDrops,
- rightStream.GetStaticType(),
+ rightBlockList.GetStaticType(),
rightKeyDrops
);
- auto rightBlockStorageNode = pgmBuilder.BlockStorage(rightStream, pgmBuilder.NewResourceType(BlockStorageResourcePrefix));
+ auto rightBlockStorageNode = pgmBuilder.BlockStorage(rightBlockList, pgmBuilder.NewResourceType(BlockStorageResourcePrefix));
auto rightBlockIndexNode = pgmBuilder.BlockMapJoinIndex(
rightBlockStorageNode,
- AS_TYPE(TStreamType, rightStream.GetStaticType())->GetItemType(),
+ AS_TYPE(TListType, rightBlockList.GetStaticType())->GetItemType(),
rightKeyColumns,
rightAny,
pgmBuilder.NewResourceType(BlockMapJoinIndexResourcePrefix)
@@ -114,7 +130,7 @@ TRuntimeNode BuildBlockJoinsWithNodeMultipleUsage(TProgramBuilder& pgmBuilder, E
auto joinNode = pgmBuilder.BlockMapJoinCore(
leftStream,
rightBlockIndexNode,
- AS_TYPE(TStreamType, rightStream.GetStaticType())->GetItemType(),
+ AS_TYPE(TListType, rightBlockList.GetStaticType())->GetItemType(),
EJoinKind::Inner,
leftKeyColumns,
leftKeyDrops,
@@ -126,7 +142,7 @@ TRuntimeNode BuildBlockJoinsWithNodeMultipleUsage(TProgramBuilder& pgmBuilder, E
auto joinNode2 = pgmBuilder.BlockMapJoinCore(
leftStream2,
rightBlockIndexNode,
- AS_TYPE(TStreamType, rightStream.GetStaticType())->GetItemType(),
+ AS_TYPE(TListType, rightBlockList.GetStaticType())->GetItemType(),
EJoinKind::Inner,
leftKeyColumns,
leftKeyDrops,
@@ -138,7 +154,7 @@ TRuntimeNode BuildBlockJoinsWithNodeMultipleUsage(TProgramBuilder& pgmBuilder, E
auto joinNode3 = pgmBuilder.BlockMapJoinCore(
leftStream3,
rightBlockStorageNode,
- AS_TYPE(TStreamType, rightStream.GetStaticType())->GetItemType(),
+ AS_TYPE(TListType, rightBlockList.GetStaticType())->GetItemType(),
EJoinKind::Cross,
{},
{},
@@ -805,6 +821,62 @@ Y_UNIT_TEST_SUITE(TMiniKQLBlockMapJoinTestBasic) {
);
}
+ Y_UNIT_TEST(TestKeyCollisionBug) {
+ TSetup<false> setup(GetNodeFactory());
+ const size_t testSize = 8;
+
+ // 1. Make input for the "left" stream.
+ // Presence of zero key is important in order to make collision
+ // with NULL sentinel value in previous implementation
+ TVector<ui64> leftKeyInit(testSize);
+ std::iota(leftKeyInit.begin(), leftKeyInit.end(), 0);
+ TVector<ui64> leftSubkeyInit;
+ std::transform(leftKeyInit.cbegin(), leftKeyInit.cend(), std::back_inserter(leftSubkeyInit),
+ [](const auto key) { return key * 1001; });
+ TVector<TString> leftValueInit;
+ std::transform(leftKeyInit.cbegin(), leftKeyInit.cend(), std::back_inserter(leftValueInit),
+ [](const auto key) { return threeLetterValues[key]; });
+
+ // 2. Make input for the "right" stream.
+ TVector<ui64> rightKeyInit(testSize);
+ std::iota(rightKeyInit.begin(), rightKeyInit.end(), 0);
+ TVector<TString> rightValueInit;
+ std::transform(rightKeyInit.cbegin(), rightKeyInit.cend(), std::back_inserter(rightValueInit),
+ [](const auto key) { return std::to_string(key); });
+
+ // 3. Make "expected" data.
+ TMap<ui64, TString> rightMap;
+ for (size_t i = 0; i < rightKeyInit.size(); i++) {
+ rightMap[rightKeyInit[i]] = rightValueInit[i];
+ }
+ TVector<ui64> expectedKey;
+ TVector<ui64> expectedSubkey;
+ TVector<TString> expectedValue;
+ TVector<TString> expectedRightValue;
+ for (size_t i = 0; i < leftKeyInit.size(); i++) {
+ const auto& found = rightMap.find(leftKeyInit[i]);
+ if (found != rightMap.cend()) {
+ expectedKey.push_back(leftKeyInit[i]);
+ expectedSubkey.push_back(leftSubkeyInit[i]);
+ expectedValue.push_back(leftValueInit[i]);
+ expectedRightValue.push_back(found->second);
+ }
+ }
+
+ auto [leftType, leftList] = ConvertVectorsToTuples(setup,
+ leftKeyInit, leftSubkeyInit, leftValueInit);
+ auto [rightType, rightList] = ConvertVectorsToTuples(setup,
+ rightKeyInit, rightValueInit);
+ auto [expectedType, expected] = ConvertVectorsToTuples(setup,
+ expectedKey, expectedSubkey, expectedValue, expectedRightValue);
+
+ RunTestBlockJoin(setup, EJoinKind::Inner, expectedType, expected,
+ leftType, std::move(leftList), {0},
+ rightType, std::move(rightList), {0},
+ {}, {0}
+ );
+ }
+
} // Y_UNIT_TEST_SUITE
Y_UNIT_TEST_SUITE(TMiniKQLBlockMapJoinTestOptional) {
diff --git a/yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut_utils.cpp b/yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut_utils.cpp
index 2dbeb2dbac6..e68356068ca 100644
--- a/yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut_utils.cpp
+++ b/yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut_utils.cpp
@@ -155,10 +155,11 @@ TType* MakeBlockTupleType(TProgramBuilder& pgmBuilder, TType* tupleType, bool sc
TType* MakeJoinType(TProgramBuilder& pgmBuilder, EJoinKind joinKind,
TType* leftStreamType, const TVector<ui32>& leftKeyDrops,
- TType* rightStreamType, const TVector<ui32>& rightKeyDrops
+ TType* rightListType, const TVector<ui32>& rightKeyDrops
) {
const auto leftStreamItems = ValidateBlockStreamType(leftStreamType);
- const auto rightStreamItems = ValidateBlockStreamType(rightStreamType);
+ const auto rightListItemType = AS_TYPE(TListType, rightListType)->GetItemType();
+ const auto rightPlainStructType = AS_TYPE(TStructType, pgmBuilder.ValidateBlockStructType(AS_TYPE(TStructType, rightListItemType)));
TVector<TType*> joinReturnItems;
@@ -172,15 +173,17 @@ TType* MakeJoinType(TProgramBuilder& pgmBuilder, EJoinKind joinKind,
if (joinKind != EJoinKind::LeftSemi && joinKind != EJoinKind::LeftOnly) {
const THashSet<ui32> rightKeyDropsSet(rightKeyDrops.cbegin(), rightKeyDrops.cend());
- for (size_t i = 0; i < rightStreamItems.size() - 1; i++) { // Excluding block size
- if (rightKeyDropsSet.contains(i)) {
+ for (size_t i = 0; i < rightPlainStructType->GetMembersCount(); i++) {
+ const auto& memberName = rightPlainStructType->GetMemberName(i);
+ if (rightKeyDropsSet.contains(i) || memberName == NYql::BlockLengthColumnName) {
continue;
}
+ auto memberType = rightPlainStructType->GetMemberType(i);
joinReturnItems.push_back(pgmBuilder.NewBlockType(
- joinKind == EJoinKind::Inner ? rightStreamItems[i]
- : IsOptionalOrNull(rightStreamItems[i]) ? rightStreamItems[i]
- : pgmBuilder.NewOptionalType(rightStreamItems[i]),
+ joinKind == EJoinKind::Inner ? memberType
+ : IsOptionalOrNull(memberType) ? memberType
+ : pgmBuilder.NewOptionalType(memberType),
TBlockType::EShape::Many
));
}
diff --git a/yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut_utils.h b/yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut_utils.h
index 5d4642a87c3..ad54d72668c 100644
--- a/yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut_utils.h
+++ b/yql/essentials/minikql/comp_nodes/ut/mkql_block_map_join_ut_utils.h
@@ -12,7 +12,7 @@ inline bool IsOptionalOrNull(const TType* type) {
TType* MakeBlockTupleType(TProgramBuilder& pgmBuilder, TType* tupleType, bool scalar);
TType* MakeJoinType(TProgramBuilder& pgmBuilder, EJoinKind joinKind,
TType* leftStreamType, const TVector<ui32>& leftKeyDrops,
- TType* rightStreamType, const TVector<ui32>& rightKeyDrops
+ TType* rightListType, const TVector<ui32>& rightKeyDrops
);
NUdf::TUnboxedValuePod ToBlocks(TComputationContext& ctx, size_t blockSize,
diff --git a/yql/essentials/minikql/comp_nodes/ut/mkql_grace_join_ut.cpp b/yql/essentials/minikql/comp_nodes/ut/mkql_grace_join_ut.cpp
index 3bedebe1c87..293518a991c 100644
--- a/yql/essentials/minikql/comp_nodes/ut/mkql_grace_join_ut.cpp
+++ b/yql/essentials/minikql/comp_nodes/ut/mkql_grace_join_ut.cpp
@@ -205,9 +205,9 @@ Y_UNIT_TEST_SUITE(TMiniKQLGraceJoinImpTest) {
ui32 bigStrSize[2] = {151, 151};
- GraceJoin::TTable bigTable(1,1,1,1);
- GraceJoin::TTable smallTable(1,1,1,1);
- GraceJoin::TTable joinTable(1,1,1,1);
+ GraceJoin::TTable bigTable(nullptr,0,1,1,1,1);
+ GraceJoin::TTable smallTable(nullptr,0,1,1,1,1);
+ GraceJoin::TTable joinTable(nullptr,0,1,1,1,1);
const ui64 TupleSize = 1024;
@@ -269,9 +269,9 @@ Y_UNIT_TEST_SUITE(TMiniKQLGraceJoinImpTest) {
NMemInfo::TMemInfo mi = NMemInfo::GetMemInfo();
CTEST << "Mem usage before tables tuples added (MB): " << mi.RSS / (1024 * 1024) << Endl;
- GraceJoin::TTable bigTable(1,1,1,1);
- GraceJoin::TTable smallTable(1,1,1,1);
- GraceJoin::TTable joinTable(1,1,1,1);
+ GraceJoin::TTable bigTable(nullptr,0,1,1,1,1);
+ GraceJoin::TTable smallTable(nullptr,0,1,1,1,1);
+ GraceJoin::TTable joinTable(nullptr,0,1,1,1,1);
std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now();
@@ -442,9 +442,9 @@ Y_UNIT_TEST_SUITE(TMiniKQLGraceJoinImpTest) {
NMemInfo::TMemInfo mi = NMemInfo::GetMemInfo();
CTEST << "Mem usage before tables tuples added (MB): " << mi.RSS / (1024 * 1024) << Endl;
- GraceJoin::TTable bigTable(1,1,1,1);
- GraceJoin::TTable smallTable(1,1,1,1);
- GraceJoin::TTable joinTable(1,1,1,1);
+ GraceJoin::TTable bigTable(nullptr,0,1,1,1,1);
+ GraceJoin::TTable smallTable(nullptr,0,1,1,1,1);
+ GraceJoin::TTable joinTable(nullptr,0,1,1,1,1);
std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now();
@@ -625,9 +625,9 @@ Y_UNIT_TEST_SUITE(TMiniKQLGraceJoinAnyTest) {
- GraceJoin::TTable bigTable (1,1,1,1,0,0,1, nullptr, true);
- GraceJoin::TTable smallTable(1,1,1,1,0,0,1, nullptr, true);
- GraceJoin::TTable joinTable (1,1,1,1,0,0,1, nullptr, true);
+ GraceJoin::TTable bigTable (nullptr, 0, 1,1,1,1,0,0,1, nullptr, true);
+ GraceJoin::TTable smallTable(nullptr, 0, 1,1,1,1,0,0,1, nullptr, true);
+ GraceJoin::TTable joinTable (nullptr, 0, 1,1,1,1,0,0,1, nullptr, true);
std::mt19937_64 rng;
std::uniform_int_distribution<ui64> dist(0, 10000 - 1);
@@ -763,9 +763,9 @@ Y_UNIT_TEST_SUITE(TMiniKQLGraceSelfJoinTest) {
- GraceJoin::TTable bigTable (1,1,1,1,0,0,1, nullptr, false);
- GraceJoin::TTable smallTable(1,1,1,1,0,0,1, nullptr, false);
- GraceJoin::TTable joinTable (1,1,1,1,0,0,1, nullptr, false);
+ GraceJoin::TTable bigTable (nullptr, 0, 1,1,1,1,0,0,1, nullptr, false);
+ GraceJoin::TTable smallTable(nullptr, 0, 1,1,1,1,0,0,1, nullptr, false);
+ GraceJoin::TTable joinTable (nullptr, 0, 1,1,1,1,0,0,1, nullptr, false);
std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now();
diff --git a/yql/essentials/minikql/comp_nodes/ut/mkql_iterable_ut.cpp b/yql/essentials/minikql/comp_nodes/ut/mkql_iterable_ut.cpp
new file mode 100644
index 00000000000..4060beb5507
--- /dev/null
+++ b/yql/essentials/minikql/comp_nodes/ut/mkql_iterable_ut.cpp
@@ -0,0 +1,40 @@
+#include "mkql_computation_node_ut.h"
+
+namespace NKikimr::NMiniKQL {
+
+Y_UNIT_TEST_SUITE(TMiniKQLIterableTest) {
+
+ // This particular test builds the graph similar to the one
+ // below, that is a part of the reproducer in YQL-19836.
+ // (return SqueezeToDict (Map (ToFlow (Iterable
+ // (lambda '() (EmptyIterator (StreamType (StructType '('"a" (DataType 'Uint64))))))
+ // )) (lambda '($9) '((Member $9 '"a") $9)))
+ // (lambda '($10) (Nth $10 '0))
+ // (lambda '($11) (Nth $11 '1))
+ // '('Many 'Hashed 'Compact))
+ Y_UNIT_TEST_LLVM(TestEmptyIterable) {
+ TSetup<LLVM> setup;
+ TProgramBuilder& pb = *setup.PgmBuilder;
+
+ const TProgramBuilder::TZeroLambda lambda = [&pb]() {
+ return pb.EmptyIterator(pb.NewStreamType(pb.NewStructType({
+ {"a", pb.NewDataType(NUdf::EDataSlot::Uint64)}
+ })));
+ };
+ const auto root = pb.SqueezeToHashedDict(
+ pb.ToFlow(pb.Iterable(lambda)),
+ /* isMany = */ true,
+ [&pb](TRuntimeNode node) { return pb.Member(node, "a"); },
+ [](TRuntimeNode node) { return node; },
+ /* isCompact = */ true
+ );
+ auto graph = setup.BuildGraph(root);
+ NUdf::TUnboxedValue dict = graph->GetValue();
+
+ UNIT_ASSERT(!dict.IsSpecial());
+ UNIT_ASSERT_EQUAL(dict.GetDictLength(), 0);
+ }
+
+} // Y_UNIT_TEST_SUITE(TMiniKQLIterableTest)
+
+} // namespace NKikimr::NMiniKQL
diff --git a/yql/essentials/minikql/comp_nodes/ut/ya.make.inc b/yql/essentials/minikql/comp_nodes/ut/ya.make.inc
index 73c063d865c..aa6ff27a465 100644
--- a/yql/essentials/minikql/comp_nodes/ut/ya.make.inc
+++ b/yql/essentials/minikql/comp_nodes/ut/ya.make.inc
@@ -51,6 +51,7 @@ SET(ORIG_SOURCES
mkql_group_ut.cpp
mkql_dict_ut.cpp
mkql_isa_detection_ut.cpp
+ mkql_iterable_ut.cpp
mkql_join_ut.cpp
mkql_join_dict_ut.cpp
mkql_grace_join_ut.cpp
diff --git a/yql/essentials/minikql/mkql_program_builder.cpp b/yql/essentials/minikql/mkql_program_builder.cpp
index 5e8e89da4ca..97d681db74e 100644
--- a/yql/essentials/minikql/mkql_program_builder.cpp
+++ b/yql/essentials/minikql/mkql_program_builder.cpp
@@ -5756,25 +5756,30 @@ TRuntimeNode TProgramBuilder::ScalarApply(const TArrayRef<const TRuntimeNode>& a
return TRuntimeNode(builder.Build(), false);
}
-TRuntimeNode TProgramBuilder::BlockStorage(TRuntimeNode stream, TType* returnType) {
- if constexpr (RuntimeVersion < 59U) {
+TRuntimeNode TProgramBuilder::BlockStorage(TRuntimeNode list, TType* returnType) {
+ if constexpr (RuntimeVersion < 62U) {
THROW yexception() << "Runtime version (" << RuntimeVersion << ") too old for " << __func__;
}
- ValidateBlockStreamType(stream.GetStaticType());
+ MKQL_ENSURE(list.GetStaticType()->IsList(), "Expected List as input type");
+ const auto listType = AS_TYPE(TListType, list.GetStaticType());
+
+ MKQL_ENSURE(listType->GetItemType()->IsStruct(), "Expected List of Struct as input type");
+ const auto itemBlockStructType = AS_TYPE(TStructType, listType->GetItemType());
+ ValidateBlockStructType(itemBlockStructType);
MKQL_ENSURE(returnType->IsResource(), "Expected Resource as a result type");
auto returnResourceType = AS_TYPE(TResourceType, returnType);
MKQL_ENSURE(returnResourceType->GetTag().StartsWith(BlockStorageResourcePrefix), "Expected block storage resource");
TCallableBuilder callableBuilder(Env, __func__, returnType);
- callableBuilder.Add(stream);
+ callableBuilder.Add(list);
return TRuntimeNode(callableBuilder.Build(), false);
}
-TRuntimeNode TProgramBuilder::BlockMapJoinIndex(TRuntimeNode blockStorage, TType* streamItemType, const TArrayRef<const ui32>& keyColumns, bool any, TType* returnType) {
- if constexpr (RuntimeVersion < 59U) {
+TRuntimeNode TProgramBuilder::BlockMapJoinIndex(TRuntimeNode blockStorage, TType* listItemType, const TArrayRef<const ui32>& keyColumns, bool any, TType* returnType) {
+ if constexpr (RuntimeVersion < 62U) {
THROW yexception() << "Runtime version (" << RuntimeVersion << ") too old for " << __func__;
}
@@ -5782,7 +5787,9 @@ TRuntimeNode TProgramBuilder::BlockMapJoinIndex(TRuntimeNode blockStorage, TType
auto blockStorageType = AS_TYPE(TResourceType, blockStorage.GetStaticType());
MKQL_ENSURE(blockStorageType->GetTag().StartsWith(BlockStorageResourcePrefix), "Expected block storage resource");
- ValidateBlockType(streamItemType);
+ MKQL_ENSURE(listItemType->IsStruct(), "Expected Struct as an item type");
+ const auto itemBlockStructType = AS_TYPE(TStructType, listItemType);
+ ValidateBlockStructType(itemBlockStructType);
MKQL_ENSURE(returnType->IsResource(), "Expected Resource as a result type");
auto returnResourceType = AS_TYPE(TResourceType, returnType);
@@ -5797,18 +5804,18 @@ TRuntimeNode TProgramBuilder::BlockMapJoinIndex(TRuntimeNode blockStorage, TType
TCallableBuilder callableBuilder(Env, __func__, returnType);
callableBuilder.Add(blockStorage);
- callableBuilder.Add(TRuntimeNode(streamItemType, true));
+ callableBuilder.Add(TRuntimeNode(listItemType, true));
callableBuilder.Add(NewTuple(keyColumnsNodes));
callableBuilder.Add(NewDataLiteral((bool)any));
return TRuntimeNode(callableBuilder.Build(), false);
}
-TRuntimeNode TProgramBuilder::BlockMapJoinCore(TRuntimeNode leftStream, TRuntimeNode rightBlockStorage, TType* rightStreamItemType, EJoinKind joinKind,
+TRuntimeNode TProgramBuilder::BlockMapJoinCore(TRuntimeNode leftStream, TRuntimeNode rightBlockStorage, TType* rightListItemType, EJoinKind joinKind,
const TArrayRef<const ui32>& leftKeyColumns, const TArrayRef<const ui32>& leftKeyDrops,
const TArrayRef<const ui32>& rightKeyColumns, const TArrayRef<const ui32>& rightKeyDrops, TType* returnType
) {
- if constexpr (RuntimeVersion < 59U) {
+ if constexpr (RuntimeVersion < 62U) {
THROW yexception() << "Runtime version (" << RuntimeVersion << ") too old for " << __func__;
}
@@ -5831,9 +5838,12 @@ TRuntimeNode TProgramBuilder::BlockMapJoinCore(TRuntimeNode leftStream, TRuntime
}
ValidateBlockStreamType(leftStream.GetStaticType());
- ValidateBlockType(rightStreamItemType);
ValidateBlockStreamType(returnType);
+ MKQL_ENSURE(rightListItemType->IsStruct(), "Expected Struct as an right item type");
+ const auto rightItemBlockStructType = AS_TYPE(TStructType, rightListItemType);
+ ValidateBlockStructType(rightItemBlockStructType);
+
TRuntimeNode::TList leftKeyColumnsNodes;
leftKeyColumnsNodes.reserve(leftKeyColumns.size());
std::transform(leftKeyColumns.cbegin(), leftKeyColumns.cend(),
@@ -5865,7 +5875,7 @@ TRuntimeNode TProgramBuilder::BlockMapJoinCore(TRuntimeNode leftStream, TRuntime
TCallableBuilder callableBuilder(Env, __func__, returnType);
callableBuilder.Add(leftStream);
callableBuilder.Add(rightBlockStorage);
- callableBuilder.Add(TRuntimeNode(rightStreamItemType, true));
+ callableBuilder.Add(TRuntimeNode(rightListItemType, true));
callableBuilder.Add(NewDataLiteral((ui32)joinKind));
callableBuilder.Add(NewTuple(leftKeyColumnsNodes));
callableBuilder.Add(NewTuple(leftKeyDropsNodes));
diff --git a/yql/essentials/minikql/mkql_program_builder.h b/yql/essentials/minikql/mkql_program_builder.h
index f71d47a3872..e801d97da44 100644
--- a/yql/essentials/minikql/mkql_program_builder.h
+++ b/yql/essentials/minikql/mkql_program_builder.h
@@ -264,9 +264,9 @@ public:
TRuntimeNode BlockFromPg(TRuntimeNode input, TType* returnType);
TRuntimeNode BlockPgResolvedCall(const std::string_view& name, ui32 id,
const TArrayRef<const TRuntimeNode>& args, TType* returnType);
- TRuntimeNode BlockStorage(TRuntimeNode stream, TType* returnType);
- TRuntimeNode BlockMapJoinIndex(TRuntimeNode blockStorage, TType* streamItemType, const TArrayRef<const ui32>& keyColumns, bool any, TType* returnType);
- TRuntimeNode BlockMapJoinCore(TRuntimeNode leftStream, TRuntimeNode rightBlockStorage, TType* rightStreamItemType, EJoinKind joinKind,
+ TRuntimeNode BlockStorage(TRuntimeNode list, TType* returnType);
+ TRuntimeNode BlockMapJoinIndex(TRuntimeNode blockStorage, TType* listItemType, const TArrayRef<const ui32>& keyColumns, bool any, TType* returnType);
+ TRuntimeNode BlockMapJoinCore(TRuntimeNode leftStream, TRuntimeNode rightBlockStorage, TType* rightListItemType, EJoinKind joinKind,
const TArrayRef<const ui32>& leftKeyColumns, const TArrayRef<const ui32>& leftKeyDrops,
const TArrayRef<const ui32>& rightKeyColumns, const TArrayRef<const ui32>& rightKeyDrops, TType* returnType
);
diff --git a/yql/essentials/minikql/mkql_runtime_version.h b/yql/essentials/minikql/mkql_runtime_version.h
index ed228c7b03d..be71a1646f3 100644
--- a/yql/essentials/minikql/mkql_runtime_version.h
+++ b/yql/essentials/minikql/mkql_runtime_version.h
@@ -24,7 +24,7 @@ namespace NMiniKQL {
// 1. Bump this version every time incompatible runtime nodes are introduced.
// 2. Make sure you provide runtime node generation for previous runtime versions.
#ifndef MKQL_RUNTIME_VERSION
-#define MKQL_RUNTIME_VERSION 61U
+#define MKQL_RUNTIME_VERSION 62U
#endif
// History:
diff --git a/yql/essentials/minikql/protobuf_udf/type_builder.cpp b/yql/essentials/minikql/protobuf_udf/type_builder.cpp
index f44c58e580d..fc28bb1548c 100644
--- a/yql/essentials/minikql/protobuf_udf/type_builder.cpp
+++ b/yql/essentials/minikql/protobuf_udf/type_builder.cpp
@@ -37,9 +37,17 @@ private:
TType* GetBytesType();
TType* GetInt64Type();
TType* GetYsonType();
- TType* GetType(const FieldDescriptor* fd, bool defaultYtSerialize);
+ // Get type without optional/repeated/required modifier.
+ TType* GetUnderlyingType(const FieldDescriptor* fd, bool defaultYtSerialize);
+ // Wrap |type| based on modifiers.
+ TType* WrapTypeFromModifiers(TType* type,
+ const FieldDescriptor* fd,
+ EFieldContext fieldContext,
+ const std::optional<NYT::NDetail::TProtobufFieldOptions>& ytOpts,
+ TFlags<EFieldFlag>& flags,
+ bool recursive);
TType* GetOptionalType(TType* type);
- TType* GetListType(TType* type);
+ TType* GetListType(TType* type, const std::optional<NYT::NDetail::TProtobufFieldOptions>& ytOpts, TFlags<EFieldFlag>& flags);
private:
using TTypeMap = THashMap<TType*, TType*>;
@@ -111,6 +119,7 @@ TType* TTypeBuilder::GenerateTypeInfo(const Descriptor* descriptor, bool default
ythrow yexception() << "can't handle recursive types: "
<< fullName;
case ERecursionTraits::Bytes:
+ case ERecursionTraits::BytesV2:
case ERecursionTraits::Ignore:
return nullptr;
}
@@ -122,9 +131,7 @@ TType* TTypeBuilder::GenerateTypeInfo(const Descriptor* descriptor, bool default
std::shared_ptr<TMessageInfo> message = std::make_shared<TMessageInfo>();
- auto makeField = [&](ui32& pos, TFlags<EFieldFlag>& flags, const IStructTypeBuilder::TPtr& structType, const FieldDescriptor* fd, std::optional<bool> fromVariant) {
- bool isMessageField = fd->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE;
-
+ auto makeField = [&](ui32& pos, TFlags<EFieldFlag>& flags, const IStructTypeBuilder::TPtr& structType, const FieldDescriptor* fd, EFieldContext fieldContext) {
auto name = fd->name();
if (UseJsonName_) {
Y_ASSERT(!fd->json_name().empty());
@@ -136,8 +143,13 @@ TType* TTypeBuilder::GenerateTypeInfo(const Descriptor* descriptor, bool default
// Создаём тип поля
TType* type = nullptr;
std::optional<NYT::NDetail::TProtobufFieldOptions> ytOpts;
-
- auto wrapRecursiveType = [&](TType* type, TFlags<EFieldFlag>& flags) {
+ if (YtMode_) {
+ ytOpts = NYT::NDetail::GetFieldOptions(fd,
+ defaultYtSerialize
+ ? MakeMaybe<NYT::NDetail::TProtobufFieldOptions>(NYT::NDetail::TProtobufFieldOptions{.SerializationMode = NYT::NDetail::EProtobufSerializationMode::Yt})
+ : Nothing());
+ }
+ auto wrapRecursiveType = [&](TType* type, TFlags<EFieldFlag>& flags, bool wrapWithModifiers) {
if (type) {
return type;
}
@@ -145,20 +157,16 @@ TType* TTypeBuilder::GenerateTypeInfo(const Descriptor* descriptor, bool default
flags |= EFieldFlag::Void;
return Builder_.Void();
}
- Y_ENSURE(Recursion_ == ERecursionTraits::Bytes);
+ Y_ENSURE(Recursion_ == ERecursionTraits::Bytes || Recursion_ == ERecursionTraits::BytesV2);
flags |= EFieldFlag::Binary;
type = GetBytesType();
- if (fromVariant && !*fromVariant) {
- type = GetOptionalType(type);
+ if (!wrapWithModifiers) {
+ return type;
}
- return type;
+ return WrapTypeFromModifiers(type, fd, fieldContext, ytOpts, flags, /*recursive=*/true);
};
if (YtMode_) {
- ytOpts = NYT::NDetail::GetFieldOptions(fd,
- defaultYtSerialize
- ? MakeMaybe<NYT::NDetail::TProtobufFieldOptions>(NYT::NDetail::TProtobufFieldOptions{.SerializationMode = NYT::NDetail::EProtobufSerializationMode::Yt})
- : Nothing());
if (fd->is_map()) {
auto mapMessage = fd->message_type();
switch (ytOpts->MapMode) {
@@ -171,8 +179,8 @@ TType* TTypeBuilder::GenerateTypeInfo(const Descriptor* descriptor, bool default
Y_ENSURE(mapMessage->field_count() == 2);
flags |= EFieldFlag::Dict;
type = Builder_.Dict()
- ->Key(GetType(mapMessage->map_key(), false))
- .Value(wrapRecursiveType(GetType(mapMessage->map_value(), true), flags))
+ ->Key(GetUnderlyingType(mapMessage->map_key(), false))
+ .Value(wrapRecursiveType(GetUnderlyingType(mapMessage->map_value(), true), flags, /*wrapWithModifiers=*/false))
.Build();
message->DictTypes[fd->number()] = type;
if (NYT::NDetail::EProtobufMapMode::OptionalDict == ytOpts->MapMode) {
@@ -181,7 +189,7 @@ TType* TTypeBuilder::GenerateTypeInfo(const Descriptor* descriptor, bool default
}
break;
}
- } else if (isMessageField && ytOpts->SerializationMode == NYT::NDetail::EProtobufSerializationMode::Protobuf) {
+ } else if (fd->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE && ytOpts->SerializationMode == NYT::NDetail::EProtobufSerializationMode::Protobuf) {
type = GetBytesType();
flags |= EFieldFlag::Binary;
} else if (ytOpts->Type) {
@@ -211,35 +219,17 @@ TType* TTypeBuilder::GenerateTypeInfo(const Descriptor* descriptor, bool default
<< ", field: " << fd->name();
}
} else {
- type = GetType(fd, false);
+ type = GetUnderlyingType(fd, false);
}
} else {
- type = GetType(fd, false);
+ type = GetUnderlyingType(fd, false);
}
if (!flags.HasFlags(EFieldFlag::Dict)) {
if (type) {
- if (fd->is_repeated()) {
- // Преобразуем базовый тип к списку
- type = GetListType(type);
- // и к nullable, если это необходимо.
- if (OptionalLists_ || (ytOpts && NYT::NDetail::EProtobufListMode::Optional == ytOpts->ListMode)) {
- flags |= EFieldFlag::OptionalContainer;
- type = GetOptionalType(type);
- }
- } else {
- if (fromVariant) {
- if (!*fromVariant) {
- // For 'variant as separate fields' always make optional type
- // Otherwise always ignore optionality
- type = GetOptionalType(type);
- }
- } else if (fd->is_optional() && (isMessageField || !AvoidOptionalScalars(SyntaxAware_, fd))) {
- type = GetOptionalType(type);
- }
- }
+ type = WrapTypeFromModifiers(type, fd, fieldContext, ytOpts, flags, /*recursive=*/false);
} else {
- type = wrapRecursiveType(type, flags);
+ type = wrapRecursiveType(type, flags, /*wrapWithModifiers=*/true);
}
}
@@ -253,6 +243,7 @@ TType* TTypeBuilder::GenerateTypeInfo(const Descriptor* descriptor, bool default
THashMap<const OneofDescriptor*, ui32> visitedOneofs;
for (int i = 0, end = descriptor->field_count(); i < end; ++i) {
const FieldDescriptor* fd = descriptor->field(i);
+ EFieldContext fieldContext = GetFieldContext(fd, YtMode_);
if (auto oneofDescriptor = fd->containing_oneof(); YtMode_ && oneofDescriptor) {
if (!visitedOneofs.contains(oneofDescriptor)) {
auto oneofOptions = NYT::NDetail::GetOneofOptions(oneofDescriptor);
@@ -260,7 +251,8 @@ TType* TTypeBuilder::GenerateTypeInfo(const Descriptor* descriptor, bool default
case NYT::NDetail::EProtobufOneofMode::SeparateFields:
for (int i = 0; i < oneofDescriptor->field_count(); ++i) {
auto& field = message->Fields[oneofDescriptor->field(i)->number()];
- makeField(field.Pos, field.Flags, structType, oneofDescriptor->field(i), false);
+ Y_ENSURE(fieldContext == EFieldContext::InsideOneofYtSeparateFields);
+ makeField(field.Pos, field.Flags, structType, oneofDescriptor->field(i), fieldContext);
}
visitedOneofs.emplace(oneofDescriptor, Max<ui32>());
break;
@@ -269,8 +261,9 @@ TType* TTypeBuilder::GenerateTypeInfo(const Descriptor* descriptor, bool default
for (int i = 0; i < oneofDescriptor->field_count(); ++i) {
auto fdOneof = oneofDescriptor->field(i);
auto& field = message->Fields[fdOneof->number()];
+ Y_ENSURE(fieldContext == EFieldContext::InsideOneofYtVariant);
field.Flags |= EFieldFlag::Variant;
- makeField(message->VariantIndicies[fdOneof->number()], field.Flags, varStructType, fdOneof, true);
+ makeField(message->VariantIndicies[fdOneof->number()], field.Flags, varStructType, fdOneof, fieldContext);
}
structType->AddField(oneofOptions.VariantFieldName, Builder_.Optional()->Item(Builder_.Variant()->Over(varStructType->Build()).Build()).Build(), &visitedOneofs[oneofDescriptor]);
break;
@@ -280,7 +273,7 @@ TType* TTypeBuilder::GenerateTypeInfo(const Descriptor* descriptor, bool default
} else {
// Запоминаем поле по соответствующему тегу из proto
auto& field = message->Fields[fd->number()];
- makeField(field.Pos, field.Flags, structType, fd, std::nullopt);
+ makeField(field.Pos, field.Flags, structType, fd, fieldContext);
}
}
@@ -332,7 +325,7 @@ TType* TTypeBuilder::GetYsonType() {
return YsonType;
}
-TType* TTypeBuilder::GetType(const FieldDescriptor* fd, bool defaultYtSerialize) {
+TType* TTypeBuilder::GetUnderlyingType(const FieldDescriptor* fd, bool defaultYtSerialize) {
FieldDescriptor::Type type = fd->type();
// Unify types
@@ -416,6 +409,36 @@ TType* TTypeBuilder::GetType(const FieldDescriptor* fd, bool defaultYtSerialize)
return BasicTypes_[type];
}
+TType* TTypeBuilder::WrapTypeFromModifiers(TType* type,
+ const FieldDescriptor* fd,
+ EFieldContext fieldContext,
+ const std::optional<NYT::NDetail::TProtobufFieldOptions>& ytOpts,
+ TFlags<EFieldFlag>& flags,
+ bool recursiveType) {
+
+ if (fd->is_repeated()) {
+ // Преобразуем базовый тип к списку
+ return GetListType(type, ytOpts, flags);
+ } else if (fieldContext == EFieldContext::InsideOneofYtSeparateFields) {
+ // For 'one of as separate fields' always make optional type
+ // Otherwise always ignore optionality.
+ return GetOptionalType(type);
+ } else if (fieldContext == EFieldContext::InsideOneofYtVariant) {
+ // Do not wrap type for 'one of as variant'.
+ } else if (fd->is_optional() && (fd->cpp_type() == FieldDescriptor::CPPTYPE_MESSAGE || !AvoidOptionalScalars(SyntaxAware_, fd))) {
+ if (!recursiveType || Recursion_ == ERecursionTraits::BytesV2) {
+ return GetOptionalType(type);
+ }
+ // Needs for backward compatability.
+ // We cannot just wrap optional to not break old queries.
+ flags |= EFieldFlag::RecursiveOptionalUnwrapped;
+ return type;
+ } else if (fd->is_required()) {
+ // Do not wrap required type.
+ }
+ return type;
+}
+
TType* TTypeBuilder::GetOptionalType(TType* type) {
auto ti = Optionals_.find(type);
if (ti != Optionals_.end()) {
@@ -427,19 +450,60 @@ TType* TTypeBuilder::GetOptionalType(TType* type) {
}
}
-TType* TTypeBuilder::GetListType(TType* type) {
+TType* TTypeBuilder::GetListType(TType* type, const std::optional<NYT::NDetail::TProtobufFieldOptions>& ytOpts, TFlags<EFieldFlag>& flags) {
auto ti = Lists_.find(type);
if (ti != Lists_.end()) {
- return ti->second;
+ type = ti->second;
} else {
auto listType = Builder_.List()->Item(type).Build();
Lists_.insert(std::make_pair(type, listType));
- return listType;
+ type = listType;
+ }
+
+ if (OptionalLists_ || (ytOpts && NYT::NDetail::EProtobufListMode::Optional == ytOpts->ListMode)) {
+ flags |= EFieldFlag::OptionalContainer;
+ type = GetOptionalType(type);
}
+ return type;
}
} // namespace
+EFieldContext GetFieldContext(const NProtoBuf::FieldDescriptor* fieldDescriptor, bool ytMode) {
+ Y_ABORT_UNLESS(fieldDescriptor);
+
+ // Check if the field is part of a map (key or value)
+ if (fieldDescriptor->containing_type()->map_key() == fieldDescriptor) {
+ return EFieldContext::MapKey;
+ } else if (fieldDescriptor->containing_type()->map_value() == fieldDescriptor) {
+ return EFieldContext::MapValue;
+ }
+
+ // Check if the field is part of a oneof
+ if (fieldDescriptor->containing_oneof() != nullptr) {
+ if (!ytMode) {
+ return EFieldContext::InsideOneofProtobufSeparateFields;
+ }
+ switch (NYT::NDetail::GetOneofOptions(fieldDescriptor->containing_oneof()).Mode) {
+ case NYT::NDetail::EProtobufOneofMode::SeparateFields:
+ return EFieldContext::InsideOneofYtSeparateFields;
+ case NYT::NDetail::EProtobufOneofMode::Variant:
+ return EFieldContext::InsideOneofYtVariant;
+ }
+ }
+
+ // Determine if the field is optional, required, or repeated
+ if (fieldDescriptor->is_optional()) {
+ return EFieldContext::SeparateOptional;
+ } else if (fieldDescriptor->is_required()) {
+ return EFieldContext::SeparateRequired;
+ } else if (fieldDescriptor->is_repeated()) {
+ return EFieldContext::SeparateRepeated;
+ }
+
+ Y_ABORT("Unhandled field type case");
+}
+
void ProtoTypeBuild(const NProtoBuf::Descriptor* descriptor,
const EEnumFormat enumFormat,
const ERecursionTraits recursion,
diff --git a/yql/essentials/minikql/protobuf_udf/type_builder.h b/yql/essentials/minikql/protobuf_udf/type_builder.h
index 8262c0c0733..9d9652a6f5a 100644
--- a/yql/essentials/minikql/protobuf_udf/type_builder.h
+++ b/yql/essentials/minikql/protobuf_udf/type_builder.h
@@ -22,8 +22,22 @@ enum class EFieldFlag: ui16 {
Dict = 1 << 4,
EnumInt = 1 << 5,
EnumString = 1 << 6,
+ RecursiveOptionalUnwrapped = 1 << 7,
};
+enum class EFieldContext {
+ SeparateOptional,
+ SeparateRequired,
+ SeparateRepeated,
+ MapKey,
+ MapValue,
+ InsideOneofYtVariant,
+ InsideOneofYtSeparateFields,
+ InsideOneofProtobufSeparateFields,
+};
+
+EFieldContext GetFieldContext(const NProtoBuf::FieldDescriptor* fieldDescriptor, bool ytMode);
+
struct TMessageInfo {
struct TFieldInfo {
ui32 Pos;
diff --git a/yql/essentials/minikql/protobuf_udf/ut/type_builder_ut.cpp b/yql/essentials/minikql/protobuf_udf/ut/type_builder_ut.cpp
index 8e1d20662d1..4e903f43a05 100644
--- a/yql/essentials/minikql/protobuf_udf/ut/type_builder_ut.cpp
+++ b/yql/essentials/minikql/protobuf_udf/ut/type_builder_ut.cpp
@@ -1,6 +1,5 @@
#include "type_builder.h"
-//#include <alice/wonderlogs/protos/wonderlogs.pb.h>
#include <yql/essentials/minikql/protobuf_udf/ut/protobuf_ut.pb.h>
#include <yt/yql/providers/yt/lib/schema/schema.h>
#include <yt/yql/providers/yt/common/yql_names.h>
@@ -118,9 +117,65 @@ Y_UNIT_TEST_SUITE(TProtobufTypeBuilderTests) {
CheckYtSchemaCompatibility<NYql::NProtoTest::TAggregated>();
}
-/*
- Y_UNIT_TEST(YtMode_Wonderlog) {
- CheckYtSchemaCompatibility<NAlice::NWonderlogs::TWonderlog, EEnumFormat::Name, ERecursionTraits::Bytes>();
+ Y_UNIT_TEST(FieldTypeParsing) {
+ // Test SeparateOptional.
+ UNIT_ASSERT_EQUAL(NUdf::GetFieldContext(NYql::NProtoTest::TIntegral::descriptor()->FindFieldByName("DoubleField"), /*ytMode=*/true), NUdf::EFieldContext::SeparateOptional);
+
+ // Test SeparateRequired.
+ UNIT_ASSERT_EQUAL(NUdf::GetFieldContext(NYql::NProtoTest::TWithTypeOptions::descriptor()->FindFieldByName("RequiredAnyField"), /*ytMode=*/true), NUdf::EFieldContext::SeparateRequired);
+
+ // Test SeparateRepeated.
+ UNIT_ASSERT_EQUAL(NUdf::GetFieldContext(NYql::NProtoTest::TRepeated::descriptor()->FindFieldByName("Int32Field"), /*ytMode=*/true), NUdf::EFieldContext::SeparateRepeated);
+
+ // Test MapKey and MapValue.
+ auto mapDescriptor = NYql::NProtoTest::TWithMap::descriptor()->FindFieldByName("MapDefault")->message_type();
+ UNIT_ASSERT_EQUAL(NUdf::GetFieldContext(mapDescriptor->map_key(), /*ytMode=*/true), NUdf::EFieldContext::MapKey);
+ UNIT_ASSERT_EQUAL(NUdf::GetFieldContext(mapDescriptor->map_value(), /*ytMode=*/true), NUdf::EFieldContext::MapValue);
+
+ // Test InsideOneofVariant fields in TDefaultSeparateFields.
+ auto defaultSeparateFields = NYql::NProtoTest::TWithOneof::TDefaultSeparateFields::descriptor();
+ auto oneof2 = defaultSeparateFields->FindOneofByName("Oneof2");
+ UNIT_ASSERT(oneof2);
+
+ // Test all fields in the Oneof2 oneof.
+ for (int i = 0; i < oneof2->field_count(); ++i) {
+ auto field = oneof2->field(i);
+ UNIT_ASSERT_EQUAL(NUdf::GetFieldContext(field, /*ytMode=*/true), NUdf::EFieldContext::InsideOneofYtVariant);
+ UNIT_ASSERT_EQUAL(NUdf::GetFieldContext(field, /*ytMode=*/false), NUdf::EFieldContext::InsideOneofProtobufSeparateFields);
+ }
+
+ // Test InsideOneofYtSeparateFields fields in TNoDefault.
+ auto noDefault = NYql::NProtoTest::TWithOneof::TNoDefault::descriptor();
+ auto oneof1 = noDefault->FindOneofByName("Oneof1");
+ UNIT_ASSERT(oneof1);
+
+ // Test all fields in the Oneof1 oneof.
+ for (int i = 0; i < oneof1->field_count(); ++i) {
+ auto field = oneof1->field(i);
+ UNIT_ASSERT_EQUAL(NUdf::GetFieldContext(field, /*ytMode=*/true), NUdf::EFieldContext::InsideOneofYtSeparateFields);
+ UNIT_ASSERT_EQUAL(NUdf::GetFieldContext(field, /*ytMode=*/false), NUdf::EFieldContext::InsideOneofProtobufSeparateFields);
+ }
+
+ // Test InsideOneofYtSeparateFields fields in TSerializationProtobuf.
+ auto serializationProtobuf = NYql::NProtoTest::TWithOneof::TSerializationProtobuf::descriptor();
+ auto oneof = serializationProtobuf->FindOneofByName("Oneof");
+ UNIT_ASSERT(oneof);
+
+ // Test all fields in the Oneof oneof.
+ for (int i = 0; i < oneof->field_count(); ++i) {
+ auto field = oneof->field(i);
+ UNIT_ASSERT_EQUAL(NUdf::GetFieldContext(field, /*ytMode=*/true), NUdf::EFieldContext::InsideOneofYtSeparateFields);
+ UNIT_ASSERT_EQUAL(NUdf::GetFieldContext(field, /*ytMode=*/false), NUdf::EFieldContext::InsideOneofProtobufSeparateFields);
+ }
+
+ // Test TopLevelOneof in TWithOneof.
+ auto withOneof = NYql::NProtoTest::TWithOneof::descriptor();
+ auto topLevelOneof = withOneof->FindOneofByName("TopLevelOneof");
+ UNIT_ASSERT(topLevelOneof);
+
+ // Test the field in TopLevelOneof.
+ auto memberField = topLevelOneof->field(0);
+ UNIT_ASSERT_EQUAL(NUdf::GetFieldContext(memberField, /*ytMode=*/true), NUdf::EFieldContext::InsideOneofYtVariant);
+ UNIT_ASSERT_EQUAL(NUdf::GetFieldContext(memberField, /*ytMode=*/false), NUdf::EFieldContext::InsideOneofProtobufSeparateFields);
}
-*/
};
diff --git a/yql/essentials/minikql/protobuf_udf/value_builder.cpp b/yql/essentials/minikql/protobuf_udf/value_builder.cpp
index 3696308f232..c0da534eb6f 100644
--- a/yql/essentials/minikql/protobuf_udf/value_builder.cpp
+++ b/yql/essentials/minikql/protobuf_udf/value_builder.cpp
@@ -289,6 +289,10 @@ TUnboxedValue FillValueFromProto(
} else if (fd->is_optional()) {
if (r->HasField(proto, fd)) {
return CreateSingleField(valueBuilder, proto, fd, info, fInfo.Flags);
+ } else if (fInfo.Flags.HasFlag(EFieldFlag::RecursiveOptionalUnwrapped)) {
+ throw yexception() << "The recursive field"
+ << " '" << fd->full_name() << "' "
+ << "was attempted to be parsed as a string, but actually it has no value. Consider using the BytesV2 parsing mode to allow for optional recursive messages.";
} else if (fd->has_default_value() || AvoidOptionalScalars(info.SyntaxAware, fd)) {
return CreateDefaultValue(valueBuilder, fd, info, fInfo.Flags);
} else {
diff --git a/yql/essentials/minikql/protobuf_udf/ya.make b/yql/essentials/minikql/protobuf_udf/ya.make
index 352606cab69..0a986282481 100644
--- a/yql/essentials/minikql/protobuf_udf/ya.make
+++ b/yql/essentials/minikql/protobuf_udf/ya.make
@@ -16,7 +16,6 @@ PEERDIR(
yql/essentials/minikql
yt/cpp/mapreduce/interface
yt/yt_proto/yt/formats
- yt/yt_proto/yt/formats
)
END()
diff --git a/yql/essentials/providers/common/mkql/yql_provider_mkql.cpp b/yql/essentials/providers/common/mkql/yql_provider_mkql.cpp
index abe2f9c1e9a..848284e2b41 100644
--- a/yql/essentials/providers/common/mkql/yql_provider_mkql.cpp
+++ b/yql/essentials/providers/common/mkql/yql_provider_mkql.cpp
@@ -1675,17 +1675,17 @@ TMkqlCommonCallableCompiler::TShared::TShared() {
});
AddCallable("BlockStorage", [](const TExprNode& node, TMkqlBuildContext& ctx) {
- const auto stream = MkqlBuildExpr(node.Head(), ctx);
+ const auto list = MkqlBuildExpr(node.Head(), ctx);
const auto returnType = BuildType(node, *node.GetTypeAnn(), ctx.ProgramBuilder);
- return ctx.ProgramBuilder.BlockStorage(stream, returnType);
+ return ctx.ProgramBuilder.BlockStorage(list, returnType);
});
AddCallable("BlockMapJoinIndex", [](const TExprNode& node, TMkqlBuildContext& ctx) {
const auto blockStorage = MkqlBuildExpr(node.Head(), ctx);
- const auto itemType = node.Child(1)->GetTypeAnn()->Cast<TTypeExprType>()->GetType()->Cast<TMultiExprType>();
+ const auto itemType = node.Child(1)->GetTypeAnn()->Cast<TTypeExprType>()->GetType()->Cast<TStructExprType>();
std::vector<ui32> keyColumns;
- node.Child(2)->ForEachChild([&](const TExprNode& child){ keyColumns.emplace_back(*GetWideBlockFieldPosition(*itemType, child.Content())); });
+ node.Child(2)->ForEachChild([&](const TExprNode& child){ keyColumns.emplace_back(*GetFieldPosition(*itemType, child.Content())); });
const bool any = HasSetting(node.Tail(), "any");
@@ -1699,15 +1699,15 @@ TMkqlCommonCallableCompiler::TShared::TShared() {
const auto rightBlockStorage = MkqlBuildExpr(*node.Child(1), ctx);
const auto leftItemType = node.Head().GetTypeAnn()->Cast<TStreamExprType>()->GetItemType()->Cast<TMultiExprType>();
- const auto rightItemType = node.Child(2)->GetTypeAnn()->Cast<TTypeExprType>()->GetType()->Cast<TMultiExprType>();
+ const auto rightItemType = node.Child(2)->GetTypeAnn()->Cast<TTypeExprType>()->GetType()->Cast<TStructExprType>();
const auto joinKind = GetJoinKind(node, node.Child(3)->Content());
std::vector<ui32> leftKeyColumns, leftKeyDrops, rightKeyColumns, rightKeyDrops;
node.Child(4)->ForEachChild([&](const TExprNode& child){ leftKeyColumns.emplace_back(*GetWideBlockFieldPosition(*leftItemType, child.Content())); });
node.Child(5)->ForEachChild([&](const TExprNode& child){ leftKeyDrops.emplace_back(*GetWideBlockFieldPosition(*leftItemType, child.Content())); });
- node.Child(6)->ForEachChild([&](const TExprNode& child){ rightKeyColumns.emplace_back(*GetWideBlockFieldPosition(*rightItemType, child.Content())); });
- node.Child(7)->ForEachChild([&](const TExprNode& child){ rightKeyDrops.emplace_back(*GetWideBlockFieldPosition(*rightItemType, child.Content())); });
+ node.Child(6)->ForEachChild([&](const TExprNode& child){ rightKeyColumns.emplace_back(*GetFieldPosition(*rightItemType, child.Content())); });
+ node.Child(7)->ForEachChild([&](const TExprNode& child){ rightKeyDrops.emplace_back(*GetFieldPosition(*rightItemType, child.Content())); });
const auto rightItemMkqlType = BuildType(*node.Child(2), *rightItemType, ctx.ProgramBuilder);
const auto returnType = BuildType(node, *node.GetTypeAnn(), ctx.ProgramBuilder);
diff --git a/yql/essentials/public/fastcheck/format.cpp b/yql/essentials/public/fastcheck/format.cpp
index d4717b4bf79..b487c56fc19 100644
--- a/yql/essentials/public/fastcheck/format.cpp
+++ b/yql/essentials/public/fastcheck/format.cpp
@@ -25,6 +25,21 @@ TString NormalizeEOL(TStringBuf input) {
return res;
}
+TString ReplaceHidden(TStringBuf input) {
+ TStringBuilder res;
+ for (const auto c : input) {
+ if (c == ' ') {
+ res << "\xe2\x80\xa2";
+ } else if (c == '\t') {
+ res << "\xe2\x86\x92";
+ } else {
+ res << c;
+ }
+ }
+
+ return res;
+}
+
class TFormatRunner : public ICheckRunner {
public:
TString GetCheckName() const final {
@@ -107,7 +122,7 @@ private:
}
auto issue = TIssue(origPos, TStringBuilder() <<
- "Format mismatch, expected:\n" << formattedSample << "\nbut got:\n" << origSample);
+ "Format mismatch, expected:\n" << ReplaceHidden(formattedSample) << "\nbut got:\n" << ReplaceHidden(origSample) << "\n");
issue.SetCode(EYqlIssueCode::TIssuesIds_EIssueCode_WARNING, ESeverity::TSeverityIds_ESeverityId_S_WARNING);
res.Issues.AddIssue(issue);
}
diff --git a/yql/essentials/public/fastcheck/linter_ut.cpp b/yql/essentials/public/fastcheck/linter_ut.cpp
index c0315d20cf3..c7f7cb45d20 100644
--- a/yql/essentials/public/fastcheck/linter_ut.cpp
+++ b/yql/essentials/public/fastcheck/linter_ut.cpp
@@ -173,6 +173,26 @@ Y_UNIT_TEST_SUITE(TLinterTests) {
UNIT_ASSERT_VALUES_EQUAL(pos.Column, 13);
}
+ Y_UNIT_TEST(BadFormatYqlHidden) {
+ TChecksRequest request;
+ request.Program = "select\t1 ";
+ 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(!res.Checks[0].Success);
+ UNIT_ASSERT_NO_DIFF(res.Checks[0].Issues.ToString(),
+ "<main>:1:0: Warning: Format mismatch, expected:\n"
+ "SELECT\n"
+ "••••1\n"
+ ";\n\n"
+ "but got:\n"
+ "select→1•\n"
+ ", code: 3\n");
+ }
+
Y_UNIT_TEST(GoodParserSExpr) {
TChecksRequest request;
request.Program = "((return world))";
diff --git a/yql/essentials/public/udf/udf_log.h b/yql/essentials/public/udf/udf_log.h
index 2e39ad1e040..b09edef148f 100644
--- a/yql/essentials/public/udf/udf_log.h
+++ b/yql/essentials/public/udf/udf_log.h
@@ -11,6 +11,20 @@
namespace NYql {
namespace NUdf {
+#define UDF_LOG(logger, component, level, msg) \
+do { \
+ if ((logger) && (logger)->IsActive(component, level)) { \
+ (logger)->Log(component, level, msg); \
+ } \
+} while (0)
+
+#define UDF_LOG_IF(condition, logger, component, level, msg) \
+do { \
+ if ((logger) && (condition) && (logger)->IsActive(component, level)) { \
+ (logger)->Log(component, level, msg); \
+ } \
+} while (0)
+
#define UDF_LOG_LEVEL(XX) \
XX(Fatal, 0) \
XX(Error, 1) \
diff --git a/yql/essentials/scripts/collect-coverage.sh b/yql/essentials/scripts/collect-coverage.sh
new file mode 100755
index 00000000000..5d7a6510a1d
--- /dev/null
+++ b/yql/essentials/scripts/collect-coverage.sh
@@ -0,0 +1,54 @@
+#!/bin/bash
+#
+# Script to collect the coverage report for the specified contents
+# in yql/essentials/core (i.e. type annotation machinery, optimizers)
+# to the directory, given as the first argument.
+set -eu
+
+ARC_ROOT=$(arc rev-parse --show-toplevel)
+# Save the coverage report with to the given directory; otherwise,
+# save the list into the temporary file.
+REPORT_ROOT=${1:-$(mktemp --tmpdir -d yql-essentials-core-coverage-XXXXXXX)}
+# Define the array of the prefixes to be collected to the coverage
+# report.
+COVERAGE_PREFIXES=(
+ 'yql/essentials/core/type_ann'
+)
+# XXX: Join the prefixes listed above by a pipe (|) to make a
+# valid regexp alternatives for COVERAGE_TARGET_REGEXP parameter.
+COVERAGE_PREFIX_ALTERNATIVES=$(IFS='|'; echo "${COVERAGE_PREFIXES[*]}")
+
+# Run the command to collect code coverage over the sources in
+# /yql/essentials/core/ by the minirun test suite.
+# XXX: Here are the rationales for the particular options:
+# * --clang-coverage -- collect the code coverage only for C++
+# sources;
+# * --coverage-report --output $REPORT_ROOT -- build the HTML
+# report for the collected code coverage;
+# * -DCOVERAGE_TARGET_REGEXP -- collect the code coverage only
+# for the dedicated source files;
+# XXX: --coverage-prefix-filter doesn't work properly if several
+# paths are given, but fortunately, there is a recipe for C++
+# coverage in DEVTOOLSSUPPORT-52275#67093d22473c6c1da0bd17fd, that
+# uses -DCOVERAGE_TARGET_REGEXP and allows to specify several
+# paths by regexp.
+# See more info here: https://docs.yandex-team.ru/devtools/test/coverage.
+ya make -tA \
+ -C ${ARC_ROOT}/yql/essentials/tests/sql/minirun \
+ -C ${ARC_ROOT}/yql/essentials/tests/s-expressions/minirun \
+ -DCOVERAGE_TARGET_REGEXP="($COVERAGE_PREFIX_ALTERNATIVES)" \
+ --build profile \
+ --clang-coverage \
+ --coverage-report \
+ --output ${REPORT_ROOT} \
+ --test-disable-timeout
+
+# Create an anchor for each prefix, to ensure the analyzer part
+# that the coverage for particular prefixes is collected.
+for prefix in ${COVERAGE_PREFIXES[@]}; do
+ COLLECTED_PREFIX=${REPORT_ROOT}/$(basename $0)/$prefix
+ mkdir -p ${COLLECTED_PREFIX}
+ touch ${COLLECTED_PREFIX}/collected
+done
+
+echo "The coverage report is stored in ${REPORT_ROOT}"
diff --git a/yql/essentials/scripts/separate-yql-proto-compile.sh b/yql/essentials/scripts/separate-yql-proto-compile.sh
new file mode 100755
index 00000000000..9a7a4042a20
--- /dev/null
+++ b/yql/essentials/scripts/separate-yql-proto-compile.sh
@@ -0,0 +1,8 @@
+# The script takes the content of your Protocol Buffer (.proto) file and processes it to generate a compressed and encoded message meta info.
+# This meta info needs to be passed to the config.
+# 1. Run the script in your terminal.
+# 2. Paste your .proto file content when prompted.
+# 3. Press Ctrl+D to signal the end of input.
+# 4. Receive the Base64-encoded, gzipped descriptor set as output and paste to "meta" field of your config.
+
+ya make contrib/tools/protoc && tmp=$(mktemp --suffix=.proto) && cat > "$tmp" && ./contrib/tools/protoc/protoc -I "$(dirname "$tmp")" --include_imports --descriptor_set_out=/dev/stdout "$tmp" | gzip | base64 -w 0 && rm "$tmp"
diff --git a/yql/essentials/sql/v1/aggregation.cpp b/yql/essentials/sql/v1/aggregation.cpp
index 875ae7d97d6..a1e98d2352c 100644
--- a/yql/essentials/sql/v1/aggregation.cpp
+++ b/yql/essentials/sql/v1/aggregation.cpp
@@ -52,7 +52,7 @@ public:
BuildBind(Pos, aggMode == EAggregateMode::OverWindow || aggMode == EAggregateMode::OverWindowDistinct ? "window_module" : "aggregate_module", func) : nullptr),
Multi(multi), ValidateArgs(validateArgs), DynamicFactory(!Factory)
{
- if (aggMode != EAggregateMode::OverWindow && !func.empty() && AggApplyFuncs.contains(func)) {
+ if (aggMode != EAggregateMode::OverWindow && aggMode != EAggregateMode::OverWindowDistinct && !func.empty() && AggApplyFuncs.contains(func)) {
AggApplyName = func.substr(0, func.size() - 15);
}
@@ -112,7 +112,7 @@ protected:
if (!isFactory) {
node.Add("Member", "row", Q(Name));
- if (IsOverWindow()) {
+ if (IsOverWindow() || IsOverWindowDistinct()) {
src->AddTmpWindowColumn(Name);
}
}
@@ -156,7 +156,7 @@ protected:
if (!x->Init(ctx, src)) {
return false;
}
- if (x->IsAggregated() && !x->IsAggregationKey() && !IsOverWindow()) {
+ if (x->IsAggregated() && !x->IsAggregationKey() && !IsOverWindow() && !IsOverWindowDistinct()) {
ctx.Error(Pos) << "Aggregation of aggregated values is forbidden";
return false;
}
@@ -172,7 +172,7 @@ protected:
if (!Expr->Init(ctx, src)) {
return false;
}
- if (Expr->IsAggregated() && !Expr->IsAggregationKey() && !IsOverWindow()) {
+ if (Expr->IsAggregated() && !Expr->IsAggregationKey() && !IsOverWindow() && !IsOverWindowDistinct()) {
ctx.Error(Pos) << "Aggregation of aggregated values is forbidden";
return false;
}
@@ -196,7 +196,7 @@ protected:
DistinctKey = DotJoin(*sourcePtr, DistinctKey);
}
}
- if (src->IsGroupByColumn(DistinctKey)) {
+ if (!ctx.DistinctOverKeys && src->IsGroupByColumn(DistinctKey)) {
ctx.Error(Expr->GetPos()) << ErrorDistinctByGroupKey(DistinctKey);
return false;
}
@@ -292,7 +292,7 @@ private:
if (!isFactory) {
node.Add("Member", "row", Q(Name));
- if (IsOverWindow()) {
+ if (IsOverWindow() || IsOverWindowDistinct()) {
src->AddTmpWindowColumn(Name);
}
}
@@ -393,7 +393,7 @@ private:
if (!isFactory) {
node.Add("Member", "row", Q(Name));
- if (IsOverWindow()) {
+ if (IsOverWindow() || IsOverWindowDistinct()) {
src->AddTmpWindowColumn(Name);
}
}
@@ -480,7 +480,7 @@ private:
if (!isFactory) {
node.Add("Member", "row", Q(Name));
- if (IsOverWindow()) {
+ if (IsOverWindow() || IsOverWindowDistinct()) {
src->AddTmpWindowColumn(Name);
}
}
@@ -516,7 +516,7 @@ private:
return false;
}
- if ((One->IsAggregated() || Two->IsAggregated()) && !IsOverWindow()) {
+ if ((One->IsAggregated() || Two->IsAggregated()) && !IsOverWindow() && !IsOverWindowDistinct()) {
ctx.Error(Pos) << "Aggregation of aggregated values is forbidden";
return false;
}
@@ -1014,7 +1014,7 @@ private:
if (!isFactory) {
node.Add("Member", "row", Q(Name));
- if (IsOverWindow()) {
+ if (IsOverWindow() || IsOverWindowDistinct()) {
src->AddTmpWindowColumn(Name);
}
}
@@ -1130,7 +1130,7 @@ private:
if (!isFactory) {
node.Add("Member", "row", Q(Name));
- if (IsOverWindow()) {
+ if (IsOverWindow() || IsOverWindowDistinct()) {
src->AddTmpWindowColumn(Name);
}
}
@@ -1205,7 +1205,7 @@ private:
if (!isFactory) {
node.Add("Member", "row", Q(Name));
- if (IsOverWindow()) {
+ if (IsOverWindow() || IsOverWindowDistinct()) {
src->AddTmpWindowColumn(Name);
}
}
diff --git a/yql/essentials/sql/v1/complete/antlr4/vocabulary.cpp b/yql/essentials/sql/v1/complete/antlr4/vocabulary.cpp
new file mode 100644
index 00000000000..0938ae3aca0
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/antlr4/vocabulary.cpp
@@ -0,0 +1,14 @@
+#include "vocabulary.h"
+
+namespace NSQLComplete {
+
+ 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;
+ }
+
+} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/antlr4/vocabulary.h b/yql/essentials/sql/v1/complete/antlr4/vocabulary.h
new file mode 100644
index 00000000000..deb67828800
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/antlr4/vocabulary.h
@@ -0,0 +1,13 @@
+#pragma once
+
+#include "defs.h"
+
+#include <contrib/libs/antlr4_cpp_runtime/src/Vocabulary.h>
+
+#include <string>
+
+namespace NSQLComplete {
+
+ std::string Display(const antlr4::dfa::Vocabulary& vocabulary, TTokenId tokenType);
+
+} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/antlr4/ya.make b/yql/essentials/sql/v1/complete/antlr4/ya.make
index 36145606177..b79ae1b60bb 100644
--- a/yql/essentials/sql/v1/complete/antlr4/ya.make
+++ b/yql/essentials/sql/v1/complete/antlr4/ya.make
@@ -1,5 +1,9 @@
LIBRARY()
+SRCS(
+ vocabulary.cpp
+)
+
PEERDIR(
contrib/libs/antlr4_cpp_runtime
contrib/libs/antlr4-c3
diff --git a/yql/essentials/sql/v1/complete/core/statement.h b/yql/essentials/sql/v1/complete/core/statement.h
new file mode 100644
index 00000000000..d4c095a0e1f
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/core/statement.h
@@ -0,0 +1,10 @@
+#pragma once
+
+namespace NSQLComplete {
+
+ enum class EStatementKind {
+ Select,
+ Insert,
+ };
+
+} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/core/ya.make b/yql/essentials/sql/v1/complete/core/ya.make
new file mode 100644
index 00000000000..9865d255c8f
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/core/ya.make
@@ -0,0 +1,3 @@
+LIBRARY()
+
+END()
diff --git a/yql/essentials/sql/v1/complete/name/name_service.h b/yql/essentials/sql/v1/complete/name/name_service.h
index d3cf153341e..665068e1520 100644
--- a/yql/essentials/sql/v1/complete/name/name_service.h
+++ b/yql/essentials/sql/v1/complete/name/name_service.h
@@ -1,5 +1,7 @@
#pragma once
+#include <yql/essentials/sql/v1/complete/core/statement.h>
+
#include <library/cpp/threading/future/core/future.h>
#include <util/generic/vector.h>
@@ -13,28 +15,56 @@ namespace NSQLComplete {
TString Indentifier;
};
+ struct TNamespaced {
+ TString Namespace;
+ };
+
+ struct TKeyword {
+ TString Content;
+ };
+
+ struct TPragmaName: TIndentifier {
+ struct TConstraints: TNamespaced {};
+ };
+
struct TTypeName: TIndentifier {
using TConstraints = std::monostate;
};
struct TFunctionName: TIndentifier {
- using TConstraints = std::monostate;
+ struct TConstraints: TNamespaced {};
+ };
+
+ struct THintName: TIndentifier {
+ struct TConstraints {
+ EStatementKind Statement;
+ };
};
using TGenericName = std::variant<
+ TKeyword,
+ TPragmaName,
TTypeName,
- TFunctionName>;
+ TFunctionName,
+ THintName>;
struct TNameRequest {
+ TVector<TString> Keywords;
struct {
- std::optional<TTypeName::TConstraints> TypeName;
- std::optional<TTypeName::TConstraints> Function;
+ std::optional<TPragmaName::TConstraints> Pragma;
+ std::optional<TTypeName::TConstraints> Type;
+ std::optional<TFunctionName::TConstraints> Function;
+ std::optional<THintName::TConstraints> Hint;
} Constraints;
TString Prefix = "";
size_t Limit = 128;
bool IsEmpty() const {
- return !Constraints.TypeName && !Constraints.Function;
+ return Keywords.empty() &&
+ !Constraints.Pragma &&
+ !Constraints.Type &&
+ !Constraints.Function &&
+ !Constraints.Hint;
}
};
diff --git a/yql/essentials/sql/v1/complete/name/static/frequency.cpp b/yql/essentials/sql/v1/complete/name/static/frequency.cpp
index d9c8ba9652c..62997ccff7a 100644
--- a/yql/essentials/sql/v1/complete/name/static/frequency.cpp
+++ b/yql/essentials/sql/v1/complete/name/static/frequency.cpp
@@ -14,10 +14,14 @@ namespace NSQLComplete {
const char* Sum = "sum";
} Key;
struct {
+ const char* Pragma = "PRAGMA";
const char* Type = "TYPE";
const char* Func = "FUNC";
+ const char* Keyword = "KEYWORD";
const char* Module = "MODULE";
const char* ModuleFunc = "MODULE_FUNC";
+ const char* ReadHint = "READ_HINT";
+ const char* InsertHint = "INSERT_HINT";
} Parent;
} Json;
@@ -53,20 +57,31 @@ namespace NSQLComplete {
TFrequencyData Convert(TVector<TFrequencyItem> items) {
TFrequencyData data;
for (auto& item : items) {
- if (item.Parent == Json.Parent.Type ||
+ if (item.Parent == Json.Parent.Pragma ||
+ item.Parent == Json.Parent.Type ||
item.Parent == Json.Parent.Func ||
+ item.Parent == Json.Parent.Keyword ||
item.Parent == Json.Parent.ModuleFunc ||
- item.Parent == Json.Parent.Module) {
+ item.Parent == Json.Parent.Module ||
+ item.Parent == Json.Parent.ReadHint ||
+ item.Parent == Json.Parent.InsertHint) {
item.Rule = ToLowerUTF8(item.Rule);
}
- if (item.Parent == Json.Parent.Type) {
+ if (item.Parent == Json.Parent.Pragma) {
+ data.Pragmas[item.Rule] += item.Sum;
+ } else if (item.Parent == Json.Parent.Type) {
data.Types[item.Rule] += item.Sum;
+ } else if (item.Parent == Json.Parent.Keyword) {
+ data.Keywords[item.Rule] += item.Sum;
+ } else if (item.Parent == Json.Parent.Module) {
+ // Ignore, unsupported: Modules
} 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 if (item.Parent == Json.Parent.ReadHint ||
+ item.Parent == Json.Parent.InsertHint) {
+ data.Hints[item.Rule] += item.Sum;
} else {
// Ignore, unsupported: Parser Call Stacks
}
diff --git a/yql/essentials/sql/v1/complete/name/static/frequency.h b/yql/essentials/sql/v1/complete/name/static/frequency.h
index 3d128f824b4..6925c99fa5e 100644
--- a/yql/essentials/sql/v1/complete/name/static/frequency.h
+++ b/yql/essentials/sql/v1/complete/name/static/frequency.h
@@ -6,8 +6,11 @@
namespace NSQLComplete {
struct TFrequencyData {
+ THashMap<TString, size_t> Keywords;
+ THashMap<TString, size_t> Pragmas;
THashMap<TString, size_t> Types;
THashMap<TString, size_t> Functions;
+ THashMap<TString, size_t> Hints;
};
TFrequencyData ParseJsonFrequencyData(const TStringBuf text);
diff --git a/yql/essentials/sql/v1/complete/name/static/frequency_ut.cpp b/yql/essentials/sql/v1/complete/name/static/frequency_ut.cpp
index dd6ee2cfbb2..8f7eafed2ea 100644
--- a/yql/essentials/sql/v1/complete/name/static/frequency_ut.cpp
+++ b/yql/essentials/sql/v1/complete/name/static/frequency_ut.cpp
@@ -10,12 +10,18 @@ Y_UNIT_TEST_SUITE(FrequencyTests) {
TFrequencyData actual = ParseJsonFrequencyData(R"([
{"parent":"FUNC","rule":"ABC","sum":1},
{"parent":"TYPE","rule":"BIGINT","sum":7101},
+ {"parent":"KEYWORD","rule":"UNION","sum":65064443},
{"parent":"MODULE_FUNC","rule":"Compress::BZip2","sum":2},
{"parent":"MODULE","rule":"re2","sum":3094},
+ {"parent":"READ_HINT","rule":"COLUMNS","sum":826110},
+ {"parent":"INSERT_HINT","rule":"COLUMN_GROUPS","sum":225},
{"parent":"TRule_action_or_subquery_args","rule":"TRule_action_or_subquery_args.Block2","sum":4874480}
])");
TFrequencyData expected = {
+ .Keywords = {
+ {"union", 65064443},
+ },
.Types = {
{"bigint", 7101},
},
@@ -23,10 +29,16 @@ Y_UNIT_TEST_SUITE(FrequencyTests) {
{"abc", 1},
{"compress::bzip2", 2},
},
+ .Hints = {
+ {"columns", 826110},
+ {"column_groups", 225},
+ },
};
+ UNIT_ASSERT_VALUES_EQUAL(actual.Keywords, expected.Keywords);
UNIT_ASSERT_VALUES_EQUAL(actual.Types, expected.Types);
UNIT_ASSERT_VALUES_EQUAL(actual.Functions, expected.Functions);
+ UNIT_ASSERT_VALUES_EQUAL(actual.Hints, expected.Hints);
}
Y_UNIT_TEST(FrequencyDataResouce) {
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
index 29c303b3102..bc522fd674c 100644
--- a/yql/essentials/sql/v1/complete/name/static/json_name_set.cpp
+++ b/yql/essentials/sql/v1/complete/name/static/json_name_set.cpp
@@ -3,6 +3,8 @@
#include <library/cpp/json/json_reader.h>
#include <library/cpp/resource/resource.h>
+#include <util/charset/utf8.h>
+
namespace NSQLComplete {
NJson::TJsonValue LoadJsonResource(const TStringBuf filename) {
@@ -26,6 +28,10 @@ namespace NSQLComplete {
return keys;
}
+ TVector<TString> ParsePragmas(NJson::TJsonValue json) {
+ return ParseNames(json.GetArraySafe());
+ }
+
TVector<TString> ParseTypes(NJson::TJsonValue json) {
return ParseNames(json.GetArraySafe());
}
@@ -34,7 +40,7 @@ namespace NSQLComplete {
return ParseNames(json.GetArraySafe());
}
- TVector<TString> ParseUfs(NJson::TJsonValue json) {
+ TVector<TString> ParseUdfs(NJson::TJsonValue json) {
TVector<TString> names;
for (auto& [module, v] : json.GetMapSafe()) {
auto functions = ParseNames(v.GetArraySafe());
@@ -46,12 +52,40 @@ namespace NSQLComplete {
return names;
}
+ // TODO(YQL-19747): support multiple systems, name service/set hierarchy - common & special
+ THashMap<EStatementKind, TVector<TString>> ParseHints(NJson::TJsonValue json) {
+ THashMap<EStatementKind, TVector<TString>> hints;
+
+ THashMap<EStatementKind, TString> StatementNames = {
+ {EStatementKind::Select, "read"},
+ {EStatementKind::Insert, "insert"},
+ };
+
+ for (const auto& [k, kname] : StatementNames) {
+ for (auto& [_, values] : json.GetMapSafe().at(kname).GetMapSafe()) {
+ for (auto& name : ParseNames(values.GetMapSafe().at("hints").GetArraySafe())) {
+ hints[k].emplace_back(std::move(name));
+ }
+ }
+ }
+
+ for (auto& [_, hints] : hints) {
+ for (auto& hint : hints) {
+ hint = ToUpperUTF8(hint);
+ }
+ }
+
+ return hints;
+ }
+
NameSet MakeDefaultNameSet() {
return {
+ .Pragmas = ParsePragmas(LoadJsonResource("pragmas_opensource.json")),
.Types = ParseTypes(LoadJsonResource("types.json")),
.Functions = Merge(
ParseFunctions(LoadJsonResource("sql_functions.json")),
- ParseUfs(LoadJsonResource("udfs_basic.json"))),
+ ParseUdfs(LoadJsonResource("udfs_basic.json"))),
+ .Hints = ParseHints(LoadJsonResource("statements_opensource.json")),
};
}
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 fdb1dd4eae1..3fd33102d61 100644
--- a/yql/essentials/sql/v1/complete/name/static/name_service.cpp
+++ b/yql/essentials/sql/v1/complete/name/static/name_service.cpp
@@ -2,22 +2,9 @@
#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);
- });
- }
+#include <yql/essentials/sql/v1/complete/text/case.h>
- auto NoCaseCompareLimit(size_t size) {
- return [size](const TString& lhs, const TString& rhs) -> bool {
- return strncasecmp(lhs.data(), rhs.data(), size) < 0;
- };
- }
+namespace NSQLComplete {
const TVector<TStringBuf> FilteredByPrefix(
const TString& prefix,
@@ -28,40 +15,96 @@ namespace NSQLComplete {
return TVector<TStringBuf>(first, last);
}
- template <class T>
- void AppendAs(TVector<TGenericName>& target, const TVector<TStringBuf>& source) {
+ template <class T, class S = TStringBuf>
+ void AppendAs(TVector<TGenericName>& target, const TVector<S>& source) {
for (const auto& element : source) {
target.emplace_back(T{TString(element)});
}
}
+ TString Prefixed(const TStringBuf requestPrefix, const TStringBuf delimeter, const TNamespaced& namespaced) {
+ TString prefix;
+ if (!namespaced.Namespace.empty()) {
+ prefix += namespaced.Namespace;
+ prefix += delimeter;
+ }
+ prefix += requestPrefix;
+ return prefix;
+ }
+
+ void FixPrefix(TString& name, const TStringBuf delimeter, const TNamespaced& namespaced) {
+ if (namespaced.Namespace.empty()) {
+ return;
+ }
+ name.remove(0, namespaced.Namespace.size() + delimeter.size());
+ }
+
+ void FixPrefix(TGenericName& name, const TNameRequest& request) {
+ std::visit([&](auto& name) -> size_t {
+ using T = std::decay_t<decltype(name)>;
+ if constexpr (std::is_same_v<T, TPragmaName>) {
+ FixPrefix(name.Indentifier, ".", *request.Constraints.Pragma);
+ }
+ if constexpr (std::is_same_v<T, TFunctionName>) {
+ FixPrefix(name.Indentifier, "::", *request.Constraints.Function);
+ }
+ return 0;
+ }, name);
+ }
+
class TStaticNameService: public INameService {
public:
explicit TStaticNameService(NameSet names, IRanking::TPtr ranking)
: NameSet_(std::move(names))
, Ranking_(std::move(ranking))
{
+ Sort(NameSet_.Pragmas, NoCaseCompare);
Sort(NameSet_.Types, NoCaseCompare);
Sort(NameSet_.Functions, NoCaseCompare);
+ for (auto& [_, hints] : NameSet_.Hints) {
+ Sort(hints, NoCaseCompare);
+ }
}
TFuture<TNameResponse> Lookup(TNameRequest request) override {
TNameResponse response;
- if (request.Constraints.TypeName) {
+ Sort(request.Keywords, NoCaseCompare);
+ AppendAs<TKeyword>(
+ response.RankedNames,
+ FilteredByPrefix(request.Prefix, request.Keywords));
+
+ if (request.Constraints.Pragma) {
+ auto prefix = Prefixed(request.Prefix, ".", *request.Constraints.Pragma);
+ auto names = FilteredByPrefix(prefix, NameSet_.Pragmas);
+ AppendAs<TPragmaName>(response.RankedNames, names);
+ }
+
+ if (request.Constraints.Type) {
AppendAs<TTypeName>(
response.RankedNames,
FilteredByPrefix(request.Prefix, NameSet_.Types));
}
if (request.Constraints.Function) {
- AppendAs<TFunctionName>(
+ auto prefix = Prefixed(request.Prefix, "::", *request.Constraints.Function);
+ auto names = FilteredByPrefix(prefix, NameSet_.Functions);
+ AppendAs<TFunctionName>(response.RankedNames, names);
+ }
+
+ if (request.Constraints.Hint) {
+ const auto stmt = request.Constraints.Hint->Statement;
+ AppendAs<THintName>(
response.RankedNames,
- FilteredByPrefix(request.Prefix, NameSet_.Functions));
+ FilteredByPrefix(request.Prefix, NameSet_.Hints[stmt]));
}
Ranking_->CropToSortedPrefix(response.RankedNames, request.Limit);
+ for (auto& name : response.RankedNames) {
+ FixPrefix(name, request);
+ }
+
return NThreading::MakeFuture(std::move(response));
}
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 a5c90465c83..d5459faa1d7 100644
--- a/yql/essentials/sql/v1/complete/name/static/name_service.h
+++ b/yql/essentials/sql/v1/complete/name/static/name_service.h
@@ -7,8 +7,10 @@
namespace NSQLComplete {
struct NameSet {
+ TVector<TString> Pragmas;
TVector<TString> Types;
TVector<TString> Functions;
+ THashMap<EStatementKind, TVector<TString>> Hints;
};
NameSet MakeDefaultNameSet();
diff --git a/yql/essentials/sql/v1/complete/name/static/ranking.cpp b/yql/essentials/sql/v1/complete/name/static/ranking.cpp
index 45e6e2b2fa2..ee1cbef08f5 100644
--- a/yql/essentials/sql/v1/complete/name/static/ranking.cpp
+++ b/yql/essentials/sql/v1/complete/name/static/ranking.cpp
@@ -57,16 +57,34 @@ namespace NSQLComplete {
return std::visit([this](const auto& name) -> size_t {
using T = std::decay_t<decltype(name)>;
- auto identifier = ToLowerUTF8(ContentView(name));
+ auto content = ToLowerUTF8(ContentView(name));
+
+ if constexpr (std::is_same_v<T, TKeyword>) {
+ if (auto weight = Frequency_.Keywords.FindPtr(content)) {
+ return *weight;
+ }
+ }
+
+ if constexpr (std::is_same_v<T, TPragmaName>) {
+ if (auto weight = Frequency_.Pragmas.FindPtr(content)) {
+ return *weight;
+ }
+ }
if constexpr (std::is_same_v<T, TFunctionName>) {
- if (auto weight = Frequency_.Functions.FindPtr(identifier)) {
+ if (auto weight = Frequency_.Functions.FindPtr(content)) {
return *weight;
}
}
if constexpr (std::is_same_v<T, TTypeName>) {
- if (auto weight = Frequency_.Types.FindPtr(identifier)) {
+ if (auto weight = Frequency_.Types.FindPtr(content)) {
+ return *weight;
+ }
+ }
+
+ if constexpr (std::is_same_v<T, THintName>) {
+ if (auto weight = Frequency_.Hints.FindPtr(content)) {
return *weight;
}
}
@@ -82,6 +100,9 @@ namespace NSQLComplete {
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<TKeyword, T>) {
+ return name.Content;
+ }
if constexpr (std::is_base_of_v<TIndentifier, T>) {
return name.Indentifier;
}
diff --git a/yql/essentials/sql/v1/complete/name/static/ya.make b/yql/essentials/sql/v1/complete/name/static/ya.make
index 639371447af..155c0926399 100644
--- a/yql/essentials/sql/v1/complete/name/static/ya.make
+++ b/yql/essentials/sql/v1/complete/name/static/ya.make
@@ -13,9 +13,11 @@ PEERDIR(
)
RESOURCE(
+ yql/essentials/data/language/pragmas_opensource.json pragmas_opensource.json
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/statements_opensource.json statements_opensource.json
yql/essentials/data/language/rules_corr_basic.json rules_corr_basic.json
)
diff --git a/yql/essentials/sql/v1/complete/name/ya.make b/yql/essentials/sql/v1/complete/name/ya.make
index c8af42acfb0..43f7dc2c1b3 100644
--- a/yql/essentials/sql/v1/complete/name/ya.make
+++ b/yql/essentials/sql/v1/complete/name/ya.make
@@ -1,5 +1,9 @@
LIBRARY()
+PEERDIR(
+ yql/essentials/sql/v1/complete/core
+)
+
END()
RECURSE(
diff --git a/yql/essentials/sql/v1/complete/sql_complete.cpp b/yql/essentials/sql/v1/complete/sql_complete.cpp
index ed3afa29df4..0789aa4bfc0 100644
--- a/yql/essentials/sql/v1/complete/sql_complete.cpp
+++ b/yql/essentials/sql/v1/complete/sql_complete.cpp
@@ -3,10 +3,7 @@
#include <yql/essentials/sql/v1/complete/text/word.h>
#include <yql/essentials/sql/v1/complete/name/static/name_service.h>
#include <yql/essentials/sql/v1/complete/syntax/local.h>
-
-// FIXME(YQL-19747): unwanted dependency on a lexer implementation
-#include <yql/essentials/sql/v1/lexer/antlr4_pure/lexer.h>
-#include <yql/essentials/sql/v1/lexer/antlr4_pure_ansi/lexer.h>
+#include <yql/essentials/sql/v1/complete/syntax/format.h>
#include <util/generic/algorithm.h>
#include <util/charset/utf8.h>
@@ -35,18 +32,14 @@ namespace NSQLComplete {
<< " for input size " << input.Text.size();
}
- auto prefix = input.Text.Head(input.CursorPosition);
- auto completedToken = GetCompletedToken(prefix);
-
- auto context = SyntaxAnalysis->Analyze(input);
+ TLocalSyntaxContext context = SyntaxAnalysis->Analyze(input);
- TVector<TCandidate> candidates;
- EnrichWithKeywords(candidates, std::move(context.Keywords), completedToken);
- EnrichWithNames(candidates, context, completedToken);
+ TStringBuf prefix = input.Text.Head(input.CursorPosition);
+ TCompletedToken completedToken = GetCompletedToken(prefix);
return {
.CompletedToken = std::move(completedToken),
- .Candidates = std::move(candidates),
+ .Candidates = GetCanidates(std::move(context), completedToken),
};
}
@@ -58,55 +51,61 @@ namespace NSQLComplete {
};
}
- void EnrichWithKeywords(
- TVector<TCandidate>& candidates,
- TVector<TString> keywords,
- const TCompletedToken& prefix) {
- for (auto keyword : keywords) {
- candidates.push_back({
- .Kind = ECandidateKind::Keyword,
- .Content = std::move(keyword),
- });
- }
- FilterByContent(candidates, prefix.Content);
- candidates.crop(Configuration.Limit);
- }
-
- void EnrichWithNames(
- TVector<TCandidate>& candidates,
- const TLocalSyntaxContext& context,
- const TCompletedToken& prefix) {
- if (candidates.size() == Configuration.Limit) {
- return;
- }
-
+ TVector<TCandidate> GetCanidates(TLocalSyntaxContext context, const TCompletedToken& prefix) {
TNameRequest request = {
.Prefix = TString(prefix.Content),
- .Limit = Configuration.Limit - candidates.size(),
+ .Limit = Configuration.Limit,
};
+ for (const auto& [first, _] : context.Keywords) {
+ request.Keywords.emplace_back(first);
+ }
+
+ if (context.Pragma) {
+ TPragmaName::TConstraints constraints;
+ constraints.Namespace = context.Pragma->Namespace;
+ request.Constraints.Pragma = std::move(constraints);
+ }
+
if (context.IsTypeName) {
- request.Constraints.TypeName = TTypeName::TConstraints();
+ request.Constraints.Type = TTypeName::TConstraints();
+ }
+
+ if (context.Function) {
+ TFunctionName::TConstraints constraints;
+ constraints.Namespace = context.Function->Namespace;
+ request.Constraints.Function = std::move(constraints);
}
- if (context.IsFunctionName) {
- request.Constraints.Function = TFunctionName::TConstraints();
+ if (context.Hint) {
+ THintName::TConstraints constraints;
+ constraints.Statement = context.Hint->StatementKind;
+ request.Constraints.Hint = std::move(constraints);
}
if (request.IsEmpty()) {
- return;
+ return {};
}
// User should prepare a robust INameService
TNameResponse response = Names->Lookup(std::move(request)).ExtractValueSync();
- EnrichWithNames(candidates, std::move(response.RankedNames));
+ return Convert(std::move(response.RankedNames), std::move(context.Keywords));
}
- void EnrichWithNames(TVector<TCandidate>& candidates, TVector<TGenericName> names) {
+ TVector<TCandidate> Convert(TVector<TGenericName> names, TLocalSyntaxContext::TKeywords keywords) {
+ TVector<TCandidate> candidates;
for (auto& name : names) {
- candidates.emplace_back(std::visit([](auto&& name) -> TCandidate {
+ candidates.emplace_back(std::visit([&](auto&& name) -> TCandidate {
using T = std::decay_t<decltype(name)>;
+ if constexpr (std::is_base_of_v<TKeyword, T>) {
+ TVector<TString>& seq = keywords[name.Content];
+ seq.insert(std::begin(seq), name.Content);
+ return {ECandidateKind::Keyword, FormatKeywords(seq)};
+ }
+ if constexpr (std::is_base_of_v<TPragmaName, T>) {
+ return {ECandidateKind::PragmaName, std::move(name.Indentifier)};
+ }
if constexpr (std::is_base_of_v<TTypeName, T>) {
return {ECandidateKind::TypeName, std::move(name.Indentifier)};
}
@@ -114,16 +113,12 @@ namespace NSQLComplete {
name.Indentifier += "(";
return {ECandidateKind::FunctionName, std::move(name.Indentifier)};
}
+ if constexpr (std::is_base_of_v<THintName, T>) {
+ return {ECandidateKind::HintName, std::move(name.Indentifier)};
+ }
}, std::move(name)));
}
- }
-
- void FilterByContent(TVector<TCandidate>& candidates, TStringBuf prefix) {
- const auto lowerPrefix = ToLowerUTF8(prefix);
- auto removed = std::ranges::remove_if(candidates, [&](const auto& candidate) {
- return !ToLowerUTF8(candidate.Content).StartsWith(lowerPrefix);
- });
- candidates.erase(std::begin(removed), std::end(removed));
+ return candidates;
}
TConfiguration Configuration;
@@ -131,21 +126,6 @@ namespace NSQLComplete {
INameService::TPtr Names;
};
- // FIXME(YQL-19747): unwanted dependency on a lexer implementation
- ISqlCompletionEngine::TPtr MakeSqlCompletionEngine() {
- NSQLTranslationV1::TLexers lexers;
- lexers.Antlr4Pure = NSQLTranslationV1::MakeAntlr4PureLexerFactory();
- lexers.Antlr4PureAnsi = NSQLTranslationV1::MakeAntlr4PureAnsiLexerFactory();
-
- INameService::TPtr names = MakeStaticNameService(MakeDefaultNameSet(), MakeDefaultRanking());
-
- return MakeSqlCompletionEngine([lexers = std::move(lexers)](bool ansi) {
- return NSQLTranslationV1::MakeLexer(
- lexers, ansi, /* antlr4 = */ true,
- NSQLTranslationV1::ELexerFlavor::Pure);
- }, std::move(names));
- }
-
ISqlCompletionEngine::TPtr MakeSqlCompletionEngine(
TLexerSupplier lexer,
INameService::TPtr names,
@@ -162,12 +142,18 @@ void Out<NSQLComplete::ECandidateKind>(IOutputStream& out, NSQLComplete::ECandid
case NSQLComplete::ECandidateKind::Keyword:
out << "Keyword";
break;
+ case NSQLComplete::ECandidateKind::PragmaName:
+ out << "PragmaName";
+ break;
case NSQLComplete::ECandidateKind::TypeName:
out << "TypeName";
break;
case NSQLComplete::ECandidateKind::FunctionName:
out << "FunctionName";
break;
+ case NSQLComplete::ECandidateKind::HintName:
+ out << "HintName";
+ break;
}
}
diff --git a/yql/essentials/sql/v1/complete/sql_complete.h b/yql/essentials/sql/v1/complete/sql_complete.h
index b8a970efd8f..44bb98c3b21 100644
--- a/yql/essentials/sql/v1/complete/sql_complete.h
+++ b/yql/essentials/sql/v1/complete/sql_complete.h
@@ -20,8 +20,10 @@ namespace NSQLComplete {
enum class ECandidateKind {
Keyword,
+ PragmaName,
TypeName,
FunctionName,
+ HintName,
};
struct TCandidate {
@@ -50,9 +52,6 @@ namespace NSQLComplete {
using TLexerSupplier = std::function<NSQLTranslation::ILexer::TPtr(bool ansi)>;
- // FIXME(YQL-19747): unwanted dependency on a lexer implementation
- ISqlCompletionEngine::TPtr MakeSqlCompletionEngine();
-
ISqlCompletionEngine::TPtr MakeSqlCompletionEngine(
TLexerSupplier lexer,
INameService::TPtr names,
diff --git a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
index e9f5dbdfb73..a0681b1888f 100644
--- a/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
+++ b/yql/essentials/sql/v1/complete/sql_complete_ut.cpp
@@ -38,7 +38,9 @@ public:
Y_UNIT_TEST_SUITE(SqlCompleteTests) {
using ECandidateKind::FunctionName;
+ using ECandidateKind::HintName;
using ECandidateKind::Keyword;
+ using ECandidateKind::PragmaName;
using ECandidateKind::TypeName;
TLexerSupplier MakePureLexerSupplier() {
@@ -55,8 +57,13 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
ISqlCompletionEngine::TPtr MakeSqlCompletionEngineUT() {
TLexerSupplier lexer = MakePureLexerSupplier();
NameSet names = {
+ .Pragmas = {"yson.CastToString"},
.Types = {"Uint64"},
- .Functions = {"StartsWith"},
+ .Functions = {"StartsWith", "DateTime::Split"},
+ .Hints = {
+ {EStatementKind::Select, {"XLOCK"}},
+ {EStatementKind::Insert, {"EXPIRATION"}},
+ },
};
auto ranking = MakeDefaultRanking({});
INameService::TPtr service = MakeStaticNameService(std::move(names), std::move(ranking));
@@ -67,6 +74,12 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
return engine->Complete(input).Candidates;
}
+ TVector<TCandidate> CompleteTop(size_t limit, ISqlCompletionEngine::TPtr& engine, TCompletionInput input) {
+ auto candidates = Complete(engine, input);
+ candidates.crop(limit);
+ return candidates;
+ }
+
Y_UNIT_TEST(Beginning) {
TVector<TCandidate> expected = {
{Keyword, "ALTER"},
@@ -267,12 +280,36 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
}
Y_UNIT_TEST(Pragma) {
- TVector<TCandidate> expected = {
- {Keyword, "ANSI"},
- };
-
auto engine = MakeSqlCompletionEngineUT();
- UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"PRAGMA "}), expected);
+ {
+ TVector<TCandidate> expected = {
+ {Keyword, "ANSI"},
+ {PragmaName, "yson.CastToString"}};
+ auto completion = engine->Complete({"PRAGMA "});
+ UNIT_ASSERT_VALUES_EQUAL(completion.Candidates, expected);
+ UNIT_ASSERT_VALUES_EQUAL(completion.CompletedToken.Content, "");
+ }
+ {
+ TVector<TCandidate> expected = {
+ {PragmaName, "yson.CastToString"}};
+ auto completion = engine->Complete({"PRAGMA yson"});
+ UNIT_ASSERT_VALUES_EQUAL(completion.Candidates, expected);
+ UNIT_ASSERT_VALUES_EQUAL(completion.CompletedToken.Content, "yson");
+ }
+ {
+ TVector<TCandidate> expected = {
+ {PragmaName, "CastToString"}};
+ auto completion = engine->Complete({"PRAGMA yson."});
+ UNIT_ASSERT_VALUES_EQUAL(completion.Candidates, expected);
+ UNIT_ASSERT_VALUES_EQUAL(completion.CompletedToken.Content, "");
+ }
+ {
+ TVector<TCandidate> expected = {
+ {PragmaName, "CastToString"}};
+ auto completion = engine->Complete({"PRAGMA yson.cast"});
+ UNIT_ASSERT_VALUES_EQUAL(completion.Candidates, expected);
+ UNIT_ASSERT_VALUES_EQUAL(completion.CompletedToken.Content, "cast");
+ }
}
Y_UNIT_TEST(Select) {
@@ -287,6 +324,7 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
{Keyword, "CURRENT_TIMESTAMP"},
{Keyword, "DICT<"},
{Keyword, "DISTINCT"},
+ {FunctionName, "DateTime::Split("},
{Keyword, "EMPTY_ACTION"},
{Keyword, "ENUM"},
{Keyword, "EXISTS("},
@@ -303,11 +341,11 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
{Keyword, "SET<"},
{Keyword, "STREAM"},
{Keyword, "STRUCT"},
+ {FunctionName, "StartsWith("},
{Keyword, "TAGGED<"},
{Keyword, "TRUE"},
{Keyword, "TUPLE"},
{Keyword, "VARIANT"},
- {FunctionName, "StartsWith("},
};
auto engine = MakeSqlCompletionEngineUT();
@@ -324,6 +362,7 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
{Keyword, "CURRENT_TIME"},
{Keyword, "CURRENT_TIMESTAMP"},
{Keyword, "DICT<"},
+ {FunctionName, "DateTime::Split("},
{Keyword, "EMPTY_ACTION"},
{Keyword, "ENUM"},
{Keyword, "EXISTS("},
@@ -340,11 +379,11 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
{Keyword, "SET<"},
{Keyword, "STREAM<"},
{Keyword, "STRUCT"},
+ {FunctionName, "StartsWith("},
{Keyword, "TAGGED<"},
{Keyword, "TRUE"},
{Keyword, "TUPLE"},
{Keyword, "VARIANT"},
- {FunctionName, "StartsWith("},
};
auto engine = MakeSqlCompletionEngineUT();
@@ -376,8 +415,8 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
{Keyword, "STRUCT"},
{Keyword, "TAGGED<"},
{Keyword, "TUPLE"},
- {Keyword, "VARIANT<"},
{TypeName, "Uint64"},
+ {Keyword, "VARIANT<"},
};
auto engine = MakeSqlCompletionEngineUT();
@@ -402,6 +441,78 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
}
}
+ Y_UNIT_TEST(FunctionName) {
+ auto engine = MakeSqlCompletionEngineUT();
+ {
+ TVector<TCandidate> expected = {
+ {FunctionName, "DateTime::Split("},
+ };
+ auto completion = engine->Complete({"SELECT Date"});
+ UNIT_ASSERT_VALUES_EQUAL(completion.Candidates, expected);
+ UNIT_ASSERT_VALUES_EQUAL(completion.CompletedToken.Content, "Date");
+ }
+ {
+ TVector<TCandidate> expected = {
+ {FunctionName, "Split("},
+ };
+ auto completion = engine->Complete({"SELECT DateTime:"});
+ UNIT_ASSERT(completion.Candidates.empty());
+ }
+ {
+ TVector<TCandidate> expected = {
+ {FunctionName, "Split("},
+ };
+ auto completion = engine->Complete({"SELECT DateTime::"});
+ UNIT_ASSERT_VALUES_EQUAL(completion.Candidates, expected);
+ UNIT_ASSERT_VALUES_EQUAL(completion.CompletedToken.Content, "");
+ }
+ {
+ TVector<TCandidate> expected = {
+ {FunctionName, "Split("},
+ };
+ auto completion = engine->Complete({"SELECT DateTime::s"});
+ UNIT_ASSERT_VALUES_EQUAL(completion.Candidates, expected);
+ UNIT_ASSERT_VALUES_EQUAL(completion.CompletedToken.Content, "s");
+ }
+ }
+
+ Y_UNIT_TEST(SelectTableHintName) {
+ auto engine = MakeSqlCompletionEngineUT();
+ {
+ TVector<TCandidate> expected = {
+ {HintName, "XLOCK"},
+ };
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"PROCESS my_table USING $udf(TableRows()) WITH "}), expected);
+ }
+ {
+ TVector<TCandidate> expected = {
+ {Keyword, "COLUMNS"},
+ {Keyword, "SCHEMA"},
+ {HintName, "XLOCK"},
+ };
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"REDUCE my_table WITH "}), expected);
+ }
+ {
+ TVector<TCandidate> expected = {
+ {Keyword, "COLUMNS"},
+ {Keyword, "SCHEMA"},
+ {HintName, "XLOCK"},
+ };
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"SELECT key FROM my_table WITH "}), expected);
+ }
+ }
+
+ Y_UNIT_TEST(InsertTableHintName) {
+ TVector<TCandidate> expected = {
+ {Keyword, "COLUMNS"},
+ {HintName, "EXPIRATION"},
+ {Keyword, "SCHEMA"},
+ };
+
+ auto engine = MakeSqlCompletionEngineUT();
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"INSERT INTO my_table WITH "}), expected);
+ }
+
Y_UNIT_TEST(UTF8Wide) {
auto engine = MakeSqlCompletionEngineUT();
UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"\xF0\x9F\x98\x8A"}).size(), 0);
@@ -410,9 +521,9 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
Y_UNIT_TEST(WordBreak) {
auto engine = MakeSqlCompletionEngineUT();
- UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"SELECT ("}).size(), 29);
- UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"SELECT (1)"}).size(), 30);
- UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"SELECT 1;"}).size(), 35);
+ UNIT_ASSERT_GE(Complete(engine, {"SELECT ("}).size(), 29);
+ UNIT_ASSERT_GE(Complete(engine, {"SELECT (1)"}).size(), 30);
+ UNIT_ASSERT_GE(Complete(engine, {"SELECT 1;"}).size(), 35);
}
Y_UNIT_TEST(Typing) {
@@ -481,12 +592,29 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
};
UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"SELECT OPTIONAL<U"}), expected);
}
+ {
+ TVector<TCandidate> expected = {
+ {PragmaName, "yson.DisableStrict"},
+ {PragmaName, "yson.AutoConvert"},
+ {PragmaName, "yson.Strict"},
+ {PragmaName, "yson.CastToString"},
+ {PragmaName, "yson.DisableCastToString"},
+ };
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"PRAGMA yson"}), expected);
+ }
+ {
+ TVector<TCandidate> expected = {
+ {HintName, "IGNORE_TYPE_V3"},
+ {HintName, "IGNORETYPEV3"},
+ };
+ UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"REDUCE a WITH ig"}), expected);
+ }
}
Y_UNIT_TEST(OnFailingNameService) {
auto service = MakeHolder<TFailingNameService>();
auto engine = MakeSqlCompletionEngine(MakePureLexerSupplier(), std::move(service));
- UNIT_ASSERT_NO_EXCEPTION(Complete(engine, {""}));
+ UNIT_ASSERT_EXCEPTION(Complete(engine, {""}), TDummyException);
UNIT_ASSERT_EXCEPTION(Complete(engine, {"SELECT OPTIONAL<U"}), TDummyException);
UNIT_ASSERT_EXCEPTION(Complete(engine, {"SELECT CAST (1 AS "}).size(), TDummyException);
}
@@ -516,6 +644,14 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
Y_UNIT_TEST(Ranking) {
TFrequencyData frequency = {
+ .Keywords = {
+ {"select", 2},
+ {"insert", 4},
+ },
+ .Pragmas = {
+ {"yt.defaultmemorylimit", 16},
+ {"yt.annotations", 8},
+ },
.Types = {
{"int32", 128},
{"int64", 64},
@@ -529,11 +665,29 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
{"minby", 32},
{"maxby", 32},
},
+ .Hints = {
+ {"xlock", 4},
+ {"unordered", 2},
+ },
};
auto service = MakeStaticNameService(MakeDefaultNameSet(), MakeDefaultRanking(frequency));
auto engine = MakeSqlCompletionEngine(MakePureLexerSupplier(), std::move(service));
{
TVector<TCandidate> expected = {
+ {Keyword, "INSERT"},
+ {Keyword, "SELECT"},
+ };
+ UNIT_ASSERT_VALUES_EQUAL(CompleteTop(expected.size(), engine, {""}), expected);
+ }
+ {
+ TVector<TCandidate> expected = {
+ {PragmaName, "DefaultMemoryLimit"},
+ {PragmaName, "Annotations"},
+ };
+ UNIT_ASSERT_VALUES_EQUAL(CompleteTop(expected.size(), engine, {"PRAGMA yt."}), expected);
+ }
+ {
+ TVector<TCandidate> expected = {
{TypeName, "Int32"},
{TypeName, "Int64"},
{TypeName, "Interval"},
@@ -544,7 +698,7 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
UNIT_ASSERT_VALUES_EQUAL(Complete(engine, {"SELECT OPTIONAL<I"}), expected);
}
{
- TVector<TCandidate> expectedPrefix = {
+ TVector<TCandidate> expected = {
{FunctionName, "Min("},
{FunctionName, "Max("},
{FunctionName, "MaxOf("},
@@ -554,11 +708,16 @@ Y_UNIT_TEST_SUITE(SqlCompleteTests) {
{FunctionName, "Math::Acos("},
{FunctionName, "Math::Asin("},
};
-
- auto actualPrefix = Complete(engine, {"SELECT m"});
- actualPrefix.crop(expectedPrefix.size());
-
- UNIT_ASSERT_VALUES_EQUAL(actualPrefix, expectedPrefix);
+ UNIT_ASSERT_VALUES_EQUAL(CompleteTop(expected.size(), engine, {"SELECT m"}), expected);
+ }
+ {
+ TVector<TCandidate> expected = {
+ {HintName, "XLOCK"},
+ {HintName, "UNORDERED"},
+ {Keyword, "COLUMNS"},
+ {HintName, "FORCEINFERSCHEMA"},
+ };
+ UNIT_ASSERT_VALUES_EQUAL(CompleteTop(expected.size(), engine, {"SELECT * FROM a WITH "}), expected);
}
}
diff --git a/yql/essentials/sql/v1/complete/syntax/format.cpp b/yql/essentials/sql/v1/complete/syntax/format.cpp
new file mode 100644
index 00000000000..1c9f146c923
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/syntax/format.cpp
@@ -0,0 +1,38 @@
+#include "format.h"
+
+#include "grammar.h"
+
+#include <yql/essentials/sql/v1/complete/antlr4/vocabulary.h>
+
+#include <util/generic/hash_set.h>
+
+namespace NSQLComplete {
+
+ TString FormatKeywords(const TVector<TString>& seq) {
+ static const THashSet<std::string> Keywords = [] {
+ const auto& grammar = GetSqlGrammar();
+ const auto& vocabulary = grammar.GetVocabulary();
+
+ THashSet<std::string> keywords;
+ for (auto& token : grammar.GetKeywordTokens()) {
+ keywords.emplace(Display(vocabulary, token));
+ }
+ return keywords;
+ }();
+
+ if (seq.empty()) {
+ return "";
+ }
+
+ TString text = seq[0];
+ for (size_t i = 1; i < seq.size(); ++i) {
+ const auto& token = seq[i];
+ if (Keywords.contains(token)) {
+ text += " ";
+ }
+ text += token;
+ }
+ return text;
+ }
+
+} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/syntax/format.h b/yql/essentials/sql/v1/complete/syntax/format.h
new file mode 100644
index 00000000000..6c2f1b72ac2
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/syntax/format.h
@@ -0,0 +1,10 @@
+#pragma once
+
+#include <util/generic/string.h>
+#include <util/generic/vector.h>
+
+namespace NSQLComplete {
+
+ TString FormatKeywords(const TVector<TString>& seq);
+
+} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/syntax/local.cpp b/yql/essentials/sql/v1/complete/syntax/local.cpp
index cac43e5a320..4b6fac094d5 100644
--- a/yql/essentials/sql/v1/complete/syntax/local.cpp
+++ b/yql/essentials/sql/v1/complete/syntax/local.cpp
@@ -6,6 +6,7 @@
#include <yql/essentials/sql/v1/complete/antlr4/c3i.h>
#include <yql/essentials/sql/v1/complete/antlr4/c3t.h>
+#include <yql/essentials/sql/v1/complete/antlr4/vocabulary.h>
#include <yql/essentials/core/issue/yql_issue.h>
@@ -22,6 +23,13 @@
namespace NSQLComplete {
+ template <std::regular_invocable<TParserCallStack> StackPredicate>
+ std::regular_invocable<TMatchedRule> auto RuleAdapted(StackPredicate predicate) {
+ return [=](const TMatchedRule& rule) {
+ return predicate(rule.ParserCallStack);
+ };
+ }
+
template <bool IsAnsiLexer>
class TSpecializedLocalSyntaxAnalysis: public ILocalSyntaxAnalysis {
private:
@@ -53,10 +61,15 @@ namespace NSQLComplete {
}
auto candidates = C3.Complete(prefix);
+
+ NSQLTranslation::TParsedTokenList tokens = Tokenized(prefix);
+
return {
.Keywords = SiftedKeywords(candidates),
+ .Pragma = PragmaMatch(tokens, candidates),
.IsTypeName = IsTypeNameMatched(candidates),
- .IsFunctionName = IsFunctionNameMatched(candidates),
+ .Function = FunctionMatch(tokens, candidates),
+ .Hint = HintMatch(candidates),
};
}
@@ -103,44 +116,98 @@ namespace NSQLComplete {
return true;
}
- TVector<TString> SiftedKeywords(const TC3Candidates& candidates) {
+ TLocalSyntaxContext::TKeywords SiftedKeywords(const TC3Candidates& candidates) {
const auto& vocabulary = Grammar->GetVocabulary();
const auto& keywordTokens = Grammar->GetKeywordTokens();
- TVector<TString> keywords;
+ TLocalSyntaxContext::TKeywords keywords;
for (const auto& token : candidates.Tokens) {
if (keywordTokens.contains(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);
+ auto& following = keywords[Display(vocabulary, token.Number)];
+ for (auto next : token.Following) {
+ following.emplace_back(Display(vocabulary, next));
}
}
}
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();
+ std::optional<TLocalSyntaxContext::TPragma> PragmaMatch(
+ const NSQLTranslation::TParsedTokenList& tokens, const TC3Candidates& candidates) {
+ if (!AnyOf(candidates.Rules, RuleAdapted(IsLikelyPragmaStack))) {
+ return std::nullopt;
}
- return name;
+
+ TLocalSyntaxContext::TPragma pragma;
+ if (EndsWith(tokens, {"ID_PLAIN", "DOT"})) {
+ pragma.Namespace = tokens[tokens.size() - 2].Content;
+ } else if (EndsWith(tokens, {"ID_PLAIN", "DOT", ""})) {
+ pragma.Namespace = tokens[tokens.size() - 3].Content;
+ }
+ return pragma;
}
bool IsTypeNameMatched(const TC3Candidates& candidates) {
- return AnyOf(candidates.Rules, [&](const TMatchedRule& rule) {
- return IsLikelyTypeStack(rule.ParserCallStack);
- });
+ return AnyOf(candidates.Rules, RuleAdapted(IsLikelyTypeStack));
+ }
+
+ std::optional<TLocalSyntaxContext::TFunction> FunctionMatch(
+ const NSQLTranslation::TParsedTokenList& tokens, const TC3Candidates& candidates) {
+ if (!AnyOf(candidates.Rules, RuleAdapted(IsLikelyFunctionStack))) {
+ return std::nullopt;
+ }
+
+ TLocalSyntaxContext::TFunction function;
+ if (EndsWith(tokens, {"ID_PLAIN", "NAMESPACE"})) {
+ function.Namespace = tokens[tokens.size() - 2].Content;
+ } else if (EndsWith(tokens, {"ID_PLAIN", "NAMESPACE", ""})) {
+ function.Namespace = tokens[tokens.size() - 3].Content;
+ }
+ return function;
+ }
+
+ std::optional<TLocalSyntaxContext::THint> HintMatch(const TC3Candidates& candidates) {
+ // TODO(YQL-19747): detect local contexts with a single iteration through the candidates.Rules
+ auto rule = FindIf(candidates.Rules, RuleAdapted(IsLikelyHintStack));
+ if (rule == std::end(candidates.Rules)) {
+ return std::nullopt;
+ }
+
+ auto stmt = StatementKindOf(rule->ParserCallStack);
+ if (stmt == std::nullopt) {
+ return std::nullopt;
+ }
+
+ return TLocalSyntaxContext::THint{
+ .StatementKind = *stmt,
+ };
+ }
+
+ NSQLTranslation::TParsedTokenList Tokenized(const TStringBuf text) {
+ NSQLTranslation::TParsedTokenList tokens;
+ NYql::TIssues issues;
+ if (!NSQLTranslation::Tokenize(
+ *Lexer_, TString(text), /* queryName = */ "",
+ tokens, issues, /* maxErrors = */ 0)) {
+ return {};
+ }
+ Y_ENSURE(!tokens.empty() && tokens.back().Name == "EOF");
+ tokens.pop_back();
+ return tokens;
}
- bool IsFunctionNameMatched(const TC3Candidates& candidates) {
- return AnyOf(candidates.Rules, [&](const TMatchedRule& rule) {
- return IsLikelyFunctionStack(rule.ParserCallStack);
- });
+ bool EndsWith(
+ const NSQLTranslation::TParsedTokenList& tokens,
+ const TVector<TStringBuf>& pattern) {
+ if (tokens.size() < pattern.size()) {
+ return false;
+ }
+ for (yssize_t i = tokens.ysize() - 1, j = pattern.ysize() - 1; 0 <= j; --i, --j) {
+ if (!pattern[j].empty() && tokens[i].Name != pattern[j]) {
+ return false;
+ }
+ }
+ return true;
}
const ISqlGrammar* Grammar;
diff --git a/yql/essentials/sql/v1/complete/syntax/local.h b/yql/essentials/sql/v1/complete/syntax/local.h
index 79984d00e2b..2b926e1296e 100644
--- a/yql/essentials/sql/v1/complete/syntax/local.h
+++ b/yql/essentials/sql/v1/complete/syntax/local.h
@@ -5,14 +5,30 @@
#include <yql/essentials/sql/v1/lexer/lexer.h>
#include <util/generic/string.h>
-#include <util/generic/vector.h>
+#include <util/generic/hash.h>
namespace NSQLComplete {
struct TLocalSyntaxContext {
- TVector<TString> Keywords;
+ using TKeywords = THashMap<TString, TVector<TString>>;
+
+ struct TPragma {
+ TString Namespace;
+ };
+
+ struct TFunction {
+ TString Namespace;
+ };
+
+ struct THint {
+ EStatementKind StatementKind;
+ };
+
+ TKeywords Keywords;
+ std::optional<TPragma> Pragma;
bool IsTypeName;
- bool IsFunctionName;
+ std::optional<TFunction> Function;
+ std::optional<THint> Hint;
};
class ILocalSyntaxAnalysis {
diff --git a/yql/essentials/sql/v1/complete/syntax/parser_call_stack.cpp b/yql/essentials/sql/v1/complete/syntax/parser_call_stack.cpp
index 57e058fa900..cdd284b0ad4 100644
--- a/yql/essentials/sql/v1/complete/syntax/parser_call_stack.cpp
+++ b/yql/essentials/sql/v1/complete/syntax/parser_call_stack.cpp
@@ -6,6 +6,8 @@
#include <util/generic/algorithm.h>
#include <util/generic/yexception.h>
+#include <ranges>
+
#define DEBUG_SYMBOLIZE_STACK(stack) \
auto debug_symbolized_##stack = Symbolized(stack)
@@ -24,6 +26,11 @@ namespace NSQLComplete {
RULE(Keyword_compat),
};
+ const TVector<TRuleId> PragmaNameRules = {
+ RULE(Opt_id_prefix_or_type),
+ RULE(An_id),
+ };
+
const TVector<TRuleId> TypeNameRules = {
RULE(Type_name_simple),
RULE(An_id_or_type),
@@ -35,6 +42,11 @@ namespace NSQLComplete {
RULE(Id_or_type),
};
+ const TVector<TRuleId> HintNameRules = {
+ RULE(Id_hint),
+ RULE(An_id),
+ };
+
TVector<std::string> Symbolized(const TParserCallStack& stack) {
const ISqlGrammar& grammar = GetSqlGrammar();
@@ -62,6 +74,11 @@ namespace NSQLComplete {
return Find(stack, rule) != std::end(stack);
}
+ bool IsLikelyPragmaStack(const TParserCallStack& stack) {
+ return EndsWith({RULE(Pragma_stmt), RULE(Opt_id_prefix_or_type)}, stack) ||
+ EndsWith({RULE(Pragma_stmt), RULE(An_id)}, stack);
+ }
+
bool IsLikelyTypeStack(const TParserCallStack& stack) {
return EndsWith({RULE(Type_name_simple)}, stack) ||
(Contains({RULE(Invoke_expr),
@@ -75,12 +92,31 @@ namespace NSQLComplete {
return EndsWith({RULE(Unary_casual_subexpr), RULE(Id_expr)}, stack) ||
EndsWith({RULE(Unary_casual_subexpr),
RULE(Atom_expr),
- RULE(An_id_or_type)}, stack);
+ RULE(An_id_or_type)}, stack) ||
+ EndsWith({RULE(Atom_expr), RULE(Id_or_type)}, stack);
+ }
+
+ bool IsLikelyHintStack(const TParserCallStack& stack) {
+ return ContainsRule(RULE(Id_hint), stack) ||
+ Contains({RULE(External_call_param), RULE(An_id)}, stack);
+ }
+
+ std::optional<EStatementKind> StatementKindOf(const TParserCallStack& stack) {
+ for (TRuleId rule : std::ranges::views::reverse(stack)) {
+ if (rule == RULE(Process_core) || rule == RULE(Reduce_core) || rule == RULE(Select_core)) {
+ return EStatementKind::Select;
+ }
+ if (rule == RULE(Into_table_stmt)) {
+ return EStatementKind::Insert;
+ }
+ }
+ return std::nullopt;
}
std::unordered_set<TRuleId> GetC3PreferredRules() {
std::unordered_set<TRuleId> preferredRules;
preferredRules.insert(std::begin(KeywordRules), std::end(KeywordRules));
+ preferredRules.insert(std::begin(PragmaNameRules), std::end(PragmaNameRules));
preferredRules.insert(std::begin(TypeNameRules), std::end(TypeNameRules));
preferredRules.insert(std::begin(FunctionNameRules), std::end(FunctionNameRules));
return preferredRules;
diff --git a/yql/essentials/sql/v1/complete/syntax/parser_call_stack.h b/yql/essentials/sql/v1/complete/syntax/parser_call_stack.h
index 756586988db..98738728231 100644
--- a/yql/essentials/sql/v1/complete/syntax/parser_call_stack.h
+++ b/yql/essentials/sql/v1/complete/syntax/parser_call_stack.h
@@ -1,13 +1,20 @@
#pragma once
#include <yql/essentials/sql/v1/complete/antlr4/defs.h>
+#include <yql/essentials/sql/v1/complete/core/statement.h>
namespace NSQLComplete {
+ bool IsLikelyPragmaStack(const TParserCallStack& stack);
+
bool IsLikelyTypeStack(const TParserCallStack& stack);
bool IsLikelyFunctionStack(const TParserCallStack& stack);
+ bool IsLikelyHintStack(const TParserCallStack& stack);
+
+ std::optional<EStatementKind> StatementKindOf(const TParserCallStack& stack);
+
std::unordered_set<TRuleId> GetC3PreferredRules();
} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/syntax/ya.make b/yql/essentials/sql/v1/complete/syntax/ya.make
index 24fd94a952a..6631a0d9c1d 100644
--- a/yql/essentials/sql/v1/complete/syntax/ya.make
+++ b/yql/essentials/sql/v1/complete/syntax/ya.make
@@ -2,6 +2,7 @@ LIBRARY()
SRCS(
ansi.cpp
+ format.cpp
grammar.cpp
local.cpp
parser_call_stack.cpp
@@ -13,11 +14,9 @@ ADDINCL(
PEERDIR(
yql/essentials/core/issue
-
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
yql/essentials/sql/v1/reflect
diff --git a/yql/essentials/sql/v1/complete/text/case.cpp b/yql/essentials/sql/v1/complete/text/case.cpp
new file mode 100644
index 00000000000..ea1b39e1613
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/text/case.cpp
@@ -0,0 +1,11 @@
+#include "case.h"
+
+#include <util/string/ascii.h>
+
+namespace NSQLComplete {
+
+ bool NoCaseCompare(const TString& lhs, const TString& rhs) {
+ return AsciiCompareIgnoreCase(lhs, rhs) < 0;
+ }
+
+} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/text/case.h b/yql/essentials/sql/v1/complete/text/case.h
new file mode 100644
index 00000000000..883cb7f5048
--- /dev/null
+++ b/yql/essentials/sql/v1/complete/text/case.h
@@ -0,0 +1,15 @@
+#pragma once
+
+#include <util/generic/string.h>
+
+namespace NSQLComplete {
+
+ bool NoCaseCompare(const TString& lhs, const TString& rhs);
+
+ inline auto NoCaseCompareLimit(size_t size) {
+ return [size](const TString& lhs, const TString& rhs) -> bool {
+ return strncasecmp(lhs.data(), rhs.data(), size) < 0;
+ };
+ }
+
+} // namespace NSQLComplete
diff --git a/yql/essentials/sql/v1/complete/text/ya.make b/yql/essentials/sql/v1/complete/text/ya.make
index 030e69172ab..3d26b895e52 100644
--- a/yql/essentials/sql/v1/complete/text/ya.make
+++ b/yql/essentials/sql/v1/complete/text/ya.make
@@ -1,6 +1,7 @@
LIBRARY()
SRCS(
+ case.cpp
word.cpp
)
diff --git a/yql/essentials/sql/v1/complete/ya.make b/yql/essentials/sql/v1/complete/ya.make
index 4db8f92d5aa..59c15502af5 100644
--- a/yql/essentials/sql/v1/complete/ya.make
+++ b/yql/essentials/sql/v1/complete/ya.make
@@ -6,11 +6,6 @@ SRCS(
PEERDIR(
yql/essentials/sql/v1/lexer
-
- # FIXME(YQL-19747): unwanted dependency on a lexer implementation
- yql/essentials/sql/v1/lexer/antlr4_pure
- yql/essentials/sql/v1/lexer/antlr4_pure_ansi
-
yql/essentials/sql/v1/complete/antlr4
yql/essentials/sql/v1/complete/name
yql/essentials/sql/v1/complete/name/static
@@ -22,6 +17,7 @@ END()
RECURSE(
antlr4
+ core
name
syntax
text
diff --git a/yql/essentials/sql/v1/context.cpp b/yql/essentials/sql/v1/context.cpp
index de2668608ea..1a0a1f4b18d 100644
--- a/yql/essentials/sql/v1/context.cpp
+++ b/yql/essentials/sql/v1/context.cpp
@@ -68,6 +68,7 @@ THashMap<TStringBuf, TPragmaField> CTX_PRAGMA_FIELDS = {
{"DistinctOverWindow", &TContext::DistinctOverWindow},
{"EmitUnionMerge", &TContext::EmitUnionMerge},
{"SeqMode", &TContext::SeqMode},
+ {"DistinctOverKeys", &TContext::DistinctOverKeys},
};
typedef TMaybe<bool> TContext::*TPragmaMaybeField;
diff --git a/yql/essentials/sql/v1/context.h b/yql/essentials/sql/v1/context.h
index 17e86c77c3d..3bdfa1ceab4 100644
--- a/yql/essentials/sql/v1/context.h
+++ b/yql/essentials/sql/v1/context.h
@@ -372,6 +372,7 @@ namespace NSQLTranslationV1 {
bool AnsiImplicitCrossJoin = false; // select * from A,B
bool DistinctOverWindow = false;
bool SeqMode = false;
+ bool DistinctOverKeys = false;
bool EmitUnionMerge = false;
TVector<size_t> ForAllStatementsParts;
diff --git a/yql/essentials/sql/v1/lexer/check/check_lexers.cpp b/yql/essentials/sql/v1/lexer/check/check_lexers.cpp
new file mode 100644
index 00000000000..d0cccefdc79
--- /dev/null
+++ b/yql/essentials/sql/v1/lexer/check/check_lexers.cpp
@@ -0,0 +1,82 @@
+#include "check_lexers.h"
+
+
+#include <yql/essentials/sql/settings/translation_settings.h>
+#include <yql/essentials/sql/v1/lexer/lexer.h>
+#include <yql/essentials/sql/v1/lexer/antlr4/lexer.h>
+#include <yql/essentials/sql/v1/lexer/antlr4_ansi/lexer.h>
+#include <yql/essentials/sql/v1/lexer/antlr4_pure/lexer.h>
+#include <yql/essentials/sql/v1/lexer/antlr4_pure_ansi/lexer.h>
+#include <yql/essentials/sql/v1/lexer/regex/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 NSQLTranslationV1 {
+
+bool CheckLexers(NYql::TPosition pos, const TString& query, NYql::TIssues& issues) {
+ NSQLTranslationV1::TLexers lexers;
+ NSQLTranslation::TTranslationSettings settings;
+ if (!NSQLTranslation::ParseTranslationSettings(query, settings, issues)) {
+ return false;
+ }
+
+ lexers.Antlr4 = NSQLTranslationV1::MakeAntlr4LexerFactory();
+ lexers.Antlr4Ansi = NSQLTranslationV1::MakeAntlr4AnsiLexerFactory();
+ lexers.Antlr4Pure = NSQLTranslationV1::MakeAntlr4PureLexerFactory();
+ lexers.Antlr4PureAnsi = NSQLTranslationV1::MakeAntlr4PureAnsiLexerFactory();
+ auto lexerMain = NSQLTranslationV1::MakeLexer(lexers, settings.AnsiLexer, true, NSQLTranslationV1::ELexerFlavor::Default);
+ auto lexerPure = NSQLTranslationV1::MakeLexer(lexers, settings.AnsiLexer, true, NSQLTranslationV1::ELexerFlavor::Pure);
+ auto lexerRegex = NSQLTranslationV1::MakeRegexLexerFactory(settings.AnsiLexer)->MakeLexer();
+ TVector<NSQLTranslation::TParsedToken> mainTokens;
+ if (!lexerMain->Tokenize(query, "", [&](auto token) { mainTokens.push_back(token);}, issues, NSQLTranslation::SQL_MAX_PARSER_ERRORS)) {
+ return false;
+ }
+
+ TVector<NSQLTranslation::TParsedToken> pureTokens;
+ if (!lexerPure->Tokenize(query, "", [&](auto token) { pureTokens.push_back(token);}, issues, NSQLTranslation::SQL_MAX_PARSER_ERRORS)) {
+ return false;
+ }
+
+ TVector<NSQLTranslation::TParsedToken> regexTokens;
+ if (!lexerRegex->Tokenize(query, "", [&](auto token) { regexTokens.push_back(token);}, issues, NSQLTranslation::SQL_MAX_PARSER_ERRORS)) {
+ return false;
+ }
+
+ bool hasErrors = false;
+ auto check = [&](const char* name, const TVector<NSQLTranslation::TParsedToken>& otherTokens) {
+ if (mainTokens.size() != otherTokens.size()) {
+ hasErrors = true;
+ issues.AddIssue(NYql::TIssue(pos, TStringBuilder () << "Mismatch token count, main: " <<
+ mainTokens.size() << ", " << name << ": " << otherTokens.size() << "\n"));
+ }
+
+ TStringBuilder textBuilder;
+
+ for (size_t i = 0; i < Min(mainTokens.size(), otherTokens.size()); ++i) {
+ if (mainTokens[i].Name != otherTokens[i].Name || mainTokens[i].Content != otherTokens[i].Content) {
+ hasErrors = true;
+ TStringBuilder err;
+ err << "Mismatch token #" << i << ", main: " << mainTokens[i].Name << ":" << mainTokens[i].Content
+ << ", " << name << ": " << otherTokens[i].Name << ":" << otherTokens[i].Content << "\n";
+ err << "Text sample: [";
+ TString text = textBuilder;
+ constexpr size_t LexerContextSample = 50;
+ err << text.substr(text.size() >= LexerContextSample ? text.size() - LexerContextSample : 0u, LexerContextSample);
+ err << "]\n";
+ issues.AddIssue(NYql::TIssue(pos, err));
+ break;
+ }
+
+ textBuilder << mainTokens[i].Content;
+ }
+ };
+
+ check("pure", pureTokens);
+ check("regex", regexTokens);
+ return !hasErrors;
+}
+
+}
diff --git a/yql/essentials/sql/v1/lexer/check/check_lexers.h b/yql/essentials/sql/v1/lexer/check/check_lexers.h
new file mode 100644
index 00000000000..0fceaa2e0bd
--- /dev/null
+++ b/yql/essentials/sql/v1/lexer/check/check_lexers.h
@@ -0,0 +1,9 @@
+#pragma once
+#include <yql/essentials/core/issue/yql_issue.h>
+#include <util/generic/string.h>
+
+namespace NSQLTranslationV1 {
+
+bool CheckLexers(NYql::TPosition pos, const TString& query, NYql::TIssues& issues);
+
+}
diff --git a/yql/essentials/sql/v1/lexer/check/ya.make b/yql/essentials/sql/v1/lexer/check/ya.make
new file mode 100644
index 00000000000..dc4ac21836d
--- /dev/null
+++ b/yql/essentials/sql/v1/lexer/check/ya.make
@@ -0,0 +1,21 @@
+LIBRARY()
+
+SRCS(
+ check_lexers.h
+ check_lexers.cpp
+)
+
+PEERDIR(
+ yql/essentials/core/issue
+ yql/essentials/sql/settings
+ yql/essentials/sql/v1/lexer
+ yql/essentials/sql/v1/lexer/antlr4
+ yql/essentials/sql/v1/lexer/antlr4_ansi
+ yql/essentials/sql/v1/lexer/antlr4_pure
+ yql/essentials/sql/v1/lexer/antlr4_pure_ansi
+ yql/essentials/sql/v1/lexer/regex
+ yql/essentials/sql/v1/proto_parser/antlr4
+ yql/essentials/sql/v1/proto_parser/antlr4_ansi
+)
+
+END()
diff --git a/yql/essentials/sql/v1/lexer/lexer_ut.cpp b/yql/essentials/sql/v1/lexer/lexer_ut.cpp
index 549dc9d8fa9..c59089efd63 100644
--- a/yql/essentials/sql/v1/lexer/lexer_ut.cpp
+++ b/yql/essentials/sql/v1/lexer/lexer_ut.cpp
@@ -28,7 +28,7 @@ using namespace NSQLTranslationV1;
TLexers Lexers = {
.Antlr3 = MakeAntlr3LexerFactory(),
- .Antlr3Ansi = MakeAntlr4AnsiLexerFactory(),
+ .Antlr3Ansi = MakeAntlr3AnsiLexerFactory(),
.Antlr4 = MakeAntlr4LexerFactory(),
.Antlr4Ansi = MakeAntlr4AnsiLexerFactory(),
.Antlr4Pure = MakeAntlr4PureLexerFactory(),
@@ -307,6 +307,20 @@ Y_UNIT_TEST_SUITE(SQLv1Lexer) {
UNIT_ASSERT_TOKENIZED(lexer, "INSERT", "INSERT EOF");
UNIT_ASSERT_TOKENIZED(lexer, "FROM", "FROM EOF");
UNIT_ASSERT_TOKENIZED(lexer, "from", "FROM(from) EOF");
+ UNIT_ASSERT_TOKENIZED(lexer, " UPSERT ", "WS( ) UPSERT WS( ) EOF");
+ }
+
+ Y_UNIT_TEST_ON_EACH_LEXER(KeywordSkip) {
+ auto lexer = MakeLexer(Lexers, ANSI, ANTLR4, FLAVOR);
+ if (ANTLR4 || FLAVOR == ELexerFlavor::Regex) {
+ UNIT_ASSERT_TOKENIZED(lexer, "sKip", "TSKIP(sKip) EOF");
+ UNIT_ASSERT_TOKENIZED(lexer, "SKIP", "TSKIP(SKIP) EOF");
+ UNIT_ASSERT_TOKENIZED(lexer, " SKIP ", "WS( ) TSKIP(SKIP) WS( ) EOF");
+ } else {
+ UNIT_ASSERT_TOKENIZED(lexer, "sKip", "SKIP(sKip) EOF");
+ UNIT_ASSERT_TOKENIZED(lexer, "SKIP", "SKIP EOF");
+ UNIT_ASSERT_TOKENIZED(lexer, " SKIP ", "WS( ) SKIP WS( ) EOF");
+ }
}
Y_UNIT_TEST_ON_EACH_LEXER(Punctuation) {
@@ -337,6 +351,7 @@ Y_UNIT_TEST_SUITE(SQLv1Lexer) {
UNIT_ASSERT_TOKENIZED(lexer, "123", "DIGITS(123) EOF");
UNIT_ASSERT_TOKENIZED(lexer, "123u", "INTEGER_VALUE(123u) EOF");
UNIT_ASSERT_TOKENIZED(lexer, "123ui", "INTEGER_VALUE(123ui) EOF");
+ UNIT_ASSERT_TOKENIZED(lexer, "0xDEADbeef", "DIGITS(0xDEADbeef) EOF");
UNIT_ASSERT_TOKENIZED(lexer, "123.45", "REAL(123.45) EOF");
UNIT_ASSERT_TOKENIZED(lexer, "123.45E10", "REAL(123.45E10) EOF");
UNIT_ASSERT_TOKENIZED(lexer, "123.45E+10", "REAL(123.45E+10) EOF");
@@ -353,7 +368,7 @@ Y_UNIT_TEST_SUITE(SQLv1Lexer) {
if (!ANSI) {
UNIT_ASSERT_TOKENIZED(lexer, "\"\\\"\"", "STRING_VALUE(\"\\\"\") EOF");
UNIT_ASSERT_TOKENIZED(lexer, "\"\"\"\"", "STRING_VALUE(\"\") STRING_VALUE(\"\") EOF");
- } else {
+ } else if (ANTLR4 || FLAVOR == ELexerFlavor::Regex) {
UNIT_ASSERT_TOKENIZED(lexer, "\"\\\"\"", "[INVALID] STRING_VALUE(\"\\\") EOF");
UNIT_ASSERT_TOKENIZED(lexer, "\"\"\"\"", "STRING_VALUE(\"\"\"\") EOF");
}
@@ -365,6 +380,7 @@ Y_UNIT_TEST_SUITE(SQLv1Lexer) {
UNIT_ASSERT_TOKENIZED(lexer, "@@ @@@", "STRING_VALUE(@@ @@@) EOF");
UNIT_ASSERT_TOKENIZED(lexer, "@@test@@", "STRING_VALUE(@@test@@) EOF");
UNIT_ASSERT_TOKENIZED(lexer, "@@line1\nline2@@", "STRING_VALUE(@@line1\nline2@@) EOF");
+ UNIT_ASSERT_TOKENIZED(lexer, "@@@@ @@A@@ @@@A@@", "STRING_VALUE(@@@@) WS( ) STRING_VALUE(@@A@@) WS( ) STRING_VALUE(@@@A@@) EOF");
}
Y_UNIT_TEST_ON_EACH_LEXER(SingleLineComment) {
@@ -387,7 +403,7 @@ Y_UNIT_TEST_SUITE(SQLv1Lexer) {
if (!ANSI) {
UNIT_ASSERT_TOKENIZED(lexer, "/* /* yql */", "COMMENT(/* /* yql */) EOF");
UNIT_ASSERT_TOKENIZED(lexer, "/* /* yql */ */", "COMMENT(/* /* yql */) WS( ) ASTERISK(*) SLASH(/) EOF");
- } else {
+ } else if (ANTLR4 || FLAVOR == ELexerFlavor::Regex) {
UNIT_ASSERT_TOKENIZED(lexer, "/* /* yql */", "COMMENT(/* /* yql */) EOF");
UNIT_ASSERT_TOKENIZED(lexer, "/* yql */ */", "COMMENT(/* yql */) WS( ) ASTERISK(*) SLASH(/) EOF");
UNIT_ASSERT_TOKENIZED(lexer, "/* /* /* yql */ */", "COMMENT(/* /* /* yql */ */) EOF");
@@ -408,8 +424,8 @@ Y_UNIT_TEST_SUITE(SQLv1Lexer) {
auto reference = MakeLexer(Lexers, ANSI, /* antlr4 = */ true, ELexerFlavor::Pure);
SetRandomSeed(100);
- for (size_t i = 0; i < 512; ++i) {
- auto input = RandomMultilineCommentLikeText(/* maxSize = */ 32);
+ for (size_t i = 0; i < 128; ++i) {
+ auto input = RandomMultilineCommentLikeText(/* maxSize = */ 16);
TString actual = Tokenized(lexer, input);
TString expected = Tokenized(reference, input);
@@ -453,4 +469,58 @@ Y_UNIT_TEST_SUITE(SQLv1Lexer) {
UNIT_ASSERT_TOKENIZED(lexer, query, expected);
}
+ Y_UNIT_TEST_ON_EACH_LEXER(Examples) {
+ auto lexer = MakeLexer(Lexers, ANSI, ANTLR4, FLAVOR);
+ UNIT_ASSERT_TOKENIZED(
+ lexer,
+ R"(
+SELECT
+ YQL::@@(Uint32 '100500)@@,
+ YQL::@@(String '[WAT])@@
+;)",
+ "WS(\n) "
+ "SELECT WS(\n) WS( ) ID_PLAIN(YQL) NAMESPACE(::) STRING_VALUE(@@(Uint32 '100500)@@) COMMA(,) WS(\n) "
+ "WS( ) ID_PLAIN(YQL) NAMESPACE(::) STRING_VALUE(@@(String '[WAT])@@) WS(\n) "
+ "SEMICOLON(;) EOF");
+ }
+
+ Y_UNIT_TEST_ON_EACH_LEXER(AsciiEscape) {
+ auto lexer = MakeLexer(Lexers, ANSI, ANTLR4, FLAVOR);
+ UNIT_ASSERT_TOKENIZED(lexer, "\0", "EOF"); // Null character
+ UNIT_ASSERT_TOKENIZED(lexer, "\t", "WS(\t) EOF"); // Horizontal Tab
+ UNIT_ASSERT_TOKENIZED(lexer, "\n", "WS(\n) EOF"); // Line Feed
+ UNIT_ASSERT_TOKENIZED(lexer, "\v", "[INVALID] EOF"); // Vertical Tabulation
+ UNIT_ASSERT_TOKENIZED(lexer, "\f", "WS(\x0C) EOF"); // Form Feed
+ UNIT_ASSERT_TOKENIZED(lexer, "\r", "WS(\r) EOF"); // Carriage Return
+ UNIT_ASSERT_TOKENIZED(lexer, "\r\n", "WS(\r) WS(\n) EOF");
+ }
+
+ Y_UNIT_TEST_ON_EACH_LEXER(AsciiEscapeCanon) {
+ static THashMap<char, TString> canon;
+
+ auto lexer = MakeLexer(Lexers, ANSI, ANTLR4, FLAVOR);
+
+ for (char c = 0; c < std::numeric_limits<char>::max(); ++c) {
+ TString input;
+ input += c;
+
+ TString& expected = canon[c];
+ if (expected.empty()) {
+ expected = Tokenized(lexer, input);
+ }
+
+ UNIT_ASSERT_TOKENIZED(lexer, input, expected);
+ }
+ }
+
+ Y_UNIT_TEST_ON_EACH_LEXER(Utf8BOM) {
+ auto lexer = MakeLexer(Lexers, ANSI, ANTLR4, FLAVOR);
+ if (ANTLR4 || FLAVOR == ELexerFlavor::Regex) {
+ UNIT_ASSERT_TOKENIZED(lexer, "\xEF\xBB\xBF 1", "WS( ) DIGITS(1) EOF");
+ UNIT_ASSERT_TOKENIZED(lexer, "\xEF\xBB\xBF \xEF\xBB\xBF", "[INVALID] WS( ) EOF");
+ } else {
+ UNIT_ASSERT_TOKENIZED(lexer, "\xEF\xBB\xBF 1", "[INVALID] WS( ) DIGITS(1) EOF");
+ }
+ }
+
} // Y_UNIT_TEST_SUITE(SQLv1Lexer)
diff --git a/yql/essentials/sql/v1/lexer/regex/lexer.cpp b/yql/essentials/sql/v1/lexer/regex/lexer.cpp
index b8ca033b0c6..a1d96253bf7 100644
--- a/yql/essentials/sql/v1/lexer/regex/lexer.cpp
+++ b/yql/essentials/sql/v1/lexer/regex/lexer.cpp
@@ -19,6 +19,9 @@ namespace NSQLTranslationV1 {
class TRegexLexer: public NSQLTranslation::ILexer {
static constexpr const char* CommentTokenName = "COMMENT";
+ static constexpr const char* StringValueName = "STRING_VALUE";
+
+ static constexpr const TStringBuf Utf8BOM = "\xEF\xBB\xBF";
public:
TRegexLexer(
@@ -29,10 +32,16 @@ namespace NSQLTranslationV1 {
, Ansi_(ansi)
{
for (const auto& [token, regex] : RegexByOtherName) {
+ RE2::Options custom;
+ if (token != CommentTokenName && token != StringValueName) {
+ custom.set_longest_match(true);
+ }
+
+ RE2* re2 = new RE2(regex, custom);
if (token == CommentTokenName) {
- CommentRegex_.Reset(new RE2(regex));
+ CommentRegex_.Reset(re2);
} else {
- OtherRegexes_.emplace_back(token, new RE2(regex));
+ OtherRegexes_.emplace_back(token, re2);
}
}
}
@@ -44,7 +53,13 @@ namespace NSQLTranslationV1 {
NYql::TIssues& issues,
size_t maxErrors) override {
size_t errors = 0;
- for (size_t pos = 0; pos < query.size();) {
+
+ size_t pos = 0;
+ if (query.StartsWith(Utf8BOM)) {
+ pos += Utf8BOM.size();
+ }
+
+ while (pos < query.size()) {
TParsedToken matched = Match(TStringBuf(query, pos));
if (matched.Name.empty() && maxErrors == errors) {
@@ -62,7 +77,7 @@ namespace NSQLTranslationV1 {
onNextToken(std::move(matched));
}
- onNextToken(TParsedToken{.Name = "EOF"});
+ onNextToken(TParsedToken{.Name = "EOF", .Content = "<EOF>"});
return errors == 0;
}
@@ -109,8 +124,9 @@ namespace NSQLTranslationV1 {
bool MatchKeyword(const TStringBuf prefix, TParsedTokenList& matches) {
size_t count = 0;
for (const auto& keyword : Grammar_.KeywordNames) {
- const TStringBuf content = prefix.substr(0, keyword.length());
- if (AsciiEqualsIgnoreCase(content, keyword)) {
+ const TStringBuf block = NSQLReflect::TLexerGrammar::KeywordBlock(keyword);
+ const TStringBuf content = prefix.substr(0, block.length());
+ if (AsciiEqualsIgnoreCase(content, block)) {
matches.emplace_back(keyword, TString(content));
count += 1;
}
diff --git a/yql/essentials/sql/v1/lexer/regex/lexer_ut.cpp b/yql/essentials/sql/v1/lexer/regex/lexer_ut.cpp
index 03c84bcffe3..6ac25008b34 100644
--- a/yql/essentials/sql/v1/lexer/regex/lexer_ut.cpp
+++ b/yql/essentials/sql/v1/lexer/regex/lexer_ut.cpp
@@ -216,4 +216,4 @@ Y_UNIT_TEST_SUITE(RegexLexerTests) {
Check("\" SELECT", "[INVALID] WS( ) SELECT EOF");
}
-} // Y_UNIT_TEST_SUITE(RegexLexerTests) \ No newline at end of file
+} // Y_UNIT_TEST_SUITE(RegexLexerTests)
diff --git a/yql/essentials/sql/v1/lexer/regex/regex.cpp b/yql/essentials/sql/v1/lexer/regex/regex.cpp
index 937d21572fc..e634ff009a7 100644
--- a/yql/essentials/sql/v1/lexer/regex/regex.cpp
+++ b/yql/essentials/sql/v1/lexer/regex/regex.cpp
@@ -135,7 +135,7 @@ namespace NSQLTranslationV1 {
R"(\bEOF\b)", R"($)"));
rules.emplace_back(RegexRewriteRule(
- R"('\\u000C' \|)", ""));
+ R"('\\u000C' \|)", R"('\\f' |)"));
}
void Finalize(TString& text) {
diff --git a/yql/essentials/sql/v1/lexer/regex/regex_ut.cpp b/yql/essentials/sql/v1/lexer/regex/regex_ut.cpp
index dad0b2ebd2d..e62bb0e609f 100644
--- a/yql/essentials/sql/v1/lexer/regex/regex_ut.cpp
+++ b/yql/essentials/sql/v1/lexer/regex/regex_ut.cpp
@@ -76,7 +76,7 @@ Y_UNIT_TEST_SUITE(SqlRegexTests) {
CheckRegex(
/* ansi = */ false,
"WS",
- R"(( |\r|\t|\n))");
+ R"(( |\r|\t|\f|\n))");
}
Y_UNIT_TEST(Comment) {
@@ -93,4 +93,4 @@ Y_UNIT_TEST_SUITE(SqlRegexTests) {
Get(defaultRegexes, "COMMENT"));
}
-} // Y_UNIT_TEST_SUITE(SqlRegexTests) \ No newline at end of file
+} // Y_UNIT_TEST_SUITE(SqlRegexTests)
diff --git a/yql/essentials/sql/v1/lexer/ya.make b/yql/essentials/sql/v1/lexer/ya.make
index 66c0c87f15f..6462ced1991 100644
--- a/yql/essentials/sql/v1/lexer/ya.make
+++ b/yql/essentials/sql/v1/lexer/ya.make
@@ -22,6 +22,7 @@ RECURSE(
antlr4_ansi
antlr4_pure
antlr4_pure_ansi
+ check
regex
)
diff --git a/yql/essentials/sql/v1/reflect/sql_reflect.cpp b/yql/essentials/sql/v1/reflect/sql_reflect.cpp
index c0af06e0b46..262209cfc39 100644
--- a/yql/essentials/sql/v1/reflect/sql_reflect.cpp
+++ b/yql/essentials/sql/v1/reflect/sql_reflect.cpp
@@ -15,6 +15,13 @@ namespace NSQLReflect {
const TStringBuf SectionOther = "//! section:other";
const TStringBuf FragmentPrefix = "fragment ";
+ const TStringBuf TLexerGrammar::KeywordBlock(const TStringBuf name) {
+ if (name == "TSKIP") {
+ return "SKIP";
+ }
+ return name;
+ }
+
TVector<TString> GetResourceLines(const TStringBuf key) {
TString text;
Y_ENSURE(NResource::FindExact(key, &text));
@@ -126,7 +133,7 @@ namespace NSQLReflect {
SubstGlobal(block, "'", "");
SubstGlobal(block, " ", "");
- Y_ENSURE(name == block || (name == "TSKIP" && block == "SKIP"));
+ Y_ENSURE(name == block || (name == "TSKIP" && block == TLexerGrammar::KeywordBlock("TSKIP")));
grammar.KeywordNames.emplace(std::move(name));
}
diff --git a/yql/essentials/sql/v1/reflect/sql_reflect.h b/yql/essentials/sql/v1/reflect/sql_reflect.h
index ca398706873..1f67a2f93a3 100644
--- a/yql/essentials/sql/v1/reflect/sql_reflect.h
+++ b/yql/essentials/sql/v1/reflect/sql_reflect.h
@@ -12,6 +12,8 @@ namespace NSQLReflect {
THashSet<TString> PunctuationNames;
TVector<TString> OtherNames;
THashMap<TString, TString> BlockByName;
+
+ static const TStringBuf KeywordBlock(const TStringBuf name);
};
TLexerGrammar LoadLexerGrammar();
diff --git a/yql/essentials/sql/v1/sql_query.cpp b/yql/essentials/sql/v1/sql_query.cpp
index a860571698b..b60a338d02f 100644
--- a/yql/essentials/sql/v1/sql_query.cpp
+++ b/yql/essentials/sql/v1/sql_query.cpp
@@ -3387,6 +3387,12 @@ TNodePtr TSqlQuery::PragmaStatement(const TRule_pragma_stmt& stmt, bool& success
} else if (normalizedPragma == "disableemitunionmerge") {
Ctx.EmitUnionMerge = false;
Ctx.IncrementMonCounter("sql_pragma", "DisableEmitUnionMerge");
+ } else if (normalizedPragma == "distinctoverkeys") {
+ Ctx.DistinctOverKeys = true;
+ Ctx.IncrementMonCounter("sql_pragma", "DistinctOverKeys");
+ } else if (normalizedPragma == "disabledistinctoverkeys") {
+ Ctx.DistinctOverKeys = false;
+ Ctx.IncrementMonCounter("sql_pragma", "DisableDistinctOverKeys");
} else if (normalizedPragma == "engine") {
Ctx.IncrementMonCounter("sql_pragma", "Engine");
diff --git a/yql/essentials/tests/s-expressions/minirun/part0/canondata/result.json b/yql/essentials/tests/s-expressions/minirun/part0/canondata/result.json
index 0a80f2cd10c..5902893a5ac 100644
--- a/yql/essentials/tests/s-expressions/minirun/part0/canondata/result.json
+++ b/yql/essentials/tests/s-expressions/minirun/part0/canondata/result.json
@@ -13,6 +13,20 @@
"uri": "https://{canondata_backend}/1942671/fe442fb9178873beea37ece387e67a5d541a25b2/resource.tar.gz#test.test_Aggregation-AggrCount-default.txt-Results_/results.txt"
}
],
+ "test.test[Blocks-WideToBlocks-WideFromBlocks-default.txt-Debug]": [
+ {
+ "checksum": "7838538438ce14638ded18f1defb2380",
+ "size": 627,
+ "uri": "https://{canondata_backend}/1925842/3d4a337c6b21036cefb828b5de69295a7ec717f6/resource.tar.gz#test.test_Blocks-WideToBlocks-WideFromBlocks-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[Blocks-WideToBlocks-WideFromBlocks-default.txt-Results]": [
+ {
+ "checksum": "f98666abfa816dc9b28ac6c28c9b5e7c",
+ "size": 1257,
+ "uri": "https://{canondata_backend}/1925842/3d4a337c6b21036cefb828b5de69295a7ec717f6/resource.tar.gz#test.test_Blocks-WideToBlocks-WideFromBlocks-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[Builtins-ByteString-default.txt-Debug]": [
{
"checksum": "056b689b9c8cf44642288e79f8cd0185",
diff --git a/yql/essentials/tests/s-expressions/minirun/part7/canondata/result.json b/yql/essentials/tests/s-expressions/minirun/part7/canondata/result.json
index 9da54766c1d..f9029941a62 100644
--- a/yql/essentials/tests/s-expressions/minirun/part7/canondata/result.json
+++ b/yql/essentials/tests/s-expressions/minirun/part7/canondata/result.json
@@ -1,9 +1,9 @@
{
"test.test[Blocks-BlockMapJoinCore-default.txt-Debug]": [
{
- "checksum": "445a5d7f7918455fc74eefafa41b519d",
- "size": 2187,
- "uri": "https://{canondata_backend}/1871182/dd0654c5ee04d3c397f5f6c37ba02b2ae503ed1f/resource.tar.gz#test.test_Blocks-BlockMapJoinCore-default.txt-Debug_/opt.yql"
+ "checksum": "b4e62992f4922bfdc10db8ffd370cfbe",
+ "size": 1952,
+ "uri": "https://{canondata_backend}/1031349/b655b23222eeb79fdf6d4802458aa188f67c1db4/resource.tar.gz#test.test_Blocks-BlockMapJoinCore-default.txt-Debug_/opt.yql"
}
],
"test.test[Blocks-BlockMapJoinCore-default.txt-Results]": [
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 2e739109485..3d8ae83f3b5 100644
--- a/yql/essentials/tests/s-expressions/minirun/part8/canondata/result.json
+++ b/yql/essentials/tests/s-expressions/minirun/part8/canondata/result.json
@@ -55,6 +55,20 @@
"uri": "https://{canondata_backend}/1937429/6dc717bd36879ce84e2fa1eb85b97eefce0733e9/resource.tar.gz#test.test_Blocks-ListFromBlocks-default.txt-Results_/results.txt"
}
],
+ "test.test[Blocks-WideFromBlocks-WideToBlocks-default.txt-Debug]": [
+ {
+ "checksum": "d6c0024db8898aef8f8b31b1025667cc",
+ "size": 483,
+ "uri": "https://{canondata_backend}/1925842/70c39ce7d6aa898d26d58abf8d512eebac34de7f/resource.tar.gz#test.test_Blocks-WideFromBlocks-WideToBlocks-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[Blocks-WideFromBlocks-WideToBlocks-default.txt-Results]": [
+ {
+ "checksum": "3326d454244059e96a0b61b3fdf53480",
+ "size": 878,
+ "uri": "https://{canondata_backend}/1925842/70c39ce7d6aa898d26d58abf8d512eebac34de7f/resource.tar.gz#test.test_Blocks-WideFromBlocks-WideToBlocks-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[Builtins-ToIntegral-default.txt-Debug]": [
{
"checksum": "33f569baf5940bbd79fbf635f47cc363",
diff --git a/yql/essentials/tests/s-expressions/minirun/pure.make b/yql/essentials/tests/s-expressions/minirun/pure.make
index 72d38121773..64002f529d1 100644
--- a/yql/essentials/tests/s-expressions/minirun/pure.make
+++ b/yql/essentials/tests/s-expressions/minirun/pure.make
@@ -13,7 +13,11 @@ ENDIF()
IF (SANITIZER_TYPE OR WITH_VALGRIND)
TIMEOUT(1800)
SIZE(LARGE)
- TAG(ya:fat sb:ttl=2)
+ TAG(
+ ya:fat
+ sb:ttl=2
+ ya:large_tests_on_multi_slots
+ )
ELSE()
TIMEOUT(600)
SIZE(MEDIUM)
diff --git a/yql/essentials/tests/s-expressions/suites/Blocks/BlockMapJoinCore.yqls b/yql/essentials/tests/s-expressions/suites/Blocks/BlockMapJoinCore.yqls
index 35154e67ac2..7ace8d9e550 100644
--- a/yql/essentials/tests/s-expressions/suites/Blocks/BlockMapJoinCore.yqls
+++ b/yql/essentials/tests/s-expressions/suites/Blocks/BlockMapJoinCore.yqls
@@ -16,15 +16,15 @@
(let doJoin (lambda '(left right narrowMapLambda joinKind leftKeyColumns leftKeyDrops rightKeyColumns rightKeyDrops) (block '(
(let leftStream (WideToBlocks (FromFlow (ExpandMap left expandLambda))))
- (let rightStream (WideToBlocks (FromFlow (ExpandMap right expandLambda))))
- (let rightStreamItemType (StreamItemType (TypeOf rightStream)))
- (let rightBlockIndex (BlockMapJoinIndex (BlockStorage rightStream) rightStreamItemType rightKeyColumns '()))
- (return (Collect (NarrowMap (ToFlow (WideFromBlocks (BlockMapJoinCore leftStream rightBlockIndex rightStreamItemType joinKind leftKeyColumns leftKeyDrops rightKeyColumns rightKeyDrops))) narrowMapLambda)))
+ (let rightList (ListToBlocks right))
+ (let rightListItemType (ListItemType (TypeOf rightList)))
+ (let rightBlockIndex (BlockMapJoinIndex (BlockStorage rightList) rightListItemType rightKeyColumns '()))
+ (return (ForwardList (NarrowMap (ToFlow (WideFromBlocks (BlockMapJoinCore leftStream rightBlockIndex rightListItemType joinKind leftKeyColumns leftKeyDrops rightKeyColumns rightKeyDrops))) narrowMapLambda)))
))))
-(let innerJoin (Apply doJoin (ToFlow table (DependsOn (String '0))) (ToFlow table (DependsOn (String '1))) narrowLambdaInner 'Inner '('0) '() '('0) '()))
-(let leftJoin (Apply doJoin (ToFlow table (DependsOn (String '2))) (ToFlow table (DependsOn (String '3))) narrowLambdaLeft 'Left '('0) '('0) '('0) '('0)))
-(let leftSemiJoin (Apply doJoin (ToFlow table (DependsOn (String '4))) (ToFlow table (DependsOn (String '5))) narrowLambdaLeftSemi 'LeftSemi '('0) '('0) '('0) '()))
+(let innerJoin (Apply doJoin (ToFlow table (DependsOn (String '0))) table narrowLambdaInner 'Inner '('0) '() '('"key") '()))
+(let leftJoin (Apply doJoin (ToFlow table (DependsOn (String '2))) table narrowLambdaLeft 'Left '('0) '('0) '('"key") '('"key")))
+(let leftSemiJoin (Apply doJoin (ToFlow table (DependsOn (String '4))) table narrowLambdaLeftSemi 'LeftSemi '('0) '('0) '('"key") '()))
(let world (Write! world res_sink (Key) (AsStruct '('"inner" innerJoin) '('"left" leftJoin) '('"leftSemi" leftSemiJoin)) '('('type))))
(let world (Commit! world res_sink))
diff --git a/yql/essentials/tests/s-expressions/suites/Blocks/WideFromBlocks-WideToBlocks.yqls b/yql/essentials/tests/s-expressions/suites/Blocks/WideFromBlocks-WideToBlocks.yqls
new file mode 100644
index 00000000000..cd1a5d60d23
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Blocks/WideFromBlocks-WideToBlocks.yqls
@@ -0,0 +1,24 @@
+(
+# XXX: Explicitly enable PeepHoleBlock and PeepHoleFinalBlock steps.
+(let world (Configure! world (DataSource 'config) 'BlockEngine 'force))
+(let wconf (DataSink 'result))
+
+(let x1 (AsStruct '('"x" (Int32 '"1"))))
+(let x2 (AsStruct '('"x" (Int32 '"2"))))
+(let x3 (AsStruct '('"x" (Int32 '"3"))))
+(let x4 (AsStruct '('"x" (Int32 '"4"))))
+
+(let list (AsList x1 x2 x3 x4))
+
+(let expandLambda (lambda '(item) (Member item '"x")))
+(let wideStream (FromFlow (ExpandMap (ToFlow list) expandLambda)))
+
+(let nopFromBlocksToBlocks (WideFromBlocks (WideToBlocks wideStream)))
+
+(let narrowLambda (lambda '(x) (AsStruct '('"x" x))))
+(let scalarList (ForwardList (NarrowMap (ToFlow nopFromBlocksToBlocks) narrowLambda)))
+
+(let world (Write! world wconf (Key) scalarList '('('type))))
+(let world (Commit! world wconf))
+(return world)
+)
diff --git a/yql/essentials/tests/s-expressions/suites/Blocks/WideToBlocks-WideFromBlocks.yqls b/yql/essentials/tests/s-expressions/suites/Blocks/WideToBlocks-WideFromBlocks.yqls
new file mode 100644
index 00000000000..cafd0f45a81
--- /dev/null
+++ b/yql/essentials/tests/s-expressions/suites/Blocks/WideToBlocks-WideFromBlocks.yqls
@@ -0,0 +1,25 @@
+(
+# XXX: Explicitly enable PeepHoleBlock and PeepHoleFinalBlock steps.
+(let world (Configure! world (DataSource 'config) 'BlockEngine 'force))
+(let wconf (DataSink 'result))
+
+(let x1 (AsStruct '('"x" (Int32 '"1"))))
+(let x2 (AsStruct '('"x" (Int32 '"2"))))
+(let x3 (AsStruct '('"x" (Int32 '"3"))))
+(let x4 (AsStruct '('"x" (Int32 '"4"))))
+(let scalar0 (AsScalar (Int32 '"0")))
+
+(let blockList (ListToBlocks (AsList x1 x2 x3 x4)))
+
+(let expandLambda (lambda '(item) (Member item '"x") scalar0 (Member item '"_yql_block_length")))
+(let wideBlocksStream (FromFlow (ExpandMap (ToFlow blockList) expandLambda)))
+
+(let nopToBlocksFromBlocks (WideToBlocks (WideFromBlocks wideBlocksStream)))
+
+(let narrowLambda (lambda '(x scalar blockLength) (AsStruct '('"x" x) '('"scalar" scalar) '('"_yql_block_length" blockLength))))
+(let scalarList (ListFromBlocks (ForwardList (NarrowMap (ToFlow nopToBlocksFromBlocks) narrowLambda))))
+
+(let world (Write! world wconf (Key) scalarList '('('type))))
+(let world (Commit! world wconf))
+(return world)
+)
diff --git a/yql/essentials/tests/sql/minirun/part0/canondata/result.json b/yql/essentials/tests/sql/minirun/part0/canondata/result.json
index 1ff158d38e3..52d9fa7481b 100644
--- a/yql/essentials/tests/sql/minirun/part0/canondata/result.json
+++ b/yql/essentials/tests/sql/minirun/part0/canondata/result.json
@@ -1477,5 +1477,19 @@
"size": 1452,
"uri": "https://{canondata_backend}/1777230/9825a8684763af6f5aebf2f2145914be57ea6969/resource.tar.gz#test.test_window-yql-14179-default.txt-Results_/results.txt"
}
+ ],
+ "test.test[window-yql-19801-default.txt-Debug]": [
+ {
+ "checksum": "411035e2598db68705427ac77743c32a",
+ "size": 1396,
+ "uri": "https://{canondata_backend}/1920236/7066f75808999d7c9bd16ab40270eb0f41ecd22c/resource.tar.gz#test.test_window-yql-19801-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[window-yql-19801-default.txt-Results]": [
+ {
+ "checksum": "83fd4e361203ed32edf38dbc8ea21995",
+ "size": 3559,
+ "uri": "https://{canondata_backend}/1920236/7066f75808999d7c9bd16ab40270eb0f41ecd22c/resource.tar.gz#test.test_window-yql-19801-default.txt-Results_/results.txt"
+ }
]
}
diff --git a/yql/essentials/tests/sql/minirun/part6/canondata/result.json b/yql/essentials/tests/sql/minirun/part6/canondata/result.json
index dc02c1edb0c..26ca736cfcf 100644
--- a/yql/essentials/tests/sql/minirun/part6/canondata/result.json
+++ b/yql/essentials/tests/sql/minirun/part6/canondata/result.json
@@ -181,6 +181,20 @@
"uri": "https://{canondata_backend}/1775319/518b63edef9310755d69d072503bf9cdd808485f/resource.tar.gz#test.test_aggr_factory-flatten--Results_/results.txt"
}
],
+ "test.test[aggregate-distinct_over_keys-default.txt-Debug]": [
+ {
+ "checksum": "1516e40d1a52326748a51997ca9d12cc",
+ "size": 581,
+ "uri": "https://{canondata_backend}/1936273/614fe8dff439fd011c07c47361f2a1d0d854297f/resource.tar.gz#test.test_aggregate-distinct_over_keys-default.txt-Debug_/opt.yql"
+ }
+ ],
+ "test.test[aggregate-distinct_over_keys-default.txt-Results]": [
+ {
+ "checksum": "ea21211faeda4acfea29190f37b50995",
+ "size": 979,
+ "uri": "https://{canondata_backend}/1936273/614fe8dff439fd011c07c47361f2a1d0d854297f/resource.tar.gz#test.test_aggregate-distinct_over_keys-default.txt-Results_/results.txt"
+ }
+ ],
"test.test[ansi_idents-escaping-default.txt-Debug]": [
{
"checksum": "13dd30dd58fd993aa21441bec427f12b",
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/result.json b/yql/essentials/tests/sql/sql2yql/canondata/result.json
index bd605930b7f..4cb7e6cc7af 100644
--- a/yql/essentials/tests/sql/sql2yql/canondata/result.json
+++ b/yql/essentials/tests/sql/sql2yql/canondata/result.json
@@ -930,6 +930,13 @@
"uri": "https://{canondata_backend}/1942173/99e88108149e222741552e7e6cddef041d6a2846/resource.tar.gz#test_sql2yql.test_aggregate-aggregate_inmem_list_in_key_/sql.yql"
}
],
+ "test_sql2yql.test[aggregate-distinct_over_keys]": [
+ {
+ "checksum": "42a928ce273f847de20ea4cd8b59cb1c",
+ "size": 1487,
+ "uri": "https://{canondata_backend}/1936273/e22f8123b51c2802f50d5a8d4626267f2f28e9ab/resource.tar.gz#test_sql2yql.test_aggregate-distinct_over_keys_/sql.yql"
+ }
+ ],
"test_sql2yql.test[aggregate-group_by_rollup_rename]": [
{
"checksum": "bc5b27508587d82ba3e9d0a752d25dcc",
@@ -7202,6 +7209,13 @@
"uri": "https://{canondata_backend}/1775319/f1fa0c55bf9f13cff57cf1c990c2330caed8eb1b/resource.tar.gz#test_sql2yql.test_udf-wrong_args_fail_/sql.yql"
}
],
+ "test_sql2yql.test[union-unhashed_column]": [
+ {
+ "checksum": "7518a24843443901f9727c734bb16e91",
+ "size": 1407,
+ "uri": "https://{canondata_backend}/1936273/63195eda4f72befa869aaf8010fe57be8318f0a0/resource.tar.gz#test_sql2yql.test_union-unhashed_column_/sql.yql"
+ }
+ ],
"test_sql2yql.test[union-union_column_extention]": [
{
"checksum": "75294382d48ff3801b42ef1c8bb26dbd",
@@ -7412,6 +7426,13 @@
"uri": "https://{canondata_backend}/1847551/ee61b63f66a264ad4afe7437ef7f90941caf4456/resource.tar.gz#test_sql2yql.test_window-yql-19709_/sql.yql"
}
],
+ "test_sql2yql.test[window-yql-19801]": [
+ {
+ "checksum": "35e09384575075270c999c01e90779ac",
+ "size": 2644,
+ "uri": "https://{canondata_backend}/1130705/f4f303dd683b2715fca90fc1337a2858da6e1467/resource.tar.gz#test_sql2yql.test_window-yql-19801_/sql.yql"
+ }
+ ],
"test_sql_format.test[action-action_opt_args]": [
{
"uri": "file://test_sql_format.test_action-action_opt_args_/formatted.sql"
@@ -8077,6 +8098,11 @@
"uri": "file://test_sql_format.test_aggregate-aggregate_inmem_list_in_key_/formatted.sql"
}
],
+ "test_sql_format.test[aggregate-distinct_over_keys]": [
+ {
+ "uri": "file://test_sql_format.test_aggregate-distinct_over_keys_/formatted.sql"
+ }
+ ],
"test_sql_format.test[aggregate-group_by_rollup_rename]": [
{
"uri": "file://test_sql_format.test_aggregate-group_by_rollup_rename_/formatted.sql"
@@ -11102,6 +11128,11 @@
"uri": "file://test_sql_format.test_udf-wrong_args_fail_/formatted.sql"
}
],
+ "test_sql_format.test[union-unhashed_column]": [
+ {
+ "uri": "file://test_sql_format.test_union-unhashed_column_/formatted.sql"
+ }
+ ],
"test_sql_format.test[union-union_column_extention]": [
{
"uri": "file://test_sql_format.test_union-union_column_extention_/formatted.sql"
@@ -11252,6 +11283,11 @@
"uri": "file://test_sql_format.test_window-yql-19709_/formatted.sql"
}
],
+ "test_sql_format.test[window-yql-19801]": [
+ {
+ "uri": "file://test_sql_format.test_window-yql-19801_/formatted.sql"
+ }
+ ],
"test_sql_negative.test[action-no_columns_in_do-default.txt]": [
{
"checksum": "0fad6da8e4c5a2ab2c1e5a231ea430d1",
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_aggregate-distinct_over_keys_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_aggregate-distinct_over_keys_/formatted.sql
new file mode 100644
index 00000000000..8959cc5de96
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_aggregate-distinct_over_keys_/formatted.sql
@@ -0,0 +1,15 @@
+PRAGMA DistinctOverKeys;
+
+SELECT
+ x,
+ count(DISTINCT x) AS cnt
+FROM (
+ VALUES
+ (1),
+ (1)
+) AS a (
+ x
+)
+GROUP BY
+ x
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_union-unhashed_column_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_union-unhashed_column_/formatted.sql
new file mode 100644
index 00000000000..a900f6eb987
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_union-unhashed_column_/formatted.sql
@@ -0,0 +1,7 @@
+/* custom error: Expected hashable and equatable type for column: x, but got: Yson */
+SELECT
+ "1"y AS x
+UNION
+SELECT
+ "2"y AS x
+;
diff --git a/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_window-yql-19801_/formatted.sql b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_window-yql-19801_/formatted.sql
new file mode 100644
index 00000000000..e4bbbc38c8c
--- /dev/null
+++ b/yql/essentials/tests/sql/sql2yql/canondata/test_sql_format.test_window-yql-19801_/formatted.sql
@@ -0,0 +1,19 @@
+/* syntax version 1 */
+/* postgres can not */
+PRAGMA DistinctOverWindow;
+
+$input = AsList(
+ AsStruct(1 AS key, 1001 AS subkey, 'AAA' AS value),
+ AsStruct(150 AS key, 150 AS subkey, 'AAB' AS value),
+ AsStruct(3 AS key, 3003 AS subkey, 'AAC' AS value),
+ AsStruct(150 AS key, 150 AS subkey, 'AAD' AS value),
+ AsStruct(5 AS key, 5005 AS subkey, 'AAE' AS value),
+);
+
+SELECT
+ i.*,
+ count(DISTINCT key) OVER () AS cnt,
+ AggregateList(DISTINCT key) OVER () AS agg_list,
+FROM
+ AS_TABLE($input) AS i
+;
diff --git a/yql/essentials/tests/sql/suites/aggregate/distinct_over_keys.sql b/yql/essentials/tests/sql/suites/aggregate/distinct_over_keys.sql
new file mode 100644
index 00000000000..c74e5e2f3c3
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/aggregate/distinct_over_keys.sql
@@ -0,0 +1,4 @@
+pragma DistinctOverKeys;
+SELECT x, count(distinct x) AS cnt
+FROM (values (1),(1)) as a(x) GROUP BY x
+
diff --git a/yql/essentials/tests/sql/suites/union/unhashed_column.cfg b/yql/essentials/tests/sql/suites/union/unhashed_column.cfg
new file mode 100644
index 00000000000..5dae597903c
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/union/unhashed_column.cfg
@@ -0,0 +1 @@
+xfail
diff --git a/yql/essentials/tests/sql/suites/union/unhashed_column.sql b/yql/essentials/tests/sql/suites/union/unhashed_column.sql
new file mode 100644
index 00000000000..400e8ac84cf
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/union/unhashed_column.sql
@@ -0,0 +1,5 @@
+/* custom error: Expected hashable and equatable type for column: x, but got: Yson */
+select "1"y as x
+union
+select "2"y as x
+
diff --git a/yql/essentials/tests/sql/suites/window/yql-19801.sql b/yql/essentials/tests/sql/suites/window/yql-19801.sql
new file mode 100644
index 00000000000..478c261c984
--- /dev/null
+++ b/yql/essentials/tests/sql/suites/window/yql-19801.sql
@@ -0,0 +1,18 @@
+/* syntax version 1 */
+/* postgres can not */
+
+PRAGMA DistinctOverWindow;
+
+$input = AsList(
+ AsStruct(1 AS key, 1001 AS subkey, "AAA" AS value),
+ AsStruct(150 AS key, 150 AS subkey, "AAB" AS value),
+ AsStruct(3 AS key, 3003 AS subkey, "AAC" AS value),
+ AsStruct(150 AS key, 150 AS subkey, "AAD" AS value),
+ AsStruct(5 AS key, 5005 AS subkey, "AAE" AS value),
+);
+
+SELECT
+ i.*,
+ count(DISTINCT key) OVER () AS cnt,
+ AggregateList(DISTINCT key) OVER () AS agg_list,
+FROM AS_TABLE($input) AS i;
diff --git a/yql/essentials/tools/sql2yql/sql2yql.cpp b/yql/essentials/tools/sql2yql/sql2yql.cpp
index f285ca89a50..c3ffc588a13 100644
--- a/yql/essentials/tools/sql2yql/sql2yql.cpp
+++ b/yql/essentials/tools/sql2yql/sql2yql.cpp
@@ -6,10 +6,9 @@
#include <yql/essentials/sql/sql.h>
#include <yql/essentials/sql/v1/sql.h>
+#include <yql/essentials/sql/v1/lexer/check/check_lexers.h>
#include <yql/essentials/sql/v1/lexer/antlr4/lexer.h>
#include <yql/essentials/sql/v1/lexer/antlr4_ansi/lexer.h>
-#include <yql/essentials/sql/v1/lexer/antlr4_pure/lexer.h>
-#include <yql/essentials/sql/v1/lexer/antlr4_pure_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/providers/common/provider/yql_provider_names.h>
@@ -154,51 +153,14 @@ bool TestFormat(
return true;
}
-bool TestLexers(
- const TString& query
-) {
- NSQLTranslationV1::TLexers lexers;
- NSQLTranslation::TTranslationSettings settings;
+bool TestLexers(const TString& query) {
NYql::TIssues issues;
- if (!NSQLTranslation::ParseTranslationSettings(query, settings, issues)) {
- Cerr << issues.ToString();
- return false;
- }
-
- lexers.Antlr4 = NSQLTranslationV1::MakeAntlr4LexerFactory();
- lexers.Antlr4Ansi = NSQLTranslationV1::MakeAntlr4AnsiLexerFactory();
- lexers.Antlr4Pure = NSQLTranslationV1::MakeAntlr4PureLexerFactory();
- lexers.Antlr4PureAnsi = NSQLTranslationV1::MakeAntlr4PureAnsiLexerFactory();
- auto lexerMain = NSQLTranslationV1::MakeLexer(lexers, settings.AnsiLexer, true, NSQLTranslationV1::ELexerFlavor::Default);
- auto lexerPure = NSQLTranslationV1::MakeLexer(lexers, settings.AnsiLexer, true, NSQLTranslationV1::ELexerFlavor::Pure);
- TVector<NSQLTranslation::TParsedToken> mainTokens;
- if (!lexerMain->Tokenize(query, "", [&](auto token) { mainTokens.push_back(token);}, issues, NSQLTranslation::SQL_MAX_PARSER_ERRORS)) {
- Cerr << issues.ToString();
- return false;
- }
-
- TVector<NSQLTranslation::TParsedToken> pureTokens;
- if (!lexerPure->Tokenize(query, "", [&](auto token) { pureTokens.push_back(token);}, issues, NSQLTranslation::SQL_MAX_PARSER_ERRORS)) {
+ if (!NSQLTranslationV1::CheckLexers({}, query, issues)) {
Cerr << issues.ToString();
return false;
}
- bool hasErrors = false;
- if (mainTokens.size() != pureTokens.size()) {
- hasErrors = true;
- Cerr << "Mismatch token count, main: " << mainTokens.size() << ", pure: " << pureTokens.size() << "\n";
- }
-
- for (size_t i = 0; i < Min(mainTokens.size(), pureTokens.size()); ++i) {
- if (mainTokens[i].Name != pureTokens[i].Name || mainTokens[i].Content != pureTokens[i].Content) {
- hasErrors = true;
- Cerr << "Mismatch token #" << i << ", main: " << mainTokens[i].Name << ":" << mainTokens[i].Content
- << ", pure: " << pureTokens[i].Name << ":" << pureTokens[i].Content << "\n";
- break;
- }
- }
-
- return !hasErrors;
+ return true;
}
class TStoreMappingFunctor: public NLastGetopt::IOptHandler {
diff --git a/yql/essentials/tools/sql2yql/ya.make b/yql/essentials/tools/sql2yql/ya.make
index 2b415f1227f..81efdd0dc92 100644
--- a/yql/essentials/tools/sql2yql/ya.make
+++ b/yql/essentials/tools/sql2yql/ya.make
@@ -13,10 +13,9 @@ PEERDIR(
yql/essentials/sql/v1
yql/essentials/sql/pg
yql/essentials/sql/v1/format
+ yql/essentials/sql/v1/lexer/check
yql/essentials/sql/v1/lexer/antlr4
yql/essentials/sql/v1/lexer/antlr4_ansi
- yql/essentials/sql/v1/lexer/antlr4_pure
- yql/essentials/sql/v1/lexer/antlr4_pure_ansi
yql/essentials/sql/v1/proto_parser/antlr4
yql/essentials/sql/v1/proto_parser/antlr4_ansi
)
diff --git a/yql/essentials/tools/yql_complete/yql_complete.cpp b/yql/essentials/tools/yql_complete/yql_complete.cpp
index 0d592240ebf..18e57492282 100644
--- a/yql/essentials/tools/yql_complete/yql_complete.cpp
+++ b/yql/essentials/tools/yql_complete/yql_complete.cpp
@@ -38,9 +38,11 @@ int Run(int argc, char* argv[]) {
NLastGetopt::TOpts opts = NLastGetopt::TOpts::Default();
TString inFileName;
+ TString inQueryText;
TString freqFileName;
TMaybe<ui64> pos;
opts.AddLongOption('i', "input", "input file").RequiredArgument("input").StoreResult(&inFileName);
+ opts.AddLongOption('q', "query", "input query text").RequiredArgument("query").StoreResult(&inQueryText);
opts.AddLongOption('f', "freq", "frequences file").StoreResult(&freqFileName);
opts.AddLongOption('p', "pos", "position").StoreResult(&pos);
opts.SetFreeArgsNum(0);
@@ -48,12 +50,21 @@ int Run(int argc, char* argv[]) {
NLastGetopt::TOptsParseResult res(&opts, argc, argv);
- THolder<TUnbufferedFileInput> inFile;
- if (!inFileName.empty()) {
- inFile.Reset(new TUnbufferedFileInput(inFileName));
+ if (res.Has("input") && res.Has("query")) {
+ ythrow yexception() << "use either 'input' or 'query', not both";
+ }
+
+ TString queryString;
+ if (res.Has("query")) {
+ queryString = std::move(inQueryText);
+ } else {
+ THolder<TUnbufferedFileInput> inFile;
+ if (!inFileName.empty()) {
+ inFile.Reset(new TUnbufferedFileInput(inFileName));
+ }
+ IInputStream& in = inFile ? *inFile.Get() : Cin;
+ queryString = in.ReadAll();
}
- IInputStream& in = inFile ? *inFile.Get() : Cin;
- auto queryString = in.ReadAll();
NSQLComplete::IRanking::TPtr ranking;
if (freqFileName.empty()) {
diff --git a/yql/essentials/tools/yql_facade_run/ya.make b/yql/essentials/tools/yql_facade_run/ya.make
index d08df659479..662276a8577 100644
--- a/yql/essentials/tools/yql_facade_run/ya.make
+++ b/yql/essentials/tools/yql_facade_run/ya.make
@@ -37,6 +37,7 @@ PEERDIR(
yql/essentials/protos
yql/essentials/sql/settings
yql/essentials/sql/v1/format
+ yql/essentials/sql/v1/lexer/check
yql/essentials/sql/v1/lexer/antlr4
yql/essentials/sql/v1/lexer/antlr4_ansi
yql/essentials/sql/v1/proto_parser/antlr4
diff --git a/yql/essentials/tools/yql_facade_run/yql_facade_run.cpp b/yql/essentials/tools/yql_facade_run/yql_facade_run.cpp
index fdfe60a433e..64fef291635 100644
--- a/yql/essentials/tools/yql_facade_run/yql_facade_run.cpp
+++ b/yql/essentials/tools/yql_facade_run/yql_facade_run.cpp
@@ -43,6 +43,7 @@
#include <yql/essentials/sql/v1/format/sql_format.h>
#include <yql/essentials/sql/v1/sql.h>
#include <yql/essentials/sql/sql.h>
+#include <yql/essentials/sql/v1/lexer/check/check_lexers.h>
#include <yql/essentials/sql/v1/lexer/antlr4/lexer.h>
#include <yql/essentials/sql/v1/lexer/antlr4_ansi/lexer.h>
#include <yql/essentials/sql/v1/proto_parser/antlr4/proto_parser.h>
@@ -436,6 +437,7 @@ void TFacadeRunOptions::Parse(int argc, const char *argv[]) {
if (CustomTests) {
opts.AddLongOption("test-antlr4", "Check antlr4 parser").NoArgument().SetFlag(&TestAntlr4);
opts.AddLongOption("test-format", "Compare formatted query's AST with the original query's AST (only syntaxVersion=1 is supported)").NoArgument().SetFlag(&TestSqlFormat);
+ opts.AddLongOption("test-lexers", "Compare lexers").NoArgument().SetFlag(&TestLexers);
opts.AddLongOption("validate-result-format", "Check that result-format can parse Result").NoArgument().SetFlag(&ValidateResultFormat);
}
@@ -575,6 +577,24 @@ int TFacadeRunner::DoMain(int argc, const char *argv[]) {
ctx.NextUniqueId = NPg::GetSqlLanguageParser()->GetContext().NextUniqueId;
}
IModuleResolver::TPtr moduleResolver;
+ TModuleResolver::TModuleChecker moduleChecker;
+ if (RunOptions_.TestLexers) {
+ moduleChecker = [](const TString& query, const TString& fileName, TExprContext& ctx) {
+ TIssues issues;
+ if (!NSQLTranslationV1::CheckLexers(TPosition(0, 0, fileName), query, issues)) {
+ auto issue = TIssue(TPosition(0, 0, fileName), "Lexers mismatched");
+ for (const auto& i : issues) {
+ issue.AddSubIssue(MakeIntrusive<TIssue>(i));
+ }
+
+ ctx.AddError(issue);
+ return false;
+ }
+
+ return true;
+ };
+ }
+
if (RunOptions_.MountConfig) {
TModulesTable modules;
FillUserDataTableFromFileSystem(*RunOptions_.MountConfig, RunOptions_.DataTable);
@@ -585,9 +605,11 @@ int TFacadeRunner::DoMain(int argc, const char *argv[]) {
return -1;
}
- moduleResolver = std::make_shared<TModuleResolver>(translators, std::move(modules), ctx.NextUniqueId, ClusterMapping_, RunOptions_.SqlFlags, RunOptions_.Mode >= ERunMode::Validate);
+ moduleResolver = std::make_shared<TModuleResolver>(translators, std::move(modules), ctx.NextUniqueId,
+ ClusterMapping_, RunOptions_.SqlFlags, RunOptions_.Mode >= ERunMode::Validate, THolder<TExprContext>(), moduleChecker);
} else {
- if (!GetYqlDefaultModuleResolver(ctx, moduleResolver, ClusterMapping_, RunOptions_.OptimizeLibs && RunOptions_.Mode >= ERunMode::Validate)) {
+ if (!GetYqlDefaultModuleResolver(ctx, moduleResolver, ClusterMapping_,
+ RunOptions_.OptimizeLibs && RunOptions_.Mode >= ERunMode::Validate, moduleChecker)) {
*RunOptions_.ErrStream << "Errors loading default YQL libraries:" << Endl;
ctx.IssueManager.GetIssues().PrintTo(*RunOptions_.ErrStream);
return -1;
@@ -746,6 +768,14 @@ int TFacadeRunner::DoRun(TProgramFactory& factory) {
return -1;
}
}
+ if (!fail && RunOptions_.TestLexers && 1 == RunOptions_.SyntaxVersion) {
+ TIssues issues;
+ if (!NSQLTranslationV1::CheckLexers({}, RunOptions_.ProgramText, issues)) {
+ *RunOptions_.ErrStream << "Lexers mismatched" << Endl;
+ issues.PrintTo(*RunOptions_.ErrStream);
+ return -1;
+ }
+ }
} else {
RunOptions_.PrintInfo("Parse YQL...");
if (!program->ParseYql()) {
diff --git a/yql/essentials/tools/yql_facade_run/yql_facade_run.h b/yql/essentials/tools/yql_facade_run/yql_facade_run.h
index d6037766c6f..e7169322924 100644
--- a/yql/essentials/tools/yql_facade_run/yql_facade_run.h
+++ b/yql/essentials/tools/yql_facade_run/yql_facade_run.h
@@ -86,6 +86,7 @@ public:
bool TestAntlr4 = false;
bool AssumeYdbOnClusterWithSlash = false;
bool TestSqlFormat = false;
+ bool TestLexers = false;
THashMap<TString, NSQLTranslation::TTableBindingSettings> Bindings;
bool PrintAst = false;
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/result.json b/yql/essentials/udfs/common/protobuf/test/canondata/result.json
index be8251f2ae0..b9ced890508 100644
--- a/yql/essentials/udfs/common/protobuf/test/canondata/result.json
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/result.json
@@ -39,11 +39,44 @@
"uri": "https://storage.yandex-team.ru/get-devtools/1923547/edc65c62e064cae64c748b355e12a480cac0c768/resource.tar.gz#test.test_YQL-8307_/results.txt"
}
],
- "test.test[recursion_bytes]": [
+ "test.test[map_bytes_v1]": [
{
- "checksum": "eeb1ca24bdc09529bd0a320965b3123d",
- "size": 1241,
- "uri": "https://storage.yandex-team.ru/get-devtools/1937492/9579ab43fa70f08e465aa7673b27a5da5460a75e/resource.tar.gz#test.test_recursion_bytes_/results.txt"
+ "uri": "file://test.test_map_bytes_v1_/results.txt"
+ }
+ ],
+ "test.test[map_bytes_v2]": [
+ {
+ "uri": "file://test.test_map_bytes_v2_/results.txt"
+ }
+ ],
+ "test.test[oneof_bytes_v1_fail]": [
+ {
+ "uri": "file://test.test_oneof_bytes_v1_fail_/extracted"
+ }
+ ],
+ "test.test[oneof_bytes_v1_success]": [
+ {
+ "uri": "file://test.test_oneof_bytes_v1_success_/results.txt"
+ }
+ ],
+ "test.test[oneof_bytes_v2]": [
+ {
+ "uri": "file://test.test_oneof_bytes_v2_/results.txt"
+ }
+ ],
+ "test.test[recursion_bytes_v1_fail_empty_optional]": [
+ {
+ "uri": "file://test.test_recursion_bytes_v1_fail_empty_optional_/extracted"
+ }
+ ],
+ "test.test[recursion_bytes_v1_success]": [
+ {
+ "uri": "file://test.test_recursion_bytes_v1_success_/results.txt"
+ }
+ ],
+ "test.test[recursion_bytes_v2]": [
+ {
+ "uri": "file://test.test_recursion_bytes_v2_/results.txt"
}
],
"test.test[recursion_fail]": [
@@ -53,9 +86,7 @@
],
"test.test[recursion_ignore]": [
{
- "checksum": "eeb1ca24bdc09529bd0a320965b3123d",
- "size": 1241,
- "uri": "https://storage.yandex-team.ru/get-devtools/1937492/9579ab43fa70f08e465aa7673b27a5da5460a75e/resource.tar.gz#test.test_recursion_ignore_/results.txt"
+ "uri": "file://test.test_recursion_ignore_/results.txt"
}
],
"test.test[syntax_aware_empty_nested_message]": [
@@ -93,32 +124,34 @@
"uri": "https://storage.yandex-team.ru/get-devtools/1936947/d770c9a45c5df4db61873fc48e1cb5961f774af6/resource.tar.gz#test.test_yt_mode_map_/results.txt"
}
],
+ "test.test[yt_mode_map_recursive_v1]": [
+ {
+ "uri": "file://test.test_yt_mode_map_recursive_v1_/results.txt"
+ }
+ ],
+ "test.test[yt_mode_map_recursive_v2]": [
+ {
+ "uri": "file://test.test_yt_mode_map_recursive_v2_/results.txt"
+ }
+ ],
"test.test[yt_mode_no_ser]": [
{
- "checksum": "eeb1ca24bdc09529bd0a320965b3123d",
- "size": 1241,
- "uri": "https://storage.yandex-team.ru/get-devtools/1937492/9579ab43fa70f08e465aa7673b27a5da5460a75e/resource.tar.gz#test.test_yt_mode_no_ser_/results.txt"
+ "uri": "file://test.test_yt_mode_no_ser_/results.txt"
}
],
"test.test[yt_mode_plain]": [
{
- "checksum": "7321635f17c1f8fdb75d96bb2a3ce4d1",
- "size": 1796,
- "uri": "https://storage.yandex-team.ru/get-devtools/1937492/9579ab43fa70f08e465aa7673b27a5da5460a75e/resource.tar.gz#test.test_yt_mode_plain_/results.txt"
+ "uri": "file://test.test_yt_mode_plain_/results.txt"
}
],
"test.test[yt_mode_ser_pb]": [
{
- "checksum": "eeb1ca24bdc09529bd0a320965b3123d",
- "size": 1241,
- "uri": "https://storage.yandex-team.ru/get-devtools/1937492/9579ab43fa70f08e465aa7673b27a5da5460a75e/resource.tar.gz#test.test_yt_mode_ser_pb_/results.txt"
+ "uri": "file://test.test_yt_mode_ser_pb_/results.txt"
}
],
"test.test[yt_mode_ser_yt]": [
{
- "checksum": "eeb1ca24bdc09529bd0a320965b3123d",
- "size": 1241,
- "uri": "https://storage.yandex-team.ru/get-devtools/1937492/9579ab43fa70f08e465aa7673b27a5da5460a75e/resource.tar.gz#test.test_yt_mode_ser_yt_/results.txt"
+ "uri": "file://test.test_yt_mode_ser_yt_/results.txt"
}
],
"test.test[yt_mode_variant]": [
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_YQL-19040_/results.txt b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_YQL-19040_/results.txt
index 67f6ba046e3..b42aff88de3 100644
--- a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_YQL-19040_/results.txt
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_YQL-19040_/results.txt
@@ -10,6 +10,240 @@
[
"column0";
[
+ "StructType";
+ [
+ [
+ "dict1";
+ [
+ "DictType";
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "StructType";
+ [
+ [
+ "a";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict2";
+ [
+ "OptionalType";
+ [
+ "DictType";
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "StructType";
+ [
+ [
+ "a";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict3";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict4";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "a";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict5";
+ [
+ "DictType";
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "dict6";
+ [
+ "OptionalType";
+ [
+ "DictType";
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict7";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict8";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column1";
+ [
+ "DataType";
+ "String"
+ ]
+ ];
+ [
+ "column2";
+ [
"DataType";
"String"
]
@@ -19,6 +253,97 @@
];
"Data" = [
[
+ [
+ [
+ [
+ "k2";
+ [
+ [
+ "0"
+ ]
+ ]
+ ];
+ [
+ "k1";
+ [
+ [
+ "1"
+ ]
+ ]
+ ]
+ ];
+ [
+ [
+ [
+ "k2";
+ [
+ [
+ "2"
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ [
+ [
+ "k3"
+ ];
+ [
+ "\n\0013"
+ ]
+ ]
+ ];
+ [
+ [
+ [
+ "k4"
+ ];
+ [
+ [
+ [
+ "4"
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ [
+ "k5";
+ "v5"
+ ]
+ ];
+ [
+ [
+ [
+ "k6";
+ "v6"
+ ]
+ ]
+ ];
+ [
+ [
+ [
+ "k7"
+ ];
+ [
+ "v7"
+ ]
+ ]
+ ];
+ [
+ [
+ [
+ "k8"
+ ];
+ [
+ "v8"
+ ]
+ ]
+ ]
+ ];
+ "\n\t\n\2k1\x12\3\n\0011\n\t\n\2k2\x12\3\n\0010\x12\t\n\2k2\x12\3\n\0012\x1A\t\n\2k3\x12\3\n\0013\"\t\n\2k4\x12\3\n\0014*\x08\n\2k5\x12\2v52\x08\n\2k6\x12\2v6:\x08\n\2k7\x12\2v7B\x08\n\2k8\x12\2v8";
"Success"
]
]
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_map_bytes_v1_/results.txt b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_map_bytes_v1_/results.txt
new file mode 100644
index 00000000000..875a320bd31
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_map_bytes_v1_/results.txt
@@ -0,0 +1,136 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "TestField";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "map1";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "map2";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column2";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ [
+ "{\"map1\": [{\"key\": \"key1\", \"value\": \"\"}], \"map2\": [{\"key\": \"key3\", \"value\": {\"map1\": [{\"key\": \"nestedKey\", \"value\": \"nestedValue\"}], \"map2\": [{\"key\": \"key4\"}]}}]}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "key1"
+ ];
+ #
+ ]
+ ];
+ [
+ [
+ [
+ "key3"
+ ];
+ "\n\x18\n\tnestedKey\x12\x0BnestedValue\x12\x08\n\4key4\x12\0"
+ ]
+ ]
+ ]
+ ];
+ [
+ "{\n \"map2\":\n [\n {\n \"key\":\"key3\",\n \"value\":\n {\n \"map2\":\n [\n {\n \"key\":\"key4\",\n \"value\":\n {\n }\n }\n ],\n \"map1\":\n [\n {\n \"key\":\"nestedKey\",\n \"value\":\"nestedValue\"\n }\n ]\n }\n }\n ],\n \"map1\":\n [\n {\n \"key\":\"key1\"\n }\n ]\n}"
+ ]
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_map_bytes_v2_/results.txt b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_map_bytes_v2_/results.txt
new file mode 100644
index 00000000000..225ec211e97
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_map_bytes_v2_/results.txt
@@ -0,0 +1,141 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "TestField";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "map1";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "map2";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column2";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ [
+ "{\"map1\": [{\"key\": \"key1\", \"value\": \"\"}], \"map2\": [{\"key\": \"key3\", \"value\": {\"map1\": [{\"key\": \"nestedKey\", \"value\": \"nestedValue\"}], \"map2\": [{\"key\": \"key4\"}]}}]}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "key1"
+ ];
+ #
+ ]
+ ];
+ [
+ [
+ [
+ "key3"
+ ];
+ [
+ "\n\x18\n\tnestedKey\x12\x0BnestedValue\x12\x08\n\4key4\x12\0"
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "{\n \"map2\":\n [\n {\n \"key\":\"key3\",\n \"value\":\n {\n \"map2\":\n [\n {\n \"key\":\"key4\",\n \"value\":\n {\n }\n }\n ],\n \"map1\":\n [\n {\n \"key\":\"nestedKey\",\n \"value\":\"nestedValue\"\n }\n ]\n }\n }\n ],\n \"map1\":\n [\n {\n \"key\":\"key1\"\n }\n ]\n}"
+ ]
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_oneof_bytes_v1_fail_/extracted b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_oneof_bytes_v1_fail_/extracted
new file mode 100644
index 00000000000..0ff0475174a
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_oneof_bytes_v1_fail_/extracted
@@ -0,0 +1,8 @@
+<tmp_path>/program.sql:<main>: Error: Execution
+
+ <tmp_path>/program.sql:<main>:62:1: Error: Execution of node: YtMap!
+ SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField)) FROM plato.Input;
+ ^
+ <tmp_path>/program.sql:<main>:62:1: Error: The recursive field 'Test.test' was attempted to be parsed as a string, but actually it has no value. Consider using the BytesV2 parsing mode to allow for optional recursive messages.
+ SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField)) FROM plato.Input;
+ ^ \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_oneof_bytes_v1_success_/results.txt b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_oneof_bytes_v1_success_/results.txt
new file mode 100644
index 00000000000..fab3b26ecc9
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_oneof_bytes_v1_success_/results.txt
@@ -0,0 +1,80 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "TestField";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "str";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "test";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column2";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ [
+ "{\"test\":{\"str\":\"string value\"}}"
+ ];
+ [
+ [
+ #;
+ "\x12\x0Cstring value"
+ ]
+ ];
+ [
+ "{\n \"test\":\n {\n \"str\":\"string value\"\n }\n}"
+ ]
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_oneof_bytes_v2_/results.txt b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_oneof_bytes_v2_/results.txt
new file mode 100644
index 00000000000..b83b4255708
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_oneof_bytes_v2_/results.txt
@@ -0,0 +1,101 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "TestField";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "str";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "test";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column2";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ [
+ "{\"str\":\"string value\"}"
+ ];
+ [
+ [
+ [
+ "string value"
+ ];
+ #
+ ]
+ ];
+ [
+ "{\n \"str\":\"string value\"\n}"
+ ]
+ ];
+ [
+ [
+ "{\"test\":{\"str\":\"string value\"}}"
+ ];
+ [
+ [
+ #;
+ [
+ "\x12\x0Cstring value"
+ ]
+ ]
+ ];
+ [
+ "{\n \"test\":\n {\n \"str\":\"string value\"\n }\n}"
+ ]
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_bytes_v1_fail_empty_optional_/extracted b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_bytes_v1_fail_empty_optional_/extracted
new file mode 100644
index 00000000000..0ebc6d4b38e
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_bytes_v1_fail_empty_optional_/extracted
@@ -0,0 +1,8 @@
+<tmp_path>/program.sql:<main>: Error: Execution
+
+ <tmp_path>/program.sql:<main>:98:1: Error: Execution of node: YtMap!
+ SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField))
+ ^
+ <tmp_path>/program.sql:<main>:98:1: Error: The recursive field 'Test.test' was attempted to be parsed as a string, but actually it has no value. Consider using the BytesV2 parsing mode to allow for optional recursive messages.
+ SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField))
+ ^ \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_bytes_v1_success_/results.txt b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_bytes_v1_success_/results.txt
new file mode 100644
index 00000000000..c1ab939ce9e
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_bytes_v1_success_/results.txt
@@ -0,0 +1,346 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "TestField";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "inner";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "i";
+ [
+ "StructType";
+ [
+ [
+ "a";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "number";
+ [
+ "DataType";
+ "Int64"
+ ]
+ ];
+ [
+ "repeated";
+ [
+ "ListType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "req";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "req";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "test";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column2";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column3";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "inner";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "i";
+ [
+ "StructType";
+ [
+ [
+ "a";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "number";
+ [
+ "DataType";
+ "Int64"
+ ]
+ ];
+ [
+ "repeated";
+ [
+ "OptionalType";
+ [
+ "ListType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ];
+ [
+ "req";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "req";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "test";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column4";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ [
+ "{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"test\": {\"number\": 5, \"inner\": {\"i\": {\"a\": \"optional hello\"}}}, \"repeated\": []}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ];
+ "5";
+ [];
+ #;
+ "\n\x12\n\x10\n\x0Eoptional hello0\5"
+ ]
+ ];
+ [
+ "{\n \"number\":5,\n \"test\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"optional hello\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ];
+ "5";
+ #;
+ #;
+ "\n\x12\n\x10\n\x0Eoptional hello0\5"
+ ]
+ ];
+ [
+ "{\n \"number\":5,\n \"test\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"optional hello\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ]
+ ];
+ [
+ [
+ "{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"test\": {\"number\": 5, \"inner\": {\"i\": {\"a\": \"optional data\"}}}, \"repeated\": [{\"number\": 5, \"inner\": {\"i\": {\"a\": \"repeated hello\"}}}]}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ];
+ "5";
+ [
+ "\n\x12\n\x10\n\x0Erepeated hello0\5"
+ ];
+ #;
+ "\n\x11\n\x0F\n\roptional data0\5"
+ ]
+ ];
+ [
+ "{\n \"number\":5,\n \"repeated\":\n [\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"repeated hello\"\n }\n }\n }\n ],\n \"test\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"optional data\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ];
+ "5";
+ [
+ [
+ "\n\x12\n\x10\n\x0Erepeated hello0\5"
+ ]
+ ];
+ #;
+ "\n\x11\n\x0F\n\roptional data0\5"
+ ]
+ ];
+ [
+ "{\n \"number\":5,\n \"repeated\":\n [\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"repeated hello\"\n }\n }\n }\n ],\n \"test\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"optional data\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ]
+ ];
+ [
+ [
+ "{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"req\": {\"req\": {\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"repeated\": []}}, \"test\": {\"number\": 5, \"inner\": {\"i\": {\"a\": \"optional hello\"}}}, \"repeated\": []}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ];
+ "5";
+ [];
+ [
+ [
+ "\n\t\n\7\n\5hello0\5"
+ ]
+ ];
+ "\n\x12\n\x10\n\x0Eoptional hello0\5"
+ ]
+ ];
+ [
+ "{\n \"req\":\n {\n \"req\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n }\n },\n \"number\":5,\n \"test\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"optional hello\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ];
+ "5";
+ #;
+ [
+ [
+ "\n\t\n\7\n\5hello0\5"
+ ]
+ ];
+ "\n\x12\n\x10\n\x0Eoptional hello0\5"
+ ]
+ ];
+ [
+ "{\n \"req\":\n {\n \"req\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n }\n },\n \"number\":5,\n \"test\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"optional hello\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ]
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_bytes_v2_/results.txt b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_bytes_v2_/results.txt
new file mode 100644
index 00000000000..86bd3de65a6
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_bytes_v2_/results.txt
@@ -0,0 +1,405 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "TestField";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "inner";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "i";
+ [
+ "StructType";
+ [
+ [
+ "a";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "number";
+ [
+ "DataType";
+ "Int64"
+ ]
+ ];
+ [
+ "repeated";
+ [
+ "ListType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "req";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "req";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "test";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column2";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column3";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "inner";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "i";
+ [
+ "StructType";
+ [
+ [
+ "a";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "number";
+ [
+ "DataType";
+ "Int64"
+ ]
+ ];
+ [
+ "repeated";
+ [
+ "OptionalType";
+ [
+ "ListType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ];
+ [
+ "req";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "req";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "test";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column4";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ [
+ "{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"repeated\": []}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ];
+ "5";
+ [];
+ #;
+ #
+ ]
+ ];
+ [
+ "{\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ];
+ "5";
+ #;
+ #;
+ #
+ ]
+ ];
+ [
+ "{\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ]
+ ];
+ [
+ [
+ "{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"test\": {\"number\": 5, \"inner\": {\"i\": {\"a\": \"optional hello\"}}}, \"repeated\": []}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ];
+ "5";
+ [];
+ #;
+ [
+ "\n\x12\n\x10\n\x0Eoptional hello0\5"
+ ]
+ ]
+ ];
+ [
+ "{\n \"number\":5,\n \"test\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"optional hello\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ];
+ "5";
+ #;
+ #;
+ [
+ "\n\x12\n\x10\n\x0Eoptional hello0\5"
+ ]
+ ]
+ ];
+ [
+ "{\n \"number\":5,\n \"test\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"optional hello\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ]
+ ];
+ [
+ [
+ "{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"test\": {\"number\": 5, \"inner\": {\"i\": {\"a\": \"optional data\"}}}, \"repeated\": [{\"number\": 5, \"inner\": {\"i\": {\"a\": \"repeated hello\"}}}]}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ];
+ "5";
+ [
+ "\n\x12\n\x10\n\x0Erepeated hello0\5"
+ ];
+ #;
+ [
+ "\n\x11\n\x0F\n\roptional data0\5"
+ ]
+ ]
+ ];
+ [
+ "{\n \"number\":5,\n \"repeated\":\n [\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"repeated hello\"\n }\n }\n }\n ],\n \"test\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"optional data\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ];
+ "5";
+ [
+ [
+ "\n\x12\n\x10\n\x0Erepeated hello0\5"
+ ]
+ ];
+ #;
+ [
+ "\n\x11\n\x0F\n\roptional data0\5"
+ ]
+ ]
+ ];
+ [
+ "{\n \"number\":5,\n \"repeated\":\n [\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"repeated hello\"\n }\n }\n }\n ],\n \"test\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"optional data\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ]
+ ];
+ [
+ [
+ "{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"req\": {\"req\": {\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"repeated\": []}}, \"test\": {\"number\": 5, \"inner\": {\"i\": {\"a\": \"optional hello\"}}}, \"repeated\": []}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ];
+ "5";
+ [];
+ [
+ [
+ "\n\t\n\7\n\5hello0\5"
+ ]
+ ];
+ [
+ "\n\x12\n\x10\n\x0Eoptional hello0\5"
+ ]
+ ]
+ ];
+ [
+ "{\n \"req\":\n {\n \"req\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n }\n },\n \"number\":5,\n \"test\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"optional hello\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ];
+ "5";
+ #;
+ [
+ [
+ "\n\t\n\7\n\5hello0\5"
+ ]
+ ];
+ [
+ "\n\x12\n\x10\n\x0Eoptional hello0\5"
+ ]
+ ]
+ ];
+ [
+ "{\n \"req\":\n {\n \"req\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n }\n },\n \"number\":5,\n \"test\":\n {\n \"number\":5,\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"optional hello\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ]
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_ignore_/results.txt b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_ignore_/results.txt
new file mode 100644
index 00000000000..a1805b10231
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_recursion_ignore_/results.txt
@@ -0,0 +1,119 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "TestField";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "inner";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "i";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "a";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "test";
+ [
+ "VoidType"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column2";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column3";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ [
+ "{\"inner\":{\"i\":{\"a\":\"hello\"}},\"test\":{\"inner\":{\"i\":{\"a\":\"bye\"}}}}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Void"
+ ]
+ ];
+ [
+ "{\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ];
+ "Success"
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_map_recursive_v1_/results.txt b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_map_recursive_v1_/results.txt
new file mode 100644
index 00000000000..722909aa718
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_map_recursive_v1_/results.txt
@@ -0,0 +1,371 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "TestField";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "dict1";
+ [
+ "DictType";
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "dict2";
+ [
+ "OptionalType";
+ [
+ "DictType";
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict3";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict4";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict5";
+ [
+ "DictType";
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "dict6";
+ [
+ "OptionalType";
+ [
+ "DictType";
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict7";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict8";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict9";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column2";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column3";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ [
+ "{\"dict2\":[{\"key\":\"k2\",\"value\":{\"dict2\":[]}}],\"dict3\":[{\"key\":\"k3\",\"value\":{\"dict3\":[]}}],\"dict4\":[{\"key\":\"k4\",\"value\":{\"dict4\":[]}}],\"dict5\":[{\"key\":\"k5\",\"value\":{\"dict5\":[]}}],\"dict6\":[{\"key\":\"k6\",\"value\":{\"dict6\":[]}}],\"dict7\":[{\"key\":\"k7\",\"value\":{\"dict7\":[]}}],\"dict8\":[{\"key\":\"k8\",\"value\":{\"dict8\":[]}}], \"dict9\":[{\"key\":\"k9\",\"value\":{\"dict9\":[]}}]}, "
+ ];
+ [
+ [
+ [];
+ [
+ [
+ [
+ "k2";
+ ""
+ ]
+ ]
+ ];
+ [
+ [
+ [
+ "k3"
+ ];
+ [
+ ""
+ ]
+ ]
+ ];
+ [
+ [
+ [
+ "k4"
+ ];
+ ""
+ ]
+ ];
+ [
+ [
+ "k5";
+ ""
+ ]
+ ];
+ [
+ [
+ [
+ "k6";
+ ""
+ ]
+ ]
+ ];
+ [
+ [
+ [
+ "k7"
+ ];
+ [
+ ""
+ ]
+ ]
+ ];
+ [
+ [
+ [
+ "k8"
+ ];
+ ""
+ ]
+ ];
+ [
+ [
+ [
+ "k9"
+ ];
+ [
+ ""
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "{\n \"dict7\":\n [\n {\n \"key\":\"k7\",\n \"value\":\n {\n }\n }\n ],\n \"dict8\":\n [\n {\n \"key\":\"k8\",\n \"value\":\n {\n }\n }\n ],\n \"dict4\":\n [\n {\n \"key\":\"k4\",\n \"value\":\n {\n }\n }\n ],\n \"dict5\":\n [\n {\n \"key\":\"k5\",\n \"value\":\n {\n }\n }\n ],\n \"dict2\":\n [\n {\n \"key\":\"k2\",\n \"value\":\n {\n }\n }\n ],\n \"dict9\":\n [\n {\n \"key\":\"k9\",\n \"value\":\n {\n }\n }\n ],\n \"dict6\":\n [\n {\n \"key\":\"k6\",\n \"value\":\n {\n }\n }\n ],\n \"dict3\":\n [\n {\n \"key\":\"k3\",\n \"value\":\n {\n }\n }\n ]\n}"
+ ];
+ "Success"
+ ];
+ [
+ [
+ "{\"dict2\":[],\"dict3\":[],\"dict4\":[],\"dict5\":[],\"dict6\":[],\"dict7\":[],\"dict8\":[], \"dict9\":[]}"
+ ];
+ [
+ [
+ [];
+ #;
+ [];
+ [];
+ [];
+ #;
+ [];
+ [];
+ []
+ ]
+ ];
+ [
+ "{\n}"
+ ];
+ "Success"
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_map_recursive_v2_/results.txt b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_map_recursive_v2_/results.txt
new file mode 100644
index 00000000000..54698460f71
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_map_recursive_v2_/results.txt
@@ -0,0 +1,381 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "TestField";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "dict1";
+ [
+ "DictType";
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "dict2";
+ [
+ "OptionalType";
+ [
+ "DictType";
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict3";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict4";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict5";
+ [
+ "DictType";
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "dict6";
+ [
+ "OptionalType";
+ [
+ "DictType";
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict7";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict8";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "dict9";
+ [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "key";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "value";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column2";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column3";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ [
+ "{\"dict2\":[{\"key\":\"k2\",\"value\":{\"dict2\":[]}}],\"dict3\":[{\"key\":\"k3\",\"value\":{\"dict3\":[]}}],\"dict4\":[{\"key\":\"k4\",\"value\":{\"dict4\":[]}}],\"dict5\":[{\"key\":\"k5\",\"value\":{\"dict5\":[]}}],\"dict6\":[{\"key\":\"k6\",\"value\":{\"dict6\":[]}}],\"dict7\":[{\"key\":\"k7\",\"value\":{\"dict7\":[]}}],\"dict8\":[{\"key\":\"k8\",\"value\":{\"dict8\":[]}}], \"dict9\":[{\"key\":\"k9\",\"value\":{\"dict9\":[]}}]}, "
+ ];
+ [
+ [
+ [];
+ [
+ [
+ [
+ "k2";
+ ""
+ ]
+ ]
+ ];
+ [
+ [
+ [
+ "k3"
+ ];
+ [
+ ""
+ ]
+ ]
+ ];
+ [
+ [
+ [
+ "k4"
+ ];
+ [
+ ""
+ ]
+ ]
+ ];
+ [
+ [
+ "k5";
+ ""
+ ]
+ ];
+ [
+ [
+ [
+ "k6";
+ ""
+ ]
+ ]
+ ];
+ [
+ [
+ [
+ "k7"
+ ];
+ [
+ ""
+ ]
+ ]
+ ];
+ [
+ [
+ [
+ "k8"
+ ];
+ [
+ ""
+ ]
+ ]
+ ];
+ [
+ [
+ [
+ "k9"
+ ];
+ [
+ ""
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "{\n \"dict7\":\n [\n {\n \"key\":\"k7\",\n \"value\":\n {\n }\n }\n ],\n \"dict8\":\n [\n {\n \"key\":\"k8\",\n \"value\":\n {\n }\n }\n ],\n \"dict4\":\n [\n {\n \"key\":\"k4\",\n \"value\":\n {\n }\n }\n ],\n \"dict5\":\n [\n {\n \"key\":\"k5\",\n \"value\":\n {\n }\n }\n ],\n \"dict2\":\n [\n {\n \"key\":\"k2\",\n \"value\":\n {\n }\n }\n ],\n \"dict9\":\n [\n {\n \"key\":\"k9\",\n \"value\":\n {\n }\n }\n ],\n \"dict6\":\n [\n {\n \"key\":\"k6\",\n \"value\":\n {\n }\n }\n ],\n \"dict3\":\n [\n {\n \"key\":\"k3\",\n \"value\":\n {\n }\n }\n ]\n}"
+ ];
+ "Success"
+ ];
+ [
+ [
+ "{\"dict2\":[],\"dict3\":[],\"dict4\":[],\"dict5\":[],\"dict6\":[],\"dict7\":[],\"dict8\":[], \"dict9\":[]}"
+ ];
+ [
+ [
+ [];
+ #;
+ [];
+ [];
+ [];
+ #;
+ [];
+ [];
+ []
+ ]
+ ];
+ [
+ "{\n}"
+ ];
+ "Success"
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_no_ser_/results.txt b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_no_ser_/results.txt
new file mode 100644
index 00000000000..9f4e9169eb3
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_no_ser_/results.txt
@@ -0,0 +1,95 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "TestField";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "inner";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "test";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column2";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column3";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ [
+ "{\"inner\":{\"i\":{\"a\":\"hello\"}},\"test\":{\"inner\":{\"i\":{\"a\":\"bye\"}}}}"
+ ];
+ [
+ [
+ [
+ "\n\7\n\5hello"
+ ];
+ [
+ "\n\7\n\5\n\3bye"
+ ]
+ ]
+ ];
+ [
+ "{\n \"test\":\n {\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"bye\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ];
+ "Success"
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_plain_/results.txt b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_plain_/results.txt
new file mode 100644
index 00000000000..4a00215f9cc
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_plain_/results.txt
@@ -0,0 +1,215 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "TestField";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "inner";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column2";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column3";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "inner";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "i";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "a";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column4";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column5";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "inner";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column6";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ [
+ "{\"inner\":{\"i\":{\"a\":\"hello\"}}}"
+ ];
+ [
+ [
+ [
+ "\n\7\n\5hello"
+ ]
+ ]
+ ];
+ [
+ "{\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ [
+ [
+ "hello"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "{\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ];
+ [
+ [
+ [
+ "\n\7\n\5hello"
+ ]
+ ]
+ ];
+ [
+ "{\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ]
+ ];
+ [
+ [
+ "{}"
+ ];
+ [
+ [
+ #
+ ]
+ ];
+ [
+ "{\n}"
+ ];
+ [
+ [
+ #
+ ]
+ ];
+ [
+ "{\n}"
+ ];
+ [
+ [
+ #
+ ]
+ ];
+ [
+ "{\n}"
+ ]
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_ser_pb_/results.txt b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_ser_pb_/results.txt
new file mode 100644
index 00000000000..9f4e9169eb3
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_ser_pb_/results.txt
@@ -0,0 +1,95 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "TestField";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "inner";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "test";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column2";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column3";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ [
+ "{\"inner\":{\"i\":{\"a\":\"hello\"}},\"test\":{\"inner\":{\"i\":{\"a\":\"bye\"}}}}"
+ ];
+ [
+ [
+ [
+ "\n\7\n\5hello"
+ ];
+ [
+ "\n\7\n\5\n\3bye"
+ ]
+ ]
+ ];
+ [
+ "{\n \"test\":\n {\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"bye\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ];
+ "Success"
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_ser_yt_/results.txt b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_ser_yt_/results.txt
new file mode 100644
index 00000000000..3e5c425b434
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/canondata/test.test_yt_mode_ser_yt_/results.txt
@@ -0,0 +1,105 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "TestField";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "inner";
+ [
+ "OptionalType";
+ [
+ "StructType";
+ [
+ [
+ "i";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "test";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ [
+ "column2";
+ [
+ "OptionalType";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ];
+ [
+ "column3";
+ [
+ "DataType";
+ "String"
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ [
+ "{\"inner\":{\"i\":{\"a\":\"hello\"}},\"test\":{\"inner\":{\"i\":{\"a\":\"bye\"}}}}"
+ ];
+ [
+ [
+ [
+ [
+ [
+ "\n\5hello"
+ ]
+ ]
+ ];
+ "\n\7\n\5\n\3bye"
+ ]
+ ];
+ [
+ "{\n \"test\":\n {\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"bye\"\n }\n }\n },\n \"inner\":\n {\n \"i\":\n {\n \"a\":\"hello\"\n }\n }\n}"
+ ];
+ "Success"
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/YQL-19040.sql b/yql/essentials/udfs/common/protobuf/test/cases/YQL-19040.sql
index 895929c06c9..1b51ce590fa 100644
--- a/yql/essentials/udfs/common/protobuf/test/cases/YQL-19040.sql
+++ b/yql/essentials/udfs/common/protobuf/test/cases/YQL-19040.sql
@@ -59,4 +59,4 @@ $udfParseJson = Udf(Protobuf::Parse, $config_json as TypeConfig);
$udfParseBin = Udf(Protobuf::Parse, $config_bin as TypeConfig);
$udfSerializeBin = Udf(Protobuf::Serialize, $config_bin as TypeConfig);
-SELECT Ensure("Success", $udfParseJson($dat) == $udfParseBin($udfSerializeBin($udfParseJson($dat))), "Fail"); \ No newline at end of file
+SELECT $udfParseJson($dat), $udfSerializeBin($udfParseJson($dat)), Ensure("Success", $udfParseJson($dat) == $udfParseBin($udfSerializeBin($udfParseJson($dat))), "Fail"); \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v1.in b/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v1.in
new file mode 100644
index 00000000000..c533e10fb19
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v1.in
@@ -0,0 +1 @@
+{"TestField"="{\"map1\": [{\"key\": \"key1\", \"value\": \"\"}], \"map2\": [{\"key\": \"key3\", \"value\": {\"map1\": [{\"key\": \"nestedKey\", \"value\": \"nestedValue\"}], \"map2\": [{\"key\": \"key4\"}]}}]}"};
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes.in.attr b/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v1.in.attr
index f10d440a236..f10d440a236 100644
--- a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes.in.attr
+++ b/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v1.in.attr
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v1.sql b/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v1.sql
new file mode 100644
index 00000000000..428adb2a73f
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v1.sql
@@ -0,0 +1,30 @@
+/*
+
+syntax='proto3';
+
+message Test {
+ map<string, string> map1 = 1;
+ map<string, Test> map2 = 2;
+};
+
+*/
+
+$config = @@{
+ "name": "Test",
+ "format": "json",
+ "skip": 0,
+ "lists": {
+ "optional": false
+ },
+ "meta": "H4sIAAAAAAAAA+N6xcglUpJboOec457pmJVVUemmV1CUX5KvdJKRiyUktbhESJmLJTexwFCCUYFZg9uIXw8kqOcLFHHNKymqDAJLQhUZSTChKTJCKDKSMufihOsTEuBizk6tBJrKqMEZBGIKiXCxliXmlKYCDQGJQThWTBaMUnZgjUa4NEoja+Q2YgXbjqQ/iQ3sJWMARIs/0+0AAAA=",
+ "view": {
+ "recursion": "bytes",
+ "enum": "number"
+ }
+}@@;
+
+$udfPar = Udf(Protobuf::Parse, $config as TypeConfig);
+$udfSer = Udf(Protobuf::Serialize, $config as TypeConfig);
+
+SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField)) FROM plato.Input;
+
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v2.in b/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v2.in
new file mode 100644
index 00000000000..c533e10fb19
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v2.in
@@ -0,0 +1 @@
+{"TestField"="{\"map1\": [{\"key\": \"key1\", \"value\": \"\"}], \"map2\": [{\"key\": \"key3\", \"value\": {\"map1\": [{\"key\": \"nestedKey\", \"value\": \"nestedValue\"}], \"map2\": [{\"key\": \"key4\"}]}}]}"};
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v2.in.attr b/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v2.in.attr
new file mode 100644
index 00000000000..f10d440a236
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v2.in.attr
@@ -0,0 +1 @@
+{schema=[{name=TestField;type=string}]}
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v2.sql b/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v2.sql
new file mode 100644
index 00000000000..4ed81752643
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/map_bytes_v2.sql
@@ -0,0 +1,30 @@
+/*
+
+syntax='proto3';
+
+message Test {
+ map<string, string> map1 = 1;
+ map<string, Test> map2 = 2;
+};
+
+*/
+
+$config = @@{
+ "name": "Test",
+ "format": "json",
+ "skip": 0,
+ "lists": {
+ "optional": false
+ },
+ "meta": "H4sIAAAAAAAAA+N6xcglUpJboOec457pmJVVUemmV1CUX5KvdJKRiyUktbhESJmLJTexwFCCUYFZg9uIXw8kqOcLFHHNKymqDAJLQhUZSTChKTJCKDKSMufihOsTEuBizk6tBJrKqMEZBGIKiXCxliXmlKYCDQGJQThWTBaMUnZgjUa4NEoja+Q2YgXbjqQ/iQ3sJWMARIs/0+0AAAA=",
+ "view": {
+ "recursion": "bytesV2",
+ "enum": "number"
+ }
+}@@;
+
+$udfPar = Udf(Protobuf::Parse, $config as TypeConfig);
+$udfSer = Udf(Protobuf::Serialize, $config as TypeConfig);
+
+SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField)) FROM plato.Input;
+
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.cfg b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.cfg
new file mode 100644
index 00000000000..732ab13335f
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.cfg
@@ -0,0 +1,2 @@
+in plato.Input oneof_bytes_v1_fail.in
+xfail
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.in b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.in
new file mode 100644
index 00000000000..d65d62216d6
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.in
@@ -0,0 +1 @@
+{"TestField"="{\"str\":\"string value\"}"};
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.in.attr b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.in.attr
new file mode 100644
index 00000000000..f10d440a236
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.in.attr
@@ -0,0 +1 @@
+{schema=[{name=TestField;type=string}]}
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.sql b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.sql
new file mode 100644
index 00000000000..812467e72c2
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_fail.sql
@@ -0,0 +1,32 @@
+/*
+
+syntax='proto3';
+
+message Test {
+ oneof Var {
+ Test test = 1;
+ string str = 2;
+ }
+};
+
+*/
+
+$config = @@{
+ "name": "Test",
+ "format": "json",
+ "skip": 0,
+ "lists": {
+ "optional": false
+ },
+ "meta": "H4sIAAAAAAAAA+OK4xIpyS3Qs/ArMkhMCsrwN9UrKMovyVey42IJSS0uEZLmYikB0hKMCowa3EaseiBBD4YgsKCQEBdzcUmRBBNQjhMoCOI4sXIxhyUWJbGBjTEGACyKGj9gAAAA",
+ "view": {
+ "recursion": "bytes",
+ "enum": "number"
+ }
+}@@;
+
+$udfPar = Udf(Protobuf::Parse, $config as TypeConfig);
+$udfSer = Udf(Protobuf::Serialize, $config as TypeConfig);
+
+SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField)) FROM plato.Input;
+
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_success.in b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_success.in
new file mode 100644
index 00000000000..63f95c46de9
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_success.in
@@ -0,0 +1 @@
+{"TestField"="{\"test\":{\"str\":\"string value\"}}"}; \ No newline at end of file
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_success.in.attr b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_success.in.attr
new file mode 100644
index 00000000000..f10d440a236
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_success.in.attr
@@ -0,0 +1 @@
+{schema=[{name=TestField;type=string}]}
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_success.sql b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_success.sql
new file mode 100644
index 00000000000..812467e72c2
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v1_success.sql
@@ -0,0 +1,32 @@
+/*
+
+syntax='proto3';
+
+message Test {
+ oneof Var {
+ Test test = 1;
+ string str = 2;
+ }
+};
+
+*/
+
+$config = @@{
+ "name": "Test",
+ "format": "json",
+ "skip": 0,
+ "lists": {
+ "optional": false
+ },
+ "meta": "H4sIAAAAAAAAA+OK4xIpyS3Qs/ArMkhMCsrwN9UrKMovyVey42IJSS0uEZLmYikB0hKMCowa3EaseiBBD4YgsKCQEBdzcUmRBBNQjhMoCOI4sXIxhyUWJbGBjTEGACyKGj9gAAAA",
+ "view": {
+ "recursion": "bytes",
+ "enum": "number"
+ }
+}@@;
+
+$udfPar = Udf(Protobuf::Parse, $config as TypeConfig);
+$udfSer = Udf(Protobuf::Serialize, $config as TypeConfig);
+
+SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField)) FROM plato.Input;
+
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v2.in b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v2.in
new file mode 100644
index 00000000000..95386798c60
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v2.in
@@ -0,0 +1,2 @@
+{"TestField"="{\"str\":\"string value\"}"};
+{"TestField"="{\"test\":{\"str\":\"string value\"}}"};
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v2.in.attr b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v2.in.attr
new file mode 100644
index 00000000000..f10d440a236
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v2.in.attr
@@ -0,0 +1 @@
+{schema=[{name=TestField;type=string}]}
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v2.sql b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v2.sql
new file mode 100644
index 00000000000..2390f9ce767
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/oneof_bytes_v2.sql
@@ -0,0 +1,32 @@
+/*
+
+syntax='proto3';
+
+message Test {
+ oneof Var {
+ Test test = 1;
+ string str = 2;
+ }
+};
+
+*/
+
+$config = @@{
+ "name": "Test",
+ "format": "json",
+ "skip": 0,
+ "lists": {
+ "optional": false
+ },
+ "meta": "H4sIAAAAAAAAA+OK4xIpyS3Qs/ArMkhMCsrwN9UrKMovyVey42IJSS0uEZLmYikB0hKMCowa3EaseiBBD4YgsKCQEBdzcUmRBBNQjhMoCOI4sXIxhyUWJbGBjTEGACyKGj9gAAAA",
+ "view": {
+ "recursion": "bytesV2",
+ "enum": "number"
+ }
+}@@;
+
+$udfPar = Udf(Protobuf::Parse, $config as TypeConfig);
+$udfSer = Udf(Protobuf::Serialize, $config as TypeConfig);
+
+SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField)) FROM plato.Input;
+
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes.in b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes.in
deleted file mode 100644
index b6dd409ad4e..00000000000
--- a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes.in
+++ /dev/null
@@ -1 +0,0 @@
-{"TestField"="{\"inner\":{\"i\":{\"a\":\"hello\"}},\"test\":{\"inner\":{\"i\":{\"a\":\"bye\"}}}}"};
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes.sql b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes.sql
deleted file mode 100644
index 3ee0813dc44..00000000000
--- a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes.sql
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-syntax='proto3';
-
-message Test {
- message InnerInner {
- string a = 1;
- }
- message Inner {
- InnerInner i = 1;
- }
- Inner inner = 1;
- Test test = 2;
-}
-*/
-
-$config = @@{
- "name": "Test",
- "format": "json",
- "skip": 0,
- "lists": {
- "optional": false
- },
- "meta": "eNrjWsjIxV2UmlxapFdQlF+Sr9TJyMUSklpcIqTIxZqZl5daJMGowKjBbcStBxLV8wQJBUFkhCS5WEqAghJMYBWsYBVBYCEpKS4usFIwIcTDxZgINocziDFRSp2LFSIsx8WYCTVeAMl4iB2MmUlsYCcZAwC/Qiqb",
- "view": {
- "recursion": "bytes",
- "enum": "number"
- }
-}@@;
-
-$udfPar = Udf(Protobuf::Parse, $config as TypeConfig);
-$udfSer = Udf(Protobuf::Serialize, $config as TypeConfig);
-
-SELECT TestField, Ensure("Success", $udfPar(TestField) == $udfPar($udfSer($udfPar(TestField))), "Fail")
-FROM plato.Input;
-
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.cfg b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.cfg
new file mode 100644
index 00000000000..feba56ac97b
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.cfg
@@ -0,0 +1,2 @@
+in plato.Input recursion_bytes_v1_fail_empty_optional.in
+xfail
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.in b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.in
new file mode 100644
index 00000000000..9dfbc7d0a0c
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.in
@@ -0,0 +1 @@
+{"TestField"="{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"repeated\": [], \"select\": {\"name\": \"\"}}"};
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.in.attr b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.in.attr
new file mode 100644
index 00000000000..f10d440a236
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.in.attr
@@ -0,0 +1 @@
+{schema=[{name=TestField;type=string}]}
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.sql b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.sql
new file mode 100644
index 00000000000..8049b67fdf4
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_fail_empty_optional.sql
@@ -0,0 +1,51 @@
+/*
+syntax='proto2';
+
+message Test {
+ message InnerInner {
+ required string a = 1;
+ }
+ message Inner {
+ required InnerInner i = 1;
+ }
+ optional Inner inner = 1;
+
+ // Simple optional recursion.
+ optional Test test = 2;
+
+ // Repeated recursion.
+ repeated Test repeated = 4;
+
+ // Just a number.
+ required int64 number = 6;
+
+ message InnerMessage {
+ // Required recursion via optional message.
+ required Test req = 1;
+ }
+
+ optional InnerMessage req = 7;
+}
+*/
+
+$config = @@{
+ "name": "Test",
+ "format": "json",
+ "skip": 0,
+ "lists": {
+ "optional": false
+ },
+ "meta": "H4sIAAAAAAAAA02PvQ6CMBSF0/KjXhhMYxQZDBoTmRh4BRcdXBoWxxoqIYYfS3kSX8OHtLRGWZr0O+eecy+8MSxk1SbX7F48js2pz5NWNLLZvTDYGe8k2YJT1jUXAYpQ7KVeMtDkPCBqFLIGWyoYYO1wtINqpKangrecSZ4HdmT95R8mS3DrvrqpBjfCsUW/P7IHS/BnMNGhZFR74V3HCk4HOQwBNNQP8QExtSiOZxSx8ACOwRtApcZeOh8FmSNQqYz+OJmsTLWZ+C48kA+TG9kxLwEAAA==",
+ "view": {
+ "recursion": "bytes",
+ "enum": "number"
+ }
+}@@;
+
+$udfPar = Udf(Protobuf::Parse, $config as TypeConfig);
+$udfSer = Udf(Protobuf::Serialize, $config as TypeConfig);
+
+
+SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField))
+FROM plato.Input;
+
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_success.in b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_success.in
new file mode 100644
index 00000000000..daaa74d2ea0
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_success.in
@@ -0,0 +1,4 @@
+{"TestField"="{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"test\": {\"number\": 5, \"inner\": {\"i\": {\"a\": \"optional hello\"}}}, \"repeated\": []}"};
+{"TestField"="{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"test\": {\"number\": 5, \"inner\": {\"i\": {\"a\": \"optional data\"}}}, \"repeated\": [{\"number\": 5, \"inner\": {\"i\": {\"a\": \"repeated hello\"}}}]}"};
+{"TestField"="{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"req\": {\"req\": {\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"repeated\": []}}, \"test\": {\"number\": 5, \"inner\": {\"i\": {\"a\": \"optional hello\"}}}, \"repeated\": []}"};
+
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_success.in.attr b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_success.in.attr
new file mode 100644
index 00000000000..f10d440a236
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_success.in.attr
@@ -0,0 +1 @@
+{schema=[{name=TestField;type=string}]}
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_success.sql b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_success.sql
new file mode 100644
index 00000000000..4737218fb14
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v1_success.sql
@@ -0,0 +1,67 @@
+/*
+syntax='proto2';
+
+message Test {
+ message InnerInner {
+ required string a = 1;
+ }
+ message Inner {
+ required InnerInner i = 1;
+ }
+ optional Inner inner = 1;
+
+ // Simple optional recursion.
+ optional Test test = 2;
+
+ // Repeated recursion.
+ repeated Test repeated = 4;
+
+ // Just a number.
+ required int64 number = 6;
+
+ message InnerMessage {
+ // Required recursion via optional message.
+ required Test req = 1;
+ }
+
+ optional InnerMessage req = 7;
+}
+*/
+
+$config = @@{
+ "name": "Test",
+ "format": "json",
+ "skip": 0,
+ "lists": {
+ "optional": false
+ },
+ "meta": "H4sIAAAAAAAAA02PvQ6CMBSF0/KjXhhMYxQZDBoTmRh4BRcdXBoWxxoqIYYfS3kSX8OHtLRGWZr0O+eecy+8MSxk1SbX7F48js2pz5NWNLLZvTDYGe8k2YJT1jUXAYpQ7KVeMtDkPCBqFLIGWyoYYO1wtINqpKangrecSZ4HdmT95R8mS3DrvrqpBjfCsUW/P7IHS/BnMNGhZFR74V3HCk4HOQwBNNQP8QExtSiOZxSx8ACOwRtApcZeOh8FmSNQqYz+OJmsTLWZ+C48kA+TG9kxLwEAAA==",
+ "view": {
+ "recursion": "bytes",
+ "enum": "number"
+ }
+}@@;
+
+$configOptList = @@{
+ "name": "Test",
+ "format": "json",
+ "skip": 0,
+ "lists": {
+ "optional": true
+ },
+ "meta": "H4sIAAAAAAAAA02PvQ6CMBSF0/KjXhhMYxQZDBoTmRh4BRcdXBoWxxoqIYYfS3kSX8OHtLRGWZr0O+eecy+8MSxk1SbX7F48js2pz5NWNLLZvTDYGe8k2YJT1jUXAYpQ7KVeMtDkPCBqFLIGWyoYYO1wtINqpKangrecSZ4HdmT95R8mS3DrvrqpBjfCsUW/P7IHS/BnMNGhZFR74V3HCk4HOQwBNNQP8QExtSiOZxSx8ACOwRtApcZeOh8FmSNQqYz+OJmsTLWZ+C48kA+TG9kxLwEAAA==",
+ "view": {
+ "recursion": "bytes",
+ "enum": "number"
+ }
+}@@;
+
+$udfPar = Udf(Protobuf::Parse, $config as TypeConfig);
+$udfSer = Udf(Protobuf::Serialize, $config as TypeConfig);
+
+$udfParOpt = Udf(Protobuf::Parse, $configOptList as TypeConfig);
+$udfSerOpt = Udf(Protobuf::Serialize, $configOptList as TypeConfig);
+
+SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField)), $udfParOpt(TestField), $udfSerOpt($udfParOpt(TestField))
+FROM plato.Input;
+
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v2.in b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v2.in
new file mode 100644
index 00000000000..218b1a2c256
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v2.in
@@ -0,0 +1,4 @@
+{"TestField"="{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"repeated\": []}"};
+{"TestField"="{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"test\": {\"number\": 5, \"inner\": {\"i\": {\"a\": \"optional hello\"}}}, \"repeated\": []}"};
+{"TestField"="{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"test\": {\"number\": 5, \"inner\": {\"i\": {\"a\": \"optional data\"}}}, \"repeated\": [{\"number\": 5, \"inner\": {\"i\": {\"a\": \"repeated hello\"}}}]}"};
+{"TestField"="{\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"req\": {\"req\": {\"inner\": {\"i\": {\"a\": \"hello\"}}, \"number\": 5, \"repeated\": []}}, \"test\": {\"number\": 5, \"inner\": {\"i\": {\"a\": \"optional hello\"}}}, \"repeated\": []}"};
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v2.in.attr b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v2.in.attr
new file mode 100644
index 00000000000..f10d440a236
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v2.in.attr
@@ -0,0 +1 @@
+{schema=[{name=TestField;type=string}]}
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v2.sql b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v2.sql
new file mode 100644
index 00000000000..7fd995bb362
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/recursion_bytes_v2.sql
@@ -0,0 +1,69 @@
+/*
+syntax='proto2';
+
+message Test {
+ message InnerInner {
+ required string a = 1;
+ }
+
+ message Inner {
+ required InnerInner i = 1;
+ }
+
+ optional Inner inner = 1;
+
+ // Simple optional recursion.
+ optional Test test = 2;
+
+ // Repeated recursion.
+ repeated Test repeated = 4;
+
+ // Just a number.
+ required int64 number = 6;
+
+ message InnerMessage {
+ // Required recursion via optional message.
+ required Test req = 1;
+ }
+
+ optional InnerMessage req = 7;
+}
+*/
+
+$config = @@{
+ "name": "Test",
+ "format": "json",
+ "skip": 0,
+ "lists": {
+ "optional": false
+ },
+ "meta": "H4sIAAAAAAAAA02PvQ6CMBSF0/KjXhhMYxQZDBoTmRh4BRcdXBoWxxoqIYYfS3kSX8OHtLRGWZr0O+eecy+8MSxk1SbX7F48js2pz5NWNLLZvTDYGe8k2YJT1jUXAYpQ7KVeMtDkPCBqFLIGWyoYYO1wtINqpKangrecSZ4HdmT95R8mS3DrvrqpBjfCsUW/P7IHS/BnMNGhZFR74V3HCk4HOQwBNNQP8QExtSiOZxSx8ACOwRtApcZeOh8FmSNQqYz+OJmsTLWZ+C48kA+TG9kxLwEAAA==",
+ "view": {
+ "recursion": "bytesV2",
+ "enum": "number"
+ }
+}@@;
+
+$configOptList = @@{
+ "name": "Test",
+ "format": "json",
+ "skip": 0,
+ "lists": {
+ "optional": true
+ },
+ "meta": "H4sIAAAAAAAAA02PvQ6CMBSF0/KjXhhMYxQZDBoTmRh4BRcdXBoWxxoqIYYfS3kSX8OHtLRGWZr0O+eecy+8MSxk1SbX7F48js2pz5NWNLLZvTDYGe8k2YJT1jUXAYpQ7KVeMtDkPCBqFLIGWyoYYO1wtINqpKangrecSZ4HdmT95R8mS3DrvrqpBjfCsUW/P7IHS/BnMNGhZFR74V3HCk4HOQwBNNQP8QExtSiOZxSx8ACOwRtApcZeOh8FmSNQqYz+OJmsTLWZ+C48kA+TG9kxLwEAAA==",
+ "view": {
+ "recursion": "bytesV2",
+ "enum": "number"
+ }
+}@@;
+
+$udfPar = Udf(Protobuf::Parse, $config as TypeConfig);
+$udfSer = Udf(Protobuf::Serialize, $config as TypeConfig);
+
+$udfParOpt = Udf(Protobuf::Parse, $configOptList as TypeConfig);
+$udfSerOpt = Udf(Protobuf::Serialize, $configOptList as TypeConfig);
+
+SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField)), $udfParOpt(TestField), $udfSerOpt($udfParOpt(TestField))
+FROM plato.Input;
+
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/recursion_ignore.sql b/yql/essentials/udfs/common/protobuf/test/cases/recursion_ignore.sql
index 2f57eb18d19..6849518bb00 100644
--- a/yql/essentials/udfs/common/protobuf/test/cases/recursion_ignore.sql
+++ b/yql/essentials/udfs/common/protobuf/test/cases/recursion_ignore.sql
@@ -30,6 +30,6 @@ $config = @@{
$udfPar = Udf(Protobuf::Parse, $config as TypeConfig);
$udfSer = Udf(Protobuf::Serialize, $config as TypeConfig);
-SELECT TestField, Ensure("Success", $udfPar(TestField) == $udfPar($udfSer($udfPar(TestField))), "Fail")
+SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField)), Ensure("Success", $udfPar(TestField) == $udfPar($udfSer($udfPar(TestField))), "Fail")
FROM plato.Input;
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v1.in b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v1.in
new file mode 100644
index 00000000000..b17a51f7239
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v1.in
@@ -0,0 +1,3 @@
+{"TestField"="{\"dict2\":[{\"key\":\"k2\",\"value\":{\"dict2\":[]}}],\"dict3\":[{\"key\":\"k3\",\"value\":{\"dict3\":[]}}],\"dict4\":[{\"key\":\"k4\",\"value\":{\"dict4\":[]}}],\"dict5\":[{\"key\":\"k5\",\"value\":{\"dict5\":[]}}],\"dict6\":[{\"key\":\"k6\",\"value\":{\"dict6\":[]}}],\"dict7\":[{\"key\":\"k7\",\"value\":{\"dict7\":[]}}],\"dict8\":[{\"key\":\"k8\",\"value\":{\"dict8\":[]}}], \"dict9\":[{\"key\":\"k9\",\"value\":{\"dict9\":[]}}]}, "};
+{"TestField"="{\"dict2\":[],\"dict3\":[],\"dict4\":[],\"dict5\":[],\"dict6\":[],\"dict7\":[],\"dict8\":[], \"dict9\":[]}"};
+
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v1.in.attr b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v1.in.attr
new file mode 100644
index 00000000000..f10d440a236
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v1.in.attr
@@ -0,0 +1 @@
+{schema=[{name=TestField;type=string}]}
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v1.sql b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v1.sql
new file mode 100644
index 00000000000..5000b56e2ed
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v1.sql
@@ -0,0 +1,48 @@
+/*
+syntax='proto3';
+
+import "yt/yt_proto/yt/formats/extension.proto";
+
+message Test {
+ option (NYT.default_field_flags) = SERIALIZATION_YT;
+
+ message Inner {
+ string a = 1;
+ }
+ map<string, Test> dict1 = 1 [(NYT.flags) = MAP_AS_DICT];
+ map<string, Test> dict2 = 2 [(NYT.flags) = MAP_AS_OPTIONAL_DICT];
+ map<string, Test> dict3 = 3 [(NYT.flags) = MAP_AS_LIST_OF_STRUCTS_LEGACY];
+ map<string, Test> dict4 = 4 [(NYT.flags) = MAP_AS_LIST_OF_STRUCTS];
+ map<string, Test> dict5 = 5 [(NYT.flags) = MAP_AS_DICT];
+ map<string, Test> dict6 = 6 [(NYT.flags) = MAP_AS_OPTIONAL_DICT];
+ map<string, Test> dict7 = 7 [(NYT.flags) = MAP_AS_LIST_OF_STRUCTS_LEGACY];
+ map<string, Test> dict8 = 8 [(NYT.flags) = MAP_AS_LIST_OF_STRUCTS];
+ map<string, Test> dict9 = 9
+}
+*/
+
+$config = @@{
+ "name": "Test",
+ "format": "json",
+ "skip": 0,
+ "lists": {
+ "optional": false
+ },
+ "meta": "H4sIAAAAAAAAA81a3W8jVxXHn7GPE2cyye662S7bmnZ321JvyX6nQHHsSdZbxzZje9tUQqPJ+MZx15lxZ8bbzQohJHhB4gXxghBCiBcQfwAI8YSEeEQ8AE9U4uMBJP4BnhDnfsx4xuNs3K5a2Ies77m/c86955577jn3Dvx1C57rW1Z/SK6ObMu19scHV3vEMezByLXsEqPJyxxR8hDFXVjZHgxJ1Qe2iSvfhuQBEgux5xJXchsvlKaYSmGOFiWrjKP4nySszuiVZUia+hGVGLuSVdlvuQALI914oPdJIc7IXlP+NECPjIjZI6ZxXEjgKLJqgCK/Aiuj8f5wYGgBGCAspUq8ozoBX4bl94n+IAjNMWiekgPACiweEcfBAWju8YgUkmz2z0VmPz3znODqIJNchiwxx0dcQuoE+ymImJaSoWxCxIJD7IcDgxTSTMDliIA275+W4fHhVLLkkUtMZ2CZhQUm5MUZq0iGvWkREz75JixYIxd/OYUMrk9u49mZjtDkGNUDyzWQHGtsG0QzrB7RBuaBVcgyARejE2HACuJqCFPzTqgtn4W0c2y6+qPCIvMQ0aKuQ3oDqq6wxF1HNIu/TMPyPM73OqQO6PzR9T6EdThP2Lzpj2jeMuRM4rikx30lMae3AWeKOlvyIznb27DsD0mzdbPvee3V00ZSUjw+lbKpeRJqy1UAyyTWAW48Y4geNNtKTQqJWMniVGMo35k44cIJPrTLt1/ED7uQtwndEWhiPrMsG0Tp1Jmpgo1PbMkONuXPgE/QmFsBi0+LHrGBtPXHkA+bR16DlOPqtsu8MKXyhixBAsMPi38plf6UvzSZcIJN+FJ0RUOSp+e9fguWQhOYV3Xxq3Bmpmh0krWxOTBdYo9sQj2Wqyr8Y+EEn+sG0VyKujqOEl/OZv65IH0d/8WLv07D2qw9M3P7YmBAD94nNjNSShUt3BGpob5PhrgbYlfyG6/MtStLdcqick75i5AUwZtKeHk+CXQvqYxPPg9Z+j/3jTQbc4YSqF/I65Bh26RHvEPPb1PH6pEDfTx0tYf6cEyYw6NjCeJ9SpMvQo7vqgHyPGJxNaXyjVajFKr+XQf3snBNpoISmPpb0yH9wuzpRfYSHqIMcU0svT4srKCAjJrn5KagFn8ehyQLLMuQ6+y1FK3a7G7VFSkm5wEYYbveLHekuN+uNTo3r0sJn6HLCckg4NqGlEKHXeQCam8rVUSkwxTELMhLkGWUrWazLmV8me2OWmvsSFlf5o7a7LYk8CXsKu12eUeRcj5ia6+jtKXF0LBQxZKvQml0d6W8vAJLXIU3iOUpEo5UmgyES1kJERAhFyuQYm6I7p6vl7eUutZsdWrNRrmOtvNpqvLlbk1Vqmi/AK2llDtISxQNWJsVUGduoYAvxE/wBSZr2heKf4/D6oxDZaaSNyDFfZkfsy/NPJ2YZ0eOWsYXTEISJyQhVETEYb8SCf78fLw5z/nIaB/uEEjNOAReh5WIoLmD8TdiUDjJOKeExHgoJL4+bcHnT16EyFr/JAZnZyebM8fwRUgfEffQ8tKq6Nm1y7qnF1twBU/7xEkZIx9NZKTfisOZmcJnDvQCwMAcjV2eOvFInGUUFrxolB27fn+C9QMnMcDtyUCTbKCfPmGmEcd8DSRjOCCmqzmuTfSjgdlnR01mM3WgDx2iLvPuttdLOZgD2QGOdIiDd/scxe9kIRdIzeXnYfFd/aGueeUWt0SO0lqi5HoN1hgE54iKjKHuOMxoGQaVaV+TdlW8HvkGrDKOIzybBqMh0WgB6LAjxx/ZCkXsCgAdkYNp4QXG1icmsXWXaOS9MWI13exph7pzWFijArbihZj6DAXuCJzCYGWzdxdB8iacZVLQIjhhzTgkxgNt7B7cLpwP6mcjbDNMhUK6iJDbsEgX42jwGMds2ewMzc8ITQELlpqCYRcrk81Uu6UoVTXnSdm2bOpQfcs3cI47VN/yzIvGMgw+Z6xaRZnmFKSQsQxjhwOEjzu4H85MjBVkXInMcpoVNY6Oo4xySOPoeJrtFqyNDkdRvpeDfDJCphlfZDW7TQxcq17hXBAe6JBL6P6GRkx9Hz1Gt/GHU7jIwEnXHmMVYRgK6yyzPvllWLH23zW4R2oo5mDwqPACM+8y7WD+2GJk+SWU7Rzq9oiFZAcXgxRe5FBOb3hkuiOc9wcHrifxMt8RjCakXQGJWiKk+AqD5ZEe1IuHAUVOlL7EEzckTjReh7MUhIFO7+muHkB/lqGp2XdFZ2ic9nj/2HesV/k4Kc1zrY8tOS9uwmLQ7+UscM/HhASToEqzStOXdxTMRTCNqtc6iqZ2G53ariIlAon9vWTmknS5+KsE5MOVmvx5OOdduDjE1d4f2GxDHun8cPT9Z02g2sR9CzHbDCLX4aJpYQDAwKHbPW1y1aXpBjqkY/GD0JfyrGm1BXhyQpQFdMp9Eye5L2bXR/oI/de1j1l+nlEzSFBoW74PlyZQbUj6unGssWScXRtohmUeDAeG67D4wGNcccJRZwz3EM9y8IqH/kTKL1ylpJTCvykpjX/T0gL+zUhZ/JuVoPiLDCwGKwNaaBnsbIyx6PmZJ9YRpQo9NDfTPA1XOSdNWKhbE572ZFTRkncg/a7DZKeZ7Fn3jwHZ99pMePZeW2s01d1yXRXs8jOQHOqPj8PHKyNhGFoem3hmDnBlcKkoajmIyk966xQ/p3ugRnqpGD4EGQnDCRZy++O+ZpOebrjh0J9jXSrrkd+ELF0jk63xCjPBq082gVhij0md8MvbkMYEs09cFvnzMy4/ZkjqMA5W0wrujzHKXIUUcw8ZQDiI9Ck5A8lKU6WRBkMLp2qtmlLBYFO8AWm+5jQK+auOTLwpZMS83u7ulqIiWxeWp+wkn4EVVekoDVpnad3Gm43mWw2UEyJ7IS2Gmbs0IbebXZWN5ttxkKatJp+D1U5Z3VE6Gq8dfdEoI9ixXWOl8UU4H6Qqb6OWNlNebuzQ+Dolz6tWE3SoYXlKvYql8xS52VCa21hBT2lnFWxaXoez01T801H3sJ6eUtxW1Ps1nHYGN68cHlHnbrMqZSMRpejgIRIoIz+Zu6TvxSEXKAtpPq8Ph9b7mj4c6I6IN8BIZUqZd3/PH+HT/48RHmN78YcxkKbrvanpx06a/ieydj+IQT5c5E0N7/n/6fD+EoelUGk37+jeg5VBjxyNLJe+NqHzPCTDQpEF5ehde0hDqTbhq1O2zdVaVdltNTFMVPa86KJKgynYxxi0WyBND4rGihnDwqC3CsuNJqaKmC8q29tKpdPm14E+uiPFgyb+fgJWZ4wEcw5eyPO7heiZOIOnRFPplm67ou7HEgGthNEf96strll5db88ofOb1s+CPLKcgTt4SN+wvDtZWu0nVcnrqZmujzZxd0+haeaRUCWvx0djWt+zxrQE4jgaLWKYBTCaDxHF7eQyeBErFEbjkMuwrPf7NhXuCeLlet4nM+D6Pch4dqAZLLUEVhTsDipO74dNrxOVDhxt8rYVx/6Mmhs4/rtA8Sdx3J7hV7oqZIYWOjnl4E/GV0556CvVBV71Odd/F4OMR8bjJTnS3UMmLrUVl2Iqa1M6FkYmcwFBp226rkOi99hdgHV0hCvpeOsq6BVBpo/Hrq0PhiFskmElr8MHb8IzntweFmfGIelNmNLszu+cAFRFv8db/H0cVrzbi55vrF0A3TQtN2iuqCtH+Epln0kNCFj/Vwxg0nWi3fAAFG+y7GGfX3gBJ9F7DnotuU/6A1O8p/CGdy2ZnDxPqZBxyJGOO8UQLyTRG9UnDb7UFtyqL6d4BTIelSZ+DUxXMGosQKKtdDBSYNlZrtfKbSm+9TVYRetPK9ySpq78nLuxd14VoL411M1+ybL7k88iaHXgBD6OGO3/Oxb7cTyx09r6WXx9hzO2vOmo5GBIDDp4+G4eLh27V4/pvQH24o+rvGB1rvqbRnxpkWjsddZP/SCj+Gd0EuUtWx+NiM2Sgu2h3i/+Ng5JekhTI5Qbe2iNFVhqdu4qqlZp1ru7DRpBFyHDcrUajZ/0QYG1RPqboMkepms1NN07ZZay7nUwM8RkL0xtqc1Oc6tL00PU4b0vaPVau4O5IVUrniE4aQFjxIXdcksrtxlBa25TlV0M6lpd2SlX9jA5RCWzIVKWjlP0VWuVjgRyAdYEwdfEenJsgpi8V6tKVVqUn4UCn+CbtZZ3uGj3y/Wu0paWaMbLeit3lcqbHjlffACrnnXF5QOzb0eY9xW4XFVaqlKh7yeY06sdnkK36XBqwjg8S/8UzdKDiK09/surMGLFL0yWkqW8TNUVoQoPwbbSKquoSUjAOeVg4X4ZVwNXcGnThQLdnJr3CMjf+Q5QiCM/8dOLwh9+Rb8eyG+cL6HTlSJj4M8ZZw7YdzlMtt/lRLTyRHYerX+cqdV34qhWv8vZfAzrIa3ePdA8ev8k9F4I6Q0sL9d8LqA50OlsqpDiap78+HmCVafmx0VtfglyhjUcH/F319MkU8uxAMx56Nm8uQPLD8ix9iGk/ElIWUK+ykRQC9aO9EeYhOBBRrTDsflAcwaPT5X2tz8mWGqzgsw1xnsXWdvIuWnC6iyfPO1LjPnccqUXccmAvqA3nqpvLof09AWckcBS2P9O1TSnC3rfk3E1X/Ge7k/yvmCdPJ/x+MM/F78L8kPdHuAxKqx2gg+FtHieKAlWZhXqRlsvvXNZLx3r9JuCV12iH5Xs8dXZRx/8JoPlNf3HlazPeUQWv4mHfYc4LibPqR7WwZ8T6ZBUotRSlZLYzepW8kcfnAeVgzz0hqgDAuiNCTrH0Rse+pr4wCqAvjZBZzj6moe+Ll6LA+jrE3SWo6976Bvik6kA+kZk3Dc89E3xxVgAfTMy7pse+pb4fC+AvhUZ9y0PfVt8ZxVA346M+7Z8iaPviA+iAug7DM1xd9bPQKpmYi6HJ3FMF6+GMX39DYDJ2tAcEQOQ6KU/scTwH/3p02iKiRcP+pvx2zFPwMbTCrj2tAKuP62AG08r4ObTCrj1tAJuP62AOx9VwGbypx+cT+6n+SdE/wUYnqXKwSwAAA==",
+ "view": {
+ "recursion": "bytes",
+ "enum": "number",
+ "yt_mode": true
+ }
+}
+@@;
+
+$udfParse = Udf(Protobuf::Parse, $config as TypeConfig);
+$udfSerialize = Udf(Protobuf::Serialize, $config as TypeConfig);
+
+SELECT
+ TestField,
+ $udfParse(TestField),
+ $udfSerialize($udfParse(TestField)),
+ Ensure("Success", StablePickle($udfParse(TestField)) == StablePickle($udfParse($udfSerialize($udfParse(TestField)))), "Fail"),
+FROM plato.Input;
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v2.in b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v2.in
new file mode 100644
index 00000000000..b17a51f7239
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v2.in
@@ -0,0 +1,3 @@
+{"TestField"="{\"dict2\":[{\"key\":\"k2\",\"value\":{\"dict2\":[]}}],\"dict3\":[{\"key\":\"k3\",\"value\":{\"dict3\":[]}}],\"dict4\":[{\"key\":\"k4\",\"value\":{\"dict4\":[]}}],\"dict5\":[{\"key\":\"k5\",\"value\":{\"dict5\":[]}}],\"dict6\":[{\"key\":\"k6\",\"value\":{\"dict6\":[]}}],\"dict7\":[{\"key\":\"k7\",\"value\":{\"dict7\":[]}}],\"dict8\":[{\"key\":\"k8\",\"value\":{\"dict8\":[]}}], \"dict9\":[{\"key\":\"k9\",\"value\":{\"dict9\":[]}}]}, "};
+{"TestField"="{\"dict2\":[],\"dict3\":[],\"dict4\":[],\"dict5\":[],\"dict6\":[],\"dict7\":[],\"dict8\":[], \"dict9\":[]}"};
+
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v2.in.attr b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v2.in.attr
new file mode 100644
index 00000000000..f10d440a236
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v2.in.attr
@@ -0,0 +1 @@
+{schema=[{name=TestField;type=string}]}
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v2.sql b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v2.sql
new file mode 100644
index 00000000000..de80e5e145e
--- /dev/null
+++ b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_map_recursive_v2.sql
@@ -0,0 +1,48 @@
+/*
+syntax='proto3';
+
+import "yt/yt_proto/yt/formats/extension.proto";
+
+message Test {
+ option (NYT.default_field_flags) = SERIALIZATION_YT;
+
+ message Inner {
+ string a = 1;
+ }
+ map<string, Test> dict1 = 1 [(NYT.flags) = MAP_AS_DICT];
+ map<string, Test> dict2 = 2 [(NYT.flags) = MAP_AS_OPTIONAL_DICT];
+ map<string, Test> dict3 = 3 [(NYT.flags) = MAP_AS_LIST_OF_STRUCTS_LEGACY];
+ map<string, Test> dict4 = 4 [(NYT.flags) = MAP_AS_LIST_OF_STRUCTS];
+ map<string, Test> dict5 = 5 [(NYT.flags) = MAP_AS_DICT];
+ map<string, Test> dict6 = 6 [(NYT.flags) = MAP_AS_OPTIONAL_DICT];
+ map<string, Test> dict7 = 7 [(NYT.flags) = MAP_AS_LIST_OF_STRUCTS_LEGACY];
+ map<string, Test> dict8 = 8 [(NYT.flags) = MAP_AS_LIST_OF_STRUCTS];
+ map<string, Test> dict9 = 9
+}
+*/
+
+$config = @@{
+ "name": "Test",
+ "format": "json",
+ "skip": 0,
+ "lists": {
+ "optional": false
+ },
+ "meta": "H4sIAAAAAAAAA81a3W8jVxXHn7GPE2cyye662S7bmnZ321JvyX6nQHHsSdZbxzZje9tUQqPJ+MZx15lxZ8bbzQohJHhB4gXxghBCiBcQfwAI8YSEeEQ8AE9U4uMBJP4BnhDnfsx4xuNs3K5a2Ies77m/c86955577jn3Dvx1C57rW1Z/SK6ObMu19scHV3vEMezByLXsEqPJyxxR8hDFXVjZHgxJ1Qe2iSvfhuQBEgux5xJXchsvlKaYSmGOFiWrjKP4nySszuiVZUia+hGVGLuSVdlvuQALI914oPdJIc7IXlP+NECPjIjZI6ZxXEjgKLJqgCK/Aiuj8f5wYGgBGCAspUq8ozoBX4bl94n+IAjNMWiekgPACiweEcfBAWju8YgUkmz2z0VmPz3znODqIJNchiwxx0dcQuoE+ymImJaSoWxCxIJD7IcDgxTSTMDliIA275+W4fHhVLLkkUtMZ2CZhQUm5MUZq0iGvWkREz75JixYIxd/OYUMrk9u49mZjtDkGNUDyzWQHGtsG0QzrB7RBuaBVcgyARejE2HACuJqCFPzTqgtn4W0c2y6+qPCIvMQ0aKuQ3oDqq6wxF1HNIu/TMPyPM73OqQO6PzR9T6EdThP2Lzpj2jeMuRM4rikx30lMae3AWeKOlvyIznb27DsD0mzdbPvee3V00ZSUjw+lbKpeRJqy1UAyyTWAW48Y4geNNtKTQqJWMniVGMo35k44cIJPrTLt1/ED7uQtwndEWhiPrMsG0Tp1Jmpgo1PbMkONuXPgE/QmFsBi0+LHrGBtPXHkA+bR16DlOPqtsu8MKXyhixBAsMPi38plf6UvzSZcIJN+FJ0RUOSp+e9fguWQhOYV3Xxq3Bmpmh0krWxOTBdYo9sQj2Wqyr8Y+EEn+sG0VyKujqOEl/OZv65IH0d/8WLv07D2qw9M3P7YmBAD94nNjNSShUt3BGpob5PhrgbYlfyG6/MtStLdcqick75i5AUwZtKeHk+CXQvqYxPPg9Z+j/3jTQbc4YSqF/I65Bh26RHvEPPb1PH6pEDfTx0tYf6cEyYw6NjCeJ9SpMvQo7vqgHyPGJxNaXyjVajFKr+XQf3snBNpoISmPpb0yH9wuzpRfYSHqIMcU0svT4srKCAjJrn5KagFn8ehyQLLMuQ6+y1FK3a7G7VFSkm5wEYYbveLHekuN+uNTo3r0sJn6HLCckg4NqGlEKHXeQCam8rVUSkwxTELMhLkGWUrWazLmV8me2OWmvsSFlf5o7a7LYk8CXsKu12eUeRcj5ia6+jtKXF0LBQxZKvQml0d6W8vAJLXIU3iOUpEo5UmgyES1kJERAhFyuQYm6I7p6vl7eUutZsdWrNRrmOtvNpqvLlbk1Vqmi/AK2llDtISxQNWJsVUGduoYAvxE/wBSZr2heKf4/D6oxDZaaSNyDFfZkfsy/NPJ2YZ0eOWsYXTEISJyQhVETEYb8SCf78fLw5z/nIaB/uEEjNOAReh5WIoLmD8TdiUDjJOKeExHgoJL4+bcHnT16EyFr/JAZnZyebM8fwRUgfEffQ8tKq6Nm1y7qnF1twBU/7xEkZIx9NZKTfisOZmcJnDvQCwMAcjV2eOvFInGUUFrxolB27fn+C9QMnMcDtyUCTbKCfPmGmEcd8DSRjOCCmqzmuTfSjgdlnR01mM3WgDx2iLvPuttdLOZgD2QGOdIiDd/scxe9kIRdIzeXnYfFd/aGueeUWt0SO0lqi5HoN1hgE54iKjKHuOMxoGQaVaV+TdlW8HvkGrDKOIzybBqMh0WgB6LAjxx/ZCkXsCgAdkYNp4QXG1icmsXWXaOS9MWI13exph7pzWFijArbihZj6DAXuCJzCYGWzdxdB8iacZVLQIjhhzTgkxgNt7B7cLpwP6mcjbDNMhUK6iJDbsEgX42jwGMds2ewMzc8ITQELlpqCYRcrk81Uu6UoVTXnSdm2bOpQfcs3cI47VN/yzIvGMgw+Z6xaRZnmFKSQsQxjhwOEjzu4H85MjBVkXInMcpoVNY6Oo4xySOPoeJrtFqyNDkdRvpeDfDJCphlfZDW7TQxcq17hXBAe6JBL6P6GRkx9Hz1Gt/GHU7jIwEnXHmMVYRgK6yyzPvllWLH23zW4R2oo5mDwqPACM+8y7WD+2GJk+SWU7Rzq9oiFZAcXgxRe5FBOb3hkuiOc9wcHrifxMt8RjCakXQGJWiKk+AqD5ZEe1IuHAUVOlL7EEzckTjReh7MUhIFO7+muHkB/lqGp2XdFZ2ic9nj/2HesV/k4Kc1zrY8tOS9uwmLQ7+UscM/HhASToEqzStOXdxTMRTCNqtc6iqZ2G53ariIlAon9vWTmknS5+KsE5MOVmvx5OOdduDjE1d4f2GxDHun8cPT9Z02g2sR9CzHbDCLX4aJpYQDAwKHbPW1y1aXpBjqkY/GD0JfyrGm1BXhyQpQFdMp9Eye5L2bXR/oI/de1j1l+nlEzSFBoW74PlyZQbUj6unGssWScXRtohmUeDAeG67D4wGNcccJRZwz3EM9y8IqH/kTKL1ylpJTCvykpjX/T0gL+zUhZ/JuVoPiLDCwGKwNaaBnsbIyx6PmZJ9YRpQo9NDfTPA1XOSdNWKhbE572ZFTRkncg/a7DZKeZ7Fn3jwHZ99pMePZeW2s01d1yXRXs8jOQHOqPj8PHKyNhGFoem3hmDnBlcKkoajmIyk966xQ/p3ugRnqpGD4EGQnDCRZy++O+ZpOebrjh0J9jXSrrkd+ELF0jk63xCjPBq082gVhij0md8MvbkMYEs09cFvnzMy4/ZkjqMA5W0wrujzHKXIUUcw8ZQDiI9Ck5A8lKU6WRBkMLp2qtmlLBYFO8AWm+5jQK+auOTLwpZMS83u7ulqIiWxeWp+wkn4EVVekoDVpnad3Gm43mWw2UEyJ7IS2Gmbs0IbebXZWN5ttxkKatJp+D1U5Z3VE6Gq8dfdEoI9ixXWOl8UU4H6Qqb6OWNlNebuzQ+Dolz6tWE3SoYXlKvYql8xS52VCa21hBT2lnFWxaXoez01T801H3sJ6eUtxW1Ps1nHYGN68cHlHnbrMqZSMRpejgIRIoIz+Zu6TvxSEXKAtpPq8Ph9b7mj4c6I6IN8BIZUqZd3/PH+HT/48RHmN78YcxkKbrvanpx06a/ieydj+IQT5c5E0N7/n/6fD+EoelUGk37+jeg5VBjxyNLJe+NqHzPCTDQpEF5ehde0hDqTbhq1O2zdVaVdltNTFMVPa86KJKgynYxxi0WyBND4rGihnDwqC3CsuNJqaKmC8q29tKpdPm14E+uiPFgyb+fgJWZ4wEcw5eyPO7heiZOIOnRFPplm67ou7HEgGthNEf96strll5db88ofOb1s+CPLKcgTt4SN+wvDtZWu0nVcnrqZmujzZxd0+haeaRUCWvx0djWt+zxrQE4jgaLWKYBTCaDxHF7eQyeBErFEbjkMuwrPf7NhXuCeLlet4nM+D6Pch4dqAZLLUEVhTsDipO74dNrxOVDhxt8rYVx/6Mmhs4/rtA8Sdx3J7hV7oqZIYWOjnl4E/GV0556CvVBV71Odd/F4OMR8bjJTnS3UMmLrUVl2Iqa1M6FkYmcwFBp226rkOi99hdgHV0hCvpeOsq6BVBpo/Hrq0PhiFskmElr8MHb8IzntweFmfGIelNmNLszu+cAFRFv8db/H0cVrzbi55vrF0A3TQtN2iuqCtH+Epln0kNCFj/Vwxg0nWi3fAAFG+y7GGfX3gBJ9F7DnotuU/6A1O8p/CGdy2ZnDxPqZBxyJGOO8UQLyTRG9UnDb7UFtyqL6d4BTIelSZ+DUxXMGosQKKtdDBSYNlZrtfKbSm+9TVYRetPK9ySpq78nLuxd14VoL411M1+ybL7k88iaHXgBD6OGO3/Oxb7cTyx09r6WXx9hzO2vOmo5GBIDDp4+G4eLh27V4/pvQH24o+rvGB1rvqbRnxpkWjsddZP/SCj+Gd0EuUtWx+NiM2Sgu2h3i/+Ng5JekhTI5Qbe2iNFVhqdu4qqlZp1ru7DRpBFyHDcrUajZ/0QYG1RPqboMkepms1NN07ZZay7nUwM8RkL0xtqc1Oc6tL00PU4b0vaPVau4O5IVUrniE4aQFjxIXdcksrtxlBa25TlV0M6lpd2SlX9jA5RCWzIVKWjlP0VWuVjgRyAdYEwdfEenJsgpi8V6tKVVqUn4UCn+CbtZZ3uGj3y/Wu0paWaMbLeit3lcqbHjlffACrnnXF5QOzb0eY9xW4XFVaqlKh7yeY06sdnkK36XBqwjg8S/8UzdKDiK09/surMGLFL0yWkqW8TNUVoQoPwbbSKquoSUjAOeVg4X4ZVwNXcGnThQLdnJr3CMjf+Q5QiCM/8dOLwh9+Rb8eyG+cL6HTlSJj4M8ZZw7YdzlMtt/lRLTyRHYerX+cqdV34qhWv8vZfAzrIa3ePdA8ev8k9F4I6Q0sL9d8LqA50OlsqpDiap78+HmCVafmx0VtfglyhjUcH/F319MkU8uxAMx56Nm8uQPLD8ix9iGk/ElIWUK+ykRQC9aO9EeYhOBBRrTDsflAcwaPT5X2tz8mWGqzgsw1xnsXWdvIuWnC6iyfPO1LjPnccqUXccmAvqA3nqpvLof09AWckcBS2P9O1TSnC3rfk3E1X/Ge7k/yvmCdPJ/x+MM/F78L8kPdHuAxKqx2gg+FtHieKAlWZhXqRlsvvXNZLx3r9JuCV12iH5Xs8dXZRx/8JoPlNf3HlazPeUQWv4mHfYc4LibPqR7WwZ8T6ZBUotRSlZLYzepW8kcfnAeVgzz0hqgDAuiNCTrH0Rse+pr4wCqAvjZBZzj6moe+Ll6LA+jrE3SWo6976Bvik6kA+kZk3Dc89E3xxVgAfTMy7pse+pb4fC+AvhUZ9y0PfVt8ZxVA346M+7Z8iaPviA+iAug7DM1xd9bPQKpmYi6HJ3FMF6+GMX39DYDJ2tAcEQOQ6KU/scTwH/3p02iKiRcP+pvx2zFPwMbTCrj2tAKuP62AG08r4ObTCrj1tAJuP62AOx9VwGbypx+cT+6n+SdE/wUYnqXKwSwAAA==",
+ "view": {
+ "recursion": "bytesV2",
+ "enum": "number",
+ "yt_mode": true
+ }
+}
+@@;
+
+$udfParse = Udf(Protobuf::Parse, $config as TypeConfig);
+$udfSerialize = Udf(Protobuf::Serialize, $config as TypeConfig);
+
+SELECT
+ TestField,
+ $udfParse(TestField),
+ $udfSerialize($udfParse(TestField)),
+ Ensure("Success", StablePickle($udfParse(TestField)) == StablePickle($udfParse($udfSerialize($udfParse(TestField)))), "Fail"),
+FROM plato.Input;
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_no_ser.sql b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_no_ser.sql
index d75aa4af2fe..c582ddd2f71 100644
--- a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_no_ser.sql
+++ b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_no_ser.sql
@@ -31,6 +31,6 @@ $config = @@{
$udfPar = Udf(Protobuf::Parse, $config as TypeConfig);
$udfSer = Udf(Protobuf::Serialize, $config as TypeConfig);
-SELECT TestField, Ensure("Success", $udfPar(TestField) == $udfPar($udfSer($udfPar(TestField))), "Fail")
+SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField)), Ensure("Success", $udfPar(TestField) == $udfPar($udfSer($udfPar(TestField))), "Fail")
FROM plato.Input;
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_plain.in b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_plain.in
index f397ecd77cf..53e094854d2 100644
--- a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_plain.in
+++ b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_plain.in
@@ -1 +1,2 @@
{"TestField"="{\"inner\":{\"i\":{\"a\":\"hello\"}}}"};
+{"TestField"="{}"};
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_plain.sql b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_plain.sql
index 87e9fc6bd26..b42bf7995f0 100644
--- a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_plain.sql
+++ b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_plain.sql
@@ -106,8 +106,11 @@ $udfParPB = Udf(Protobuf::Parse, $configPB as TypeConfig);
$udfSerPB = Udf(Protobuf::Serialize, $configPB as TypeConfig);
SELECT TestField,
- Ensure("Success", $udfParNO(TestField) == $udfParNO($udfSerNO($udfParNO(TestField))), "Fail"),
- Ensure("Success", $udfParYT(TestField) == $udfParYT($udfSerYT($udfParYT(TestField))), "Fail"),
- Ensure("Success", $udfParPB(TestField) == $udfParPB($udfSerPB($udfParPB(TestField))), "Fail")
+ $udfParNO(TestField),
+ $udfSerNO($udfParNO(TestField)),
+ $udfParYT(TestField),
+ $udfSerYT($udfParYT(TestField)),
+ $udfParPB(TestField),
+ $udfSerPB($udfParPB(TestField)),
FROM plato.Input;
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_ser_pb.sql b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_ser_pb.sql
index 35945ffe7a2..d8f903d74a5 100644
--- a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_ser_pb.sql
+++ b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_ser_pb.sql
@@ -35,6 +35,6 @@ $config = @@{
$udfPar = Udf(Protobuf::Parse, $config as TypeConfig);
$udfSer = Udf(Protobuf::Serialize, $config as TypeConfig);
-SELECT TestField, Ensure("Success", $udfPar(TestField) == $udfPar($udfSer($udfPar(TestField))), "Fail")
+SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField)), Ensure("Success", $udfPar(TestField) == $udfPar($udfSer($udfPar(TestField))), "Fail")
FROM plato.Input;
diff --git a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_ser_yt.sql b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_ser_yt.sql
index 42312716e68..17e97cb9a18 100644
--- a/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_ser_yt.sql
+++ b/yql/essentials/udfs/common/protobuf/test/cases/yt_mode_ser_yt.sql
@@ -34,6 +34,6 @@ $config = @@{
$udfPar = Udf(Protobuf::Parse, $config as TypeConfig);
$udfSer = Udf(Protobuf::Serialize, $config as TypeConfig);
-SELECT TestField, Ensure("Success", $udfPar(TestField) == $udfPar($udfSer($udfPar(TestField))), "Fail")
+SELECT TestField, $udfPar(TestField), $udfSer($udfPar(TestField)), Ensure("Success", $udfPar(TestField) == $udfPar($udfSer($udfPar(TestField))), "Fail")
FROM plato.Input;
diff --git a/yql/essentials/udfs/language/yql/test/canondata/result.json b/yql/essentials/udfs/language/yql/test/canondata/result.json
index 38975dcc8d3..2a589612bf0 100644
--- a/yql/essentials/udfs/language/yql/test/canondata/result.json
+++ b/yql/essentials/udfs/language/yql/test/canondata/result.json
@@ -19,6 +19,11 @@
"uri": "file://test.test_ExtractInsertHints_/results.txt"
}
],
+ "test.test[ExtractKeywords]": [
+ {
+ "uri": "file://test.test_ExtractKeywords_/results.txt"
+ }
+ ],
"test.test[ExtractPragmas]": [
{
"uri": "file://test.test_ExtractPragmas_/results.txt"
diff --git a/yql/essentials/udfs/language/yql/test/canondata/test.test_ExtractKeywords_/results.txt b/yql/essentials/udfs/language/yql/test/canondata/test.test_ExtractKeywords_/results.txt
new file mode 100644
index 00000000000..d638a52c139
--- /dev/null
+++ b/yql/essentials/udfs/language/yql/test/canondata/test.test_ExtractKeywords_/results.txt
@@ -0,0 +1,78 @@
+[
+ {
+ "Write" = [
+ {
+ "Type" = [
+ "ListType";
+ [
+ "StructType";
+ [
+ [
+ "q";
+ [
+ "DataType";
+ "String"
+ ]
+ ];
+ [
+ "column1";
+ [
+ "OptionalType";
+ [
+ "ListType";
+ [
+ "TupleType";
+ [
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "DataType";
+ "String"
+ ];
+ [
+ "DataType";
+ "Uint64"
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ]
+ ];
+ "Data" = [
+ [
+ "select 1 as x union all select 2 as x";
+ [
+ [
+ [
+ "KEYWORD";
+ "ALL";
+ "1"
+ ];
+ [
+ "KEYWORD";
+ "AS";
+ "2"
+ ];
+ [
+ "KEYWORD";
+ "SELECT";
+ "2"
+ ];
+ [
+ "KEYWORD";
+ "UNION";
+ "1"
+ ]
+ ]
+ ]
+ ]
+ ]
+ }
+ ]
+ }
+] \ No newline at end of file
diff --git a/yql/essentials/udfs/language/yql/test/cases/ExtractKeywords.sql b/yql/essentials/udfs/language/yql/test/cases/ExtractKeywords.sql
new file mode 100644
index 00000000000..c3346ae3c27
--- /dev/null
+++ b/yql/essentials/udfs/language/yql/test/cases/ExtractKeywords.sql
@@ -0,0 +1,6 @@
+SELECT
+ q,ListSort(ListFilter(YqlLang::RuleFreq(q),($x)->($x.0 in ("KEYWORD"))))
+FROM (VALUES
+ ("select 1 as x union all select 2 as x")
+) AS a(q)
+order by q
diff --git a/yql/essentials/udfs/language/yql/ya.make b/yql/essentials/udfs/language/yql/ya.make
index 5c951c1cc16..e0c16d6f5da 100644
--- a/yql/essentials/udfs/language/yql/ya.make
+++ b/yql/essentials/udfs/language/yql/ya.make
@@ -23,6 +23,7 @@ PEERDIR(
yql/essentials/sql/v1/proto_parser/antlr4_ansi
yql/essentials/sql/pg_dummy
yql/essentials/sql/v1/format
+ yql/essentials/sql/v1/reflect
library/cpp/protobuf/util
)
diff --git a/yql/essentials/udfs/language/yql/yql_language_udf.cpp b/yql/essentials/udfs/language/yql/yql_language_udf.cpp
index 6460031a6ab..23bc092099c 100644
--- a/yql/essentials/udfs/language/yql/yql_language_udf.cpp
+++ b/yql/essentials/udfs/language/yql/yql_language_udf.cpp
@@ -2,6 +2,7 @@
#include <yql/essentials/sql/v1/context.h>
#include <yql/essentials/sql/v1/sql_translation.h>
+#include <yql/essentials/sql/v1/reflect/sql_reflect.h>
#include <yql/essentials/sql/v1/lexer/antlr4/lexer.h>
#include <yql/essentials/sql/v1/lexer/antlr4_ansi/lexer.h>
#include <yql/essentials/sql/v1/proto_parser/proto_parser.h>
@@ -31,11 +32,17 @@ public:
TRuleFreqVisitor(TContext& ctx)
: Translation(ctx)
{
+ KeywordNames = NSQLReflect::LoadLexerGrammar().KeywordNames;
}
void Visit(const NProtoBuf::Message& msg) {
const NProtoBuf::Descriptor* descr = msg.GetDescriptor();
if (descr == TToken::GetDescriptor()) {
+ const auto& token = dynamic_cast<const TToken&>(msg);
+ auto upper = to_upper(token.GetValue());
+ if (KeywordNames.contains(upper)) {
+ Freqs[std::make_pair("KEYWORD", upper)] += 1;
+ }
return;
} else if (descr == TRule_use_stmt::GetDescriptor()) {
VisitUseStmt(dynamic_cast<const TRule_use_stmt&>(msg));
@@ -285,6 +292,7 @@ private:
THashMap<std::pair<TString, TString>, ui64> Freqs;
TRuleFreqTranslation Translation;
+ THashSet<TString> KeywordNames;
};
SIMPLE_UDF(TObfuscate, TOptional<char*>(TAutoMap<char*>)) {
diff --git a/yql/tools/yqlrun/lib/yqlrun_lib.cpp b/yql/tools/yqlrun/lib/yqlrun_lib.cpp
index 0eba257d9a2..aad7657ea4a 100644
--- a/yql/tools/yqlrun/lib/yqlrun_lib.cpp
+++ b/yql/tools/yqlrun/lib/yqlrun_lib.cpp
@@ -107,14 +107,17 @@ TYqlRunTool::TYqlRunTool()
AddClusterMapping(TString{"plato"}, TString{YtProviderName});
AddProviderFactory([this]() -> NYql::TDataProviderInitializer {
- auto yqlNativeServices = NFile::TYtFileServices::Make(GetFuncRegistry().Get(), TablesMapping_, GetFileStorage(), TmpDir_, KeepTemp_, TablesDirMapping_);
- auto ytNativeGateway = CreateYtFileGateway(yqlNativeServices);
+ auto ytNativeGateway = CreateYtGateway();
auto optimizerFactory = CreateCboFactory();
return GetYtNativeDataProviderInitializer(ytNativeGateway, optimizerFactory, {});
});
SetPeepholePipelineConfigurator(&PEEPHOLE_CONFIG_INSTANCE);
+}
+IYtGateway::TPtr TYqlRunTool::CreateYtGateway() {
+ auto yqlNativeServices = NFile::TYtFileServices::Make(GetFuncRegistry().Get(), TablesMapping_, GetFileStorage(), TmpDir_, KeepTemp_, TablesDirMapping_);
+ return CreateYtFileGateway(yqlNativeServices);
}
IOptimizerFactory::TPtr TYqlRunTool::CreateCboFactory() {
diff --git a/yql/tools/yqlrun/lib/yqlrun_lib.h b/yql/tools/yqlrun/lib/yqlrun_lib.h
index be33617c62e..ab358e28dbb 100644
--- a/yql/tools/yqlrun/lib/yqlrun_lib.h
+++ b/yql/tools/yqlrun/lib/yqlrun_lib.h
@@ -1,5 +1,6 @@
#pragma once
+#include <yt/yql/providers/yt/provider/yql_yt_gateway.h>
#include <yql/essentials/core/cbo/cbo_optimizer_new.h>
#include <yql/essentials/tools/yql_facade_run/yql_facade_run.h>
@@ -15,6 +16,8 @@ public:
protected:
virtual IOptimizerFactory::TPtr CreateCboFactory();
+ virtual IYtGateway::TPtr CreateYtGateway();
+
private:
THashMap<TString, TString> TablesMapping_;
THashMap<TString, TString> TablesDirMapping_;