mirror of
https://github.com/postgres/postgres.git
synced 2025-06-17 17:02:08 +03:00
Add parse_analyze_withcb()
This extracts code from pg_analyze_and_rewrite_withcb() into a separate function that mirrors the existing parse_analyze_fixedparams() and parse_analyze_varparams(). Reviewed-by: Nathan Bossart <bossartn@amazon.com> Discussion: https://www.postgresql.org/message-id/flat/c67ce276-52b4-0239-dc0e-39875bf81840@enterprisedb.com
This commit is contained in:
@ -736,12 +736,8 @@ pg_analyze_and_rewrite_withcb(RawStmt *parsetree,
|
||||
void *parserSetupArg,
|
||||
QueryEnvironment *queryEnv)
|
||||
{
|
||||
ParseState *pstate;
|
||||
Query *query;
|
||||
List *querytree_list;
|
||||
JumbleState *jstate = NULL;
|
||||
|
||||
Assert(query_string != NULL); /* required as of 8.4 */
|
||||
|
||||
TRACE_POSTGRESQL_QUERY_REWRITE_START(query_string);
|
||||
|
||||
@ -751,22 +747,8 @@ pg_analyze_and_rewrite_withcb(RawStmt *parsetree,
|
||||
if (log_parser_stats)
|
||||
ResetUsage();
|
||||
|
||||
pstate = make_parsestate(NULL);
|
||||
pstate->p_sourcetext = query_string;
|
||||
pstate->p_queryEnv = queryEnv;
|
||||
(*parserSetup) (pstate, parserSetupArg);
|
||||
|
||||
query = transformTopLevelStmt(pstate, parsetree);
|
||||
|
||||
if (IsQueryIdEnabled())
|
||||
jstate = JumbleQuery(query, query_string);
|
||||
|
||||
if (post_parse_analyze_hook)
|
||||
(*post_parse_analyze_hook) (pstate, query, jstate);
|
||||
|
||||
free_parsestate(pstate);
|
||||
|
||||
pgstat_report_query_id(query->queryId, false);
|
||||
query = parse_analyze_withcb(parsetree, query_string, parserSetup, parserSetupArg,
|
||||
queryEnv);
|
||||
|
||||
if (log_parser_stats)
|
||||
ShowUsage("PARSE ANALYSIS STATISTICS");
|
||||
|
Reference in New Issue
Block a user