Hi Peter, Il 18/01/18 17:30, Peter Eisentraut ha scritto: > On 1/17/18 11:33, Petr Jelinek wrote: >>> P.S: I'm struggling to understand why we have two possible values of >>> session_replication_role settings that behave identically (origin and >>> local). I'm unable to see any difference according to the code or the >>> documentation, so I'm wondering if we should document that they are the >>> same. >>> >> It's for use by 3rd party tools (afaik both londiste and slony use it) >> to differentiate between replicated and not replicated changes. > > I have committed some documentation updates and tests to cover this a > bit better. >
Thanks, the documentation is a lot clearer now. This superseded the documentation change that was in the patch, so I've removed it from the v3 version. Regards, Marco -- Marco Nenciarini - 2ndQuadrant Italy PostgreSQL Training, Services and Support marco.nenciar...@2ndquadrant.it | www.2ndQuadrant.it
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index f2a928b823..180ebd0717 100644 *** a/src/backend/commands/tablecmds.c --- b/src/backend/commands/tablecmds.c *************** *** 1340,1355 **** ExecuteTruncate(TruncateStmt *stmt) } /* ! * Check foreign key references. In CASCADE mode, this should be ! * unnecessary since we just pulled in all the references; but as a ! * cross-check, do it anyway if in an Assert-enabled build. */ #ifdef USE_ASSERT_CHECKING - heap_truncate_check_FKs(rels, false); - #else - if (stmt->behavior == DROP_RESTRICT) heap_truncate_check_FKs(rels, false); #endif /* * If we are asked to restart sequences, find all the sequences, lock them --- 1340,1363 ---- } /* ! * Suppress foreign key references check if session replication role is ! * set to REPLICA. */ + if (SessionReplicationRole != SESSION_REPLICATION_ROLE_REPLICA) + { + + /* + * Check foreign key references. In CASCADE mode, this should be + * unnecessary since we just pulled in all the references; but as a + * cross-check, do it anyway if in an Assert-enabled build. + */ #ifdef USE_ASSERT_CHECKING heap_truncate_check_FKs(rels, false); + #else + if (stmt->behavior == DROP_RESTRICT) + heap_truncate_check_FKs(rels, false); #endif + } /* * If we are asked to restart sequences, find all the sequences, lock them
signature.asc
Description: OpenPGP digital signature