@@ -287,23 +287,6 @@ BEGIN
287
287
lname, oldtail_connstr, lname, lname);
288
288
END $$ LANGUAGE plpgsql;
289
289
290
- -- TODO
291
- -- Update fdw according to new replica creation. We update it on newtail node --
292
- -- its connstring to this part should include only primary and newtail itself,
293
- -- and on all other nodes except oldtail, so they learn about new replica.
294
- -- CREATE FUNCTION replica_created_update_fdw() RETURNS TRIGGER AS $$
295
- -- BEGIN
296
- -- RAISE DEBUG '[SHARDMAN] replica_created_update_fdw trigger called';
297
- -- IF shardman.my_id() != NEW.prv THEN -- don't update on oldtail node
298
- -- PERFORM shardman.update_fdw_server(NEW);
299
- -- END IF;
300
- -- RETURN NULL;
301
- -- END $$ LANGUAGE plpgsql;
302
- -- CREATE TRIGGER replica_created AFTER INSERT ON shardman.partitions
303
- -- FOR EACH ROW WHEN (NEW.prv IS NOT NULL) EXECUTE PROCEDURE replica_created();
304
- -- fire trigger only on worker nodes
305
- -- ALTER TABLE shardman.partitions ENABLE REPLICA TRIGGER replica_created;
306
-
307
290
-- Otherwise partitioned tables on worker nodes not will be dropped properly,
308
291
-- see pathman's docs.
309
292
ALTER EVENT TRIGGER pathman_ddl_trigger ENABLE ALWAYS;
@@ -656,7 +639,7 @@ BEGIN
656
639
END $$ LANGUAGE plpgsql STRICT;
657
640
658
641
CREATE FUNCTION get_data_lname (part_name text , pub_node int , sub_node int )
659
- RETURNS text AS ' pg_shardman' LANGUAGE C;
642
+ RETURNS text AS ' pg_shardman' LANGUAGE C STRICT ;
660
643
661
644
-- Make sure that standby_name is present in synchronous_standby_names. If not,
662
645
-- add it via ALTER SYSTEM and SIGHUP postmaster to reread conf.
@@ -667,26 +650,30 @@ BEGIN
667
650
IF newval IS NOT NULL THEN
668
651
RAISE DEBUG ' [SHARDMAN] Adding standby %, new value is %' , standby, newval;
669
652
PERFORM shardman .set_sync_standbys (newval);
670
- PERFORM pg_reload_conf();
671
653
END IF;
672
654
END $$ LANGUAGE plpgsql STRICT;
673
655
CREATE FUNCTION ensure_sync_standby_c (standby text ) RETURNS text
674
- AS ' pg_shardman' LANGUAGE C;
656
+ AS ' pg_shardman' LANGUAGE C STRICT ;
675
657
676
658
-- Remove 'standby' from synchronous_standby_names, if it is there, and SIGHUP
677
659
-- postmaster.
678
- CREATE FUNCTION remove_sync_standby (standby text ) RETURNS void as $$
660
+ CREATE FUNCTION remove_sync_standby (standby text ) RETURNS void AS $$
679
661
DECLARE
680
662
newval text := shardman .remove_sync_standby_c (standby);
681
663
BEGIN
682
664
IF newval IS NOT NULL THEN
683
665
RAISE DEBUG ' [SHARDMAN] Removing standby %, new value is %' , standby, newval;
684
666
PERFORM shardman .set_sync_standbys (newval);
685
- PERFORM pg_reload_conf();
686
667
END IF;
687
668
END $$ LANGUAGE plpgsql STRICT;
688
669
CREATE FUNCTION remove_sync_standby_c (standby text ) RETURNS text
689
- AS ' pg_shardman' LANGUAGE C;
670
+ AS ' pg_shardman' LANGUAGE C STRICT ;
690
671
691
- CREATE FUNCTION set_sync_standbys (standby text ) RETURNS void
692
- AS ' pg_shardman' LANGUAGE C;
672
+ CREATE FUNCTION set_sync_standbys (standby text ) RETURNS void AS $$
673
+ BEGIN
674
+ PERFORM pg_reload_conf();
675
+ PERFORM shardman .set_sync_standbys_c (standby);
676
+ RAISE DEBUG ' [SHARDMAN] sync_standbys set to %' , standby;
677
+ END $$ LANGUAGE plpgsql STRICT;
678
+ CREATE FUNCTION set_sync_standbys_c (standby text ) RETURNS void
679
+ AS ' pg_shardman' LANGUAGE C STRICT;
0 commit comments