~stub/slony-i/trunk

« back to all changes in this revision

Viewing changes to src/backend/slony1_funcs.sql

  • Committer: Christopher Browne
  • Date: 2016-07-26 20:05:51 UTC
  • Revision ID: git-v1:752a7735ac2796b97dc02ee4cd545cd0485dac1b
Bug 341 - suppress log trigger/deny when running in 'local' mode

Show diffs side-by-side

added added

removed removed

Lines of Context:
6409
6409
create or replace function @NAMESPACE@.log_truncate () returns trigger as
6410
6410
$$
6411
6411
        declare
 
6412
                r_role text;
6412
6413
                c_nspname text;
6413
6414
                c_relname text;
6414
6415
                c_log integer;
6415
6416
                c_node integer;
6416
6417
                c_tabid integer;
6417
6418
        begin
 
6419
                -- Ignore this call if session_replication_role = 'local'
 
6420
                select into r_role setting
 
6421
                        from pg_catalog.pg_settings where name = 'session_replication_role';
 
6422
                if r_role = 'local' then
 
6423
                        return NULL;
 
6424
                end if;
 
6425
 
6418
6426
        c_tabid := tg_argv[0];
6419
6427
            c_node := @NAMESPACE@.getLocalNodeId('_@CLUSTERNAME@');
6420
6428
                select tab_nspname, tab_relname into c_nspname, c_relname
6451
6459
 
6452
6460
create or replace function @NAMESPACE@.deny_truncate () returns trigger as
6453
6461
$$
 
6462
        declare
 
6463
                r_role text;
6454
6464
        begin
 
6465
                -- Ignore this call if session_replication_role = 'local'
 
6466
                select into r_role setting
 
6467
                        from pg_catalog.pg_settings where name = 'session_replication_role';
 
6468
                if r_role = 'local' then
 
6469
                        return NULL;
 
6470
                end if;
 
6471
 
6455
6472
                raise exception 'truncation of replicated table forbidden on subscriber node';
6456
6473
    end
6457
6474
$$ language plpgsql;