Re: pg_get_expr() hangs with uncommitted DDL transaction
От | Thomas Kellerer |
---|---|
Тема | Re: pg_get_expr() hangs with uncommitted DDL transaction |
Дата | |
Msg-id | m3tbjf$ltu$1@ger.gmane.org обсуждение исходный текст |
Ответ на | Re: pg_get_expr() hangs with uncommitted DDL transaction (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: pg_get_expr() hangs with uncommitted DDL transaction
|
Список | pgsql-general |
Tom Lane schrieb am 11.11.2014 um 16:35: >> Is there a reason why pg_catalog.pg_get_expr() will wait until the exclusive lock on the table is released? > > Yes. It needs to extract attribute names, data types, etc for the target > table and it would also like to be sure that that data is self-consistent. > So it takes out AccessShareLock the same as a query on the table would. Not sure I understand this. Extracting the attribute names and data types from the various pg_catalog tables works _without_ the query being blocked. Even when selecting all arguments that are passed to pg_get_expr(). It's only when adding the function call to an otherwise perfectly working query that this wait occurs. Does this mean that pg_get_expr() selects additional data from the table, instead of just using the values that are provided by the caller? Thomas
В списке pgsql-general по дате отправления: