Обсуждение: pgsql: Fix FK checks of TRUNCATE involving partitioned tables

Поиск
Список
Период
Сортировка

pgsql: Fix FK checks of TRUNCATE involving partitioned tables

От
Alvaro Herrera
Дата:
Fix FK checks of TRUNCATE involving partitioned tables

When truncating a table that is referenced by foreign keys in
partitioned tables, the check to ensure the referencing table are also
truncated spuriously failed.  This is because it was relying on
relhastriggers as a proxy for the table having FKs, and that's wrong for
partitioned tables.  Fix it to consider such tables separately.  There
may be a better way ... but this code is pretty inefficient already.

Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
Reviewed-by: Michael Paquiër <michael@paquier.xyz>
Discussion: https://postgr.es/m/20180711000624.zmeizicibxeehhsg@alvherre.pgsql

Branch
------
REL_11_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/727196ced2423008bb25d7775c4e3b7fca063c8b

Modified Files
--------------
src/backend/catalog/heap.c             |  7 +++-
src/backend/commands/tablecmds.c       |  2 +-
src/test/regress/expected/truncate.out | 75 ++++++++++++++++++++++++++++++++++
src/test/regress/sql/truncate.sql      | 47 +++++++++++++++++++++
4 files changed, 128 insertions(+), 3 deletions(-)


Re: pgsql: Fix FK checks of TRUNCATE involving partitioned tables

От
Michael Paquier
Дата:
On Thu, Jul 12, 2018 at 04:26:17PM +0000, Alvaro Herrera wrote:
> Fix FK checks of TRUNCATE involving partitioned tables
>
> Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
> Reviewed-by: Michael Paquiër <michael@paquier.xyz>
> Discussion: https://postgr.es/m/20180711000624.zmeizicibxeehhsg@alvherre.pgsql

Just a note, using 'ë' in the first name would be correct, using it in
the family name is not ;)
It doesn't matter much I don't use any accent myself for simplicity.
--
Michael

Вложения

Re: pgsql: Fix FK checks of TRUNCATE involving partitioned tables

От
Alvaro Herrera
Дата:
On 2018-Jul-14, Michael Paquier wrote:

> On Thu, Jul 12, 2018 at 04:26:17PM +0000, Alvaro Herrera wrote:
> > Fix FK checks of TRUNCATE involving partitioned tables
> > 
> > Author: Álvaro Herrera <alvherre@alvh.no-ip.org>
> > Reviewed-by: Michael Paquiër <michael@paquier.xyz>
> > Discussion: https://postgr.es/m/20180711000624.zmeizicibxeehhsg@alvherre.pgsql
> 
> Just a note, using 'ë' in the first name would be correct, using it in
> the family name is not ;)

Oops, sorry about that, not sure how I managed to do that.

> It doesn't matter much I don't use any accent myself for simplicity.

Well, I like to use foreign character sets where possible ... eg. commit
49124613f134.

-- 
Álvaro Herrera                https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services