mirror of
https://github.com/postgres/postgres.git
synced 2026-05-27 12:00:13 -04:00
Fix missed ReleaseVariableStats() in intarray's _int_matchsel().
Given a WHERE clause like "int[] @@ query_int" or "query_int ~~ int[]"
where the query_int side is a table column having statistics,
_int_matchsel() exited without remembering to free the statistics
tuple. This would typically lead to warnings about cache refcount
leakage, like
WARNING: resource was not closed: cache pg_statistic (73), tuple 42/12 has count 1
It's been wrong since this code was added, in commit c6fbe6d6f.
Bug: #19492
Reported-by: Man Zeng <zengman@halodbtech.com>
Author: Man Zeng <zengman@halodbtech.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/19492-ddcd0e22399ef85a@postgresql.org
Backpatch-through: 14
This commit is contained in:
parent
e2b8813403
commit
524cc0f638
1 changed files with 3 additions and 0 deletions
|
|
@ -151,7 +151,10 @@ _int_matchsel(PG_FUNCTION_ARGS)
|
|||
* query_int.
|
||||
*/
|
||||
if (vardata.vartype != INT4ARRAYOID)
|
||||
{
|
||||
ReleaseVariableStats(vardata);
|
||||
PG_RETURN_FLOAT8(DEFAULT_EQ_SEL);
|
||||
}
|
||||
|
||||
/*
|
||||
* Can't do anything useful if the something is not a constant, either.
|
||||
|
|
|
|||
Loading…
Reference in a new issue