1CREATE FUNCTION pglogical.alter_node_add_interface(node_name name, interface_name name, dsn text)
2RETURNS oid STRICT VOLATILE LANGUAGE c AS 'MODULE_PATHNAME', 'pglogical_alter_node_add_interface';
3CREATE FUNCTION pglogical.alter_node_drop_interface(node_name name, interface_name name)
4RETURNS boolean STRICT VOLATILE LANGUAGE c AS 'MODULE_PATHNAME', 'pglogical_alter_node_drop_interface';
5
6CREATE FUNCTION pglogical.alter_subscription_interface(subscription_name name, interface_name name)
7RETURNS boolean STRICT VOLATILE LANGUAGE c AS 'MODULE_PATHNAME', 'pglogical_alter_subscription_interface';
8
9DROP FUNCTION pglogical.replicate_ddl_command(command text);
10CREATE OR REPLACE FUNCTION pglogical.replicate_ddl_command(command text, replication_sets text[] DEFAULT '{ddl_sql}')
11RETURNS boolean STRICT VOLATILE LANGUAGE c AS 'MODULE_PATHNAME', 'pglogical_replicate_ddl_command';
12
13DROP VIEW pglogical.TABLES;
14ALTER TABLE pglogical.replication_set_table RENAME TO replication_set_relation;
15ALTER TABLE pglogical.replication_set_relation ALTER COLUMN set_id TYPE oid;
16
17CREATE TABLE pglogical.sequence_state (
18	seqoid oid NOT NULL PRIMARY KEY,
19	cache_size integer NOT NULL,
20	last_value bigint NOT NULL
21) WITH (user_catalog_table=true);
22
23CREATE OR REPLACE VIEW pglogical.TABLES AS
24    WITH set_relations AS (
25        SELECT s.set_name, r.set_reloid
26          FROM pglogical.replication_set_relation r,
27               pglogical.replication_set s,
28               pglogical.local_node n
29         WHERE s.set_nodeid = n.node_id
30           AND s.set_id = r.set_id
31    ),
32    user_tables AS (
33        SELECT r.oid, n.nspname, r.relname, r.relreplident
34          FROM pg_catalog.pg_class r,
35               pg_catalog.pg_namespace n
36         WHERE r.relkind = 'r'
37           AND r.relpersistence = 'p'
38           AND n.oid = r.relnamespace
39           AND n.nspname !~ '^pg_'
40           AND n.nspname != 'information_schema'
41           AND n.nspname != 'pglogical'
42    )
43    SELECT n.nspname, r.relname, s.set_name
44      FROM pg_catalog.pg_namespace n,
45           pg_catalog.pg_class r,
46           set_relations s
47     WHERE r.relkind = 'r'
48       AND n.oid = r.relnamespace
49       AND r.oid = s.set_reloid
50     UNION
51    SELECT t.nspname, t.relname, NULL
52      FROM user_tables t
53     WHERE t.oid NOT IN (SELECT set_reloid FROM set_relations);
54
55CREATE FUNCTION pglogical.replication_set_add_sequence(set_name name, relation regclass, synchronize_data boolean DEFAULT false)
56RETURNS boolean STRICT VOLATILE LANGUAGE c AS 'MODULE_PATHNAME', 'pglogical_replication_set_add_sequence';
57CREATE FUNCTION pglogical.replication_set_add_all_sequences(set_name name, schema_names text[], synchronize_data boolean DEFAULT false)
58RETURNS boolean STRICT VOLATILE LANGUAGE c AS 'MODULE_PATHNAME', 'pglogical_replication_set_add_all_sequences';
59CREATE FUNCTION pglogical.replication_set_remove_sequence(set_name name, relation regclass)
60RETURNS boolean STRICT VOLATILE LANGUAGE c AS 'MODULE_PATHNAME', 'pglogical_replication_set_remove_sequence';
61
62CREATE FUNCTION pglogical.synchronize_sequence(relation regclass)
63RETURNS boolean STRICT VOLATILE LANGUAGE c AS 'MODULE_PATHNAME', 'pglogical_synchronize_sequence';
64
65ALTER EVENT TRIGGER pglogical_truncate_trigger_add ENABLE ALWAYS;
66ALTER EVENT TRIGGER pglogical_dependency_check_trigger ENABLE ALWAYS;
67
68DROP FUNCTION pglogical.create_subscription(subscription_name name, provider_dsn text,
69    replication_sets text[], synchronize_structure boolean, synchronize_data boolean, forward_origins text[]);
70CREATE FUNCTION pglogical.create_subscription(subscription_name name, provider_dsn text,
71    replication_sets text[] = '{default,default_insert_only,ddl_sql}', synchronize_structure boolean = false,
72    synchronize_data boolean = true, forward_origins text[] = '{all}')
73RETURNS oid STRICT VOLATILE LANGUAGE c AS 'MODULE_PATHNAME', 'pglogical_create_subscription';
74
75DROP FUNCTION pglogical.replication_set_add_table(set_name name, relation regclass, synchronize boolean);
76CREATE FUNCTION pglogical.replication_set_add_table(set_name name, relation regclass, synchronize_data boolean DEFAULT false)
77RETURNS boolean STRICT VOLATILE LANGUAGE c AS 'MODULE_PATHNAME', 'pglogical_replication_set_add_table';
78
79DROP FUNCTION pglogical.replication_set_add_all_tables(set_name name, schema_names text[], synchronize boolean);
80CREATE FUNCTION pglogical.replication_set_add_all_tables(set_name name, schema_names text[], synchronize_data boolean DEFAULT false)
81RETURNS boolean STRICT VOLATILE LANGUAGE c AS 'MODULE_PATHNAME', 'pglogical_replication_set_add_all_tables';
82