Re: Adjust error message for CREATE STATISTICS to account for expressions - Mailing list pgsql-hackers

From Yugo Nagata
Subject Re: Adjust error message for CREATE STATISTICS to account for expressions
Date
Msg-id 20260328150425.79219072e05f12e6b911b5e7@sraoss.co.jp
Whole thread Raw
In response to Re: Adjust error message for CREATE STATISTICS to account for expressions  (Dean Rasheed <dean.a.rasheed@gmail.com>)
List pgsql-hackers
On Fri, 27 Mar 2026 09:50:07 +0000
Dean Rasheed <dean.a.rasheed@gmail.com> wrote:

> On Fri, 27 Mar 2026 at 04:46, Yugo Nagata <nagata@sraoss.co.jp> wrote:
> >
> > On Fri, 27 Mar 2026 07:45:37 +0700
> > John Naylor <johncnaylorls@gmail.com> wrote:
> >
> > > On Fri, Mar 27, 2026 at 6:23 AM Michael Paquier <michael@paquier.xyz> wrote:
> > > > -    errmsg("extended statistics require at least 2 columns")));
> > > > +    errmsg("extended statistics are not supported on a single column")));
> > > >
> > > > Now our documentation also tells that the former message is not the
> > > > preferred project style (full sentences usually avoided in primary
> > > > messages):
> > > > https://www.postgresql.org/docs/devel/error-style-guide.html#ERROR-STYLE-GUIDE-GRAMMAR-PUNCTUATION
> > >
> > > My reading of that is that hints/details need to be complete
> > > sentences, and primary messages don't need to be. If the obvious way
> > > to write primary message is with a complete sentence, I would say
> > > that's fine, but I don't have a lot of context here.
> > >
> > > > Perhaps something like "could not create extended statistics" with a
> > > > hint describing the cause would be better..  Full sentences usually
> > > > apply to errdetails or errhints.  If we're on it, we could just as
> > > > well improve the whole thing, I guess?
> > >
> > > I don't feel strongly either way, so in that case I would default to
> > > not changing to errdetail. Looking elsewhere in this file, however, I
> > > do see some messages with "cannot do X because ....", and I'd be more
> > > motivated to turn those "because" phrases into errdetails.
> >
> > I don't have a strong preference here, so I'm fine with either approach.
> > I also agree that moving "because ..." into errdetails in some longer
> > messages makes sense.
> 
> I don't think it should be a hint, because that's more for suggestions
> on how to fix the problem.
> 
> Given that the user just tried to create extended statistics on a
> single column, they're probably not interested in expression
> statistics or multivariate statistics, so a single short "not
> supported" error seems sufficient.
> 
> If we were to give more detail, it should probably be to point out
> that regular statistics will already be built for single columns,
> which is why single-column extended statistics would be redundant. So
> perhaps something like this:
> 
> Error: cannot create extended statistics on a single column
> Detail: Univariate statistics are already built for each individual
> table column.

That makes sense to me.

Using an errdetail to explain the reason sounds reasonable.

-- 
Yugo Nagata <nagata@sraoss.co.jp>



pgsql-hackers by date:

Previous
From: Masahiko Sawada
Date:
Subject: Re: pg_buffercache: Add per-relation summary stats
Next
From: Yugo Nagata
Date:
Subject: Re: Track skipped tables during autovacuum and autoanalyze