greenplumn CGPOptimizer 代码
文件路径:/src/include/gpopt/CGPOptimizer.h
/---------------------------------------------------------------------------
/ Greenplum Database
/ Copyright (C) 2012 Greenplum, Inc.
/
/ @filename:
/ CGPOptimizer.h
/
/ @doc:
/ Entry point to GP optimizer
/
/ @test:
/
/
/---------------------------------------------------------------------------
#ifndef CGPOptimizer_H
#define CGPOptimizer_H
extern "C" {
#include "postgres.h"
#include "nodes/params.h"
#include "nodes/parsenodes.h"
#include "nodes/plannodes.h"
}
class CGPOptimizer
{
public:
/ optimize given query using GP optimizer
static PlannedStmt *GPOPTOptimizedPlan(
Query *query,
bool *
had_unexpected_failure / output : set to true if optimizer unexpectedly failed to produce plan
);
/ serialize planned statement into DXL
static char *SerializeDXLPlan(Query *query);
/ gpopt initialize and terminate
static void InitGPOPT();
static void TerminateGPOPT();
};
extern "C" {
extern PlannedStmt *GPOPTOptimizedPlan(Query *query,
bool *had_unexpected_failure);
extern char *SerializeDXLPlan(Query *query);
extern void InitGPOPT();
extern void TerminateGPOPT();
}
#endif / CGPOptimizer_H