Обсуждение: pgsql: Ensure correct lock level is used in ALTER ... RENAME
Ensure correct lock level is used in ALTER ... RENAME Commit 1b5d797cd4f7 intended to relax the lock level used to rename indexes, but inadvertently allowed *any* relation to be renamed with a lowered lock level, as long as the command is spelled ALTER INDEX. That's undesirable for other relation types, so retry the operation with the higher lock if the relation turns out not to be an index. After this fix, ALTER INDEX <sometable> RENAME will require access exclusive lock, which it didn't before. Author: Nathan Bossart <bossartn@amazon.com> Author: Álvaro Herrera <alvherre@alvh.no-ip.org> Reported-by: Onder Kalaci <onderk@microsoft.com> Discussion: https://postgr.es/m/PH0PR21MB1328189E2821CDEC646F8178D8AE9@PH0PR21MB1328.namprd21.prod.outlook.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/c2c618ff1137f9ef58827f57e4ec0f97453e454e Modified Files -------------- src/backend/commands/tablecmds.c | 62 ++++++++++++++++++++++++------- src/test/regress/expected/alter_table.out | 48 ++++++++++++++++++++++++ src/test/regress/sql/alter_table.sql | 31 ++++++++++++++++ 3 files changed, 127 insertions(+), 14 deletions(-)
Hi Alvaro, On Tue, Oct 19, 2021 at 10:11:24PM +0000, Alvaro Herrera wrote: > Ensure correct lock level is used in ALTER ... RENAME > > Commit 1b5d797cd4f7 intended to relax the lock level used to rename > indexes, but inadvertently allowed *any* relation to be renamed with a > lowered lock level, as long as the command is spelled ALTER INDEX. > That's undesirable for other relation types, so retry the operation with > the higher lock if the relation turns out not to be an index. > > After this fix, ALTER INDEX <sometable> RENAME will require access > exclusive lock, which it didn't before. hippopotamus and jay are complaining that this commit has introduced a test with ordering issues: ORDER BY relation::regclass::text; relation | mode --------------------------------+--------------------- - alter_idx_rename_test_2 | AccessExclusiveLock alter_idx_rename_test_parted_2 | AccessExclusiveLock + alter_idx_rename_test_2 | AccessExclusiveLock (2 rows) https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=hippopotamus&dt=2021-10-19%2023%3A43%3A14 -- Michael
Вложения
Hi, On 2021-Oct-20, Michael Paquier wrote: > hippopotamus and jay are complaining that this commit has introduced a > test with ordering issues: > ORDER BY relation::regclass::text; Oh, I forgot that we need a COLLATE clause there. Will fix, thanks ... -- Álvaro Herrera Valdivia, Chile — https://www.EnterpriseDB.com/ "No hay ausente sin culpa ni presente sin disculpa" (Prov. francés)