From: | Artur Zakirov <a(dot)zakirov(at)postgrespro(dot)ru> |
---|---|
To: | Craig Ringer <craig(at)2ndquadrant(dot)com> |
Cc: | David Steele <david(at)pgmasters(dot)net>, Petr Jelinek <petr(at)2ndquadrant(dot)com>, Simon Riggs <simon(at)2ndquadrant(dot)com>, Andres Freund <andres(at)anarazel(dot)de>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Proposal: Generic WAL logical messages |
Date: | 2016-03-18 12:36:37 |
Message-ID: | 56EBF655.6080407@postgrespro.ru |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 17.03.2016 15:42, Craig Ringer wrote:
>
>
> Would you mind sharing the plugin here? I could add it to
> src/test/modules and add some t/ tests so it runs under the TAP test
> framework.
>
>
> --
> Craig Ringer http://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Training & Services
Of course. I attached it.
In a provider node you need to set shared_preload_libraries to
'pg_ddl_decode'.
In a subscriber node you need:
1 - install pg_ddl_decode by the command:
CREATE EXTENSION pg_ddl_decode;
2 - call the function:
SELECT ddl_create_slot('host=providerhost port=5432 dbname=db');
3 - after some DDL queries in provider you need to execute in a
subscriber the command manually:
SELECT ddl_get_changes('host=providerhost port=5432 dbname=db');
I warn that this plugin has ugly code sometimes. And ddl_get_changes()
has a infinite loop. But it shows concept of DDL replication.
Also this plugin uses some functions from pglogical_output and pglogical.
Earlier I have did tests with pglogical. I attached the patch for pglogical.
--
Artur Zakirov
Postgres Professional: http://www.postgrespro.com
Russian Postgres Company
Attachment | Content-Type | Size |
---|---|---|
pg_ddl_decode.zip | application/zip | 9.1 KB |
pglogical-ddl.patch | text/x-patch | 12.5 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | David Steele | 2016-03-18 12:43:11 | Re: eXtensible Transaction Manager API (v2) |
Previous Message | Michael Paquier | 2016-03-18 12:30:14 | Re: GinPageIs* don't actually return a boolean |