MiniOB
1
MiniOB is one mini database, helping developers to learn how database works.
载入中...
搜索中...
未找到
src
observer
sql
optimizer
cascade
tasks
o_input_task.h
1
/* Copyright (c) 2021 OceanBase and/or its affiliates. All rights reserved.
2
miniob is licensed under Mulan PSL v2.
3
You can use this software according to the terms and conditions of the Mulan PSL v2.
4
You may obtain a copy of Mulan PSL v2 at:
5
http://license.coscl.org.cn/MulanPSL2
6
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
7
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
8
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
9
See the Mulan PSL v2 for more details. */
10
11
#pragma once
12
13
#include "sql/optimizer/cascade/tasks/cascade_task.h"
14
#include "sql/optimizer/cascade/property_set.h"
15
19
class
OptimizeInputs
:
public
CascadeTask
20
{
21
public
:
22
OptimizeInputs
(
GroupExpr
*group_expr,
OptimizerContext
*context)
23
:
CascadeTask
(context, CascadeTaskType::OPTIMIZE_INPUTS), group_expr_(group_expr)
24
{}
25
26
explicit
OptimizeInputs
(
OptimizeInputs
*task)
27
:
CascadeTask
(task->context_, CascadeTaskType::OPTIMIZE_INPUTS),
28
group_expr_(task->group_expr_),
29
cur_total_cost_(task->cur_total_cost_),
30
cur_child_idx_
(task->
cur_child_idx_
)
31
{}
32
33
void
perform()
override
;
34
35
~OptimizeInputs
()
override
{}
36
37
private
:
38
GroupExpr
*group_expr_;
39
40
double
cur_total_cost_;
41
45
int
cur_child_idx_
= -1;
46
50
int
prev_child_idx_
= -1;
51
};
CascadeTask
Definition:
cascade_task.h:32
GroupExpr
Definition:
group_expr.h:25
OptimizeInputs
Definition:
o_input_task.h:20
OptimizeInputs::prev_child_idx_
int prev_child_idx_
Definition:
o_input_task.h:50
OptimizeInputs::cur_child_idx_
int cur_child_idx_
Definition:
o_input_task.h:45
OptimizerContext
Definition:
optimizer_context.h:27
制作者
1.9.5