Thread: pgsql-server/ oc/src/sgml/ref/truncate.sgml rc ...

pgsql-server/ oc/src/sgml/ref/truncate.sgml rc ...

From
tgl@svr1.postgresql.org (Tom Lane)
Date:
CVSROOT:    /cvsroot
Module name:    pgsql-server
Changes by:    tgl@svr1.postgresql.org    03/09/19 18:04:20

Modified files:
    doc/src/sgml/ref: truncate.sgml
    src/backend/catalog: heap.c
    src/backend/commands: tablecmds.c
    src/include/catalog: heap.h
    src/test/regress/expected: truncate.out

Log message:
    Disallow foreign-key references from temp tables to permanent tables.
    Per recent discussion, this does not work because other backends can't
    reliably see tuples in a temp table and so cannot run the RI checks
    correctly.  Seems better to disallow this case than go back to accessing
    temp tables through shared buffers.  Also, disallow FK references to
    ON COMMIT DELETE ROWS tables.  We already caught this problem for normal
    TRUNCATE, but the path used by ON COMMIT didn't check.