Re: new "row-level lock" error messages
От | Robert Haas |
---|---|
Тема | Re: new "row-level lock" error messages |
Дата | |
Msg-id | CA+TgmoaF9HRR+bP7pTUOyh0nppp+-G9R1gJ+mV923J5=DAt8sw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: new "row-level lock" error messages (Alvaro Herrera <alvherre@2ndquadrant.com>) |
Ответы |
Re: new "row-level lock" error messages
Re: new "row-level lock" error messages |
Список | pgsql-hackers |
On Tue, Jul 23, 2013 at 2:16 PM, Alvaro Herrera <alvherre@2ndquadrant.com> wrote: > Alvaro Herrera wrote: >> Peter Eisentraut wrote: >> >> > I would suggest that these changes be undone, except that the old >> > "SELECT FOR ..." be replaced by a dynamic string that reverse-parses the >> > LockingClause to provide the actual clause that was used. >> >> Here's a patch for this. > > Pushed to 9.3 and master. Sample output: > > alvherre=# select * from foo, bar for update of foof for share of bar; > ERROR: relation "foof" in FOR UPDATE clause not found in FROM clause > > alvherre=# select * from foo, bar for update of foo for share of barf; > ERROR: relation "barf" in FOR SHARE clause not found in FROM clause > > Amusingly, the only test in which these error messages appeared, in > contrib/file_fdw, was removed after the two commits that changed the > wording. So there's not a single test which needed to be tweaked for > this change. The fact that there are no tests of this functionality is probably not a good thing. We should add some. At the moment, the following test case crashes, and it looks like this commit is responsible: create table test_update2 (id integer); DECLARE test_update_cursor CURSOR FOR SELECT id, MIN(id) FROM test_update2 GROUP By id HAVING MIN(id) < 1 FOR UPDATE; -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: