Re: Bogus EXPLAIN results with column aliases for mismatched partitions

Поиск
Список
Период
Сортировка
От Etsuro Fujita
Тема Re: Bogus EXPLAIN results with column aliases for mismatched partitions
Дата
Msg-id CAPmGK16+XskOXty=y+GP5B0MXs1o8gACq=qVbzbC3fRYrkByrA@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Bogus EXPLAIN results with column aliases for mismatched partitions  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Bogus EXPLAIN results with column aliases for mismatched partitions  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On Tue, Dec 3, 2019 at 6:45 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> I wrote:
> > Etsuro Fujita <etsuro.fujita@gmail.com> writes:
> >> On Mon, Dec 2, 2019 at 6:34 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> >>> BTW, the existing code always schema-qualifies the relation names,
> >>> on the rather lame grounds that it's producing the string without
> >>> knowing whether EXPLAIN VERBOSE will be specified.  In this code,
> >>> the verbose flag is available so it would be trivial to make the
> >>> output conform to EXPLAIN's normal policy.  I didn't change that
> >>> here because there'd be a bunch more test output diffs of no
> >>> intellectual interest.  Should we change it, or leave well enough
> >>> alone?
>
> >> I think it would be better to keep that as-is because otherwise, in
> >> case of a foreign join or aggregate, EXPLAIN without the VERBOSE
> >> option won't show any information about foreign tables involved in
> >> that foreign join or aggregate, which isn't useful for users.
>
> > No, I'm just talking about dropping the schema-qualification of table
> > names when !es->verbose, not removing the Relations: output altogether.
> > That would be more consistent with the rest of EXPLAIN's output.

Sorry, I misread the meaning.

> Concretely, I'm thinking of the attached (on top of the other patch,
> which I just pushed).  This agrees exactly with what ExplainTargetRel
> does for regular scans.

Thanks for the patch!  (The patch didn't apply to HEAD cleanly,
though.)  I like consistency, so +1 for the change.

> One could make an argument that we should schema-qualify, regardless
> of the "verbose" flag, if the output format isn't EXPLAIN_FORMAT_TEXT.
> That would reduce the amount of variability that plan analysis tools
> have to cope with.  However, ExplainTargetRel itself doesn't provide
> the schema in non-verbose mode.  Maybe it should, ie we should change
> it like
>
>          case T_ModifyTable:
>              /* Assert it's on a real relation */
>              Assert(rte->rtekind == RTE_RELATION);
>              objectname = get_rel_name(rte->relid);
> -            if (es->verbose)
> +            if (es->verbose || es->format != EXPLAIN_FORMAT_TEXT)
>                  namespace = get_namespace_name(get_rel_namespace(rte->relid));
>              objecttag = "Relation Name";
>              break;
>
> (and likewise for function schema names, a bit further down)?

Seems like another issue to me.

Best regards,
Etsuro Fujita



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Michael Paquier
Дата:
Сообщение: Re: Failure in TAP tests of pg_ctl on Windows with parallel instanceset
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Simplify passing of configure arguments to pg_config