33 const char *query_string,
62 const char *query_string,
int cursorOptions,
66 int save_nestlevel = 0;
105 glob->boundParams, es);
114 if (save_nestlevel > 0)
121 elog(
ERROR,
"extension state for pg_plan_advice not found");
126 "advice string for pg_plan_advice not found in extension state");
138 if (
strcmp(item->defname, defname) == 0)
void * load_external_function(const char *filename, const char *funcname, bool signalNotFound, void **filehandle)
int NewGUCNestLevel(void)
void AtEOXact_GUC(bool isCommit, int nestLevel)
int set_config_option(const char *name, const char *value, GucContext context, GucSource source, GucAction action, bool changeVal, int elevel, bool is_reload)
#define foreach_node(type, var, lst)
char *(* pg_plan_advice_advisor_hook)(PlannerGlobal *glob, Query *parse, const char *query_string, int cursorOptions, ExplainState *es)
PlannedStmt * planner(Query *parse, const char *query_string, int cursorOptions, ParamListInfo boundParams, ExplainState *es)
static char * test_plan_advice_advisor(PlannerGlobal *glob, Query *parse, const char *query_string, int cursorOptions, ExplainState *es)
static DefElem * find_defelem_by_defname(List *deflist, char *defname)