Re: Multivariate MCV stats can leak data to unprivileged users - Mailing list pgsql-hackers

From Tom Lane
Subject Re: Multivariate MCV stats can leak data to unprivileged users
Date
Msg-id 23772.1558276123@sss.pgh.pa.us
Whole thread Raw
In response to Re: Multivariate MCV stats can leak data to unprivileged users  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Multivariate MCV stats can leak data to unprivileged users  (Tomas Vondra <tomas.vondra@2ndquadrant.com>)
Re: Multivariate MCV stats can leak data to unprivileged users  (Dean Rasheed <dean.a.rasheed@gmail.com>)
List pgsql-hackers
I wrote:
> I wonder ... another way we could potentially do this is

> create table pg_statistic_ext_data(
>     stxoid oid,  -- OID of owning pg_statistic_ext entry
>     stxkind char, -- what kind of data
>     stxdata bytea -- the data, in some format or other
> );

> The advantage of this way is that we'd not have to rejigger the
> catalog's rowtype every time we think of a new kind of extended
> stats.  The disadvantage is that manual inspection of the contents
> of an entry would become much harder, for lack of any convenient
> output function.

No, wait, scratch that.  We could fold the three existing types
pg_ndistinct, pg_dependencies, pg_mcv_list into one new type, say
"pg_stats_ext_data", where the actual storage would need to have an
ID field (so we'd waste a byte or two duplicating the externally
visible stxkind field inside stxdata).  The output function for this
type is just a switch over the existing code.  The big advantage of
this way compared to the current approach is that adding a new
ext-stats type requires *zero* work with adding new catalog entries.
Just add another switch case in pg_stats_ext_data_out() and you're
done.

            regards, tom lane



pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Multivariate MCV stats can leak data to unprivileged users
Next
From: Julien Riou
Date:
Subject: PROXY protocol support