mirror of
https://github.com/postgres/postgres.git
synced 2025-11-07 19:06:32 +03:00
Allow compute_query_id to be set to 'auto' and make it default
Allowing only on/off meant that all either all existing configuration guides would become obsolete if we disabled it by default, or that we would have to accept a performance loss in the default config if we enabled it by default. By allowing 'auto' as a middle ground, the performance cost is only paid by those who enable pg_stat_statements and similar modules. I only edited the release notes to comment-out a paragraph that is now factually wrong; further edits are probably needed to describe the related change in more detail. Author: Julien Rouhaud <rjuju123@gmail.com> Reviewed-by: Justin Pryzby <pryzby@telsasoft.com> Discussion: https://postgr.es/m/20210513002623.eugftm4nk2lvvks3@nol
This commit is contained in:
@@ -39,6 +39,12 @@
|
||||
|
||||
#define JUMBLE_SIZE 1024 /* query serialization buffer size */
|
||||
|
||||
/* GUC parameters */
|
||||
int compute_query_id = COMPUTE_QUERY_ID_AUTO;
|
||||
|
||||
/* True when compute_query_id is ON, or AUTO and a module requests them */
|
||||
bool query_id_enabled = false;
|
||||
|
||||
static uint64 compute_utility_query_id(const char *str, int query_location, int query_len);
|
||||
static void AppendJumble(JumbleState *jstate,
|
||||
const unsigned char *item, Size size);
|
||||
@@ -96,6 +102,8 @@ JumbleQuery(Query *query, const char *querytext)
|
||||
{
|
||||
JumbleState *jstate = NULL;
|
||||
|
||||
Assert(IsQueryIdEnabled());
|
||||
|
||||
if (query->utilityStmt)
|
||||
{
|
||||
query->queryId = compute_utility_query_id(querytext,
|
||||
@@ -132,6 +140,19 @@ JumbleQuery(Query *query, const char *querytext)
|
||||
return jstate;
|
||||
}
|
||||
|
||||
/*
|
||||
* Enables query identifier computation.
|
||||
*
|
||||
* Third-party plugins can use this function to inform core that they require
|
||||
* a query identifier to be computed.
|
||||
*/
|
||||
void
|
||||
EnableQueryId(void)
|
||||
{
|
||||
if (compute_query_id != COMPUTE_QUERY_ID_OFF)
|
||||
query_id_enabled = true;
|
||||
}
|
||||
|
||||
/*
|
||||
* Compute a query identifier for the given utility query string.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user