OmniSciDB
3a86f6ec37
RexSubQueryIdCollector.h
Go to the documentation of this file.
1
/*
2
* Copyright 2020 OmniSci, Inc.
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
/*
18
* @description RexSubQueryIdCollector is a visitor class that collects all
19
* RexSubQuery::getId() values for all RexSubQuery nodes. This uses sorted arrays of
20
* (hash_code, handler) pairs for tree navigation.
21
*/
22
23
#pragma once
24
25
#include "
RelRexDagVisitor.h
"
26
27
#include <unordered_set>
28
29
class
RexSubQueryIdCollector
final :
public
RelRexDagVisitor
{
30
public
:
31
using
RelRexDagVisitor::visit
;
32
33
using
Ids
= std::unordered_set<unsigned>;
34
static
Ids
getLiveRexSubQueryIds
(
RelAlgNode
const
*);
35
36
private
:
37
void
visit
(RexSubQuery
const
*)
override
;
38
39
Ids
ids_
;
40
};
RelRexDagVisitor::visit
void visit(RelAlgNode const *)
Definition:
RelRexDagVisitor.cpp:41
RelRexDagVisitor.h
RelRexDagVisitor
Definition:
RelRexDagVisitor.h:34
RexSubQueryIdCollector::ids_
Ids ids_
Definition:
RexSubQueryIdCollector.h:39
RexSubQueryIdCollector::getLiveRexSubQueryIds
static Ids getLiveRexSubQueryIds(RelAlgNode const *)
Definition:
RexSubQueryIdCollector.cpp:19
RexSubQueryIdCollector::Ids
std::unordered_set< unsigned > Ids
Definition:
RexSubQueryIdCollector.h:33
RelAlgNode
Definition:
RelAlgDagBuilder.h:695
RexSubQueryIdCollector
Definition:
RexSubQueryIdCollector.h:29
RexSubQueryIdCollector::visit
void visit(RexSubQuery const *) override
Definition:
RexSubQueryIdCollector.cpp:26
QueryEngine
Visitors
RexSubQueryIdCollector.h
Generated on Mon Jan 25 2021 18:25:09 for OmniSciDB by
1.8.13