On Mon, Jul 13, 2020 at 02:54:56PM +0900, Masahiko Sawada wrote:
On Mon, 13 Jul 2020 at 09:33, Alvaro Herrera <alvhe...@2ndquadrant.com> wrote:
On 2020-Jul-13, Tomas Vondra wrote:
> On Sun, Jul 12, 2020 at 07:58:54PM -0400, Alvaro Herrera wrote:
> > Maybe we can try to handle this with some other function that interprets
> > the bytea in 'value' and returns a user-readable text. I think it'd
> > have to be a superuser-only function, because otherwise you could easily
> > cause a crash by passing a value of a different opclass. But since this
> > seems a developer-only thing, that restriction seems fine to me.
>
> Ummm, I disagree a superuser check is sufficient protection from a
> segfault or similar issues.
My POV there is that it's the user's responsibility to call the right
function; and if they fail to do so, it's their fault. I agree it's not
ideal, but frankly these pageinspect things are not critical to get 100%
user-friendly.
> If we really want to print something nicer, I'd say it needs to be a
> special function in the BRIN opclass.
If that can be done, then +1. We just need to ensure that the function
knows and can verify the type of index that the value comes from. I
guess we can pass the index OID so that it can extract the opclass from
catalogs to verify.
+1 from me, too. Perhaps we can have it as optional. If a BRIN opclass
doesn't have it, the 'values' can be null.
I'd say that if the opclass does not have it, then we should print the
bytea value (or whatever the opclass uses to store the summary) using
the type functions.
regards
--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services