mirror of
https://github.com/postgres/postgres.git
synced 2025-06-20 15:22:23 +03:00
Move pg_stat_statements query jumbling to core.
Add compute_query_id GUC to control whether a query identifier should be computed by the core (off by default). It's thefore now possible to disable core queryid computation and use pg_stat_statements with a different algorithm to compute the query identifier by using a third-party module. To ensure that a single source of query identifier can be used and is well defined, modules that calculate a query identifier should throw an error if compute_query_id specified to compute a query id and if a query idenfitier was already calculated. Discussion: https://postgr.es/m/20210407125726.tkvjdbw76hxnpwfi@nol Author: Julien Rouhaud Reviewed-by: Alvaro Herrera, Nitin Jadhav, Zhihong Yu
This commit is contained in:
@ -668,6 +668,7 @@ pg_analyze_and_rewrite_params(RawStmt *parsetree,
|
||||
ParseState *pstate;
|
||||
Query *query;
|
||||
List *querytree_list;
|
||||
JumbleState *jstate = NULL;
|
||||
|
||||
Assert(query_string != NULL); /* required as of 8.4 */
|
||||
|
||||
@ -686,8 +687,11 @@ pg_analyze_and_rewrite_params(RawStmt *parsetree,
|
||||
|
||||
query = transformTopLevelStmt(pstate, parsetree);
|
||||
|
||||
if (compute_query_id)
|
||||
jstate = JumbleQuery(query, query_string);
|
||||
|
||||
if (post_parse_analyze_hook)
|
||||
(*post_parse_analyze_hook) (pstate, query);
|
||||
(*post_parse_analyze_hook) (pstate, query, jstate);
|
||||
|
||||
free_parsestate(pstate);
|
||||
|
||||
|
Reference in New Issue
Block a user