From fbad16f69d2ce04db585e69162595da94f043e96 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 29 Sep 2026 10:59:45 +0100 Subject: [PATCH 1/9] Add tests for QL extractor top-level modules Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- .../queries/style/DeadCode/DeadCode.expected | 10 ++--- ql/ql/test/queries/style/DeadCode/Foo.qll | 38 ++++++++++++++++++- .../queries/style/DeadCode/Parameterized.qll | 11 ++++++ 3 files changed, 52 insertions(+), 7 deletions(-) create mode 100644 ql/ql/test/queries/style/DeadCode/Parameterized.qll diff --git a/ql/ql/test/queries/style/DeadCode/DeadCode.expected b/ql/ql/test/queries/style/DeadCode/DeadCode.expected index 017cf546a92a..b70cd151517c 100644 --- a/ql/ql/test/queries/style/DeadCode/DeadCode.expected +++ b/ql/ql/test/queries/style/DeadCode/DeadCode.expected @@ -1,5 +1,5 @@ -| Foo.qll:4:21:4:25 | ClasslessPredicate dead1 | This code is never used, and it's not publicly exported. | -| Foo.qll:8:13:8:17 | ClasslessPredicate dead2 | This code is never used, and it's not publicly exported. | -| Foo.qll:46:16:46:21 | Module Input2 | This code is never used, and it's not publicly exported. | -| Foo.qll:56:16:56:17 | Module M2 | This code is never used, and it's not publicly exported. | -| Foo.qll:68:15:68:20 | Class CImpl2 | This code is never used, and it's not publicly exported. | +| Foo.qll:8:21:8:25 | ClasslessPredicate dead1 | This code is never used, and it's not publicly exported. | +| Foo.qll:50:16:50:21 | Module Input2 | This code is never used, and it's not publicly exported. | +| Foo.qll:62:16:62:17 | Module M2 | This code is never used, and it's not publicly exported. | +| Foo.qll:87:13:87:20 | ClasslessPredicate callback | This code is never used, and it's not publicly exported. | +| Foo.qll:102:15:102:20 | Class CImpl2 | This code is never used, and it's not publicly exported. | diff --git a/ql/ql/test/queries/style/DeadCode/Foo.qll b/ql/ql/test/queries/style/DeadCode/Foo.qll index 32fab335b780..7563ae1d4c1f 100644 --- a/ql/ql/test/queries/style/DeadCode/Foo.qll +++ b/ql/ql/test/queries/style/DeadCode/Foo.qll @@ -1,3 +1,7 @@ +overlay[local] +module; + +private import Parameterized as External import ql private module Mixed { @@ -5,7 +9,7 @@ private module Mixed { predicate alive1() { none() } - predicate dead2() { none() } // $ Alert + predicate dead2() { none() } // $ MISSING: Alert } predicate usesAlive() { Mixed::alive1() } @@ -43,7 +47,9 @@ private module Input1 implements InputSig { predicate foo() { any() } } -private module Input2 implements InputSig { // $ Alert +private module Input2 // $ Alert + implements InputSig +{ predicate foo() { any() } } @@ -57,6 +63,34 @@ private module M2 = ParameterizedModule; // $ Alert import ParameterizedModule +signature module DefaultInputSig { + default predicate callback() { none() } +} + +module UsesDefaultInput { + predicate useCallback() { Input::callback() } +} + +private module DefaultInput implements DefaultInputSig { + predicate callback() { any() } +} + +module UsedDefaultInput = UsesDefaultInput; + +predicate usesDefaultInput() { UsedDefaultInput::useCallback() } + +module Empty { } + +private module OuterInstance = External::Outer; + +private module NestedInput implements OuterInstance::InputSig { + predicate callback() { any() } // $ SPURIOUS: Alert +} + +private module NestedUse = OuterInstance::Make; + +predicate usesNestedDefaultInput() { NestedUse::useCallback() } + private module MImpl { } module MPublic = MImpl; diff --git a/ql/ql/test/queries/style/DeadCode/Parameterized.qll b/ql/ql/test/queries/style/DeadCode/Parameterized.qll new file mode 100644 index 000000000000..f061d17c6f2b --- /dev/null +++ b/ql/ql/test/queries/style/DeadCode/Parameterized.qll @@ -0,0 +1,11 @@ +signature module EmptySig { } + +module Outer { + signature module InputSig { + default predicate callback() { none() } + } + + module Make { + predicate useCallback() { Input::callback() } + } +} From 6777b135cbfa1f30f702babee3df6b5a185d2e0f Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 29 Sep 2026 11:01:41 +0100 Subject: [PATCH 2/9] Update QL extractor for top-level modules Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- ql/Cargo.lock | 10 ++++++---- ql/extractor/Cargo.toml | 4 ++-- ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll | 4 ++-- ql/ql/src/ql.dbscheme | 8 ++++++-- ql/ql/test/queries/style/DeadCode/DeadCode.expected | 2 +- ql/ql/test/queries/style/DeadCode/Foo.qll | 4 ++-- 6 files changed, 19 insertions(+), 13 deletions(-) diff --git a/ql/Cargo.lock b/ql/Cargo.lock index c5889398d383..7d52df74d85d 100644 --- a/ql/Cargo.lock +++ b/ql/Cargo.lock @@ -646,6 +646,7 @@ version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" dependencies = [ + "indexmap", "itoa", "memchr", "serde", @@ -794,13 +795,14 @@ dependencies = [ [[package]] name = "tree-sitter" -version = "0.24.4" +version = "0.26.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67baf55e7e1b6806063b1e51041069c90afff16afcbbccd278d899f9d84bca4" +checksum = "17ebdd3a5a7e28a1890b876fdbd0c3c0fe0a6336cffaa104f11b9f720c9daa29" dependencies = [ "cc", "regex", "regex-syntax", + "serde_json", "streaming-iterator", "tree-sitter-language", ] @@ -841,8 +843,8 @@ dependencies = [ [[package]] name = "tree-sitter-ql" -version = "0.23.0" -source = "git+https://github.com/tree-sitter/tree-sitter-ql.git?rev=c73c31c89cb0019ef56fe8bc1723e7c36e0be607#c73c31c89cb0019ef56fe8bc1723e7c36e0be607" +version = "0.23.1" +source = "git+https://github.com/tree-sitter/tree-sitter-ql.git?rev=5b8ee9adaa1f2a1ea958064b61f8feb0a5a886c0#5b8ee9adaa1f2a1ea958064b61f8feb0a5a886c0" dependencies = [ "cc", "tree-sitter-language", diff --git a/ql/extractor/Cargo.toml b/ql/extractor/Cargo.toml index 637a4bf5f3b6..0a1b17d9c920 100644 --- a/ql/extractor/Cargo.toml +++ b/ql/extractor/Cargo.toml @@ -7,8 +7,8 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -tree-sitter = ">= 0.23.0" -tree-sitter-ql = { git = "https://github.com/tree-sitter/tree-sitter-ql.git", rev = "c73c31c89cb0019ef56fe8bc1723e7c36e0be607"} +tree-sitter = ">= 0.26.0" +tree-sitter-ql = { git = "https://github.com/tree-sitter/tree-sitter-ql.git", rev = "5b8ee9adaa1f2a1ea958064b61f8feb0a5a886c0"} tree-sitter-ql-dbscheme = { git = "https://github.com/tree-sitter/tree-sitter-ql-dbscheme.git", rev = "1980b4b6998a1138d326f863e6168f0f2c0c544d"} tree-sitter-blame = {path = "../buramu/tree-sitter-blame"} tree-sitter-json = {git = "https://github.com/tree-sitter/tree-sitter-json.git", rev = "8bfdb43f47ad805bb1ce093203cfcbaa8ed2c571"} diff --git a/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll b/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll index 51424106719d..3edb8d427b8a 100644 --- a/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll +++ b/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll @@ -807,7 +807,7 @@ module QL { final F::SignatureExpr getAnImplements() { result = this.getImplements(_) } /** Gets the node corresponding to the field `name`. */ - final F::ModuleName getName() { ql_module_def(this, result) } + final F::ModuleName getName() { ql_module_name(this, result) } /** Gets the node corresponding to the field `parameter`. */ final F::ModuleParam getParameter(int i) { ql_module_parameter(this, i, result) } @@ -824,7 +824,7 @@ module QL { /** Gets a field or child node of this node. */ final override F::AstNode getAFieldOrChild() { ql_module_implements(this, _, result) or - ql_module_def(this, result) or + ql_module_name(this, result) or ql_module_parameter(this, _, result) or ql_module_child(this, _, result) } diff --git a/ql/ql/src/ql.dbscheme b/ql/ql/src/ql.dbscheme index c50cdd7429a4..b246d6ce970b 100644 --- a/ql/ql/src/ql.dbscheme +++ b/ql/ql/src/ql.dbscheme @@ -555,6 +555,11 @@ ql_module_implements( unique int implements: @ql_signature_expr ref ); +ql_module_name( + unique int ql_module: @ql_module ref, + unique int name: @ql_module_name ref +); + #keyset[ql_module, index] ql_module_parameter( int ql_module: @ql_module ref, @@ -572,8 +577,7 @@ ql_module_child( ); ql_module_def( - unique int id: @ql_module, - int name: @ql_module_name ref + unique int id: @ql_module ); ql_module_alias_body_def( diff --git a/ql/ql/test/queries/style/DeadCode/DeadCode.expected b/ql/ql/test/queries/style/DeadCode/DeadCode.expected index b70cd151517c..472be0a3eaa6 100644 --- a/ql/ql/test/queries/style/DeadCode/DeadCode.expected +++ b/ql/ql/test/queries/style/DeadCode/DeadCode.expected @@ -1,5 +1,5 @@ | Foo.qll:8:21:8:25 | ClasslessPredicate dead1 | This code is never used, and it's not publicly exported. | +| Foo.qll:12:13:12:17 | ClasslessPredicate dead2 | This code is never used, and it's not publicly exported. | | Foo.qll:50:16:50:21 | Module Input2 | This code is never used, and it's not publicly exported. | | Foo.qll:62:16:62:17 | Module M2 | This code is never used, and it's not publicly exported. | -| Foo.qll:87:13:87:20 | ClasslessPredicate callback | This code is never used, and it's not publicly exported. | | Foo.qll:102:15:102:20 | Class CImpl2 | This code is never used, and it's not publicly exported. | diff --git a/ql/ql/test/queries/style/DeadCode/Foo.qll b/ql/ql/test/queries/style/DeadCode/Foo.qll index 7563ae1d4c1f..4fd72f0a2bdf 100644 --- a/ql/ql/test/queries/style/DeadCode/Foo.qll +++ b/ql/ql/test/queries/style/DeadCode/Foo.qll @@ -9,7 +9,7 @@ private module Mixed { predicate alive1() { none() } - predicate dead2() { none() } // $ MISSING: Alert + predicate dead2() { none() } // $ Alert } predicate usesAlive() { Mixed::alive1() } @@ -84,7 +84,7 @@ module Empty { } private module OuterInstance = External::Outer; private module NestedInput implements OuterInstance::InputSig { - predicate callback() { any() } // $ SPURIOUS: Alert + predicate callback() { any() } } private module NestedUse = OuterInstance::Make; From 0906e3d7dc90b086559dd218d339490b942ffd9c Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 29 Sep 2026 12:17:37 +0100 Subject: [PATCH 3/9] Clear ql.dbscheme.stats Many languages clear this and fix any bad join orders that arise, to avoid having to update it with every dbscheme change. --- ql/ql/src/ql.dbscheme.stats | 22487 +--------------------------------- 1 file changed, 2 insertions(+), 22485 deletions(-) diff --git a/ql/ql/src/ql.dbscheme.stats b/ql/ql/src/ql.dbscheme.stats index 9d7f44eaa4b1..82714bfe1d07 100644 --- a/ql/ql/src/ql.dbscheme.stats +++ b/ql/ql/src/ql.dbscheme.stats @@ -1,22487 +1,4 @@ - - @blame_blame_entry - 0 - - - @blame_blame_info - 0 - - - @blame_file_entry - 0 - - - @blame_reserved_word - 0 - - - @blame_token_date - 0 - - - @blame_token_filename - 0 - - - @blame_token_number - 0 - - - @dbscheme_annotation - 30564 - - - @dbscheme_args_annotation - 30555 - - - @dbscheme_branch - 151025 - - - @dbscheme_case_decl - 5423 - - - @dbscheme_col_type - 341399 - - - @dbscheme_column - 341399 - - - @dbscheme_dbscheme - 686 - - - @dbscheme_entry - 230044 - - - @dbscheme_repr_type - 341399 - - - @dbscheme_reserved_word - 1756569 - - - @dbscheme_table - 146537 - - - @dbscheme_table_name - 146537 - - - @dbscheme_token_annot_name - 30564 - - - @dbscheme_token_block_comment - 22060 - - - @dbscheme_token_boolean - 2146 - - - @dbscheme_token_date - 1170 - - - @dbscheme_token_dbtype - 750840 - - - @dbscheme_token_float - 2962 - - - @dbscheme_token_int - 350777 - - - @dbscheme_token_integer - 158986 - - - @dbscheme_token_line_comment - 62355 - - - @dbscheme_token_qldoc - 10956 - - - @dbscheme_token_ref - 281648 - - - @dbscheme_token_simple_id - 543204 - - - @dbscheme_token_string - 67865 - - - @dbscheme_token_unique - 102289 - - - @dbscheme_token_varchar - 7961 - - - @dbscheme_union_decl - 67798 - - - @diagnostic_debug - 0 - - - @diagnostic_error - 0 - - - @diagnostic_info - 0 - - - @diagnostic_warning - 5 - - - @file - 12283 - - - @folder - 4402 - - - @json_array - 2026 - - - @json_document - 324 - - - @json_object - 5034 - - - @json_pair - 12461 - - - @json_reserved_word - 82515 - - - @json_string__ - 22176 - - - @json_token_comment - 19 - - - @json_token_false - 607 - - - @json_token_null - 248 - - - @json_token_number - 71 - - - @json_token_string_content - 22171 - - - @json_token_true - 978 - - - @location_default - 9617371 - - - @ql_add_expr - 13786 - - - @ql_aggregate - 9053 - - - @ql_annot_arg - 4043 - - - @ql_annotation - 65278 - - - @ql_arityless_predicate_expr - 58107 - - - @ql_as_expr - 20508 - - - @ql_as_exprs - 8493 - - - @ql_body - 65826 - - - @ql_bool - 4274 - - - @ql_call_body - 57368 - - - @ql_call_or_unqual_agg_expr - 57368 - - - @ql_charpred - 12088 - - - @ql_class_member - 79133 - - - @ql_classless_predicate - 23253 - - - @ql_comp_term - 140334 - - - @ql_conjunction - 76308 - - - @ql_dataclass - 22563 - - - @ql_datatype - 548 - - - @ql_datatype_branch - 2719 - - - @ql_datatype_branches - 548 - - - @ql_disjunction - 44890 - - - @ql_expr_aggregate_body - 1216 - - - @ql_expr_annotation - 601 - - - @ql_field - 3721 - - - @ql_full_aggregate_body - 6356 - - - @ql_higher_order_term - 77 - - - @ql_if_term - 2953 - - - @ql_implication - 101 - - - @ql_import_directive - 25764 - - - @ql_import_module_expr - 25764 - - - @ql_in_expr - 1037 - - - @ql_instance_of - 15913 - - - @ql_literal - 109390 - - - @ql_member_predicate - 43952 - - - @ql_module - 4567 - - - @ql_module_alias_body - 917 - - - @ql_module_expr - 76399 - - - @ql_module_instantiation - 1740 - - - @ql_module_member - 118178 - - - @ql_module_name - 7606 - - - @ql_module_param - 266 - - - @ql_mul_expr - 585 - - - @ql_negation - 11727 - - - @ql_order_by - 1067 - - - @ql_order_bys - 661 - - - @ql_par_expr - 5799 - - - @ql_predicate_alias_body - 372 - - - @ql_predicate_expr - 739 - - - @ql_prefix_cast - 0 - - - @ql_ql - 11167 - - - @ql_qualified_expr - 165157 - - - @ql_qualified_rhs - 165157 - - - @ql_quantified - 24227 - - - @ql_range - 365 - - - @ql_reserved_word - 1875319 - - - @ql_select - 5989 - - - @ql_set_literal - 4014 - - - @ql_signature_expr - 3709 - - - @ql_special_call - 4424 - - - @ql_super_ref - 2901 - - - @ql_token_addop - 13786 - - - @ql_token_agg_id - 9053 - - - @ql_token_annot_name - 66480 - - - @ql_token_block_comment - 992 - - - @ql_token_class_name - 204253 - - - @ql_token_closure - 2234 - - - @ql_token_compop - 140334 - - - @ql_token_dbtype - 3766 - - - @ql_token_direction - 205 - - - @ql_token_empty - 2344 - - - @ql_token_false - 1973 - - - @ql_token_float - 305 - - - @ql_token_integer - 21612 - - - @ql_token_line_comment - 20888 - - - @ql_token_literal_id - 58184 - - - @ql_token_mulop - 585 - - - @ql_token_predicate - 26200 - - - @ql_token_predicate_name - 221079 - - - @ql_token_primitive_type - 47956 - - - @ql_token_qldoc - 55406 - - - @ql_token_quantifier - 24227 - - - @ql_token_result - 52493 - - - @ql_token_simple_id - 512064 - - - @ql_token_special_id - 4424 - - - @ql_token_string - 83938 - - - @ql_token_super - 2901 - - - @ql_token_this - 50826 - - - @ql_token_true - 2301 - - - @ql_token_underscore - 17184 - - - @ql_token_unop - 1158 - - - @ql_type_alias_body - 817 - - - @ql_type_expr - 218057 - - - @ql_type_union_body - 253 - - - @ql_unary_expr - 1158 - - - @ql_unqual_agg_body - 0 - - - @ql_var_decl - 114137 - - - @ql_var_name - 380908 - - - @ql_variable - 369462 - - - @yaml_alias_node - 0 - - - @yaml_error - 0 - - - @yaml_mapping_node - 186 - - - @yaml_scalar_node - 1481 - - - @yaml_sequence_node - 59 - - - - blame_ast_node_location - 0 - - - node - 0 - - - loc - 0 - - - - - node - loc - - - 12 - - - 1 - 2 - 1 - - - - - - - loc - node - - - 12 - - - - - - - - blame_ast_node_parent - 0 - - - node - 0 - - - parent - 0 - - - parent_index - 0 - - - - - node - parent - - - 12 - - - 1 - 2 - 1 - - - - - - - node - parent_index - - - 12 - - - 1 - 2 - 1 - - - - - - - parent - node - - - 12 - - - - - - parent - parent_index - - - 12 - - - - - - parent_index - node - - - 12 - - - - - - parent_index - parent - - - 12 - - - - - - - - blame_blame_entry_def - 0 - - - id - 0 - - - date__ - 0 - - - - - id - date__ - - - 12 - - - 1 - 2 - 1 - - - - - - - date__ - id - - - 12 - - - - - - - - blame_blame_entry_line - 0 - - - blame_blame_entry - 0 - - - index - 0 - - - line - 0 - - - - - blame_blame_entry - index - - - 12 - - - - - - blame_blame_entry - line - - - 12 - - - - - - index - blame_blame_entry - - - 12 - - - - - - index - line - - - 12 - - - - - - line - blame_blame_entry - - - 12 - - - 1 - 2 - 1 - - - - - - - line - index - - - 12 - - - 1 - 2 - 1 - - - - - - - - - blame_blame_info_def - 0 - - - id - 0 - - - today - 0 - - - - - id - today - - - 12 - - - 1 - 2 - 1 - - - - - - - today - id - - - 12 - - - - - - - - blame_blame_info_file_entry - 0 - - - blame_blame_info - 0 - - - index - 0 - - - file_entry - 0 - - - - - blame_blame_info - index - - - 12 - - - - - - blame_blame_info - file_entry - - - 12 - - - - - - index - blame_blame_info - - - 12 - - - - - - index - file_entry - - - 12 - - - - - - file_entry - blame_blame_info - - - 12 - - - 1 - 2 - 1 - - - - - - - file_entry - index - - - 12 - - - 1 - 2 - 1 - - - - - - - - - blame_file_entry_blame_entry - 0 - - - blame_file_entry - 0 - - - index - 0 - - - blame_entry - 0 - - - - - blame_file_entry - index - - - 12 - - - - - - blame_file_entry - blame_entry - - - 12 - - - - - - index - blame_file_entry - - - 12 - - - - - - index - blame_entry - - - 12 - - - - - - blame_entry - blame_file_entry - - - 12 - - - 1 - 2 - 1 - - - - - - - blame_entry - index - - - 12 - - - 1 - 2 - 1 - - - - - - - - - blame_file_entry_def - 0 - - - id - 0 - - - file_name - 0 - - - - - id - file_name - - - 12 - - - 1 - 2 - 1 - - - - - - - file_name - id - - - 12 - - - - - - - - blame_tokeninfo - 0 - - - id - 0 - - - kind - 0 - - - value - 0 - - - - - id - kind - - - 12 - - - 1 - 2 - 1 - - - - - - - id - value - - - 12 - - - 1 - 2 - 1 - - - - - - - kind - id - - - 12 - - - - - - kind - value - - - 12 - - - - - - value - id - - - 12 - - - - - - value - kind - - - 12 - - - - - - - - containerparent - 16683 - - - parent - 4402 - - - child - 16683 - - - - - parent - child - - - 12 - - - 1 - 2 - 2157 - - - 2 - 3 - 978 - - - 3 - 4 - 375 - - - 4 - 6 - 348 - - - 6 - 15 - 339 - - - 15 - 255 - 205 - - - - - - - child - parent - - - 12 - - - 1 - 2 - 16683 - - - - - - - - - dbscheme_annotation_args_annotation - 30555 - - - dbscheme_annotation - 30555 - - - args_annotation - 30555 - - - - - dbscheme_annotation - args_annotation - - - 12 - - - 1 - 2 - 30555 - - - - - - - args_annotation - dbscheme_annotation - - - 12 - - - 1 - 2 - 30555 - - - - - - - - - dbscheme_annotation_def - 30564 - - - id - 30564 - - - - - - dbscheme_annotation_simple_annotation - 9 - - - dbscheme_annotation - 9 - - - simple_annotation - 9 - - - - - dbscheme_annotation - simple_annotation - - - 12 - - - 1 - 2 - 9 - - - - - - - simple_annotation - dbscheme_annotation - - - 12 - - - 1 - 2 - 9 - - - - - - - - - dbscheme_args_annotation_child - 49845 - - - dbscheme_args_annotation - 30555 - - - index - 3 - - - child - 49845 - - - - - dbscheme_args_annotation - index - - - 12 - - - 1 - 2 - 12292 - - - 2 - 3 - 17236 - - - 3 - 4 - 1027 - - - - - - - dbscheme_args_annotation - child - - - 12 - - - 1 - 2 - 12292 - - - 2 - 3 - 17236 - - - 3 - 4 - 1027 - - - - - - - index - dbscheme_args_annotation - - - 12 - - - 1027 - 1028 - 1 - - - 18263 - 18264 - 1 - - - 30555 - 30556 - 1 - - - - - - - index - child - - - 12 - - - 1027 - 1028 - 1 - - - 18263 - 18264 - 1 - - - 30555 - 30556 - 1 - - - - - - - child - dbscheme_args_annotation - - - 12 - - - 1 - 2 - 49845 - - - - - - - child - index - - - 12 - - - 1 - 2 - 49845 - - - - - - - - - dbscheme_args_annotation_def - 30555 - - - id - 30555 - - - name - 30555 - - - - - id - name - - - 12 - - - 1 - 2 - 30555 - - - - - - - name - id - - - 12 - - - 1 - 2 - 30555 - - - - - - - - - dbscheme_ast_node_location - 5985718 - - - node - 5985718 - - - loc - 4903745 - - - - - node - loc - - - 12 - - - 1 - 2 - 5985718 - - - - - - - loc - node - - - 12 - - - 1 - 2 - 3821772 - - - 2 - 3 - 1081973 - - - - - - - - - dbscheme_ast_node_parent - 5900617 - - - node - 5900617 - - - parent - 1833365 - - - parent_index - 501 - - - - - node - parent - - - 12 - - - 1 - 2 - 5900617 - - - - - - - node - parent_index - - - 12 - - - 1 - 2 - 5900617 - - - - - - - parent - node - - - 12 - - - 1 - 2 - 1081973 - - - 2 - 4 - 151168 - - - 4 - 5 - 13080 - - - 5 - 6 - 341594 - - - 6 - 8 - 149771 - - - 8 - 502 - 95779 - - - - - - - parent - parent_index - - - 12 - - - 1 - 2 - 1081973 - - - 2 - 4 - 151168 - - - 4 - 5 - 13080 - - - 5 - 6 - 341594 - - - 6 - 8 - 149771 - - - 8 - 502 - 95779 - - - - - - - parent_index - node - - - 12 - - - 3 - 140 - 38 - - - 147 - 386 - 38 - - - 387 - 491 - 31 - - - 491 - 492 - 49 - - - 499 - 712 - 38 - - - 717 - 841 - 42 - - - 842 - 1054 - 38 - - - 1055 - 1190 - 44 - - - 1192 - 1357 - 41 - - - 1362 - 1575 - 39 - - - 1582 - 2577 - 38 - - - 2626 - 5260 - 38 - - - 5283 - 1833366 - 27 - - - - - - - parent_index - parent - - - 12 - - - 3 - 140 - 38 - - - 147 - 386 - 38 - - - 387 - 491 - 31 - - - 491 - 492 - 49 - - - 499 - 712 - 38 - - - 717 - 841 - 42 - - - 842 - 1054 - 38 - - - 1055 - 1190 - 44 - - - 1192 - 1357 - 41 - - - 1362 - 1575 - 39 - - - 1582 - 2577 - 38 - - - 2626 - 5260 - 38 - - - 5283 - 1833366 - 27 - - - - - - - - - dbscheme_branch_child - 302050 - - - dbscheme_branch - 151025 - - - index - 2 - - - child - 302050 - - - - - dbscheme_branch - index - - - 12 - - - 2 - 3 - 151025 - - - - - - - dbscheme_branch - child - - - 12 - - - 2 - 3 - 151025 - - - - - - - index - dbscheme_branch - - - 12 - - - 151025 - 151026 - 2 - - - - - - - index - child - - - 12 - - - 151025 - 151026 - 2 - - - - - - - child - dbscheme_branch - - - 12 - - - 1 - 2 - 302050 - - - - - - - child - index - - - 12 - - - 1 - 2 - 302050 - - - - - - - - - dbscheme_branch_def - 151025 - - - id - 151025 - - - - - - dbscheme_branch_qldoc - 0 - - - dbscheme_branch - 0 - - - qldoc - 0 - - - - - dbscheme_branch - qldoc - - - 12 - - - 1 - 2 - 1 - - - - - - - qldoc - dbscheme_branch - - - 12 - - - 1 - 2 - 1 - - - - - - - - - dbscheme_case_decl_child - 151025 - - - dbscheme_case_decl - 5423 - - - index - 218 - - - child - 151025 - - - - - dbscheme_case_decl - index - - - 12 - - - 1 - 2 - 1 - - - 2 - 3 - 841 - - - 3 - 4 - 605 - - - 4 - 5 - 691 - - - 5 - 6 - 456 - - - 6 - 8 - 218 - - - 9 - 11 - 408 - - - 11 - 18 - 438 - - - 21 - 29 - 467 - - - 29 - 38 - 436 - - - 38 - 117 - 407 - - - 118 - 219 - 455 - - - - - - - dbscheme_case_decl - child - - - 12 - - - 1 - 2 - 1 - - - 2 - 3 - 841 - - - 3 - 4 - 605 - - - 4 - 5 - 691 - - - 5 - 6 - 456 - - - 6 - 8 - 218 - - - 9 - 11 - 408 - - - 11 - 18 - 438 - - - 21 - 29 - 467 - - - 29 - 38 - 436 - - - 38 - 117 - 407 - - - 118 - 219 - 455 - - - - - - - index - dbscheme_case_decl - - - 12 - - - 156 - 157 - 20 - - - 159 - 160 - 1 - - - 219 - 220 - 27 - - - 227 - 294 - 11 - - - 311 - 312 - 32 - - - 330 - 494 - 17 - - - 521 - 544 - 13 - - - 544 - 548 - 9 - - - 581 - 584 - 15 - - - 598 - 601 - 17 - - - 643 - 795 - 17 - - - 802 - 1764 - 17 - - - 1764 - 2830 - 17 - - - 3285 - 5424 - 5 - - - - - - - index - child - - - 12 - - - 156 - 157 - 20 - - - 159 - 160 - 1 - - - 219 - 220 - 27 - - - 227 - 294 - 11 - - - 311 - 312 - 32 - - - 330 - 494 - 17 - - - 521 - 544 - 13 - - - 544 - 548 - 9 - - - 581 - 584 - 15 - - - 598 - 601 - 17 - - - 643 - 795 - 17 - - - 802 - 1764 - 17 - - - 1764 - 2830 - 17 - - - 3285 - 5424 - 5 - - - - - - - child - dbscheme_case_decl - - - 12 - - - 1 - 2 - 151025 - - - - - - - child - index - - - 12 - - - 1 - 2 - 151025 - - - - - - - - - dbscheme_case_decl_def - 5423 - - - id - 5423 - - - base - 5423 - - - discriminator - 5423 - - - - - id - base - - - 12 - - - 1 - 2 - 5423 - - - - - - - id - discriminator - - - 12 - - - 1 - 2 - 5423 - - - - - - - base - id - - - 12 - - - 1 - 2 - 5423 - - - - - - - base - discriminator - - - 12 - - - 1 - 2 - 5423 - - - - - - - discriminator - id - - - 12 - - - 1 - 2 - 5423 - - - - - - - discriminator - base - - - 12 - - - 1 - 2 - 5423 - - - - - - - - - dbscheme_col_type_def - 341399 - - - id - 341399 - - - child - 341399 - - - - - id - child - - - 12 - - - 1 - 2 - 341399 - - - - - - - child - id - - - 12 - - - 1 - 2 - 341399 - - - - - - - - - dbscheme_column_def - 341399 - - - id - 341399 - - - col_name - 341399 - - - col_type - 341399 - - - repr_type - 341399 - - - - - id - col_name - - - 12 - - - 1 - 2 - 341399 - - - - - - - id - col_type - - - 12 - - - 1 - 2 - 341399 - - - - - - - id - repr_type - - - 12 - - - 1 - 2 - 341399 - - - - - - - col_name - id - - - 12 - - - 1 - 2 - 341399 - - - - - - - col_name - col_type - - - 12 - - - 1 - 2 - 341399 - - - - - - - col_name - repr_type - - - 12 - - - 1 - 2 - 341399 - - - - - - - col_type - id - - - 12 - - - 1 - 2 - 341399 - - - - - - - col_type - col_name - - - 12 - - - 1 - 2 - 341399 - - - - - - - col_type - repr_type - - - 12 - - - 1 - 2 - 341399 - - - - - - - repr_type - id - - - 12 - - - 1 - 2 - 341399 - - - - - - - repr_type - col_name - - - 12 - - - 1 - 2 - 341399 - - - - - - - repr_type - col_type - - - 12 - - - 1 - 2 - 341399 - - - - - - - - - dbscheme_column_is_ref - 281648 - - - dbscheme_column - 281648 - - - is_ref - 281648 - - - - - dbscheme_column - is_ref - - - 12 - - - 1 - 2 - 281648 - - - - - - - is_ref - dbscheme_column - - - 12 - - - 1 - 2 - 281648 - - - - - - - - - dbscheme_column_is_unique - 102289 - - - dbscheme_column - 102289 - - - is_unique - 102289 - - - - - dbscheme_column - is_unique - - - 12 - - - 1 - 2 - 102289 - - - - - - - is_unique - dbscheme_column - - - 12 - - - 1 - 2 - 102289 - - - - - - - - - dbscheme_column_qldoc - 670 - - - dbscheme_column - 670 - - - qldoc - 670 - - - - - dbscheme_column - qldoc - - - 12 - - - 1 - 2 - 670 - - - - - - - qldoc - dbscheme_column - - - 12 - - - 1 - 2 - 670 - - - - - - - - - dbscheme_dbscheme_child - 230044 - - - dbscheme_dbscheme - 685 - - - index - 501 - - - child - 230044 - - - - - dbscheme_dbscheme - index - - - 12 - - - 2 - 147 - 56 - - - 148 - 205 - 55 - - - 205 - 275 - 54 - - - 275 - 287 - 52 - - - 287 - 306 - 62 - - - 307 - 312 - 52 - - - 313 - 320 - 56 - - - 320 - 418 - 55 - - - 418 - 460 - 58 - - - 460 - 464 - 46 - - - 465 - 469 - 59 - - - 470 - 478 - 57 - - - 478 - 502 - 23 - - - - - - - dbscheme_dbscheme - child - - - 12 - - - 2 - 147 - 56 - - - 148 - 205 - 55 - - - 205 - 275 - 54 - - - 275 - 287 - 52 - - - 287 - 306 - 62 - - - 307 - 312 - 52 - - - 313 - 320 - 56 - - - 320 - 418 - 55 - - - 418 - 460 - 58 - - - 460 - 464 - 46 - - - 465 - 469 - 59 - - - 470 - 478 - 57 - - - 478 - 502 - 23 - - - - - - - index - dbscheme_dbscheme - - - 12 - - - 3 - 140 - 38 - - - 147 - 230 - 38 - - - 231 - 272 - 31 - - - 272 - 273 - 70 - - - 279 - 469 - 38 - - - 470 - 561 - 37 - - - 562 - 563 - 40 - - - 563 - 601 - 40 - - - 601 - 664 - 41 - - - 664 - 682 - 27 - - - 682 - 683 - 76 - - - 683 - 686 - 25 - - - - - - - index - child - - - 12 - - - 3 - 140 - 38 - - - 147 - 230 - 38 - - - 231 - 272 - 31 - - - 272 - 273 - 70 - - - 279 - 469 - 38 - - - 470 - 561 - 37 - - - 562 - 563 - 40 - - - 563 - 601 - 40 - - - 601 - 664 - 41 - - - 664 - 682 - 27 - - - 682 - 683 - 76 - - - 683 - 686 - 25 - - - - - - - child - dbscheme_dbscheme - - - 12 - - - 1 - 2 - 230044 - - - - - - - child - index - - - 12 - - - 1 - 2 - 230044 - - - - - - - - - dbscheme_dbscheme_def - 686 - - - id - 686 - - - - - - dbscheme_entry_def - 230044 - - - id - 230044 - - - child - 230044 - - - - - id - child - - - 12 - - - 1 - 2 - 230044 - - - - - - - child - id - - - 12 - - - 1 - 2 - 230044 - - - - - - - - - dbscheme_repr_type_child - 349360 - - - dbscheme_repr_type - 341399 - - - index - 2 - - - child - 349360 - - - - - dbscheme_repr_type - index - - - 12 - - - 1 - 2 - 333438 - - - 2 - 3 - 7961 - - - - - - - dbscheme_repr_type - child - - - 12 - - - 1 - 2 - 333438 - - - 2 - 3 - 7961 - - - - - - - index - dbscheme_repr_type - - - 12 - - - 7961 - 7962 - 1 - - - 341399 - 341400 - 1 - - - - - - - index - child - - - 12 - - - 7961 - 7962 - 1 - - - 341399 - 341400 - 1 - - - - - - - child - dbscheme_repr_type - - - 12 - - - 1 - 2 - 349360 - - - - - - - child - index - - - 12 - - - 1 - 2 - 349360 - - - - - - - - - dbscheme_repr_type_def - 341399 - - - id - 341399 - - - - - - dbscheme_table_child - 371963 - - - dbscheme_table - 146537 - - - index - 10 - - - child - 371963 - - - - - dbscheme_table - index - - - 12 - - - 1 - 2 - 32738 - - - 2 - 3 - 55828 - - - 3 - 4 - 24047 - - - 4 - 5 - 21522 - - - 5 - 7 - 11405 - - - 7 - 11 - 997 - - - - - - - dbscheme_table - child - - - 12 - - - 1 - 2 - 32738 - - - 2 - 3 - 55828 - - - 3 - 4 - 24047 - - - 4 - 5 - 21522 - - - 5 - 7 - 11405 - - - 7 - 11 - 997 - - - - - - - index - dbscheme_table - - - 12 - - - 25 - 26 - 1 - - - 181 - 182 - 1 - - - 337 - 338 - 1 - - - 997 - 998 - 1 - - - 5790 - 5791 - 1 - - - 12402 - 12403 - 1 - - - 33924 - 33925 - 1 - - - 57971 - 57972 - 1 - - - 113799 - 113800 - 1 - - - 146537 - 146538 - 1 - - - - - - - index - child - - - 12 - - - 25 - 26 - 1 - - - 181 - 182 - 1 - - - 337 - 338 - 1 - - - 997 - 998 - 1 - - - 5790 - 5791 - 1 - - - 12402 - 12403 - 1 - - - 33924 - 33925 - 1 - - - 57971 - 57972 - 1 - - - 113799 - 113800 - 1 - - - 146537 - 146538 - 1 - - - - - - - child - dbscheme_table - - - 12 - - - 1 - 2 - 371963 - - - - - - - child - index - - - 12 - - - 1 - 2 - 371963 - - - - - - - - - dbscheme_table_def - 146537 - - - id - 146537 - - - table_name - 146537 - - - - - id - table_name - - - 12 - - - 1 - 2 - 146537 - - - - - - - table_name - id - - - 12 - - - 1 - 2 - 146537 - - - - - - - - - dbscheme_table_name_def - 146537 - - - id - 146537 - - - child - 146537 - - - - - id - child - - - 12 - - - 1 - 2 - 146537 - - - - - - - child - id - - - 12 - - - 1 - 2 - 146537 - - - - - - - - - dbscheme_tokeninfo - 4152352 - - - id - 4152352 - - - kind - 16 - - - value - 7232 - - - - - id - kind - - - 12 - - - 1 - 2 - 4152352 - - - - - - - id - value - - - 12 - - - 1 - 2 - 4152352 - - - - - - - kind - id - - - 12 - - - 1170 - 1171 - 1 - - - 2146 - 2147 - 1 - - - 2962 - 2963 - 1 - - - 7961 - 7962 - 1 - - - 10956 - 10957 - 1 - - - 22060 - 22061 - 1 - - - 30564 - 30565 - 1 - - - 62355 - 62356 - 1 - - - 67865 - 67866 - 1 - - - 102289 - 102290 - 1 - - - 158986 - 158987 - 1 - - - 281648 - 281649 - 1 - - - 350777 - 350778 - 1 - - - 543204 - 543205 - 1 - - - 750840 - 750841 - 1 - - - 1756569 - 1756570 - 1 - - - - - - - kind - value - - - 12 - - - 1 - 2 - 8 - - - 2 - 3 - 1 - - - 13 - 14 - 1 - - - 100 - 101 - 1 - - - 207 - 208 - 1 - - - 303 - 304 - 1 - - - 616 - 617 - 1 - - - 2655 - 2656 - 1 - - - 3328 - 3329 - 1 - - - - - - - value - id - - - 12 - - - 1 - 3 - 619 - - - 3 - 13 - 575 - - - 13 - 29 - 422 - - - 29 - 38 - 546 - - - 38 - 56 - 638 - - - 56 - 77 - 597 - - - 77 - 116 - 541 - - - 116 - 149 - 543 - - - 149 - 156 - 481 - - - 156 - 199 - 544 - - - 202 - 312 - 540 - - - 312 - 416 - 543 - - - 416 - 1685 - 543 - - - 1697 - 354482 - 100 - - - - - - - value - kind - - - 12 - - - 1 - 2 - 7232 - - - - - - - - - dbscheme_union_decl_child - 276677 - - - dbscheme_union_decl - 67798 - - - index - 105 - - - child - 276677 - - - - - dbscheme_union_decl - index - - - 12 - - - 1 - 2 - 2870 - - - 2 - 3 - 33104 - - - 3 - 4 - 10107 - - - 4 - 5 - 6309 - - - 5 - 6 - 4592 - - - 6 - 9 - 5609 - - - 9 - 69 - 5085 - - - 85 - 106 - 122 - - - - - - - dbscheme_union_decl - child - - - 12 - - - 1 - 2 - 2870 - - - 2 - 3 - 33104 - - - 3 - 4 - 10107 - - - 4 - 5 - 6309 - - - 5 - 6 - 4592 - - - 6 - 9 - 5609 - - - 9 - 69 - 5085 - - - 85 - 106 - 122 - - - - - - - index - dbscheme_union_decl - - - 12 - - - 11 - 44 - 7 - - - 45 - 46 - 11 - - - 59 - 103 - 2 - - - 122 - 123 - 17 - - - 123 - 124 - 6 - - - 126 - 166 - 8 - - - 173 - 319 - 6 - - - 327 - 328 - 8 - - - 328 - 544 - 8 - - - 647 - 671 - 8 - - - 699 - 1414 - 8 - - - 1501 - 5208 - 8 - - - 6334 - 67799 - 8 - - - - - - - index - child - - - 12 - - - 11 - 44 - 7 - - - 45 - 46 - 11 - - - 59 - 103 - 2 - - - 122 - 123 - 17 - - - 123 - 124 - 6 - - - 126 - 166 - 8 - - - 173 - 319 - 6 - - - 327 - 328 - 8 - - - 328 - 544 - 8 - - - 647 - 671 - 8 - - - 699 - 1414 - 8 - - - 1501 - 5208 - 8 - - - 6334 - 67799 - 8 - - - - - - - child - dbscheme_union_decl - - - 12 - - - 1 - 2 - 276677 - - - - - - - child - index - - - 12 - - - 1 - 2 - 276677 - - - - - - - - - dbscheme_union_decl_def - 67798 - - - id - 67798 - - - base - 67798 - - - - - id - base - - - 12 - - - 1 - 2 - 67798 - - - - - - - base - id - - - 12 - - - 1 - 2 - 67798 - - - - - - - - - diagnostics - 5 - - - id - 5 - - - severity - 1 - - - error_tag - 1 - - - error_message - 2 - - - full_error_message - 5 - - - location - 5 - - - - - id - severity - - - 12 - - - 1 - 2 - 5 - - - - - - - id - error_tag - - - 12 - - - 1 - 2 - 5 - - - - - - - id - error_message - - - 12 - - - 1 - 2 - 5 - - - - - - - id - full_error_message - - - 12 - - - 1 - 2 - 5 - - - - - - - id - location - - - 12 - - - 1 - 2 - 5 - - - - - - - severity - id - - - 12 - - - 5 - 6 - 1 - - - - - - - severity - error_tag - - - 12 - - - 1 - 2 - 1 - - - - - - - severity - error_message - - - 12 - - - 2 - 3 - 1 - - - - - - - severity - full_error_message - - - 12 - - - 5 - 6 - 1 - - - - - - - severity - location - - - 12 - - - 5 - 6 - 1 - - - - - - - error_tag - id - - - 12 - - - 5 - 6 - 1 - - - - - - - error_tag - severity - - - 12 - - - 1 - 2 - 1 - - - - - - - error_tag - error_message - - - 12 - - - 2 - 3 - 1 - - - - - - - error_tag - full_error_message - - - 12 - - - 5 - 6 - 1 - - - - - - - error_tag - location - - - 12 - - - 5 - 6 - 1 - - - - - - - error_message - id - - - 12 - - - 1 - 2 - 1 - - - 4 - 5 - 1 - - - - - - - error_message - severity - - - 12 - - - 1 - 2 - 2 - - - - - - - error_message - error_tag - - - 12 - - - 1 - 2 - 2 - - - - - - - error_message - full_error_message - - - 12 - - - 1 - 2 - 1 - - - 4 - 5 - 1 - - - - - - - error_message - location - - - 12 - - - 1 - 2 - 1 - - - 4 - 5 - 1 - - - - - - - full_error_message - id - - - 12 - - - 1 - 2 - 5 - - - - - - - full_error_message - severity - - - 12 - - - 1 - 2 - 5 - - - - - - - full_error_message - error_tag - - - 12 - - - 1 - 2 - 5 - - - - - - - full_error_message - error_message - - - 12 - - - 1 - 2 - 5 - - - - - - - full_error_message - location - - - 12 - - - 1 - 2 - 5 - - - - - - - location - id - - - 12 - - - 1 - 2 - 5 - - - - - - - location - severity - - - 12 - - - 1 - 2 - 5 - - - - - - - location - error_tag - - - 12 - - - 1 - 2 - 5 - - - - - - - location - error_message - - - 12 - - - 1 - 2 - 5 - - - - - - - location - full_error_message - - - 12 - - - 1 - 2 - 5 - - - - - - - - - files - 12283 - - - id - 12283 - - - name - 12283 - - - - - id - name - - - 12 - - - 1 - 2 - 12283 - - - - - - - name - id - - - 12 - - - 1 - 2 - 12283 - - - - - - - - - folders - 4402 - - - id - 4402 - - - name - 4402 - - - - - id - name - - - 12 - - - 1 - 2 - 4402 - - - - - - - name - id - - - 12 - - - 1 - 2 - 4402 - - - - - - - - - json_array_child - 5897 - - - json_array - 1962 - - - index - 611 - - - child - 5897 - - - - - json_array - index - - - 12 - - - 1 - 2 - 935 - - - 2 - 3 - 623 - - - 3 - 4 - 179 - - - 4 - 7 - 149 - - - 7 - 612 - 76 - - - - - - - json_array - child - - - 12 - - - 1 - 2 - 935 - - - 2 - 3 - 623 - - - 3 - 4 - 179 - - - 4 - 7 - 149 - - - 7 - 612 - 76 - - - - - - - index - json_array - - - 12 - - - 1 - 2 - 364 - - - 2 - 3 - 26 - - - 3 - 4 - 58 - - - 4 - 5 - 61 - - - 5 - 8 - 48 - - - 8 - 61 - 46 - - - 69 - 1963 - 8 - - - - - - - index - child - - - 12 - - - 1 - 2 - 364 - - - 2 - 3 - 26 - - - 3 - 4 - 58 - - - 4 - 5 - 61 - - - 5 - 8 - 48 - - - 8 - 61 - 46 - - - 69 - 1963 - 8 - - - - - - - child - json_array - - - 12 - - - 1 - 2 - 5897 - - - - - - - child - index - - - 12 - - - 1 - 2 - 5897 - - - - - - - - - json_array_def - 2026 - - - id - 2026 - - - - - - json_ast_node_location - 148630 - - - node - 148630 - - - loc - 148504 - - - - - node - loc - - - 12 - - - 1 - 2 - 148630 - - - - - - - loc - node - - - 12 - - - 1 - 2 - 148378 - - - 2 - 3 - 126 - - - - - - - - - json_ast_node_parent - 148287 - - - node - 148287 - - - parent - 42018 - - - parent_index - 1223 - - - - - node - parent - - - 12 - - - 1 - 2 - 148287 - - - - - - - node - parent_index - - - 12 - - - 1 - 2 - 148287 - - - - - - - parent - node - - - 12 - - - 1 - 3 - 608 - - - 3 - 4 - 36317 - - - 4 - 6 - 3406 - - - 7 - 1224 - 1687 - - - - - - - parent - parent_index - - - 12 - - - 1 - 3 - 608 - - - 3 - 4 - 36317 - - - 4 - 6 - 3406 - - - 7 - 1224 - 1687 - - - - - - - parent_index - node - - - 12 - - - 1 - 2 - 728 - - - 2 - 3 - 52 - - - 3 - 4 - 116 - - - 4 - 6 - 54 - - - 6 - 7 - 68 - - - 7 - 12 - 96 - - - 12 - 213 - 92 - - - 226 - 42019 - 17 - - - - - - - parent_index - parent - - - 12 - - - 1 - 2 - 728 - - - 2 - 3 - 52 - - - 3 - 4 - 116 - - - 4 - 6 - 54 - - - 6 - 7 - 68 - - - 7 - 12 - 96 - - - 12 - 213 - 92 - - - 226 - 42019 - 17 - - - - - - - - - json_document_child - 321 - - - json_document - 321 - - - index - 1 - - - child - 321 - - - - - json_document - index - - - 12 - - - 1 - 2 - 321 - - - - - - - json_document - child - - - 12 - - - 1 - 2 - 321 - - - - - - - index - json_document - - - 12 - - - 321 - 322 - 1 - - - - - - - index - child - - - 12 - - - 321 - 322 - 1 - - - - - - - child - json_document - - - 12 - - - 1 - 2 - 321 - - - - - - - child - index - - - 12 - - - 1 - 2 - 321 - - - - - - - - - json_document_def - 324 - - - id - 324 - - - - - - json_object_child - 12461 - - - json_object - 4817 - - - index - 159 - - - child - 12461 - - - - - json_object - index - - - 12 - - - 1 - 2 - 754 - - - 2 - 3 - 2780 - - - 3 - 4 - 781 - - - 4 - 11 - 445 - - - 11 - 160 - 57 - - - - - - - json_object - child - - - 12 - - - 1 - 2 - 754 - - - 2 - 3 - 2780 - - - 3 - 4 - 781 - - - 4 - 11 - 445 - - - 11 - 160 - 57 - - - - - - - index - json_object - - - 12 - - - 1 - 2 - 23 - - - 2 - 3 - 65 - - - 3 - 4 - 2 - - - 4 - 5 - 20 - - - 5 - 6 - 11 - - - 6 - 9 - 12 - - - 9 - 10 - 14 - - - 13 - 4818 - 12 - - - - - - - index - child - - - 12 - - - 1 - 2 - 23 - - - 2 - 3 - 65 - - - 3 - 4 - 2 - - - 4 - 5 - 20 - - - 5 - 6 - 11 - - - 6 - 9 - 12 - - - 9 - 10 - 14 - - - 13 - 4818 - 12 - - - - - - - child - json_object - - - 12 - - - 1 - 2 - 12461 - - - - - - - child - index - - - 12 - - - 1 - 2 - 12461 - - - - - - - - - json_object_def - 5034 - - - id - 5034 - - - - - - json_pair_def - 12461 - - - id - 12461 - - - key__ - 12461 - - - value - 12461 - - - - - id - key__ - - - 12 - - - 1 - 2 - 12461 - - - - - - - id - value - - - 12 - - - 1 - 2 - 12461 - - - - - - - key__ - id - - - 12 - - - 1 - 2 - 12461 - - - - - - - key__ - value - - - 12 - - - 1 - 2 - 12461 - - - - - - - value - id - - - 12 - - - 1 - 2 - 12461 - - - - - - - value - key__ - - - 12 - - - 1 - 2 - 12461 - - - - - - - - - json_string_child - 22171 - - - json_string__ - 22171 - - - child - 22171 - - - - - json_string__ - child - - - 12 - - - 1 - 2 - 22171 - - - - - - - child - json_string__ - - - 12 - - - 1 - 2 - 22171 - - - - - - - - - json_string_def - 22176 - - - id - 22176 - - - - - - json_tokeninfo - 106609 - - - id - 106609 - - - kind - 7 - - - value - 4324 - - - - - id - kind - - - 12 - - - 1 - 2 - 106609 - - - - - - - id - value - - - 12 - - - 1 - 2 - 106609 - - - - - - - kind - id - - - 12 - - - 19 - 20 - 1 - - - 71 - 72 - 1 - - - 248 - 249 - 1 - - - 607 - 608 - 1 - - - 978 - 979 - 1 - - - 22171 - 22172 - 1 - - - 82515 - 82516 - 1 - - - - - - - kind - value - - - 12 - - - 1 - 2 - 3 - - - 7 - 8 - 1 - - - 16 - 17 - 1 - - - 29 - 30 - 1 - - - 4277 - 4278 - 1 - - - - - - - value - id - - - 12 - - - 1 - 2 - 3160 - - - 2 - 3 - 406 - - - 3 - 5 - 365 - - - 5 - 62 - 326 - - - 71 - 44353 - 67 - - - - - - - value - kind - - - 12 - - - 1 - 2 - 4316 - - - 2 - 3 - 8 - - - - - - - - - locations_default - 9617371 - - - id - 9617371 - - - file - 12283 - - - beginLine - 11293 - - - beginColumn - 1385 - - - endLine - 11293 - - - endColumn - 1389 - - - - - id - file - - - 12 - - - 1 - 2 - 9617371 - - - - - - - id - beginLine - - - 12 - - - 1 - 2 - 9617371 - - - - - - - id - beginColumn - - - 12 - - - 1 - 2 - 9617371 - - - - - - - id - endLine - - - 12 - - - 1 - 2 - 9617371 - - - - - - - id - endColumn - - - 12 - - - 1 - 2 - 9617371 - - - - - - - file - id - - - 12 - - - 1 - 21 - 930 - - - 21 - 32 - 950 - - - 32 - 40 - 1024 - - - 40 - 54 - 930 - - - 54 - 72 - 952 - - - 72 - 89 - 965 - - - 89 - 119 - 929 - - - 119 - 164 - 934 - - - 164 - 243 - 923 - - - 243 - 392 - 923 - - - 392 - 748 - 923 - - - 748 - 2678 - 922 - - - 2683 - 9950 - 923 - - - 9962 - 54160 - 55 - - - - - - - file - beginLine - - - 12 - - - 1 - 3 - 434 - - - 3 - 4 - 775 - - - 4 - 5 - 1146 - - - 5 - 6 - 995 - - - 6 - 7 - 691 - - - 7 - 9 - 988 - - - 9 - 11 - 919 - - - 11 - 15 - 992 - - - 15 - 22 - 1018 - - - 22 - 34 - 975 - - - 34 - 61 - 935 - - - 61 - 143 - 922 - - - 143 - 975 - 923 - - - 977 - 11284 - 570 - - - - - - - file - beginColumn - - - 12 - - - 1 - 11 - 1028 - - - 11 - 17 - 920 - - - 17 - 21 - 913 - - - 21 - 26 - 1027 - - - 26 - 32 - 987 - - - 32 - 39 - 994 - - - 39 - 47 - 1014 - - - 47 - 57 - 1003 - - - 57 - 66 - 957 - - - 66 - 77 - 1001 - - - 77 - 87 - 934 - - - 87 - 99 - 1024 - - - 99 - 512 - 481 - - - - - - - file - endLine - - - 12 - - - 1 - 3 - 434 - - - 3 - 4 - 774 - - - 4 - 5 - 1147 - - - 5 - 6 - 995 - - - 6 - 7 - 690 - - - 7 - 9 - 989 - - - 9 - 11 - 919 - - - 11 - 15 - 992 - - - 15 - 22 - 1018 - - - 22 - 34 - 975 - - - 34 - 61 - 935 - - - 61 - 143 - 922 - - - 143 - 975 - 923 - - - 977 - 11284 - 570 - - - - - - - file - endColumn - - - 12 - - - 1 - 14 - 1008 - - - 14 - 21 - 1081 - - - 21 - 25 - 958 - - - 25 - 30 - 950 - - - 30 - 37 - 999 - - - 37 - 44 - 1031 - - - 44 - 52 - 923 - - - 52 - 62 - 946 - - - 62 - 73 - 1042 - - - 73 - 83 - 1006 - - - 83 - 93 - 934 - - - 93 - 104 - 945 - - - 104 - 523 - 460 - - - - - - - beginLine - id - - - 12 - - - 1 - 2 - 1130 - - - 4 - 5 - 1128 - - - 5 - 11 - 801 - - - 11 - 16 - 994 - - - 16 - 22 - 854 - - - 22 - 30 - 890 - - - 30 - 41 - 877 - - - 41 - 56 - 860 - - - 56 - 92 - 854 - - - 92 - 1472 - 847 - - - 1499 - 2520 - 847 - - - 2527 - 5340 - 847 - - - 5348 - 46386 - 364 - - - - - - - beginLine - file - - - 12 - - - 1 - 2 - 2258 - - - 2 - 3 - 654 - - - 3 - 4 - 1191 - - - 4 - 5 - 1015 - - - 5 - 6 - 658 - - - 6 - 7 - 532 - - - 7 - 8 - 712 - - - 8 - 10 - 1014 - - - 10 - 109 - 852 - - - 109 - 400 - 847 - - - 400 - 626 - 849 - - - 626 - 12065 - 711 - - - - - - - beginLine - beginColumn - - - 12 - - - 1 - 2 - 1130 - - - 3 - 4 - 1454 - - - 4 - 8 - 977 - - - 8 - 11 - 746 - - - 11 - 15 - 1029 - - - 15 - 20 - 966 - - - 20 - 27 - 942 - - - 27 - 37 - 854 - - - 37 - 57 - 853 - - - 57 - 84 - 882 - - - 84 - 101 - 895 - - - 101 - 397 - 565 - - - - - - - beginLine - endLine - - - 12 - - - 1 - 2 - 4809 - - - 2 - 3 - 1797 - - - 3 - 4 - 961 - - - 4 - 6 - 940 - - - 6 - 10 - 986 - - - 10 - 16 - 862 - - - 16 - 45 - 848 - - - 45 - 5676 - 90 - - - - - - - beginLine - endColumn - - - 12 - - - 1 - 2 - 1130 - - - 3 - 4 - 1128 - - - 4 - 8 - 710 - - - 8 - 10 - 808 - - - 10 - 14 - 1024 - - - 14 - 19 - 1007 - - - 19 - 26 - 963 - - - 26 - 34 - 848 - - - 34 - 49 - 857 - - - 49 - 77 - 860 - - - 77 - 97 - 895 - - - 97 - 118 - 857 - - - 118 - 400 - 206 - - - - - - - beginColumn - id - - - 12 - - - 1 - 4 - 102 - - - 4 - 5 - 121 - - - 5 - 8 - 65 - - - 8 - 9 - 122 - - - 9 - 11 - 110 - - - 11 - 12 - 73 - - - 12 - 13 - 114 - - - 13 - 18 - 106 - - - 18 - 21 - 115 - - - 21 - 32 - 118 - - - 32 - 61 - 104 - - - 61 - 255 - 104 - - - 261 - 113805 - 104 - - - 114086 - 1069778 - 27 - - - - - - - beginColumn - file - - - 12 - - - 1 - 3 - 118 - - - 3 - 4 - 13 - - - 4 - 5 - 119 - - - 5 - 8 - 75 - - - 8 - 9 - 119 - - - 9 - 11 - 105 - - - 11 - 12 - 73 - - - 12 - 13 - 111 - - - 13 - 19 - 122 - - - 19 - 22 - 111 - - - 22 - 33 - 108 - - - 33 - 66 - 107 - - - 68 - 683 - 104 - - - 732 - 12283 - 100 - - - - - - - beginColumn - beginLine - - - 12 - - - 1 - 2 - 223 - - - 2 - 3 - 307 - - - 3 - 4 - 135 - - - 4 - 5 - 140 - - - 5 - 6 - 78 - - - 6 - 8 - 101 - - - 8 - 13 - 120 - - - 13 - 32 - 104 - - - 32 - 2144 - 104 - - - 2186 - 11292 - 73 - - - - - - - beginColumn - endLine - - - 12 - - - 1 - 2 - 223 - - - 2 - 3 - 307 - - - 3 - 4 - 135 - - - 4 - 5 - 140 - - - 5 - 6 - 78 - - - 6 - 8 - 100 - - - 8 - 13 - 121 - - - 13 - 32 - 104 - - - 32 - 2158 - 104 - - - 2226 - 11292 - 73 - - - - - - - beginColumn - endColumn - - - 12 - - - 1 - 2 - 689 - - - 2 - 3 - 323 - - - 3 - 4 - 118 - - - 4 - 7 - 117 - - - 7 - 88 - 104 - - - 88 - 266 - 34 - - - - - - - endLine - id - - - 12 - - - 1 - 2 - 1129 - - - 4 - 5 - 1 - - - 5 - 6 - 1128 - - - 6 - 12 - 762 - - - 12 - 17 - 961 - - - 17 - 23 - 922 - - - 23 - 31 - 919 - - - 31 - 43 - 899 - - - 43 - 58 - 879 - - - 58 - 100 - 855 - - - 100 - 1721 - 847 - - - 1722 - 2799 - 847 - - - 2805 - 6136 - 847 - - - 6136 - 46393 - 297 - - - - - - - endLine - file - - - 12 - - - 1 - 2 - 2258 - - - 2 - 3 - 654 - - - 3 - 4 - 1191 - - - 4 - 5 - 1017 - - - 5 - 6 - 652 - - - 6 - 7 - 522 - - - 7 - 8 - 735 - - - 8 - 10 - 1005 - - - 10 - 109 - 850 - - - 109 - 400 - 850 - - - 400 - 626 - 849 - - - 626 - 6687 - 710 - - - - - - - endLine - beginLine - - - 12 - - - 1 - 2 - 1130 - - - 2 - 3 - 3437 - - - 3 - 4 - 1709 - - - 4 - 5 - 1095 - - - 5 - 6 - 700 - - - 6 - 9 - 918 - - - 9 - 14 - 918 - - - 14 - 25 - 868 - - - 25 - 60 - 518 - - - - - - - endLine - beginColumn - - - 12 - - - 1 - 2 - 1129 - - - 2 - 3 - 1 - - - 3 - 4 - 1454 - - - 4 - 8 - 926 - - - 8 - 11 - 708 - - - 11 - 15 - 1045 - - - 15 - 20 - 968 - - - 20 - 27 - 954 - - - 27 - 37 - 880 - - - 37 - 57 - 867 - - - 57 - 84 - 872 - - - 84 - 100 - 847 - - - 100 - 397 - 642 - - - - - - - endLine - endColumn - - - 12 - - - 1 - 2 - 1129 - - - 2 - 3 - 1 - - - 3 - 4 - 1128 - - - 4 - 8 - 718 - - - 8 - 10 - 801 - - - 10 - 13 - 814 - - - 13 - 17 - 919 - - - 17 - 23 - 965 - - - 23 - 31 - 959 - - - 31 - 44 - 879 - - - 44 - 70 - 851 - - - 70 - 93 - 878 - - - 93 - 109 - 849 - - - 109 - 400 - 402 - - - - - - - endColumn - id - - - 12 - - - 1 - 4 - 95 - - - 4 - 5 - 120 - - - 5 - 8 - 64 - - - 8 - 9 - 120 - - - 9 - 11 - 105 - - - 11 - 12 - 76 - - - 12 - 13 - 113 - - - 13 - 18 - 109 - - - 18 - 21 - 111 - - - 21 - 31 - 106 - - - 31 - 55 - 106 - - - 55 - 191 - 105 - - - 192 - 56899 - 105 - - - 58047 - 407640 - 54 - - - - - - - endColumn - file - - - 12 - - - 1 - 3 - 110 - - - 3 - 4 - 15 - - - 4 - 5 - 119 - - - 5 - 8 - 74 - - - 8 - 9 - 116 - - - 9 - 11 - 104 - - - 11 - 12 - 73 - - - 12 - 13 - 114 - - - 13 - 19 - 126 - - - 19 - 23 - 115 - - - 23 - 34 - 114 - - - 34 - 72 - 105 - - - 72 - 1551 - 105 - - - 1727 - 11266 - 99 - - - - - - - endColumn - beginLine - - - 12 - - - 1 - 2 - 219 - - - 2 - 3 - 306 - - - 3 - 4 - 134 - - - 4 - 5 - 142 - - - 5 - 6 - 74 - - - 6 - 8 - 103 - - - 8 - 13 - 120 - - - 13 - 33 - 108 - - - 33 - 2296 - 105 - - - 2325 - 10163 - 78 - - - - - - - endColumn - beginColumn - - - 12 - - - 1 - 2 - 676 - - - 2 - 3 - 276 - - - 3 - 4 - 124 - - - 4 - 7 - 112 - - - 7 - 36 - 105 - - - 36 - 105 - 96 - - - - - - - endColumn - endLine - - - 12 - - - 1 - 2 - 219 - - - 2 - 3 - 306 - - - 3 - 4 - 134 - - - 4 - 5 - 142 - - - 5 - 6 - 74 - - - 6 - 8 - 103 - - - 8 - 13 - 121 - - - 13 - 33 - 107 - - - 33 - 2249 - 105 - - - 2292 - 10163 - 78 - - - - - - - - - ql_add_expr_def - 13786 - - - id - 13786 - - - left - 13786 - - - right - 13786 - - - child - 13786 - - - - - id - left - - - 12 - - - 1 - 2 - 13786 - - - - - - - id - right - - - 12 - - - 1 - 2 - 13786 - - - - - - - id - child - - - 12 - - - 1 - 2 - 13786 - - - - - - - left - id - - - 12 - - - 1 - 2 - 13786 - - - - - - - left - right - - - 12 - - - 1 - 2 - 13786 - - - - - - - left - child - - - 12 - - - 1 - 2 - 13786 - - - - - - - right - id - - - 12 - - - 1 - 2 - 13786 - - - - - - - right - left - - - 12 - - - 1 - 2 - 13786 - - - - - - - right - child - - - 12 - - - 1 - 2 - 13786 - - - - - - - child - id - - - 12 - - - 1 - 2 - 13786 - - - - - - - child - left - - - 12 - - - 1 - 2 - 13786 - - - - - - - child - right - - - 12 - - - 1 - 2 - 13786 - - - - - - - - - ql_aggregate_child - 16852 - - - ql_aggregate - 9053 - - - index - 3 - - - child - 16852 - - - - - ql_aggregate - index - - - 12 - - - 1 - 2 - 1481 - - - 2 - 3 - 7345 - - - 3 - 4 - 227 - - - - - - - ql_aggregate - child - - - 12 - - - 1 - 2 - 1481 - - - 2 - 3 - 7345 - - - 3 - 4 - 227 - - - - - - - index - ql_aggregate - - - 12 - - - 227 - 228 - 1 - - - 7572 - 7573 - 1 - - - 9053 - 9054 - 1 - - - - - - - index - child - - - 12 - - - 227 - 228 - 1 - - - 7572 - 7573 - 1 - - - 9053 - 9054 - 1 - - - - - - - child - ql_aggregate - - - 12 - - - 1 - 2 - 16852 - - - - - - - child - index - - - 12 - - - 1 - 2 - 16852 - - - - - - - - - ql_aggregate_def - 9053 - - - id - 9053 - - - - - - ql_annot_arg_def - 4043 - - - id - 4043 - - - child - 4043 - - - - - id - child - - - 12 - - - 1 - 2 - 4043 - - - - - - - child - id - - - 12 - - - 1 - 2 - 4043 - - - - - - - - - ql_annotation_args - 4365 - - - ql_annotation - 3721 - - - index - 9 - - - args - 4365 - - - - - ql_annotation - index - - - 12 - - - 1 - 2 - 3448 - - - 3 - 10 - 273 - - - - - - - ql_annotation - args - - - 12 - - - 1 - 2 - 3448 - - - 3 - 10 - 273 - - - - - - - index - ql_annotation - - - 12 - - - 1 - 2 - 2 - - - 15 - 16 - 2 - - - 33 - 34 - 2 - - - 273 - 274 - 2 - - - 3721 - 3722 - 1 - - - - - - - index - args - - - 12 - - - 1 - 2 - 2 - - - 15 - 16 - 2 - - - 33 - 34 - 2 - - - 273 - 274 - 2 - - - 3721 - 3722 - 1 - - - - - - - args - ql_annotation - - - 12 - - - 1 - 2 - 4365 - - - - - - - args - index - - - 12 - - - 1 - 2 - 4365 - - - - - - - - - ql_annotation_def - 65278 - - - id - 65278 - - - name - 65278 - - - - - id - name - - - 12 - - - 1 - 2 - 65278 - - - - - - - name - id - - - 12 - - - 1 - 2 - 65278 - - - - - - - - - ql_arityless_predicate_expr_def - 58107 - - - id - 58107 - - - name - 58107 - - - - - id - name - - - 12 - - - 1 - 2 - 58107 - - - - - - - name - id - - - 12 - - - 1 - 2 - 58107 - - - - - - - - - ql_arityless_predicate_expr_qualifier - 10163 - - - ql_arityless_predicate_expr - 10163 - - - qualifier - 10163 - - - - - ql_arityless_predicate_expr - qualifier - - - 12 - - - 1 - 2 - 10163 - - - - - - - qualifier - ql_arityless_predicate_expr - - - 12 - - - 1 - 2 - 10163 - - - - - - - - - ql_as_expr_child - 20772 - - - ql_as_expr - 20508 - - - index - 2 - - - child - 20772 - - - - - ql_as_expr - index - - - 12 - - - 1 - 2 - 20244 - - - 2 - 3 - 264 - - - - - - - ql_as_expr - child - - - 12 - - - 1 - 2 - 20244 - - - 2 - 3 - 264 - - - - - - - index - ql_as_expr - - - 12 - - - 264 - 265 - 1 - - - 20508 - 20509 - 1 - - - - - - - index - child - - - 12 - - - 264 - 265 - 1 - - - 20508 - 20509 - 1 - - - - - - - child - ql_as_expr - - - 12 - - - 1 - 2 - 20772 - - - - - - - child - index - - - 12 - - - 1 - 2 - 20772 - - - - - - - - - ql_as_expr_def - 20508 - - - id - 20508 - - - - - - ql_as_exprs_child - 20508 - - - ql_as_exprs - 8493 - - - index - 35 - - - child - 20508 - - - - - ql_as_exprs - index - - - 12 - - - 1 - 2 - 2998 - - - 2 - 3 - 3100 - - - 3 - 4 - 714 - - - 4 - 5 - 739 - - - 5 - 7 - 714 - - - 7 - 36 - 228 - - - - - - - ql_as_exprs - child - - - 12 - - - 1 - 2 - 2998 - - - 2 - 3 - 3100 - - - 3 - 4 - 714 - - - 4 - 5 - 739 - - - 5 - 7 - 714 - - - 7 - 36 - 228 - - - - - - - index - ql_as_exprs - - - 12 - - - 1 - 2 - 2 - - - 2 - 3 - 4 - - - 3 - 5 - 3 - - - 7 - 9 - 2 - - - 10 - 11 - 5 - - - 12 - 13 - 2 - - - 13 - 17 - 3 - - - 17 - 23 - 3 - - - 35 - 67 - 3 - - - 145 - 770 - 3 - - - 942 - 2396 - 3 - - - 5495 - 8494 - 2 - - - - - - - index - child - - - 12 - - - 1 - 2 - 2 - - - 2 - 3 - 4 - - - 3 - 5 - 3 - - - 7 - 9 - 2 - - - 10 - 11 - 5 - - - 12 - 13 - 2 - - - 13 - 17 - 3 - - - 17 - 23 - 3 - - - 35 - 67 - 3 - - - 145 - 770 - 3 - - - 942 - 2396 - 3 - - - 5495 - 8494 - 2 - - - - - - - child - ql_as_exprs - - - 12 - - - 1 - 2 - 20508 - - - - - - - child - index - - - 12 - - - 1 - 2 - 20508 - - - - - - - - - ql_as_exprs_def - 8493 - - - id - 8493 - - - - - - ql_ast_node_location - 6230328 - - - node - 6230328 - - - loc - 4563391 - - - - - node - loc - - - 12 - - - 1 - 2 - 6230328 - - - - - - - loc - node - - - 12 - - - 1 - 2 - 3246688 - - - 2 - 3 - 979956 - - - 3 - 6 - 336747 - - - - - - - - - ql_ast_node_parent - 6197281 - - - node - 6197281 - - - parent - 2947735 - - - parent_index - 2057 - - - - - node - parent - - - 12 - - - 1 - 2 - 6197281 - - - - - - - node - parent_index - - - 12 - - - 1 - 2 - 6197281 - - - - - - - parent - node - - - 12 - - - 1 - 2 - 1667033 - - - 2 - 3 - 276121 - - - 3 - 4 - 754976 - - - 4 - 11 - 228408 - - - 11 - 2058 - 21197 - - - - - - - parent - parent_index - - - 12 - - - 1 - 2 - 1667033 - - - 2 - 3 - 276121 - - - 3 - 4 - 754976 - - - 4 - 11 - 228408 - - - 11 - 2058 - 21197 - - - - - - - parent_index - node - - - 12 - - - 1 - 2 - 739 - - - 2 - 3 - 317 - - - 3 - 4 - 388 - - - 4 - 8 - 126 - - - 8 - 15 - 162 - - - 15 - 47 - 158 - - - 48 - 11121 - 155 - - - 16033 - 2947736 - 12 - - - - - - - parent_index - parent - - - 12 - - - 1 - 2 - 739 - - - 2 - 3 - 317 - - - 3 - 4 - 388 - - - 4 - 8 - 126 - - - 8 - 15 - 162 - - - 15 - 47 - 158 - - - 48 - 11121 - 155 - - - 16033 - 2947736 - 12 - - - - - - - - - ql_body_def - 65826 - - - id - 65826 - - - child - 65826 - - - - - id - child - - - 12 - - - 1 - 2 - 65826 - - - - - - - child - id - - - 12 - - - 1 - 2 - 65826 - - - - - - - - - ql_bool_def - 4274 - - - id - 4274 - - - child - 4274 - - - - - id - child - - - 12 - - - 1 - 2 - 4274 - - - - - - - child - id - - - 12 - - - 1 - 2 - 4274 - - - - - - - - - ql_call_body_child - 99620 - - - ql_call_body - 49469 - - - index - 15 - - - child - 99620 - - - - - ql_call_body - index - - - 12 - - - 1 - 2 - 23173 - - - 2 - 3 - 13151 - - - 3 - 4 - 7473 - - - 4 - 6 - 4432 - - - 6 - 16 - 1240 - - - - - - - ql_call_body - child - - - 12 - - - 1 - 2 - 23173 - - - 2 - 3 - 13151 - - - 3 - 4 - 7473 - - - 4 - 6 - 4432 - - - 6 - 16 - 1240 - - - - - - - index - ql_call_body - - - 12 - - - 2 - 3 - 1 - - - 4 - 5 - 1 - - - 10 - 11 - 1 - - - 17 - 18 - 1 - - - 46 - 47 - 1 - - - 103 - 104 - 1 - - - 237 - 238 - 1 - - - 342 - 343 - 1 - - - 559 - 560 - 1 - - - 1240 - 1241 - 1 - - - 2478 - 2479 - 1 - - - 5672 - 5673 - 1 - - - 13145 - 13146 - 1 - - - 26296 - 26297 - 1 - - - 49469 - 49470 - 1 - - - - - - - index - child - - - 12 - - - 2 - 3 - 1 - - - 4 - 5 - 1 - - - 10 - 11 - 1 - - - 17 - 18 - 1 - - - 46 - 47 - 1 - - - 103 - 104 - 1 - - - 237 - 238 - 1 - - - 342 - 343 - 1 - - - 559 - 560 - 1 - - - 1240 - 1241 - 1 - - - 2478 - 2479 - 1 - - - 5672 - 5673 - 1 - - - 13145 - 13146 - 1 - - - 26296 - 26297 - 1 - - - 49469 - 49470 - 1 - - - - - - - child - ql_call_body - - - 12 - - - 1 - 2 - 99620 - - - - - - - child - index - - - 12 - - - 1 - 2 - 99620 - - - - - - - - - ql_call_body_def - 57368 - - - id - 57368 - - - - - - ql_call_or_unqual_agg_expr_child - 115036 - - - ql_call_or_unqual_agg_expr - 57368 - - - index - 3 - - - child - 115036 - - - - - ql_call_or_unqual_agg_expr - index - - - 12 - - - 2 - 3 - 57068 - - - 3 - 4 - 300 - - - - - - - ql_call_or_unqual_agg_expr - child - - - 12 - - - 2 - 3 - 57068 - - - 3 - 4 - 300 - - - - - - - index - ql_call_or_unqual_agg_expr - - - 12 - - - 300 - 301 - 1 - - - 57368 - 57369 - 2 - - - - - - - index - child - - - 12 - - - 300 - 301 - 1 - - - 57368 - 57369 - 2 - - - - - - - child - ql_call_or_unqual_agg_expr - - - 12 - - - 1 - 2 - 115036 - - - - - - - child - index - - - 12 - - - 1 - 2 - 115036 - - - - - - - - - ql_call_or_unqual_agg_expr_def - 57368 - - - id - 57368 - - - - - - ql_charpred_def - 12088 - - - id - 12088 - - - body - 12088 - - - child - 12088 - - - - - id - body - - - 12 - - - 1 - 2 - 12088 - - - - - - - id - child - - - 12 - - - 1 - 2 - 12088 - - - - - - - body - id - - - 12 - - - 1 - 2 - 12088 - - - - - - - body - child - - - 12 - - - 1 - 2 - 12088 - - - - - - - child - id - - - 12 - - - 1 - 2 - 12088 - - - - - - - child - body - - - 12 - - - 1 - 2 - 12088 - - - - - - - - - ql_class_member_child - 112375 - - - ql_class_member - 79133 - - - index - 5 - - - child - 112375 - - - - - ql_class_member - index - - - 12 - - - 1 - 2 - 49462 - - - 2 - 3 - 26160 - - - 3 - 6 - 3511 - - - - - - - ql_class_member - child - - - 12 - - - 1 - 2 - 49462 - - - 2 - 3 - 26160 - - - 3 - 6 - 3511 - - - - - - - index - ql_class_member - - - 12 - - - 8 - 9 - 1 - - - 52 - 53 - 1 - - - 3511 - 3512 - 1 - - - 29671 - 29672 - 1 - - - 79133 - 79134 - 1 - - - - - - - index - child - - - 12 - - - 8 - 9 - 1 - - - 52 - 53 - 1 - - - 3511 - 3512 - 1 - - - 29671 - 29672 - 1 - - - 79133 - 79134 - 1 - - - - - - - child - ql_class_member - - - 12 - - - 1 - 2 - 112375 - - - - - - - child - index - - - 12 - - - 1 - 2 - 112375 - - - - - - - - - ql_class_member_def - 79133 - - - id - 79133 - - - - - - ql_classless_predicate_child - 63161 - - - ql_classless_predicate - 23253 - - - index - 16 - - - child - 63161 - - - - - ql_classless_predicate - index - - - 12 - - - 1 - 2 - 2872 - - - 2 - 3 - 9678 - - - 3 - 4 - 5651 - - - 4 - 5 - 2828 - - - 5 - 7 - 1868 - - - 7 - 17 - 356 - - - - - - - ql_classless_predicate - child - - - 12 - - - 1 - 2 - 2872 - - - 2 - 3 - 9678 - - - 3 - 4 - 5651 - - - 4 - 5 - 2828 - - - 5 - 7 - 1868 - - - 7 - 17 - 356 - - - - - - - index - ql_classless_predicate - - - 12 - - - 1 - 2 - 1 - - - 2 - 3 - 1 - - - 5 - 6 - 1 - - - 9 - 10 - 1 - - - 22 - 23 - 1 - - - 37 - 38 - 1 - - - 63 - 64 - 1 - - - 103 - 104 - 1 - - - 177 - 178 - 1 - - - 356 - 357 - 1 - - - 773 - 774 - 1 - - - 2224 - 2225 - 1 - - - 5052 - 5053 - 1 - - - 10703 - 10704 - 1 - - - 20381 - 20382 - 1 - - - 23253 - 23254 - 1 - - - - - - - index - child - - - 12 - - - 1 - 2 - 1 - - - 2 - 3 - 1 - - - 5 - 6 - 1 - - - 9 - 10 - 1 - - - 22 - 23 - 1 - - - 37 - 38 - 1 - - - 63 - 64 - 1 - - - 103 - 104 - 1 - - - 177 - 178 - 1 - - - 356 - 357 - 1 - - - 773 - 774 - 1 - - - 2224 - 2225 - 1 - - - 5052 - 5053 - 1 - - - 10703 - 10704 - 1 - - - 20381 - 20382 - 1 - - - 23253 - 23254 - 1 - - - - - - - child - ql_classless_predicate - - - 12 - - - 1 - 2 - 63161 - - - - - - - child - index - - - 12 - - - 1 - 2 - 63161 - - - - - - - - - ql_classless_predicate_def - 23253 - - - id - 23253 - - - name - 23253 - - - return_type - 23253 - - - - - id - name - - - 12 - - - 1 - 2 - 23253 - - - - - - - id - return_type - - - 12 - - - 1 - 2 - 23253 - - - - - - - name - id - - - 12 - - - 1 - 2 - 23253 - - - - - - - name - return_type - - - 12 - - - 1 - 2 - 23253 - - - - - - - return_type - id - - - 12 - - - 1 - 2 - 23253 - - - - - - - return_type - name - - - 12 - - - 1 - 2 - 23253 - - - - - - - - - ql_comp_term_def - 140334 - - - id - 140334 - - - left - 140334 - - - right - 140334 - - - child - 140334 - - - - - id - left - - - 12 - - - 1 - 2 - 140334 - - - - - - - id - right - - - 12 - - - 1 - 2 - 140334 - - - - - - - id - child - - - 12 - - - 1 - 2 - 140334 - - - - - - - left - id - - - 12 - - - 1 - 2 - 140334 - - - - - - - left - right - - - 12 - - - 1 - 2 - 140334 - - - - - - - left - child - - - 12 - - - 1 - 2 - 140334 - - - - - - - right - id - - - 12 - - - 1 - 2 - 140334 - - - - - - - right - left - - - 12 - - - 1 - 2 - 140334 - - - - - - - right - child - - - 12 - - - 1 - 2 - 140334 - - - - - - - child - id - - - 12 - - - 1 - 2 - 140334 - - - - - - - child - left - - - 12 - - - 1 - 2 - 140334 - - - - - - - child - right - - - 12 - - - 1 - 2 - 140334 - - - - - - - - - ql_conjunction_def - 76308 - - - id - 76308 - - - left - 76308 - - - right - 76308 - - - - - id - left - - - 12 - - - 1 - 2 - 76308 - - - - - - - id - right - - - 12 - - - 1 - 2 - 76308 - - - - - - - left - id - - - 12 - - - 1 - 2 - 76308 - - - - - - - left - right - - - 12 - - - 1 - 2 - 76308 - - - - - - - right - id - - - 12 - - - 1 - 2 - 76308 - - - - - - - right - left - - - 12 - - - 1 - 2 - 76308 - - - - - - - - - ql_dataclass_child - 80203 - - - ql_dataclass - 20603 - - - index - 160 - - - child - 80203 - - - - - ql_dataclass - index - - - 12 - - - 1 - 2 - 8138 - - - 2 - 3 - 3631 - - - 3 - 4 - 2206 - - - 4 - 5 - 1665 - - - 5 - 6 - 1187 - - - 6 - 9 - 1851 - - - 9 - 22 - 1562 - - - 22 - 161 - 363 - - - - - - - ql_dataclass - child - - - 12 - - - 1 - 2 - 8138 - - - 2 - 3 - 3631 - - - 3 - 4 - 2206 - - - 4 - 5 - 1665 - - - 5 - 6 - 1187 - - - 6 - 9 - 1851 - - - 9 - 22 - 1562 - - - 22 - 161 - 363 - - - - - - - index - ql_dataclass - - - 12 - - - 1 - 3 - 12 - - - 4 - 5 - 8 - - - 5 - 6 - 17 - - - 6 - 8 - 2 - - - 8 - 9 - 20 - - - 9 - 13 - 12 - - - 13 - 20 - 12 - - - 20 - 27 - 12 - - - 28 - 36 - 12 - - - 38 - 98 - 12 - - - 102 - 193 - 12 - - - 203 - 541 - 12 - - - 596 - 3777 - 12 - - - 4963 - 20604 - 5 - - - - - - - index - child - - - 12 - - - 1 - 3 - 12 - - - 4 - 5 - 8 - - - 5 - 6 - 17 - - - 6 - 8 - 2 - - - 8 - 9 - 20 - - - 9 - 13 - 12 - - - 13 - 20 - 12 - - - 20 - 27 - 12 - - - 28 - 36 - 12 - - - 38 - 98 - 12 - - - 102 - 193 - 12 - - - 203 - 541 - 12 - - - 596 - 3777 - 12 - - - 4963 - 20604 - 5 - - - - - - - child - ql_dataclass - - - 12 - - - 1 - 2 - 80203 - - - - - - - child - index - - - 12 - - - 1 - 2 - 80203 - - - - - - - - - ql_dataclass_def - 22563 - - - id - 22563 - - - name - 22563 - - - - - id - name - - - 12 - - - 1 - 2 - 22563 - - - - - - - name - id - - - 12 - - - 1 - 2 - 22563 - - - - - - - - - ql_dataclass_extends - 57708 - - - ql_dataclass - 21309 - - - index - 16 - - - extends - 57708 - - - - - ql_dataclass - index - - - 12 - - - 2 - 3 - 14280 - - - 4 - 5 - 6614 - - - 6 - 17 - 415 - - - - - - - ql_dataclass - extends - - - 12 - - - 2 - 3 - 14280 - - - 4 - 5 - 6614 - - - 6 - 17 - 415 - - - - - - - index - ql_dataclass - - - 12 - - - 1 - 2 - 2 - - - 3 - 4 - 2 - - - 6 - 7 - 2 - - - 15 - 16 - 2 - - - 76 - 77 - 2 - - - 415 - 416 - 2 - - - 7029 - 7030 - 2 - - - 21309 - 21310 - 2 - - - - - - - index - extends - - - 12 - - - 1 - 2 - 2 - - - 3 - 4 - 2 - - - 6 - 7 - 2 - - - 15 - 16 - 2 - - - 76 - 77 - 2 - - - 415 - 416 - 2 - - - 7029 - 7030 - 2 - - - 21309 - 21310 - 2 - - - - - - - extends - ql_dataclass - - - 12 - - - 1 - 2 - 57708 - - - - - - - extends - index - - - 12 - - - 1 - 2 - 57708 - - - - - - - - - ql_dataclass_instanceof - 1896 - - - ql_dataclass - 942 - - - index - 4 - - - instanceof - 1896 - - - - - ql_dataclass - index - - - 12 - - - 2 - 3 - 936 - - - 4 - 5 - 6 - - - - - - - ql_dataclass - instanceof - - - 12 - - - 2 - 3 - 936 - - - 4 - 5 - 6 - - - - - - - index - ql_dataclass - - - 12 - - - 6 - 7 - 2 - - - 942 - 943 - 2 - - - - - - - index - instanceof - - - 12 - - - 6 - 7 - 2 - - - 942 - 943 - 2 - - - - - - - instanceof - ql_dataclass - - - 12 - - - 1 - 2 - 1896 - - - - - - - instanceof - index - - - 12 - - - 1 - 2 - 1896 - - - - - - - - - ql_datatype_branch_child - 4787 - - - ql_datatype_branch - 1984 - - - index - 10 - - - child - 4787 - - - - - ql_datatype_branch - index - - - 12 - - - 1 - 2 - 517 - - - 2 - 3 - 600 - - - 3 - 4 - 563 - - - 4 - 5 - 180 - - - 5 - 11 - 124 - - - - - - - ql_datatype_branch - child - - - 12 - - - 1 - 2 - 517 - - - 2 - 3 - 600 - - - 3 - 4 - 563 - - - 4 - 5 - 180 - - - 5 - 11 - 124 - - - - - - - index - ql_datatype_branch - - - 12 - - - 2 - 3 - 3 - - - 8 - 9 - 1 - - - 27 - 28 - 1 - - - 124 - 125 - 1 - - - 304 - 305 - 1 - - - 867 - 868 - 1 - - - 1467 - 1468 - 1 - - - 1984 - 1985 - 1 - - - - - - - index - child - - - 12 - - - 2 - 3 - 3 - - - 8 - 9 - 1 - - - 27 - 28 - 1 - - - 124 - 125 - 1 - - - 304 - 305 - 1 - - - 867 - 868 - 1 - - - 1467 - 1468 - 1 - - - 1984 - 1985 - 1 - - - - - - - child - ql_datatype_branch - - - 12 - - - 1 - 2 - 4787 - - - - - - - child - index - - - 12 - - - 1 - 2 - 4787 - - - - - - - - - ql_datatype_branch_def - 2719 - - - id - 2719 - - - name - 2719 - - - - - id - name - - - 12 - - - 1 - 2 - 2719 - - - - - - - name - id - - - 12 - - - 1 - 2 - 2719 - - - - - - - - - ql_datatype_branches_child - 2719 - - - ql_datatype_branches - 548 - - - index - 246 - - - child - 2719 - - - - - ql_datatype_branches - index - - - 12 - - - 1 - 2 - 132 - - - 2 - 3 - 182 - - - 3 - 4 - 81 - - - 4 - 6 - 49 - - - 6 - 9 - 43 - - - 9 - 15 - 42 - - - 15 - 247 - 19 - - - - - - - ql_datatype_branches - child - - - 12 - - - 1 - 2 - 132 - - - 2 - 3 - 182 - - - 3 - 4 - 81 - - - 4 - 6 - 49 - - - 6 - 9 - 43 - - - 9 - 15 - 42 - - - 15 - 247 - 19 - - - - - - - index - ql_datatype_branches - - - 12 - - - 1 - 2 - 51 - - - 2 - 3 - 111 - - - 3 - 4 - 1 - - - 4 - 5 - 32 - - - 5 - 11 - 18 - - - 11 - 20 - 19 - - - 21 - 549 - 14 - - - - - - - index - child - - - 12 - - - 1 - 2 - 51 - - - 2 - 3 - 111 - - - 3 - 4 - 1 - - - 4 - 5 - 32 - - - 5 - 11 - 18 - - - 11 - 20 - 19 - - - 21 - 549 - 14 - - - - - - - child - ql_datatype_branches - - - 12 - - - 1 - 2 - 2719 - - - - - - - child - index - - - 12 - - - 1 - 2 - 2719 - - - - - - - - - ql_datatype_branches_def - 548 - - - id - 548 - - - - - - ql_datatype_def - 548 - - - id - 548 - - - name - 548 - - - child - 548 - - - - - id - name - - - 12 - - - 1 - 2 - 548 - - - - - - - id - child - - - 12 - - - 1 - 2 - 548 - - - - - - - name - id - - - 12 - - - 1 - 2 - 548 - - - - - - - name - child - - - 12 - - - 1 - 2 - 548 - - - - - - - child - id - - - 12 - - - 1 - 2 - 548 - - - - - - - child - name - - - 12 - - - 1 - 2 - 548 - - - - - - - - - ql_disjunction_def - 44890 - - - id - 44890 - - - left - 44890 - - - right - 44890 - - - - - id - left - - - 12 - - - 1 - 2 - 44890 - - - - - - - id - right - - - 12 - - - 1 - 2 - 44890 - - - - - - - left - id - - - 12 - - - 1 - 2 - 44890 - - - - - - - left - right - - - 12 - - - 1 - 2 - 44890 - - - - - - - right - id - - - 12 - - - 1 - 2 - 44890 - - - - - - - right - left - - - 12 - - - 1 - 2 - 44890 - - - - - - - - - ql_expr_aggregate_body_def - 1216 - - - id - 1216 - - - as_exprs - 1216 - - - - - id - as_exprs - - - 12 - - - 1 - 2 - 1216 - - - - - - - as_exprs - id - - - 12 - - - 1 - 2 - 1216 - - - - - - - - - ql_expr_aggregate_body_order_bys - 11 - - - ql_expr_aggregate_body - 11 - - - order_bys - 11 - - - - - ql_expr_aggregate_body - order_bys - - - 12 - - - 1 - 2 - 11 - - - - - - - order_bys - ql_expr_aggregate_body - - - 12 - - - 1 - 2 - 11 - - - - - - - - - ql_expr_annotation_def - 601 - - - id - 601 - - - annot_arg - 601 - - - name - 601 - - - child - 601 - - - - - id - annot_arg - - - 12 - - - 1 - 2 - 601 - - - - - - - id - name - - - 12 - - - 1 - 2 - 601 - - - - - - - id - child - - - 12 - - - 1 - 2 - 601 - - - - - - - annot_arg - id - - - 12 - - - 1 - 2 - 601 - - - - - - - annot_arg - name - - - 12 - - - 1 - 2 - 601 - - - - - - - annot_arg - child - - - 12 - - - 1 - 2 - 601 - - - - - - - name - id - - - 12 - - - 1 - 2 - 601 - - - - - - - name - annot_arg - - - 12 - - - 1 - 2 - 601 - - - - - - - name - child - - - 12 - - - 1 - 2 - 601 - - - - - - - child - id - - - 12 - - - 1 - 2 - 601 - - - - - - - child - annot_arg - - - 12 - - - 1 - 2 - 601 - - - - - - - child - name - - - 12 - - - 1 - 2 - 601 - - - - - - - - - ql_field_def - 3721 - - - id - 3721 - - - child - 3721 - - - - - id - child - - - 12 - - - 1 - 2 - 3721 - - - - - - - child - id - - - 12 - - - 1 - 2 - 3721 - - - - - - - - - ql_full_aggregate_body_as_exprs - 1288 - - - ql_full_aggregate_body - 1288 - - - as_exprs - 1288 - - - - - ql_full_aggregate_body - as_exprs - - - 12 - - - 1 - 2 - 1288 - - - - - - - as_exprs - ql_full_aggregate_body - - - 12 - - - 1 - 2 - 1288 - - - - - - - - - ql_full_aggregate_body_child - 7058 - - - ql_full_aggregate_body - 6301 - - - index - 9 - - - child - 7058 - - - - - ql_full_aggregate_body - index - - - 12 - - - 1 - 2 - 5788 - - - 2 - 5 - 480 - - - 5 - 10 - 33 - - - - - - - ql_full_aggregate_body - child - - - 12 - - - 1 - 2 - 5788 - - - 2 - 5 - 480 - - - 5 - 10 - 33 - - - - - - - index - ql_full_aggregate_body - - - 12 - - - 4 - 5 - 1 - - - 13 - 14 - 1 - - - 14 - 15 - 1 - - - 18 - 19 - 1 - - - 33 - 34 - 1 - - - 51 - 52 - 1 - - - 111 - 112 - 1 - - - 513 - 514 - 1 - - - 6301 - 6302 - 1 - - - - - - - index - child - - - 12 - - - 4 - 5 - 1 - - - 13 - 14 - 1 - - - 14 - 15 - 1 - - - 18 - 19 - 1 - - - 33 - 34 - 1 - - - 51 - 52 - 1 - - - 111 - 112 - 1 - - - 513 - 514 - 1 - - - 6301 - 6302 - 1 - - - - - - - child - ql_full_aggregate_body - - - 12 - - - 1 - 2 - 7058 - - - - - - - child - index - - - 12 - - - 1 - 2 - 7058 - - - - - - - - - ql_full_aggregate_body_def - 6356 - - - id - 6356 - - - - - - ql_full_aggregate_body_guard - 3549 - - - ql_full_aggregate_body - 3549 - - - guard - 3549 - - - - - ql_full_aggregate_body - guard - - - 12 - - - 1 - 2 - 3549 - - - - - - - guard - ql_full_aggregate_body - - - 12 - - - 1 - 2 - 3549 - - - - - - - - - ql_full_aggregate_body_order_bys - 429 - - - ql_full_aggregate_body - 429 - - - order_bys - 429 - - - - - ql_full_aggregate_body - order_bys - - - 12 - - - 1 - 2 - 429 - - - - - - - order_bys - ql_full_aggregate_body - - - 12 - - - 1 - 2 - 429 - - - - - - - - - ql_higher_order_term_child - 343 - - - ql_higher_order_term - 77 - - - index - 8 - - - child - 343 - - - - - ql_higher_order_term - index - - - 12 - - - 3 - 4 - 24 - - - 5 - 6 - 51 - - - 8 - 9 - 2 - - - - - - - ql_higher_order_term - child - - - 12 - - - 3 - 4 - 24 - - - 5 - 6 - 51 - - - 8 - 9 - 2 - - - - - - - index - ql_higher_order_term - - - 12 - - - 2 - 3 - 3 - - - 53 - 54 - 2 - - - 77 - 78 - 3 - - - - - - - index - child - - - 12 - - - 2 - 3 - 3 - - - 53 - 54 - 2 - - - 77 - 78 - 3 - - - - - - - child - ql_higher_order_term - - - 12 - - - 1 - 2 - 343 - - - - - - - child - index - - - 12 - - - 1 - 2 - 343 - - - - - - - - - ql_higher_order_term_def - 77 - - - id - 77 - - - name - 77 - - - - - id - name - - - 12 - - - 1 - 2 - 77 - - - - - - - name - id - - - 12 - - - 1 - 2 - 77 - - - - - - - - - ql_if_term_def - 2953 - - - id - 2953 - - - cond - 2953 - - - first - 2953 - - - second - 2953 - - - - - id - cond - - - 12 - - - 1 - 2 - 2953 - - - - - - - id - first - - - 12 - - - 1 - 2 - 2953 - - - - - - - id - second - - - 12 - - - 1 - 2 - 2953 - - - - - - - cond - id - - - 12 - - - 1 - 2 - 2953 - - - - - - - cond - first - - - 12 - - - 1 - 2 - 2953 - - - - - - - cond - second - - - 12 - - - 1 - 2 - 2953 - - - - - - - first - id - - - 12 - - - 1 - 2 - 2953 - - - - - - - first - cond - - - 12 - - - 1 - 2 - 2953 - - - - - - - first - second - - - 12 - - - 1 - 2 - 2953 - - - - - - - second - id - - - 12 - - - 1 - 2 - 2953 - - - - - - - second - cond - - - 12 - - - 1 - 2 - 2953 - - - - - - - second - first - - - 12 - - - 1 - 2 - 2953 - - - - - - - - - ql_implication_def - 101 - - - id - 101 - - - left - 101 - - - right - 101 - - - - - id - left - - - 12 - - - 1 - 2 - 101 - - - - - - - id - right - - - 12 - - - 1 - 2 - 101 - - - - - - - left - id - - - 12 - - - 1 - 2 - 101 - - - - - - - left - right - - - 12 - - - 1 - 2 - 101 - - - - - - - right - id - - - 12 - - - 1 - 2 - 101 - - - - - - - right - left - - - 12 - - - 1 - 2 - 101 - - - - - - - - - ql_import_directive_child - 27063 - - - ql_import_directive - 25764 - - - index - 2 - - - child - 27063 - - - - - ql_import_directive - index - - - 12 - - - 1 - 2 - 24465 - - - 2 - 3 - 1299 - - - - - - - ql_import_directive - child - - - 12 - - - 1 - 2 - 24465 - - - 2 - 3 - 1299 - - - - - - - index - ql_import_directive - - - 12 - - - 1299 - 1300 - 1 - - - 25764 - 25765 - 1 - - - - - - - index - child - - - 12 - - - 1299 - 1300 - 1 - - - 25764 - 25765 - 1 - - - - - - - child - ql_import_directive - - - 12 - - - 1 - 2 - 27063 - - - - - - - child - index - - - 12 - - - 1 - 2 - 27063 - - - - - - - - - ql_import_directive_def - 25764 - - - id - 25764 - - - - - - ql_import_module_expr_def - 25764 - - - id - 25764 - - - child - 25764 - - - - - id - child - - - 12 - - - 1 - 2 - 25764 - - - - - - - child - id - - - 12 - - - 1 - 2 - 25764 - - - - - - - - - ql_import_module_expr_qual_name - 44946 - - - ql_import_module_expr - 13345 - - - index - 8 - - - qual_name - 44946 - - - - - ql_import_module_expr - index - - - 12 - - - 1 - 2 - 972 - - - 2 - 3 - 2220 - - - 3 - 4 - 3431 - - - 4 - 5 - 4933 - - - 5 - 6 - 1355 - - - 6 - 9 - 434 - - - - - - - ql_import_module_expr - qual_name - - - 12 - - - 1 - 2 - 972 - - - 2 - 3 - 2220 - - - 3 - 4 - 3431 - - - 4 - 5 - 4933 - - - 5 - 6 - 1355 - - - 6 - 9 - 434 - - - - - - - index - ql_import_module_expr - - - 12 - - - 25 - 26 - 1 - - - 105 - 106 - 1 - - - 434 - 435 - 1 - - - 1789 - 1790 - 1 - - - 6722 - 6723 - 1 - - - 10153 - 10154 - 1 - - - 12373 - 12374 - 1 - - - 13345 - 13346 - 1 - - - - - - - index - qual_name - - - 12 - - - 25 - 26 - 1 - - - 105 - 106 - 1 - - - 434 - 435 - 1 - - - 1789 - 1790 - 1 - - - 6722 - 6723 - 1 - - - 10153 - 10154 - 1 - - - 12373 - 12374 - 1 - - - 13345 - 13346 - 1 - - - - - - - qual_name - ql_import_module_expr - - - 12 - - - 1 - 2 - 44946 - - - - - - - qual_name - index - - - 12 - - - 1 - 2 - 44946 - - - - - - - - - ql_in_expr_def - 1037 - - - id - 1037 - - - left - 1037 - - - right - 1037 - - - - - id - left - - - 12 - - - 1 - 2 - 1037 - - - - - - - id - right - - - 12 - - - 1 - 2 - 1037 - - - - - - - left - id - - - 12 - - - 1 - 2 - 1037 - - - - - - - left - right - - - 12 - - - 1 - 2 - 1037 - - - - - - - right - id - - - 12 - - - 1 - 2 - 1037 - - - - - - - right - left - - - 12 - - - 1 - 2 - 1037 - - - - - - - - - ql_instance_of_child - 31826 - - - ql_instance_of - 15913 - - - index - 2 - - - child - 31826 - - - - - ql_instance_of - index - - - 12 - - - 2 - 3 - 15913 - - - - - - - ql_instance_of - child - - - 12 - - - 2 - 3 - 15913 - - - - - - - index - ql_instance_of - - - 12 - - - 15913 - 15914 - 2 - - - - - - - index - child - - - 12 - - - 15913 - 15914 - 2 - - - - - - - child - ql_instance_of - - - 12 - - - 1 - 2 - 31826 - - - - - - - child - index - - - 12 - - - 1 - 2 - 31826 - - - - - - - - - ql_instance_of_def - 15913 - - - id - 15913 - - - - - - ql_literal_def - 109390 - - - id - 109390 - - - child - 109390 - - - - - id - child - - - 12 - - - 1 - 2 - 109390 - - - - - - - child - id - - - 12 - - - 1 - 2 - 109390 - - - - - - - - - ql_member_predicate_child - 63378 - - - ql_member_predicate - 43952 - - - index - 12 - - - child - 63378 - - - - - ql_member_predicate - index - - - 12 - - - 1 - 2 - 32505 - - - 2 - 3 - 6417 - - - 3 - 4 - 3219 - - - 4 - 13 - 1811 - - - - - - - ql_member_predicate - child - - - 12 - - - 1 - 2 - 32505 - - - 2 - 3 - 6417 - - - 3 - 4 - 3219 - - - 4 - 13 - 1811 - - - - - - - index - ql_member_predicate - - - 12 - - - 2 - 3 - 1 - - - 3 - 4 - 1 - - - 5 - 6 - 1 - - - 6 - 7 - 1 - - - 9 - 10 - 1 - - - 39 - 40 - 1 - - - 420 - 421 - 1 - - - 654 - 655 - 1 - - - 1811 - 1812 - 1 - - - 5030 - 5031 - 1 - - - 11447 - 11448 - 1 - - - 43952 - 43953 - 1 - - - - - - - index - child - - - 12 - - - 2 - 3 - 1 - - - 3 - 4 - 1 - - - 5 - 6 - 1 - - - 6 - 7 - 1 - - - 9 - 10 - 1 - - - 39 - 40 - 1 - - - 420 - 421 - 1 - - - 654 - 655 - 1 - - - 1811 - 1812 - 1 - - - 5030 - 5031 - 1 - - - 11447 - 11448 - 1 - - - 43952 - 43953 - 1 - - - - - - - child - ql_member_predicate - - - 12 - - - 1 - 2 - 63378 - - - - - - - child - index - - - 12 - - - 1 - 2 - 63378 - - - - - - - - - ql_member_predicate_def - 43952 - - - id - 43952 - - - name - 43952 - - - return_type - 43952 - - - - - id - name - - - 12 - - - 1 - 2 - 43952 - - - - - - - id - return_type - - - 12 - - - 1 - 2 - 43952 - - - - - - - name - id - - - 12 - - - 1 - 2 - 43952 - - - - - - - name - return_type - - - 12 - - - 1 - 2 - 43952 - - - - - - - return_type - id - - - 12 - - - 1 - 2 - 43952 - - - - - - - return_type - name - - - 12 - - - 1 - 2 - 43952 - - - - - - - - - ql_module_alias_body_def - 917 - - - id - 917 - - - child - 917 - - - - - id - child - - - 12 - - - 1 - 2 - 917 - - - - - - - child - id - - - 12 - - - 1 - 2 - 917 - - - - - - - - - ql_module_child - 33181 - - - ql_module - 4556 - - - index - 1314 - - - child - 33181 - - - - - ql_module - index - - - 12 - - - 1 - 2 - 1138 - - - 2 - 3 - 1239 - - - 3 - 4 - 385 - - - 4 - 5 - 392 - - - 5 - 8 - 383 - - - 8 - 13 - 407 - - - 13 - 23 - 351 - - - 23 - 1315 - 261 - - - - - - - ql_module - child - - - 12 - - - 1 - 2 - 1138 - - - 2 - 3 - 1239 - - - 3 - 4 - 385 - - - 4 - 5 - 392 - - - 5 - 8 - 383 - - - 8 - 13 - 407 - - - 13 - 23 - 351 - - - 23 - 1315 - 261 - - - - - - - index - ql_module - - - 12 - - - 1 - 2 - 718 - - - 2 - 3 - 180 - - - 3 - 5 - 114 - - - 5 - 7 - 102 - - - 7 - 17 - 106 - - - 17 - 4557 - 94 - - - - - - - index - child - - - 12 - - - 1 - 2 - 718 - - - 2 - 3 - 180 - - - 3 - 5 - 114 - - - 5 - 7 - 102 - - - 7 - 17 - 106 - - - 17 - 4557 - 94 - - - - - - - child - ql_module - - - 12 - - - 1 - 2 - 33181 - - - - - - - child - index - - - 12 - - - 1 - 2 - 33181 - - - - - - - - - ql_module_def - 4567 - - - id - 4567 - - - name - 4567 - - - - - id - name - - - 12 - - - 1 - 2 - 4567 - - - - - - - name - id - - - 12 - - - 1 - 2 - 4567 - - - - - - - - - ql_module_expr_def - 76399 - - - id - 76399 - - - child - 76399 - - - - - id - child - - - 12 - - - 1 - 2 - 76399 - - - - - - - child - id - - - 12 - - - 1 - 2 - 76399 - - - - - - - - - ql_module_expr_name - 4773 - - - ql_module_expr - 4773 - - - name - 4773 - - - - - ql_module_expr - name - - - 12 - - - 1 - 2 - 4773 - - - - - - - name - ql_module_expr - - - 12 - - - 1 - 2 - 4773 - - - - - - - - - ql_module_implements - 1251 - - - ql_module - 1251 - - - index - 1 - - - implements - 1251 - - - - - ql_module - index - - - 12 - - - 1 - 2 - 1251 - - - - - - - ql_module - implements - - - 12 - - - 1 - 2 - 1251 - - - - - - - index - ql_module - - - 12 - - - 1251 - 1252 - 1 - - - - - - - index - implements - - - 12 - - - 1251 - 1252 - 1 - - - - - - - implements - ql_module - - - 12 - - - 1 - 2 - 1251 - - - - - - - implements - index - - - 12 - - - 1 - 2 - 1251 - - - - - - - - - ql_module_instantiation_child - 2192 - - - ql_module_instantiation - 1740 - - - index - 8 - - - child - 2192 - - - - - ql_module_instantiation - index - - - 12 - - - 1 - 2 - 1473 - - - 2 - 3 - 172 - - - 3 - 9 - 95 - - - - - - - ql_module_instantiation - child - - - 12 - - - 1 - 2 - 1473 - - - 2 - 3 - 172 - - - 3 - 9 - 95 - - - - - - - index - ql_module_instantiation - - - 12 - - - 3 - 4 - 2 - - - 8 - 9 - 1 - - - 20 - 21 - 1 - - - 56 - 57 - 1 - - - 95 - 96 - 1 - - - 267 - 268 - 1 - - - 1740 - 1741 - 1 - - - - - - - index - child - - - 12 - - - 3 - 4 - 2 - - - 8 - 9 - 1 - - - 20 - 21 - 1 - - - 56 - 57 - 1 - - - 95 - 96 - 1 - - - 267 - 268 - 1 - - - 1740 - 1741 - 1 - - - - - - - child - ql_module_instantiation - - - 12 - - - 1 - 2 - 2192 - - - - - - - child - index - - - 12 - - - 1 - 2 - 2192 - - - - - - - - - ql_module_instantiation_def - 1740 - - - id - 1740 - - - name - 1740 - - - - - id - name - - - 12 - - - 1 - 2 - 1740 - - - - - - - name - id - - - 12 - - - 1 - 2 - 1740 - - - - - - - - - ql_module_member_child - 150156 - - - ql_module_member - 118178 - - - index - 6 - - - child - 150156 - - - - - ql_module_member - index - - - 12 - - - 1 - 2 - 88793 - - - 2 - 3 - 26917 - - - 3 - 7 - 2468 - - - - - - - ql_module_member - child - - - 12 - - - 1 - 2 - 88793 - - - 2 - 3 - 26917 - - - 3 - 7 - 2468 - - - - - - - index - ql_module_member - - - 12 - - - 2 - 3 - 1 - - - 10 - 11 - 1 - - - 113 - 114 - 1 - - - 2468 - 2469 - 1 - - - 29385 - 29386 - 1 - - - 118178 - 118179 - 1 - - - - - - - index - child - - - 12 - - - 2 - 3 - 1 - - - 10 - 11 - 1 - - - 113 - 114 - 1 - - - 2468 - 2469 - 1 - - - 29385 - 29386 - 1 - - - 118178 - 118179 - 1 - - - - - - - child - ql_module_member - - - 12 - - - 1 - 2 - 150156 - - - - - - - child - index - - - 12 - - - 1 - 2 - 150156 - - - - - - - - - ql_module_member_def - 118178 - - - id - 118178 - - - - - - ql_module_name_def - 7606 - - - id - 7606 - - - child - 7606 - - - - - id - child - - - 12 - - - 1 - 2 - 7606 - - - - - - - child - id - - - 12 - - - 1 - 2 - 7606 - - - - - - - - - ql_module_param_def - 266 - - - id - 266 - - - parameter - 266 - - - signature - 266 - - - - - id - parameter - - - 12 - - - 1 - 2 - 266 - - - - - - - id - signature - - - 12 - - - 1 - 2 - 266 - - - - - - - parameter - id - - - 12 - - - 1 - 2 - 266 - - - - - - - parameter - signature - - - 12 - - - 1 - 2 - 266 - - - - - - - signature - id - - - 12 - - - 1 - 2 - 266 - - - - - - - signature - parameter - - - 12 - - - 1 - 2 - 266 - - - - - - - - - ql_module_parameter - 266 - - - ql_module - 185 - - - index - 8 - - - parameter - 266 - - - - - ql_module - index - - - 12 - - - 1 - 2 - 138 - - - 2 - 3 - 30 - - - 3 - 6 - 15 - - - 6 - 9 - 2 - - - - - - - ql_module - parameter - - - 12 - - - 1 - 2 - 138 - - - 2 - 3 - 30 - - - 3 - 6 - 15 - - - 6 - 9 - 2 - - - - - - - index - ql_module - - - 12 - - - 1 - 2 - 2 - - - 2 - 3 - 1 - - - 4 - 5 - 1 - - - 9 - 10 - 1 - - - 17 - 18 - 1 - - - 47 - 48 - 1 - - - 185 - 186 - 1 - - - - - - - index - parameter - - - 12 - - - 1 - 2 - 2 - - - 2 - 3 - 1 - - - 4 - 5 - 1 - - - 9 - 10 - 1 - - - 17 - 18 - 1 - - - 47 - 48 - 1 - - - 185 - 186 - 1 - - - - - - - parameter - ql_module - - - 12 - - - 1 - 2 - 266 - - - - - - - parameter - index - - - 12 - - - 1 - 2 - 266 - - - - - - - - - ql_mul_expr_def - 585 - - - id - 585 - - - left - 585 - - - right - 585 - - - child - 585 - - - - - id - left - - - 12 - - - 1 - 2 - 585 - - - - - - - id - right - - - 12 - - - 1 - 2 - 585 - - - - - - - id - child - - - 12 - - - 1 - 2 - 585 - - - - - - - left - id - - - 12 - - - 1 - 2 - 585 - - - - - - - left - right - - - 12 - - - 1 - 2 - 585 - - - - - - - left - child - - - 12 - - - 1 - 2 - 585 - - - - - - - right - id - - - 12 - - - 1 - 2 - 585 - - - - - - - right - left - - - 12 - - - 1 - 2 - 585 - - - - - - - right - child - - - 12 - - - 1 - 2 - 585 - - - - - - - child - id - - - 12 - - - 1 - 2 - 585 - - - - - - - child - left - - - 12 - - - 1 - 2 - 585 - - - - - - - child - right - - - 12 - - - 1 - 2 - 585 - - - - - - - - - ql_negation_def - 11727 - - - id - 11727 - - - child - 11727 - - - - - id - child - - - 12 - - - 1 - 2 - 11727 - - - - - - - child - id - - - 12 - - - 1 - 2 - 11727 - - - - - - - - - ql_order_by_child - 1272 - - - ql_order_by - 1067 - - - index - 2 - - - child - 1272 - - - - - ql_order_by - index - - - 12 - - - 1 - 2 - 862 - - - 2 - 3 - 205 - - - - - - - ql_order_by - child - - - 12 - - - 1 - 2 - 862 - - - 2 - 3 - 205 - - - - - - - index - ql_order_by - - - 12 - - - 205 - 206 - 1 - - - 1067 - 1068 - 1 - - - - - - - index - child - - - 12 - - - 205 - 206 - 1 - - - 1067 - 1068 - 1 - - - - - - - child - ql_order_by - - - 12 - - - 1 - 2 - 1272 - - - - - - - child - index - - - 12 - - - 1 - 2 - 1272 - - - - - - - - - ql_order_by_def - 1067 - - - id - 1067 - - - - - - ql_order_bys_child - 1067 - - - ql_order_bys - 661 - - - index - 8 - - - child - 1067 - - - - - ql_order_bys - index - - - 12 - - - 1 - 2 - 477 - - - 2 - 3 - 101 - - - 3 - 5 - 41 - - - 5 - 9 - 42 - - - - - - - ql_order_bys - child - - - 12 - - - 1 - 2 - 477 - - - 2 - 3 - 101 - - - 3 - 5 - 41 - - - 5 - 9 - 42 - - - - - - - index - ql_order_bys - - - 12 - - - 1 - 2 - 1 - - - 12 - 13 - 1 - - - 21 - 22 - 1 - - - 42 - 43 - 1 - - - 63 - 64 - 1 - - - 83 - 84 - 1 - - - 184 - 185 - 1 - - - 661 - 662 - 1 - - - - - - - index - child - - - 12 - - - 1 - 2 - 1 - - - 12 - 13 - 1 - - - 21 - 22 - 1 - - - 42 - 43 - 1 - - - 63 - 64 - 1 - - - 83 - 84 - 1 - - - 184 - 185 - 1 - - - 661 - 662 - 1 - - - - - - - child - ql_order_bys - - - 12 - - - 1 - 2 - 1067 - - - - - - - child - index - - - 12 - - - 1 - 2 - 1067 - - - - - - - - - ql_order_bys_def - 661 - - - id - 661 - - - - - - ql_par_expr_def - 5799 - - - id - 5799 - - - child - 5799 - - - - - id - child - - - 12 - - - 1 - 2 - 5799 - - - - - - - child - id - - - 12 - - - 1 - 2 - 5799 - - - - - - - - - ql_predicate_alias_body_def - 372 - - - id - 372 - - - child - 372 - - - - - id - child - - - 12 - - - 1 - 2 - 372 - - - - - - - child - id - - - 12 - - - 1 - 2 - 372 - - - - - - - - - ql_predicate_expr_child - 1478 - - - ql_predicate_expr - 739 - - - index - 2 - - - child - 1478 - - - - - ql_predicate_expr - index - - - 12 - - - 2 - 3 - 739 - - - - - - - ql_predicate_expr - child - - - 12 - - - 2 - 3 - 739 - - - - - - - index - ql_predicate_expr - - - 12 - - - 739 - 740 - 2 - - - - - - - index - child - - - 12 - - - 739 - 740 - 2 - - - - - - - child - ql_predicate_expr - - - 12 - - - 1 - 2 - 1478 - - - - - - - child - index - - - 12 - - - 1 - 2 - 1478 - - - - - - - - - ql_predicate_expr_def - 739 - - - id - 739 - - - - - - ql_prefix_cast_child - 0 - - - ql_prefix_cast - 0 - - - index - 0 - - - child - 0 - - - - - ql_prefix_cast - index - - - 12 - - - - - - ql_prefix_cast - child - - - 12 - - - - - - index - ql_prefix_cast - - - 12 - - - - - - index - child - - - 12 - - - - - - child - ql_prefix_cast - - - 12 - - - 1 - 2 - 1 - - - - - - - child - index - - - 12 - - - 1 - 2 - 1 - - - - - - - - - ql_prefix_cast_def - 0 - - - id - 0 - - - - - - ql_ql_child - 85914 - - - ql_ql - 11162 - - - index - 340 - - - child - 85914 - - - - - ql_ql - index - - - 12 - - - 1 - 2 - 96 - - - 2 - 3 - 2238 - - - 3 - 4 - 2551 - - - 4 - 5 - 1524 - - - 5 - 6 - 1041 - - - 6 - 7 - 730 - - - 7 - 9 - 829 - - - 9 - 14 - 913 - - - 14 - 31 - 844 - - - 31 - 341 - 396 - - - - - - - ql_ql - child - - - 12 - - - 1 - 2 - 96 - - - 2 - 3 - 2238 - - - 3 - 4 - 2551 - - - 4 - 5 - 1524 - - - 5 - 6 - 1041 - - - 6 - 7 - 730 - - - 7 - 9 - 829 - - - 9 - 14 - 913 - - - 14 - 31 - 844 - - - 31 - 341 - 396 - - - - - - - index - ql_ql - - - 12 - - - 1 - 2 - 42 - - - 2 - 4 - 25 - - - 4 - 6 - 28 - - - 6 - 10 - 31 - - - 10 - 13 - 28 - - - 13 - 22 - 30 - - - 22 - 29 - 26 - - - 29 - 46 - 27 - - - 48 - 83 - 26 - - - 84 - 176 - 26 - - - 179 - 553 - 26 - - - 584 - 11163 - 25 - - - - - - - index - child - - - 12 - - - 1 - 2 - 42 - - - 2 - 4 - 25 - - - 4 - 6 - 28 - - - 6 - 10 - 31 - - - 10 - 13 - 28 - - - 13 - 22 - 30 - - - 22 - 29 - 26 - - - 29 - 46 - 27 - - - 48 - 83 - 26 - - - 84 - 176 - 26 - - - 179 - 553 - 26 - - - 584 - 11163 - 25 - - - - - - - child - ql_ql - - - 12 - - - 1 - 2 - 85914 - - - - - - - child - index - - - 12 - - - 1 - 2 - 85914 - - - - - - - - - ql_ql_def - 11167 - - - id - 11167 - - - - - - ql_qualified_expr_child - 330314 - - - ql_qualified_expr - 165157 - - - index - 2 - - - child - 330314 - - - - - ql_qualified_expr - index - - - 12 - - - 2 - 3 - 165157 - - - - - - - ql_qualified_expr - child - - - 12 - - - 2 - 3 - 165157 - - - - - - - index - ql_qualified_expr - - - 12 - - - 165157 - 165158 - 2 - - - - - - - index - child - - - 12 - - - 165157 - 165158 - 2 - - - - - - - child - ql_qualified_expr - - - 12 - - - 1 - 2 - 330314 - - - - - - - child - index - - - 12 - - - 1 - 2 - 330314 - - - - - - - - - ql_qualified_expr_def - 165157 - - - id - 165157 - - - - - - ql_qualified_rhs_child - 68095 - - - ql_qualified_rhs - 52354 - - - index - 11 - - - child - 68095 - - - - - ql_qualified_rhs - index - - - 12 - - - 1 - 2 - 41965 - - - 2 - 3 - 7314 - - - 3 - 12 - 3075 - - - - - - - ql_qualified_rhs - child - - - 12 - - - 1 - 2 - 41965 - - - 2 - 3 - 7314 - - - 3 - 12 - 3075 - - - - - - - index - ql_qualified_rhs - - - 12 - - - 8 - 9 - 1 - - - 9 - 10 - 1 - - - 11 - 12 - 1 - - - 20 - 21 - 1 - - - 25 - 26 - 1 - - - 66 - 67 - 1 - - - 802 - 803 - 1 - - - 1336 - 1337 - 1 - - - 3075 - 3076 - 1 - - - 10389 - 10390 - 1 - - - 52354 - 52355 - 1 - - - - - - - index - child - - - 12 - - - 8 - 9 - 1 - - - 9 - 10 - 1 - - - 11 - 12 - 1 - - - 20 - 21 - 1 - - - 25 - 26 - 1 - - - 66 - 67 - 1 - - - 802 - 803 - 1 - - - 1336 - 1337 - 1 - - - 3075 - 3076 - 1 - - - 10389 - 10390 - 1 - - - 52354 - 52355 - 1 - - - - - - - child - ql_qualified_rhs - - - 12 - - - 1 - 2 - 68095 - - - - - - - child - index - - - 12 - - - 1 - 2 - 68095 - - - - - - - - - ql_qualified_rhs_def - 165157 - - - id - 165157 - - - - - - ql_qualified_rhs_name - 153874 - - - ql_qualified_rhs - 153874 - - - name - 153874 - - - - - ql_qualified_rhs - name - - - 12 - - - 1 - 2 - 153874 - - - - - - - name - ql_qualified_rhs - - - 12 - - - 1 - 2 - 153874 - - - - - - - - - ql_quantified_child - 52811 - - - ql_quantified - 24227 - - - index - 22 - - - child - 52811 - - - - - ql_quantified - index - - - 12 - - - 1 - 2 - 4452 - - - 2 - 3 - 14178 - - - 3 - 4 - 3526 - - - 4 - 6 - 1823 - - - 6 - 23 - 248 - - - - - - - ql_quantified - child - - - 12 - - - 1 - 2 - 4452 - - - 2 - 3 - 14178 - - - 3 - 4 - 3526 - - - 4 - 6 - 1823 - - - 6 - 23 - 248 - - - - - - - index - ql_quantified - - - 12 - - - 1 - 2 - 11 - - - 3 - 9 - 2 - - - 19 - 45 - 2 - - - 102 - 249 - 2 - - - 706 - 2072 - 2 - - - 5597 - 19776 - 2 - - - 24227 - 24228 - 1 - - - - - - - index - child - - - 12 - - - 1 - 2 - 11 - - - 3 - 9 - 2 - - - 19 - 45 - 2 - - - 102 - 249 - 2 - - - 706 - 2072 - 2 - - - 5597 - 19776 - 2 - - - 24227 - 24228 - 1 - - - - - - - child - ql_quantified - - - 12 - - - 1 - 2 - 52811 - - - - - - - child - index - - - 12 - - - 1 - 2 - 52811 - - - - - - - - - ql_quantified_def - 24227 - - - id - 24227 - - - - - - ql_quantified_expr - 4452 - - - ql_quantified - 4452 - - - expr - 4452 - - - - - ql_quantified - expr - - - 12 - - - 1 - 2 - 4452 - - - - - - - expr - ql_quantified - - - 12 - - - 1 - 2 - 4452 - - - - - - - - - ql_quantified_formula - 7476 - - - ql_quantified - 7476 - - - formula - 7476 - - - - - ql_quantified - formula - - - 12 - - - 1 - 2 - 7476 - - - - - - - formula - ql_quantified - - - 12 - - - 1 - 2 - 7476 - - - - - - - - - ql_quantified_range - 19737 - - - ql_quantified - 19737 - - - range - 19737 - - - - - ql_quantified - range - - - 12 - - - 1 - 2 - 19737 - - - - - - - range - ql_quantified - - - 12 - - - 1 - 2 - 19737 - - - - - - - - - ql_range_def - 365 - - - id - 365 - - - lower - 365 - - - upper - 365 - - - - - id - lower - - - 12 - - - 1 - 2 - 365 - - - - - - - id - upper - - - 12 - - - 1 - 2 - 365 - - - - - - - lower - id - - - 12 - - - 1 - 2 - 365 - - - - - - - lower - upper - - - 12 - - - 1 - 2 - 365 - - - - - - - upper - id - - - 12 - - - 1 - 2 - 365 - - - - - - - upper - lower - - - 12 - - - 1 - 2 - 365 - - - - - - - - - ql_select_child - 23801 - - - ql_select - 5989 - - - index - 20 - - - child - 23801 - - - - - ql_select - index - - - 12 - - - 1 - 2 - 149 - - - 2 - 3 - 854 - - - 3 - 4 - 1341 - - - 4 - 5 - 1821 - - - 5 - 6 - 1028 - - - 6 - 7 - 465 - - - 7 - 21 - 331 - - - - - - - ql_select - child - - - 12 - - - 1 - 2 - 149 - - - 2 - 3 - 854 - - - 3 - 4 - 1341 - - - 4 - 5 - 1821 - - - 5 - 6 - 1028 - - - 6 - 7 - 465 - - - 7 - 21 - 331 - - - - - - - index - ql_select - - - 12 - - - 1 - 2 - 1 - - - 2 - 3 - 2 - - - 4 - 5 - 1 - - - 6 - 7 - 1 - - - 11 - 12 - 1 - - - 13 - 14 - 1 - - - 20 - 21 - 1 - - - 27 - 28 - 1 - - - 29 - 30 - 1 - - - 44 - 45 - 1 - - - 71 - 72 - 1 - - - 160 - 161 - 1 - - - 331 - 332 - 1 - - - 796 - 797 - 1 - - - 1824 - 1825 - 1 - - - 3645 - 3646 - 1 - - - 4986 - 4987 - 1 - - - 5840 - 5841 - 1 - - - 5989 - 5990 - 1 - - - - - - - index - child - - - 12 - - - 1 - 2 - 1 - - - 2 - 3 - 2 - - - 4 - 5 - 1 - - - 6 - 7 - 1 - - - 11 - 12 - 1 - - - 13 - 14 - 1 - - - 20 - 21 - 1 - - - 27 - 28 - 1 - - - 29 - 30 - 1 - - - 44 - 45 - 1 - - - 71 - 72 - 1 - - - 160 - 161 - 1 - - - 331 - 332 - 1 - - - 796 - 797 - 1 - - - 1824 - 1825 - 1 - - - 3645 - 3646 - 1 - - - 4986 - 4987 - 1 - - - 5840 - 5841 - 1 - - - 5989 - 5990 - 1 - - - - - - - child - ql_select - - - 12 - - - 1 - 2 - 23801 - - - - - - - child - index - - - 12 - - - 1 - 2 - 23801 - - - - - - - - - ql_select_def - 5989 - - - id - 5989 - - - - - - ql_set_literal_child - 20149 - - - ql_set_literal - 4014 - - - index - 1028 - - - child - 20149 - - - - - ql_set_literal - index - - - 12 - - - 1 - 2 - 9 - - - 2 - 3 - 2354 - - - 3 - 4 - 506 - - - 4 - 5 - 351 - - - 5 - 7 - 291 - - - 7 - 13 - 315 - - - 13 - 1029 - 188 - - - - - - - ql_set_literal - child - - - 12 - - - 1 - 2 - 9 - - - 2 - 3 - 2354 - - - 3 - 4 - 506 - - - 4 - 5 - 351 - - - 5 - 7 - 291 - - - 7 - 13 - 315 - - - 13 - 1029 - 188 - - - - - - - index - ql_set_literal - - - 12 - - - 1 - 2 - 528 - - - 2 - 3 - 194 - - - 3 - 5 - 63 - - - 5 - 9 - 90 - - - 9 - 19 - 83 - - - 19 - 4015 - 70 - - - - - - - index - child - - - 12 - - - 1 - 2 - 528 - - - 2 - 3 - 194 - - - 3 - 5 - 63 - - - 5 - 9 - 90 - - - 9 - 19 - 83 - - - 19 - 4015 - 70 - - - - - - - child - ql_set_literal - - - 12 - - - 1 - 2 - 20149 - - - - - - - child - index - - - 12 - - - 1 - 2 - 20149 - - - - - - - - - ql_set_literal_def - 4014 - - - id - 4014 - - - - - - ql_signature_expr_def - 3709 - - - id - 3709 - - - - - - ql_signature_expr_mod_expr - 180 - - - ql_signature_expr - 180 - - - mod_expr - 180 - - - - - ql_signature_expr - mod_expr - - - 12 - - - 1 - 2 - 180 - - - - - - - mod_expr - ql_signature_expr - - - 12 - - - 1 - 2 - 180 - - - - - - - - - ql_signature_expr_predicate - 232 - - - ql_signature_expr - 232 - - - predicate - 232 - - - - - ql_signature_expr - predicate - - - 12 - - - 1 - 2 - 232 - - - - - - - predicate - ql_signature_expr - - - 12 - - - 1 - 2 - 232 - - - - - - - - - ql_signature_expr_type_expr - 3297 - - - ql_signature_expr - 3297 - - - type_expr - 3297 - - - - - ql_signature_expr - type_expr - - - 12 - - - 1 - 2 - 3297 - - - - - - - type_expr - ql_signature_expr - - - 12 - - - 1 - 2 - 3297 - - - - - - - - - ql_special_call_def - 4424 - - - id - 4424 - - - child - 4424 - - - - - id - child - - - 12 - - - 1 - 2 - 4424 - - - - - - - child - id - - - 12 - - - 1 - 2 - 4424 - - - - - - - - - ql_super_ref_child - 3530 - - - ql_super_ref - 2901 - - - index - 2 - - - child - 3530 - - - - - ql_super_ref - index - - - 12 - - - 1 - 2 - 2272 - - - 2 - 3 - 629 - - - - - - - ql_super_ref - child - - - 12 - - - 1 - 2 - 2272 - - - 2 - 3 - 629 - - - - - - - index - ql_super_ref - - - 12 - - - 629 - 630 - 1 - - - 2901 - 2902 - 1 - - - - - - - index - child - - - 12 - - - 629 - 630 - 1 - - - 2901 - 2902 - 1 - - - - - - - child - ql_super_ref - - - 12 - - - 1 - 2 - 3530 - - - - - - - child - index - - - 12 - - - 1 - 2 - 3530 - - - - - - - - - ql_super_ref_def - 2901 - - - id - 2901 - - - - - - ql_tokeninfo - 3524470 - - - id - 3524470 - - - kind - 31 - - - value - 159352 - - - - - id - kind - - - 12 - - - 1 - 2 - 3524470 - - - - - - - id - value - - - 12 - - - 1 - 2 - 3524470 - - - - - - - kind - id - - - 12 - - - 205 - 306 - 2 - - - 585 - 993 - 2 - - - 1158 - 1974 - 2 - - - 2234 - 2302 - 2 - - - 2344 - 2902 - 2 - - - 3766 - 4425 - 2 - - - 9053 - 13787 - 2 - - - 17184 - 20889 - 2 - - - 21612 - 24228 - 2 - - - 26200 - 47957 - 2 - - - 50826 - 52494 - 2 - - - 55406 - 58185 - 2 - - - 66480 - 83939 - 2 - - - 140334 - 204254 - 2 - - - 221079 - 512065 - 2 - - - 1875319 - 1875320 - 1 - - - - - - - kind - value - - - 12 - - - 1 - 2 - 11 - - - 2 - 3 - 2 - - - 3 - 4 - 2 - - - 5 - 7 - 2 - - - 12 - 18 - 2 - - - 65 - 141 - 2 - - - 635 - 858 - 2 - - - 2472 - 12791 - 2 - - - 15738 - 15845 - 2 - - - 18782 - 21406 - 2 - - - 42941 - 44802 - 2 - - - - - - - value - id - - - 12 - - - 1 - 2 - 96196 - - - 2 - 3 - 23735 - - - 3 - 4 - 11475 - - - 4 - 7 - 13411 - - - 7 - 41 - 12004 - - - 41 - 348424 - 2531 - - - - - - - value - kind - - - 12 - - - 1 - 2 - 142727 - - - 2 - 3 - 16072 - - - 3 - 5 - 553 - - - - - - - - - ql_type_alias_body_def - 817 - - - id - 817 - - - child - 817 - - - - - id - child - - - 12 - - - 1 - 2 - 817 - - - - - - - child - id - - - 12 - - - 1 - 2 - 817 - - - - - - - - - ql_type_expr_child - 51722 - - - ql_type_expr - 51722 - - - child - 51722 - - - - - ql_type_expr - child - - - 12 - - - 1 - 2 - 51722 - - - - - - - child - ql_type_expr - - - 12 - - - 1 - 2 - 51722 - - - - - - - - - ql_type_expr_def - 218057 - - - id - 218057 - - - - - - ql_type_expr_name - 166335 - - - ql_type_expr - 166335 - - - name - 166335 - - - - - ql_type_expr - name - - - 12 - - - 1 - 2 - 166335 - - - - - - - name - ql_type_expr - - - 12 - - - 1 - 2 - 166335 - - - - - - - - - ql_type_expr_qualifier - 34602 - - - ql_type_expr - 34602 - - - qualifier - 34602 - - - - - ql_type_expr - qualifier - - - 12 - - - 1 - 2 - 34602 - - - - - - - qualifier - ql_type_expr - - - 12 - - - 1 - 2 - 34602 - - - - - - - - - ql_type_union_body_child - 1174 - - - ql_type_union_body - 253 - - - index - 153 - - - child - 1174 - - - - - ql_type_union_body - index - - - 12 - - - 2 - 3 - 121 - - - 3 - 4 - 45 - - - 4 - 5 - 32 - - - 5 - 6 - 17 - - - 6 - 9 - 19 - - - 9 - 154 - 19 - - - - - - - ql_type_union_body - child - - - 12 - - - 2 - 3 - 121 - - - 3 - 4 - 45 - - - 4 - 5 - 32 - - - 5 - 6 - 17 - - - 6 - 9 - 19 - - - 9 - 154 - 19 - - - - - - - index - ql_type_union_body - - - 12 - - - 1 - 2 - 98 - - - 2 - 3 - 21 - - - 3 - 5 - 13 - - - 5 - 18 - 12 - - - 19 - 254 - 9 - - - - - - - index - child - - - 12 - - - 1 - 2 - 98 - - - 2 - 3 - 21 - - - 3 - 5 - 13 - - - 5 - 18 - 12 - - - 19 - 254 - 9 - - - - - - - child - ql_type_union_body - - - 12 - - - 1 - 2 - 1174 - - - - - - - child - index - - - 12 - - - 1 - 2 - 1174 - - - - - - - - - ql_type_union_body_def - 253 - - - id - 253 - - - - - - ql_unary_expr_child - 2316 - - - ql_unary_expr - 1158 - - - index - 2 - - - child - 2316 - - - - - ql_unary_expr - index - - - 12 - - - 2 - 3 - 1158 - - - - - - - ql_unary_expr - child - - - 12 - - - 2 - 3 - 1158 - - - - - - - index - ql_unary_expr - - - 12 - - - 1158 - 1159 - 2 - - - - - - - index - child - - - 12 - - - 1158 - 1159 - 2 - - - - - - - child - ql_unary_expr - - - 12 - - - 1 - 2 - 2316 - - - - - - - child - index - - - 12 - - - 1 - 2 - 2316 - - - - - - - - - ql_unary_expr_def - 1158 - - - id - 1158 - - - - - - ql_unqual_agg_body_as_exprs - 0 - - - ql_unqual_agg_body - 0 - - - index - 0 - - - as_exprs - 0 - - - - - ql_unqual_agg_body - index - - - 12 - - - - - - ql_unqual_agg_body - as_exprs - - - 12 - - - - - - index - ql_unqual_agg_body - - - 12 - - - - - - index - as_exprs - - - 12 - - - - - - as_exprs - ql_unqual_agg_body - - - 12 - - - 1 - 2 - 1 - - - - - - - as_exprs - index - - - 12 - - - 1 - 2 - 1 - - - - - - - - - ql_unqual_agg_body_child - 0 - - - ql_unqual_agg_body - 0 - - - index - 0 - - - child - 0 - - - - - ql_unqual_agg_body - index - - - 12 - - - - - - ql_unqual_agg_body - child - - - 12 - - - - - - index - ql_unqual_agg_body - - - 12 - - - - - - index - child - - - 12 - - - - - - child - ql_unqual_agg_body - - - 12 - - - 1 - 2 - 1 - - - - - - - child - index - - - 12 - - - 1 - 2 - 1 - - - - - - - - - ql_unqual_agg_body_def - 0 - - - id - 0 - - - - - - ql_unqual_agg_body_guard - 0 - - - ql_unqual_agg_body - 0 - - - guard - 0 - - - - - ql_unqual_agg_body - guard - - - 12 - - - 1 - 2 - 1 - - - - - - - guard - ql_unqual_agg_body - - - 12 - - - 1 - 2 - 1 - - - - - - - - - ql_var_decl_child - 228274 - - - ql_var_decl - 114137 - - - index - 2 - - - child - 228274 - - - - - ql_var_decl - index - - - 12 - - - 2 - 3 - 114137 - - - - - - - ql_var_decl - child - - - 12 - - - 2 - 3 - 114137 - - - - - - - index - ql_var_decl - - - 12 - - - 114137 - 114138 - 2 - - - - - - - index - child - - - 12 - - - 114137 - 114138 - 2 - - - - - - - child - ql_var_decl - - - 12 - - - 1 - 2 - 228274 - - - - - - - child - index - - - 12 - - - 1 - 2 - 228274 - - - - - - - - - ql_var_decl_def - 114137 - - - id - 114137 - - - - - - ql_var_name_def - 380908 - - - id - 380908 - - - child - 380908 - - - - - id - child - - - 12 - - - 1 - 2 - 380908 - - - - - - - child - id - - - 12 - - - 1 - 2 - 380908 - - - - - - - - - ql_variable_def - 369462 - - - id - 369462 - - - child - 369462 - - - - - id - child - - - 12 - - - 1 - 2 - 369462 - - - - - - - child - id - - - 12 - - - 1 - 2 - 369462 - - - - - - - - - sourceLocationPrefix - 1 - - - prefix - 1 - - - - - - yaml - 1726 - - - id - 1726 - - - kind - 3 - - - parent - 350 - - - idx - 21 - - - tag - 5 - - - tostring - 263 - - - - - id - kind - - - 12 - - - 1 - 2 - 1726 - - - - - - - id - parent - - - 12 - - - 1 - 2 - 1726 - - - - - - - id - idx - - - 12 - - - 1 - 2 - 1726 - - - - - - - id - tag - - - 12 - - - 1 - 2 - 1726 - - - - - - - id - tostring - - - 12 - - - 1 - 2 - 1726 - - - - - - - kind - id - - - 12 - - - 59 - 60 - 1 - - - 186 - 187 - 1 - - - 1481 - 1482 - 1 - - - - - - - kind - parent - - - 12 - - - 56 - 57 - 1 - - - 186 - 187 - 1 - - - 245 - 246 - 1 - - - - - - - kind - idx - - - 12 - - - 8 - 9 - 1 - - - 9 - 10 - 1 - - - 21 - 22 - 1 - - - - - - - kind - tag - - - 12 - - - 1 - 2 - 2 - - - 3 - 4 - 1 - - - - - - - kind - tostring - - - 12 - - - 33 - 34 - 1 - - - 68 - 69 - 1 - - - 162 - 163 - 1 - - - - - - - parent - id - - - 12 - - - 1 - 2 - 118 - - - 2 - 3 - 71 - - - 3 - 4 - 8 - - - 4 - 5 - 26 - - - 6 - 7 - 26 - - - 8 - 9 - 30 - - - 10 - 11 - 16 - - - 12 - 13 - 30 - - - 14 - 21 - 25 - - - - - - - parent - kind - - - 12 - - - 1 - 2 - 262 - - - 2 - 3 - 39 - - - 3 - 4 - 49 - - - - - - - parent - idx - - - 12 - - - 1 - 2 - 118 - - - 2 - 3 - 71 - - - 3 - 4 - 8 - - - 4 - 5 - 26 - - - 6 - 7 - 26 - - - 8 - 9 - 30 - - - 10 - 11 - 16 - - - 12 - 13 - 30 - - - 14 - 21 - 25 - - - - - - - parent - tag - - - 12 - - - 1 - 2 - 245 - - - 2 - 3 - 15 - - - 3 - 4 - 41 - - - 4 - 5 - 49 - - - - - - - parent - tostring - - - 12 - - - 1 - 2 - 118 - - - 2 - 3 - 71 - - - 3 - 4 - 22 - - - 4 - 5 - 35 - - - 5 - 8 - 10 - - - 8 - 9 - 29 - - - 9 - 12 - 27 - - - 12 - 17 - 29 - - - 17 - 19 - 9 - - - - - - - idx - id - - - 12 - - - 6 - 7 - 2 - - - 11 - 12 - 2 - - - 19 - 20 - 2 - - - 25 - 26 - 2 - - - 55 - 56 - 2 - - - 71 - 72 - 2 - - - 101 - 102 - 2 - - - 127 - 128 - 2 - - - 153 - 154 - 1 - - - 161 - 162 - 1 - - - 164 - 165 - 1 - - - 186 - 187 - 1 - - - 232 - 233 - 1 - - - - - - - idx - kind - - - 12 - - - 1 - 2 - 11 - - - 2 - 3 - 3 - - - 3 - 4 - 7 - - - - - - - idx - parent - - - 12 - - - 6 - 7 - 2 - - - 11 - 12 - 2 - - - 19 - 20 - 2 - - - 25 - 26 - 2 - - - 55 - 56 - 2 - - - 71 - 72 - 2 - - - 101 - 102 - 2 - - - 127 - 128 - 2 - - - 153 - 154 - 1 - - - 161 - 162 - 1 - - - 164 - 165 - 1 - - - 186 - 187 - 1 - - - 232 - 233 - 1 - - - - - - - idx - tag - - - 12 - - - 1 - 2 - 11 - - - 2 - 3 - 3 - - - 4 - 5 - 6 - - - 5 - 6 - 1 - - - - - - - idx - tostring - - - 12 - - - 1 - 2 - 2 - - - 2 - 3 - 1 - - - 4 - 5 - 3 - - - 7 - 8 - 1 - - - 9 - 10 - 2 - - - 10 - 11 - 1 - - - 14 - 15 - 1 - - - 16 - 17 - 1 - - - 20 - 21 - 1 - - - 24 - 25 - 2 - - - 27 - 28 - 1 - - - 29 - 30 - 1 - - - 37 - 38 - 1 - - - 59 - 60 - 1 - - - 80 - 81 - 1 - - - 81 - 82 - 1 - - - - - - - tag - id - - - 12 - - - 2 - 3 - 1 - - - 59 - 60 - 1 - - - 137 - 138 - 1 - - - 186 - 187 - 1 - - - 1342 - 1343 - 1 - - - - - - - tag - kind - - - 12 - - - 1 - 2 - 5 - - - - - - - tag - parent - - - 12 - - - 2 - 3 - 1 - - - 56 - 57 - 1 - - - 105 - 106 - 1 - - - 186 - 187 - 1 - - - 245 - 246 - 1 - - - - - - - tag - idx - - - 12 - - - 1 - 2 - 1 - - - 8 - 9 - 1 - - - 9 - 10 - 2 - - - 19 - 20 - 1 - - - - - - - tag - tostring - - - 12 - - - 1 - 2 - 1 - - - 2 - 3 - 1 - - - 33 - 34 - 1 - - - 68 - 69 - 1 - - - 159 - 160 - 1 - - - - - - - tostring - id - - - 12 - - - 1 - 2 - 141 - - - 2 - 3 - 28 - - - 3 - 4 - 16 - - - 4 - 7 - 22 - - - 7 - 10 - 18 - - - 10 - 17 - 21 - - - 18 - 145 - 17 - - - - - - - tostring - kind - - - 12 - - - 1 - 2 - 263 - - - - - - - tostring - parent - - - 12 - - - 1 - 2 - 142 - - - 2 - 3 - 27 - - - 3 - 4 - 16 - - - 4 - 7 - 22 - - - 7 - 10 - 21 - - - 10 - 19 - 21 - - - 19 - 106 - 14 - - - - - - - tostring - idx - - - 12 - - - 1 - 2 - 179 - - - 2 - 3 - 35 - - - 3 - 4 - 24 - - - 4 - 7 - 20 - - - 8 - 10 - 5 - - - - - - - tostring - tag - - - 12 - - - 1 - 2 - 263 - - - - - - - - - yaml_aliases - 0 - - - alias - 0 - - - target - 0 - - - - - alias - target - - - 12 - - - 1 - 2 - 1 - - - - - - - target - alias - - - 12 - - - - - - - - yaml_anchors - 0 - - - node - 0 - - - anchor - 0 - - - - - node - anchor - - - 12 - - - 1 - 2 - 1 - - - - - - - anchor - node - - - 12 - - - - - - - - yaml_errors - 0 - - - id - 0 - - - message - 0 - - - - - id - message - - - 12 - - - 1 - 2 - 1 - - - - - - - message - id - - - 12 - - - - - - - - yaml_locations - 1726 - - - locatable - 1726 - - - location - 1726 - - - - - locatable - location - - - 12 - - - 1 - 2 - 1726 - - - - - - - location - locatable - - - 12 - - - 1 - 2 - 1726 - - - - - - - - - yaml_scalars - 1481 - - - scalar - 1481 - - - style - 3 - - - value - 195 - - - - - scalar - style - - - 12 - - - 1 - 2 - 1481 - - - - - - - scalar - value - - - 12 - - - 1 - 2 - 1481 - - - - - - - style - scalar - - - 12 - - - 5 - 6 - 1 - - - 41 - 42 - 1 - - - 1435 - 1436 - 1 - - - - - - - style - value - - - 12 - - - 1 - 2 - 1 - - - 3 - 4 - 1 - - - 192 - 193 - 1 - - - - - - - value - scalar - - - 12 - - - 1 - 2 - 101 - - - 2 - 3 - 16 - - - 3 - 4 - 17 - - - 4 - 8 - 17 - - - 8 - 10 - 12 - - - 10 - 15 - 15 - - - 15 - 106 - 15 - - - 136 - 145 - 2 - - - - - - - value - style - - - 12 - - - 1 - 2 - 194 - - - 2 - 3 - 1 - - - - - - - - - databaseMetadata - 1 - - - metadataKey - 1 - - - value - 1 - - - - - metadataKey - value - - - 12 - - - - - - value - metadataKey - - - 12 - - - - - - - - overlayChangedFiles - 50 - - - path - 50 - - - - - + + From 3e3f1aaa3b9b08993c7d5bf26a6b5bd6265e54f5 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 29 Sep 2026 12:47:05 +0100 Subject: [PATCH 4/9] Handle anonymous top-level QL modules Give anonymous module declarations a source location so file-level overlay annotations apply to their declarations. Exclude valid top-level anonymous modules from the missing-name consistency check. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- ql/ql/src/codeql_ql/ast/Ast.qll | 6 +++++- ql/ql/src/codeql_ql/ast/internal/Module.qll | 3 ++- ql/ql/src/queries/overlay/InlineOverlayCaller.ql | 6 ++---- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/Ast.qll b/ql/ql/src/codeql_ql/ast/Ast.qll index 18e306495566..1dcbff8c8171 100644 --- a/ql/ql/src/codeql_ql/ast/Ast.qll +++ b/ql/ql/src/codeql_ql/ast/Ast.qll @@ -833,7 +833,11 @@ class Module extends TModule, ModuleDeclaration { Module() { this = TModule(mod) } - override Location getLocation() { result = mod.asLeft().getName().getLocation() } + override Location getLocation() { + result = mod.asLeft().getName().getLocation() + or + not exists(mod.asLeft().getName()) and result = mod.asLeft().getLocation() + } override string getAPrimaryQlClass() { result = "Module" } diff --git a/ql/ql/src/codeql_ql/ast/internal/Module.qll b/ql/ql/src/codeql_ql/ast/internal/Module.qll index 3b3035c77624..d02feb205127 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Module.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Module.qll @@ -375,7 +375,8 @@ module ModConsistency { query predicate noName(AstNode mod) { mod instanceof Module and - not exists(mod.(Module).getName()) + not exists(mod.(Module).getName()) and + not mod.getParent() instanceof TopLevel or mod instanceof ModuleExpr and not exists(mod.(ModuleExpr).getName()) diff --git a/ql/ql/src/queries/overlay/InlineOverlayCaller.ql b/ql/ql/src/queries/overlay/InlineOverlayCaller.ql index 0853dfde830e..c80352c1095a 100644 --- a/ql/ql/src/queries/overlay/InlineOverlayCaller.ql +++ b/ql/ql/src/queries/overlay/InlineOverlayCaller.ql @@ -16,10 +16,8 @@ predicate mayBeLocal(AstNode n) { or n.getAnAnnotation() instanceof OverlayLocalQ or - // The tree-sitter-ql grammar doesn't handle annotations on file-level - // module declarations correctly. To work around that, we consider any - // node in a file that contains an overlay[local] or overlay[local?] - // annotation to be potentially local. + // File-level module annotations belong to an anonymous `Module` sibling of + // the file's declarations, so consider every node in that file potentially local. exists(AstNode m | n.getLocation().getFile() = m.getLocation().getFile() and mayBeLocal(m) From 60ee1990693c56e42a1a9aa66d343a6f3a424c40 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 29 Sep 2026 19:48:06 +0100 Subject: [PATCH 5/9] Avoid expensive builtin predicate arity joins Match builtin predicate calls by name before computing their arity, and calculate the arity directly from builtin parameters. This avoids a broad virtual getArity dispatch that produced tens of billions of intermediate tuples without dbscheme statistics. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- ql/ql/src/codeql_ql/ast/internal/Predicate.qll | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll index b45eb2166f19..1d37086926fc 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll @@ -169,9 +169,14 @@ private module Cached { ) } + pragma[noinline] + private predicate builtinCandidate(BuiltinClassless pred, PredicateCall call) { + pred.getName() = call.getPredicateName() + } + private predicate resolveBuiltinPredicateCall(PredicateCall call, BuiltinClassless pred) { - call.getNumberOfArguments() = pred.getArity() and - call.getPredicateName() = pred.getName() + builtinCandidate(pred, call) and + call.getNumberOfArguments() = count(int i | exists(pred.getParameterType(i))) } cached From e47aabeecdf6251720a11c111c0c24689dd27cb1 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 30 Sep 2026 00:20:32 +0100 Subject: [PATCH 6/9] Avoid recursive same-file overlay joins Use directly local declarations as witnesses when propagating file-level overlay annotations. File equality already provides the required closure, while the recursive formulation materialized a multi-billion-row location join. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- ql/ql/src/queries/overlay/InlineOverlayCaller.ql | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ql/ql/src/queries/overlay/InlineOverlayCaller.ql b/ql/ql/src/queries/overlay/InlineOverlayCaller.ql index c80352c1095a..b0d9abb19e88 100644 --- a/ql/ql/src/queries/overlay/InlineOverlayCaller.ql +++ b/ql/ql/src/queries/overlay/InlineOverlayCaller.ql @@ -11,16 +11,20 @@ import ql -predicate mayBeLocal(AstNode n) { +private predicate isDirectlyLocal(AstNode n) { n.getAnAnnotation() instanceof OverlayLocal or n.getAnAnnotation() instanceof OverlayLocalQ +} + +predicate mayBeLocal(AstNode n) { + isDirectlyLocal(n) or // File-level module annotations belong to an anonymous `Module` sibling of // the file's declarations, so consider every node in that file potentially local. exists(AstNode m | n.getLocation().getFile() = m.getLocation().getFile() and - mayBeLocal(m) + isDirectlyLocal(m) ) } From 8090563c339436ac3cd25a01c2f63d60a3505304 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 30 Sep 2026 23:09:20 +0100 Subject: [PATCH 7/9] Join builtin calls on name and arity Materialize separate builtin and call relations keyed by both name and arity so predicate resolution joins on both selective columns simultaneously. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- ql/ql/src/codeql_ql/ast/internal/Predicate.qll | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll index 1d37086926fc..e46e36b16dac 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Predicate.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Predicate.qll @@ -170,13 +170,19 @@ private module Cached { } pragma[noinline] - private predicate builtinCandidate(BuiltinClassless pred, PredicateCall call) { - pred.getName() = call.getPredicateName() + private predicate builtin(BuiltinClassless pred, string name, int arity) { + name = pred.getName() and + arity = count(int i | exists(pred.getParameterType(i))) + } + + pragma[noinline] + private predicate call(PredicateCall call, string name, int arity) { + name = call.getPredicateName() and + arity = call.getNumberOfArguments() } private predicate resolveBuiltinPredicateCall(PredicateCall call, BuiltinClassless pred) { - builtinCandidate(pred, call) and - call.getNumberOfArguments() = count(int i | exists(pred.getParameterType(i))) + exists(string name, int arity | builtin(pred, name, arity) and call(call, name, arity)) } cached From 98258f4390b5e82bf681097b54590225972f74ee Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 1 Oct 2026 09:41:17 +0100 Subject: [PATCH 8/9] Avoid broad QL AST ancestor closures Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- ql/ql/src/codeql_ql/ast/internal/Module.qll | 10 +++++----- ql/ql/src/codeql_ql/ast/internal/Variable.qll | 12 ++++++------ ql/ql/src/queries/style/ConsistentAlertMessage.ql | 10 ++++++++-- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/internal/Module.qll b/ql/ql/src/codeql_ql/ast/internal/Module.qll index d02feb205127..6918b468a848 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Module.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Module.qll @@ -170,13 +170,13 @@ private predicate resolveImportQualifier(Import imp, ContainerOrModule m) { cached private module Cached { - private AstNode parent(AstNode n) { - result = n.getParent() and - not n instanceof Module + private Module getEnclosingModule0(AstNode n) { + result = n.getParent() + or + not n.getParent() instanceof Module and + result = getEnclosingModule0(n.getParent()) } - private Module getEnclosingModule0(AstNode n) { result = parent*(n.getParent()) } - cached ContainerOrModule getEnclosingModule(AstNode n) { result = TModule(getEnclosingModule0(n)) diff --git a/ql/ql/src/codeql_ql/ast/internal/Variable.qll b/ql/ql/src/codeql_ql/ast/internal/Variable.qll index aa62c3964048..d76d3d700c9a 100644 --- a/ql/ql/src/codeql_ql/ast/internal/Variable.qll +++ b/ql/ql/src/codeql_ql/ast/internal/Variable.qll @@ -51,13 +51,13 @@ class VariableScope extends TScope, AstNode { } } -private AstNode parent(AstNode child) { - result = child.getParent() and - not child instanceof VariableScope -} - pragma[nomagic] -VariableScope scopeOf(AstNode n) { result = parent*(n.getParent()) } +VariableScope scopeOf(AstNode n) { + result = n.getParent() + or + not n.getParent() instanceof VariableScope and + result = scopeOf(n.getParent()) +} private string getName(Identifier i) { exists(QL::Variable v | diff --git a/ql/ql/src/queries/style/ConsistentAlertMessage.ql b/ql/ql/src/queries/style/ConsistentAlertMessage.ql index c2d0c9be1805..beb1d7b5f4da 100644 --- a/ql/ql/src/queries/style/ConsistentAlertMessage.ql +++ b/ql/ql/src/queries/style/ConsistentAlertMessage.ql @@ -10,6 +10,12 @@ import ql +private predicate isInMessage(AstNode node, Select sel) { + node = sel.getExpr(any(int i | i % 2 = 1)) + or + exists(AstNode parent | isInMessage(parent, sel) and node.getParent() = parent) +} + /** * Gets a string representation of the entire message in `sel`. * Ignores everything that is not a string constant. @@ -18,7 +24,7 @@ string getMessage(Select sel) { result = strictconcat(String e, Location l | // is child of an expression in the select (in an odd-indexed position, that's where the message is) - e.getParent*() = sel.getExpr(any(int i | i % 2 = 1)) and l = e.getFullLocation() + isInMessage(e, sel) and l = e.getFullLocation() | e.getValue(), " | " order by l.getStartLine(), l.getStartColumn() ).trim() @@ -36,7 +42,7 @@ string getSelectFingerPrint(Select sel) { doc.getQueryId() // query ID (without lang) + "-" + doc.getQueryKind() // @kind + "-" + - strictcount(String e | e.getParent*() = sel.getExpr(any(int i | i % 2 = 1))) // the number of string constants in the select + strictcount(String e | isInMessage(e, sel)) // the number of string constants in the select + "-" + count(sel.getExpr(_)) // and the total number of expressions in the select ) } From c2a9eaf65633bd6307959d296e5a73aafec67a93 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 1 Oct 2026 12:26:09 +0100 Subject: [PATCH 9/9] Avoid broad location joins in NonDocBlock Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- ql/ql/src/queries/style/NonDocBlock.ql | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ql/ql/src/queries/style/NonDocBlock.ql b/ql/ql/src/queries/style/NonDocBlock.ql index 61efce0b9027..1031afa40205 100644 --- a/ql/ql/src/queries/style/NonDocBlock.ql +++ b/ql/ql/src/queries/style/NonDocBlock.ql @@ -69,11 +69,19 @@ BlockComment getCommentAtStart(File file, int startLine) { result.getLocation().getStartLine() = startLine } +pragma[noinline] +private BlockComment getCommentFor(AstNode node) { + exists(Location loc | + canHaveQLDoc(node) and + loc = pragma[only_bind_out](node.getLocation()) and + result = getCommentAtEnd(loc.getFile(), loc.getStartLine() - 1) + ) +} + from AstNode node, BlockComment comment, string nodeDescrip where ( - canHaveQLDoc(node) and - comment = getCommentAtEnd(node.getLocation().getFile(), node.getLocation().getStartLine() - 1) and + comment = getCommentFor(node) and nodeDescrip = "the below code" or node instanceof TopLevel and