YugabyteDB (2.13.0.0-b42, bfc6a6643e7399ac8a0e81d06a3ee6d6571b33ab)

Coverage Report

Created: 2022-03-09 17:30

/Users/deen/code/yugabyte-db/src/yb/yql/cql/ql/ptree/list_node.h
Line
Count
Source (jump to first uncovered line)
1
//--------------------------------------------------------------------------------------------------
2
// Copyright (c) YugaByte, Inc.
3
//
4
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5
// in compliance with the License.  You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software distributed under the License
10
// is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
// or implied.  See the License for the specific language governing permissions and limitations
12
// under the License.
13
//
14
//
15
// List Node Declaration.
16
//
17
// This modules includes specifications for nodes that contain a list of tree nodes.
18
//
19
// YCQL audit expects these nodes to be DMLs encased between PTStartTransaction and PTCommit,
20
// which is verified during Analyze step.
21
//--------------------------------------------------------------------------------------------------
22
23
#ifndef YB_YQL_CQL_QL_PTREE_LIST_NODE_H_
24
#define YB_YQL_CQL_QL_PTREE_LIST_NODE_H_
25
26
#include "yb/util/math_util.h"
27
#include "yb/util/memory/arena.h"
28
#include "yb/util/status.h"
29
30
#include "yb/yql/cql/ql/ptree/tree_node.h"
31
#include "yb/yql/cql/ql/util/errcodes.h"
32
33
namespace yb {
34
namespace ql {
35
36
// Operations that apply to each treenode of this list.
37
template<typename ContextType, typename NodeType = TreeNode>
38
using TreeNodePtrOperator = std::function<Status(NodeType*, ContextType*)>;
39
40
// TreeNode base class.
41
template<typename NodeType>
42
class TreeListNode : public TreeNode {
43
 public:
44
  //------------------------------------------------------------------------------------------------
45
  // Public types.
46
  typedef MCSharedPtr<TreeListNode> SharedPtr;
47
  typedef MCSharedPtr<const TreeListNode> SharedPtrConst;
48
49
  //------------------------------------------------------------------------------------------------
50
  // Public functions.
51
  explicit TreeListNode(MemoryContext *memory_context,
52
                        YBLocationPtr loc,
53
                        const MCSharedPtr<NodeType>& tnode = nullptr)
54
      : TreeNode(memory_context, loc),
55
1.01M
        node_list_(memory_context) {
56
1.01M
    Append(tnode);
57
1.01M
  }
_ZN2yb2ql12TreeListNodeINS0_8TreeNodeEEC2EPNS_8internal9ArenaBaseINS4_11ArenaTraitsEEENSt3__110shared_ptrINS0_10YBLocationEEERKNSA_IS2_EE
Line
Count
Source
55
335k
        node_list_(memory_context) {
56
335k
    Append(tnode);
57
335k
  }
_ZN2yb2ql12TreeListNodeINS0_11PTTypeFieldEEC2EPNS_8internal9ArenaBaseINS4_11ArenaTraitsEEENSt3__110shared_ptrINS0_10YBLocationEEERKNSA_IS2_EE
Line
Count
Source
55
84
        node_list_(memory_context) {
56
84
    Append(tnode);
57
84
  }
_ZN2yb2ql12TreeListNodeINS0_18PTKeyspacePropertyEEC2EPNS_8internal9ArenaBaseINS4_11ArenaTraitsEEENSt3__110shared_ptrINS0_10YBLocationEEERKNSA_IS2_EE
Line
Count
Source
55
258
        node_list_(memory_context) {
56
258
    Append(tnode);
57
258
  }
_ZN2yb2ql12TreeListNodeINS0_15PTTablePropertyEEC2EPNS_8internal9ArenaBaseINS4_11ArenaTraitsEEENSt3__110shared_ptrINS0_10YBLocationEEERKNSA_IS2_EE
Line
Count
Source
55
1.72k
        node_list_(memory_context) {
56
1.72k
    Append(tnode);
57
1.72k
  }
_ZN2yb2ql12TreeListNodeINS0_15PTQualifiedNameEEC2EPNS_8internal9ArenaBaseINS4_11ArenaTraitsEEENSt3__110shared_ptrINS0_10YBLocationEEERKNSA_IS2_EE
Line
Count
Source
55
54.0k
        node_list_(memory_context) {
56
54.0k
    Append(tnode);
57
54.0k
  }
_ZN2yb2ql12TreeListNodeINS0_9PTOrderByEEC2EPNS_8internal9ArenaBaseINS4_11ArenaTraitsEEENSt3__110shared_ptrINS0_10YBLocationEEERKNSA_IS2_EE
Line
Count
Source
55
214
        node_list_(memory_context) {
56
214
    Append(tnode);
57
214
  }
_ZN2yb2ql12TreeListNodeINS0_6PTExprEEC2EPNS_8internal9ArenaBaseINS4_11ArenaTraitsEEENSt3__110shared_ptrINS0_10YBLocationEEERKNSA_IS2_EE
Line
Count
Source
55
313k
        node_list_(memory_context) {
56
313k
    Append(tnode);
57
313k
  }
_ZN2yb2ql12TreeListNodeINS0_23PTDmlUsingClauseElementEEC2EPNS_8internal9ArenaBaseINS4_11ArenaTraitsEEENSt3__110shared_ptrINS0_10YBLocationEEERKNSA_IS2_EE
Line
Count
Source
55
212
        node_list_(memory_context) {
56
212
    Append(tnode);
57
212
  }
_ZN2yb2ql12TreeListNodeINS0_8PTAssignEEC2EPNS_8internal9ArenaBaseINS4_11ArenaTraitsEEENSt3__110shared_ptrINS0_10YBLocationEEERKNSA_IS2_EE
Line
Count
Source
55
3.33k
        node_list_(memory_context) {
56
3.33k
    Append(tnode);
57
3.33k
  }
_ZN2yb2ql12TreeListNodeINS0_18PTDmlWritePropertyEEC2EPNS_8internal9ArenaBaseINS4_11ArenaTraitsEEENSt3__110shared_ptrINS0_10YBLocationEEERKNSA_IS2_EE
Line
Count
Source
55
100
        node_list_(memory_context) {
56
100
    Append(tnode);
57
100
  }
_ZN2yb2ql12TreeListNodeINS0_10PTTableRefEEC2EPNS_8internal9ArenaBaseINS4_11ArenaTraitsEEENSt3__110shared_ptrINS0_10YBLocationEEERKNSA_IS2_EE
Line
Count
Source
55
261k
        node_list_(memory_context) {
56
261k
    Append(tnode);
57
261k
  }
_ZN2yb2ql12TreeListNodeINS0_12PTRoleOptionEEC2EPNS_8internal9ArenaBaseINS4_11ArenaTraitsEEENSt3__110shared_ptrINS0_10YBLocationEEERKNSA_IS2_EE
Line
Count
Source
55
797
        node_list_(memory_context) {
56
797
    Append(tnode);
57
797
  }
_ZN2yb2ql12TreeListNodeINS1_INS0_6PTExprEEEEC2EPNS_8internal9ArenaBaseINS5_11ArenaTraitsEEENSt3__110shared_ptrINS0_10YBLocationEEERKNSB_IS3_EE
Line
Count
Source
55
47.3k
        node_list_(memory_context) {
56
47.3k
    Append(tnode);
57
47.3k
  }
58
1.03M
  virtual ~TreeListNode() {
59
1.03M
  }
_ZN2yb2ql12TreeListNodeINS0_8TreeNodeEED2Ev
Line
Count
Source
58
341k
  virtual ~TreeListNode() {
59
341k
  }
_ZN2yb2ql12TreeListNodeINS0_11PTTypeFieldEED2Ev
Line
Count
Source
58
57
  virtual ~TreeListNode() {
59
57
  }
_ZN2yb2ql12TreeListNodeINS0_18PTKeyspacePropertyEED2Ev
Line
Count
Source
58
178
  virtual ~TreeListNode() {
59
178
  }
_ZN2yb2ql12TreeListNodeINS0_15PTTablePropertyEED2Ev
Line
Count
Source
58
1.64k
  virtual ~TreeListNode() {
59
1.64k
  }
_ZN2yb2ql12TreeListNodeINS0_15PTQualifiedNameEED2Ev
Line
Count
Source
58
53.3k
  virtual ~TreeListNode() {
59
53.3k
  }
_ZN2yb2ql12TreeListNodeINS0_9PTOrderByEED2Ev
Line
Count
Source
58
212
  virtual ~TreeListNode() {
59
212
  }
_ZN2yb2ql12TreeListNodeINS0_6PTExprEED2Ev
Line
Count
Source
58
316k
  virtual ~TreeListNode() {
59
316k
  }
_ZN2yb2ql12TreeListNodeINS0_23PTDmlUsingClauseElementEED2Ev
Line
Count
Source
58
193
  virtual ~TreeListNode() {
59
193
  }
_ZN2yb2ql12TreeListNodeINS0_8PTAssignEED2Ev
Line
Count
Source
58
3.21k
  virtual ~TreeListNode() {
59
3.21k
  }
_ZN2yb2ql12TreeListNodeINS0_18PTDmlWritePropertyEED2Ev
Line
Count
Source
58
64
  virtual ~TreeListNode() {
59
64
  }
_ZN2yb2ql12TreeListNodeINS0_10PTTableRefEED2Ev
Line
Count
Source
58
266k
  virtual ~TreeListNode() {
59
266k
  }
_ZN2yb2ql12TreeListNodeINS0_12PTRoleOptionEED2Ev
Line
Count
Source
58
797
  virtual ~TreeListNode() {
59
797
  }
_ZN2yb2ql12TreeListNodeINS1_INS0_6PTExprEEEED2Ev
Line
Count
Source
58
46.7k
  virtual ~TreeListNode() {
59
46.7k
  }
60
61
  // Node type.
62
501k
  virtual TreeNodeOpcode opcode() const override {
63
501k
    return TreeNodeOpcode::kPTListNode;
64
501k
  }
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS0_10PTPropertyEE6opcodeEv
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS0_15PTTablePropertyEE6opcodeEv
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS0_18PTKeyspacePropertyEE6opcodeEv
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS0_23PTDmlUsingClauseElementEE6opcodeEv
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS0_18PTDmlWritePropertyEE6opcodeEv
_ZNK2yb2ql12TreeListNodeINS0_8TreeNodeEE6opcodeEv
Line
Count
Source
62
501k
  virtual TreeNodeOpcode opcode() const override {
63
501k
    return TreeNodeOpcode::kPTListNode;
64
501k
  }
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS0_11PTTypeFieldEE6opcodeEv
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS0_15PTQualifiedNameEE6opcodeEv
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS0_9PTOrderByEE6opcodeEv
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS0_6PTExprEE6opcodeEv
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS0_8PTAssignEE6opcodeEv
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS0_10PTTableRefEE6opcodeEv
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS0_12PTRoleOptionEE6opcodeEv
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS1_INS0_6PTExprEEEE6opcodeEv
65
66
  // Add a tree node at the end.
67
1.72M
  void Append(const MCSharedPtr<NodeType>& tnode) {
68
1.72M
    if (tnode != nullptr) {
69
1.66M
      node_list_.push_back(tnode);
70
1.66M
    }
71
1.72M
  }
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_10PTPropertyEE6AppendERKNSt3__110shared_ptrIS2_EE
_ZN2yb2ql12TreeListNodeINS0_18PTKeyspacePropertyEE6AppendERKNSt3__110shared_ptrIS2_EE
Line
Count
Source
67
504
  void Append(const MCSharedPtr<NodeType>& tnode) {
68
504
    if (tnode != nullptr) {
69
388
      node_list_.push_back(tnode);
70
388
    }
71
504
  }
_ZN2yb2ql12TreeListNodeINS0_15PTTablePropertyEE6AppendERKNSt3__110shared_ptrIS2_EE
Line
Count
Source
67
3.06k
  void Append(const MCSharedPtr<NodeType>& tnode) {
68
3.06k
    if (tnode != nullptr) {
69
2.53k
      node_list_.push_back(tnode);
70
2.53k
    }
71
3.06k
  }
_ZN2yb2ql12TreeListNodeINS0_23PTDmlUsingClauseElementEE6AppendERKNSt3__110shared_ptrIS2_EE
Line
Count
Source
67
429
  void Append(const MCSharedPtr<NodeType>& tnode) {
68
429
    if (tnode != nullptr) {
69
217
      node_list_.push_back(tnode);
70
217
    }
71
429
  }
_ZN2yb2ql12TreeListNodeINS0_18PTDmlWritePropertyEE6AppendERKNSt3__110shared_ptrIS2_EE
Line
Count
Source
67
152
  void Append(const MCSharedPtr<NodeType>& tnode) {
68
152
    if (tnode != nullptr) {
69
102
      node_list_.push_back(tnode);
70
102
    }
71
152
  }
_ZN2yb2ql12TreeListNodeINS0_8TreeNodeEE6AppendERKNSt3__110shared_ptrIS2_EE
Line
Count
Source
67
347k
  void Append(const MCSharedPtr<NodeType>& tnode) {
68
347k
    if (tnode != nullptr) {
69
346k
      node_list_.push_back(tnode);
70
346k
    }
71
347k
  }
_ZN2yb2ql12TreeListNodeINS0_11PTTypeFieldEE6AppendERKNSt3__110shared_ptrIS2_EE
Line
Count
Source
67
130
  void Append(const MCSharedPtr<NodeType>& tnode) {
68
130
    if (tnode != nullptr) {
69
130
      node_list_.push_back(tnode);
70
130
    }
71
130
  }
_ZN2yb2ql12TreeListNodeINS0_15PTQualifiedNameEE6AppendERKNSt3__110shared_ptrIS2_EE
Line
Count
Source
67
233k
  void Append(const MCSharedPtr<NodeType>& tnode) {
68
233k
    if (tnode != nullptr) {
69
233k
      node_list_.push_back(tnode);
70
233k
    }
71
233k
  }
_ZN2yb2ql12TreeListNodeINS0_9PTOrderByEE6AppendERKNSt3__110shared_ptrIS2_EE
Line
Count
Source
67
312
  void Append(const MCSharedPtr<NodeType>& tnode) {
68
312
    if (tnode != nullptr) {
69
312
      node_list_.push_back(tnode);
70
312
    }
71
312
  }
_ZN2yb2ql12TreeListNodeINS0_6PTExprEE6AppendERKNSt3__110shared_ptrIS2_EE
Line
Count
Source
67
767k
  void Append(const MCSharedPtr<NodeType>& tnode) {
68
767k
    if (tnode != nullptr) {
69
764k
      node_list_.push_back(tnode);
70
764k
    }
71
767k
  }
_ZN2yb2ql12TreeListNodeINS0_8PTAssignEE6AppendERKNSt3__110shared_ptrIS2_EE
Line
Count
Source
67
7.03k
  void Append(const MCSharedPtr<NodeType>& tnode) {
68
7.03k
    if (tnode != nullptr) {
69
7.03k
      node_list_.push_back(tnode);
70
7.03k
    }
71
7.03k
  }
_ZN2yb2ql12TreeListNodeINS0_10PTTableRefEE6AppendERKNSt3__110shared_ptrIS2_EE
Line
Count
Source
67
266k
  void Append(const MCSharedPtr<NodeType>& tnode) {
68
266k
    if (tnode != nullptr) {
69
262k
      node_list_.push_back(tnode);
70
262k
    }
71
266k
  }
_ZN2yb2ql12TreeListNodeINS0_12PTRoleOptionEE6AppendERKNSt3__110shared_ptrIS2_EE
Line
Count
Source
67
2.19k
  void Append(const MCSharedPtr<NodeType>& tnode) {
68
2.19k
    if (tnode != nullptr) {
69
2.19k
      node_list_.push_back(tnode);
70
2.19k
    }
71
2.19k
  }
_ZN2yb2ql12TreeListNodeINS1_INS0_6PTExprEEEE6AppendERKNSt3__110shared_ptrIS3_EE
Line
Count
Source
67
94.7k
  void Append(const MCSharedPtr<NodeType>& tnode) {
68
94.7k
    if (tnode != nullptr) {
69
47.3k
      node_list_.push_back(tnode);
70
47.3k
    }
71
94.7k
  }
72
73
  // Move all listed entries from "tnode" to this node. The list in tnode will become empty after
74
  // this call.
75
1
  void Splice(const MCSharedPtr<TreeListNode>& tnode) {
76
1
    if (tnode != nullptr) {
77
      // tnode->node_list_ would be empty after this call to "splice".
78
1
      node_list_.splice(node_list_.end(), tnode->node_list_);
79
1
    }
80
1
  }
81
82
  // Add a tree node at the beginning.
83
627
  void Prepend(const MCSharedPtr<NodeType>& tnode) {
84
627
    if (tnode != nullptr) {
85
627
      node_list_.push_front(tnode);
86
627
    }
87
627
  }
_ZN2yb2ql12TreeListNodeINS0_8TreeNodeEE7PrependERKNSt3__110shared_ptrIS2_EE
Line
Count
Source
83
63
  void Prepend(const MCSharedPtr<NodeType>& tnode) {
84
63
    if (tnode != nullptr) {
85
63
      node_list_.push_front(tnode);
86
63
    }
87
63
  }
_ZN2yb2ql12TreeListNodeINS0_6PTExprEE7PrependERKNSt3__110shared_ptrIS2_EE
Line
Count
Source
83
564
  void Prepend(const MCSharedPtr<NodeType>& tnode) {
84
564
    if (tnode != nullptr) {
85
564
      node_list_.push_front(tnode);
86
564
    }
87
564
  }
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS1_INS0_6PTExprEEEE7PrependERKNSt3__110shared_ptrIS3_EE
88
89
  template<typename... TypeArgs>
90
983k
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
983k
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
983k
  }
_ZN2yb2ql12TreeListNodeINS0_8TreeNodeEE10MakeSharedIJNSt3__110shared_ptrINS0_8LocationEEERNS6_IS2_EEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSC_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
334k
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
334k
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
334k
  }
_ZN2yb2ql12TreeListNodeINS0_11PTTypeFieldEE10MakeSharedIJNSt3__110shared_ptrINS0_8LocationEEERNS6_IS2_EEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSC_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
84
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
84
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
84
  }
_ZN2yb2ql12TreeListNodeINS0_8TreeNodeEE10MakeSharedIJNSt3__110shared_ptrINS0_8LocationEEERNS6_INS0_8PTStaticEEEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSD_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
46
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
46
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
46
  }
_ZN2yb2ql12TreeListNodeINS0_8TreeNodeEE10MakeSharedIJNSt3__110shared_ptrINS0_8LocationEEERNS6_INS0_13PTIndexColumnEEEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSD_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
1.81k
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
1.81k
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
1.81k
  }
_ZN2yb2ql12TreeListNodeINS0_8TreeNodeEE10MakeSharedIJNSt3__110shared_ptrINS0_8LocationEEERNS6_IS3_EEEEES9_PNS_8internal9ArenaBaseINSB_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
870
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
870
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
870
  }
_ZN2yb2ql12TreeListNodeINS0_15PTQualifiedNameEE10MakeSharedIJNSt3__110shared_ptrINS0_8LocationEEERNS6_IS2_EEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSC_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
54.0k
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
54.0k
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
54.0k
  }
_ZN2yb2ql12TreeListNodeINS0_9PTOrderByEE10MakeSharedIJNSt3__110shared_ptrINS0_8LocationEEERNS6_IS2_EEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSC_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
214
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
214
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
214
  }
_ZN2yb2ql12TreeListNodeINS0_6PTExprEE10MakeSharedIJNSt3__110shared_ptrINS0_8LocationEEERNS6_IS2_EEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSC_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
317k
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
317k
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
317k
  }
_ZN2yb2ql12TreeListNodeINS0_8PTAssignEE10MakeSharedIJNSt3__110shared_ptrINS0_8LocationEEERNS6_IS2_EEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSC_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
3.33k
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
3.33k
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
3.33k
  }
_ZN2yb2ql12TreeListNodeINS0_6PTExprEE10MakeSharedIJNSt3__110shared_ptrINS0_8LocationEEEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSA_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
263
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
263
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
263
  }
_ZN2yb2ql12TreeListNodeINS0_10PTTableRefEE10MakeSharedIJNSt3__110shared_ptrINS0_8LocationEEERNS6_IS2_EEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSC_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
267k
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
267k
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
267k
  }
_ZN2yb2ql12TreeListNodeINS0_6PTExprEE10MakeSharedIJNSt3__110shared_ptrINS0_8LocationEEERNS6_INS0_14PTJsonOperatorEEEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSD_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
1.05k
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
1.05k
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
1.05k
  }
_ZN2yb2ql12TreeListNodeINS0_12PTRoleOptionEE10MakeSharedIJNSt3__110shared_ptrINS0_8LocationEEERNS6_IS2_EEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSC_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
797
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
797
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
797
  }
_ZN2yb2ql12TreeListNodeINS0_8TreeNodeEE10MakeSharedIJNSt3__110shared_ptrINS0_8LocationEEERNS6_INS0_12PTPrimaryKeyEEEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSD_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
507
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
507
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
507
  }
_ZN2yb2ql12TreeListNodeINS0_18PTKeyspacePropertyEE10MakeSharedIJRNSt3__110shared_ptrINS0_10YBLocationEEEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSB_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
116
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
116
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
116
  }
_ZN2yb2ql12TreeListNodeINS0_15PTTablePropertyEE10MakeSharedIJRNSt3__110shared_ptrINS0_10YBLocationEEEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSB_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
523
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
523
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
523
  }
_ZN2yb2ql12TreeListNodeINS0_18PTDmlWritePropertyEE10MakeSharedIJRNSt3__110shared_ptrINS0_10YBLocationEEEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSB_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
50
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
50
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
50
  }
_ZN2yb2ql12TreeListNodeINS0_6PTExprEE10MakeSharedIJRKNSt3__110shared_ptrINS0_10YBLocationEEEEEENS6_IS3_EEPNS_8internal9ArenaBaseINSC_11ArenaTraitsEEEDpOT_
Line
Count
Source
90
531
  inline static TreeListNode::SharedPtr MakeShared(MemoryContext *memctx, TypeArgs&&... args) {
91
531
    return MCMakeShared<TreeListNode>(memctx, std::forward<TypeArgs>(args)...);
92
531
  }
93
94
  // Run semantics analysis on this node.
95
538k
  CHECKED_STATUS Analyze(SemContext *sem_context) override {
96
818k
    for (auto tnode : node_list_) {
97
818k
      RETURN_NOT_OK(tnode->Analyze(sem_context));
98
818k
    }
99
538k
    return Status::OK();
100
538k
  }
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_10PTPropertyEE7AnalyzeEPNS0_10SemContextE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_15PTTablePropertyEE7AnalyzeEPNS0_10SemContextE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_18PTKeyspacePropertyEE7AnalyzeEPNS0_10SemContextE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_23PTDmlUsingClauseElementEE7AnalyzeEPNS0_10SemContextE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_18PTDmlWritePropertyEE7AnalyzeEPNS0_10SemContextE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_18PTKeyspacePropertyEE7AnalyzeEPNS0_10SemContextE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_15PTTablePropertyEE7AnalyzeEPNS0_10SemContextE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_23PTDmlUsingClauseElementEE7AnalyzeEPNS0_10SemContextE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_18PTDmlWritePropertyEE7AnalyzeEPNS0_10SemContextE
_ZN2yb2ql12TreeListNodeINS0_8TreeNodeEE7AnalyzeEPNS0_10SemContextE
Line
Count
Source
95
4.12k
  CHECKED_STATUS Analyze(SemContext *sem_context) override {
96
13.4k
    for (auto tnode : node_list_) {
97
13.4k
      RETURN_NOT_OK(tnode->Analyze(sem_context));
98
13.4k
    }
99
4.08k
    return Status::OK();
100
4.12k
  }
_ZN2yb2ql12TreeListNodeINS0_11PTTypeFieldEE7AnalyzeEPNS0_10SemContextE
Line
Count
Source
95
80
  CHECKED_STATUS Analyze(SemContext *sem_context) override {
96
126
    for (auto tnode : node_list_) {
97
126
      RETURN_NOT_OK(tnode->Analyze(sem_context));
98
126
    }
99
64
    return Status::OK();
100
80
  }
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_15PTQualifiedNameEE7AnalyzeEPNS0_10SemContextE
_ZN2yb2ql12TreeListNodeINS0_9PTOrderByEE7AnalyzeEPNS0_10SemContextE
Line
Count
Source
95
214
  CHECKED_STATUS Analyze(SemContext *sem_context) override {
96
312
    for (auto tnode : node_list_) {
97
312
      RETURN_NOT_OK(tnode->Analyze(sem_context));
98
312
    }
99
213
    return Status::OK();
100
214
  }
_ZN2yb2ql12TreeListNodeINS0_6PTExprEE7AnalyzeEPNS0_10SemContextE
Line
Count
Source
95
269k
  CHECKED_STATUS Analyze(SemContext *sem_context) override {
96
541k
    for (auto tnode : node_list_) {
97
541k
      RETURN_NOT_OK(tnode->Analyze(sem_context));
98
541k
    }
99
269k
    return Status::OK();
100
269k
  }
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_8PTAssignEE7AnalyzeEPNS0_10SemContextE
_ZN2yb2ql12TreeListNodeINS0_10PTTableRefEE7AnalyzeEPNS0_10SemContextE
Line
Count
Source
95
264k
  CHECKED_STATUS Analyze(SemContext *sem_context) override {
96
260k
    for (auto tnode : node_list_) {
97
260k
      RETURN_NOT_OK(tnode->Analyze(sem_context));
98
260k
    }
99
264k
    return Status::OK();
100
264k
  }
_ZN2yb2ql12TreeListNodeINS0_12PTRoleOptionEE7AnalyzeEPNS0_10SemContextE
Line
Count
Source
95
797
  CHECKED_STATUS Analyze(SemContext *sem_context) override {
96
2.19k
    for (auto tnode : node_list_) {
97
2.19k
      RETURN_NOT_OK(tnode->Analyze(sem_context));
98
2.19k
    }
99
797
    return Status::OK();
100
797
  }
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS1_INS0_6PTExprEEEE7AnalyzeEPNS0_10SemContextE
101
102
  virtual CHECKED_STATUS Analyze(SemContext *sem_context,
103
3.38k
                                 TreeNodePtrOperator<SemContext, NodeType> node_op) {
104
7.08k
    for (auto tnode : node_list_) {
105
7.08k
      RETURN_NOT_OK(node_op(tnode.get(), sem_context));
106
7.08k
    }
107
3.20k
    return Status::OK();
108
3.38k
  }
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_10PTPropertyEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_15PTTablePropertyEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_18PTKeyspacePropertyEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_23PTDmlUsingClauseElementEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_18PTDmlWritePropertyEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_18PTKeyspacePropertyEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_15PTTablePropertyEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_23PTDmlUsingClauseElementEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_18PTDmlWritePropertyEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_8TreeNodeEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_11PTTypeFieldEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_15PTQualifiedNameEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_9PTOrderByEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
_ZN2yb2ql12TreeListNodeINS0_6PTExprEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Line
Count
Source
103
68
                                 TreeNodePtrOperator<SemContext, NodeType> node_op) {
104
83
    for (auto tnode : node_list_) {
105
83
      RETURN_NOT_OK(node_op(tnode.get(), sem_context));
106
83
    }
107
62
    return Status::OK();
108
68
  }
_ZN2yb2ql12TreeListNodeINS0_8PTAssignEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Line
Count
Source
103
3.31k
                                 TreeNodePtrOperator<SemContext, NodeType> node_op) {
104
7.00k
    for (auto tnode : node_list_) {
105
7.00k
      RETURN_NOT_OK(node_op(tnode.get(), sem_context));
106
7.00k
    }
107
3.14k
    return Status::OK();
108
3.31k
  }
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_10PTTableRefEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_12PTRoleOptionEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS2_S5_EEE
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS1_INS0_6PTExprEEEE7AnalyzeEPNS0_10SemContextENSt3__18functionIFNS_6StatusEPS3_S6_EEE
109
110
  // Apply an operator on each node in the list.
111
  template<typename ContextType, typename DerivedType = NodeType>
112
  CHECKED_STATUS Apply(ContextType *context,
113
                       TreeNodePtrOperator<ContextType, DerivedType> node_op,
114
                       int max_nested_level = 0,
115
                       int max_nested_count = 0,
116
2.61k
                       TreeNodePtrOperator<ContextType, DerivedType> nested_node_op = nullptr) {
117
118
2.61k
    int nested_level = 0;
119
2.61k
    int nested_count = 0;
120
121
4.18k
    for (TreeNode::SharedPtr tnode : node_list_) {
122
4.18k
      if (tnode->opcode() != TreeNodeOpcode::kPTListNode) {
123
        // Cast the node from (TreeNode*) to the given template type.
124
3.34k
        DerivedType *node = static_cast<DerivedType*>(tnode.get());
125
        // Call the given node operation on the node.
126
3.34k
        RETURN_NOT_OK(node_op(node, context));
127
847
      } else {
128
847
        if (++nested_count > max_nested_count) {
129
0
          return context->Error(this, "Number of nested lists exceeds allowable limit",
130
0
                                ErrorCode::SYNTAX_ERROR);
131
0
        }
132
133
847
        if (++nested_level > max_nested_level) {
134
0
          return context->Error(this, "Nested level of parenthesis exceeds allowable limit",
135
0
                                ErrorCode::SYNTAX_ERROR);
136
0
        }
137
138
        // Cast the node from (TreeNode*) to the given template type.
139
847
        TreeListNode *node = static_cast<TreeListNode*>(tnode.get());
140
        // Apply the operation to a nested list.
141
847
        RETURN_NOT_OK((node->Apply<ContextType, DerivedType>(context,
142
847
                                                             nested_node_op,
143
847
                                                             max_nested_level - 1,
144
847
                                                             max_nested_count,
145
847
                                                             nested_node_op)));
146
844
        nested_level--;
147
844
      }
148
4.18k
    }
149
150
2.60k
    return Status::OK();
151
2.61k
  }
152
153
  // List count.
154
651k
  size_t size() const {
155
651k
    return node_list_.size();
156
651k
  }
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS0_15PTTablePropertyEE4sizeEv
_ZNK2yb2ql12TreeListNodeINS0_6PTExprEE4sizeEv
Line
Count
Source
154
1.70k
  size_t size() const {
155
1.70k
    return node_list_.size();
156
1.70k
  }
_ZNK2yb2ql12TreeListNodeINS0_8TreeNodeEE4sizeEv
Line
Count
Source
154
332k
  size_t size() const {
155
332k
    return node_list_.size();
156
332k
  }
_ZNK2yb2ql12TreeListNodeINS0_15PTQualifiedNameEE4sizeEv
Line
Count
Source
154
6.60k
  size_t size() const {
155
6.60k
    return node_list_.size();
156
6.60k
  }
_ZNK2yb2ql12TreeListNodeINS0_10PTTableRefEE4sizeEv
Line
Count
Source
154
263k
  size_t size() const {
155
263k
    return node_list_.size();
156
263k
  }
_ZNK2yb2ql12TreeListNodeINS1_INS0_6PTExprEEEE4sizeEv
Line
Count
Source
154
47.2k
  size_t size() const {
155
47.2k
    return node_list_.size();
156
47.2k
  }
157
158
  // Access function to node_list_.
159
55.6k
  const MCList<MCSharedPtr<NodeType>>& node_list() const {
160
55.6k
    return node_list_;
161
55.6k
  }
162
163
5.27M
  MCList<MCSharedPtr<NodeType>>& node_list() {
164
5.27M
    return node_list_;
165
5.27M
  }
Unexecuted instantiation: _ZN2yb2ql12TreeListNodeINS0_10PTPropertyEE9node_listEv
_ZN2yb2ql12TreeListNodeINS0_6PTExprEE9node_listEv
Line
Count
Source
163
4.89M
  MCList<MCSharedPtr<NodeType>>& node_list() {
164
4.89M
    return node_list_;
165
4.89M
  }
_ZN2yb2ql12TreeListNodeINS0_11PTTypeFieldEE9node_listEv
Line
Count
Source
163
46
  MCList<MCSharedPtr<NodeType>>& node_list() {
164
46
    return node_list_;
165
46
  }
_ZN2yb2ql12TreeListNodeINS0_18PTKeyspacePropertyEE9node_listEv
Line
Count
Source
163
380
  MCList<MCSharedPtr<NodeType>>& node_list() {
164
380
    return node_list_;
165
380
  }
_ZN2yb2ql12TreeListNodeINS0_15PTTablePropertyEE9node_listEv
Line
Count
Source
163
3.01k
  MCList<MCSharedPtr<NodeType>>& node_list() {
164
3.01k
    return node_list_;
165
3.01k
  }
_ZN2yb2ql12TreeListNodeINS0_18PTDmlWritePropertyEE9node_listEv
Line
Count
Source
163
384
  MCList<MCSharedPtr<NodeType>>& node_list() {
164
384
    return node_list_;
165
384
  }
_ZN2yb2ql12TreeListNodeINS0_8TreeNodeEE9node_listEv
Line
Count
Source
163
334k
  MCList<MCSharedPtr<NodeType>>& node_list() {
164
334k
    return node_list_;
165
334k
  }
_ZN2yb2ql12TreeListNodeINS0_12PTRoleOptionEE9node_listEv
Line
Count
Source
163
797
  MCList<MCSharedPtr<NodeType>>& node_list() {
164
797
    return node_list_;
165
797
  }
_ZN2yb2ql12TreeListNodeINS0_23PTDmlUsingClauseElementEE9node_listEv
Line
Count
Source
163
199
  MCList<MCSharedPtr<NodeType>>& node_list() {
164
199
    return node_list_;
165
199
  }
_ZN2yb2ql12TreeListNodeINS0_9PTOrderByEE9node_listEv
Line
Count
Source
163
232
  MCList<MCSharedPtr<NodeType>>& node_list() {
164
232
    return node_list_;
165
232
  }
_ZN2yb2ql12TreeListNodeINS0_15PTQualifiedNameEE9node_listEv
Line
Count
Source
163
47.2k
  MCList<MCSharedPtr<NodeType>>& node_list() {
164
47.2k
    return node_list_;
165
47.2k
  }
166
167
  // Returns the nth element.
168
847k
  MCSharedPtr<NodeType> element(size_t n) const {
169
847k
    if (node_list_.size() <= n) {
170
0
      return nullptr;
171
0
    }
172
847k
    auto it = node_list_.begin();
173
847k
    std::advance(it, n);
174
847k
    return *it;
175
847k
  }
_ZNK2yb2ql12TreeListNodeINS0_6PTExprEE7elementEm
Line
Count
Source
168
486
  MCSharedPtr<NodeType> element(size_t n) const {
169
486
    if (node_list_.size() <= n) {
170
0
      return nullptr;
171
0
    }
172
486
    auto it = node_list_.begin();
173
486
    std::advance(it, n);
174
486
    return *it;
175
486
  }
Unexecuted instantiation: _ZNK2yb2ql12TreeListNodeINS0_15PTTablePropertyEE7elementEm
_ZNK2yb2ql12TreeListNodeINS0_15PTQualifiedNameEE7elementEm
Line
Count
Source
168
26.9k
  MCSharedPtr<NodeType> element(size_t n) const {
169
26.9k
    if (node_list_.size() <= n) {
170
0
      return nullptr;
171
0
    }
172
26.9k
    auto it = node_list_.begin();
173
26.9k
    std::advance(it, n);
174
26.9k
    return *it;
175
26.9k
  }
_ZNK2yb2ql12TreeListNodeINS0_10PTTableRefEE7elementEm
Line
Count
Source
168
772k
  MCSharedPtr<NodeType> element(size_t n) const {
169
772k
    if (node_list_.size() <= n) {
170
0
      return nullptr;
171
0
    }
172
772k
    auto it = node_list_.begin();
173
772k
    std::advance(it, n);
174
772k
    return *it;
175
772k
  }
_ZNK2yb2ql12TreeListNodeINS1_INS0_6PTExprEEEE7elementEm
Line
Count
Source
168
47.2k
  MCSharedPtr<NodeType> element(size_t n) const {
169
47.2k
    if (node_list_.size() <= n) {
170
0
      return nullptr;
171
0
    }
172
47.2k
    auto it = node_list_.begin();
173
47.2k
    std::advance(it, n);
174
47.2k
    return *it;
175
47.2k
  }
176
177
 private:
178
  MCList<MCSharedPtr<NodeType>> node_list_;
179
};
180
181
class PTListNode : public TreeListNode<> {
182
 public:
183
  // Run semantics analysis on a statement block.
184
  CHECKED_STATUS AnalyzeStatementBlock(SemContext *sem_context);
185
};
186
187
}  // namespace ql
188
}  // namespace yb
189
190
#endif  // YB_YQL_CQL_QL_PTREE_LIST_NODE_H_