From: | Justin Pryzby <pryzby(at)telsasoft(dot)com> |
---|---|
To: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
Cc: | gkokolatos(at)pm(dot)me, pgsql-hackers(at)postgresql(dot)org, Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>, Tatsuro Yamada <tatsuro(dot)yamada(dot)tf(at)nttcom(dot)co(dot)jp> |
Subject: | Re: v13: show extended stats target in \d |
Date: | 2020-09-05 21:06:58 |
Message-ID: | 20200905210658.GA6744@telsasoft.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Tue, Sep 01, 2020 at 05:08:25PM -0400, Alvaro Herrera wrote:
> +1 on fixing this, since the ability to change stats target is new in
> pg13.
>
> On 2020-Aug-31, Justin Pryzby wrote:
>
> > Maybe it should have a comma, like ", STATISTICS %s"?
>
> It does need some separator. Maybe a comma is sufficient, but I'm not
> sure: that will fail when we add cross-relation stats, because the
> FROM clause will have more relations and possibly have commas too.
Good thought.
You said it'll "fail", but I guess you mean it could be confusing to look at.
I didn't actually know that "multiple tables" were planned for MV stats.
Another consideration is expression stats (as compared with expression
indexes). I don't see how that helps guide this decision at all, though.
I think trying to parse \d output is discouraged and a bad idea, but it's
obviously not ok if the output is ambiguous.
But it's not ambiguous, since STATISTICS is capitalized and unquoted.
Arguably, "nn" could be construed as looking like a table alias, which doesn't
make sense here, and integer aliases would also need to be quoted (and seem
unlikely and not useful).
... FROM t1, t2, STATISTICS nn
I think this is 1) unambiguous; 2) clear; 3) consistent with other output and
with the "ALTER STATISTICS SET STATISTICS NN" command. It could say "SET" but
I don't think it's useful to include; 4) seems to reasonably anticipate future
support for expressions and multiple tables;
I'm happy if someone suggests something better, but I don't know what that
would be. Unless we hurried up and finished this for v13, and included
stxstattarget.
https://commitfest.postgresql.org/29/2692/
https://www.postgresql.org/message-id/flat/c0939aba-3b12-b596-dd08-913dda4b40f0%40nttcom.co.jp_1#32680b2fe0ab473c58a33eb0f9f00d42
Maybe it's not relevant, but I found these don't have a separator.
ppendPQExpBufferStr(&buf, " DEFERRABLE");
ppendPQExpBufferStr(&buf, " INITIALLY DEFERRED");
ppendPQExpBufferStr(&buf, " INVALID");
ppendPQExpBufferStr(&buf, " PRIMARY KEY,");
ppendPQExpBufferStr(&buf, " REPLICA IDENTITY");
ppendPQExpBufferStr(&buf, " UNIQUE,");
ppendPQExpBufferStr(&buf, " UNIQUE CONSTRAINT,");
ppendPQExpBufferStr(&buf, " CLUSTER");
ppendPQExpBufferStr(&buf, " AS RESTRICTIVE");
ppendPQExpBuffer(&buf, "\n TO %s",
These look like the only similar things with more than a single separator:
ppendPQExpBuffer(&buf, "\n USING (%s)",
ppendPQExpBuffer(&buf, "\n WITH CHECK (%s)",
--
Justin
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2020-09-05 22:42:16 | Re: [PATCH] - Provide robust alternatives for replace_string |
Previous Message | Peter Geoghegan | 2020-09-05 19:03:43 | Re: logtape.c stats don't account for unused "prefetched" block numbers |