Re: pg_get_statisticsextdef() is not quite the full shilling

Alvaro Herrera <alvherre@2ndquadrant.com>

From: Alvaro Herrera <alvherre@2ndquadrant.com>
To: David Rowley <david.rowley@2ndquadrant.com>
Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2017-03-27T04:06:13Z
Lists: pgsql-hackers
David Rowley wrote:

> Seems pg_get_statisticsextdef() has a couple of things wrong:
> 
> 1. HeapTupleIsValid() called on the wrong tuple.
> 2. Did not schema qualify names.

Actually we can solve both 1 and the first half of 2 by just using
generate_relation_name, which is less code and gives better results
(because we then schema-qualify the relation name conditionally).  I
patched the other half of 2 using your approach, but I wonder if we
should have a function StatisticsIsVisible or something.

> I've purposefully left out the WITH syntax. We'll want to add some
> logic around that once we have more than one statistic type supported.
> I'd suggest not appending WITH if all supported types are present, and
> only appending it if a true subset are present. That'll mean pg_dump
> from v10 and import into v11 will get all types, if they did in v10,
> and the same subset that they did in v10 when only a subset were
> originally defined.
> 
> Since we support only 1 type now, nothing needs to happen there yet.

Yeah, this sounds sensible to me.


-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services


Commits

  1. Fix a couple of problems in pg_get_statisticsextdef