Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Gpdb
提交
1186001e
G
Gpdb
项目概览
Greenplum
/
Gpdb
通知
7
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
Gpdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
1186001e
编写于
6月 03, 2016
作者:
N
Nikos Armenatzoglou
提交者:
Karthikeyan Jambu Rajaraman
6月 28, 2016
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Revert "Create naive code-generated version of ExecQual"
This reverts commit
aae0ad3d
.
上级
6f928a65
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
2 addition
and
58 deletion
+2
-58
src/backend/codegen/CMakeLists.txt
src/backend/codegen/CMakeLists.txt
+0
-1
src/backend/codegen/codegen_wrapper.cc
src/backend/codegen/codegen_wrapper.cc
+0
-12
src/backend/executor/execProcnode.c
src/backend/executor/execProcnode.c
+0
-3
src/backend/executor/execScan.c
src/backend/executor/execScan.c
+1
-1
src/include/codegen/codegen_wrapper.h
src/include/codegen/codegen_wrapper.h
+1
-29
src/include/nodes/execnodes.h
src/include/nodes/execnodes.h
+0
-12
未找到文件。
src/backend/codegen/CMakeLists.txt
浏览文件 @
1186001e
...
...
@@ -166,7 +166,6 @@ set(GPCODEGEN_SRC
codegen_manager.cc
codegen_wrapper.cc
exec_variable_list_codegen.cc
exec_qual_codegen.cc
)
# Integrate with GPDB build system.
...
...
src/backend/codegen/codegen_wrapper.cc
浏览文件 @
1186001e
...
...
@@ -13,14 +13,12 @@
#include "codegen/codegen_wrapper.h"
#include "codegen/codegen_manager.h"
#include "codegen/exec_variable_list_codegen.h"
#include "codegen/exec_qual_codegen.h"
#include "codegen/utils/gp_codegen_utils.h"
using
gpcodegen
::
CodegenManager
;
using
gpcodegen
::
BaseCodegen
;
using
gpcodegen
::
ExecVariableListCodegen
;
using
gpcodegen
::
ExecQualCodegen
;
// Current code generator manager that oversees all code generators
static
void
*
ActiveCodeGeneratorManager
=
nullptr
;
...
...
@@ -118,13 +116,3 @@ void* ExecVariableListCodegenEnroll(
regular_func_ptr
,
ptr_to_chosen_func_ptr
,
proj_info
,
slot
);
return
generator
;
}
void
*
ExecQualCodegenEnroll
(
ExecQualFn
regular_func_ptr
,
ExecQualFn
*
ptr_to_chosen_func_ptr
,
PlanState
*
planstate
)
{
ExecQualCodegen
*
generator
=
CodegenEnroll
<
ExecQualCodegen
>
(
regular_func_ptr
,
ptr_to_chosen_func_ptr
,
planstate
);
return
generator
;
}
src/backend/executor/execProcnode.c
浏览文件 @
1186001e
...
...
@@ -729,9 +729,6 @@ ExecInitNode(Plan *node, EState *estate, int eflags)
if
(
result
!=
NULL
)
{
enroll_ExecQual_codegen
(
ExecQual
,
&
result
->
ExecQual_gen_info
.
ExecQual_fn
,
result
);
SAVE_EXECUTOR_MEMORY_ACCOUNT
(
result
,
curMemoryAccount
);
result
->
CodegenManager
=
CodegenManager
;
CodeGeneratorManagerGenerateCode
(
CodegenManager
);
...
...
src/backend/executor/execScan.c
浏览文件 @
1186001e
...
...
@@ -156,7 +156,7 @@ ExecScan(ScanState *node,
* when the qual is nil ... saves only a few cycles, but they add up
* ...
*/
if
(
!
qual
||
call_ExecQual
(
node
->
ps
,
qual
,
econtext
,
false
))
if
(
!
qual
||
ExecQual
(
qual
,
econtext
,
false
))
{
/*
* Found a satisfactory scan tuple.
...
...
src/include/codegen/codegen_wrapper.h
浏览文件 @
1186001e
...
...
@@ -26,12 +26,8 @@ typedef int64 Datum;
*/
struct
TupleTableSlot
;
struct
ProjectionInfo
;
struct
List
;
struct
ExprContext
;
struct
PlanState
;
typedef
void
(
*
ExecVariableListFn
)
(
struct
ProjectionInfo
*
projInfo
,
Datum
*
values
,
bool
*
isnull
);
typedef
bool
(
*
ExecQualFn
)
(
struct
List
*
qual
,
struct
ExprContext
*
econtext
,
bool
resultForNull
);
#ifndef USE_CODEGEN
...
...
@@ -48,12 +44,9 @@ typedef bool (*ExecQualFn) (struct List *qual, struct ExprContext *econtext, boo
#define END_CODE_GENERATOR_MANAGER()
#define init_codegen()
#define call_ExecVariableList(projInfo, values, isnull) ExecVariableList(projInfo, values, isnull)
#define enroll_ExecVariableList_codegen(regular_func, ptr_to_chosen_func, proj_info, slot)
#define call_ExecQual(planstate, qual, econtext, resultForNull) ExecQual(qual, econtext, resultForNull)
#define enroll_ExecQual_codegen(regular_func, ptr_to_chosen_func, planstate)
#else
/*
...
...
@@ -83,7 +76,7 @@ extern "C" {
* Forward extern declaration of code generated functions if code gen is enabled
*/
extern
void
ExecVariableList
(
struct
ProjectionInfo
*
projInfo
,
Datum
*
values
,
bool
*
isnull
);
extern
bool
ExecQual
(
struct
List
*
qual
,
struct
ExprContext
*
econtext
,
bool
resultForNull
);
/*
* Do one-time global initialization of LLVM library. Returns 1
...
...
@@ -144,14 +137,6 @@ ExecVariableListCodegenEnroll(ExecVariableListFn regular_func_ptr,
struct
ProjectionInfo
*
proj_info
,
struct
TupleTableSlot
*
slot
);
/*
* returns the pointer to the ExecQual generator
*/
void
*
ExecQualCodegenEnroll
(
ExecQualFn
regular_func_ptr
,
ExecQualFn
*
ptr_to_regular_func_ptr
,
struct
PlanState
*
planstate
);
#ifdef __cplusplus
}
// extern "C"
#endif
...
...
@@ -201,14 +186,6 @@ ExecQualCodegenEnroll(ExecQualFn regular_func_ptr,
*/
#define call_ExecVariableList(projInfo, values, isnull) \
projInfo->ExecVariableList_gen_info.ExecVariableList_fn(projInfo, values, isnull)
/*
* Call ExecQual using function pointer ExecQual_fn.
* Function pointer may point to regular version or generated function
*/
#define call_ExecQual(ps, qual, econtext, resultForNull) \
ps.ExecQual_gen_info.ExecQual_fn(qual, econtext, resultForNull)
/*
* Enrollment macros
* The enrollment process also ensures that the generated function pointer
...
...
@@ -219,11 +196,6 @@ ExecQualCodegenEnroll(ExecQualFn regular_func_ptr,
regular_func, ptr_to_regular_func_ptr, proj_info, slot); \
Assert(proj_info->ExecVariableList_gen_info.ExecVariableList_fn == regular_func); \
#define enroll_ExecQual_codegen(regular_func, ptr_to_regular_func_ptr, planstate) \
planstate->ExecQual_gen_info.code_generator = ExecQualCodegenEnroll( \
regular_func, ptr_to_regular_func_ptr, planstate); \
Assert(planstate->ExecQual_gen_info.ExecQual_fn == regular_func); \
#endif //USE_CODEGEN
#endif // CODEGEN_WRAPPER_H_
src/include/nodes/execnodes.h
浏览文件 @
1186001e
...
...
@@ -1340,14 +1340,6 @@ typedef struct DomainConstraintState
* ----------------------------------------------------------------
*/
typedef
struct
ExecQualCodegenInfo
{
/* Pointer to store ExecQualCodegen from Codegen */
void
*
code_generator
;
/* Function pointer that points to either regular or generated slot_deform_tuple */
ExecQualFn
ExecQual_fn
;
}
ExecQualCodegenInfo
;
/* ----------------
* PlanState node
*
...
...
@@ -1420,10 +1412,6 @@ typedef struct PlanState
*/
int
gpmon_plan_tick
;
gpmon_packet_t
gpmon_pkt
;
#ifdef USE_CODEGEN
ExecQualCodegenInfo
ExecQual_gen_info
;
#endif
}
PlanState
;
typedef
struct
Gpmon_NameUnit_MaxVal
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录