Re: trivial grammar refactor - Mailing list pgsql-hackers

From Álvaro Herrera
Subject Re: trivial grammar refactor
Date
Msg-id 202507231650.g6ilbkxsvsr6@alvherre.pgsql
Whole thread Raw
In response to Re: trivial grammar refactor  (Nathan Bossart <nathandbossart@gmail.com>)
Responses Re: trivial grammar refactor
Re: trivial grammar refactor
List pgsql-hackers
On 2025-Jul-23, Nathan Bossart wrote:

> On Wed, Jul 23, 2025 at 05:38:34PM +0200, Álvaro Herrera wrote:
> > I noticed some duplicative coding while hacking on REPACK[1].  We can
> > save a few lines now with a trivial change to the rules for CHECKPOINT
> > and REINDEX, and allow to save a few extra lines in that patch.
> > 
> > Any objections to this?
> 
> Seems reasonable to me.  Any chance we can use this for CLUSTER, VACUUM,
> ANALYZE, and EXPLAIN, too?

ANALYZE and VACUUM cannot be changed this way, because the productions
where options are optional are the legacy ones; so running
"VACUUM/ANALYZE table" uses that one, and we cannot change that:

VacuumStmt: VACUUM opt_full opt_freeze opt_verbose opt_analyze opt_vacuum_relation_list

EXPLAIN doesn't work because the '(' starts either a query (via
select_with_parens) or an option list, so you get a shift/reduce
conflict.

I hadn't looked at CLUSTER, because the REPACK patch is absorbing that
rule into a larger rule for both REPACK and CLUSTER.  But now that I
look again, I realize that apparently my REPACK branch is bogus, because
I forgot to add a production for "CLUSTER name ON qualified_name".  And
with that one put back, I cannot use opt_utility_option_list there
either, because the above conflicts with "CLUSTER
opt_utility_option_list qualified_name cluster_index_specification".

So we can still do this, and I still think it's a win, but unfortunately
it won't help for the REPACK patch.

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/
Voy a acabar con todos los humanos / con los humanos yo acabaré
voy a acabar con todos (bis) / con todos los humanos acabaré ¡acabaré! (Bender)



pgsql-hackers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: index prefetching
Next
From: Nathan Bossart
Date:
Subject: Re: trivial grammar refactor