Re: Strange row locking - question
От | Tom Lane |
---|---|
Тема | Re: Strange row locking - question |
Дата | |
Msg-id | 1293.1018538991@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Strange row locking - question (Vaclav Kulakovsky <vaclav.kulakovsky@definity.cz>) |
Список | pgsql-general |
Vaclav Kulakovsky <vaclav.kulakovsky@definity.cz> writes: > When I update row in table with foring key, referenced row is locked. I > can see it in log file: > DEBUG: query: update entry set sometext = 'aaa' where id = 1; > DEBUG: query: SELECT 1 FROM ONLY "languages" WHERE "id" = $1 FOR UPDATE > OF "languages" > When I execute update second time I receive only this: > query: update entry set sometext = 'aaa' where id = 1; > Referenced row is locked only first time ? This behavior looks me little > bit strange. Can anybody explain it ? You are not seeing the RI query get *executed*, only get *parsed*. After the first time through, the RI code re-uses a cached query plan. Since it's not fed through the parser again, no log message. plpgsql shows similar behavior, BTW. Some day it might be an idea to make these things a little more debugging-friendly by having them emit suitable log messages when they re-execute cached plans. regards, tom lane
В списке pgsql-general по дате отправления: