On Mon, Jan 06, 2020 at 01:04:15PM +0800, 曾文旌(义从) wrote:
2 We feel that gtt needs to maintain statistics, but there is no agreement on what it will be done.
I certainly agree GTT needs to maintain statistics, otherwise it'll lead to poor query plans.
+1
AFAIK the current patch stores the info in a hash table in a backend private memory, and I don't see how else to do that (e.g. storing it in a catalog would cause catalog bloat).
It sounds like it needs a pair of system GTTs to hold the table and column statistics for other GTTs. One would probably have the same columns as pg_statistic, and the other just the relevant columns from pg_class. I can see it being useful for the user to be able to see these stats, so perhaps they could be UNIONed into the existing stats view.
The current patch provides several functions as extension(pg_gtt) for read gtt statistics.
Next I can move them to the kernel and let the view pg_stats can see gtt’s statistics.