greenplumn planner_test_helpers 源码
greenplumn planner_test_helpers 代码
文件路径:/src/test/modules/test_planner/src/planner_test_helpers.c
#include "planner_test_helpers.h"
#include "optimizer/planmain.h"
#include "tcop/tcopprot.h"
static RawStmt *
get_parsetree_for(const char *query_string)
{
List *parsetree_list = pg_parse_query(query_string);
ListCell *parsetree_item = list_head(parsetree_list);
return lfirst_node(RawStmt, parsetree_item);
}
static Query *
get_query_for_parsetree(Node *parsetree, const char *query_string)
{
List *querytree_list = pg_analyze_and_rewrite(parsetree, query_string, NULL, 0, NULL);
ListCell *querytree = list_head(querytree_list);
return (Query *)lfirst(querytree);
}
Query *
make_query(const char *query_string)
{
Node *parsetree = get_parsetree_for(query_string);
return get_query_for_parsetree(parsetree, query_string);
}
Plan *
get_first_subplan(PlannedStmt *plannedStmt)
{
return (Plan *)list_nth(plannedStmt->subplans, 0);
}
TargetEntry *
get_target_entry_from_root_plan_node(PlannedStmt *plannedstmt)
{
Result *result_node = (Result*) plannedstmt->planTree;
List *tlist = result_node->plan.targetlist;
return list_nth(tlist, 0);
}
相关信息
相关文章
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
7、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦