--
-- SUBSCRIPTION
--
-- check help
\h CREATE SUBSCRIPTION
Command: CREATE SUBSCRIPTION
Description: define a new subscription
Syntax:
CREATE SUBSCRIPTION subscription_name
CONNECTION 'conninfo'
PUBLICATION publication_name [, ...]
[ WITH ( subscription_parameter [= value] [, ... ] ) ]
\h ALTER SUBSCRIPTION
Command: ALTER SUBSCRIPTION
Description: change the definition of a subscription
Syntax:
ALTER SUBSCRIPTION name CONNECTION 'conninfo'
ALTER SUBSCRIPTION name SET PUBLICATION publication_name [, ...]
ALTER SUBSCRIPTION name REFRESH PUBLICATION [ WITH ( refresh_option [= value] [, ... ] ) ]
ALTER SUBSCRIPTION name ENABLE
ALTER SUBSCRIPTION name DISABLE
ALTER SUBSCRIPTION name SET ( subscription_parameter [= value] [, ... ] )
ALTER SUBSCRIPTION name OWNER TO new_owner
ALTER SUBSCRIPTION name RENAME TO new_name
\h DROP SUBSCRIPTION
Command: DROP SUBSCRIPTION
Description: remove a subscription
Syntax:
DROP SUBSCRIPTION [ IF EXISTS ] name [ CASCADE | RESTRICT ]
--clear audit log
SELECT pg_delete_audit('1012-11-10', '3012-11-11');
pg_delete_audit
-----------------
(1 row)
--enable publication and subscription audit
\! @abs_bindir@/gs_guc reload -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_system_object=16777215" > /dev/null 2>&1
select pg_sleep(1);
pg_sleep
----------
(1 row)
--- prepare
\! echo $GAUSSHOME | xargs -I{} rm -f {}/bin/subscription.key.cipher
\! echo $GAUSSHOME | xargs -I{} rm -f {}/bin/subscription.key.rand
\! echo $GAUSSHOME | xargs -I{} @abs_bindir@/gs_guc generate -S 123456@pwd -D {}/bin -o subscription > /dev/null 2>&1 ; echo $?
0
\! echo $OLDGAUSSHOME | xargs -I{} rm -f {}/bin/subscription.key.cipher
\! echo $OLDGAUSSHOME | xargs -I{} rm -f {}/bin/subscription.key.rand
\! echo $OLDGAUSSHOME | xargs -I{} @abs_bindir@/gs_guc generate -S 123456@pwd -D {}/bin -o subscription > /dev/null 2>&1 ; echo $?
0
CREATE ROLE regress_subscription_user LOGIN SYSADMIN PASSWORD 'Abcdef@123';
CREATE ROLE regress_subscription_user2 LOGIN SYSADMIN PASSWORD 'Abcdef@123';
SET SESSION AUTHORIZATION 'regress_subscription_user' PASSWORD 'Abcdef@123';
DROP SUBSCRIPTION IF EXISTS testsub;
NOTICE: subscription "testsub" does not exist, skipping
--- create subscription
-- fail - syntax error, no publications
CREATE SUBSCRIPTION testsub CONNECTION 'foo';
ERROR: syntax error at or near ";"
LINE 1: CREATE SUBSCRIPTION testsub CONNECTION 'foo';
^
-- fail - syntax error, no connection
CREATE SUBSCRIPTION testsub PUBLICATION foo;
ERROR: syntax error at or near "PUBLICATION"
LINE 1: CREATE SUBSCRIPTION testsub PUBLICATION foo;
^
-- fail - could not connect to the publisher
create subscription testsub2 connection 'host=abc' publication pub;
ERROR: The number of host and port are inconsistent.
create subscription testsub2 connection 'host=abc port=12345' publication pub;
WARNING: apply worker could not connect to the remote server
ERROR: Failed to connect to publisher.
set client_min_messages to error;
-- fail - syntax error, invalid connection string syntax: missing "="
CREATE SUBSCRIPTION testsub CONNECTION 'testconn' PUBLICATION testpub;
ERROR: invalid connection string syntax
-- fail - unrecognized subscription parameter: create_slot
CREATE SUBSCRIPTION testsub CONNECTION 'dbname=doesnotexist' PUBLICATION testpub WITH (create_slot=false);
ERROR: unrecognized subscription parameter: create_slot
CREATE SUBSCRIPTION testsub CONNECTION 'dbname=doesnotexist' PUBLICATION testpub WITH (ENABLED=false, slot_name='testsub', synchronous_commit=off);
ERROR: invalid connection string syntax, missing host and port
CREATE SUBSCRIPTION testsub CONNECTION 'dbname=doesnotexist' PUBLICATION testpub WITH (CONNECT=false, slot_name='testsub', synchronous_commit=off);
-- create SUBSCRIPTION with conninfo in two single quote, used to check mask string bug
CREATE SUBSCRIPTION testsub_maskconninfo CONNECTION 'host=''1.2.3.4'' port=''12345'' user=''username'' dbname=''postgres'' password=''password_1234''' PUBLICATION testpub WITH (ENABLED=false, slot_name='testsub', synchronous_commit=off);
ERROR: Failed to connect to publisher.
CREATE SUBSCRIPTION testsub_maskconninfo CONNECTION 'host=''1.2.3.4'' port=''12345'' user=''username'' dbname=''postgres'' password=''password_1234''' PUBLICATION testpub WITH (CONNECT=false, slot_name='testsub', synchronous_commit=off);
-- fail - The number of host and port are inconsistent
create subscription sub1 connection 'dbname=postgres user=pubusr password=Huawei@123 host=192.168.0.38,192.168.0.38,192.168.0.38 port=14001,14501' publication pub1;
ERROR: The number of host and port are inconsistent.
-- fail - a maximum of 9 servers are supported
create subscription sub1 connection 'dbname=postgres user=pubusr password=Huawei@123 host=192.168.0.38,192.168.0.38,192.168.0.38,192.168.0.38,192.168.0.38,192.168.0.38,192.168.0.38,192.168.0.38,192.168.0.38,192.168.0.38 port=14001,14501' publication pub1;
ERROR: Currently, a maximum of 9 servers are supported.
-- alter connection
ALTER SUBSCRIPTION testsub CONNECTION 'host=''1.2.3.4'' port=''12345'' user=''username'' dbname=''postgres'' password=''password_1234''';
ALTER SUBSCRIPTION testsub CONNECTION 'dbname=does_not_exist';
reset client_min_messages;
select subname, pg_get_userbyid(subowner) as Owner, subenabled, subconninfo, subpublications, subbinary from pg_subscription where subname='testsub';
subname | owner | subenabled | subconninfo | subpublications | subbinary
---------+---------------------------+------------+------------------------+-----------------+-----------
testsub | regress_subscription_user | f | dbname=does_not_exist | {testpub} | f
(1 row)
--- alter subscription
------ set publication
ALTER SUBSCRIPTION testsub SET PUBLICATION testpub2, testpub3;
select subname, subenabled, subpublications from pg_subscription where subname='testsub';
subname | subenabled | subpublications
---------+------------+---------------------
testsub | f | {testpub2,testpub3}
(1 row)
------ modify conninfo
ALTER SUBSCRIPTION testsub CONNECTION 'dbname=doesnotexist2';
select subname, subenabled, subconninfo from pg_subscription where subname='testsub';
subname | subenabled | subconninfo
---------+------------+-----------------------
testsub | f | dbname=doesnotexist2
(1 row)
ALTER SUBSCRIPTION testsub SET (conninfo='dbname=doesnotexist3');
------ alter SUBSCRIPTION with conninfo in two single quote, used to check mask string bug
ALTER SUBSCRIPTION testsub_maskconninfo SET (conninfo='host=''1.2.3.4'' port=''12345'' user=''username'' dbname=''postgres'' password=''password_1234''', synchronous_commit=on);
select subname, subenabled, subconninfo from pg_subscription where subname='testsub';
subname | subenabled | subconninfo
---------+------------+-----------------------
testsub | f | dbname=doesnotexist3
(1 row)
------ modify synchronous_commit
ALTER SUBSCRIPTION testsub SET (synchronous_commit=on);
select subname, subenabled, subsynccommit from pg_subscription where subname='testsub';
subname | subenabled | subsynccommit
---------+------------+---------------
testsub | f | on
(1 row)
------ modify slot_name to non-null value
------ fail - Currently enabled=false, cannot change slot_name to a non-null value.
ALTER SUBSCRIPTION testsub SET (slot_name='testsub');
ERROR: Currently enabled=false, cannot change slot_name to a non-null value.
-- alter owner
ALTER SUBSCRIPTION testsub owner to regress_subscription_user2;
-- alter subbinary to true
ALTER SUBSCRIPTION testsub SET (binary=true);
select subname, subbinary from pg_subscription where subname='testsub';
subname | subbinary
---------+-----------
testsub | t
(1 row)
-- set subskiplsn
ALTER SUBSCRIPTION testsub SET (skiplsn = '0/ABCDEF');
select subname, subskiplsn from pg_subscription where subname='testsub';
subname | subskiplsn
---------+------------
testsub | 0/ABCDEF
(1 row)
ALTER SUBSCRIPTION testsub SET (skiplsn = '0/ABCDEFGH');
ERROR: invalid input syntax for type pg_lsn: "0/ABCDEFGH"
ALTER SUBSCRIPTION testsub SET (skiplsn = 'none');
select subname, subskiplsn from pg_subscription where subname='testsub';
subname | subskiplsn
---------+------------
testsub | 0/0
(1 row)
-- set syncconninfo
ALTER SUBSCRIPTION testsub SET (syncconninfo = true);
select subname, subsyncconninfo from pg_subscription where subname='testsub';
subname | subsyncconninfo
---------+-----------------
testsub | t
(1 row)
ALTER SUBSCRIPTION testsub SET (syncconninfo = false);
select subname, subsyncconninfo from pg_subscription where subname='testsub';
subname | subsyncconninfo
---------+-----------------
testsub | f
(1 row)
-- disable test
ALTER SUBSCRIPTION testsub DISABLE;
--rename
ALTER SUBSCRIPTION testsub rename to testsub_rename;
--- inside a transaction block
------ CREATE SUBSCRIPTION ... WITH (enabled = true)
------ fail - ERROR: CREATE SUBSCRIPTION ... WITH (enabled = true) cannot run inside a transaction block
BEGIN;
CREATE SUBSCRIPTION testsub_rename CONNECTION 'dbname=doesnotexist' PUBLICATION testpub WITH (ENABLED=true);
ERROR: CREATE SUBSCRIPTION ... WITH (enabled = true) cannot run inside a transaction block
COMMIT;
-- -- active SUBSCRIPTION
BEGIN;
ALTER SUBSCRIPTION testsub_rename ENABLE;
ERROR: invalid connection string syntax, missing host and port
select subname, subenabled from pg_subscription where subname='testsub_rename';
ERROR: current transaction is aborted, commands ignored until end of transaction block, firstChar[Q]
ALTER SUBSCRIPTION testsub_rename SET (ENABLED=false);
ERROR: current transaction is aborted, commands ignored until end of transaction block, firstChar[Q]
select subname, subenabled from pg_subscription where subname='testsub_rename';
ERROR: current transaction is aborted, commands ignored until end of transaction block, firstChar[Q]
COMMIT;
BEGIN;
ALTER SUBSCRIPTION testsub_rename REFRESH PUBLICATION;
ERROR: ALTER SUBSCRIPTION ... REFRESH cannot run inside a transaction block
COMMIT;
-- success, password len with 999
CREATE SUBSCRIPTION sub_len_999 CONNECTION 'host=192.16''''8.1.50 port=5432 user=foo dbname=foodb password=xxin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*lei' PUBLICATION insert_only WITH (connect = false);
WARNING: tables were not subscribed, you will have to run ALTER SUBSCRIPTION ... REFRESH PUBLICATION to subscribe the tables
-- fail, password len with 1000
CREATE SUBSCRIPTION sub_len_1000 CONNECTION 'host=192.16''''8.1.50 port=5432 user=foo dbname=foodb password=xxin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leid' PUBLICATION insert_only WITH (enabled = false);
ERROR: Password can't contain more than 999 characters.
-- fail, set password len with 1000
ALTER SUBSCRIPTION sub_len_999 SET (conninfo='host=192.16''''8.1.50 port=5432 user=foo dbname=foodb password=xxin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leid');
ERROR: Password can't contain more than 999 characters.
-- fail, set password len with 1000
ALTER SUBSCRIPTION sub_len_999 CONNECTION 'host=192.16''''8.1.50 port=5432 user=foo dbname=foodb password=xxin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leideyipi@123xin!@#$%^&*(!@#@$%^&*!@#$%^&*leid';
ERROR: Password can't contain more than 999 characters.
--- permission
CREATE ROLE normal_user LOGIN PASSWORD 'Abcdef@123';
SET SESSION AUTHORIZATION 'normal_user' PASSWORD 'Abcdef@123';
ALTER SUBSCRIPTION testsub_rename rename to testsub;
ERROR: must be owner of subscription testsub_rename
DETAIL: N/A
SET SESSION AUTHORIZATION 'regress_subscription_user' PASSWORD 'Abcdef@123';
--- drop subscription
DROP SUBSCRIPTION IF EXISTS testsub_rename;
DROP SUBSCRIPTION IF EXISTS testsub_maskconninfo;
DROP SUBSCRIPTION IF EXISTS sub_len_999;
--- cleanup
RESET SESSION AUTHORIZATION;
DROP ROLE regress_subscription_user;
DROP ROLE regress_subscription_user2;
DROP ROLE normal_user;
-- built-in function test
select pg_replication_origin_create('origin_test');
pg_replication_origin_create
------------------------------
1
(1 row)
select pg_replication_origin_oid('origin_test');
pg_replication_origin_oid
---------------------------
1
(1 row)
select * from pg_replication_origin_status;
local_id | external_id | remote_lsn | local_lsn
----------+-------------+------------+-----------
(0 rows)
select pg_replication_origin_session_is_setup();
pg_replication_origin_session_is_setup
----------------------------------------
f
(1 row)
select pg_replication_origin_session_setup('origin_test');
pg_replication_origin_session_setup
-------------------------------------
(1 row)
select pg_replication_origin_session_is_setup();
pg_replication_origin_session_is_setup
----------------------------------------
t
(1 row)
create table t_origin_test(a int);
begin;
insert into t_origin_test values(1);
select pg_replication_origin_xact_setup('1/12345678', now());
pg_replication_origin_xact_setup
----------------------------------
(1 row)
commit;
select local_id,external_id,remote_lsn from pg_replication_origin_status;
local_id | external_id | remote_lsn
----------+-------------+------------
1 | origin_test | 1/12345678
(1 row)
select * from pg_replication_origin_progress('origin_test', false);
pg_replication_origin_progress
--------------------------------
1/12345678
(1 row)
select * from pg_replication_origin_session_progress(false);
pg_replication_origin_session_progress
----------------------------------------
1/12345678
(1 row)
select local_id,external_id,remote_lsn from pg_show_replication_origin_status();
local_id | external_id | remote_lsn
----------+-------------+------------
1 | origin_test | 1/12345678
(1 row)
select pg_replication_origin_session_reset();
pg_replication_origin_session_reset
-------------------------------------
(1 row)
select pg_replication_origin_advance('origin_test', '1/87654321');
pg_replication_origin_advance
-------------------------------
(1 row)
select pg_replication_origin_session_setup('origin_test');
pg_replication_origin_session_setup
-------------------------------------
(1 row)
select * from pg_replication_origin_session_progress(false);
pg_replication_origin_session_progress
----------------------------------------
1/87654321
(1 row)
select pg_replication_origin_xact_reset();
pg_replication_origin_xact_reset
----------------------------------
(1 row)
select pg_replication_origin_session_reset();
pg_replication_origin_session_reset
-------------------------------------
(1 row)
select pg_replication_origin_drop('origin_test');
pg_replication_origin_drop
----------------------------
(1 row)
-- error
select pg_replication_origin_session_setup('origin_test');
ERROR: could not find tuple for replication origin 'origin_test'
CONTEXT: referenced column: pg_replication_origin_session_setup
drop table t_origin_test;
SELECT object_name,detail_info FROM pg_query_audit('2022-01-13 9:30:00', '2031-12-12 22:00:00') where type = 'ddl_publication_subscription' order by time;
object_name | detail_info
----------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
testsub | DROP SUBSCRIPTION IF EXISTS testsub;
testsub | CREATE SUBSCRIPTION testsub CONNECTION **********************PUBLICATION testpub WITH (CONNECT=false, slot_name='testsub', synchronous_commit=off);
testsub_maskconninfo | CREATE SUBSCRIPTION testsub_maskconninfo CONNECTION ***************************************************************************************************PUBLICATION testpub WITH (CONNECT=false, slot_name='testsub', synchronous_commit=off);
testsub | ALTER SUBSCRIPTION testsub CONNECTION '*************************************************************************************************;
testsub | ALTER SUBSCRIPTION testsub CONNECTION '**********************;
testsub | ALTER SUBSCRIPTION testsub SET PUBLICATION testpub2, testpub3;
testsub | ALTER SUBSCRIPTION testsub CONNECTION '*********************;
testsub | ALTER SUBSCRIPTION testsub SET (conninfo='**********************;
testsub_maskconninfo | ALTER SUBSCRIPTION testsub_maskconninfo SET (conninfo='*************************************************************************************************************************;
testsub | ALTER SUBSCRIPTION testsub SET (synchronous_commit=on);
testsub | ALTER SUBSCRIPTION testsub owner to regress_subscription_user2;
testsub | ALTER SUBSCRIPTION testsub SET (binary=true);
testsub | ALTER SUBSCRIPTION testsub SET (skiplsn = '0/ABCDEF');
testsub | ALTER SUBSCRIPTION testsub SET (skiplsn = 'none');
testsub | ALTER SUBSCRIPTION testsub SET (syncconninfo = true);
testsub | ALTER SUBSCRIPTION testsub SET (syncconninfo = false);
testsub | ALTER SUBSCRIPTION testsub DISABLE;
testsub | ALTER SUBSCRIPTION testsub rename to testsub_rename;
sub_len_999 | CREATE SUBSCRIPTION sub_len_999 CONNECTION *********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************PUBLICATION insert_only WITH (connect = false);
testsub_rename | DROP SUBSCRIPTION IF EXISTS testsub_rename;
testsub_maskconninfo | DROP SUBSCRIPTION IF EXISTS testsub_maskconninfo;
sub_len_999 | DROP SUBSCRIPTION IF EXISTS sub_len_999;
(22 rows)
--clear audit log
SELECT pg_delete_audit('1012-11-10', '3012-11-11');
pg_delete_audit
-----------------
(1 row)
\! @abs_bindir@/gs_guc reload -D @abs_srcdir@/tmp_check/datanode1/ -c "audit_system_object" > /dev/null 2>&1
select pg_sleep(1);
pg_sleep
----------
(1 row)