Re: misleading error message in ProcessUtilitySlow T_CreateStatsStmt

Álvaro Herrera <alvherre@kurilemu.de>

From: Álvaro Herrera <alvherre@kurilemu.de>
To: jian he <jian.universality@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, PostgreSQL-development <pgsql-hackers@postgresql.org>, Kirill Reshke <reshkekirill@gmail.com>
Date: 2025-08-29T12:48:21Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. CREATE STATISTICS: improve misleading error message

  2. Glossary: improve definition of "relation"

  3. Extended statistics on expressions

On 2025-Aug-29, jian he wrote:

> On Fri, Aug 29, 2025 at 5:46 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:

> > WFM, although I think you could shorten it to "tables, materialized
> > views, and foreign tables".  We generally expect that partitioned
> > tables are included when saying "tables", no?  I'm not dead set on
> > that either way, though.
> 
> https://www.postgresql.org/docs/current/sql-copy.html
> use "COPY TO can be used only with plain tables, not views, and does
> not copy rows from child tables or child partitions"

I'm inclined to think that we should only mention partitioned tables
specifically when they for some reason deviate from what we do for
regular tables, i.e., what Tom is saying.  I don't think we've had an
explicit, consistent rule for that thus far, so there may be places
where we fail to follow it.

Anyway, I have pushed the error message change.

> > Alternatively, maybe the right fix is to move the parse-analysis
> > work into CreateStatistics altogether.  I think there is not a
> > very good argument for ProcessUtilitySlow doing all that stuff.
> > It's supposed to mainly just be a dispatching switch(), IMO.
>
> seems doable.
> transformStatsStmt, CreateStatistics both used only twice, refactoring
> arguments should be fine.
> please check the attached POC, regress tests also added.

Yeah, I like how this turned out.  I found out this was introduced in
commit a4d75c86bf15.

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/