Re: AlterUserStmt anmd RoleSpec rules in grammar.y

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com>
Cc: Pavel Golub <pavel(at)microolap(dot)com>, Pgsql Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: AlterUserStmt anmd RoleSpec rules in grammar.y
Date: 2017-07-26 15:29:16
Message-ID: 8331.1501082956@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Pavel Golub <pavel(at)microolap(dot)com> writes:
> I need someone to throw some light on grammar (gram.y).
> I'm investigating beta2 regression tests, and found new statement

> `ALTER USER ALL SET application_name to 'SLAP';`
> ^^^

You'll notice that that statement fails in the regression tests:

ALTER USER ALL SET application_name to 'SLAP';
ERROR: syntax error at or near "ALL"

The one that works is

ALTER ROLE ALL SET application_name to 'SLAP';

and the reason is that AlterRoleSetStmt has a separate production
for ALL, but AlterUserSetStmt doesn't. This seems a tad bizarre
though. Peter, you added that production (in commit 9475db3a4);
is this difference intentional or just an oversight? If it's
intentional, what's the reasoning?

BTW, I'm quite confused as to why these test cases (in rolenames.sql)
seem to predate that commit, and yet it did not change their results.

regards, tom lane

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kunshchikov Vladimir 2017-07-26 15:32:33 Re: [patch] pg_dump/pg_restore zerror() and strerror() mishap
Previous Message Shubham Barai 2017-07-26 15:20:52 GSoC 2017: weekly progress reports (week 8)